/* ForestFrame draft 0.8.3: one decision area, four aligned room actions. */
.ff-river-grove .ff-room-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(64px,auto);align-items:stretch;gap:10px;width:100%;max-width:470px;margin:20px 0 6px;min-width:0}
.ff-river-grove .ff-room-action-grid>.button{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;height:100%;min-height:64px;min-width:0;margin:0;padding:10px 12px;border-radius:4px;font-size:16px;font-weight:500;line-height:1.3;letter-spacing:0;text-align:center;white-space:normal;box-sizing:border-box;box-shadow:none}
.ff-river-grove .ff-room-action-grid>.button:not(.ff-room-action-book){background:#faf8ef;color:#183e2e;border:1px solid #8e9b7c}
.ff-river-grove .ff-room-action-grid>.ff-room-action-book{font-weight:600}
.ff-river-grove .ff-room-action-grid>.button>svg{width:19px;height:19px;flex:0 0 19px;transform:none}
.ff-river-grove .ff-room-action-grid .ff-button-label{align-items:center;justify-content:center;gap:4px}
.ff-river-grove .ff-room-action-grid .ff-button-label small{font-size:12px;font-weight:400;line-height:1.3;margin:0}
.ff-river-grove .stay-copy .ff-quick-row{width:100%;max-width:470px;margin-top:8px;justify-content:flex-start;gap:6px 12px}
.ff-river-grove .stay-copy .ff-quick-row .text-link{font-size:15px;min-height:46px;flex:none}
.ff-river-grove .stay-copy .ff-quick-row>span{font-size:12px;line-height:1.5}
.ff-river-grove .stay-copy .ff-panel-policy{max-width:470px}
/* Discovery in the hero; booking lives in the header/dock and selected stay. */
.ff-river-grove .ff-hero-eight .hero-actions.ff-discovery-action{display:flex;grid-template-columns:none;width:fit-content;max-width:100%;margin-top:22px;gap:0}
.ff-river-grove .ff-hero-eight .ff-discovery-action>.text-link.ff-explore-button{width:auto;min-height:52px;padding:13px 19px;gap:18px;border-radius:4px}
.ff-river-grove .ff-collection-summary{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;padding-top:20px;text-align:center}
.ff-river-grove .ff-collection-summary>p{font-size:13px;line-height:1.6;max-width:none;margin:0}
.ff-river-grove .ff-collection-summary>.ff-compare-trigger{font-size:16px;min-height:48px;justify-content:center;gap:12px;margin:0}
/* A truly centred, row-aligned comparison. No repeating action clusters. */
.ff-river-grove #compare-dialog.comparison-dialog{position:fixed;inset:0;margin:auto!important;width:min(1140px,calc(100vw - 32px));max-width:calc(100vw - 32px);height:fit-content;max-height:calc(100dvh - 32px);overflow:auto;border:1px solid #92a086;border-radius:8px;background:#f8f5eb}
.ff-river-grove #compare-dialog .dialog-shell{padding:26px 26px 24px}
.ff-river-grove #compare-dialog .dialog-head{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:12px;align-items:start;margin:0 0 22px;padding:0 0 20px;position:relative;text-align:center}
.ff-river-grove #compare-dialog .dialog-head>div{grid-column:2;min-width:0}
.ff-river-grove #compare-dialog .dialog-head>.close{grid-column:3;grid-row:1}
.ff-river-grove #compare-dialog .dialog-head h2{font-size:42px;line-height:1.05;letter-spacing:-1px}
.ff-river-grove #compare-dialog .dialog-head .eyebrow{font-size:11px;line-height:1.4;letter-spacing:1.3px;margin-bottom:8px}
.ff-compare-scroll{max-width:100%;width:100%;overflow:auto;border:1px solid #99a78b66;border-radius:5px;background:#fbf9f0}
.ff-compare-table{width:100%;border-collapse:collapse;table-layout:fixed;margin:0;font-size:15px;line-height:1.5;color:#183e2e}
.ff-compare-table th,.ff-compare-table td{padding:17px 12px;text-align:center;vertical-align:middle;border-bottom:1px solid #99a78b4d;border-right:1px solid #99a78b33;overflow-wrap:break-word;word-break:normal}
.ff-compare-table th:last-child,.ff-compare-table td:last-child{border-right:0}
.ff-compare-table .ff-compare-label{width:14%;text-align:left;font-family:var(--sans);font-size:13px;font-weight:500;background:#ebefdf;color:#3f5643}
.ff-compare-table thead th{background:#e6edda;border-bottom:2px solid #a27e44}
.ff-compare-room-name{font-family:var(--serif);font-size:29px;font-weight:400;line-height:1.05;display:block;color:#183e2e}
.ff-compare-table tbody tr:nth-child(even) td{background:#f1f3e8}
.ff-compare-table .ff-compare-price strong{display:block;font-family:var(--serif);font-weight:500;font-size:30px;line-height:1.2;white-space:nowrap}
.ff-compare-table .ff-compare-price span{display:block;font-size:12px;line-height:1.5;margin-top:5px;color:#4a614b}
.ff-compare-table tfoot th,.ff-compare-table tfoot td{border-bottom:0;padding:16px 10px}
.ff-river-grove #compare-dialog .ff-compare-choice{width:100%;min-width:0;min-height:62px;padding:10px 8px;gap:6px;font-size:14px;font-weight:500;line-height:1.3}
.ff-river-grove #compare-dialog .ff-compare-choice svg{width:17px;height:17px;flex:0 0 17px}
.ff-river-grove #compare-dialog .ff-dialog-smallprint{font-size:13px;line-height:1.6;text-align:center;max-width:920px;margin:18px auto 0}
.ff-compare-pickers,.ff-compare-mobile-note{display:none}
/* Quiet footer contacts, full controls retained on the dedicated Contact page. */
.ff-river-grove .ff-reservation-contacts.is-compact .ff-contact-number{background:transparent;border:0;border-bottom:1px solid #c7d1bc30;border-radius:0;padding:10px 0;margin:0;gap:0;box-shadow:none}
.ff-river-grove .ff-reservation-contacts.is-compact .ff-contact-label{position:absolute;width:1px;height:1px;clip:rect(0,0,0,0);overflow:hidden;white-space:nowrap}
.ff-river-grove .ff-reservation-contacts.is-compact .ff-contact-phone{font-size:18px;min-height:28px;line-height:1.4}
.ff-river-grove .ff-reservation-contacts.is-compact .ff-contact-actions{display:flex;gap:18px;justify-content:flex-start}
.ff-river-grove .ff-reservation-contacts.is-compact .ff-contact-actions a{background:transparent;border:0;border-radius:0;padding:5px 0;min-height:44px;font-size:14px;gap:7px}
.ff-river-grove .ff-reservation-contacts.is-compact .ff-contact-actions svg{width:16px;height:16px;flex-basis:16px}
.ff-river-grove .ff-queen-actions{align-items:flex-start;justify-content:flex-start}
.ff-river-grove .ff-queen-actions .button{min-width:160px}
@media(hover:hover) and (pointer:fine){.ff-river-grove .ff-room-action-grid>.button:not(.ff-room-action-book):hover{background:#e7efdf;color:#183e2e;border-color:#5c7c5a}}
@media(max-width:800px){
 .ff-river-grove .header-inner{grid-template-columns:44px minmax(0,1fr) 44px;gap:10px;height:86px}
 .ff-river-grove .header-inner>.menu-toggle{grid-column:1;grid-row:1}
 .ff-river-grove .header-inner>.brand-slot{grid-column:2;grid-row:1;height:82px}
 .ff-river-grove .header-inner>.nav-right{display:none}
 .ff-river-grove #menu-dialog.menu-dialog{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;overflow:hidden}
 .ff-river-grove #menu-dialog .dialog-shell{height:100dvh;overflow-y:auto;overscroll-behavior:contain;padding:20px 22px calc(24px + env(safe-area-inset-bottom))}
 .ff-river-grove #menu-dialog .dialog-head{position:sticky;top:0;z-index:5;background:var(--paper);padding-top:2px}
 .ff-river-grove #menu-dialog .menu-nav{margin:8px 0 0}
 .ff-river-grove #menu-dialog .menu-nav a{font-size:clamp(30px,9vw,38px);padding:10px 0;line-height:1.08}
 .ff-river-grove #menu-dialog .dialog-shell>.button,.ff-river-grove #menu-dialog .ff-direct-links,.ff-river-grove #menu-dialog .ff-dialog-smallprint,.ff-river-grove #menu-dialog .dialog-shell>.text-link{display:none}
 .ff-river-grove .ff-room-action-grid{max-width:none}
 .ff-river-grove .ff-room-action-grid>.button{min-height:62px;font-size:16px}
 .ff-river-grove .ff-queen-actions{display:none}
 .ff-river-grove .ff-queen-caption{margin-top:18px;display:block}
}
@media(max-width:760px){
 .ff-river-grove #compare-dialog.comparison-dialog{width:calc(100vw - 20px);max-width:calc(100vw - 20px);max-height:calc(100dvh - 20px)}
 .ff-river-grove #compare-dialog .dialog-shell{padding:20px 14px}
 .ff-river-grove #compare-dialog .dialog-head{grid-template-columns:30px minmax(0,1fr) 44px;gap:6px;padding-bottom:16px;margin-bottom:16px}
 .ff-river-grove #compare-dialog .dialog-head h2{font-size:32px;line-height:1.05;letter-spacing:-.4px}
 .ff-river-grove #compare-dialog .dialog-head .eyebrow{font-size:10px;letter-spacing:.6px}
 .ff-river-grove #compare-dialog.ff-compare-pair .ff-compare-pickers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:10px}
 .ff-compare-pickers label{display:block;font-size:12px;line-height:1.4;color:#425640;min-width:0}
 .ff-compare-pickers label>span{display:block;margin-bottom:5px}
 .ff-compare-pickers select{display:block;width:100%;min-width:0;min-height:48px;padding:10px 30px 10px 10px;border:1px solid #92a184;border-radius:4px;background-color:#fbf9ef;color:#183e2e;font-size:16px;font-family:var(--sans)}
 .ff-river-grove #compare-dialog.ff-compare-pair .ff-compare-mobile-note{display:block;text-align:center;font-size:12px;line-height:1.5;color:#52654e;margin:0 0 14px}
 .ff-compare-pair .ff-compare-table [data-compare-col]:not(.is-compared){display:none}
 .ff-compare-table{min-width:780px;font-size:14px}
 .ff-compare-pair .ff-compare-table{min-width:0}
 .ff-compare-pair .ff-compare-table .ff-compare-label{width:23%;font-size:12px;padding:13px 7px}
 .ff-compare-table th,.ff-compare-table td{padding:14px 8px}
 .ff-compare-room-name{font-size:25px;line-height:1.05}
 .ff-compare-table .ff-compare-price strong{font-size:26px}
 .ff-compare-table .ff-compare-price span{font-size:11px}
 .ff-river-grove #compare-dialog .ff-compare-choice{font-size:13px;line-height:1.4;min-height:60px;gap:3px;padding:9px 5px}
 .ff-river-grove #compare-dialog .ff-compare-choice svg{display:none}
 .ff-river-grove #compare-dialog .ff-dialog-smallprint{font-size:12px;line-height:1.6}
}
@media(max-width:380px){
 .ff-river-grove .ff-room-action-grid{gap:8px;grid-auto-rows:minmax(62px,auto)}
 .ff-river-grove .ff-room-action-grid>.button{padding:9px 7px;font-size:14px;gap:6px}
 .ff-river-grove .ff-room-action-grid .ff-button-label small{font-size:11px}
 .ff-river-grove .ff-room-action-grid>.button>svg{height:17px;width:17px;flex-basis:17px}
 .ff-river-grove #compare-dialog .dialog-shell{padding:18px 10px}
 .ff-compare-room-name{font-size:22px}
 .ff-compare-table{font-size:13px;line-height:1.5}
 .ff-compare-table .ff-compare-price strong{font-size:24px}
}
@media print{.ff-river-grove .ff-room-action-grid{display:none}.ff-compare-pickers{display:none!important}}
