/* Guest-facing design layer. Admin styles remain separate. */
:root {
    --guest-ink: #181713;
    --guest-charcoal: #171714;
    --guest-paper: #f2eee7;
    --guest-paper-deep: #e9e2d6;
    --guest-gold: #bd945a;
    --guest-muted: #b8b1a6;
}

html { scroll-behavior: smooth; }
body.home { background: var(--guest-charcoal); }
body.home #rooms, body.home #about, body.home #facilities,
body.home #amenities, body.home #film, body.home #guest-reviews, body.home #gallery, body.home #faq, body.home #contact, body.home #site-footer { scroll-margin-top: 90px; }

/* Header and first impression */
.home .navbar-top { display: none; }
.home .navbar, .home .navbar.nav-scroll { background: var(--guest-paper) !important; height: 82px; border-bottom: 1px solid #ded5c8; box-shadow: none !important; }
.home .navbar .navbar-nav .nav-link,
.home .navbar.nav-scroll .navbar-collapse .nav-link { color: var(--guest-ink) !important; font-family: Urbanist, sans-serif; font-size: 13px; letter-spacing: .04em; }
.home .navbar .navbar-nav .nav-link.active,
.home .navbar .navbar-nav .nav-link:hover { color: #98703b !important; }
.home .navbar .dropdown .nav-link i { color: #98703b !important; }
.home .navbar .dropdown-menu { background: var(--guest-paper); border: 1px solid #ded5c8; }
.home .navbar .dropdown-menu li a { color: var(--guest-ink); }
.home .navbar .dropdown-menu li a:hover { color: #98703b; }
.home .navbar .logo-wrapper img { max-height: 68px; width: auto; }
.home .navbar .container { max-width: 1360px; }
.home .navbar .navbar-nav { gap: 5px; }
.home .btn-brand-cta, .guest-subpage .guest-page-cta {
    border-radius: 3px !important;
    background: var(--guest-gold) !important;
    color: #171714 !important;
    font-weight: 700 !important;
    letter-spacing: .07em !important;
    transition: background .2s ease, transform .2s ease !important;
}
.home .btn-brand-cta:hover, .guest-subpage .guest-page-cta:hover {
    background: #d4ae79 !important;
    color: #171714 !important;
    transform: translateY(-2px);
}
.home .guest-hero { background: var(--guest-paper); color: var(--guest-ink); border-bottom: 1px solid #ded5c8; }
.home .guest-hero-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, .98fr);
    align-items: stretch;
    gap: 56px;
    width: 100%;
    max-width: 1240px;
    min-height: min(630px, calc(100svh - 82px));
    margin: 0 auto;
    padding: 0 24px;
}
.home .guest-hero-content { display: flex; flex-direction: column; justify-content: center; padding: 62px 0 58px; }
.home .guest-hero .guest-eyebrow, .guest-rooms .guest-eyebrow {
    margin: 0 0 18px;
    color: #98703b;
    font: 600 12px/1.4 Urbanist, sans-serif;
    letter-spacing: .23em;
    text-transform: uppercase;
}
.home .guest-hero .guest-eyebrow span { padding: 0 8px; }
.home .guest-hero h1 {
    max-width: 600px;
    margin: 0;
    color: var(--guest-ink);
    font: 400 clamp(50px, 5.15vw, 72px)/1.09 "Gilda Display", Georgia, serif;
    letter-spacing: -.04em;
    text-transform: none;
    text-wrap: balance;
}
.home .guest-hero .guest-hero-copy {
    max-width: 470px;
    margin: 23px 0 0;
    color: #686157;
    font: 400 17px/1.65 Urbanist, sans-serif;
    letter-spacing: -.02em;
}
.home .guest-hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 24px; margin-top: 34px; }
.home .guest-hero-actions .btn-brand-cta { min-height: 52px; padding: 16px 25px !important; }
.home .guest-text-link { color: #715127; font: 700 12px/1.4 Urbanist, sans-serif; letter-spacing: .09em; text-decoration: none; text-transform: uppercase; border-bottom: 1px solid #b39165; padding: 10px 0; }
.home .guest-text-link:hover { color: var(--guest-ink); }
.home .guest-hero .guest-hero-note { margin: 45px 0 0; padding-top: 20px; border-top: 1px solid #dcd2c4; color: #777064; font: 600 11px/1.5 Urbanist, sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.home .guest-hero-note span { padding: 0 8px; color: #a27a45; }
.home .guest-hero-media { position: relative; min-height: 500px; margin: 30px 0; overflow: hidden; background: #d6c9b7; }
.home .guest-hero-slides { position: absolute; inset: 0; }
.home .guest-hero-media .guest-hero-slide { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .7s ease; }
.home .guest-hero-media .guest-hero-slide.is-active { opacity: 1; }
.home .guest-hero-slide:nth-child(1) { object-position: 58% center; }
.home .guest-hero-slide:nth-child(2) { object-position: 38% center; }
.home .guest-hero-slide:nth-child(3) { object-position: center; }
.home .guest-hero-carousel-controls { position: absolute; left: 18px; bottom: 18px; z-index: 2; display: flex; align-items: center; gap: 8px; padding: 11px 14px; background: rgba(23,23,20,.85); }
.home .guest-hero-dot { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 50%; background: rgba(255,255,255,.55); cursor: pointer; transition: width .2s ease, background .2s ease; }
.home .guest-hero-dot.is-active { width: 23px; border-radius: 8px; background: #d1ab74; }
.home .guest-hero-dot:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
.home .guest-hero-slide-count { margin-left: 7px; color: #fff; font: 600 10px/1 Urbanist, sans-serif; letter-spacing: .1em; }
.home .guest-hero-media figcaption { position: absolute; right: 0; bottom: 0; padding: 13px 17px; background: var(--guest-paper); color: #675c4e; font: 700 10px/1.4 Urbanist, sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.home .guest-hero-media figcaption span { padding: 0 5px; color: #a27a45; }

/* The room list is the first section guests see after the hero. Rates come from the room table. */
.guest-rooms { background: var(--guest-paper); color: var(--guest-ink); padding: 105px 0 115px; }
.guest-rooms .container { max-width: 1240px; padding-inline: 24px; }
.guest-section-heading { display: flex; justify-content: space-between; align-items: end; gap: 45px; margin-bottom: 42px; }
.guest-rooms .guest-eyebrow { color: #98703b; margin-bottom: 12px; }
.guest-section-heading h2 { margin: 0; color: var(--guest-ink); font: 400 clamp(42px, 4.4vw, 64px)/1.12 "Gilda Display", Georgia, serif; letter-spacing: -.04em; text-transform: none; }
.guest-section-heading > p { max-width: 410px; margin: 0 0 4px; color: #686157; font: 400 16px/1.65 Urbanist, sans-serif; letter-spacing: -.02em; }
.guest-room-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 21px; }
.guest-room-card { display: flex; flex-direction: column; min-width: 0; background: #fff; border: 1px solid #e5ddd1; box-shadow: 0 18px 38px rgba(37,29,18,.055); }
.guest-room-image { height: 265px; overflow: hidden; background: var(--guest-paper-deep); }
.guest-room-image img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .5s ease; }
.guest-room-card:hover .guest-room-image img { transform: scale(1.035); }
.guest-room-body { display: flex; flex-direction: column; flex: 1; padding: 26px 28px 27px; }
.guest-room-title-row { display: flex; justify-content: space-between; align-items: start; gap: 8px; }
.guest-room-title-row h3 { margin: 0; color: var(--guest-ink); font: 400 30px/1.14 "Gilda Display", Georgia, serif; letter-spacing: -.035em; text-transform: none; }
.guest-room-rate { margin: 3px 0 0; white-space: nowrap; color: #716a60; font: 500 12px/1.3 Urbanist, sans-serif; }
.guest-room-rate strong { color: #8c642e; font-size: 16px; font-weight: 700; }
.guest-room-description { min-height: 50px; margin: 16px 0 22px; color: #6d665d; font: 400 14px/1.6 Urbanist, sans-serif; }
.guest-room-features { display: flex; flex-wrap: wrap; gap: 7px; margin-top: auto; }
.guest-room-features span { padding: 5px 9px; background: #f3efe8; color: #514b43; font: 600 11px/1.3 Urbanist, sans-serif; letter-spacing: .02em; }
.guest-room-link { display: flex; align-items: center; margin-top: 25px; padding-top: 16px; border-top: 1px solid #e9e4db; color: #715127; font: 700 12px/1.4 Urbanist, sans-serif; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; }
.guest-room-link:hover { color: #171714; }

/* About the property, after the room choices. */
.home #about.guest-about { background: var(--guest-paper-deep); padding: 110px 0; }
.home .guest-about-inner { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(0,.95fr); align-items: center; gap: clamp(50px, 6vw, 90px); max-width: 1240px; margin: 0 auto; padding: 0 24px; }
.home .guest-about-visual { position: relative; height: 560px; margin: 0; overflow: hidden; background: #c9c0b1; }
.home .guest-about-visual img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.home .guest-about-visual figcaption { position: absolute; right: 0; bottom: 0; padding: 14px 18px; background: var(--guest-paper-deep); color: #675c4e; font: 700 10px/1.4 Urbanist, sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.home .guest-about-visual figcaption span { padding: 0 5px; color: #a27a45; }
.home .guest-about-content { max-width: 510px; }
.home .guest-about-content .guest-eyebrow { margin: 0 0 18px; color: #98703b; font: 600 12px/1.4 Urbanist, sans-serif; letter-spacing: .23em; text-transform: uppercase; }
.home .guest-about-content h2 { margin: 0; color: var(--guest-ink); font: 400 clamp(48px, 5vw, 68px)/1.1 "Gilda Display", Georgia, serif; letter-spacing: -.04em; text-transform: none; text-wrap: balance; }
.home .guest-about-lede { margin: 27px 0 0; color: #3a352f; font: 500 20px/1.55 Urbanist, sans-serif; letter-spacing: -.02em; }
.home .guest-about-copy { margin: 25px 0 0; padding-top: 25px; border-top: 1px solid #cabfad; color: #625b51; font: 400 16px/1.7 Urbanist, sans-serif; }
.home .guest-about-link { display: inline-block; margin-top: 31px; padding-bottom: 9px; border-bottom: 1px solid #b39165; color: #715127; font: 700 12px/1.4 Urbanist, sans-serif; letter-spacing: .09em; text-decoration: none; text-transform: uppercase; }
.home .guest-about-link:hover { color: var(--guest-ink); }
.home .guest-about-link:focus-visible { outline: 2px solid #98703b; outline-offset: 4px; }

/* Four ways to stay, using photographs of the property. */
.home #facilities.guest-experience { background: #24221e; color: var(--guest-paper); padding: 105px 0 115px; }
.home .guest-experience-inner { max-width: 1240px; margin: 0 auto; padding: 0 24px; }
.home .guest-experience-heading { display: flex; align-items: end; justify-content: space-between; gap: 46px; margin-bottom: 42px; }
.home .guest-experience-heading .guest-eyebrow { margin: 0 0 14px; color: #cda66e; font: 600 12px/1.4 Urbanist, sans-serif; letter-spacing: .23em; text-transform: uppercase; }
.home .guest-experience-heading h2 { max-width: 740px; margin: 0; color: #f2eee7; font: 400 clamp(43px, 4.8vw, 64px)/1.1 "Gilda Display", Georgia, serif; letter-spacing: -.04em; text-transform: none; text-wrap: balance; }
.home .guest-experience-heading > p { max-width: 315px; margin: 0 0 5px; color: #c3bcb1; font: 400 16px/1.65 Urbanist, sans-serif; }
.home .guest-experience-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 18px; }
.home .guest-experience-card { min-width: 0; background: var(--guest-paper); color: var(--guest-ink); }
.home .guest-experience-image { height: 295px; overflow: hidden; background: #b8ad9d; }
.home .guest-experience-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.home .guest-experience-card:nth-child(2) img { object-position: center 58%; }
.home .guest-experience-card:nth-child(3) img { object-position: center 65%; }
.home .guest-experience-card:nth-child(4) img { object-position: center 44%; }
.home .guest-experience-body { min-height: 183px; padding: 25px 23px 28px; }
.home .guest-experience-number { color: #8d6635; font: 700 10px/1.4 Urbanist, sans-serif; letter-spacing: .15em; text-transform: uppercase; }
.home .guest-experience-body h3 { margin: 11px 0 11px; color: var(--guest-ink); font: 400 29px/1.15 "Gilda Display", Georgia, serif; letter-spacing: -.03em; text-transform: none; }
.home .guest-experience-body p { margin: 0; color: #696156; font: 400 14px/1.6 Urbanist, sans-serif; }

/* Practical comforts follow the darker stay-type section. */
.home #amenities.guest-amenities { background: var(--guest-paper); color: var(--guest-ink); padding: 105px 0 115px; }
.home .guest-amenities-inner { max-width: 1240px; margin: 0 auto; padding: 0 24px; }
.home .guest-amenities-heading { display: flex; align-items: end; justify-content: space-between; gap: 60px; margin-bottom: 53px; }
.home .guest-amenities-heading .guest-eyebrow { margin: 0 0 15px; color: #98703b; font: 600 12px/1.4 Urbanist, sans-serif; letter-spacing: .23em; text-transform: uppercase; }
.home .guest-amenities-heading h2 { max-width: 680px; margin: 0; color: var(--guest-ink); font: 400 clamp(46px, 5vw, 67px)/1.1 "Gilda Display", Georgia, serif; letter-spacing: -.04em; text-transform: none; text-wrap: balance; }
.home .guest-amenities-intro { max-width: 340px; padding-bottom: 4px; }
.home .guest-amenities-intro p { margin: 0 0 24px; color: #686157; font: 400 16px/1.65 Urbanist, sans-serif; }
.home .guest-amenities-intro .btn-brand-cta { min-height: 48px; padding: 14px 22px !important; }
.home .guest-amenities-intro .btn-brand-cta:focus-visible { outline: 2px solid #98703b; outline-offset: 4px; }
.home .guest-amenities-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); border-top: 1px solid #ded5c8; border-left: 1px solid #ded5c8; }
.home .guest-amenity { min-width: 0; min-height: 222px; padding: 32px 31px 35px; border-right: 1px solid #ded5c8; border-bottom: 1px solid #ded5c8; background: #f7f4ee; }
.home .guest-amenity-icon { display: block; height: 58px; color: #98703b; font-size: 42px; line-height: 1; }
.home .guest-amenity h3 { margin: 0 0 9px; color: var(--guest-ink); font: 400 30px/1.15 "Gilda Display", Georgia, serif; letter-spacing: -.03em; text-transform: none; }
.home .guest-amenity p { max-width: 295px; margin: 0; color: #696156; font: 400 14px/1.6 Urbanist, sans-serif; }

/* A quiet introduction to the existing property film. */
.home #film.guest-film { background: var(--guest-paper-deep); color: var(--guest-ink); padding: 110px 0; }
.home .guest-film-inner { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); align-items: center; gap: clamp(52px, 7vw, 100px); max-width: 1240px; margin: 0 auto; padding: 0 24px; }
.home .guest-film-content { max-width: 450px; }
.home .guest-film-content .guest-eyebrow { margin: 0 0 18px; color: #98703b; font: 600 12px/1.4 Urbanist, sans-serif; letter-spacing: .23em; text-transform: uppercase; }
.home .guest-film-content h2 { margin: 0; color: var(--guest-ink); font: 400 clamp(48px, 4.8vw, 67px)/1.1 "Gilda Display", Georgia, serif; letter-spacing: -.04em; text-transform: none; text-wrap: balance; }
.home .guest-film-copy { max-width: 410px; margin: 25px 0 0; color: #625b51; font: 400 16px/1.7 Urbanist, sans-serif; }
.home .guest-film-detail { display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 36px 0 0; padding-top: 21px; border-top: 1px solid #cabfad; color: #71675b; font: 700 10px/1.5 Urbanist, sans-serif; letter-spacing: .13em; text-transform: uppercase; }
.home .guest-film-preview { position: relative; display: block; min-width: 0; height: 520px; overflow: hidden; background: #b4a99a; color: #fff; text-decoration: none; }
.home .guest-film-preview::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,10,10,0) 43%, rgba(10,10,10,.63) 100%); pointer-events: none; }
.home .guest-film-preview img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 55%; transition: transform .5s ease; }
.home .guest-film-preview:hover img { transform: scale(1.025); }
.home .guest-film-play { position: absolute; top: 50%; left: 50%; z-index: 1; display: flex; align-items: center; justify-content: center; width: 78px; height: 78px; border: 1px solid rgba(255,255,255,.85); border-radius: 50%; background: rgba(23,23,20,.38); color: #fff; font-size: 19px; transform: translate(-50%,-50%); transition: background .2s ease, transform .2s ease; }
.home .guest-film-preview:hover .guest-film-play { background: rgba(23,23,20,.75); transform: translate(-50%,-50%) scale(1.06); }
.home .guest-film-play i { margin-left: 4px; }
.home .guest-film-preview-label { position: absolute; right: 28px; bottom: 26px; left: 28px; z-index: 1; display: flex; align-items: baseline; justify-content: space-between; gap: 12px; color: #fff; font: 400 28px/1.2 "Gilda Display", Georgia, serif; }
.home .guest-film-preview-label small { font: 700 11px/1.4 Urbanist, sans-serif; letter-spacing: .12em; }
.home .guest-film-preview:focus-visible { outline: 3px solid #98703b; outline-offset: 5px; }
.home #imageModal .close-btn { padding: 0 4px; border: 0; background: transparent; line-height: 1; }
.home #imageModal .close-btn:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }

/* Verified guest quotes, shown in full without an autoplay carousel. */
.home #guest-reviews.guest-reviews { background: var(--guest-paper); color: var(--guest-ink); padding: 105px 0 115px; }
.home .guest-reviews-inner { max-width: 1240px; margin: 0 auto; padding: 0 24px; }
.home .guest-reviews-heading { display: flex; align-items: end; justify-content: space-between; gap: 45px; margin-bottom: 42px; }
.home .guest-reviews-heading .guest-eyebrow { margin: 0 0 15px; color: #98703b; font: 600 12px/1.4 Urbanist, sans-serif; letter-spacing: .23em; text-transform: uppercase; }
.home .guest-reviews-heading h2 { max-width: 700px; margin: 0; color: var(--guest-ink); font: 400 clamp(45px, 4.8vw, 65px)/1.1 "Gilda Display", Georgia, serif; letter-spacing: -.04em; text-transform: none; text-wrap: balance; }
.home .guest-reviews-heading > p { max-width: 300px; margin: 0 0 5px; color: #686157; font: 400 16px/1.65 Urbanist, sans-serif; }
.home .guest-review-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px; }
.home .guest-review-card { display: flex; flex-direction: column; min-width: 0; min-height: 390px; margin: 0; padding: 34px 31px 29px; border: 1px solid #ded5c8; background: #faf8f4; }
.home .guest-review-mark { display: block; height: 58px; color: #b38b54; font: 400 76px/.9 "Gilda Display", Georgia, serif; }
.home .guest-review-card > p { margin: 0; color: #39332c; font: 400 22px/1.45 "Gilda Display", Georgia, serif; letter-spacing: -.015em; }
.home .guest-review-card footer { margin-top: auto; padding-top: 30px; }
.home .guest-review-card cite { display: block; padding-top: 16px; border-top: 1px solid #ded5c8; color: #765526; font: normal 700 12px/1.4 Urbanist, sans-serif; letter-spacing: .08em; text-transform: uppercase; }

/* Three managed photos lead into the full photo and video collection. */
.home #gallery.guest-gallery { background: #22211d; color: #f2eee7; padding: 105px 0 115px; }
.home .guest-gallery-inner { max-width: 1240px; margin: 0 auto; padding: 0 24px; }
.home .guest-gallery-heading { display: flex; align-items: end; justify-content: space-between; gap: 48px; margin-bottom: 42px; }
.home .guest-gallery-heading .guest-eyebrow { margin: 0 0 15px; color: #cda66e; font: 600 12px/1.4 Urbanist, sans-serif; letter-spacing: .23em; text-transform: uppercase; }
.home .guest-gallery-heading h2 { max-width: 690px; margin: 0; color: #f2eee7; font: 400 clamp(47px, 5vw, 68px)/1.1 "Gilda Display", Georgia, serif; letter-spacing: -.04em; text-transform: none; text-wrap: balance; }
.home .guest-gallery-intro { max-width: 315px; padding-bottom: 4px; }
.home .guest-gallery-intro p { margin: 0 0 20px; color: #c3bcb1; font: 400 16px/1.65 Urbanist, sans-serif; }
.home .guest-gallery-intro a { display: inline-block; padding-bottom: 8px; border-bottom: 1px solid #cda66e; color: #e0bb84; font: 700 12px/1.4 Urbanist, sans-serif; letter-spacing: .09em; text-decoration: none; text-transform: uppercase; }
.home .guest-gallery-intro a:hover { color: #fff; }
.home .guest-gallery-intro a:focus-visible { outline: 2px solid #e0bb84; outline-offset: 4px; }
.home .guest-gallery-grid { display: grid; grid-template-columns: minmax(0,1.14fr) minmax(0,.86fr); grid-template-rows: 270px 270px; gap: 18px; }
.home .guest-gallery-grid--3 .guest-gallery-item:first-child { grid-row: span 2; }
.home .guest-gallery-grid--2 { grid-template-columns: repeat(2,minmax(0,1fr)); grid-template-rows: 500px; }
.home .guest-gallery-grid--1 { grid-template-columns: 1fr; grid-template-rows: 520px; }
.home .guest-gallery-item { position: relative; display: block; width: 100%; min-width: 0; min-height: 0; padding: 0; overflow: hidden; border: 0; background: #48433a; cursor: pointer; text-align: left; }
.home .guest-gallery-item::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,10,10,.24), transparent 35%, transparent 55%, rgba(10,10,10,.53)); pointer-events: none; }
.home .guest-gallery-item img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.home .guest-gallery-item:hover img { transform: scale(1.035); }
.home .guest-gallery-item:focus-visible { outline: 3px solid #e0bb84; outline-offset: 5px; }
.home .guest-gallery-index, .home .guest-gallery-open { position: absolute; z-index: 1; color: #fff; font: 700 11px/1.4 Urbanist, sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.home .guest-gallery-index { top: 23px; left: 25px; }
.home .guest-gallery-open { right: 25px; bottom: 22px; display: flex; align-items: center; gap: 10px; }
.home .guest-gallery-open i { font-size: 13px; }
.home .guest-gallery-empty { margin: 0; padding: 48px 30px; border: 1px solid #65594b; color: #d6ccbd; font: 400 16px/1.65 Urbanist, sans-serif; }

/* Answers follow the photo-led gallery with a quieter, paper-toned section. */
.home #faq.guest-faq { background: var(--guest-paper); color: var(--guest-ink); }
.home .guest-faq-inner { display: grid; grid-template-columns: minmax(0,.82fr) minmax(0,1.18fr); gap: clamp(54px, 7.5vw, 115px); max-width: 1240px; margin: 0 auto; padding: 112px 24px 120px; }
.home .guest-faq-intro { max-width: 450px; }
.home .guest-faq-intro .guest-eyebrow { margin: 0 0 18px; color: #98703b; font: 600 12px/1.4 Urbanist, sans-serif; letter-spacing: .23em; text-transform: uppercase; }
.home .guest-faq-intro h2 { margin: 0; color: var(--guest-ink); font: 400 clamp(47px, 4.8vw, 66px)/1.1 "Gilda Display", Georgia, serif; letter-spacing: -.04em; text-wrap: balance; }
.home .guest-faq-copy { max-width: 350px; margin: 25px 0 27px; color: #625b51; font: 400 16px/1.7 Urbanist, sans-serif; }
.home .guest-faq-link { display: inline-block; padding-bottom: 8px; border-bottom: 1px solid #98703b; color: #79572d; font: 700 12px/1.4 Urbanist, sans-serif; letter-spacing: .09em; text-decoration: none; text-transform: uppercase; }
.home .guest-faq-link:hover { color: var(--guest-ink); }
.home .guest-faq-link:focus-visible { outline: 2px solid #98703b; outline-offset: 4px; }
.home .guest-faq-list { border-top: 1px solid #cbbfad; }
.home .guest-faq-item { border-bottom: 1px solid #cbbfad; }
.home .guest-faq-item summary { display: grid; grid-template-columns: 31px minmax(0,1fr) 28px; align-items: center; gap: 16px; min-height: 91px; padding: 22px 0; cursor: pointer; list-style: none; }
.home .guest-faq-item summary::-webkit-details-marker { display: none; }
.home .guest-faq-item summary:focus-visible { outline: 2px solid #98703b; outline-offset: 3px; }
.home .guest-faq-number { align-self: start; padding-top: 8px; color: #997448; font: 700 11px/1.4 Urbanist, sans-serif; letter-spacing: .08em; }
.home .guest-faq-question { color: #25221d; font: 400 25px/1.25 "Gilda Display", Georgia, serif; letter-spacing: -.025em; }
.home .guest-faq-item summary:hover .guest-faq-question { color: #805d33; }
.home .guest-faq-toggle { position: relative; width: 26px; height: 26px; color: #8a6536; }
.home .guest-faq-toggle::before, .home .guest-faq-toggle::after { content: ""; position: absolute; top: 12px; left: 6px; width: 15px; height: 1px; background: currentColor; }
.home .guest-faq-toggle::after { transform: rotate(90deg); transition: transform .2s ease; }
.home .guest-faq-item[open] .guest-faq-toggle::after { transform: rotate(0); }
.home .guest-faq-answer { padding: 0 47px 27px; }
.home .guest-faq-answer p { max-width: 560px; margin: 0; color: #625b51; font: 400 16px/1.7 Urbanist, sans-serif; }

/* Clear routes to the team, with the existing contact form in a light panel. */
.home #contact.guest-contact { background: #22211d; color: #f2eee7; }
.home .guest-contact-inner { display: grid; grid-template-columns: minmax(0,.84fr) minmax(0,1.16fr); align-items: start; gap: clamp(55px, 7vw, 105px); max-width: 1240px; margin: 0 auto; padding: 113px 24px 120px; }
.home .guest-contact-content { max-width: 470px; }
.home .guest-contact-content .guest-eyebrow { margin: 0 0 18px; color: #cda66e; font: 600 12px/1.4 Urbanist, sans-serif; letter-spacing: .23em; text-transform: uppercase; }
.home .guest-contact-content h2 { margin: 0; color: #f2eee7; font: 400 clamp(48px, 4.9vw, 67px)/1.1 "Gilda Display", Georgia, serif; letter-spacing: -.04em; text-wrap: balance; }
.home .guest-contact-copy { max-width: 405px; margin: 25px 0 41px; color: #c6beb2; font: 400 16px/1.7 Urbanist, sans-serif; }
.home .guest-contact-methods { border-top: 1px solid #5b5449; }
.home .guest-contact-method { display: grid; grid-template-columns: 72px minmax(0,1fr); gap: 20px; padding: 19px 0; border-bottom: 1px solid #5b5449; }
.home .guest-contact-method > span { padding-top: 5px; color: #cda66e; font: 700 11px/1.4 Urbanist, sans-serif; letter-spacing: .14em; text-transform: uppercase; }
.home .guest-contact-method address, .home .guest-contact-method a { margin: 0; color: #f2eee7; font: 400 19px/1.5 Urbanist, sans-serif; font-style: normal; text-decoration: none; overflow-wrap: anywhere; }
.home .guest-contact-method a:hover { color: #e0bb84; }
.home .guest-contact-method a:focus-visible, .home .guest-contact-map summary:focus-visible, .home .guest-contact-map-content a:focus-visible { outline: 2px solid #e0bb84; outline-offset: 4px; }
.home .guest-contact-map { margin-top: 19px; }
.home .guest-contact-map summary { display: flex; justify-content: space-between; align-items: center; gap: 15px; min-height: 47px; color: #e0bb84; cursor: pointer; font: 700 12px/1.4 Urbanist, sans-serif; letter-spacing: .09em; list-style: none; text-transform: uppercase; }
.home .guest-contact-map summary::-webkit-details-marker { display: none; }
.home .guest-contact-map summary span { font: 400 25px/1 Urbanist, sans-serif; transition: transform .2s ease; }
.home .guest-contact-map[open] summary span { transform: rotate(45deg); }
.home .guest-contact-map-content { padding-top: 12px; }
.home .guest-contact-map-content iframe { display: block; width: 100%; height: 230px; border: 0; background: #d8d0c4; }
.home .guest-contact-map-content a { display: inline-block; margin-bottom: 15px; color: #e0bb84; font: 600 13px/1.5 Urbanist, sans-serif; text-underline-offset: 4px; }
.home .guest-contact-form-panel { min-width: 0; padding: 46px clamp(30px, 4vw, 57px) 52px; background: var(--guest-paper); color: var(--guest-ink); }
.home .guest-contact-form-panel h3 { margin: 0; color: var(--guest-ink); font: 400 42px/1.15 "Gilda Display", Georgia, serif; letter-spacing: -.035em; }
.home .guest-contact-form-panel > p { margin: 14px 0 28px; color: #625b51; font: 400 16px/1.65 Urbanist, sans-serif; }
.home #contactForm { margin: 0; }
.home .guest-contact-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 17px; }
.home #contactForm label { display: block; margin-bottom: 9px; color: #4a4339; font: 700 11px/1.4 Urbanist, sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.home #contactForm input:not([type="hidden"]), .home #contactForm textarea { display: block; width: 100%; margin: 0 0 22px; padding: 13px 15px; border: 1px solid #cbbfad; border-radius: 0; background: #fbf9f5; color: var(--guest-ink); font: 400 16px/1.5 Urbanist, sans-serif; box-shadow: none; }
.home #contactForm input:not([type="hidden"]) { min-height: 50px; }
.home #contactForm textarea { min-height: 168px; resize: vertical; }
.home #contactForm input:focus-visible, .home #contactForm textarea:focus-visible { outline: 2px solid #98703b; outline-offset: 2px; }
.home #contactForm button { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 15px 27px; border: 0; border-radius: 2px; background: var(--guest-gold); color: var(--guest-ink); cursor: pointer; font: 700 12px/1.3 Urbanist, sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.home #contactForm button:hover { background: #d4ae79; }
.home #contactForm button:focus-visible { outline: 2px solid #98703b; outline-offset: 3px; }
.home #contactForm button:disabled { opacity: .7; cursor: wait; }
.home #formAlert:empty { display: none; }
.home #formAlert p { margin: 0 0 22px; padding: 12px 14px; border-radius: 0; font: 500 14px/1.5 Urbanist, sans-serif; }

/* Existing content, with a calmer rhythm and a consistent type hierarchy. */
.home #about, .home #facilities, .home #amenities, .home #gallery { --padding-top: 105px; --padding-bottom: 105px; }
.home .section-subtitle { color: #cda66e; font: 600 12px/1.4 Urbanist, sans-serif; letter-spacing: .23em; }
.home .section-title { font-family: "Gilda Display", Georgia, serif; font-size: clamp(42px, 4.4vw, 64px); line-height: 1.12; letter-spacing: -.04em; text-transform: none; text-wrap: balance; }
/* A final booking invitation and simple wayfinding after Contact. */
.home .guest-footer { background: #141410; color: #f2eee7; }
.home .guest-footer-inner { max-width: 1240px; margin: 0 auto; padding: 0 24px; }
.home .guest-footer-invite { display: flex; align-items: end; justify-content: space-between; gap: 50px; padding: 91px 0 75px; border-bottom: 1px solid #504a40; }
.home .guest-footer-invite .guest-eyebrow { margin: 0 0 17px; color: #cda66e; font: 600 12px/1.4 Urbanist, sans-serif; letter-spacing: .23em; text-transform: uppercase; }
.home .guest-footer-invite h2 { max-width: 770px; margin: 0; color: #f2eee7; font: 400 clamp(49px, 5vw, 69px)/1.1 "Gilda Display", Georgia, serif; letter-spacing: -.04em; text-wrap: balance; }
.home .guest-footer-invite p:last-child { margin: 19px 0 0; color: #c4bcaf; font: 400 16px/1.6 Urbanist, sans-serif; }
.home .guest-footer-cta { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; min-height: 50px; margin-bottom: 5px; padding: 15px 25px; border-radius: 2px; background: var(--guest-gold); color: var(--guest-ink); font: 700 12px/1.3 Urbanist, sans-serif; letter-spacing: .09em; text-decoration: none; text-transform: uppercase; transition: background .2s ease; }
.home .guest-footer-cta:hover { background: #d4ae79; color: var(--guest-ink); }
.home .guest-footer-main { display: grid; grid-template-columns: 1fr 1.05fr .95fr; gap: clamp(42px, 6vw, 85px); padding: 67px 0 79px; }
.home .guest-footer-brand img { display: block; width: 215px; max-width: 100%; height: auto; background: transparent; }
.home .guest-footer-brand > p { max-width: 270px; margin: 22px 0 0; color: #afa79a; font: 400 15px/1.7 Urbanist, sans-serif; }
.home .guest-footer-nav h3, .home .guest-footer-reach h3 { margin: 0 0 27px; color: #cda66e; font: 700 11px/1.4 Urbanist, sans-serif; letter-spacing: .17em; text-transform: uppercase; }
.home .guest-footer-nav ul { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 13px 24px; margin: 0; padding: 0; list-style: none; }
.home .guest-footer-nav a, .home .guest-footer-reach a { color: #d2cbc0; font: 400 15px/1.6 Urbanist, sans-serif; text-decoration: none; }
.home .guest-footer-nav a:hover, .home .guest-footer-reach a:hover, .home .guest-footer-socials a:hover, .home .guest-footer-top:hover { color: #e0bb84; }
.home .guest-footer-reach address { margin: 0 0 19px; font-style: normal; }
.home .guest-footer-reach > a { display: block; margin-top: 10px; overflow-wrap: anywhere; }
.home .guest-footer-bottom { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 18px 35px; min-height: 78px; padding: 22px 0; border-top: 1px solid #504a40; }
.home .guest-footer-bottom p, .home .guest-footer-socials a, .home .guest-footer-top { margin: 0; color: #aaa295; font: 400 12px/1.5 Urbanist, sans-serif; letter-spacing: .02em; text-decoration: none; }
.home .guest-footer-socials { display: flex; flex-wrap: wrap; gap: 12px 23px; margin: 0; padding: 0; list-style: none; }
.home .guest-footer-top { white-space: nowrap; }
.home .guest-footer a:focus-visible { outline: 2px solid #e0bb84; outline-offset: 4px; }

/* The four-step booking flow follows the same paper, ink and gold system. */
.home #bookingModal { position: fixed; inset: 0; z-index: 10000; display: none; align-items: center; justify-content: center; padding: 22px; background: rgba(18,17,14,.78); }
.home #bookingModal .booking-modal-card { position: relative; box-sizing: border-box; width: min(100%, 700px); max-width: 700px; max-height: calc(100svh - 44px); overflow-y: auto; padding: 43px 48px 42px; border: 0; background: var(--guest-paper); color: var(--guest-ink); box-shadow: 0 24px 70px rgba(0,0,0,.28); font-family: Urbanist, sans-serif; }
.home #bookingModal .booking-modal-close { position: absolute; top: 19px; right: 20px; display: grid; place-items: center; width: 35px; height: 35px; padding: 0; border: 0; background: transparent; color: #625b51; font-size: 28px; line-height: 1; cursor: pointer; }
.home #bookingModal .booking-modal-close:hover { color: var(--guest-ink); }
.home .booking-modal-heading .guest-eyebrow { margin: 0 0 13px; color: #98703b; font: 700 11px/1.4 Urbanist, sans-serif; letter-spacing: .2em; text-transform: uppercase; }
.home #bookingModal .booking-modal-heading h2 { margin: 0; color: var(--guest-ink); font: 400 45px/1.12 "Gilda Display", Georgia, serif; letter-spacing: -.04em; text-align: left; text-transform: none; }
.home .booking-modal-heading > p:last-child { max-width: 485px; margin: 10px 0 0; color: #625b51; font: 400 15px/1.6 Urbanist, sans-serif; }
.home #bookingModal .booking-stepper { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; margin: 31px 0 34px; padding: 25px 0 0; border-top: 1px solid #d3c9ba; list-style: none; }
.home #bookingModal .booking-stepper .step-item { min-width: 0; color: #7a7267; font: 700 10px/1.4 Urbanist, sans-serif; letter-spacing: .09em; text-align: center; text-transform: uppercase; }
.home #bookingModal .booking-stepper .step-item::before { content: attr(data-step-number); display: grid; place-items: center; width: 29px; height: 29px; margin: 0 auto 8px; border: 1px solid #bcb09f; border-radius: 50%; color: #766c60; font: 600 12px/1 Urbanist, sans-serif; }
.home #bookingModal .booking-stepper .step-item.is-active { color: #684921; }
.home #bookingModal .booking-stepper .step-item.is-active::before { border-color: #98703b; background: #98703b; color: #fff; }
.home #bookingModal .booking-stepper .step-item.is-complete { color: #555047; }
.home #bookingModal .booking-stepper .step-item.is-complete::before { content: "\2713"; border-color: #555047; background: #555047; color: #fff; }
.home #bookingModal .booking-step { display: none; }
.home #bookingModal .booking-step.is-active { display: block; }
.home #bookingModal .booking-step h3 { margin: 0; color: var(--guest-ink); font: 400 31px/1.2 "Gilda Display", Georgia, serif; letter-spacing: -.03em; }
.home #bookingModal .booking-step h3:focus { outline: none; }
.home #bookingModal .booking-step-copy { float: none; clear: none; width: auto; margin: 8px 0 23px; color: #625b51; font: 400 15px/1.55 Urbanist, sans-serif; }
.home #bookingModal .booking-date-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.home #bookingModal .booking-field { min-width: 0; margin-bottom: 18px; }
.home #bookingModal .booking-field label { display: block; margin: 0 0 8px; color: #51483d; font: 700 11px/1.4 Urbanist, sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.home #bookingModal .booking-field input { display: block; box-sizing: border-box; width: 100%; min-height: 51px; padding: 12px 13px; border: 1px solid #cbbfad; border-radius: 0; background: #fbf9f5; color: var(--guest-ink); font: 400 16px/1.4 Urbanist, sans-serif; box-shadow: none; }
.home #bookingModal .booking-field input[type="date"] { color-scheme: light; }
.home #bookingModal .booking-field input[type="date"]::-webkit-calendar-picker-indicator { filter: none; }
.home #bookingModal .booking-room-row { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 15px 0; border-bottom: 1px solid #d3c9ba; }
.home #bookingModal .booking-room-row:first-of-type { border-top: 1px solid #d3c9ba; }
.home #bookingModal .room-info label { display: block; color: var(--guest-ink); font: 400 23px/1.25 "Gilda Display", Georgia, serif; }
.home #bookingModal .room-info .room-price { display: block; margin-top: 4px; color: #79572d; font: 600 13px/1.5 Urbanist, sans-serif; }
.home #bookingModal .booking-room-row input.room { box-sizing: border-box; flex: 0 0 79px; width: 79px; min-height: 47px; padding: 10px; border: 1px solid #cbbfad; border-radius: 0; background: #fbf9f5; color: var(--guest-ink); font: 600 16px/1.4 Urbanist, sans-serif; text-align: center; }
.home #bookingModal .booking-total-row { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 0; padding: 23px 0 1px; border: 0; }
.home #bookingModal .booking-total-row label { color: #51483d; font: 700 11px/1.4 Urbanist, sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.home #bookingModal .booking-total-value { width: 190px; max-width: 55%; padding: 0; border: 0; background: transparent; color: #765329; font: 600 24px/1.2 Urbanist, sans-serif; text-align: right; }
.home #bookingModal .booking-summary { border-top: 1px solid #d3c9ba; }
.home #bookingModal .booking-summary .success-row { display: grid; grid-template-columns: minmax(0,.46fr) minmax(0,.54fr); gap: 15px; padding: 12px 0; border-bottom: 1px solid #d3c9ba; font: 400 14px/1.5 Urbanist, sans-serif; }
.home #bookingModal .booking-summary .success-row span:first-child { color: #686055; }
.home #bookingModal .booking-summary .success-row span:last-child { color: var(--guest-ink); font-weight: 600; overflow-wrap: anywhere; text-align: right; }
.home #bookingModal .booking-summary .booking-review-total span:last-child { color: #765329; font: 600 24px/1.2 Urbanist, sans-serif; }
.home #bookingModal .payment-trust-signal { display: flex; align-items: center; gap: 8px; justify-content: flex-start; margin: 23px 0 0; padding: 0; border: 0; background: transparent; color: #686055; font: 400 13px/1.5 Urbanist, sans-serif; }
.home #bookingModal .payment-trust-signal i { color: #98703b; }
.home #bookingModal .booking-step-actions { display: flex; gap: 12px; margin: 29px 0 0; }
.home #bookingModal .booking-step-actions button { flex: 1 1 auto; min-height: 51px; padding: 13px 18px; border-radius: 2px; font: 700 11px/1.4 Urbanist, sans-serif; letter-spacing: .09em; text-transform: uppercase; cursor: pointer; }
.home #bookingModal .booking-step-actions .btn-booking-next, .home #bookingModal .booking-step-actions .btn-booking-pay { border: 1px solid var(--guest-gold); background: var(--guest-gold); color: var(--guest-ink); }
.home #bookingModal .booking-step-actions .btn-booking-next:hover, .home #bookingModal .booking-step-actions .btn-booking-pay:hover { border-color: #d4ae79; background: #d4ae79; }
.home #bookingModal .booking-step-actions .btn-booking-back { flex: 0 0 auto; min-width: 99px; border: 1px solid #ab9f8e; background: transparent; color: #51483d; }
.home #bookingModal .booking-step-actions .btn-booking-back:hover { border-color: #684921; color: #684921; }
.home #bookingModal .booking-step-actions button:disabled { opacity: .65; cursor: wait; }
.home #bookingModal button:focus-visible, .home #bookingModal input:focus-visible { outline: 2px solid #98703b; outline-offset: 3px; }
.home #bookingSuccessModal .success-card { max-width: 500px; padding: 45px 38px 38px; border: 0; background: var(--guest-paper); color: var(--guest-ink); box-shadow: 0 24px 70px rgba(0,0,0,.28); }
.home #bookingSuccessModal h2 { color: var(--guest-ink); font: 400 38px/1.15 "Gilda Display", Georgia, serif; letter-spacing: -.035em; text-transform: none; }
.home #bookingSuccessModal .success-sub { color: #625b51; font: 400 15px/1.6 Urbanist, sans-serif; }
.home #bookingSuccessModal .success-details { border-color: #d3c9ba; }
.home #bookingSuccessModal .success-row span:first-child { color: #686055; }
.home #bookingSuccessModal .success-row span:last-child { color: var(--guest-ink); overflow-wrap: anywhere; }
.home #bookingSuccessModal .success-total { color: #765329 !important; }
.home #bookingSuccessModal .btn-success-close { background: var(--guest-gold); color: var(--guest-ink); }
.home #bookingSuccessModal .btn-success-close:hover { background: #d4ae79; }
.home #bookingSuccessModal .btn-success-close:focus-visible { outline: 2px solid #98703b; outline-offset: 3px; }

/* Menu and gallery share the same public identity. */
.guest-subpage { background: var(--guest-paper); color: var(--guest-ink); }
.guest-subpage .site-header { justify-content: space-between; gap: 20px; padding: 19px max(24px, calc((100vw - 1320px)/2)); background: var(--guest-paper); border-bottom: 1px solid #ded5c8; }
.guest-subpage .back-home-link { position: static; color: var(--guest-ink); font-size: 13px; letter-spacing: .04em; }
.guest-subpage .back-home-link:hover { color: #98703b; }
.guest-subpage .logo-wrap { padding: 0; }
.guest-subpage .logo-wrap img { max-width: 175px; max-height: 68px; width: auto; }
.guest-subpage .guest-page-cta { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: 11px 18px; font: 700 11px/1.2 Urbanist, sans-serif; text-decoration: none; text-transform: uppercase; white-space: nowrap; }
.guest-subpage .page-heading { max-width: 1320px; margin: 0 auto; padding: 85px 24px 52px; text-align: left; }
.guest-subpage .page-heading .eyebrow { color: #916a35; font-size: 12px; font-weight: 700; letter-spacing: .2em; }
.guest-subpage .page-heading h1 { color: var(--guest-ink); font: 400 clamp(45px, 5.5vw, 74px)/1.08 "Gilda Display", Georgia, serif; letter-spacing: -.045em; text-transform: none; }
.guest-subpage .page-heading p { max-width: 550px; margin: 20px 0 0; color: #686157; font-size: 16px; line-height: 1.6; }
.guest-subpage .container { max-width: 1320px; }
.guest-subpage button:focus-visible, .guest-subpage a:focus-visible,
.home .guest-room-link:focus-visible, .home .guest-text-link:focus-visible {
    outline: 2px solid #d4ae79;
    outline-offset: 3px;
}
.guest-subpage .guest-note { color: #756b5e; }

/* Full Gallery: editorial photo collection and native photo viewer. */
.guest-gallery-page .gallery-shell { width: 100%; max-width: 1320px; margin: 0 auto; padding-inline: 24px; }
.guest-gallery-page .gallery-kicker { margin: 0 0 17px; color: #99713d; font: 700 11px/1.4 Urbanist, sans-serif; letter-spacing: .2em; text-transform: uppercase; }
.guest-gallery-page .gallery-intro { background: var(--guest-paper); }
.guest-gallery-page .gallery-intro-inner { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(260px,.45fr); align-items: end; gap: 70px; max-width: 1320px; margin: 0 auto; padding: 94px 24px 89px; }
.guest-gallery-page .gallery-intro h1 { max-width: 790px; margin: 0; color: var(--guest-ink); font: 400 clamp(52px,6.5vw,88px)/1.05 "Gilda Display", Georgia, serif; letter-spacing: -.045em; }
.guest-gallery-page .gallery-intro-aside { padding: 0 0 5px 26px; border-left: 1px solid #b9986c; }
.guest-gallery-page .gallery-intro-aside p { margin: 0 0 25px; color: #625b51; font: 400 16px/1.65 Urbanist, sans-serif; }
.guest-gallery-page .gallery-intro-aside > span { color: #735329; font: 700 11px/1.4 Urbanist, sans-serif; letter-spacing: .11em; text-transform: uppercase; }
.guest-gallery-page .gallery-jump { display: flex; flex-wrap: wrap; gap: 8px 19px; margin-top: 22px; }
.guest-gallery-page .gallery-jump a { color: #765329; font: 700 11px/1.4 Urbanist, sans-serif; letter-spacing: .05em; text-decoration: underline; text-underline-offset: 4px; }
.guest-gallery-page .gallery-jump a:hover { color: var(--guest-ink); }
.guest-gallery-page .gallery-collection { padding: 92px 0 108px; background: var(--guest-charcoal); color: #f2eee7; }
.guest-gallery-page .gallery-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 35px; margin-bottom: 39px; }
.guest-gallery-page .gallery-section-heading h2 { margin: 0; color: inherit; font: 400 clamp(44px,5.2vw,66px)/1.1 "Gilda Display", Georgia, serif; letter-spacing: -.04em; }
.guest-gallery-page .gallery-section-heading > p { max-width: 310px; margin: 0 0 5px; color: #b7afa2; font: 400 15px/1.6 Urbanist, sans-serif; text-align: right; }
.guest-gallery-page .gallery-collection .gallery-kicker { color: #d5ad75; }
.guest-gallery-page .gallery-photo-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); grid-auto-rows: 270px; gap: 14px; }
.guest-gallery-page .gallery-photo { position: relative; display: block; width: 100%; height: 100%; overflow: hidden; padding: 0; border: 0; border-radius: 0; background: #39362e; color: #fff; text-align: left; cursor: pointer; }
.guest-gallery-page .gallery-photo:first-child { grid-column: span 2; grid-row: span 2; }
.guest-gallery-page .gallery-photo img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.guest-gallery-page .gallery-photo:hover img { transform: scale(1.035); }
.guest-gallery-page .gallery-photo-meta { position: absolute; inset: auto 0 0; display: flex; justify-content: space-between; gap: 15px; padding: 38px 18px 16px; background: linear-gradient(transparent,rgba(0,0,0,.58)); color: #fff; font: 700 10px/1.4 Urbanist, sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.guest-gallery-page .gallery-photo-meta i { margin-left: 6px; font-size: 11px; }
.guest-gallery-page .gallery-photo:focus-visible { outline: 3px solid #e0bb84; outline-offset: 3px; z-index: 1; }
.guest-gallery-page .gallery-empty { margin: 0; padding: 40px 0; border-top: 1px solid #655f55; color: #cbc3b6; font-size: 16px; }
.guest-gallery-page .gallery-films { padding: 96px 0 103px; background: var(--guest-paper); color: var(--guest-ink); }
.guest-gallery-page .gallery-films .gallery-section-heading > p { color: #686157; }
.guest-gallery-page .gallery-film-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.guest-gallery-page .gallery-film { min-width: 0; margin: 0; }
.guest-gallery-page .gallery-film video { display: block; width: 100%; aspect-ratio: 16/9; background: #171714; object-fit: cover; }
.guest-gallery-page .gallery-film figcaption { display: flex; align-items: baseline; gap: 16px; padding: 16px 0 0; border-top: 1px solid #d4c8b8; color: #39342e; font: 500 15px/1.5 Urbanist, sans-serif; }
.guest-gallery-page .gallery-film figcaption span { color: #936b35; font: 700 10px/1.4 Urbanist, sans-serif; letter-spacing: .1em; }
.guest-gallery-page .gallery-closer { padding: 79px 0 87px; background: var(--guest-paper-deep); text-align: center; }
.guest-gallery-page .gallery-closer h2 { margin: 0 0 27px; color: var(--guest-ink); font: 400 clamp(43px,5.2vw,66px)/1.1 "Gilda Display", Georgia, serif; letter-spacing: -.04em; }
.guest-gallery-page .gallery-closer-link { display: inline-flex; align-items: center; gap: 16px; min-height: 52px; padding: 14px 24px; background: var(--guest-gold); color: var(--guest-ink); font: 700 11px/1.3 Urbanist, sans-serif; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; }
.guest-gallery-page .gallery-closer-link:hover { background: #d4ae79; color: var(--guest-ink); }
.guest-gallery-page .gallery-page-footer { display: flex; justify-content: space-between; gap: 20px; padding: 25px max(24px,calc((100vw - 1272px)/2)); background: var(--guest-charcoal); color: #ada598; font: 400 12px/1.5 Urbanist, sans-serif; }
.guest-gallery-page .gallery-page-footer a { color: #d9c4a8; text-decoration: none; }
.guest-gallery-page .gallery-page-footer a:hover { color: #fff; }
.guest-gallery-page .gallery-lightbox { width: min(1080px,calc(100% - 24px)); max-width: none; max-height: calc(100svh - 24px); padding: 16px 18px 17px; border: 1px solid #5e5447; border-radius: 0; background: #171714; color: #f2eee7; }
.guest-gallery-page .gallery-lightbox[open] { display: flex; flex-direction: column; }
.guest-gallery-page .gallery-lightbox::backdrop { background: rgba(0,0,0,.89); }
.guest-gallery-page .gallery-lightbox-top { display: flex; align-items: center; justify-content: space-between; min-height: 38px; color: #c9bca9; font: 700 11px/1.4 Urbanist, sans-serif; letter-spacing: .12em; }
.guest-gallery-page .gallery-lightbox-close, .guest-gallery-page .gallery-lightbox-arrow { display: grid; place-items: center; border: 0; background: transparent; color: #f2eee7; cursor: pointer; }
.guest-gallery-page .gallery-lightbox-close { width: 38px; height: 38px; font-size: 27px; }
.guest-gallery-page .gallery-lightbox-stage { display: grid; grid-template-columns: 45px minmax(0,1fr) 45px; align-items: center; gap: 10px; min-height: 0; }
.guest-gallery-page .gallery-lightbox-stage img { display: block; max-width: 100%; max-height: calc(100svh - 180px); width: auto; height: auto; margin: 0 auto; object-fit: contain; }
.guest-gallery-page .gallery-lightbox-arrow { width: 45px; height: 45px; border: 1px solid #716a5e; font-size: 17px; }
.guest-gallery-page .gallery-lightbox-arrow:hover, .guest-gallery-page .gallery-lightbox-close:hover { color: #e0bb84; border-color: #e0bb84; }
.guest-gallery-page #galleryLightboxCaption { margin: 15px 55px 0; color: #d3cbc0; font: 400 13px/1.5 Urbanist, sans-serif; text-align: center; }
.guest-gallery-page .gallery-lightbox button:focus-visible { outline: 2px solid #e0bb84; outline-offset: 2px; }

/* Public food menu: a category directory beside readable menu sections. */
.guest-menu-page .menu-kicker { margin: 0 0 17px; color: #99713d; font: 700 11px/1.4 Urbanist, sans-serif; letter-spacing: .2em; text-transform: uppercase; }
.guest-menu-page .menu-intro { background: var(--guest-paper); }
.guest-menu-page .menu-intro-inner { display: grid; grid-template-columns: minmax(0,1.5fr) minmax(260px,.5fr); align-items: end; gap: 70px; max-width: 1320px; margin: 0 auto; padding: 94px 24px 87px; }
.guest-menu-page .menu-intro h1 { max-width: 800px; margin: 0; color: var(--guest-ink); font: 400 clamp(52px,6.5vw,86px)/1.05 "Gilda Display", Georgia, serif; letter-spacing: -.045em; }
.guest-menu-page .menu-intro-aside { padding: 0 0 5px 26px; border-left: 1px solid #b9986c; }
.guest-menu-page .menu-intro-aside p { margin: 0 0 24px; color: #625b51; font: 400 16px/1.65 Urbanist, sans-serif; }
.guest-menu-page .menu-intro-aside > span { display: block; color: #735329; font: 700 11px/1.4 Urbanist, sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.guest-menu-page .menu-intro-aside small { display: block; margin-top: 10px; color: #777066; font: 400 13px/1.5 Urbanist, sans-serif; }
.guest-menu-page .menu-layout { display: grid; grid-template-columns: 278px minmax(0,1fr); align-items: start; gap: 66px; max-width: 1320px; margin: 0 auto; padding: 45px 24px 109px; }
.guest-menu-page .menu-directory { position: sticky; top: 24px; display: flex; flex-direction: column; min-width: 0; max-height: calc(100svh - 48px); min-height: 0; padding: 26px 22px 20px; background: #24231f; color: #f2eee7; }
.guest-menu-page .menu-search { flex: 0 0 auto; padding-bottom: 22px; border-bottom: 1px solid #514b42; }
.guest-menu-page .menu-search label { display: block; margin-bottom: 10px; color: #d5ad75; font: 700 10px/1.4 Urbanist, sans-serif; letter-spacing: .15em; text-transform: uppercase; }
.guest-menu-page .menu-search-field { display: flex; align-items: center; min-height: 48px; padding: 0 12px; background: #f7f4ee; }
.guest-menu-page .menu-search-field input { min-width: 0; width: 100%; padding: 11px 0; border: 0; outline: 0; background: transparent; color: var(--guest-ink); font: 400 15px/1.4 Urbanist, sans-serif; }
.guest-menu-page .menu-search-field input:focus-visible { outline: 2px solid #d5ad75; outline-offset: 6px; }
.guest-menu-page .menu-search-field button { flex: 0 0 auto; padding: 5px 0 5px 8px; border: 0; background: transparent; color: #765329; font: 700 10px/1.4 Urbanist, sans-serif; text-decoration: underline; cursor: pointer; }
.guest-menu-page .menu-search-field button[hidden] { display: none; }
.guest-menu-page #menuResultCount { margin: 11px 0 0; color: #c3b9aa; font: 400 12px/1.5 Urbanist, sans-serif; }
.guest-menu-page .menu-category-nav { min-height: 0; overflow-y: auto; scrollbar-width: thin; scrollbar-color: #716557 transparent; }
.guest-menu-page .menu-category-nav > p { margin: 23px 0 7px; color: #d5ad75; font: 700 10px/1.4 Urbanist, sans-serif; letter-spacing: .15em; text-transform: uppercase; }
.guest-menu-page .menu-category-link { display: grid; grid-template-columns: 27px minmax(0,1fr); gap: 8px; padding: 11px 1px; border-bottom: 1px solid #454139; color: #e9e3d9; font: 500 13px/1.45 Urbanist, sans-serif; text-decoration: none; }
.guest-menu-page .menu-category-link span { color: #b99c75; font: 700 10px/1.6 Urbanist, sans-serif; }
.guest-menu-page .menu-category-link:hover { color: #e0bb84; }
.guest-menu-page .menu-category-link[hidden] { display: none; }
.guest-menu-page .menu-content { min-width: 0; }
.guest-menu-page .menu-content-heading { display: flex; align-items: end; justify-content: space-between; gap: 30px; padding: 14px 0 33px; }
.guest-menu-page .menu-content-heading .menu-kicker { margin: 0; }
.guest-menu-page .menu-content-heading > p:last-child { max-width: 320px; margin: 0; color: #6e665a; font: 400 14px/1.5 Urbanist, sans-serif; text-align: right; }
.guest-menu-page .menu-section { padding: 35px 0 55px; border-top: 1px solid #cfc3b3; scroll-margin-top: 28px; }
.guest-menu-page .menu-section[hidden], .guest-menu-page .menu-item[hidden] { display: none; }
.guest-menu-page .menu-section-heading { display: grid; grid-template-columns: 58px minmax(0,1fr) auto; align-items: baseline; gap: 16px; margin-bottom: 26px; }
.guest-menu-page .menu-section-heading > span, .guest-menu-page .menu-section-heading small { color: #8c6a40; font: 700 10px/1.5 Urbanist, sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.guest-menu-page .menu-section-heading small { color: #777066; white-space: nowrap; }
.guest-menu-page .menu-section-heading h2 { margin: 0; color: var(--guest-ink); font: 400 clamp(31px,3vw,43px)/1.16 "Gilda Display", Georgia, serif; letter-spacing: -.025em; }
.guest-menu-page .menu-item-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 30px; margin: 0; padding: 0; list-style: none; }
.guest-menu-page .menu-item { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: baseline; gap: 13px; min-height: 65px; padding: 16px 0; border-bottom: 1px solid #ddd3c5; }
.guest-menu-page .menu-item-name { min-width: 0; color: #38342d; font: 500 15px/1.5 Urbanist, sans-serif; overflow-wrap: anywhere; }
.guest-menu-page .menu-item-price { color: #79572d; font: 700 14px/1.5 Urbanist, sans-serif; white-space: nowrap; }
.guest-menu-page .menu-no-results { padding: 53px 30px; border: 1px solid #d5c8b7; background: #faf8f4; }
.guest-menu-page .menu-no-results[hidden] { display: none; }
.guest-menu-page .menu-no-results h2 { margin: 0 0 8px; color: var(--guest-ink); font: 400 34px/1.2 "Gilda Display", Georgia, serif; }
.guest-menu-page .menu-no-results p { margin: 0 0 20px; color: #686157; font: 400 15px/1.5 Urbanist, sans-serif; }
.guest-menu-page .menu-no-results button { padding: 11px 16px; border: 1px solid #876132; background: transparent; color: #684921; font: 700 11px/1.4 Urbanist, sans-serif; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; }
.guest-menu-page .menu-empty { max-width: 1320px; margin: 0 auto; padding: 80px 24px; color: #686157; font: 400 17px/1.6 Urbanist, sans-serif; }
.guest-menu-page .menu-closer { padding: 79px 24px 87px; background: var(--guest-charcoal); color: #f2eee7; text-align: center; }
.guest-menu-page .menu-closer .menu-kicker { color: #d5ad75; }
.guest-menu-page .menu-closer h2 { margin: 0 0 26px; font: 400 clamp(43px,5.2vw,66px)/1.1 "Gilda Display", Georgia, serif; letter-spacing: -.04em; }
.guest-menu-page .menu-closer a { display: inline-flex; align-items: center; gap: 16px; min-height: 52px; padding: 14px 24px; background: var(--guest-gold); color: var(--guest-ink); font: 700 11px/1.3 Urbanist, sans-serif; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; }
.guest-menu-page .menu-closer a:hover { background: #d4ae79; color: var(--guest-ink); }
.guest-menu-page .menu-page-footer { display: flex; justify-content: space-between; gap: 20px; padding: 25px max(24px,calc((100vw - 1272px)/2)); background: #11110f; color: #ada598; font: 400 12px/1.5 Urbanist, sans-serif; }
.guest-menu-page .menu-page-footer nav { display: flex; flex-wrap: wrap; gap: 12px 27px; }
.guest-menu-page .menu-page-footer a { color: #d9c4a8; text-decoration: none; }
.guest-menu-page .menu-page-footer a:hover { color: #fff; }

@media (max-width: 1064px) {
    .guest-menu-page .menu-layout { grid-template-columns: minmax(0,1fr); gap: 0; padding-top: 0; }
    .guest-menu-page .menu-directory { position: static; display: block; max-height: none; padding: 22px 24px 17px; }
    .guest-menu-page .menu-category-nav { display: flex; gap: 8px; overflow-x: auto; padding-top: 15px; }
    .guest-menu-page .menu-category-nav > p { display: none; }
    .guest-menu-page .menu-category-link { display: inline-flex; align-items: center; flex: 0 0 auto; gap: 8px; max-width: 310px; padding: 9px 13px; border: 1px solid #61594d; white-space: nowrap; }
    .guest-menu-page .menu-content-heading { padding-top: 43px; }
    .home .rixos-mob-menu-wrapper { background: var(--guest-paper); border-bottom: 1px solid #ded5c8; box-shadow: none; }
    .home .rixos-mob-menu-wrapper .nav-button span { background: var(--guest-ink); }
    .home .rixos-mob-menu-wrapper .main-menu { background: var(--guest-paper); }
    .home .rixos-mob-menu-wrapper .menusb a { color: var(--guest-ink); }
    .home .rixos-mob-menu-wrapper .menusb a:hover { color: #98703b; }
    .home .mob-sticky-book-bar { background: var(--guest-paper); border-top: 1px solid #ded5c8; box-shadow: 0 -4px 20px rgba(28,22,14,.12); }
    .home .mob-sticky-book-bar .mob-sticky-text { color: #514b43; }
    .home .guest-hero-layout { gap: 26px; min-height: 590px; }
    .home .guest-hero-media { min-height: 460px; }
    .guest-room-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .home .guest-experience-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 20px; }
    .home .guest-experience-image { height: 330px; }
    .home .guest-amenities-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .home .guest-review-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .home .guest-review-card:last-child { grid-column: span 2; min-height: 260px; }
    .home .guest-footer-main { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .home .guest-footer-brand { grid-column: 1 / -1; }
    .guest-subpage .site-header { padding: 16px 24px; }
}
@media (max-width: 900px) {
    .guest-menu-page .menu-intro-inner { grid-template-columns: 1fr; gap: 35px; padding-block: 72px; }
    .guest-menu-page .menu-intro-aside { max-width: 520px; }
    .guest-gallery-page .gallery-intro-inner { grid-template-columns: 1fr; gap: 35px; padding-block: 72px; }
    .guest-gallery-page .gallery-intro-aside { max-width: 520px; }
    .guest-gallery-page .gallery-photo-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .guest-gallery-page .gallery-film-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .home .guest-about-inner { grid-template-columns: 1fr; gap: 43px; }
    .home .guest-about-visual { height: 480px; }
    .home .guest-about-content { max-width: 680px; }
    .home .guest-film-inner { grid-template-columns: 1fr; gap: 38px; }
    .home .guest-film-content { max-width: 650px; }
    .home .guest-film-preview { height: 470px; }
    .home .guest-faq-inner { grid-template-columns: 1fr; gap: 46px; }
    .home .guest-faq-intro { max-width: 690px; }
    .home .guest-contact-inner { grid-template-columns: 1fr; gap: 50px; }
    .home .guest-contact-content { max-width: 690px; }
}
@media (max-width: 767px) {
    .guest-menu-page .menu-intro-inner { padding: 65px 20px 68px; }
    .guest-menu-page .menu-intro h1 { font-size: clamp(49px,11vw,65px); }
    .guest-menu-page .menu-intro-aside { padding-left: 18px; }
    .guest-menu-page .menu-layout { padding: 0 20px 79px; }
    .guest-menu-page .menu-directory { margin: 0 -20px; padding: 22px 20px 18px; }
    .guest-menu-page .menu-content-heading { display: block; padding: 37px 0 28px; }
    .guest-menu-page .menu-content-heading > p:last-child { margin-top: 9px; text-align: left; }
    .guest-menu-page .menu-section { padding: 31px 0 43px; }
    .guest-menu-page .menu-section-heading { grid-template-columns: minmax(0,1fr) auto; gap: 7px 14px; margin-bottom: 18px; }
    .guest-menu-page .menu-section-heading > span { grid-column: 1 / -1; }
    .guest-menu-page .menu-section-heading h2 { font-size: 34px; }
    .guest-menu-page .menu-item-list { grid-template-columns: 1fr; }
    .guest-menu-page .menu-item { min-height: 62px; }
    .guest-menu-page .menu-closer { padding: 70px 20px 76px; }
    .guest-menu-page .menu-page-footer { flex-direction: column; gap: 9px; padding: 27px 20px; }
    .guest-gallery-page .gallery-shell { padding-inline: 20px; }
    .guest-gallery-page .gallery-intro-inner { padding: 65px 20px 69px; }
    .guest-gallery-page .gallery-intro h1 { font-size: clamp(49px,11vw,65px); }
    .guest-gallery-page .gallery-intro-aside { padding-left: 18px; }
    .guest-gallery-page .gallery-collection, .guest-gallery-page .gallery-films { padding-block: 72px 80px; }
    .guest-gallery-page .gallery-section-heading { display: block; margin-bottom: 28px; }
    .guest-gallery-page .gallery-section-heading > p { margin: 15px 0 0; text-align: left; }
    .guest-gallery-page .gallery-photo-grid { grid-template-columns: 1fr; grid-auto-rows: auto; gap: 12px; }
    .guest-gallery-page .gallery-photo, .guest-gallery-page .gallery-photo:first-child { grid-column: auto; grid-row: auto; height: 280px; }
    .guest-gallery-page .gallery-photo:first-child { height: 350px; }
    .guest-gallery-page .gallery-film-grid { grid-template-columns: 1fr; gap: 32px; }
    .guest-gallery-page .gallery-closer { padding: 70px 20px 76px; }
    .guest-gallery-page .gallery-page-footer { flex-direction: column; gap: 9px; padding: 27px 20px; }
    .guest-gallery-page .gallery-lightbox { width: calc(100% - 12px); padding: 8px 6px 13px; }
    .guest-gallery-page .gallery-lightbox-stage { grid-template-columns: 34px minmax(0,1fr) 34px; gap: 3px; }
    .guest-gallery-page .gallery-lightbox-arrow { width: 34px; height: 40px; border: 0; }
    .guest-gallery-page .gallery-lightbox-stage img { max-height: calc(100svh - 160px); }
    .guest-gallery-page #galleryLightboxCaption { margin: 13px 35px 0; }
    .home .guest-hero-layout { display: block; min-height: 0; padding: 0 20px; }
    .home .guest-hero-content { padding: 62px 0 39px; }
    .home .guest-hero h1 { font-size: clamp(46px, 11vw, 62px); max-width: 600px; }
    .home .guest-hero .guest-hero-copy { font-size: 16px; }
    .home .guest-hero .guest-hero-note { margin-top: 34px; font-size: 10px; line-height: 1.8; }
    .home .guest-hero-actions { gap: 13px 21px; }
    .home .guest-hero-media { min-height: 0; height: 330px; margin: 0 -20px; }
    .home .guest-hero-media figcaption { font-size: 9px; }
    .guest-rooms { padding: 70px 0 76px; }
    .guest-section-heading { display: block; margin-bottom: 27px; }
    .guest-section-heading > p { margin-top: 17px; }
    .guest-room-grid { grid-template-columns: 1fr; gap: 17px; }
    .guest-room-image { height: 245px; }
    .home #about.guest-about { padding: 72px 0 77px; }
    .home .guest-about-inner { gap: 36px; padding: 0 20px; }
    .home .guest-about-visual { height: 320px; }
    .home .guest-about-visual figcaption { padding: 10px 12px; font-size: 9px; }
    .home .guest-about-content h2 { font-size: clamp(45px, 11vw, 60px); }
    .home .guest-about-lede { font-size: 18px; }
    .home .guest-about-copy { font-size: 15px; }
    .home #facilities.guest-experience { padding: 72px 0 78px; }
    .home .guest-experience-inner { padding: 0 20px; }
    .home .guest-experience-heading { display: block; margin-bottom: 30px; }
    .home .guest-experience-heading h2 { font-size: clamp(44px, 11vw, 60px); }
    .home .guest-experience-heading > p { margin: 17px 0 0; font-size: 15px; }
    .home .guest-experience-grid { grid-template-columns: 1fr; gap: 17px; }
    .home .guest-experience-image { height: 270px; }
    .home .guest-experience-body { min-height: 0; padding: 23px 23px 26px; }
    .home #amenities.guest-amenities { padding: 72px 0 79px; }
    .home .guest-amenities-inner { padding: 0 20px; }
    .home .guest-amenities-heading { display: block; margin-bottom: 32px; }
    .home .guest-amenities-heading h2 { font-size: clamp(45px, 11vw, 60px); }
    .home .guest-amenities-intro { max-width: 450px; margin-top: 20px; }
    .home .guest-amenities-intro p { margin-bottom: 21px; font-size: 15px; }
    .home .guest-amenities-grid { grid-template-columns: 1fr; }
    .home .guest-amenity { display: grid; grid-template-columns: 47px minmax(0,1fr); column-gap: 16px; min-height: 0; padding: 24px 20px; }
    .home .guest-amenity-icon { grid-row: span 2; height: auto; font-size: 33px; }
    .home .guest-amenity h3 { margin-bottom: 7px; font-size: 27px; }
    .home .guest-amenity p { max-width: none; }
    .home #film.guest-film { padding: 76px 0 80px; }
    .home .guest-film-inner { gap: 31px; padding: 0 20px; }
    .home .guest-film-content h2 { font-size: clamp(45px, 11vw, 60px); }
    .home .guest-film-copy { margin-top: 20px; font-size: 15px; }
    .home .guest-film-detail { margin-top: 27px; }
    .home .guest-film-preview { height: 360px; }
    .home .guest-film-play { width: 68px; height: 68px; font-size: 16px; }
    .home .guest-film-preview-label { right: 17px; bottom: 17px; left: 17px; font-size: 24px; }
    .home #guest-reviews.guest-reviews { padding: 76px 0 80px; }
    .home .guest-reviews-inner { padding: 0 20px; }
    .home .guest-reviews-heading { display: block; margin-bottom: 29px; }
    .home .guest-reviews-heading h2 { font-size: clamp(44px, 11vw, 60px); }
    .home .guest-reviews-heading > p { max-width: 450px; margin: 18px 0 0; font-size: 15px; }
    .home .guest-review-grid { grid-template-columns: 1fr; gap: 14px; }
    .home .guest-review-card, .home .guest-review-card:last-child { grid-column: auto; min-height: 0; padding: 28px 26px 25px; }
    .home .guest-review-mark { height: 53px; font-size: 70px; }
    .home .guest-review-card > p { font-size: 21px; }
    .home .guest-review-card footer { padding-top: 24px; }
    .home #gallery.guest-gallery { padding: 76px 0 80px; }
    .home .guest-gallery-inner { padding: 0 20px; }
    .home .guest-gallery-heading { display: block; margin-bottom: 30px; }
    .home .guest-gallery-heading h2 { font-size: clamp(46px, 11vw, 60px); }
    .home .guest-gallery-intro { max-width: 450px; margin-top: 18px; }
    .home .guest-gallery-intro p { margin-bottom: 17px; font-size: 15px; }
    .home .guest-gallery-grid, .home .guest-gallery-grid--1, .home .guest-gallery-grid--2 { grid-template-columns: 1fr; grid-template-rows: none; gap: 14px; }
    .home .guest-gallery-item, .home .guest-gallery-grid--3 .guest-gallery-item:first-child { grid-row: auto; height: 230px; }
    .home .guest-gallery-grid--3 .guest-gallery-item:first-child { height: 315px; }
    .home .guest-gallery-index { top: 17px; left: 18px; }
    .home .guest-gallery-open { right: 18px; bottom: 17px; }
    .home .guest-faq-inner { gap: 38px; padding: 76px 20px 82px; }
    .home .guest-faq-intro h2 { font-size: clamp(46px, 11vw, 60px); }
    .home .guest-faq-copy { margin: 20px 0 24px; font-size: 15px; }
    .home .guest-faq-item summary { grid-template-columns: 25px minmax(0,1fr) 24px; gap: 9px; min-height: 78px; padding: 19px 0; }
    .home .guest-faq-number { padding-top: 5px; }
    .home .guest-faq-question { font-size: 22px; }
    .home .guest-faq-answer { padding: 0 31px 23px 34px; }
    .home .guest-faq-answer p { font-size: 15px; }
    .home .guest-contact-inner { gap: 39px; padding: 77px 20px 82px; }
    .home .guest-contact-content h2 { font-size: clamp(46px, 11vw, 60px); }
    .home .guest-contact-copy { margin: 20px 0 30px; font-size: 15px; }
    .home .guest-contact-method { grid-template-columns: 58px minmax(0,1fr); gap: 16px; padding: 17px 0; }
    .home .guest-contact-method address, .home .guest-contact-method a { font-size: 17px; }
    .home .guest-contact-form-panel { padding: 33px 23px 37px; }
    .home .guest-contact-form-panel h3 { font-size: 36px; }
    .home .guest-contact-fields { grid-template-columns: 1fr; gap: 0; }
    .home #contactForm button { width: 100%; }
    .home .guest-footer-inner { padding: 0 20px; }
    .home .guest-footer-invite { display: block; padding: 72px 0 67px; }
    .home .guest-footer-invite h2 { font-size: clamp(45px, 11vw, 60px); }
    .home .guest-footer-invite p:last-child { font-size: 15px; }
    .home .guest-footer-cta { margin: 27px 0 0; }
    .home .guest-footer-main { grid-template-columns: 1fr; gap: 42px; padding: 53px 0 58px; }
    .home .guest-footer-brand { grid-column: auto; }
    .home .guest-footer-brand img { width: 205px; }
    .home .guest-footer-nav h3, .home .guest-footer-reach h3 { margin-bottom: 21px; }
    .home .guest-footer-bottom { align-items: start; flex-direction: column; gap: 17px; padding: 26px 0 97px; }
    .home #bookingModal { padding: 10px; }
    .home #bookingModal .booking-modal-card { width: 100%; max-height: calc(100svh - 20px); padding: 34px 24px 31px; }
    .home #bookingModal .booking-modal-close { top: 12px; right: 12px; }
    .home #bookingModal .booking-modal-heading h2 { font-size: 39px; }
    .home #bookingModal .booking-stepper { gap: 2px; margin: 27px 0 29px; padding-top: 20px; }
    .home #bookingModal .booking-stepper .step-item { font-size: 9px; letter-spacing: .03em; }
    .home #bookingModal .booking-step h3 { font-size: 29px; }
    .home #bookingModal .booking-date-grid { grid-template-columns: 1fr; gap: 0; }
    .home #bookingModal .booking-step-actions button { padding: 12px 11px; }
    .home #bookingModal .booking-step-actions .btn-booking-back { min-width: 79px; }
    .home #bookingModal .booking-summary .success-row { grid-template-columns: minmax(0,.43fr) minmax(0,.57fr); }
    .home #bookingSuccessModal .success-card { max-height: calc(100svh - 20px); overflow-y: auto; padding: 35px 24px; }
    .home #about, .home #facilities, .home #amenities, .home #gallery { --padding-top: 72px; --padding-bottom: 72px; }
    .guest-subpage .site-header { gap: 8px; }
    .guest-subpage .back-home-link { font-size: 0; }
    .guest-subpage .back-home-link i { font-size: 17px; }
    .guest-subpage .logo-wrap img { max-width: 125px; }
    .guest-subpage .guest-page-cta { font-size: 10px; padding: 9px 10px; }
    .guest-subpage .page-heading { padding: 68px 20px 36px; }
}
@media (max-width: 380px) {
    .home #bookingModal .booking-summary .booking-review-email { display: block; }
    .home #bookingModal .booking-summary .booking-review-email span { display: block; text-align: left; }
    .home #bookingModal .booking-summary .booking-review-email span:last-child { margin-top: 3px; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .guest-room-image img, .home .btn-brand-cta, .guest-subpage .guest-page-cta,
    .home .guest-hero-slide, .home .guest-hero-dot, .home .guest-film-preview img, .home .guest-film-play, .home .guest-gallery-item img, .home .guest-faq-toggle::after, .home .guest-contact-map summary span, .home .guest-footer-cta, .guest-gallery-page .gallery-photo img { transition: none !important; }
}
