/* Gattes Inn 7: full-frame hotel photography and six complete public layouts. */
.gattes-public { font-family:var(--g-body-font,Arial),Arial,sans-serif; --g-motion:680ms; --g-card-shadow:0 18px 48px #1720190d; }
.gattes-public #g-primary-nav>ul>li>a { font-family:Inter,Arial,sans-serif; font-size:13px; font-weight:500; letter-spacing:.015em; text-transform:none; }
.gattes-public .g-submenu-toggle { display:inline-grid; place-items:center; width:26px; height:28px; border:0; background:transparent; padding:0; color:inherit; vertical-align:middle; transition:transform 220ms ease; }
.g-submenu-toggle svg { display:block; }
.g-has-menu.is-open>.g-submenu-toggle { transform:rotate(180deg); }
.gattes-public #g-primary-nav li ul { border:1px solid color-mix(in srgb,var(--g-nav-text) 15%,transparent); border-radius:14px; padding:9px; box-shadow:0 20px 55px #0003; }
.gattes-public #g-primary-nav li ul a { font:400 13px/1.5 Inter,Arial,sans-serif; border-radius:8px; padding:12px 16px; }
.gattes-public a:focus-visible,.gattes-public button:focus-visible { outline:3px solid var(--g-gold); outline-offset:4px; }
.gattes-public .g-slider { height:clamp(650px,92svh,980px); min-height:650px; }
.gattes-public .g-slide-media img,.gattes-public .g-slide-media video { object-fit:cover; object-position:center; width:100%; height:100%; }
.gattes-public .g-slide-media iframe { width:100%; height:100%; border:0; }
.g-slide.is-active { animation:gattes-slide-in var(--g-motion) ease both; }
.g-slide-copy { padding-top:190px; padding-bottom:100px; }
.g-slide-copy>div { max-width:680px; }
.g-slide-copy h1 { font-weight:500; text-wrap:balance; }
.g-slider-controls { border:1px solid #ffffff36; padding:9px 16px; border-radius:40px; background:#102b3b70; backdrop-filter:blur(14px); }
.g-slider-controls>button { border-color:transparent; background:transparent; }
.g-slider-controls [data-slider-dots] button[aria-pressed=true] { width:24px; border-radius:8px; box-shadow:none; }
.g-availability { border-radius:18px; box-shadow:var(--g-card-shadow); border:1px solid color-mix(in srgb,var(--g-text) 9%,transparent); }
.g-card { overflow:hidden; position:relative; border-radius:18px; box-shadow:var(--g-card-shadow); transition:transform 300ms ease,box-shadow 300ms ease; }
.gattes-public .g-card>img,.gattes-public .g-card>a>img { display:block; width:100%; height:260px; aspect-ratio:4/3; object-fit:cover; object-position:center; transition:transform 650ms ease; }
.g-card:hover { transform:translateY(-6px); box-shadow:0 24px 58px #1720191a; }
.g-card:hover>img,.g-card:hover>a>img { transform:scale(1.045); }
.g-card>div { position:relative; background:var(--g-surface); }
.g-video-holder { padding:0; border-radius:28px 8px 28px 8px; box-shadow:0 20px 50px #0002; }
.g-video-holder>.g-eyebrow { position:absolute; z-index:2; top:24px; left:25px; color:#fff; background:#071d2b90; padding:8px 12px; border-radius:20px; }
.gattes-public .g-video-holder>img,.gattes-public .g-video-holder>video { object-fit:cover; aspect-ratio:4/5; width:100%; height:100%; min-height:480px; display:block; }
.g-video-caption { position:absolute; bottom:0; left:0; right:0; padding:55px 28px 26px; background:linear-gradient(transparent,#071d2bdd); }
.gattes-public .cms-block-media { position:relative; align-self:stretch; border-radius:30px 8px 30px 8px; overflow:hidden; box-shadow:var(--g-card-shadow); }
.gattes-public .cms-block-media img { width:100%; height:100%; min-height:390px; aspect-ratio:4/5; object-fit:cover; }
.gattes-public .cms-block-media video,.gattes-public .cms-block-media iframe { width:100%; height:100%; min-height:300px; }
.gattes-public .cms-block { gap:55px; margin-bottom:70px; align-items:stretch; }
.gattes-public .cms-block-copy { align-self:center; }
.gattes-public .g-meeting-photo img { width:100%; object-fit:cover; }
.gattes-public .g-ceo-message { background:transparent; border:0; box-shadow:none; padding:0; }
.gattes-public .g-ceo-layout { grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); gap:50px; align-items:start; }
.g-ceo-portrait { position:sticky; top:140px; }
.gattes-public .g-ceo-photo { width:100%; max-width:none; aspect-ratio:517/440; border-radius:90px 12px 90px 12px; border:10px solid var(--g-surface); background:var(--g-nav); box-shadow:0 25px 60px #0002; position:relative; height:auto; overflow:hidden; }
.gattes-public .g-ceo-photo img { display:block; position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.gattes-public .g-ceo-photo[data-composite="1"] { aspect-ratio:517/316; }
.gattes-public .g-ceo-photo[data-composite="1"] img { position:absolute; inset:auto 0 0; width:100%; height:auto; max-width:none; object-fit:initial; }
.g-ceo-name { padding:12px 22px; }
.gattes-public .g-ceo-crystal { position:relative; isolation:isolate; padding:48px; background:transparent; filter:drop-shadow(0 18px 25px #1720190d); }
.g-ceo-crystal::before { content:""; position:absolute; inset:0; z-index:-1; background:var(--g-surface); border:1px solid color-mix(in srgb,var(--g-gold) 40%,transparent); clip-path:polygon(36px 0,100% 0,100% calc(100% - 42px),calc(100% - 42px) 100%,0 100%,0 36px); }
.g-ceo-crystal::after { content:"“"; position:absolute; right:35px; top:-8px; font:120px Georgia,serif; color:color-mix(in srgb,var(--g-gold) 35%,transparent); z-index:-1; }
.gattes-public .g-ceo-crystal p { font-size:16px; line-height:1.95; color:var(--g-surface-text); }
.g-ceo-signature { padding-top:20px; border-top:1px solid color-mix(in srgb,var(--g-gold) 40%,transparent); }
.g-opening-photo { width:100%; border-radius:24px; object-fit:cover; }
.g-story-poster { object-fit:contain!important; background:var(--g-bg); }
.g-announcement-strip { position:relative; background:var(--g-nav); color:var(--g-nav-text); border-top:1px solid #ffffff20; padding:24px 0; }
.g-announcement-strip details+details { margin-top:16px; }
.g-announcement-strip summary { cursor:pointer; font-size:16px; font-weight:500; }
.g-announcement-strip p { white-space:pre-line; margin:12px 0; }
.g-announcement-strip a { color:var(--g-gold); }
/* One accessible carousel for scheduled news, announcements, events and quotes. */
.gattes-public .g-calendar-dialog { width:min(790px,calc(100vw - 32px)); max-width:790px; max-height:90svh; padding:0; border:1px solid #ffffff35; border-radius:24px; background:var(--g-surface); color:var(--g-surface-text); box-shadow:0 30px 100px #0005; overflow:auto; }
.g-calendar-dialog::backdrop { background:#081c2dc7; backdrop-filter:blur(7px); }
.g-popup-toolbar { display:flex; justify-content:space-between; align-items:center; padding:16px 24px; border-bottom:1px solid color-mix(in srgb,var(--g-text) 12%,transparent); }
.g-popup-toolbar p { margin:0; }
.g-popup-toolbar button { border:0; background:transparent; font-size:25px; color:inherit; }
.g-popup-slide { display:grid; grid-template-columns:44% minmax(0,1fr); min-height:350px; animation:gattes-slide-in 400ms ease; }
.g-popup-slide:not(:has(img)) { grid-template-columns:1fr; }
.g-popup-slide[hidden] { display:none!important; }
.g-popup-slide img { width:100%; height:100%; min-height:350px; object-fit:cover; }
.g-popup-slide img[data-fit="contain"] { object-fit:contain; background:var(--g-bg); padding:10px; }
.g-popup-copy { padding:32px; display:flex; flex-direction:column; justify-content:center; }
.g-popup-copy h2 { font-size:26px; line-height:1.25; margin:12px 0 18px; }
.g-popup-copy p { font-size:14px; white-space:pre-line; line-height:1.8; }
.g-popup-copy .g-button { align-self:flex-start; margin-top:14px; }
.g-popup-controls { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:16px 24px; border-top:1px solid color-mix(in srgb,var(--g-text) 12%,transparent); }
.g-popup-controls button { background:var(--g-bg); color:var(--g-text); border:1px solid color-mix(in srgb,var(--g-text) 15%,transparent); border-radius:30px; padding:8px 15px; min-height:40px; }
.g-popup-controls [data-popup-pause] { margin-left:auto; }
.g-agent-panel { box-shadow:0 20px 70px #0003; border-radius:22px; border:1px solid color-mix(in srgb,var(--g-gold) 50%,transparent); }
.g-agent-panel header { padding:20px; }
.g-agent-answer { border-radius:4px 18px 18px 18px; }
.g-agent-question { border-radius:18px 4px 18px 18px; }
.g-agent-chips button { font-size:12px; font-weight:400; }
.g-agent-help { padding:5px 18px 12px; }
.g-agent-panel form:has(button[disabled]) { opacity:.7; }
/* Heritage: a formal opening, gold-rule cards and framed split photography. */
.g-theme-heritage .g-card { border-radius:18px 18px 3px 3px; border-bottom:3px solid var(--g-gold); }
.g-theme-heritage .g-split { gap:64px; }
.g-theme-heritage .g-section-heading { border-bottom:1px solid color-mix(in srgb,var(--g-gold) 40%,transparent); padding-bottom:24px; }
/* Coastal: centered airy introduction and rounded photographic galleries. */
.g-theme-coastal .g-slide-copy { justify-content:center; text-align:center; }
.g-theme-coastal .g-slide-copy>div { max-width:810px; }
.g-theme-coastal .g-section-heading { justify-content:center; flex-direction:column; text-align:center; gap:16px; }
.g-theme-coastal .g-card-grid { gap:32px; }
.g-theme-coastal .g-card { border-radius:32px; border:0; }
.g-theme-coastal .g-card>div { text-align:center; padding:30px; }
.g-theme-coastal .g-video-holder { border-radius:120px 120px 24px 24px; }
/* Boutique: an editorial right-hand hero and alternating asymmetric cards. */
.g-theme-boutique .g-slide-copy { justify-content:flex-end; }
.g-theme-boutique .g-slide-copy>div { padding:36px; border:1px solid #ffffff50; border-radius:36px 4px 36px 4px; backdrop-filter:blur(8px); }
.g-theme-boutique .g-card-grid { gap:40px; align-items:start; }
.g-theme-boutique .g-card:nth-child(3n+2) { margin-top:35px; }
.g-theme-boutique .g-card { border-radius:32px 4px 32px 4px; }
.g-theme-boutique .g-split { grid-template-columns:1.1fr .9fr; }
/* Midnight: cinematic lower caption, panoramic first card and luminous rules. */
.g-theme-midnight .g-slide-copy { align-items:flex-end; padding-bottom:135px; }
.g-theme-midnight .g-slide-copy>div { max-width:790px; border-left:3px solid var(--g-gold); padding-left:30px; }
.g-theme-midnight .g-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.g-theme-midnight .g-card-grid>.g-card:first-child { grid-column:1/-1; display:grid; grid-template-columns:1.2fr 1fr; }
.g-theme-midnight .g-card-grid>.g-card:first-child>img { height:100%; min-height:300px; }
.g-theme-midnight .g-card { border-radius:12px; border:1px solid color-mix(in srgb,var(--g-gold) 30%,transparent); }
/* Savannah: a low, spacious hero with horizontal service and room tiles. */
.g-theme-savannah .g-slide-copy { align-items:flex-end; padding-bottom:125px; }
.g-theme-savannah .g-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.g-theme-savannah .g-card { display:grid; grid-template-columns:42% minmax(0,1fr); border-radius:4px; }
.g-theme-savannah .g-card>img { height:100%; min-height:250px; }
.g-theme-savannah .g-card>div { padding:24px; }
.g-theme-savannah .g-video-holder { border-radius:3px; border-bottom:8px solid var(--g-gold); }
/* Minimal: narrow editorial typography and spacious two-column photography. */
.g-theme-minimal .g-container { max-width:1150px; }
.g-theme-minimal .g-slide-copy h1 { font-family:Inter,Arial,sans-serif; font-size:clamp(38px,4.7vw,68px); font-weight:400; }
.g-theme-minimal .g-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:50px; }
.g-theme-minimal .g-card { border:0; box-shadow:none; border-radius:0; }
.g-theme-minimal .g-card>img { height:330px; }
.g-theme-minimal .g-card>div { padding:24px 0; border-bottom:1px solid color-mix(in srgb,var(--g-text) 20%,transparent); }
.g-theme-minimal .g-video-holder { border-radius:0; box-shadow:none; }
.g-theme-minimal .g-button { border-radius:0; font-weight:500; }
@keyframes gattes-slide-in { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:1000px) {
 .gattes-public .g-ceo-layout { gap:28px; grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); }
 .g-ceo-crystal { padding:34px!important; }
 .g-theme-savannah .g-card { display:block; }
 .g-theme-savannah .g-card>img { height:250px; }
 .gattes-public .g-slide-copy { padding-top:180px; }
}
@media(max-width:767px) {
 .gattes-public .g-slider { height:760px; min-height:660px; }
 .gattes-public .g-slide-copy { padding-top:230px; padding-bottom:110px; }
 .gattes-public .g-slide-copy h1 { font-size:40px; }
 .gattes-public .g-card-grid { grid-template-columns:1fr; gap:26px; }
 .gattes-public .g-card-grid>.g-card:first-child,.gattes-public .g-card { display:block; }
 .g-theme-boutique .g-card:nth-child(3n+2) { margin-top:0; }
 .gattes-public .g-card>img { height:280px; }
 .gattes-public .g-split,.gattes-public .g-ceo-layout { display:grid; grid-template-columns:1fr; gap:32px; }
 .g-ceo-portrait { position:static; }
 .gattes-public .g-ceo-layout aside { max-width:none; margin:0; }
 .gattes-public .g-ceo-photo { border-radius:65px 10px 65px 10px; }
 .gattes-public .cms-block-media img { min-height:340px; max-height:520px; }
 .g-video-holder img { min-height:380px!important; }
 .g-popup-slide { grid-template-columns:1fr; }
 .g-popup-slide img { min-height:0; height:230px; }
 .g-popup-slide img[data-fit="contain"] { height:320px; }
 .g-popup-copy { padding:24px; }
 .g-popup-controls { padding:12px 16px; }
 .g-slider-controls { padding:7px 9px; gap:6px; }
 .g-slider-controls [data-slider-dots] { max-width:42vw; }
 .g-agent-panel { right:12px; width:calc(100vw - 24px); max-height:80svh; }
}
@media(prefers-reduced-motion:reduce) {
 .gattes-public *, .gattes-public *::before,.gattes-public *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
 .g-card:hover { transform:none; }
}

.gattes-public h1,.gattes-public h2,.gattes-public h3 { font-family:var(--g-heading-font,Georgia),Georgia,serif; }

/* The room catalogue uses legacy room-block markup, with the same v7 frames. */
.gattes-public .room-block .inner-box,.gattes-public .room-block-two .inner-box { border-radius:24px 6px 24px 6px; overflow:hidden; box-shadow:var(--g-card-shadow); transition:transform 300ms ease,box-shadow 300ms ease; }
.gattes-public .room-block .image,.gattes-public .room-block-two .image { overflow:hidden; }
.gattes-public .room-block .image img,.gattes-public .room-block-two .image img { display:block; width:100%; object-fit:cover; transition:transform 650ms ease; }
.gattes-public .room-block:hover .image img,.gattes-public .room-block-two:hover .image img { transform:scale(1.04); }
@media(max-width:767px) { .gattes-public .room-block .image img,.gattes-public .room-block-two .image img { height:400px!important; } }
@media(prefers-reduced-motion:reduce) { .gattes-public .room-block:hover .image img,.gattes-public .room-block-two:hover .image img { transform:none; } }

.g-room-filters { display:flex; gap:12px; flex-wrap:wrap; margin:28px 0 16px; }
.g-room-filters button { border:1px solid color-mix(in srgb,var(--g-text) 18%,transparent); border-radius:30px; padding:12px 22px; background:var(--g-surface); color:var(--g-surface-text); font:500 13px Arial,sans-serif; }
.g-room-filters button[aria-pressed=true] { background:var(--g-nav); color:var(--g-nav-text); border-color:var(--g-nav); }
.g-room-photo { display:block; position:relative; overflow:hidden; }
.gattes-public .g-room-photo img { width:100%; height:300px; object-fit:cover; display:block; transition:transform 650ms ease; }
.g-room-badge { position:absolute; top:18px; left:18px; padding:7px 13px; background:var(--g-gold); color:var(--g-accent-text); border-radius:20px; font-size:11px; }
.g-room-card h3 a { color:inherit; }
.g-room-rate span { font-size:12px; }
.g-room-amenities { display:flex; gap:8px; flex-wrap:wrap; list-style:none; margin:16px 0 22px; padding:0; }
.g-room-amenities li { border:1px solid color-mix(in srgb,var(--g-text) 13%,transparent); border-radius:6px; padding:5px 8px; font-size:11px; }
.g-room-card[hidden] { display:none!important; }
.g-theme-savannah .g-room-card .g-room-photo img,.g-theme-midnight .g-room-card:first-child .g-room-photo img { height:100%; min-height:300px; }
@media(max-width:767px) { .gattes-public .g-room-photo img { height:300px; } }

.g-popup-toolbar { position:sticky; top:0; z-index:3; background:var(--g-surface); }
.g-popup-controls { position:sticky; bottom:0; z-index:3; background:var(--g-surface); }
