:root {
  --ink: #18201d;
  --ink-soft: #4f5954;
  --cream: #f4f0e8;
  --cream-deep: #e8e0d3;
  --white: #fffdf9;
  --brand-primary: #801915;
  --brand-primary-dark: #68110f;
  --burgundy: #801915;
  --copper: #801915;
  --line: rgba(24, 32, 29, .14);
  --line-light: rgba(255, 255, 255, .2);
  --shadow: 0 24px 70px rgba(25, 35, 31, .13);
  --serif: Georgia, "Times New Roman", serif;
  --sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --shell: min(1340px, calc(100vw - 80px));
  --radius: 10px;
}

/* Bidirectional layout for Hebrew and Arabic locales. */
html[dir="rtl"] body {
    text-align: right;
}

html[dir="rtl"] .header-main,
html[dir="rtl"] .header-utility,
html[dir="rtl"] .site-navigation,
html[dir="rtl"] .page-navigation,
html[dir="rtl"] .booking-grid,
html[dir="rtl"] .form-grid,
html[dir="rtl"] .price-calculator-actions,
html[dir="rtl"] .contact-route-actions {
    direction: rtl;
}

html[dir="rtl"] input[type="date"],
html[dir="rtl"] input[type="number"],
html[dir="rtl"] input[type="tel"],
html[dir="rtl"] .price-value,
html[dir="rtl"] .offer-period,
html[dir="rtl"] .header-phone,
html[dir="rtl"] .header-email {
    direction: ltr;
    text-align: right;
}

html[dir="rtl"] .text-link span,
html[dir="rtl"] .page-navigation a span,
html[dir="rtl"] .service-links a span {
    display: inline-block;
    transform: scaleX(-1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--cream); color: var(--ink); font-family: var(--sans); font-size: 16px; line-height: 1.65; -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; }
picture { display: contents; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .22em; }
button, input, select, textarea { font: inherit; }
button, summary { cursor: pointer; }
h1, h2, h3, h4 { margin: 0; font-family: var(--serif); font-weight: 400; line-height: 1.04; letter-spacing: -.03em; text-wrap: balance; }
h1 { font-size: clamp(3.25rem, 6.2vw, 6.7rem); }
h2 { font-size: clamp(2.45rem, 4vw, 4.7rem); }
h3 { font-size: clamp(1.7rem, 2.6vw, 2.7rem); }
p { margin: 0 0 1.25em; }
.section-shell { width: var(--shell); margin-inline: auto; }
.cover-image { width: 100%; height: 100%; object-fit: cover; }
.eyebrow { margin: 0 0 1.15rem; color: var(--burgundy); font-size: .69rem; font-weight: 800; letter-spacing: .19em; line-height: 1.3; text-transform: uppercase; }
.lead { font-family: var(--serif); font-size: clamp(1.35rem, 2vw, 2rem); line-height: 1.38; letter-spacing: -.015em; }
.skip-link { position: fixed; z-index: 1000; top: 10px; left: 10px; transform: translateY(-160%); padding: .8rem 1rem; background: var(--white); }
.skip-link:focus { transform: none; }
:focus-visible { outline: 3px solid var(--copper); outline-offset: 4px; }

.button { display: inline-flex; min-height: 52px; align-items: center; justify-content: center; border: 1px solid var(--brand-primary); border-radius: 5px; padding: .9rem 1.55rem; background: var(--brand-primary); color: var(--white); font-size: .72rem; font-weight: 800; letter-spacing: .105em; line-height: 1.1; text-decoration: none; text-transform: uppercase; transition: background .2s, border-color .2s, transform .2s; }
.button:hover { border-color: var(--brand-primary-dark); background: var(--brand-primary-dark); transform: translateY(-1px); }
.button-light { border-color: rgba(255,255,255,.75); background: var(--white); color: var(--brand-primary); }
.button-light:hover { border-color: var(--white); background: transparent; color: var(--white); }
.button-small { min-height: 46px; padding-inline: 1.25rem; }
.text-link { display: inline-flex; align-items: center; gap: .6rem; border-bottom: 1px solid currentColor; padding-bottom: .22rem; color: var(--brand-primary); font-size: .75rem; font-weight: 800; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.text-link-light { color: var(--white); }

/* Brand-led header */
.site-header { position: sticky; z-index: 70; top: 0; display: grid; min-height: 124px; grid-template-columns: minmax(270px, 1fr) auto minmax(250px, 1fr); align-items: center; gap: 2rem; border-bottom: 1px solid var(--line); padding: 6px max(34px, calc((100vw - 1460px) / 2)); background: rgba(244, 240, 232, .97); backdrop-filter: blur(18px); }
.brand { display: flex; width: max-content; align-items: center; gap: 1rem; color: var(--ink); text-decoration: none; }
.brand img { width: 108px; height: 108px; flex: 0 0 auto; object-fit: contain; filter: drop-shadow(0 8px 15px rgba(39,25,18,.12)); }
.brand-lockup { display: grid; line-height: 1; text-transform: uppercase; }
.brand-lockup strong { font-family: var(--serif); font-size: 1.55rem; font-weight: 400; letter-spacing: .08em; text-transform: none; }
.brand-lockup > span { margin-top: .36rem; font-size: .67rem; font-weight: 800; letter-spacing: .2em; }
.brand-lockup small { margin-top: .42rem; color: var(--ink-soft); font-size: .57rem; letter-spacing: .15em; }
.site-navigation { display: flex; align-items: center; justify-content: center; gap: clamp(1.2rem, 2.3vw, 2.6rem); }
.site-navigation a { position: relative; font-size: .69rem; font-weight: 750; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; white-space: nowrap; }
.site-navigation a::after { position: absolute; right: 0; bottom: -.65rem; left: 0; height: 1px; background: var(--burgundy); content: ""; transform: scaleX(0); transition: transform .2s; }
.site-navigation a:hover::after { transform: scaleX(1); }
.header-actions { display: flex; align-items: center; justify-self: end; gap: 1rem; }
.language-switcher { position: relative; }
.language-switcher summary { display: grid; width: 46px; height: 46px; place-items: center; border: 1px solid var(--line); border-radius: 50%; font-size: .67rem; font-weight: 800; letter-spacing: .08em; list-style: none; }
.language-switcher summary::-webkit-details-marker { display: none; }
.language-switcher > div { position: absolute; top: calc(100% + 10px); right: 0; display: grid; min-width: 80px; overflow: hidden; border: 1px solid var(--line); border-radius: 6px; background: var(--white); box-shadow: var(--shadow); }
.language-switcher a { padding: .7rem 1rem; font-size: .7rem; font-weight: 800; text-align: center; text-decoration: none; }
.language-switcher a:hover, .language-switcher a[aria-current] { background: var(--cream-deep); }
.menu-toggle { display: none; border: 0; background: none; font-size: .7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.menu-lines { position: relative; width: 25px; height: 1px; margin-left: .7rem; background: currentColor; }
.menu-lines::before, .menu-lines::after { position: absolute; left: 0; width: 25px; height: 1px; background: currentColor; content: ""; }
.menu-lines::before { top: -7px; }
.menu-lines::after { top: 7px; }

/* Homepage hero */
.hero { position: relative; min-height: 730px; overflow: hidden; background: var(--brand-primary); color: var(--white); }
.hero-media, .hero-shade { position: absolute; inset: 0; }
.hero-media img { object-position: 64% center; }
.hero-shade { background: linear-gradient(90deg, rgba(45,12,10,.9) 0%, rgba(45,12,10,.77) 37%, rgba(45,12,10,.12) 72%, rgba(45,12,10,.08) 100%); }
.hero-copy { position: relative; z-index: 2; display: flex; min-height: 730px; align-items: center; padding-block: 5rem 7rem; }
.hero-panel { width: min(580px, 48vw); border-left: 1px solid rgba(255,255,255,.4); padding: 2rem 0 2rem clamp(1.5rem, 4vw, 4.5rem); }
.hero-panel .eyebrow { color: #dfc19f; }
.hero-panel h1 { max-width: 8ch; font-size: clamp(3.8rem, 6vw, 6.5rem); }
.hero-lead { max-width: 500px; margin: 2rem 0 2.2rem; color: rgba(255,255,255,.84); font-family: var(--serif); font-size: clamp(1.15rem, 1.6vw, 1.45rem); line-height: 1.45; }
.hero-actions { display: flex; align-items: center; gap: 1.8rem; }
.hero-signature { display: flex; flex-wrap: wrap; gap: .65rem 1.3rem; margin-top: 3rem; color: rgba(255,255,255,.68); font-size: .62rem; font-weight: 750; letter-spacing: .11em; text-transform: uppercase; }
.hero-signature span + span::before { margin-right: 1.3rem; color: var(--copper); content: "◆"; font-size: .42rem; vertical-align: middle; }

/* Booking */
.booking-deck { position: relative; z-index: 6; margin-top: -47px; }
.booking-bar { display: grid; min-height: 94px; grid-template-columns: minmax(190px, 1fr) minmax(190px, 1fr) auto auto; align-items: stretch; overflow: hidden; border: 1px solid rgba(24,32,29,.11); border-radius: 8px; background: var(--white); box-shadow: var(--shadow); }
.booking-field { display: grid; align-content: center; gap: .35rem; border-right: 1px solid var(--line); padding: 1rem 1.5rem; }
.booking-field label { color: var(--ink-soft); font-size: .61rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.booking-field input { width: 100%; border: 0; background: transparent; color: var(--ink); font-family: var(--serif); font-size: 1.15rem; }
.booking-submit { min-width: 230px; border: 0; }
.booking-inquiry { display: flex; min-width: 150px; align-items: center; justify-content: center; padding: 1rem; color: var(--ink-soft); font-size: .67rem; font-weight: 800; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }

/* Editorial homepage */
.intro-section { display: grid; grid-template-columns: 100px minmax(300px, .9fr) minmax(420px, 1.1fr); gap: clamp(2rem, 5vw, 6rem); align-items: center; padding-block: clamp(8rem, 12vw, 12rem); }
.intro-kicker { align-self: stretch; border-right: 1px solid var(--line); color: var(--ink-soft); }
.intro-kicker span { font-family: var(--serif); font-size: 1.5rem; }
.intro-kicker p { margin-top: 1.2rem; font-size: .6rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; writing-mode: vertical-rl; }
.intro-copy h2 { max-width: 11ch; margin-bottom: 2rem; }
.intro-copy .lead { max-width: 660px; color: #37413c; }
.intro-image { position: relative; height: clamp(520px, 55vw, 700px); margin: 0; }
.intro-image::before { position: absolute; z-index: -1; top: -24px; right: -24px; width: 70%; height: 65%; border: 1px solid rgba(142,33,31,.36); content: ""; }
.intro-image figcaption { position: absolute; right: 0; bottom: 0; padding: .75rem 1rem; background: var(--cream); color: var(--ink-soft); font-size: .62rem; letter-spacing: .08em; text-transform: uppercase; }
.stay-section { padding-block: clamp(6rem, 9vw, 9rem); }
.section-heading { display: grid; grid-template-columns: minmax(300px, 1.2fr) minmax(260px, .65fr); gap: 5rem; align-items: end; margin-bottom: 4rem; }
.section-heading h2 { max-width: 12ch; }
.section-heading > div:last-child { justify-self: end; max-width: 470px; color: var(--ink-soft); }
.stay-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 24px; }
.stay-card { grid-column: span 5; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); transition: box-shadow .25s, transform .25s; }
.stay-card-wide { grid-column: span 7; }
.stay-card:hover { box-shadow: var(--shadow); transform: translateY(-4px); }
.stay-card a { display: grid; height: 100%; grid-template-rows: auto 1fr; text-decoration: none; }
.stay-card-image { height: 400px; overflow: hidden; }
.stay-card-wide .stay-card-image { height: 470px; }
.stay-card-image img { transition: transform .7s cubic-bezier(.2,.7,.2,1); }
.stay-card:hover .stay-card-image img { transform: scale(1.025); }
.stay-card-copy { display: grid; align-content: start; padding: 1.7rem 1.8rem 2rem; }
.stay-card-copy > span { color: var(--burgundy); font-size: .63rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.stay-card-copy h3 { margin: .65rem 0 .8rem; }
.stay-card-copy p { max-width: 580px; color: var(--ink-soft); }
.stay-card-copy strong { margin-top: auto; padding-top: 1rem; color: var(--brand-primary); font-size: .66rem; letter-spacing: .1em; text-transform: uppercase; }
.stay-grid-categories { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.stay-grid .room-type-card { grid-column: auto; }
.stay-grid .room-type-card .stay-card-image { height: 320px; }
.stay-grid .room-type-card .stay-card-copy { min-height: 275px; }
.stay-grid .room-type-card .stay-card-copy p { min-height: 3.3em; }
.experience-pair { display: grid; gap: 0; padding-bottom: clamp(8rem, 12vw, 12rem); }
.experience-card { display: grid; min-height: 660px; grid-template-columns: 1.35fr .85fr; overflow: hidden; border-radius: var(--radius); }
.experience-card-wellness { width: 88%; min-height: 560px; grid-template-columns: .8fr 1fr; justify-self: end; }
.experience-media { min-height: 100%; }
.experience-copy { display: flex; align-items: flex-start; flex-direction: column; justify-content: center; padding: clamp(3rem, 6vw, 6rem); background: var(--brand-primary); color: var(--white); }
.experience-copy .eyebrow { color: #dfc19f; }
.experience-copy h2 { margin-bottom: 1.8rem; }
.experience-copy p { color: rgba(255,255,255,.75); }
.experience-card-wellness .experience-copy { background: var(--cream-deep); color: var(--ink); }
.experience-card-wellness .experience-copy .eyebrow { color: var(--burgundy); }
.experience-card-wellness .experience-copy p { color: var(--ink-soft); }
.region-feature { position: relative; min-height: 760px; overflow: hidden; color: var(--white); }
.region-media, .region-overlay { position: absolute; inset: 0; }
.region-overlay { background: linear-gradient(90deg, rgba(9,26,22,.75), rgba(9,26,22,.12)); }
.region-copy { position: relative; z-index: 2; display: flex; min-height: 760px; align-items: flex-start; flex-direction: column; justify-content: center; }
.region-copy .eyebrow { color: #e4c29b; }
.region-copy h2 { max-width: 10ch; }
.region-copy > p:not(.eyebrow) { max-width: 520px; margin-top: 1.8rem; color: rgba(255,255,255,.8); }
.region-links { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }
.region-links a { min-width: 130px; border: 1px solid rgba(255,255,255,.5); border-radius: 4px; padding: .8rem 1.2rem; font-size: .67rem; font-weight: 800; letter-spacing: .1em; text-align: center; text-decoration: none; text-transform: uppercase; }
.region-links a:hover { background: var(--white); color: var(--brand-primary); }
.gift-feature { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(3rem, 7vw, 8rem); align-items: center; padding-block: clamp(8rem, 12vw, 12rem); }
.gift-copy { position: relative; max-width: 560px; padding-left: 4rem; }
.section-number { position: absolute; top: 0; left: 0; color: var(--burgundy); font-family: var(--serif); font-size: 1.4rem; }
.gift-copy h2 { margin-bottom: 2rem; }
.gift-copy p { color: var(--ink-soft); }
.gift-media { height: 650px; }
.trust-strip { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.trust-strip a { position: relative; display: grid; gap: .4rem; padding: 2.4rem 2rem; text-decoration: none; }
.trust-strip a + a { border-left: 1px solid var(--line); }
.trust-strip a > span { position: absolute; top: 1rem; right: 1rem; color: var(--burgundy); font-family: var(--serif); }
.trust-strip small { color: var(--ink-soft); font-size: .61rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.trust-strip strong { font-family: var(--serif); font-size: 1.35rem; font-weight: 400; }

/* Detail and long-tail pages */
.detail-hero { position: relative; min-height: 670px; overflow: hidden; color: var(--white); }
.detail-hero-media, .detail-hero-shade { position: absolute; inset: 0; }
.detail-hero-shade { background: linear-gradient(0deg, rgba(42,12,10,.72), rgba(42,12,10,.05) 70%); }
.detail-hero-copy { position: relative; z-index: 2; display: flex; width: var(--shell); min-height: 670px; margin-inline: auto; align-items: flex-start; flex-direction: column; justify-content: flex-end; padding-bottom: 5rem; }
.detail-hero-copy .eyebrow { color: #e6c49d; }
.detail-hero-copy h1 { max-width: 12ch; }
.detail-booking { position: relative; z-index: 4; margin-top: -45px; }
.detail-intro { display: grid; grid-template-columns: minmax(300px, 1.15fr) minmax(250px, .7fr); gap: clamp(3rem, 8vw, 9rem); align-items: start; padding-block: clamp(7rem, 10vw, 10rem); }
.detail-intro .lead { font-size: clamp(1.6rem, 2.6vw, 2.55rem); }
.fact-list { display: grid; margin: 0; border-top: 1px solid var(--line); padding: 0; list-style: none; }
.fact-list li { border-bottom: 1px solid var(--line); padding: 1rem 0; color: var(--ink-soft); font-size: .77rem; font-weight: 750; letter-spacing: .07em; text-transform: uppercase; }
.editorial-block { display: grid; max-width: 1020px; grid-template-columns: 70px 1fr; gap: 3rem; padding-block: 4.5rem; border-top: 1px solid var(--line); }
.editorial-block > span { color: var(--burgundy); font-family: var(--serif); font-size: 1.35rem; }
.editorial-block h2 { margin-bottom: 1.5rem; font-size: clamp(2.3rem, 3.6vw, 4rem); }
.editorial-block p { max-width: 780px; color: var(--ink-soft); font-size: 1.05rem; }
.editorial-block-offset { margin-right: max(0px, calc((100vw - 1340px) / 5)); margin-left: auto; }
.plan-section { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(3rem, 8vw, 9rem); align-items: center; padding-block: clamp(7rem, 10vw, 10rem); }
.plan-section p { color: var(--ink-soft); }
.plan-section a { display: grid; gap: 1rem; padding: 2rem; background: var(--white); text-decoration: none; }
.plan-section img { max-height: 620px; margin-inline: auto; object-fit: contain; }
.plan-section a > span { color: var(--brand-primary); font-size: .67rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.detail-cta { display: flex; min-height: 540px; align-items: center; flex-direction: column; justify-content: center; padding: 5rem 2rem; background: var(--brand-primary); color: var(--white); text-align: center; }
.room-variants { padding-block: clamp(6rem, 9vw, 9rem); }
.room-variants > header { max-width: 850px; margin-bottom: 3rem; }
.room-variant-list { display: grid; gap: 1.5rem; }
.room-variant { display: grid; min-height: 520px; grid-template-columns: 1.12fr .88fr; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: #fff; scroll-margin-top: 130px; }
.room-variant:nth-child(even) { grid-template-columns: .88fr 1.12fr; }
.room-variant:nth-child(even) .room-variant-image { order: 2; }
.room-variant-copy { display: flex; align-items: flex-start; flex-direction: column; justify-content: center; padding: clamp(2.2rem, 5vw, 5rem); }
.room-variant-copy > span { color: var(--gold); font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.room-variant-copy h3 { margin: 1rem 0 1.2rem; }
.room-variant-copy p { color: var(--ink-soft); }
.room-variant-copy .button { margin-top: 1rem; }
.detail-cta .eyebrow { color: #dfc19f; }
.detail-cta h2 { max-width: 900px; }
.detail-cta > div { display: flex; align-items: center; gap: 2rem; margin-top: 2.5rem; }
.legacy-page { padding-block: clamp(6rem, 9vw, 10rem); }
.legacy-header { max-width: 1050px; margin-bottom: 5rem; }
.legacy-header h1 { max-width: 14ch; font-size: clamp(3rem, 5.4vw, 6rem); }
.legacy-header .lead { max-width: 820px; margin-top: 2rem; color: var(--ink-soft); }
.legacy-content { max-width: 840px; margin-inline: auto; padding: 3rem; border: 1px solid var(--line); border-radius: var(--radius); background: rgba(255,253,249,.55); }
.legacy-content h2, .legacy-content h3, .legacy-content h4 { margin: 3.5rem 0 1.2rem; line-height: 1.12; }
.legacy-content h2 { font-size: clamp(2.1rem, 3.5vw, 3.8rem); }
.legacy-content h3 { font-size: clamp(1.6rem, 2.6vw, 2.6rem); }
.legacy-content p, .legacy-content li { color: #3f4a45; }
.legacy-content a { color: var(--burgundy); }
.legacy-content blockquote { margin: 3rem 0; border-left: 3px solid var(--burgundy); padding: .5rem 0 .5rem 2rem; font-family: var(--serif); font-size: 1.4rem; }
.legacy-content table { display: block; width: 100%; overflow-x: auto; border-collapse: collapse; }
.legacy-content th, .legacy-content td { border: 1px solid var(--line); padding: .75rem; text-align: left; }
.archive-note { max-width: 840px; margin: -2rem auto 2rem; border-left: 3px solid var(--copper); padding: 1rem 1.25rem; background: #fff7e8; }
.legacy-booking { margin-top: 5rem; }

/* Forms */
.form-page { padding-block: clamp(6rem, 9vw, 10rem); }
.form-header { max-width: 900px; margin-bottom: 4rem; }
.form-header h1 { max-width: 13ch; font-size: clamp(3.1rem, 6vw, 6.4rem); }
.form-header .lead { max-width: 760px; margin-top: 2rem; color: var(--ink-soft); }
.booking-panel { max-width: 1120px; padding: 1rem; border-radius: var(--radius); background: var(--cream-deep); }
.booking-benefits { display: grid; max-width: 1120px; grid-template-columns: repeat(3, 1fr); margin-top: 1rem; border: 1px solid var(--line); border-radius: var(--radius); }
.booking-benefits div { display: grid; gap: .4rem; padding: 1.5rem; }
.booking-benefits div + div { border-left: 1px solid var(--line); }
.booking-benefits strong { font-family: var(--serif); font-size: 1.2rem; font-weight: 400; }
.booking-benefits span { color: var(--ink-soft); font-size: .78rem; }
.form-help { margin-top: 2rem; }
.inquiry-form { display: grid; max-width: 920px; gap: 2.7rem; }
.inquiry-form fieldset { display: grid; gap: 1.2rem; margin: 0; border: 0; border-top: 1px solid var(--line); padding: 2.2rem 0 0; }
.inquiry-form legend { padding: 0 0 1.5rem; font-family: var(--serif); font-size: clamp(1.8rem, 2.8vw, 2.7rem); }
.form-grid { display: grid; gap: 1.2rem; }
.form-grid-2 { grid-template-columns: 1fr 1fr; }
.inquiry-form label { display: grid; gap: .5rem; font-size: .72rem; font-weight: 750; letter-spacing: .055em; }
.inquiry-form input, .inquiry-form select, .inquiry-form textarea { width: 100%; min-height: 56px; border: 1px solid var(--line); border-radius: 5px; padding: .8rem 1rem; background: var(--white); color: var(--ink); font-size: 1rem; font-weight: 400; letter-spacing: 0; }
.inquiry-form textarea { resize: vertical; }
.check-label { grid-template-columns: auto 1fr; align-items: start; }
.check-label input { width: 20px; min-height: 20px; margin-top: .15rem; }
.check-label span { font-weight: 400; letter-spacing: 0; }
.inquiry-form .button { justify-self: start; }
.honeypot { position: absolute; left: -10000px; }
.form-errors, .form-success { max-width: 920px; margin-bottom: 2rem; border: 1px solid #a6493e; border-radius: 6px; padding: 1.5rem; background: #fff2ef; }
.form-success { border-color: #6c927d; background: #edf7f1; }
.form-success h2 { margin-bottom: 1rem; font-size: 2.3rem; }
.not-found { min-height: 65vh; padding-block: 9rem; }
.not-found h1 { max-width: 850px; margin-bottom: 2rem; }
.not-found > div { display: flex; gap: 2rem; align-items: center; }

/* Footer */
.site-footer { margin-top: clamp(7rem, 11vw, 11rem); padding: clamp(5rem, 8vw, 8rem) max(32px, calc((100vw - 1340px) / 2)) 2rem; background: #801915; color: var(--white); }
.page-home .site-footer, .page-detail .site-footer { margin-top: 0; }
.footer-hero { display: grid; grid-template-columns: auto 1fr auto; gap: clamp(2rem, 5vw, 5rem); align-items: center; margin-bottom: 6rem; }
.footer-brandmark { width: 176px; height: 176px; object-fit: contain; filter: drop-shadow(0 12px 20px rgba(0,0,0,.2)); }
.footer-hero .eyebrow { color: #dfc19f; }
.footer-hero h2 { max-width: 760px; }
.footer-grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1.2fr; gap: 3rem; border-top: 1px solid var(--line-light); padding-top: 3rem; }
.footer-grid address { font-style: normal; }
.footer-grid nav { display: grid; align-content: start; gap: .55rem; }
.footer-grid a { color: inherit; text-decoration: none; }
.footer-direct { display: grid; align-content: start; gap: .5rem; }
.footer-direct span { color: rgba(255,255,255,.6); font-size: .61rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.footer-direct strong { font-family: var(--serif); font-size: 1.2rem; font-weight: 400; }
.footer-direct a { margin-top: .5rem; color: #e6c49d; font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.footer-meta { display: flex; justify-content: space-between; margin-top: 4rem; color: rgba(255,255,255,.55); font-size: .69rem; }
.footer-meta a { color: inherit; text-decoration: none; }
@media (max-width: 1120px) {
  :root { --shell: min(100% - 48px, 1000px); }
  .site-header { min-height: 104px; grid-template-columns: minmax(240px, 1fr) auto auto; padding-inline: 24px; }
  .brand img { width: 88px; height: 88px; }
  .brand-lockup strong { font-size: 1.35rem; }
  .menu-toggle { display: flex; align-items: center; }
  .site-navigation { position: absolute; top: 100%; right: 0; left: 0; display: none; flex-direction: column; align-items: stretch; gap: 0; border-top: 1px solid var(--line); padding: 1rem 24px 2rem; background: var(--cream); box-shadow: 0 18px 35px rgba(24,32,29,.1); }
  .site-navigation.is-open { display: flex; }
  .site-navigation a { border-bottom: 1px solid var(--line); padding: 1rem 0; }
  .site-navigation a::after { display: none; }
  .hero-panel { width: 58vw; }
  .booking-bar { grid-template-columns: 1fr 1fr; }
  .booking-submit { min-width: 0; }
  .intro-section { grid-template-columns: 70px 1fr; }
  .intro-image { grid-column: 2; width: 85%; justify-self: end; }
  .experience-card { grid-template-columns: 1fr 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 760px) {
  :root { --shell: calc(100% - 32px); }
  body { font-size: 15px; }
  h1 { font-size: clamp(3rem, 14vw, 4.8rem); }
  h2 { font-size: clamp(2.4rem, 10.5vw, 3.8rem); }
  .site-header { min-height: 86px; grid-template-columns: 1fr auto auto; gap: .75rem; padding: 4px 16px; }
  .brand { gap: .65rem; }
  .brand img { width: 76px; height: 76px; }
  .brand-lockup strong { font-size: 1.15rem; }
  .brand-lockup > span { font-size: .54rem; }
  .brand-lockup small { display: none; }
  .menu-toggle > span:first-child { display: none; }
  .menu-lines { margin-left: 0; }
  .header-actions .button { display: none; }
  .language-switcher summary { width: 40px; height: 40px; }
  .hero, .hero-copy { min-height: 700px; }
  .hero-media img { object-position: 65% center; }
  .hero-shade { background: linear-gradient(0deg, rgba(45,12,10,.91) 0%, rgba(45,12,10,.45) 66%, rgba(45,12,10,.15)); }
  .hero-copy { align-items: flex-end; padding-block: 6rem 7.5rem; }
  .hero-panel { width: 100%; border-left: 0; padding: 0; }
  .hero-panel h1 { max-width: 10ch; }
  .hero-lead { max-width: 34ch; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 1.2rem; }
  .hero-signature { display: none; }
  .booking-deck { width: calc(100% - 16px); margin-top: -58px; }
  .booking-bar { grid-template-columns: 1fr 1fr; }
  .booking-field { padding: .85rem .7rem; }
  .booking-field input { font-size: .9rem; }
  .booking-submit { grid-column: 1 / -1; min-height: 50px; }
  .booking-inquiry { grid-column: 1 / -1; min-height: 42px; }
  .intro-section { grid-template-columns: 1fr; gap: 2.5rem; padding-block: 7rem; }
  .intro-kicker { display: none; }
  .intro-image { grid-column: 1; width: 90%; height: 480px; justify-self: end; }
  .intro-image::before { top: -14px; right: -14px; }
  .stay-section { padding-block: 5.5rem; }
  .section-heading { grid-template-columns: 1fr; gap: 1.4rem; margin-bottom: 2.5rem; }
  .section-heading > div:last-child { justify-self: start; }
  .stay-grid { grid-template-columns: 1fr; gap: 1rem; }
  .stay-card, .stay-card-wide { grid-column: 1; }
  .stay-card-image, .stay-card-wide .stay-card-image { height: 390px; }
  .stay-card-copy { padding: 1.35rem; }
  .experience-pair { width: 100%; }
  .experience-card, .experience-card-wellness { width: 100%; min-height: 0; grid-template-columns: 1fr; border-radius: 0; }
  .experience-card-wellness .experience-copy { order: 2; }
  .experience-media { min-height: 480px; }
  .experience-copy { min-height: 460px; padding: 4rem 1.5rem; }
  .region-feature, .region-copy { min-height: 680px; }
  .region-overlay { background: linear-gradient(0deg, rgba(9,26,22,.82), rgba(9,26,22,.12)); }
  .region-copy { justify-content: flex-end; padding-bottom: 5rem; }
  .gift-feature { grid-template-columns: 1fr; padding-block: 6rem; }
  .gift-copy { padding-left: 2.8rem; }
  .gift-media { height: 480px; }
  .trust-strip { grid-template-columns: 1fr; }
  .trust-strip a + a { border-top: 1px solid var(--line); border-left: 0; }
  .detail-hero, .detail-hero-copy { min-height: 620px; }
  .detail-hero-copy { padding-bottom: 3.5rem; }
  .detail-booking { width: calc(100% - 16px); }
  .detail-intro { grid-template-columns: 1fr; gap: 2rem; padding-block: 5.5rem; }
  .editorial-block { grid-template-columns: 38px 1fr; gap: 1rem; padding-block: 3.5rem; }
  .editorial-block-offset { margin-inline: auto; }
  .plan-section { grid-template-columns: 1fr; padding-block: 5rem; }
  .detail-cta { min-height: 500px; }
  .detail-cta > div { align-items: center; flex-direction: column; }
  .room-variant, .room-variant:nth-child(even) { min-height: 0; grid-template-columns: 1fr; }
  .room-variant:nth-child(even) .room-variant-image { order: 0; }
  .room-variant-image { height: 390px; }
  .room-variant-copy { min-height: 360px; }
  .legacy-page { padding-block: 4rem; }
  .legacy-header { margin-bottom: 3rem; }
  .legacy-content { padding: 1.4rem; }
  .legacy-booking { width: calc(100vw - 16px); margin-left: calc((var(--shell) - 100vw + 16px) / 2); }
  .booking-panel { padding: .35rem; }
  .booking-benefits { grid-template-columns: 1fr; }
  .booking-benefits div + div { border-top: 1px solid var(--line); border-left: 0; }
  .form-grid-2 { grid-template-columns: 1fr; }
  .footer-hero { grid-template-columns: 1fr; justify-items: start; }
  .footer-brandmark { width: 140px; height: 140px; }
  .footer-grid { grid-template-columns: 1fr; }
}

/* Guest feedback uses the same Elfsight source as the original Rittis website. */
.guest-reviews-panel {
  display: grid;
  grid-template-columns: minmax(260px, .7fr) minmax(0, 1.6fr);
  gap: clamp(2rem, 5vw, 5rem);
  overflow: hidden;
  border-radius: var(--radius);
  padding: clamp(1.5rem, 4vw, 4rem);
  background: var(--white);
  box-shadow: var(--shadow);
}
.guest-reviews-summary { align-self: start; }
.guest-reviews-summary h2 { max-width: 10ch; margin-bottom: 1.25rem; }
.guest-reviews-summary > p:not(.eyebrow) { max-width: 38rem; color: var(--ink-soft); }
.guest-reviews-score {
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  margin-top: 1.75rem;
  border-radius: 9px;
  padding: .9rem 1.1rem;
  background: rgb(217 194 166 / 55%);
  color: #003b95;
  text-decoration: none;
}
.guest-reviews-score img { width: 132px; height: auto; }
.guest-reviews-score span { display: flex; align-items: baseline; white-space: nowrap; }
.guest-reviews-score strong { font-size: 1.55rem; line-height: 1; }
.guest-reviews-score small { margin-left: .18rem; font-size: .78rem; }
.guest-reviews-date { display: block; margin-top: .8rem; color: var(--ink-soft); }
.guest-reviews-widget { min-width: 0; }
.guest-reviews-widget > p { color: var(--ink-soft); }
.guest-review-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem; }
.guest-review-card { min-width: 0; border: 1px solid var(--line); border-radius: 12px; padding: 1.25rem; background: #fcf8f2; }
.guest-review-card header { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: .75rem; align-items: center; }
.guest-review-avatar { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 50%; background: #d9c2a6; color: var(--ink); font-size: .75rem; font-weight: 850; letter-spacing: .04em; }
.guest-review-card header > span:nth-child(2) { display: grid; min-width: 0; }
.guest-review-card header strong { overflow: hidden; font-size: .86rem; text-overflow: ellipsis; white-space: nowrap; }
.guest-review-card header small { color: var(--ink-soft); font-size: .67rem; }
.guest-review-stars { color: #a81f1b; font-size: .68rem; letter-spacing: .08em; white-space: nowrap; }
.guest-review-card h3 { margin: 1rem 0 .45rem; font-size: 1rem; }
.guest-review-card > p { display: -webkit-box; overflow: hidden; margin: .8rem 0 0; color: var(--ink-soft); font-size: .84rem; line-height: 1.65; -webkit-box-orient: vertical; -webkit-line-clamp: 5; }
.guest-reviews-updated { display: block; margin-top: 1rem; color: var(--ink-soft); font-size: .68rem; text-align: right; }
.guest-reviews-fallback { border-radius: 12px; padding: 2rem; background: #f4eadf; }
.guest-reviews-fallback p { margin: .5rem 0 0; color: var(--ink-soft); }
.guest-reviews-link { display: table; margin-top: 1.5rem; }
.home-reviews { margin-top: clamp(4rem, 8vw, 8rem); margin-bottom: clamp(5rem, 9vw, 9rem); }
.reviews-page .guest-reviews-panel { margin-top: -2rem; }
.reviews-page .review-values { overflow: hidden; }

@media (max-width: 900px) {
  .guest-reviews-panel { grid-template-columns: 1fr; }
  .guest-reviews-summary h2 { max-width: none; }
  .guest-review-list { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .home-reviews { width: 100%; }
  .guest-reviews-panel { border-radius: 0; padding: 2rem 1rem; }
  .reviews-page .guest-reviews-panel { margin-inline: calc(50% - 50vw); padding-inline: 1rem; }
  .guest-reviews-score { width: 100%; justify-content: space-between; }
  .guest-reviews-score img { width: 120px; }
  .guest-review-card { border-radius: 10px; padding: 1rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

@media print {
  .site-header, .site-footer, .booking-bar, .mobile-book, .detail-cta { display: none !important; }
  body { background: white; color: black; }
  .section-shell { width: 100%; }
}

/* 2026 reference direction: warm alpine minimalism */
:root {
  --ink: #25231f;
  --ink-soft: #69655e;
  --cream: #f8f6f2;
  --cream-deep: #eee8df;
  --white: #fff;
  --brand-primary: #801915;
  --brand-primary-dark: #68110f;
  --burgundy: #801915;
  --copper: #801915;
  --gold: #801915;
  --line: rgba(37, 35, 31, .13);
  --shadow: 0 24px 70px rgba(53, 42, 28, .15);
  --shell: min(1440px, calc(100vw - 96px));
}

.button-gold { border-color: var(--gold); background: var(--gold); color: #fff; }
.button-gold:hover { border-color: #68110f; background: #68110f; color: #fff; }

.site-header { min-height: 108px; grid-template-columns: 170px 1fr auto; padding: 0 max(40px, calc((100vw - 1540px) / 2)); background: rgba(248,246,242,.96); }
.brand { align-self: stretch; }
.brand img { width: 142px; height: 142px; object-fit: contain; }
.site-navigation { gap: clamp(1rem, 2vw, 2.35rem); }
.site-navigation a { font-size: .67rem; letter-spacing: .085em; }
.page-home .site-header { position: absolute; right: 0; left: 0; border-bottom-color: rgba(255,255,255,.18); background: linear-gradient(180deg, rgba(16,13,9,.45), rgba(16,13,9,0)); color: #fff; backdrop-filter: none; }
.page-home .brand img { filter: drop-shadow(0 7px 18px rgba(0,0,0,.28)); }
.page-home .language-switcher summary { border-color: rgba(255,255,255,.5); }
.page-home .site-navigation a::after { background: var(--gold); }
.page-home .header-actions .button { border-color: var(--gold); background: var(--gold); color: #fff; }
.page-home .language-switcher > div { color: var(--ink); }

.hero, .hero-copy { min-height: max(780px, 100svh); }
.hero-media img { object-position: 54% center; }
.hero-shade { background: linear-gradient(90deg, rgba(20,15,10,.68) 0%, rgba(20,15,10,.46) 33%, rgba(20,15,10,.08) 68%, rgba(20,15,10,.04)); }
.hero-copy { align-items: center; padding: 160px 0 160px; }
.hero-panel { width: min(760px, 58vw); border: 0; padding: 0; }
.hero-panel h1 { max-width: 11ch; font-size: clamp(3.8rem, 6.2vw, 7rem); text-shadow: 0 3px 28px rgba(0,0,0,.24); }
.hero-lead { max-width: 610px; margin: 1.75rem 0 2.2rem; font-family: var(--sans); font-size: clamp(1.12rem, 1.55vw, 1.5rem); font-weight: 400; text-shadow: 0 2px 15px rgba(0,0,0,.4); }
.hero-actions .button { min-height: 62px; padding-inline: 2.2rem; }
.booking-deck { margin-top: -77px; }
.booking-bar { min-height: 114px; grid-template-columns: 1fr 1fr .8fr auto; border-radius: 12px; }
.booking-field { padding: 1.25rem 1.9rem; }
.booking-guests { align-content: center; gap: .35rem; }
.booking-guests span { color: var(--ink-soft); font-size: .61rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.booking-guests strong { font-family: var(--serif); font-size: 1.15rem; font-weight: 400; }
.booking-submit { min-width: 275px; background: var(--gold); }
.booking-submit:hover { background: #68110f; }
.benefit-ribbon { display: grid; grid-template-columns: repeat(5, 1fr); padding: 3.3rem 0 2.2rem; }
.benefit-ribbon div { display: grid; grid-template-columns: 42px 1fr; column-gap: 1rem; align-items: center; padding: .4rem 1.35rem; }
.benefit-ribbon div + div { border-left: 1px solid var(--line); }
.benefit-ribbon div > span { grid-row: 1 / 3; color: var(--gold); font-family: var(--serif); font-size: 2rem; text-align: center; }
.benefit-ribbon strong { font-family: var(--serif); font-size: 1rem; font-weight: 400; line-height: 1.2; }
.benefit-ribbon small { color: var(--ink-soft); font-size: .72rem; line-height: 1.35; }
.intro-section { padding-top: clamp(6rem, 9vw, 9rem); }

.offer-highlight { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 1px; margin-bottom: clamp(7rem, 10vw, 10rem); background: var(--line); }
.offer-highlight > div { min-height: 350px; padding: clamp(2.1rem, 4vw, 4rem); background: var(--white); }
.offer-highlight > div:first-child { display: flex; flex-direction: column; justify-content: center; background: #68110f; color: #fff; }
.offer-highlight h2 { max-width: 9ch; }
.offer-highlight-card > span { color: var(--gold); font-size: .67rem; font-weight: 800; letter-spacing: .11em; }
.offer-highlight-card h3 { margin: 2rem 0 1rem; font-size: clamp(1.8rem, 2.5vw, 2.8rem); }
.offer-highlight-card p { color: var(--ink-soft); }
.price-callout { display: flex; align-items: center; justify-content: space-between; gap: 4rem; margin-bottom: clamp(7rem, 10vw, 10rem); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: clamp(3rem, 6vw, 5rem) 0; }
.price-callout > div { max-width: 880px; }
.price-callout h2 { margin-bottom: 1rem; }
.price-callout p { max-width: 760px; color: var(--ink-soft); }
.trust-booking > span { color: #003b95 !important; font-family: var(--sans) !important; font-size: 1.15rem !important; font-weight: 800; }

.content-page { padding-block: clamp(6rem, 9vw, 10rem); }
.content-page-header { max-width: 1060px; margin-bottom: clamp(4rem, 7vw, 7rem); }
.content-page-header h1 { max-width: 13ch; }
.content-page-header .lead { max-width: 900px; margin-top: 2rem; color: var(--ink-soft); }
.season-tabs { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2.5rem; }
.season-tabs strong, .season-tabs span { border: 1px solid var(--line); border-radius: 99px; padding: .65rem 1rem; font-size: .72rem; }
.season-tabs strong { border-color: var(--gold); background: var(--gold); color: #fff; }
.price-table-wrap { overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: 0 18px 60px rgba(53,42,28,.08); }
.price-table-wrap > h2 { padding: 2rem 2rem 1rem; font-size: 2rem; }
.price-table-wrap table { width: 100%; border-collapse: collapse; }
.price-table-wrap th { padding: 1.2rem 1rem; background: #801915; color: #fff; font-size: .72rem; letter-spacing: .04em; text-align: left; }
.price-table-wrap td { min-width: 138px; border-top: 1px solid var(--line); padding: 1.25rem 1rem; vertical-align: top; }
.price-table-wrap td[rowspan] { width: 44px; min-width: 44px; padding: .5rem; }
.price-table-wrap td:nth-child(2) { min-width: 310px; }
.price-table-wrap td a { color: var(--burgundy); }
.price-table-wrap td > a:first-of-type { font-family: var(--serif); font-size: 1.2rem; }
.price-table-wrap td small, .price-table-wrap td strong { display: block; margin-top: .45rem; }
.price-table-wrap td small { color: var(--ink-soft); }
.content-note { display: flex; align-items: center; gap: 1.5rem 3rem; margin-top: 2rem; border-left: 3px solid var(--gold); padding: 2rem; background: var(--cream-deep); }
.content-note strong { flex: 0 0 auto; font-family: var(--serif); font-size: 1.5rem; font-weight: 400; }
.content-note p { flex: 1; margin: 0; color: var(--ink-soft); }

.current-offers { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
.current-offer { position: relative; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; padding: clamp(2.2rem, 5vw, 4.5rem); background: #fff; }
.offer-number { position: absolute; top: 1rem; right: 1.5rem; color: rgba(37,35,31,.12); font-family: var(--serif); font-size: 5rem; line-height: 1; }
.offer-period { color: var(--gold); font-size: .67rem; font-weight: 800; letter-spacing: .09em; }
.current-offer h2 { max-width: 12ch; margin: 2.2rem 0 1.4rem; font-size: clamp(2.4rem, 4vw, 4.5rem); }
.current-offer p { color: var(--ink-soft); font-size: 1.08rem; }
.current-offer ul { min-height: 135px; margin: 2rem 0; padding-left: 1.2rem; }
.current-offer li { margin: .5rem 0; }

.weather-panel { min-height: 520px; overflow: hidden; border-radius: 14px; background: #dbe5e7; box-shadow: var(--shadow); }
.rating-hero { display: grid; max-width: 940px; grid-template-columns: 250px auto 1fr; gap: 2rem 3rem; align-items: center; border: 1px solid var(--line); border-radius: 12px; padding: clamp(2rem, 5vw, 4rem); background: #fff; }
.rating-hero img { width: 230px; }
.rating-hero > div { color: #003b95; white-space: nowrap; }
.rating-hero > div strong { font-size: clamp(3rem, 7vw, 6rem); line-height: 1; }
.rating-hero > div span { font-size: 1.4rem; }
.rating-hero p { margin: 0; color: var(--ink-soft); font-size: 1.12rem; }
.rating-hero small { grid-column: 3; color: var(--ink-soft); }
.review-values { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 2rem; border: 1px solid var(--line); border-radius: 12px; }
.review-values div { display: grid; gap: .5rem; padding: 2rem; }
.review-values div + div { border-left: 1px solid var(--line); }
.review-values strong { font-family: var(--serif); font-size: 1.4rem; font-weight: 400; }
.review-values span { color: var(--ink-soft); }
.legal-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.legal-cards a { display: flex; min-height: 360px; flex-direction: column; border: 1px solid var(--line); border-radius: 12px; padding: 2.2rem; background: #fff; text-decoration: none; }
.legal-cards span { color: var(--gold); font-family: var(--serif); font-size: 1.3rem; }
.legal-cards h2 { margin: auto 0 2rem; font-size: clamp(2rem, 3vw, 3.3rem); }
.legal-cards strong { color: var(--burgundy); font-size: .7rem; letter-spacing: .08em; }
.legal-copy { max-width: 920px; margin-inline: auto; border: 1px solid var(--line); border-radius: 12px; padding: clamp(1.5rem, 5vw, 4.5rem); background: #fff; }
.legal-copy h2, .legal-copy h3, .legal-copy h4 { margin: 3rem 0 1rem; }
.legal-copy h2 { font-size: clamp(2rem, 3vw, 3.2rem); }
.legal-copy h3 { font-size: clamp(1.5rem, 2.4vw, 2.3rem); }
.legal-copy p, .legal-copy li { color: #45423d; }
.legal-source { margin-top: 1.5rem; color: var(--ink-soft); }
.gallery-grid { display: grid; grid-auto-rows: 360px; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.gallery-grid figure { overflow: hidden; margin: 0; border-radius: 10px; }
.gallery-wide { grid-column: span 2; }
.gallery-tall { grid-row: span 2; }
.gallery-grid img { transition: transform .65s cubic-bezier(.2,.7,.2,1); }
.gallery-grid figure:hover img { transform: scale(1.025); }
.gallery-toolbar { display: flex; flex-wrap: wrap; gap: .65rem; margin-bottom: 2rem; }
.gallery-toolbar button { border: 1px solid var(--line); border-radius: 99px; padding: .7rem 1.05rem; background: transparent; color: var(--ink-soft); font-size: .7rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.gallery-toolbar button:hover, .gallery-toolbar button.is-active { border-color: var(--gold); background: var(--gold); color: #fff; }
.gallery-toolbar button span { margin-left: .35rem; opacity: .72; }
.gallery-grid-full { grid-auto-rows: auto; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.gallery-grid-full .gallery-item { position: relative; display: grid; overflow: visible; border-radius: 0; }
.gallery-grid-full .gallery-item[hidden] { display: none; }
.gallery-item > button { position: relative; display: block; overflow: hidden; width: 100%; aspect-ratio: 1; border: 0; border-radius: 10px; padding: 0; background: #ddd; }
.gallery-grid-full .gallery-wide > button { aspect-ratio: 2.03 / 1; }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; }
.gallery-item > button > span { position: absolute; right: 1rem; bottom: 1rem; border-radius: 99px; padding: .5rem .75rem; background: rgba(255,255,255,.92); color: var(--ink); font-size: .62rem; font-weight: 800; letter-spacing: .06em; opacity: 0; text-transform: uppercase; transform: translateY(6px); transition: opacity .2s, transform .2s; }
.gallery-item > button:hover > span, .gallery-item > button:focus-visible > span { opacity: 1; transform: none; }
.gallery-item figcaption { display: flex; justify-content: space-between; gap: 1rem; padding: .7rem .2rem 1rem; color: var(--ink-soft); font-size: .7rem; }
.gallery-item figcaption small { opacity: .72; }
.gallery-lightbox { width: 100vw; max-width: none; height: 100dvh; max-height: none; margin: 0; border: 0; padding: 0; background: rgba(15,14,12,.96); color: #fff; }
.gallery-lightbox[open] { display: grid; grid-template-columns: 80px minmax(0, 1fr) 80px; align-items: center; }
.gallery-lightbox::backdrop { background: rgba(15,14,12,.92); }
.gallery-lightbox figure { display: grid; max-width: calc(100vw - 180px); max-height: calc(100dvh - 80px); justify-items: center; margin: 0; }
.gallery-lightbox figure img { max-width: 100%; max-height: calc(100dvh - 130px); object-fit: contain; }
.gallery-lightbox figcaption { padding-top: .8rem; color: rgba(255,255,255,.72); font-size: .78rem; }
.gallery-close, .gallery-arrow { z-index: 2; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; background: rgba(0,0,0,.15); color: #fff; }
.gallery-close { position: fixed; top: 20px; right: 20px; width: 52px; height: 52px; font-size: 2rem; line-height: 1; }
.gallery-arrow { width: 50px; height: 50px; justify-self: center; font-size: 1.3rem; }
.gallery-count { position: fixed; bottom: 22px; left: 22px; color: rgba(255,255,255,.65); font-size: .72rem; letter-spacing: .08em; }
body.has-lightbox { overflow: hidden; }
.virtual-frame { overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: #ddd; box-shadow: var(--shadow); }
.virtual-frame iframe { display: block; border: 0; }
.virtual-fallback { margin-top: 1rem; color: var(--ink-soft); }
.inquiry-disabled { max-width: 980px; border: 1px solid var(--line); border-radius: 12px; padding: clamp(2.2rem, 6vw, 5.5rem); background: #fff; }
.inquiry-disabled > span { color: var(--gold); font-size: .69rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.inquiry-disabled h2 { max-width: 12ch; margin: 1.5rem 0; }
.inquiry-disabled p { max-width: 720px; color: var(--ink-soft); }
.inquiry-disabled > div { display: flex; flex-wrap: wrap; align-items: center; gap: 1.5rem 2rem; margin-top: 2.5rem; }
.form-test-notice { display: flex; max-width: 920px; gap: .7rem 1.2rem; margin-bottom: 2rem; border-left: 3px solid var(--gold); padding: 1rem 1.25rem; background: #fff7e7; }
.form-test-notice strong { flex: 0 0 auto; color: #8b6328; text-transform: uppercase; }
.inquiry-unavailable p { margin: .5rem 0 0; }
.inquiry-language-notice { display: flex; max-width: 920px; align-items: flex-start; gap: 1rem; margin: 0 0 1.5rem; border: 1px solid rgba(128, 25, 21, .22); border-inline-start: 4px solid var(--brand-primary); border-radius: 8px; padding: 1.1rem 1.25rem; background: #fff8ed; }
.inquiry-language-notice > span { display: grid; flex: 0 0 34px; width: 34px; height: 34px; place-items: center; border-radius: 50%; background: var(--brand-primary); color: var(--white); }
.inquiry-language-notice svg { width: 18px; height: 18px; }
.inquiry-language-notice strong { display: block; margin-bottom: .25rem; color: var(--brand-primary); font-size: .78rem; letter-spacing: .045em; text-transform: uppercase; }
.inquiry-language-notice p { margin: 0; color: var(--ink); line-height: 1.55; }

.partner-strip { display: grid; grid-template-columns: 1.2fr repeat(4, 1fr); gap: 1px; margin-top: 3.5rem; border: 1px solid var(--line-light); background: var(--line-light); }
.partner-strip > a { display: flex; min-height: 105px; align-items: center; flex-direction: column; justify-content: center; padding: 1rem; background: #801915; color: #fff; text-align: center; text-decoration: none; }
.partner-strip > a strong { font-family: var(--serif); font-size: 1.08rem; font-weight: 400; }
.partner-strip > a span { color: rgba(255,255,255,.58); font-size: .62rem; letter-spacing: .08em; text-transform: uppercase; }
.partner-strip .booking-score { display: grid; grid-template-columns: 1fr auto auto; column-gap: .5rem; }
.partner-strip .booking-score img { width: 145px; }
.partner-strip .booking-score strong { color: #fff; font-family: var(--sans); font-size: 1.5rem; font-weight: 800; }
.partner-strip .booking-score span { align-self: center; }
.social-links strong { margin-bottom: .6rem; color: rgba(255,255,255,.58); font-size: .62rem; letter-spacing: .1em; text-transform: uppercase; }

@media (max-width: 1180px) {
  :root { --shell: min(100% - 48px, 1080px); }
  .site-header { min-height: 100px; grid-template-columns: 150px 1fr auto; }
  .brand img { width: 125px; height: 125px; }
  .page-home .site-navigation { color: var(--ink); }
  .page-home .site-navigation a { color: var(--ink); }
  .benefit-ribbon { grid-template-columns: repeat(3, 1fr); }
  .benefit-ribbon div:nth-child(4), .benefit-ribbon div:nth-child(5) { border-top: 1px solid var(--line); }
  .offer-highlight { grid-template-columns: 1fr 1fr; }
  .offer-highlight > div:first-child { grid-column: 1 / -1; min-height: 260px; }
  .partner-strip { grid-template-columns: 1fr 1fr; }
  .stay-grid-categories { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  :root { --shell: calc(100% - 32px); }
  .site-header { min-height: 82px; grid-template-columns: 90px 1fr auto; padding-inline: 14px; }
  .brand img { width: 88px; height: 88px; }
  .page-home .site-navigation { background: var(--cream); }
  .hero, .hero-copy { min-height: 720px; }
  .hero-copy { align-items: flex-end; padding: 120px 0 150px; }
  .hero-panel { width: 100%; }
  .hero-panel h1 { max-width: 9ch; font-size: clamp(3.2rem, 14vw, 5.2rem); }
  .hero-lead { max-width: 31ch; font-size: 1.05rem; }
  .booking-bar { grid-template-columns: 1fr 1fr; }
  .booking-guests { grid-column: 1 / -1; min-height: 68px; }
  .booking-submit { grid-column: 1 / -1; min-height: 56px; }
  .benefit-ribbon { grid-template-columns: 1fr 1fr; padding-top: 2rem; }
  .benefit-ribbon div { min-height: 105px; grid-template-columns: 34px 1fr; padding: .8rem; }
  .benefit-ribbon div + div { border-left: 0; }
  .benefit-ribbon div:nth-child(even) { border-left: 1px solid var(--line); }
  .benefit-ribbon div:nth-child(n+3) { border-top: 1px solid var(--line); }
  .benefit-ribbon div:last-child { grid-column: 1 / -1; }
  .offer-highlight { grid-template-columns: 1fr; }
  .offer-highlight > div:first-child { grid-column: auto; }
  .offer-highlight > div { min-height: 300px; }
  .price-callout { align-items: flex-start; flex-direction: column; gap: 1rem; }
  .content-page { padding-block: 4.5rem; }
  .price-table-wrap { overflow-x: auto; }
  .price-table-wrap table { min-width: 1050px; }
  .content-note { align-items: flex-start; flex-direction: column; }
  .current-offers { grid-template-columns: 1fr; }
  .current-offer ul { min-height: 0; }
  .rating-hero { grid-template-columns: 1fr auto; }
  .rating-hero img { width: 180px; }
  .rating-hero p, .rating-hero small { grid-column: 1 / -1; }
  .review-values, .legal-cards { grid-template-columns: 1fr; }
  .review-values div + div { border-top: 1px solid var(--line); border-left: 0; }
  .legal-cards a { min-height: 270px; }
  .gallery-grid { grid-auto-rows: 300px; grid-template-columns: 1fr; }
  .gallery-wide { grid-column: auto; }
  .gallery-tall { grid-row: auto; }
  .gallery-grid-full { grid-auto-rows: auto; grid-template-columns: 1fr 1fr; }
  .gallery-grid-full .gallery-wide { grid-column: span 2; }
  .gallery-lightbox[open] { grid-template-columns: 54px minmax(0, 1fr) 54px; }
  .gallery-lightbox figure { max-width: calc(100vw - 110px); }
  .gallery-close { top: 12px; right: 12px; width: 44px; height: 44px; }
  .gallery-arrow { width: 42px; height: 42px; }
  .virtual-frame iframe { height: 520px; }
  .partner-strip { grid-template-columns: 1fr; }
  .stay-grid-categories { grid-template-columns: 1fr; }
}

/* Cohesive UI refresh: one native SF system family, compact scale and clear actions. */
:root {
  --ink: #202522;
  --ink-soft: #626a65;
  --paper: #f7f7f4;
  --white: #fff;
  --brand-primary: #801915;
  --brand-primary-dark: #68110f;
  --accent: #801915;
  --gold: #801915;
  --line: #dde1dd;
  --shadow: 0 16px 44px rgba(25, 42, 35, .12);
  --sans: "SF UI Display", "SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  --serif: var(--sans);
  --shell: min(1240px, calc(100vw - 64px));
  --radius: 14px;
}
body { background: var(--paper); font-family: var(--sans); font-size: 16px; line-height: 1.58; }
h1, h2, h3, h4, .lead { font-family: var(--sans); font-weight: 650; letter-spacing: -.035em; }
h1 { font-size: clamp(2.65rem, 5vw, 4.9rem); line-height: 1.02; }
h2 { font-size: clamp(2rem, 3.7vw, 3.6rem); line-height: 1.08; }
h3 { font-size: clamp(1.4rem, 2.2vw, 2.1rem); line-height: 1.15; }
.lead { font-size: clamp(1.15rem, 1.7vw, 1.45rem); font-weight: 430; line-height: 1.5; }
.eyebrow { margin-bottom: .8rem; color: var(--accent); font-size: .7rem; letter-spacing: .14em; }
.button { min-height: 48px; border-radius: 9px; padding: .85rem 1.35rem; background: var(--brand-primary); font-size: .7rem; }
.button:hover { background: var(--brand-primary-dark); }
.button-gold, .booking-submit { border-color: var(--accent); background: var(--accent); }
.button-gold:hover, .booking-submit:hover { background: #873027; }

.site-header { position: sticky !important; top: 0; z-index: 80; display: block; min-height: 0; border-bottom: 1px solid var(--line); padding: 0; background: rgba(255,255,255,.97) !important; color: var(--ink) !important; backdrop-filter: blur(18px); }
.header-utility { display: flex; height: 34px; align-items: center; justify-content: flex-end; gap: 1.15rem; border-bottom: 1px solid #eceeec; padding: 0 max(32px, calc((100vw - 1240px) / 2)); color: var(--ink-soft); font-size: .69rem; }
.header-utility > a { text-decoration: none; }
.header-rating { display: flex; align-items: center; gap: .3rem; color: #003b95; }
.header-rating img { width: 82px; height: 17px; object-fit: contain; }
.header-rating strong { font-size: .8rem; }
.header-rating span { font-size: .62rem; }
.header-social { display: flex; gap: .35rem; }
.header-social a { display: grid; width: 22px; height: 22px; place-items: center; border: 1px solid var(--line); border-radius: 50%; font-size: .61rem; font-weight: 800; text-decoration: none; }
.header-main { display: grid; width: var(--shell); min-height: 76px; margin: auto; grid-template-columns: 112px 1fr auto; align-items: center; gap: 1.4rem; }
.brand { height: 76px; align-self: auto; }
.brand img, .page-home .brand img { width: 96px; height: 96px; filter: drop-shadow(0 5px 10px rgba(0,0,0,.1)); object-fit: contain; }
.site-navigation { gap: clamp(.8rem, 1.65vw, 1.55rem); }
.site-navigation a, .page-home .site-navigation a { color: var(--ink); font-size: .66rem; letter-spacing: .055em; }
.site-navigation a::after { bottom: -.45rem; background: var(--accent) !important; }
.header-actions { gap: .75rem; }
.header-inquiry { font-size: .68rem; font-weight: 750; letter-spacing: .05em; text-decoration: none; text-transform: uppercase; }
.language-switcher summary { display: flex; width: auto; min-width: 70px; height: 40px; gap: .35rem; border-radius: 9px; padding: 0 .65rem; }
.language-switcher > div { min-width: 100%; border-radius: 9px; }
.language-switcher a { padding: .62rem .85rem; }

.hero, .hero-copy { min-height: clamp(590px, 72vh, 720px); }
.hero-shade { background: linear-gradient(90deg, rgba(45,12,10,.8), rgba(45,12,10,.36) 52%, rgba(45,12,10,.05)); }
.hero-copy { align-items: center; padding: 5rem 0 8rem; }
.hero-panel { width: min(650px, 58vw); }
.hero-panel h1 { max-width: 12ch; font-size: clamp(3rem, 5.5vw, 5.25rem); }
.hero-lead { max-width: 570px; margin: 1.35rem 0 1.8rem; font-size: clamp(1.05rem, 1.45vw, 1.3rem); }
.hero-actions { display: flex; align-items: center; gap: 1.3rem; }
.hero-actions .button { min-height: 54px; padding-inline: 1.7rem; }
.hero-inquiry { border-bottom: 1px solid rgba(255,255,255,.8); color: #fff; font-size: .72rem; font-weight: 750; letter-spacing: .06em; text-decoration: none; text-transform: uppercase; }

.booking-deck { margin-top: -55px; }
.booking-bar { position: relative; display: grid; min-height: 0; grid-template-columns: 1.25fr 1.25fr .65fr .65fr 1fr; overflow: visible; border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); box-shadow: var(--shadow); }
.booking-field { display: grid; min-width: 0; gap: .25rem; border: 0; border-right: 1px solid var(--line); padding: .85rem 1rem; }
.booking-field > span, .booking-field > label { color: var(--ink-soft); font-size: .62rem; font-weight: 760; letter-spacing: .09em; text-transform: uppercase; }
.booking-field input, .booking-field select { width: 100%; min-height: 32px; border: 0; outline: 0; padding: 0; background: transparent; color: var(--ink); font-size: .92rem; font-weight: 620; }
.booking-date input { color-scheme: light; }
.booking-actions { display: grid; min-width: 180px; }
.booking-submit { min-width: 0; min-height: 54px; }
.booking-inquiry { display: grid; min-height: 35px; place-items: center; border-top: 1px solid #e8e0d7; color: var(--accent); font-size: .66rem; font-weight: 760; text-decoration: none; }
.booking-child-ages { position: absolute; z-index: 5; top: calc(100% + 8px); right: 180px; display: grid; min-width: 240px; grid-template-columns: repeat(2, 1fr); gap: .7rem; border: 1px solid var(--line); border-radius: 10px; padding: .8rem; background: #fff; box-shadow: var(--shadow); }
.booking-child-ages[hidden] { display: none; }
.booking-child-ages label { display: grid; gap: .25rem; color: var(--ink-soft); font-size: .64rem; }
.booking-child-ages select { min-height: 36px; border: 1px solid var(--line); border-radius: 6px; background: #fff; }

.benefit-ribbon { padding: 2.3rem 0 1rem; }
.benefit-ribbon div { grid-template-columns: 30px 1fr; padding: .4rem 1rem; }
.benefit-ribbon div > span { font-family: var(--sans); font-size: 1.3rem; }
.benefit-ribbon strong { font-family: var(--sans); font-size: .9rem; font-weight: 650; }
.intro-section { grid-template-columns: 50px 1fr .95fr; gap: clamp(2rem, 5vw, 5rem); padding-block: clamp(5rem, 8vw, 8rem); }
.intro-copy h2 { max-width: 14ch; }
.intro-image { height: 520px; }
.intro-image button { position: relative; width: 100%; height: 100%; border: 0; padding: 0; background: none; }
.intro-image button > span, .room-main-photo > span { position: absolute; right: 1rem; bottom: 1rem; display: grid; width: 42px; height: 42px; place-items: center; border-radius: 50%; background: #fff; font-size: 1.35rem; }
.offer-highlight > div { min-height: 300px; }
.offer-highlight h2 { max-width: 12ch; }
.offer-highlight-card h3 { font-size: clamp(1.5rem, 2vw, 2.25rem); }
.price-callout { padding-block: 3.2rem; }
.stay-section { padding-block: clamp(4.5rem, 7vw, 7rem); }
.stay-card { border-radius: var(--radius); background: #fff; }
.stay-card-copy h3 { font-size: 1.55rem; }
.stay-card-image { height: 310px; }
.experience-pair { gap: 1.5rem; }
.experience-card { border-radius: var(--radius); }
.experience-copy { padding: clamp(2rem, 4vw, 4rem); }
.region-feature, .region-copy { min-height: 620px; }
.gift-feature { padding-block: clamp(5rem, 8vw, 8rem); }
.gift-media { height: 540px; }

.home-gallery { padding-block: clamp(4rem, 7vw, 7rem); }
.home-gallery-grid, .restaurant-gallery { display: grid; grid-template-columns: 1.35fr 1fr 1fr; gap: .8rem; }
.home-gallery-grid button, .restaurant-gallery button { overflow: hidden; aspect-ratio: 4 / 3; border: 0; border-radius: 10px; padding: 0; background: #ddd; }
.home-gallery-grid button:first-child, .restaurant-gallery button:first-child { grid-row: span 2; aspect-ratio: auto; }
.home-gallery-grid img, .restaurant-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.home-gallery-grid button:hover img, .restaurant-gallery button:hover img { transform: scale(1.025); }

.detail-hero, .detail-hero-copy { min-height: 540px; }
.detail-hero-copy { padding-bottom: 3rem; }
.detail-hero-copy h1 { max-width: 14ch; }
.detail-booking { margin-top: -42px; }
.detail-intro { gap: clamp(2.5rem, 6vw, 7rem); padding-block: clamp(4.5rem, 7vw, 7rem); }
.detail-intro .lead { font-size: clamp(1.25rem, 2vw, 1.75rem); }
.original-content { margin-bottom: 5rem; }
.rich-copy { max-width: 920px; margin: auto; column-gap: 4rem; }
.rich-copy h2, .rich-copy h3, .rich-copy h4, .rich-copy h5 { margin: 2.5rem 0 .9rem; }
.rich-copy h2 { font-size: clamp(1.8rem, 3vw, 2.75rem); }
.rich-copy h3 { font-size: clamp(1.35rem, 2vw, 1.8rem); }
.rich-copy h4, .rich-copy h5 { font-size: 1.08rem; }
.rich-copy p, .rich-copy li { color: #454c48; }
.rich-copy blockquote { margin: 2rem 0; border-left: 3px solid var(--accent); padding: .4rem 0 .4rem 1.4rem; font-size: 1.25rem; }
.rich-copy > p:last-child a { display: inline-flex; border-radius: 8px; padding: .75rem 1.1rem; background: var(--brand-primary); color: #fff; text-decoration: none; }
.editorial-block { max-width: 920px; grid-template-columns: 36px 1fr; gap: 1.5rem; padding-block: 3rem; }
.editorial-block h2 { font-size: clamp(1.8rem, 3vw, 2.7rem); }
.room-variants { padding-block: clamp(4rem, 7vw, 7rem); }
.room-variant { min-height: 480px; grid-template-columns: 1.15fr .85fr; border-radius: var(--radius); }
.room-variant:nth-child(even) { grid-template-columns: .85fr 1.15fr; }
.room-variant-gallery { display: grid; min-height: 480px; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 145px; gap: 4px; background: #eee; }
.room-variant:nth-child(even) .room-variant-gallery { order: 2; }
.room-variant-gallery button { overflow: hidden; border: 0; padding: 0; background: #ddd; }
.room-main-photo { position: relative; grid-column: 1 / -1; }
.room-variant-gallery img { width: 100%; height: 100%; object-fit: cover; }
.room-variant-copy { padding: clamp(2rem, 4vw, 3.6rem); }
.room-variant-copy h3 { margin: .8rem 0 1rem; }
.room-features { margin: .5rem 0 1.5rem; padding-left: 1.15rem; color: var(--ink-soft); }
.room-features li { margin: .35rem 0; }
.room-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1.2rem; }
.plan-section { padding-block: 5rem; }
.plan-open { display: grid; gap: 1rem; border: 0; border-radius: var(--radius); padding: 2rem; background: #fff; text-align: left; }
.plan-open img { max-height: 520px; margin: auto; }
.detail-cta { min-height: 420px; }
.restaurant-gallery { grid-template-columns: 1.2fr 1fr 1fr; margin-bottom: 6rem; }
.restaurant-mark { width: min(280px, 60vw); margin-bottom: 1.5rem; filter: brightness(0) invert(1); }

.content-page, .form-page, .legacy-page { padding-block: clamp(4.5rem, 7vw, 7rem); }
.content-page-header, .form-header, .legacy-header { margin-bottom: 3.5rem; }
.content-page-header h1, .form-header h1, .legacy-header h1 { max-width: 17ch; font-size: clamp(2.65rem, 5vw, 4.6rem); }
.season-tabs a { border: 1px solid var(--line); border-radius: 99px; padding: .65rem 1rem; background: #fff; font-size: .72rem; font-weight: 700; text-decoration: none; }
.season-tabs a:first-child { border-color: var(--brand-primary); background: var(--brand-primary); color: #fff; }
.price-season { padding-top: 1rem; scroll-margin-top: 130px; }
.price-season + .price-season { margin-top: 6rem; }
.price-season-heading { display: flex; align-items: flex-start; gap: 1.2rem; margin-bottom: 1.5rem; }
.price-season-heading > span { color: var(--accent); font-weight: 700; }
.price-season-heading h2 { font-size: clamp(1.8rem, 3vw, 2.7rem); }
.price-season-heading p { color: var(--ink-soft); }
.price-table-wrap { border-radius: var(--radius); box-shadow: none; }
.price-table-wrap > h2 { display: none; }
.price-table-wrap th { background: var(--brand-primary); }
.price-table-wrap td > a:first-of-type { font-family: var(--sans); font-weight: 650; }
.content-note { border-radius: 0 var(--radius) var(--radius) 0; }
.inquiry-form { padding: clamp(1.3rem, 3vw, 2.5rem); border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }
.inquiry-form legend { font-size: clamp(1.4rem, 2vw, 1.8rem); font-weight: 650; }
.inquiry-form input, .inquiry-form select, .inquiry-form textarea { border-radius: 8px; background: #fbfbf9; }
.inquiry-form .inquiry-date-field { grid-template-rows: auto 56px; }
.inquiry-form .inquiry-date-field > input[type="hidden"] { display: none; }
.inquiry-form .inquiry-date-field .booking-date-button {
  min-height: 56px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: .8rem 1rem;
  background: #fbfbf9;
  color: var(--ink);
  font-size: 1rem;
  font-weight: 400;
}
.inquiry-form .inquiry-date-field .booking-date-button:hover,
.inquiry-form .inquiry-date-field .booking-date-button[aria-expanded="true"] { border-color: rgba(128,25,21,.45); background: #fffaf3; }
.inquiry-child-ages:empty { display: none; }
.legacy-content { max-width: 920px; padding: clamp(1.4rem, 4vw, 3rem); }
.legacy-content h2 { font-size: clamp(1.8rem, 3vw, 2.8rem); }
.legacy-content h3 { font-size: clamp(1.4rem, 2vw, 2rem); }

.gallery-grid-full { grid-template-columns: repeat(3, 1fr); }
.image-lightbox { width: 100vw; max-width: none; height: 100dvh; max-height: none; margin: 0; border: 0; padding: 35px; background: rgba(12,15,13,.96); color: #fff; }
.image-lightbox[open] { display: grid; place-items: center; }
.image-lightbox::backdrop { background: rgba(12,15,13,.92); }
.image-lightbox figure { display: grid; max-width: calc(100vw - 70px); max-height: calc(100dvh - 70px); justify-items: center; margin: 0; }
.image-lightbox img { max-width: 100%; max-height: calc(100dvh - 115px); object-fit: contain; }
.image-lightbox figcaption { margin-top: .7rem; color: rgba(255,255,255,.7); }

.site-footer { margin-top: 6rem; padding-top: 4.5rem; }
.page-home .site-footer, .page-detail .site-footer { margin-top: 0; }
.footer-hero { margin-bottom: 4rem; }
.footer-hero h2 { font-size: clamp(2rem, 3.5vw, 3.4rem); }
.footer-brandmark { width: 130px; height: 130px; }
.partner-strip { grid-template-columns: repeat(4, 1fr); }
.footer-grid strong, .footer-direct strong { font-family: var(--sans); }

@media (max-width: 1120px) {
  :root { --shell: min(100% - 40px, 980px); }
  .header-main { grid-template-columns: 100px 1fr auto; }
  .menu-toggle { display: flex; justify-self: end; }
  .site-navigation { position: absolute; top: 100%; right: 0; left: 0; display: none; flex-direction: column; align-items: stretch; gap: 0; padding: 1rem 24px 2rem; background: #fff; box-shadow: var(--shadow); }
  .site-navigation.is-open { display: flex; }
  .site-navigation a { border-bottom: 1px solid var(--line); padding: .9rem 0; }
  .header-inquiry { display: none; }
  .booking-bar { grid-template-columns: 1fr 1fr 1fr 1fr; }
  .booking-actions { grid-column: 1 / -1; grid-template-columns: 1fr 1fr; }
  .booking-child-ages { right: 0; }
}

@media (max-width: 760px) {
  :root { --shell: calc(100% - 28px); }
  h1 { font-size: clamp(2.5rem, 12vw, 3.65rem); }
  h2 { font-size: clamp(1.9rem, 8.5vw, 2.75rem); }
  .header-utility { height: 30px; padding-inline: 12px; }
  .header-utility > a:last-child, .header-social { display: none; }
  .header-main { min-height: 68px; grid-template-columns: 82px 1fr auto; }
  .brand { height: 68px; }
  .brand img, .page-home .brand img { width: 80px; height: 80px; }
  .header-actions .button { display: none; }
  .language-switcher summary { min-width: 64px; height: 36px; }
  .hero, .hero-copy { min-height: 610px; }
  .hero-copy { padding: 4rem 0 7rem; }
  .hero-panel { width: 100%; }
  .hero-panel h1 { font-size: clamp(2.75rem, 13vw, 4.2rem); }
  .hero-actions { align-items: flex-start; flex-direction: column; }
  .booking-deck, .detail-booking { width: calc(100% - 14px); margin-top: -40px; }
  .booking-bar { grid-template-columns: 1fr 1fr; }
  .booking-field { border-bottom: 1px solid var(--line); padding: .75rem; }
  .booking-actions { grid-column: 1 / -1; }
  .booking-child-ages { right: 0; left: 0; grid-template-columns: repeat(3, 1fr); }
  .benefit-ribbon { grid-template-columns: 1fr 1fr; }
  .intro-section { grid-template-columns: 1fr; padding-block: 5rem; }
  .intro-kicker { display: none; }
  .intro-image { grid-column: auto; width: 100%; height: 410px; }
  .offer-highlight { grid-template-columns: 1fr; }
  .offer-highlight > div:first-child { grid-column: auto; }
  .stay-card-image { height: 290px; }
  .home-gallery-grid, .restaurant-gallery { grid-template-columns: 1fr 1fr; }
  .home-gallery-grid button:first-child, .restaurant-gallery button:first-child { grid-column: 1 / -1; grid-row: auto; aspect-ratio: 16 / 9; }
  .room-variant, .room-variant:nth-child(even) { grid-template-columns: 1fr; }
  .room-variant:nth-child(even) .room-variant-gallery { order: 0; }
  .room-variant-gallery { min-height: 430px; }
  .detail-hero, .detail-hero-copy { min-height: 470px; }
  .original-content { margin-bottom: 3rem; }
  .plan-section { grid-template-columns: 1fr; }
  .gallery-grid-full { grid-template-columns: 1fr 1fr; }
  .partner-strip { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr; }
  .image-lightbox { padding: 14px; }
  .image-lightbox figure { max-width: calc(100vw - 28px); }
}

/* Warm visual refinement: quieter surfaces, lighter header and reliable icons. */
:root {
  --ink: #2c2823;
  --ink-soft: #6e655b;
  --paper: #f6f0e7;
  --cream: #f6f0e7;
  --cream-deep: #e9dfd1;
  --white: #fffaf3;
  --brand-primary: #801915;
  --brand-primary-dark: #68110f;
  --accent: #801915;
  --burgundy: #801915;
  --gold: #801915;
  --copper: #801915;
  --line: rgba(80, 60, 42, .13);
  --shadow: 0 18px 50px rgba(62, 43, 27, .11);
  --serif: Georgia, "Times New Roman", serif;
  --sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --shell: min(1320px, calc(100vw - 64px));
  --radius: 10px;
}

body { background: var(--paper); line-height: 1.65; }
h1, h2, h3, h4, .lead { font-family: var(--serif); font-weight: 400; letter-spacing: -.025em; }
h1 { font-size: clamp(2.8rem, 5vw, 5.2rem); }
h2 { font-size: clamp(2.1rem, 3.6vw, 3.8rem); }
h3 { font-size: clamp(1.45rem, 2.1vw, 2.2rem); }
.lead { font-size: clamp(1.2rem, 1.75vw, 1.6rem); font-weight: 400; }
.button { border-radius: 5px; }

.site-header { position: sticky !important; min-height: 0; border: 0; padding: 0; background: rgba(246,240,231,.96) !important; box-shadow: 0 5px 22px rgba(53,38,24,.07); color: var(--ink) !important; }
.header-utility { display: none; }
.header-main { width: var(--shell); min-height: 92px; grid-template-columns: 125px 1fr auto; gap: 1.5rem; }
.brand { height: 92px; }
.brand img, .page-home .brand img { width: 114px; height: 114px; filter: drop-shadow(0 5px 10px rgba(71,43,25,.12)); }
.site-navigation { gap: clamp(.7rem, 1.45vw, 1.35rem); }
.site-navigation a, .page-home .site-navigation a { color: var(--ink); font-size: .64rem; letter-spacing: .065em; }
.site-navigation a::after { background: var(--accent) !important; }
.header-actions { gap: .7rem; }
.language-switcher summary { min-width: 66px; height: 40px; border: 0; border-radius: 0; padding: 0 .2rem; }
.language-switcher summary .icon { width: 17px; height: 17px; }
.language-chevron { width: 7px; height: 7px; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: rotate(45deg) translateY(-2px); }
.icon { display: block; width: 16px; height: 16px; }

.hero-panel h1 { font-family: var(--serif); font-size: clamp(3.15rem, 5.6vw, 5.8rem); font-weight: 400; }
.hero-lead { font-family: var(--sans); }
.booking-bar { border: 0; border-radius: 8px; background: var(--white); box-shadow: var(--shadow); }
.booking-field { border-right-color: var(--line); }
.booking-field input, .booking-field select, .booking-date-button { font-family: var(--sans); font-weight: 600; }
.booking-field select { appearance: none; padding-right: 25px; background-image: linear-gradient(45deg, transparent 50%, var(--ink-soft) 50%), linear-gradient(135deg, var(--ink-soft) 50%, transparent 50%); background-position: calc(100% - 11px) 13px, calc(100% - 7px) 13px; background-repeat: no-repeat; background-size: 4px 4px, 4px 4px; }
.booking-date-button { display: flex; width: 100%; min-height: 32px; align-items: center; justify-content: space-between; gap: .75rem; border: 0; padding: 0; background: transparent; color: var(--ink); font-size: .92rem; text-align: left; }
.calendar-icon { width: 18px; height: 18px; flex: 0 0 auto; background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239b3029' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M16 3v4M8 3v4M3 10h18M8 14h.01M12 14h.01M16 14h.01M8 18h.01M12 18h.01'/%3E%3C/svg%3E"); }

.date-picker { position: absolute; z-index: 300; width: min(340px, calc(100vw - 24px)); border: 0; border-radius: 12px; padding: 1rem; background: #fffaf3; box-shadow: 0 22px 65px rgba(52,35,21,.22); color: var(--ink); }
.date-picker[hidden] { display: none; }
.date-picker-head { display: grid; grid-template-columns: 40px 1fr 40px; align-items: center; margin-bottom: .7rem; }
.date-picker-head strong { font-family: var(--serif); font-size: 1.1rem; font-weight: 400; text-align: center; text-transform: capitalize; }
.date-picker-nav { width: 38px; height: 38px; border: 0; border-radius: 50%; background: transparent; color: var(--ink); font-size: 1.65rem; line-height: 1; }
.date-picker-nav:hover { background: var(--cream-deep); }
.date-picker-weekdays, .date-picker-days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; }
.date-picker-weekdays span { padding: .35rem 0; color: var(--ink-soft); font-size: .65rem; font-weight: 700; text-align: center; text-transform: uppercase; }
.date-picker-day { aspect-ratio: 1; border: 0; border-radius: 50%; background: transparent; color: var(--ink); font-size: .78rem; }
.date-picker-day:hover:not(:disabled) { background: var(--cream-deep); }
.date-picker-day.is-outside { color: #aaa096; }
.date-picker-day.is-today { box-shadow: inset 0 0 0 1px var(--gold); }
.date-picker-day.is-selected { background: var(--accent); color: #fff; box-shadow: none; }
.date-picker-day:disabled { color: #d5cec6; cursor: not-allowed; }

.benefit-ribbon div + div { border-left: 0; }
.benefit-ribbon .benefit-icon { grid-row: 1 / 3; width: 28px; height: 28px; color: var(--gold); }
.benefit-ribbon strong { font-family: var(--serif); font-size: 1rem; font-weight: 400; }
.stay-card, .room-variant, .current-offer, .inquiry-form, .review-values, .rating-hero, .legal-cards a { border: 0; }
.stay-card { background: var(--white); box-shadow: 0 12px 35px rgba(60,42,28,.07); }
.offer-highlight { gap: 0; background: transparent; }
.offer-highlight > div { background: var(--white); }
.offer-highlight > div + div { margin-left: 1px; }
.price-callout { border-color: var(--line); }
.season-tabs a { border: 0; background: var(--white); }

.gift-feature { max-width: 1180px; grid-template-columns: .9fr 1.1fr; gap: clamp(2.5rem, 6vw, 6rem); padding-block: clamp(5rem, 8vw, 8rem); }
.gift-copy { padding-left: 3rem; }
.gift-media { width: min(100%, 520px); height: auto; aspect-ratio: 1; justify-self: end; }
.gift-media img { object-fit: contain; }

.weather-page { max-width: 1100px; }
.weather-page .content-page-header { max-width: 900px; margin-bottom: 3rem; }
.weather-panel { width: 100%; min-height: 0; overflow: visible; border-radius: 0; background: transparent; box-shadow: none; }
.webcam-section { margin-top: clamp(4.5rem, 8vw, 7rem); }
.webcam-copy { max-width: 760px; margin-bottom: 2rem; }
.webcam-copy h2 { margin-bottom: 1rem; }
.webcam-copy p:last-child { color: var(--ink-soft); }
.webcam-frame { position: relative; width: 100%; overflow: hidden; aspect-ratio: 16 / 9; background: #ded6ca; box-shadow: 0 18px 50px rgba(62,43,27,.11); }
.webcam-frame > span, .webcam-frame > a, .webcam-frame canvas { width: 100% !important; height: 100% !important; }
.webcam-link { margin-top: 1.2rem; }

@media (max-width: 1120px) {
  .header-main { min-height: 86px; grid-template-columns: 110px 1fr auto; }
  .brand { height: 86px; }
  .brand img, .page-home .brand img { width: 104px; height: 104px; }
  .site-navigation { background: var(--paper); }
  .site-navigation a { border: 0; border-bottom: 1px solid var(--line); }
}

@media (max-width: 760px) {
  :root { --shell: calc(100% - 28px); }
  .header-main { min-height: 74px; grid-template-columns: 84px 1fr auto; }
  .brand { height: 74px; }
  .brand img, .page-home .brand img { width: 86px; height: 86px; }
  .gift-feature { grid-template-columns: 1fr; }
  .gift-copy { padding-left: 2.3rem; }
  .gift-media { width: min(100%, 440px); justify-self: center; }
  .benefit-ribbon div:nth-child(even), .benefit-ribbon div:nth-child(n+3) { border: 0; }
  .offer-highlight > div + div { margin: 1px 0 0; }
  .webcam-frame { width: calc(100vw - 28px); margin-left: calc((var(--shell) - 100vw + 28px) / 2); aspect-ratio: 4 / 3; }
}

/* Content restoration: original typography, transparent hero header and editorial pages. */
@font-face { font-family: "Rittis Eurostile"; src: url("../fonts/eurostile-regular.woff2") format("woff2"); font-display: swap; font-style: normal; font-weight: 400; }
@font-face { font-family: "Rittis Eurostile Extended"; src: url("../fonts/eurostile-extended.woff2") format("woff2"); font-display: swap; font-style: normal; font-weight: 400; }
:root { --display: "Rittis Eurostile", "Trebuchet MS", Arial, sans-serif; --sans: Arial, Helvetica, sans-serif; }
body { font-family: var(--sans); }
h1, h2, h3, h4, .lead { font-family: var(--display); font-weight: 400; letter-spacing: -.018em; }
h1 { font-size: clamp(2.8rem, 4.7vw, 5rem); }
h2 { font-size: clamp(2rem, 3.25vw, 3.45rem); }
h3 { font-size: clamp(1.4rem, 2vw, 2rem); }
.hero-panel h1 { font-family: var(--display); font-size: clamp(3.2rem, 5.5vw, 5.75rem); }

.page-home .site-header { position: absolute !important; top: 0; right: 0; left: 0; background: linear-gradient(180deg, rgba(24,17,12,.58), rgba(24,17,12,0)) !important; box-shadow: none; color: #fff !important; transition: background .25s, box-shadow .25s; }
.page-home .site-header .site-navigation a, .page-home .site-header .header-inquiry { color: #fff; }
.page-home .site-header .language-switcher summary { color: #fff; }
.page-home .site-header.is-scrolled { position: fixed !important; background: rgba(246,240,231,.97) !important; box-shadow: 0 5px 22px rgba(53,38,24,.11); color: var(--ink) !important; }
.page-home .site-header.is-scrolled .site-navigation a, .page-home .site-header.is-scrolled .header-inquiry, .page-home .site-header.is-scrolled .language-switcher summary { color: var(--ink); }
.language-switcher summary { min-width: 52px; justify-content: center; gap: .55rem; border-left: 1px solid var(--line); padding-left: .75rem; }
.language-switcher > div { top: calc(100% + 13px); min-width: 68px; overflow: hidden; border: 0; border-radius: 4px; padding: .35rem; background: #fffaf3; box-shadow: 0 14px 40px rgba(50,35,23,.18); }
.language-switcher a { border-radius: 3px; padding: .55rem .75rem; font-size: .66rem; }
.language-switcher a:hover, .language-switcher a[aria-current] { background: var(--accent); color: #fff; }

/* Price tables */
.prices-page { --price-first: 310px; }
.price-season { scroll-margin-top: 110px; }
.price-season-heading { margin-bottom: 1.25rem; }
.price-season-heading > span { width: 32px; padding-top: .35rem; font-family: var(--display); }
.price-table-wrap { overflow-x: auto; border: 0; border-radius: 0; background: transparent; box-shadow: 0 16px 45px rgba(59,41,26,.08); scrollbar-color: var(--gold) var(--cream-deep); }
.price-table-wrap > h2 { display: block; padding: 1.35rem 1.5rem; background: var(--white); font-size: 1.35rem; }
.price-table-wrap table { width: 100%; min-width: 980px; border: 0; border-collapse: separate; border-spacing: 0; background: var(--white); table-layout: fixed; }
.price-table-wrap th { min-width: 148px; border: 0; border-bottom: 1px solid rgba(255,255,255,.16); padding: 1.15rem .85rem; background: var(--brand-primary); color: #fff; font-size: .7rem; font-weight: 700; line-height: 1.35; text-align: center; vertical-align: middle; }
.price-table-wrap th:first-child { position: sticky; z-index: 3; left: 0; width: var(--price-first); min-width: var(--price-first); background: var(--brand-primary); }
.price-table-wrap td { min-width: 148px; border: 0; border-bottom: 1px solid var(--line); padding: 1rem .85rem; background: var(--white); color: var(--ink); font-size: .86rem; line-height: 1.45; text-align: center; vertical-align: middle; }
.price-table-wrap td:first-child { position: sticky; z-index: 2; left: 0; width: var(--price-first); min-width: var(--price-first); background: #fffaf3; text-align: left; box-shadow: 9px 0 18px -18px rgba(43,28,18,.8); }
.price-table-wrap tbody tr:hover td { background: #fbf4e9; }
.price-table-wrap tbody tr:hover td:first-child { background: #f7ecdc; }
.price-table-wrap td > p { margin: .4rem 0 .65rem; color: var(--ink-soft); font-size: .78rem; }
.price-table-wrap td > small { display: block; margin: .35rem 0; color: var(--ink-soft); font-size: .72rem; }
.price-table-wrap td > strong { display: block; margin-top: .55rem; font-size: .72rem; }
.price-room-link { color: var(--accent) !important; font-family: var(--display) !important; font-size: 1.08rem !important; font-weight: 400 !important; text-decoration: none; }
.price-plan-link { display: inline-flex; margin-left: .4rem; color: var(--accent); font-size: .7rem; font-weight: 700; text-decoration: underline; }
.price-inquiry { display: block; width: max-content; margin: .42rem auto 0; color: var(--accent); font-size: .62rem; font-weight: 700; letter-spacing: .05em; text-decoration: none; text-transform: uppercase; }
.price-table-wrap tbody tr:empty { display: none; }

/* Original restaurant photographs and partner badges. */
.restaurant-gallery { grid-template-columns: 1.35fr 1fr 1fr; gap: .65rem; }
.restaurant-gallery button { border-radius: 0; }
.partner-strip { display: flex; min-height: 190px; align-items: center; justify-content: center; flex-wrap: wrap; gap: clamp(1.5rem, 4vw, 4rem); border: 0; padding: 2.2rem var(--shell-gap, 2rem); background: #fffaf3; }
.partner-strip a { display: grid; min-width: 150px; min-height: 110px; place-items: center; border: 0; padding: .5rem; }
.partner-strip a + a { border: 0; }
.partner-strip img { width: auto; max-width: 190px; height: auto; max-height: 120px; object-fit: contain; mix-blend-mode: multiply; }
.partner-strip a:nth-child(2) img { max-height: 150px; }

/* Room detail pages */
.room-detail-hero { position: relative; min-height: 700px; overflow: hidden; color: #fff; }
.room-detail-hero-media, .room-detail-hero-shade { position: absolute; inset: 0; }
.room-detail-hero-shade { background: linear-gradient(0deg, rgba(21,14,9,.74), rgba(21,14,9,.06) 72%); }
.room-detail-hero-copy { position: relative; z-index: 2; display: flex; min-height: 700px; align-items: flex-start; flex-direction: column; justify-content: flex-end; padding-bottom: 6rem; }
.room-detail-hero-copy h1 { max-width: 13ch; }
.room-detail-hero-copy > p:last-of-type { max-width: 620px; margin-top: 1rem; color: rgba(255,255,255,.82); }
.room-detail-intro { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; padding-block: clamp(5rem, 8vw, 8rem); }
.room-detail-intro ul { display: grid; margin: 0; padding: 0; list-style: none; }
.room-detail-intro li { border-bottom: 1px solid var(--line); padding: 1rem 0; }
.room-detail-gallery { padding-bottom: clamp(5rem, 8vw, 8rem); }
.room-detail-grid { display: grid; grid-template-columns: 1.5fr 1fr; grid-template-rows: repeat(3, 210px); gap: 6px; }
.room-detail-grid button { overflow: hidden; border: 0; padding: 0; background: #ddd; }
.room-detail-main { grid-row: 1 / 4; }
.room-detail-grid img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.room-detail-grid button:hover img { transform: scale(1.025); }
.room-plan { display: grid; grid-template-columns: .8fr 1.2fr; gap: 4rem; align-items: center; padding-bottom: clamp(5rem, 8vw, 8rem); }
.room-plan > button { border: 0; padding: 1.2rem; background: #fff; }
.room-plan img { max-height: 520px; margin: auto; }

/* Regional and seasonal editorial pages */
.region-page-hero { position: relative; min-height: 680px; overflow: hidden; color: #fff; }
.region-page-hero > img, .region-page-shade { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.region-page-shade { background: linear-gradient(0deg, rgba(19,14,9,.76), rgba(19,14,9,.05) 75%); }
.region-page-hero > .section-shell { position: relative; z-index: 2; display: flex; min-height: 680px; align-items: flex-start; flex-direction: column; justify-content: flex-end; padding-bottom: 5rem; }
.region-page-hero h1 { max-width: 12ch; }
.region-page-intro { max-width: 900px; padding-block: clamp(5rem, 9vw, 9rem); text-align: center; }
.region-page-intro .lead { margin-top: 1.5rem; color: var(--ink-soft); }
.region-card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.1rem; }
.region-card-grid article { position: relative; }
.region-card-grid button { width: 100%; overflow: hidden; aspect-ratio: 4 / 5; border: 0; padding: 0; background: #ddd; }
.region-card-grid img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s; }
.region-card-grid button:hover img { transform: scale(1.025); }
.region-card-grid article > span { display: block; margin-top: 1.2rem; color: var(--accent); font-size: .67rem; font-weight: 700; }
.region-card-grid h2 { margin-top: .35rem; font-size: clamp(1.35rem, 2vw, 2rem); }
.region-season-links { display: grid; grid-template-columns: repeat(3, 1fr); margin-block: clamp(5rem, 9vw, 9rem); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.region-season-links a { padding: 1.7rem; color: var(--brand-primary); font-family: var(--display); text-align: center; text-decoration: none; }
.region-season-links a + a { border-left: 1px solid var(--line); }

/* A calmer, navigable image viewer. */
.image-lightbox { width: 100vw; max-width: none; height: 100dvh; max-height: none; grid-template-columns: 72px minmax(0, 1fr) 72px; margin: 0; border: 0; padding: 26px; background: rgba(28,22,17,.94); color: #fff; backdrop-filter: blur(12px); }
.image-lightbox[open] { display: grid; align-items: center; }
.image-lightbox figure { position: relative; display: grid; width: min(1320px, calc(100vw - 190px)); max-width: none; max-height: calc(100dvh - 52px); justify-items: center; margin: auto; }
.image-lightbox img { max-width: 100%; max-height: calc(100dvh - 105px); border-radius: 2px; object-fit: contain; box-shadow: 0 20px 70px rgba(0,0,0,.34); }
.image-lightbox figcaption { min-height: 26px; margin-top: .65rem; color: rgba(255,255,255,.76); font-size: .76rem; }
.image-lightbox-count { position: absolute; right: 0; bottom: 0; color: rgba(255,255,255,.55); font-size: .7rem; }
.image-lightbox-arrow { position: relative; display: grid; width: 54px; height: 54px; place-items: center; border: 1px solid rgba(255,255,255,.36); border-radius: 50%; padding: 0; appearance: none; background: transparent; color: #fff; font-size: 0; line-height: 1; }
.image-lightbox-arrow::before { position: absolute; top: 50%; left: 50%; width: 11px; height: 11px; border-top: 2px solid currentColor; border-right: 2px solid currentColor; content: ""; }
.image-lightbox-prev::before { transform: translate(-40%, -50%) rotate(-135deg); }
.image-lightbox-next::before { transform: translate(-60%, -50%) rotate(45deg); }
.image-lightbox-arrow:hover { background: #fff; color: var(--ink); }
.image-lightbox.is-single .image-lightbox-arrow, .image-lightbox.is-single .image-lightbox-count { visibility: hidden; }
.image-lightbox .gallery-close { position: fixed; z-index: 4; top: 18px; right: 20px; width: 48px; height: 48px; border: 1px solid rgba(255,255,255,.36); border-radius: 50%; background: rgba(20,15,11,.25); color: #fff; font-size: 1.8rem; }

@media (max-width: 760px) {
  .page-home .site-header .site-navigation { background: rgba(246,240,231,.98); }
  .page-home .site-header .site-navigation a { color: var(--ink); }
  .prices-page { --price-first: 235px; }
  .price-table-wrap { width: calc(100vw - 14px); margin-left: calc((var(--shell) - 100vw + 14px) / 2); }
  .price-table-wrap table { min-width: 880px; }
  .room-detail-hero, .room-detail-hero-copy { min-height: 560px; }
  .room-detail-intro, .room-plan { grid-template-columns: 1fr; gap: 2rem; }
  .room-detail-grid { grid-template-columns: 1fr 1fr; grid-template-rows: 340px 170px; }
  .room-detail-main { grid-column: 1 / -1; grid-row: auto; }
  .room-detail-grid button:last-child { display: none; }
  .region-page-hero, .region-page-hero > .section-shell { min-height: 570px; }
  .region-card-grid { grid-template-columns: 1fr; gap: 3rem; }
  .region-card-grid button { aspect-ratio: 4 / 3; }
  .region-season-links { grid-template-columns: 1fr; }
  .region-season-links a + a { border-top: 1px solid var(--line); border-left: 0; }
  .image-lightbox { grid-template-columns: 44px minmax(0, 1fr) 44px; padding: 12px 4px; }
  .image-lightbox figure { width: calc(100vw - 96px); }
  .image-lightbox-arrow { width: 40px; height: 40px; font-size: 0; }
}

/* Final visual calibration from the supplied reference. */
:root {
  --display: Georgia, "Times New Roman", serif;
  --serif: Georgia, "Times New Roman", serif;
  --sans: "Segoe UI", Inter, -apple-system, BlinkMacSystemFont, Arial, sans-serif;
  --paper: #f8f3eb;
  --cream: #f8f3eb;
  --white: #fffdf9;
  --line: rgba(84, 58, 36, .13);
  --accent: #801915;
  --gold: #801915;
}
body { font-family: var(--sans); }
h1, h2, h3, h4, .lead { font-family: var(--display); font-weight: 400; letter-spacing: -.025em; }
h1 { font-size: clamp(2.5rem, 4.25vw, 4.35rem); }
h2 { font-size: clamp(1.9rem, 3vw, 3.05rem); }
h3 { font-size: clamp(1.35rem, 1.8vw, 1.85rem); }
.hero-panel h1 { max-width: 13ch; font-family: var(--display); font-size: clamp(2.8rem, 4.45vw, 4.65rem); line-height: 1.07; }
.region-page-hero h1, .room-detail-hero-copy h1 { font-size: clamp(2.6rem, 4.4vw, 4.5rem); }

.header-utility { display: none; }
.header-main { position: relative; min-height: 88px; grid-template-columns: 128px 1fr auto; }
.brand { position: relative; z-index: 3; width: 122px; height: 88px; overflow: visible; }
.brand img, .page-home .brand img { position: absolute; top: 5px; left: 0; width: 116px; height: 116px; filter: drop-shadow(0 7px 13px rgba(32,20,12,.18)); transition: width .2s, height .2s, filter .2s; }
.site-header.is-scrolled .brand img, .page-home .site-header.is-scrolled .brand img { top: 5px; width: 108px; height: 108px; }
.header-rating-main { position: absolute; z-index: 2; top: calc(100% + 12px); right: 0; display: flex; min-height: 36px; align-items: center; gap: .35rem; border: 1px solid rgba(255,255,255,.42); border-radius: 4px; padding: .45rem .65rem; background: rgba(255,253,249,.94); box-shadow: 0 8px 24px rgba(48,31,18,.12); color: #003b95; text-decoration: none; transition: opacity .2s, transform .2s; }
.header-rating-main img { width: 78px; height: 16px; object-fit: contain; }
.header-rating-main strong { font-family: var(--sans); font-size: .82rem; }
.header-rating-main span { font-size: .62rem; }
.site-header.is-scrolled .header-rating-main { opacity: 0; pointer-events: none; transform: translateY(-5px); }

.webcam-frame { background: #d7c6ad; }
.webcam-fallback { width: 100%; height: 100%; object-fit: cover; }
.webcam-live-layer { position: absolute; z-index: 1; inset: 0; }
.webcam-live-layer > span, .webcam-live-layer > a, .webcam-live-layer canvas { width: 100% !important; height: 100% !important; }
.webcam-live-label { position: absolute; z-index: 2; top: 1rem; left: 1rem; border-radius: 3px; padding: .42rem .65rem; background: rgba(132,34,29,.9); color: #fff; font-size: .66rem; font-weight: 750; letter-spacing: .09em; }

@media (max-width: 1120px) {
  .header-main { min-height: 82px; grid-template-columns: 108px 1fr auto; }
  .brand { width: 102px; height: 82px; }
  .brand img, .page-home .brand img { width: 104px; height: 104px; }
  .header-rating-main { right: 74px; }
}

@media (max-width: 760px) {
  h1 { font-size: clamp(2.2rem, 11vw, 3.15rem); }
  h2 { font-size: clamp(1.75rem, 8vw, 2.45rem); }
  .hero-panel h1 { font-size: clamp(2.55rem, 12vw, 3.65rem); }
  .header-main { min-height: 74px; grid-template-columns: 82px 1fr auto; }
  .brand { width: 78px; height: 74px; }
  .brand img, .page-home .brand img, .site-header.is-scrolled .brand img, .page-home .site-header.is-scrolled .brand img { top: 4px; width: 86px; height: 86px; }
  .header-rating-main { top: calc(100% + 8px); right: 4px; min-height: 32px; padding: .35rem .5rem; transform: scale(.88); transform-origin: top right; }
  .site-header.is-scrolled .header-rating-main { transform: translateY(-5px) scale(.88); }
}

/* 2026 warm polish: clearer branding, editorial service pages and glass media UI. */
:root {
  --paper: #fbf3e8;
  --cream: #fbf3e8;
  --cream-deep: #efe2d1;
  --white: #fffaf3;
  --brand-primary: #801915;
  --brand-primary-dark: #68110f;
  --accent: #801915;
  --burgundy: #801915;
  --gold: #801915;
  --line: rgba(91, 62, 39, .14);
  --shadow: 0 22px 60px rgba(82, 54, 31, .12);
}

/* The mark intentionally hangs below the navigation on every viewport. */
.header-main { min-height: 102px; grid-template-columns: 164px 1fr auto; }
.brand { width: 156px; height: 102px; }
.brand img,
.page-home .brand img,
.site-header.is-scrolled .brand img,
.page-home .site-header.is-scrolled .brand img {
  top: 7px;
  width: 150px;
  height: 150px;
  filter: drop-shadow(0 10px 20px rgba(48, 28, 16, .2));
}

/* Partner artwork keeps its original colour and no longer blends into a strip. */
.partner-strip {
  min-height: 0;
  gap: clamp(.8rem, 2vw, 1.4rem);
  margin-top: 3.5rem;
  padding: 0;
  background: transparent;
}
.partner-strip a {
  min-width: 170px;
  min-height: 126px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 18px;
  padding: 1rem;
  background: rgba(255,255,255,.96);
  box-shadow: 0 12px 32px rgba(0,0,0,.1);
}
.partner-strip img {
  max-width: 210px;
  max-height: 104px;
  mix-blend-mode: normal;
  filter: none;
}
.partner-strip a:nth-child(2) img { max-height: 118px; }

/* Long-form and technical pages use an open editorial canvas instead of a small card. */
.legacy-page { max-width: 1180px; }
.legacy-header { max-width: 920px; margin-bottom: clamp(3rem, 6vw, 5rem); }
.legacy-header h1 { max-width: 18ch; font-size: clamp(2.65rem, 5vw, 4.8rem); }
.legacy-header .lead { max-width: 780px; font-family: var(--sans); font-size: clamp(1.05rem, 1.6vw, 1.35rem); line-height: 1.65; }
.legacy-content {
  max-width: 1040px;
  border: 0;
  border-radius: 0;
  padding: 0;
  background: transparent;
}
.legacy-content > ol:first-child { display: none; }
.legacy-content h2,
.legacy-content h3,
.legacy-content h4 { max-width: 22ch; margin: clamp(3.5rem, 7vw, 6rem) 0 1.25rem; }
.legacy-content h2:first-of-type { margin-top: 0; }
.legacy-content p,
.legacy-content li { max-width: 820px; color: #514940; font-size: 1.03rem; line-height: 1.78; }
.legacy-content ul,
.legacy-content ol:not(:first-child) { max-width: 820px; padding-left: 1.25rem; }
.legacy-content a { font-weight: 650; text-decoration-color: rgba(163,66,53,.45); }

.legacy-page-contact .legacy-content { max-width: 1100px; }
.legacy-page-contact .legacy-content h2,
.legacy-page-contact .legacy-content h3 {
  max-width: none;
  border-top: 1px solid var(--line);
  padding-top: clamp(2rem, 5vw, 4rem);
}
.legacy-page-contact .legacy-content h2:first-of-type { border-top: 0; padding-top: 0; }
.legacy-page-contact .legacy-content h4 { margin-top: -1rem; color: var(--ink-soft); font-family: var(--sans); font-size: 1rem; letter-spacing: 0; }
.legacy-page-contact .legacy-booking { margin-top: clamp(4rem, 8vw, 7rem); }

/* Original breakfast series from the referenced Verpflegung page. */
.breakfast-gallery {
  display: grid;
  grid-template-columns: 1.35fr 1fr 1fr;
  grid-template-rows: repeat(2, minmax(230px, 28vw));
  gap: .75rem;
  max-width: 1180px;
  margin: clamp(3rem, 7vw, 6rem) auto 0;
}
.breakfast-gallery button { overflow: hidden; border: 0; border-radius: 18px; padding: 0; background: #e4d4c0; }
.breakfast-gallery button:first-child { grid-row: 1 / 3; }
.breakfast-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s cubic-bezier(.2,.7,.2,1); }
.breakfast-gallery button:hover img { transform: scale(1.025); }

/* The restaurant logo has a white source canvas; keep its colours visible. */
.detail-cta {
  min-height: 440px;
  background: linear-gradient(145deg, #801915, #5d100e 58%, #714337 145%);
}
.restaurant-mark {
  width: min(220px, 56vw);
  margin-bottom: 1.75rem;
  border-radius: 32px;
  padding: 12px;
  background: #fff;
  box-shadow: 0 22px 55px rgba(45,12,10,.25);
  filter: none;
}
.detail-cta .button-light {
  border-color: rgba(255,255,255,.85);
  background: #fffaf3;
  color: #801915;
  box-shadow: 0 10px 30px rgba(45,12,10,.2);
}
.detail-cta .button-light:hover { border-color: var(--gold); background: var(--gold); color: #fff; }

/* Accessible hover/click explanation in the price table. */
.price-info { position: relative; z-index: 5; display: inline-flex; margin: 0 .55rem .45rem 0; vertical-align: middle; }
.price-info-trigger {
  display: grid;
  width: 25px;
  height: 25px;
  place-items: center;
  border: 1px solid rgba(163,66,53,.42);
  border-radius: 50%;
  padding: 0;
  background: #fff8ed;
  color: var(--accent);
  font-family: Georgia, serif;
  font-size: .86rem;
  font-weight: 700;
  line-height: 1;
}
.price-tooltip {
  position: absolute;
  z-index: 20;
  bottom: calc(100% + 10px);
  left: 0;
  width: min(290px, calc(100vw - 48px));
  border: 1px solid rgba(255,255,255,.55);
  border-radius: 14px;
  padding: .85rem 1rem;
  background: rgba(46,39,32,.9);
  box-shadow: 0 14px 40px rgba(42,26,15,.2);
  color: #fff;
  font-size: .78rem;
  font-weight: 500;
  line-height: 1.45;
  opacity: 0;
  pointer-events: none;
  text-align: left;
  transform: translateY(6px);
  transition: opacity .18s, transform .18s;
  backdrop-filter: blur(18px) saturate(145%);
}
.price-info:hover .price-tooltip,
.price-info:focus-within .price-tooltip,
.price-info.is-open .price-tooltip { opacity: 1; transform: none; }

/* Light, iOS-like glass viewers with a readable but non-black backdrop. */
.gallery-lightbox,
.image-lightbox {
  background: rgba(62,50,39,.44);
  color: #fff;
  backdrop-filter: blur(28px) saturate(145%);
  -webkit-backdrop-filter: blur(28px) saturate(145%);
}
.gallery-lightbox::backdrop,
.image-lightbox::backdrop { background: rgba(32,25,19,.34); backdrop-filter: blur(10px); }
.gallery-lightbox figure img,
.image-lightbox img { border-radius: 22px; box-shadow: 0 28px 90px rgba(24,15,10,.28); }
.gallery-close,
.gallery-arrow,
.image-lightbox-arrow,
.image-lightbox .gallery-close {
  border-color: rgba(255,255,255,.4);
  background: rgba(255,255,255,.2);
  box-shadow: inset 0 1px rgba(255,255,255,.24), 0 8px 28px rgba(30,18,10,.14);
  backdrop-filter: blur(18px) saturate(150%);
}
.image-lightbox-arrow:hover,
.gallery-arrow:hover,
.gallery-close:hover { background: rgba(255,255,255,.88); color: var(--ink); }

@media (max-width: 1120px) {
  .header-main { min-height: 92px; grid-template-columns: 132px 1fr auto; }
  .brand { width: 126px; height: 92px; }
  .brand img,
  .page-home .brand img,
  .site-header.is-scrolled .brand img,
  .page-home .site-header.is-scrolled .brand img { width: 126px; height: 126px; }
}

@media (max-width: 760px) {
  .header-main { min-height: 80px; grid-template-columns: 108px 1fr auto; }
  .brand { width: 104px; height: 80px; }
  .brand img,
  .page-home .brand img,
  .site-header.is-scrolled .brand img,
  .page-home .site-header.is-scrolled .brand img { top: 5px; width: 108px; height: 108px; }
  .legacy-page { padding-top: 4rem; }
  .legacy-header { margin-bottom: 3rem; }
  .legacy-content p,
  .legacy-content li { font-size: 1rem; line-height: 1.7; }
  .breakfast-gallery { grid-template-columns: 1fr 1fr; grid-template-rows: 270px repeat(2, 170px); gap: .5rem; }
  .breakfast-gallery button:first-child { grid-column: 1 / -1; grid-row: auto; }
  .partner-strip { gap: .7rem; }
  .partner-strip a { width: calc(50% - .35rem); min-width: 0; min-height: 108px; border-radius: 14px; }
  .partner-strip img { max-width: 145px; max-height: 82px; }
  .price-tooltip { position: fixed; right: 16px; bottom: 84px; left: 16px; width: auto; }
  .gallery-lightbox figure img,
  .image-lightbox img { border-radius: 15px; }
}

/* One type family across headings, body copy and interface controls. */
:root {
  --font-site: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --display: var(--font-site);
  --serif: var(--font-site);
  --sans: var(--font-site);
}

body,
button,
input,
select,
textarea,
summary,
h1,
h2,
h3,
h4,
h5,
h6,
.lead,
.eyebrow,
.price-info-trigger { font-family: var(--font-site); }

h1,
h2,
h3,
h4,
h5,
h6,
.lead { letter-spacing: -.035em; }

/* Calmer type scale and one repeatable inner-page grid. */
h1 { font-size: clamp(2.25rem, 3.65vw, 3.8rem); line-height: 1.08; }
h2 { font-size: clamp(1.7rem, 2.45vw, 2.55rem); line-height: 1.12; }
h3 { font-size: clamp(1.25rem, 1.65vw, 1.65rem); line-height: 1.18; }

.content-page-header h1,
.form-header h1,
.legacy-header h1 { max-width: 21ch; font-size: clamp(2.25rem, 3.65vw, 3.8rem); }

.hero-panel h1 { font-size: clamp(3rem, 5.15vw, 5.25rem); }
.detail-hero-copy h1,
.room-detail-hero-copy h1,
.region-page-hero h1 { font-size: clamp(2.5rem, 4vw, 4.15rem); }
.detail-cta h2 { max-width: 760px; font-size: clamp(1.85rem, 2.8vw, 2.9rem); }
.editorial-block h2,
.rich-copy h2,
.legacy-content h2,
.legal-copy h2,
.price-season-heading h2 { font-size: clamp(1.65rem, 2.25vw, 2.35rem); }
.legal-cards h2,
.current-offer h2 { font-size: clamp(1.75rem, 2.6vw, 2.75rem); }

/* Text rails span ten visual columns; media and data tables may use the full shell. */
.legacy-header,
.legacy-content,
.legacy-booking,
.archive-note {
  width: min(100%, 1040px);
  max-width: none;
  margin-right: auto;
  margin-left: auto;
}

.form-header,
.inquiry-form,
.form-errors,
.form-success,
.form-test-notice,
.booking-panel {
  width: min(100%, 980px);
  max-width: none;
  margin-right: auto;
  margin-left: auto;
}

.legal-page .content-page-header,
.legal-copy {
  width: min(100%, 980px);
  max-width: none;
  margin-right: auto;
  margin-left: auto;
}

.original-content .rich-copy,
.editorial-block {
  width: min(100%, 1040px);
  max-width: none;
  margin-right: auto;
  margin-left: auto;
}
.editorial-block-offset { margin-right: auto; margin-left: auto; }

@media (max-width: 760px) {
  h1,
  .content-page-header h1,
  .form-header h1,
  .legacy-header h1 { font-size: clamp(2rem, 9.5vw, 2.8rem); }
  h2 { font-size: clamp(1.55rem, 7vw, 2.1rem); }
  .hero-panel h1 { font-size: clamp(2.45rem, 11vw, 3.35rem); }
  .detail-hero-copy h1,
  .room-detail-hero-copy h1,
  .region-page-hero h1 { font-size: clamp(2.15rem, 10vw, 3rem); }
}

/* Four continuously updated stills from the hotel's original webcam endpoints. */
.webcam-stills {
  margin-top: clamp(5rem, 9vw, 8rem);
  border-top: 1px solid var(--line);
  padding-top: clamp(4rem, 7vw, 6rem);
}
.webcam-stills-heading { width: min(100%, 860px); margin: 0 auto clamp(2.5rem, 5vw, 4rem); text-align: center; }
.webcam-stills-heading h2 { margin-bottom: 1rem; }
.webcam-stills-heading > p:last-child { color: var(--ink-soft); }
.webcam-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1rem, 2.5vw, 2rem); }
.webcam-gallery figure { margin: 0; }
.webcam-gallery button {
  position: relative;
  display: block;
  overflow: hidden;
  width: 100%;
  aspect-ratio: 16 / 9;
  border: 0;
  border-radius: 18px;
  padding: 0;
  background: var(--cream-deep);
  box-shadow: 0 16px 44px rgba(65,43,27,.1);
}
.webcam-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s cubic-bezier(.2,.7,.2,1); }
.webcam-gallery button:hover img { transform: scale(1.018); }
.webcam-gallery button > span {
  position: absolute;
  right: 1rem;
  bottom: 1rem;
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border: 1px solid rgba(255,255,255,.62);
  border-radius: 50%;
  background: rgba(255,255,255,.78);
  box-shadow: 0 8px 28px rgba(44,28,17,.14);
  color: var(--ink);
  font-size: 1.3rem;
  backdrop-filter: blur(14px);
}
.webcam-gallery figcaption { padding: .8rem .2rem 0; color: var(--ink-soft); font-size: .84rem; font-weight: 650; }

.region-status {
  margin-top: clamp(5rem, 9vw, 8rem);
  border-top: 1px solid var(--line);
  padding-top: clamp(4rem, 7vw, 6rem);
}
.region-status-heading { width: min(100%, 780px); margin-bottom: clamp(2rem, 4vw, 3.25rem); }
.region-status-heading h2 { margin-bottom: .9rem; }
.region-status-heading > p:last-child { color: var(--ink-soft); line-height: 1.7; }
.region-status-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.region-status-grid > a {
  display: grid;
  min-height: 230px;
  grid-template-rows: auto auto 1fr auto;
  align-content: start;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 1.5rem;
  background: var(--white);
  color: var(--ink);
  text-decoration: none;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.region-status-grid > a:hover,
.region-status-grid > a:focus-visible { border-color: rgba(128,25,21,.38); box-shadow: 0 16px 44px rgba(65,43,27,.1); transform: translateY(-3px); }
.region-status-mark { width: 9px; height: 9px; margin-bottom: 1.25rem; border-radius: 50%; background: var(--brand-primary); box-shadow: 0 0 0 5px rgba(128,25,21,.1); }
.region-status-grid strong { margin-bottom: .55rem; font-size: 1.05rem; line-height: 1.3; }
.region-status-description { color: var(--ink-soft); font-size: .85rem; line-height: 1.55; }
.region-status-link { align-self: end; margin-top: 1.5rem; color: var(--brand-primary); font-size: .7rem; font-weight: 750; letter-spacing: .04em; text-transform: uppercase; }
.region-status-link span { display: inline-block; margin-inline-start: .3rem; transition: transform .2s ease; }
.region-status-grid > a:hover .region-status-link span { transform: translate(2px, -2px); }
[dir="rtl"] .region-status-grid > a:hover .region-status-link span { transform: translate(-2px, -2px); }

@media (max-width: 1020px) {
  .region-status-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .region-status-grid > a { min-height: 205px; }
}

@media (max-width: 760px) {
  .webcam-gallery { grid-template-columns: 1fr; gap: 1.6rem; }
  .webcam-gallery button { border-radius: 14px; }
  .region-status-grid { grid-template-columns: 1fr; }
  .region-status-grid > a { min-height: 0; }
}

/* Compact, stronger heading hierarchy after switching to the unified sans face. */
h1,
h2,
h3,
h4,
h5,
h6 { font-weight: 700; }
h1 { font-size: clamp(2rem, 2.7vw, 2.7rem); }
h2 { font-size: clamp(1.5rem, 1.75vw, 1.9rem); }
h3 { font-size: clamp(1.15rem, 1.25vw, 1.35rem); }
.content-page-header h1,
.form-header h1,
.legacy-header h1 { font-size: clamp(2rem, 2.7vw, 2.7rem); font-weight: 700; }
.hero-panel h1 { font-size: clamp(2.55rem, 3.65vw, 3.5rem); font-weight: 700; }
.detail-hero-copy h1,
.room-detail-hero-copy h1,
.region-page-hero h1 { font-size: clamp(2.15rem, 3vw, 3rem); font-weight: 700; }
.section-heading h2,
.editorial-block h2,
.rich-copy h2,
.legacy-content h2,
.legal-copy h2,
.price-season-heading h2 { font-size: clamp(1.5rem, 1.75vw, 1.9rem); }
.stay-card-copy h3 { font-size: 1.25rem; }
.eyebrow { font-weight: 760; }

/* Detailed room pages: source-backed copy and amenities share the same grid. */
.room-detail-intro > div > p:last-child { max-width: 620px; margin-top: 1.25rem; color: var(--ink-soft); }
.room-source-overview,
.room-amenities-section {
  display: grid;
  grid-template-columns: minmax(240px, .72fr) minmax(0, 1.28fr);
  gap: clamp(2.5rem, 7vw, 7rem);
  border-top: 1px solid var(--line);
  padding-block: clamp(4rem, 7vw, 6.5rem);
}
.room-source-overview header h2,
.room-amenities-section header h2 { max-width: 18ch; }
.room-source-copy { max-width: 760px; }
.room-source-copy p { color: var(--ink-soft); font-size: 1.02rem; line-height: 1.78; }
.room-source-copy a { color: var(--accent); font-weight: 650; }
.room-amenities-section header > p:last-child { max-width: 470px; margin-top: 1.25rem; color: var(--ink-soft); }
.room-amenities {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-content: start;
  gap: 0 2rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.room-amenities li { border-bottom: 1px solid var(--line); padding: 1rem 0; color: var(--ink-soft); line-height: 1.5; }
.room-amenities li:first-child { grid-column: 1 / -1; color: var(--ink); font-size: 1.08rem; }
.room-parameter-groups { min-width: 0; }
.room-services { margin-top: clamp(2.5rem, 5vw, 4rem); }
.room-services h3 { margin-bottom: 1rem; }
.room-services ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 2rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.room-services li { border-bottom: 1px solid var(--line); padding: 1rem 0; color: var(--ink-soft); line-height: 1.5; }

@media (max-width: 760px) {
  h1,
  .content-page-header h1,
  .form-header h1,
  .legacy-header h1 { font-size: clamp(1.8rem, 7.3vw, 2.15rem); }
  h2 { font-size: clamp(1.4rem, 5.5vw, 1.7rem); }
  .hero-panel h1 { font-size: clamp(2.15rem, 9vw, 2.65rem); }
  .detail-hero-copy h1,
  .room-detail-hero-copy h1,
  .region-page-hero h1 { font-size: clamp(1.9rem, 7.8vw, 2.3rem); }
  .room-source-overview,
  .room-amenities-section { grid-template-columns: 1fr; gap: 2rem; padding-block: 3.5rem; }
  .room-amenities { grid-template-columns: 1fr; }
  .room-amenities li:first-child { grid-column: auto; }
  .room-services ul { grid-template-columns: 1fr; }
}

/* September 2026 navigation, footer, weather and pricing refinement. */
@media (min-width: 1121px) {
  .header-main {
    display: grid;
    min-height: 156px;
    grid-template-columns: minmax(220px, 1fr) 180px minmax(300px, 1fr);
    grid-template-rows: 106px 50px;
    gap: 0 2rem;
  }
  .brand {
    position: relative;
    grid-column: 2;
    grid-row: 1;
    width: 180px;
    height: 106px;
    justify-self: center;
  }
  .brand img,
  .page-home .brand img,
  .site-header.is-scrolled .brand img,
  .page-home .site-header.is-scrolled .brand img {
    top: 2px;
    left: 50%;
    width: 142px;
    height: 142px;
    transform: translateX(-50%);
  }
  .header-rating-main,
  .site-header.is-scrolled .header-rating-main {
    position: static;
    grid-column: 1;
    grid-row: 1;
    justify-self: start;
    opacity: 1;
    pointer-events: auto;
    transform: none;
  }
  .site-navigation {
    grid-column: 1 / -1;
    grid-row: 2;
    justify-self: center;
    gap: clamp(1.35rem, 2.15vw, 2.6rem);
  }
  .site-navigation a,
  .page-home .site-navigation a { font-size: .75rem; font-weight: 720; letter-spacing: .065em; }
  .header-actions { grid-column: 3; grid-row: 1; }
}

/* Give the opening image and message the vertical room they need. */
.hero,
.hero-copy { min-height: clamp(700px, 82vh, 860px); }
.hero-copy { padding-top: clamp(9rem, 14vw, 13rem); padding-bottom: 8rem; }
.hero-panel { width: min(720px, 64vw); }
.hero-media img { object-position: 61% center; }

/* Panorama stills now directly follow the forecast widget. */
.weather-panel + .webcam-stills { margin-top: clamp(2.5rem, 5vw, 4rem); }
.webcam-stills { border-top: 0; padding-top: 0; }

/* Purchased gallery imagery is presented without visible category/credit captions. */
.gallery-item figcaption,
.gallery-lightbox figcaption,
.gallery-lightbox figcaption:empty,
.image-lightbox figcaption:empty { display: none; }

/* Compact textual actions keep price tables calm and scannable. */
.price-table-wrap .price-inquiry,
.price-table-wrap td > a.price-inquiry:first-of-type {
  display: inline-flex;
  width: auto;
  min-height: 0;
  margin: .45rem auto 0;
  border: 0;
  border-bottom: 1px solid currentColor;
  border-radius: 0;
  padding: 0 0 .12rem;
  background: transparent;
  color: var(--accent);
  font-family: var(--font-site) !important;
  font-size: .66rem !important;
  font-weight: 750 !important;
  letter-spacing: .04em;
  line-height: 1.35;
  text-decoration: none;
  text-transform: uppercase;
}
.price-table-wrap .price-inquiry:hover { color: var(--brand-primary); }

/* Warm sand footer; partner marks sit directly on it without artificial cards. */
.site-footer {
  background: #d9c2a5;
  color: #2c2823;
}
.footer-grid { border-top-color: rgba(74, 50, 34, .18); }
.footer-hero .eyebrow,
.footer-direct a { color: #801915; }
.footer-direct span,
.footer-meta { color: rgba(44, 40, 35, .64); }
.site-footer .button-gold { border-color: #801915; background: #801915; color: #fffaf3; }
.site-footer .button-gold:hover { border-color: #68110f; background: #68110f; }
.partner-strip {
  min-height: 0;
  gap: clamp(1.8rem, 5vw, 5rem);
  padding: 1rem 0 0;
  background: transparent;
}
.partner-strip a {
  width: auto;
  min-width: 0;
  min-height: 0;
  border: 0;
  border-radius: 0;
  padding: 0;
  background: transparent;
  box-shadow: none;
}
.partner-strip img { mix-blend-mode: normal; filter: none; }

@media (max-width: 1120px) {
  .header-main {
    position: relative;
    min-height: 96px;
    grid-template-columns: 1fr auto 1fr;
    grid-template-rows: 96px;
    gap: 0;
  }
  .brand {
    position: absolute;
    z-index: 4;
    top: 0;
    left: 50%;
    width: 126px;
    height: 96px;
    transform: translateX(-50%);
  }
  .brand img,
  .page-home .brand img,
  .site-header.is-scrolled .brand img,
  .page-home .site-header.is-scrolled .brand img {
    top: 2px;
    left: 50%;
    width: 124px;
    height: 124px;
    transform: translateX(-50%);
  }
  .menu-toggle { grid-column: 1; grid-row: 1; justify-self: start; }
  .header-actions { grid-column: 3; grid-row: 1; justify-self: end; }
  .header-rating-main { display: none; }
  .site-navigation a,
  .page-home .site-navigation a { font-size: .78rem; }
}

@media (max-width: 760px) {
  .header-main { min-height: 88px; grid-template-rows: 88px; }
  .brand { width: 116px; height: 88px; }
  .brand img,
  .page-home .brand img,
  .site-header.is-scrolled .brand img,
  .page-home .site-header.is-scrolled .brand img { width: 116px; height: 116px; }
  .menu-toggle > span:first-child { display: none; }
  .menu-lines { margin-left: 0; }
  .hero,
  .hero-copy { min-height: 700px; }
  .hero-copy { padding-top: 8rem; padding-bottom: 7rem; }
  .hero-panel { width: 100%; }
  .partner-strip { gap: 2rem 2.5rem; }
  .partner-strip a { width: calc(50% - 1.25rem); min-height: 0; }
}

/* Header correction: one calm row, with the mark anchored at the left. */
@media (min-width: 1121px) {
  .header-main {
    display: grid;
    min-height: 112px;
    grid-template-columns: 160px minmax(0, 1fr) auto;
    grid-template-rows: 112px;
    gap: 1.5rem;
    align-items: center;
  }
  .brand {
    position: relative;
    grid-column: 1;
    grid-row: 1;
    width: 152px;
    height: 112px;
    justify-self: start;
  }
  .brand img,
  .page-home .brand img,
  .site-header.is-scrolled .brand img,
  .page-home .site-header.is-scrolled .brand img {
    top: 4px;
    left: 0;
    width: 142px;
    height: 142px;
    transform: none;
  }
  .header-rating-main { display: none; }
  .site-navigation {
    position: static;
    display: flex;
    grid-column: 2;
    grid-row: 1;
    justify-self: center;
    gap: clamp(.8rem, 1.35vw, 1.35rem);
  }
  .site-navigation a,
  .page-home .site-navigation a {
    padding: 0;
    font-size: .69rem;
    font-weight: 720;
    letter-spacing: .045em;
  }
  .header-actions {
    grid-column: 3;
    grid-row: 1;
    justify-self: end;
    gap: .65rem;
  }
}

/* Final service-page and header polish. */
.header-main,
:is(.page-home, .page-detail, .page-room, .page-region) .header-main { border-bottom: 0 !important; }
.header-utility,
:is(.page-home, .page-detail, .page-room, .page-region) .header-utility { border-bottom: 0 !important; }
.header-contact-links {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: clamp(.8rem, 1.5vw, 1.5rem);
}
.header-contact-links a {
  display: inline-flex;
  min-width: 0;
  align-items: center;
  gap: .4rem;
  color: var(--ink-soft);
  font-size: .75rem;
  font-weight: 650;
  letter-spacing: .015em;
  line-height: 1.15;
  text-decoration: none;
  white-space: nowrap;
}
.header-contact-links .icon { width: 14px; height: 14px; flex: 0 0 auto; color: var(--brand-primary); }
:is(.page-home, .page-detail, .page-room, .page-region) .header-contact-links a { color: rgba(255,255,255,.92); }
:is(.page-home, .page-detail, .page-room, .page-region) .header-contact-links .icon { color: #fff; }

/* Give the closing invitation its own visual breathing room before the footer. */
.room-detail-page > .detail-cta,
.detail-page > .detail-cta,
.region-page > .detail-cta { margin-bottom: clamp(3rem, 6vw, 5.5rem); }

/* FAQ is a native, keyboard-accessible accordion instead of a flat imported document. */
.legacy-content-faq {
  width: 100%;
  max-width: 1120px;
  border: 0;
  padding: 0;
  background: transparent;
}
.legacy-content-faq > h2 { max-width: 820px; margin: 0 0 clamp(2rem, 4vw, 3.5rem); }
.faq-item {
  overflow: hidden;
  border: 1px solid rgba(91,65,45,.14);
  border-radius: var(--radius);
  background: var(--white);
  box-shadow: 0 10px 30px rgba(66,44,29,.045);
}
.faq-item + .faq-item { margin-top: .85rem; }
.faq-item summary {
  display: grid;
  min-height: 78px;
  grid-template-columns: minmax(0, 1fr) 34px;
  gap: 1.25rem;
  align-items: center;
  padding: 1.25rem clamp(1.25rem, 3vw, 2rem);
  color: var(--ink);
  font-family: var(--serif);
  font-size: clamp(1.15rem, 1.7vw, 1.45rem);
  line-height: 1.3;
  list-style: none;
  cursor: pointer;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-toggle { position: relative; width: 32px; height: 32px; border-radius: 50%; background: var(--cream-deep); }
.faq-toggle::before,
.faq-toggle::after { position: absolute; top: 50%; left: 50%; width: 12px; height: 1.5px; background: var(--brand-primary); content: ""; transform: translate(-50%, -50%); transition: transform .2s ease; }
.faq-toggle::after { transform: translate(-50%, -50%) rotate(90deg); }
.faq-item[open] .faq-toggle::after { transform: translate(-50%, -50%) rotate(0); }
.faq-item[open] summary { color: var(--brand-primary); }
.faq-answer { border-top: 1px solid var(--line); padding: 1.4rem clamp(1.25rem, 3vw, 2rem) 1.7rem; }
.faq-answer p,
.faq-answer ul { max-width: 880px; }
.faq-answer > :last-child { margin-bottom: 0; }

/* Dates are important offer information, not micro-copy. */
.offer-period {
  display: flex;
  width: 100%;
  flex-wrap: wrap;
  gap: .55rem .8rem;
  align-items: center;
  margin-top: .25rem;
  color: var(--ink);
  font-size: .86rem;
  font-weight: 750;
  letter-spacing: .025em;
}
.offer-period small { width: 100%; color: var(--brand-primary); font-size: .65rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.offer-period span { border-radius: 7px; padding: .55rem .72rem; background: var(--cream-deep); }
.offer-period i { width: 14px; height: 1px; background: var(--gold); }
.legacy-offer-periods {
  display: flex;
  width: 100%;
  gap: .75rem;
  flex-wrap: wrap;
  margin: calc(clamp(3rem, 6vw, 5rem) * -0.55) 0 clamp(2rem, 4vw, 3.5rem);
}
.legacy-offer-periods span {
  border-radius: 9px;
  padding: .8rem 1rem;
  background: #eadcca;
  color: var(--brand-primary);
  font-size: clamp(.85rem, 1.2vw, 1rem);
  font-weight: 780;
}
.legacy-page:has(.legacy-offer-media) .offer-inquiry-context {
  max-width: none;
  margin-top: clamp(2.5rem, 5vw, 4.5rem);
  border: 0;
  padding: clamp(2rem, 4vw, 3.5rem);
  background: #eadcca;
  box-shadow: 0 16px 42px rgba(66,44,29,.07);
}
.legacy-page:has(.legacy-offer-media) .offer-inquiry-context strong { font-size: clamp(1.8rem, 3vw, 3rem); }
.legacy-page:has(.legacy-offer-media) .offer-inquiry-context p { font-size: 1.05rem; }

@media (max-width: 1120px) {
  .header-address { display: none !important; }
}

@media (max-width: 760px) {
  .header-contact-links { align-items: flex-end; flex-direction: column; gap: .12rem; }
  .header-contact-links a { font-size: .62rem; }
  .header-contact-links .icon { display: none; }
  .legacy-content-faq > h2 { font-size: clamp(1.75rem, 8vw, 2.35rem); }
  .faq-item summary { min-height: 68px; grid-template-columns: minmax(0, 1fr) 30px; gap: .75rem; padding: 1rem; font-size: 1.08rem; }
  .faq-toggle { width: 28px; height: 28px; }
  .faq-answer { padding: 1.1rem 1rem 1.35rem; }
  .offer-period i { display: none; }
  .legacy-offer-periods { display: grid; grid-template-columns: 1fr; }
  .legacy-offer-periods span { text-align: center; }
}

/* Comfortable social utility strip. */
.header-utility {
  height: 40px;
  padding-top: 5px;
  padding-bottom: 5px;
}

/* Full language chooser. */
:is(.page-home, .page-detail, .page-room, .page-region) .hero-rating-badge { top: 158px; }
:is(.page-detail, .page-room, .page-region) .page-navigation { top: 150px; }
:is(.page-detail, .page-room, .page-region) .hero-rating-badge { top: 218px; }
.language-open {
  display: inline-flex;
  min-width: 76px;
  height: 44px;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  border: 0;
  border-left: 1px solid var(--line);
  padding: 0 .55rem .05rem .8rem;
  background: transparent;
  color: var(--ink);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .08em;
}
.language-current-flag { font-size: 1.05rem; line-height: 1; }
:is(.page-home, .page-detail, .page-room, .page-region) .site-header:not(.is-scrolled) .language-open {
  border-left-color: rgba(255,255,255,.42);
  color: #fff;
}
.language-dialog {
  width: min(920px, calc(100vw - 40px));
  max-width: none;
  max-height: min(760px, calc(100dvh - 40px));
  overflow: auto;
  border: 1px solid rgba(90,63,43,.16);
  border-radius: 16px;
  padding: clamp(1.4rem, 4vw, 3rem);
  background: #fffaf3;
  box-shadow: 0 34px 100px rgba(34,22,14,.3);
  color: var(--ink);
}
.language-dialog::backdrop {
  background: rgba(30,23,18,.48);
  backdrop-filter: blur(10px);
}
.language-dialog-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 2rem;
  margin-bottom: 2rem;
}
.language-dialog-head .eyebrow { margin-bottom: .55rem; }
.language-dialog-head h2 { font-size: clamp(2rem, 4vw, 3.4rem); }
.language-close {
  position: relative;
  width: 46px;
  height: 46px;
  flex: 0 0 auto;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: transparent;
}
.language-close::before,
.language-close::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 18px;
  height: 1px;
  background: currentColor;
  content: "";
  transform: translate(-50%,-50%) rotate(45deg);
}
.language-close::after { transform: translate(-50%,-50%) rotate(-45deg); }
.language-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .7rem;
}
.language-grid a {
  display: grid;
  min-width: 0;
  min-height: 72px;
  grid-template-columns: 34px minmax(0, 1fr) 18px;
  gap: .7rem;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: .8rem;
  background: #fff;
  color: var(--ink);
  text-decoration: none;
  transition: border-color .18s, background .18s, transform .18s;
}
.language-grid a:hover {
  border-color: rgba(128,25,21,.42);
  background: #fff5e9;
  transform: translateY(-1px);
}
.language-grid a[aria-current="page"] {
  border-color: var(--brand-primary);
  background: rgba(128,25,21,.06);
}
.language-flag { font-size: 1.55rem; line-height: 1; }
.language-grid a > span:nth-child(2) { display: grid; min-width: 0; }
.language-grid strong { overflow: hidden; font-size: .88rem; text-overflow: ellipsis; white-space: nowrap; }
.language-grid small { color: var(--ink-soft); font-size: .61rem; letter-spacing: .08em; }
.language-check { color: var(--brand-primary); opacity: 0; }
.language-grid a[aria-current="page"] .language-check { opacity: 1; }

/* Separate the home offers into real cards with deliberate internal spacing. */
.offer-highlight {
  gap: clamp(1rem, 2vw, 1.6rem);
  background: transparent;
}
.offer-highlight > div:first-child,
.offer-highlight-card {
  overflow: hidden;
  border: 1px solid rgba(91,65,45,.13);
  border-radius: var(--radius);
  background: var(--white);
}
.offer-highlight > div:first-child {
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  justify-content: center;
  padding: clamp(2rem, 4vw, 3.5rem);
}
.offer-highlight > div + div { margin-left: 0; }

/* Current offer detail: wider editorial copy and a visible enquiry action. */
.legacy-page:has(.legacy-offer-media) .legacy-content { max-width: 1040px; }
.legacy-page:has(.legacy-offer-media) .offer-inquiry-context {
  width: 100%;
  max-width: 1040px;
  gap: clamp(1.5rem, 4vw, 4rem);
  margin: 2rem auto 0;
  border-radius: var(--radius);
  padding: clamp(1.8rem, 4vw, 3rem);
}
.legacy-page:has(.legacy-offer-media) .offer-inquiry-context strong {
  font-family: var(--serif);
  font-size: clamp(1.65rem, 2.5vw, 2.5rem);
  font-weight: 400;
  line-height: 1.12;
}
.legacy-page:has(.legacy-offer-media) .offer-inquiry-context p { max-width: 650px; font-size: 1rem; }
.legacy-page:has(.legacy-offer-media) .offer-inquiry-context .button { min-width: 220px; }

@media (max-width: 900px) {
  .language-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .header-utility { height: 38px; padding-top: 5px; padding-bottom: 5px; }
  :is(.page-home, .page-detail, .page-room, .page-region) .hero-rating-badge { top: 136px; }
  :is(.page-detail, .page-room, .page-region) .page-navigation { top: 130px; }
  :is(.page-detail, .page-room, .page-region) .hero-rating-badge { top: 213px; }
  .language-open { min-width: 68px; height: 40px; padding-inline: .5rem; }
  .language-dialog {
    width: 100vw;
    height: min(88dvh, 780px);
    max-height: none;
    margin: auto 0 0;
    border-right: 0;
    border-bottom: 0;
    border-left: 0;
    border-radius: 16px 16px 0 0;
    padding: 1.25rem 1rem 1.5rem;
  }
  .language-dialog-head { margin-bottom: 1.25rem; }
  .language-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; }
  .language-grid a { min-height: 64px; grid-template-columns: 28px minmax(0, 1fr) 14px; gap: .55rem; padding: .65rem; }
  .language-flag { font-size: 1.3rem; }
  .legacy-page:has(.legacy-offer-media) .offer-inquiry-context { align-items: stretch; }
  .legacy-page:has(.legacy-offer-media) .offer-inquiry-context .button { width: 100%; min-width: 0; }
}

@media (max-width: 1120px) {
  .header-main {
    display: grid;
    min-height: 94px;
    grid-template-columns: 128px minmax(0, 1fr) auto;
    grid-template-rows: 94px;
    gap: .75rem;
    align-items: center;
  }
  .brand {
    position: relative;
    top: auto;
    left: auto;
    grid-column: 1;
    grid-row: 1;
    width: 122px;
    height: 94px;
    justify-self: start;
    transform: none;
  }
  .brand img,
  .page-home .brand img,
  .site-header.is-scrolled .brand img,
  .page-home .site-header.is-scrolled .brand img {
    top: 3px;
    left: 0;
    width: 122px;
    height: 122px;
    transform: none;
  }
  .menu-toggle {
    display: flex;
    grid-column: 2;
    grid-row: 1;
    align-items: center;
    justify-self: end;
  }
  .header-actions {
    grid-column: 3;
    grid-row: 1;
    justify-self: end;
  }
  .site-navigation {
    position: absolute;
    top: 100%;
    right: 0;
    left: 0;
    display: none;
    grid-column: auto;
    grid-row: auto;
    padding: 1rem max(24px, calc((100vw - 1000px) / 2)) 1.5rem;
    background: rgba(251,243,232,.98);
    box-shadow: 0 20px 44px rgba(55,38,25,.14);
  }
  .site-navigation.is-open { display: flex; }
}

@media (max-width: 760px) {
  .header-main {
    min-height: 82px;
    grid-template-columns: 108px minmax(0, 1fr) auto;
    grid-template-rows: 82px;
    gap: .5rem;
  }
  .brand { width: 104px; height: 82px; }
  .brand img,
  .page-home .brand img,
  .site-header.is-scrolled .brand img,
  .page-home .site-header.is-scrolled .brand img {
    top: 3px;
    width: 108px;
    height: 108px;
  }
  .menu-toggle { justify-self: end; }
  .language-switcher summary { min-width: 52px; padding: 0; }
}

/* Meaningful pictograms replace decorative section numbers. */
.social-links > strong {
  color: #801915;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.section-kicker-icon { width: 30px; height: 30px; color: var(--accent); }
.section-icon {
  position: absolute;
  top: 0;
  left: 0;
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  color: var(--accent);
}
.section-icon-svg { width: 30px; height: 30px; }
.trust-strip .trust-icon {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  color: var(--accent);
}
.trust-strip .trust-icon .icon { width: 25px; height: 25px; }
.price-season-heading .season-icon {
  display: grid;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  place-items: center;
  padding-top: 0;
  color: var(--accent);
}
.season-icon .icon { width: 25px; height: 25px; }
.offer-icon {
  position: absolute;
  top: 1.25rem;
  right: 1.5rem;
  color: rgba(163,66,53,.3);
}
.offer-icon .icon { width: 48px; height: 48px; }
.editorial-block > span { display: grid; width: 36px; height: 36px; place-items: center; color: var(--accent); }
.editorial-icon { width: 25px; height: 25px; }
.legal-cards a > span { display: grid; width: 34px; height: 34px; place-items: center; color: var(--accent); }
.legal-cards a > span .icon { width: 25px; height: 25px; }

/* One brand accent throughout the interface. */
:root {
  --accent: #801915;
  --burgundy: #801915;
  --gold: #801915;
  --copper: #801915;
}
.button-gold,
.booking-submit,
.page-home .header-actions .button,
.site-footer .button-gold {
  border-color: #801915;
  background: #801915;
  color: #fff;
}
.button-gold:hover,
.booking-submit:hover,
.page-home .header-actions .button:hover,
.site-footer .button-gold:hover {
  border-color: #68110f;
  background: #68110f;
  color: #fff;
}
.social-links > strong,
.footer-hero .eyebrow,
.footer-direct a { color: #801915; }
.offer-icon { color: rgba(128,25,21,.28); }
.price-info-trigger { border-color: rgba(128,25,21,.42); color: #801915; }

/* Stable booking action and left-aligned accommodation headings. */
.booking-submit,
.booking-submit:hover,
.booking-submit:focus-visible,
.booking-submit:active {
  transform: none;
}
.booking-submit {
  border-radius: 0 8px 0 0;
}
.detail-page > .stay-section .section-heading {
  grid-template-columns: minmax(0, 760px);
  justify-content: start;
  text-align: left;
}
.detail-page > .stay-section .section-heading > div,
.detail-page > .stay-section .section-heading > div:last-child {
  width: 100%;
  max-width: 760px;
  justify-self: start;
  text-align: left;
}
.room-variants > header {
  width: min(100%, 760px);
  margin-right: auto;
  margin-left: 0;
  text-align: left;
}
.room-variants > header h2,
.room-variants > header p {
  max-width: none;
  text-align: left;
}

/* September refinement: quieter hero, stronger navigation and media ergonomics. */
.hero-shade {
  background: linear-gradient(90deg, rgba(0,0,0,.5) 0%, rgba(0,0,0,.28) 40%, rgba(0,0,0,.07) 72%, rgba(0,0,0,.02) 100%);
}
.intro-copy h2 { max-width: 18ch; }
.intro-image figcaption { right: auto; bottom: 0; left: 0; max-width: calc(100% - 5.5rem); }
.intro-image button > .photo-zoom {
  position: absolute;
  top: 1rem;
  right: 1rem;
  bottom: auto;
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border: 1px solid rgba(255,255,255,.72);
  border-radius: 50%;
  background: rgba(255,255,255,.94);
  box-shadow: 0 8px 26px rgba(0,0,0,.16);
}
.photo-zoom svg { width: 24px; height: 24px; fill: none; stroke: var(--ink); stroke-linecap: round; stroke-width: 1.6; }

@media (min-width: 1121px) {
  .header-main { min-height: 120px; grid-template-columns: 180px minmax(0, 1fr) auto; grid-template-rows: 120px; }
  .brand { width: 174px; height: 120px; }
  .brand img,
  .page-home .brand img,
  .site-header.is-scrolled .brand img,
  .page-home .site-header.is-scrolled .brand img { width: 164px; height: 164px; }
  .site-navigation a,
  .page-home .site-navigation a { font-size: .82rem; letter-spacing: .045em; }
}

/* Service overview */
.service-page { padding-bottom: clamp(5rem, 9vw, 9rem); }
.service-hero { max-width: 980px; padding-top: clamp(6rem, 10vw, 10rem); padding-bottom: clamp(4rem, 7vw, 6rem); text-align: center; }
.service-hero h1 { margin-bottom: 1.5rem; }
.service-hero .lead { max-width: 760px; margin-inline: auto; color: var(--ink-soft); }
.service-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.service-cards a { display: grid; min-height: 330px; grid-template-rows: auto 1fr auto; border: 1px solid var(--line); padding: 2rem; background: var(--white); text-decoration: none; transition: transform .2s, box-shadow .2s; }
.service-cards a:hover { box-shadow: var(--shadow); transform: translateY(-4px); }
.service-cards a > span { display: grid; width: 42px; height: 42px; place-items: center; color: var(--accent); }
.service-cards a > span .icon { width: 30px; height: 30px; }
.service-cards h2 { align-self: end; margin-bottom: 2rem; font-size: clamp(1.55rem, 2.2vw, 2.3rem); }
.service-cards strong { color: var(--accent); font-size: 1.4rem; font-weight: 400; }
.service-links { display: grid; grid-template-columns: .8fr 1.2fr; gap: 5rem; margin-top: clamp(5rem, 9vw, 9rem); border-top: 1px solid var(--line); padding-top: 4rem; }
.service-links nav { display: grid; }
.service-links nav a { display: flex; justify-content: space-between; border-bottom: 1px solid var(--line); padding: 1.2rem 0; font-weight: 700; text-decoration: none; }
.service-links nav span { color: var(--accent); }

/* Price pages: one season per page and a stable readable table. */
.prices-header { max-width: 900px; }
.season-tabs a[aria-current="page"] { border-color: var(--brand-primary); background: var(--brand-primary); color: #fff; }
.price-season { padding-top: 1.5rem; }
.price-season-heading { align-items: center; }
.price-table-wrap { overflow: auto; border: 1px solid var(--line); border-radius: 10px; background: var(--white); box-shadow: 0 18px 55px rgba(59,41,26,.08); }
.price-table-wrap > h2 { border-bottom: 1px solid var(--line); padding: 1.5rem 1.7rem; background: #fffaf3; }
.price-table-wrap table { min-width: 940px; }
.price-table-wrap th { padding: 1.2rem 1rem; font-size: .76rem; }
.price-table-wrap td { padding: 1.15rem 1rem; font-size: .9rem; }
.price-room-link { font-size: 1.12rem !important; line-height: 1.25; }

/* Floor plans appear directly after the room summary. */
.plan-section-early, .room-plan-teaser { margin-top: 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding-block: clamp(3rem, 6vw, 5rem); }
.plan-open, .plan-preview { position: relative; overflow: hidden; border: 0; padding: 1.25rem; background: var(--white); }
.plan-open img, .plan-preview img { width: 100%; max-height: 430px; object-fit: contain; }
.plan-open > span { position: absolute; right: 1rem; bottom: 1rem; padding: .65rem .85rem; background: var(--ink); color: #fff; font-size: .68rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.plan-text-button { border: 0; background: transparent; }

/* Centered close icons and thumbnail navigation for both viewers. */
.gallery-close { display: grid; place-items: center; padding: 0 0 3px; font-size: 0 !important; line-height: 1; }
.gallery-close::before { content: "×"; font-family: Arial, sans-serif; font-size: 30px; font-weight: 300; line-height: 1; }
.lightbox-thumbnails { position: fixed; z-index: 3; right: 50%; bottom: 14px; display: flex; max-width: min(760px, calc(100vw - 180px)); gap: 7px; overflow-x: auto; padding: 5px; transform: translateX(50%); scrollbar-width: thin; }
.lightbox-thumbnails button { flex: 0 0 58px; width: 58px; height: 42px; overflow: hidden; border: 2px solid transparent; border-radius: 3px; padding: 0; background: #222; opacity: .56; }
.lightbox-thumbnails button.is-active { border-color: #fff; opacity: 1; }
.lightbox-thumbnails img { width: 100%; height: 100%; border-radius: 0 !important; object-fit: cover; box-shadow: none; }
.gallery-lightbox figure, .image-lightbox figure { padding-bottom: 54px; }

@media (max-width: 1120px) {
  .service-cards { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 760px) {
  .page-home .menu-toggle { color: #fff; }
  .page-home .site-header.is-scrolled .menu-toggle,
  .page-home .site-header:has(.site-navigation.is-open) .menu-toggle { color: var(--ink); }
  .hero-shade { background: linear-gradient(0deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.24) 62%, rgba(0,0,0,.06) 100%); }
  .intro-copy h2 { max-width: none; }
  .intro-image button > .photo-zoom { top: .75rem; right: .75rem; }
  .service-hero { padding-top: 5rem; text-align: left; }
  .service-cards { grid-template-columns: 1fr; }
  .service-cards a { min-height: 230px; }
  .service-links { grid-template-columns: 1fr; gap: 2rem; }
  .prices-page { --price-first: 210px; }
  .price-table-wrap { width: 100vw; margin-left: calc((var(--shell) - 100vw) / 2); border-right: 0; border-left: 0; border-radius: 0; }
  .price-table-wrap table { min-width: 820px; }
  .price-table-wrap th, .price-table-wrap td { padding: .9rem .7rem; }
  .plan-section-early, .room-plan-teaser { grid-template-columns: 1fr; gap: 2rem; padding-block: 3rem; }

  .gallery-lightbox[open], .image-lightbox[open] { display: grid; grid-template-columns: 1fr; grid-template-rows: minmax(0, 1fr) 58px 62px; align-items: center; padding: 0; }
  .gallery-lightbox figure, .image-lightbox figure { grid-column: 1; grid-row: 1; width: 100vw; max-width: 100vw; max-height: calc(100dvh - 120px); padding: 0; }
  .gallery-lightbox figure img, .image-lightbox img { width: 100vw; max-width: 100vw; max-height: calc(100dvh - 150px); border-radius: 0; object-fit: contain; box-shadow: none; }
  .gallery-lightbox figcaption, .image-lightbox figcaption { min-height: 24px; padding: .4rem 1rem 0; text-align: center; }
  .gallery-arrow, .image-lightbox-arrow { grid-row: 2; width: 44px; height: 44px; justify-self: center; }
  .gallery-arrow { position: static; }
  .image-lightbox-arrow { position: relative; }
  .gallery-prev, .image-lightbox-prev { grid-column: 1; margin-right: 64px; }
  .gallery-next, .image-lightbox-next { grid-column: 1; margin-left: 64px; }
  .lightbox-thumbnails { position: static; grid-column: 1; grid-row: 3; width: 100vw; max-width: 100vw; justify-self: stretch; padding: 7px 10px 10px; transform: none; }
  .lightbox-thumbnails button { flex-basis: 64px; width: 64px; height: 46px; }
  .gallery-count, .image-lightbox-count { position: fixed; right: auto; bottom: 78px; left: 14px; }
  .gallery-close, .image-lightbox .gallery-close { top: 10px; right: 10px; width: 44px; height: 44px; background: rgba(10,10,10,.62); }
}

/* Content alignment and gallery corrections requested after live review. */
@media (min-width: 1121px) {
  .site-navigation .desktop-nav-optional { display: none; }
}

.original-content .rich-copy,
.region-original .rich-copy {
  width: 100%;
  max-width: none;
  margin-right: 0;
  margin-left: 0;
}
.region-original { padding-block: clamp(4.5rem, 8vw, 7.5rem); }
.region-original .rich-copy { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: clamp(3rem, 8vw, 8rem); }
.region-original .rich-copy > h2,
.region-original .rich-copy > h3,
.region-original .rich-copy > h4,
.region-original .rich-copy > h5,
.region-original .rich-copy > h6 { grid-column: 1 / -1; }
.region-original .rich-copy > h2 { max-width: 22ch; margin-top: 0; margin-bottom: 2rem; }
.region-original .rich-copy > h3 { margin-top: 3.5rem; }
.region-original .rich-copy > h4 { margin-top: .6rem; color: var(--ink-soft); }
.region-original .rich-copy > h5,
.region-original .rich-copy > h6 { margin-top: 2rem; }
.region-original .rich-copy > p,
.region-original .rich-copy > ul { break-inside: avoid; }
.region-original .rich-copy > ul { margin-top: 0; padding-left: 1.25rem; }
.region-original .rich-copy > p:last-child a { display: inline-flex; min-height: 48px; align-items: center; padding: .8rem 1.2rem; background: var(--brand-primary); color: #fff; text-decoration: none; }
.region-card-grid button { aspect-ratio: 16 / 10; }

.experience-card-restaurant .experience-copy { overflow: visible; }
.experience-card-restaurant .button-light {
  position: relative;
  z-index: 2;
  flex: 0 0 auto;
  margin-top: .5rem;
  border-color: #fff;
  background: #fff;
  color: var(--brand-primary);
  box-shadow: 0 10px 28px rgba(34,8,7,.22);
}
.experience-card-restaurant .button-light:hover { border-color: #fff; background: transparent; color: #fff; }

.room-detail-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-rows: none;
  grid-auto-rows: auto;
  gap: .75rem;
}
.room-detail-grid button {
  display: block;
  aspect-ratio: 4 / 3;
  border: 1px solid var(--line);
  background: #eee9e1;
}
.room-detail-grid .room-detail-main { grid-column: span 2; grid-row: span 2; aspect-ratio: auto; min-height: 520px; }
.room-detail-grid img { object-fit: contain; }
.room-detail-grid button:hover img { transform: none; }

.gallery-close,
.image-lightbox .gallery-close { position: fixed; padding: 0; font-size: 0 !important; }
.gallery-close::before,
.gallery-close::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 21px;
  height: 2px;
  background: currentColor;
  content: "";
  transform: translate(-50%, -50%) rotate(45deg);
}
.gallery-close::after { transform: translate(-50%, -50%) rotate(-45deg); }

@media (max-width: 1120px) {
  .booking-submit { border-radius: 0 !important; }
  .room-detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: none; }
  .room-detail-grid .room-detail-main { grid-column: 1 / -1; grid-row: auto; min-height: 420px; }
  .room-detail-grid button:last-child { display: block; }
}

@media (max-width: 760px) {
  .region-original .rich-copy { display: block; }
  .region-original .rich-copy > h3 { margin-top: 3rem; }
  .region-card-grid button { aspect-ratio: 16 / 10; }
  .room-detail-gallery { width: 100%; }
  .room-detail-gallery > .section-heading { width: var(--shell); margin-right: auto; margin-left: auto; }
  .room-detail-grid { display: flex; gap: .65rem; overflow-x: auto; padding: 0 14px 1rem; scroll-snap-type: x mandatory; }
  .room-detail-grid button,
  .room-detail-grid .room-detail-main { width: 86vw; min-width: 86vw; min-height: 0; aspect-ratio: 4 / 3; scroll-snap-align: center; }
}

/* Layout breathing room and heading/header calibration. */
.detail-hero-copy { padding-bottom: clamp(5.75rem, 7vw, 7.5rem); }
.detail-booking { margin-top: -32px; }
.experience-card-wellness { width: 100%; }

.hero-panel h1,
.intro-copy h2,
.section-heading h2,
.offer-highlight h2,
.region-copy h2,
.content-page-header h1,
.current-offer h2,
.inquiry-disabled h2,
.detail-hero-copy h1,
.room-detail-hero-copy h1,
.region-page-hero h1,
.legacy-header h1,
.form-header h1,
.room-amenities-section header h2,
.region-original .rich-copy > h2 { max-width: none; }

.region-copy { width: var(--shell); }
.region-copy h2 { width: min(100%, 900px); }
.region-copy > p { max-width: 760px; }

.menu-toggle {
  appearance: none;
  -webkit-appearance: none;
  color: var(--ink);
  -webkit-tap-highlight-color: transparent;
}
.page-home .menu-toggle { color: #fff; }
.page-home .site-header.is-scrolled .menu-toggle,
.page-home .site-header:has(.site-navigation.is-open) .menu-toggle { color: var(--ink); }

@media (min-width: 1121px) {
  .header-main { min-height: 126px; grid-template-columns: 192px minmax(0, 1fr) auto; grid-template-rows: 126px; }
  .brand { width: 186px; height: 126px; }
  .brand img,
  .page-home .brand img,
  .site-header.is-scrolled .brand img,
  .page-home .site-header.is-scrolled .brand img { top: 1px; width: 176px; height: 176px; }
  .site-navigation { width: max-content; max-width: 100%; gap: clamp(1rem, 1.45vw, 1.5rem); }
  .site-navigation a,
  .page-home .site-navigation a { font-size: .78rem; }
}

@media (max-width: 1120px) {
  .header-main { min-height: 96px; grid-template-columns: 140px minmax(0, 1fr) auto; grid-template-rows: 96px; }
  .brand { width: 136px; height: 96px; }
  .brand img,
  .page-home .brand img,
  .site-header.is-scrolled .brand img,
  .page-home .site-header.is-scrolled .brand img { top: 1px; width: 136px; height: 136px; }
  .site-navigation {
    right: 12px;
    left: auto;
    width: min(390px, calc(100vw - 24px));
    border: 1px solid var(--line);
    padding: .7rem 1.25rem 1.2rem;
    box-shadow: 0 24px 60px rgba(42,28,18,.18);
  }
  .site-navigation a { padding: .82rem 0; }
}

@media (max-width: 760px) {
  .header-main { min-height: 88px; grid-template-columns: 122px minmax(0, 1fr) auto; grid-template-rows: 88px; }
  .brand { width: 118px; height: 88px; }
  .brand img,
  .page-home .brand img,
  .site-header.is-scrolled .brand img,
  .page-home .site-header.is-scrolled .brand img { top: 0; width: 122px; height: 122px; }
  .detail-hero-copy { padding-bottom: 6.5rem; }
  .detail-booking { width: calc(100% - 24px); margin-top: -24px; }
  .page-home .menu-toggle { color: #fff; }
  .page-home .site-header.is-scrolled .menu-toggle,
  .page-home .site-header:has(.site-navigation.is-open) .menu-toggle { color: var(--ink); }
}

/* Price tables: wide comparison layout with a restrained type scale. */
.prices-page {
  --price-first: 330px;
  width: min(1560px, calc(100vw - 48px));
  max-width: none;
}
.prices-header { width: min(100%, 940px); }
.price-season { width: 100%; }
.price-season-heading { gap: 1rem; margin-bottom: 1.35rem; }
.price-season-heading h2 {
  margin: 0 0 .25rem;
  font-size: clamp(1.65rem, 2vw, 2.15rem);
  line-height: 1.12;
}
.price-season-heading p { margin: 0; font-size: .94rem; }
.price-scroll-hint {
  display: none;
  margin: 0 0 .75rem;
  color: var(--ink-soft);
  font-size: .78rem;
}
.price-table-wrap {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--white);
  box-shadow: 0 16px 44px rgba(59,41,26,.07);
}
.price-table-wrap > h2 { display: none; }
.price-table-wrap table {
  width: 100%;
  min-width: 1080px;
  table-layout: fixed;
}
.price-table-wrap th {
  min-width: 0;
  padding: 1.05rem .8rem;
  font-size: .71rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .025em;
}
.price-table-wrap th:first-child,
.price-table-wrap td:first-child {
  width: var(--price-first);
  min-width: var(--price-first);
}
.price-table-wrap td {
  min-width: 0;
  padding: 1.05rem .9rem;
  font-size: .82rem;
  line-height: 1.45;
}
.price-table-wrap tbody tr:has(.price-room-link) td { border-top: 7px solid var(--cream); }
.price-table-wrap tbody tr:first-child td { border-top-width: 0; }
.price-room-link,
.price-table-wrap td > a.price-room-link:first-of-type {
  display: inline;
  margin: 0;
  font-family: var(--sans) !important;
  font-size: .98rem !important;
  font-weight: 750 !important;
  line-height: 1.3;
}
.price-value {
  display: block;
  color: var(--ink);
  font-size: 1.05rem;
  font-weight: 750;
  line-height: 1.15;
  white-space: nowrap;
}
.price-table-wrap td > small {
  margin: .42rem 0 0;
  font-size: .73rem;
  line-height: 1.45;
}
.price-table-wrap td > strong {
  margin-top: .42rem;
  color: var(--ink-soft);
  font-size: .71rem;
  font-weight: 650;
  line-height: 1.4;
}
.price-table-wrap td > a.price-plan-link:first-of-type {
  display: inline-flex;
  margin-top: .6rem;
  font-family: var(--sans);
  font-size: .7rem !important;
  font-weight: 750 !important;
  line-height: 1.35;
}

@media (max-width: 1120px) {
  .prices-page { --price-first: 270px; width: var(--shell); }
  .price-scroll-hint { display: block; }
  .price-table-wrap {
    width: calc(100vw - 24px);
    margin-left: calc((var(--shell) - 100vw + 24px) / 2);
  }
  .price-table-wrap table { min-width: 940px; }
}

@media (max-width: 760px) {
  .prices-page { --price-first: 210px; }
  .prices-header { margin-bottom: 3rem; }
  .season-tabs { gap: .55rem; }
  .season-tabs a { padding: .62rem .8rem; font-size: .68rem; }
  .price-season-heading { align-items: flex-start; }
  .price-season-heading h2 { font-size: 1.55rem; }
  .price-season-heading p { font-size: .84rem; }
  .price-table-wrap {
    width: 100vw;
    margin-left: calc((var(--shell) - 100vw) / 2);
    border-right: 0;
    border-left: 0;
    border-radius: 0;
  }
  .price-table-wrap table { min-width: 790px; }
  .price-table-wrap th { padding: .9rem .6rem; font-size: .65rem; }
  .price-table-wrap td { padding: .9rem .65rem; font-size: .77rem; }
  .price-room-link,
  .price-table-wrap td > a.price-room-link:first-of-type { font-size: .9rem !important; }
  .price-value { font-size: .94rem; }
}

/* Compact header and original offer photography. */
@media (min-width: 1121px) {
  .header-main {
    min-height: 92px;
    grid-template-columns: 112px minmax(0, 1fr) auto;
    grid-template-rows: 92px;
    gap: 1.25rem;
  }
  .brand {
    width: 104px;
    height: 92px;
  }
  .brand img,
  .page-home .brand img,
  .site-header.is-scrolled .brand img,
  .page-home .site-header.is-scrolled .brand img {
    position: static;
    width: auto;
    height: 82px;
    transform: none;
    object-fit: contain;
  }
}

@media (max-width: 1120px) {
  .header-main {
    min-height: 78px;
    grid-template-columns: 86px minmax(0, 1fr) auto;
    grid-template-rows: 78px;
  }
  .brand {
    width: 80px;
    height: 78px;
  }
  .brand img,
  .page-home .brand img,
  .site-header.is-scrolled .brand img,
  .page-home .site-header.is-scrolled .brand img {
    position: static;
    width: auto;
    height: 70px;
    transform: none;
    object-fit: contain;
  }
}

@media (max-width: 760px) {
  .header-main {
    min-height: 68px;
    grid-template-columns: 72px minmax(0, 1fr) auto;
    grid-template-rows: 68px;
  }
  .brand {
    width: 66px;
    height: 68px;
  }
  .brand img,
  .page-home .brand img,
  .site-header.is-scrolled .brand img,
  .page-home .site-header.is-scrolled .brand img { height: 60px; }
  .menu-toggle { justify-self: end; }
}

.offer-highlight {
  grid-template-columns: minmax(260px, .82fr) repeat(2, minmax(0, 1.09fr));
  align-items: stretch;
}
.offer-highlight > div:first-child { min-height: 460px; }
.offer-highlight-card {
  display: grid;
  min-width: 0;
  min-height: 460px;
  grid-template-rows: 205px 1fr;
  background: var(--white);
}
.offer-highlight-media {
  display: block;
  min-height: 0;
  overflow: hidden;
}
.offer-highlight-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .35s ease;
}
.offer-highlight-card:nth-child(3) .offer-highlight-media img { object-position: center 68%; }
.offer-highlight-media:hover img { transform: scale(1.025); }
.offer-highlight-copy {
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  padding: clamp(1.5rem, 2.6vw, 2.5rem);
}
.offer-highlight-copy > span {
  color: var(--accent);
  font-size: .67rem;
  font-weight: 800;
  letter-spacing: .1em;
}
.offer-highlight-copy h3 { margin: 1.25rem 0 .8rem; }
.offer-highlight-copy h3 a,
.current-offer-copy h2 a { color: inherit; text-decoration: none; }
.offer-highlight-copy h3 a:hover,
.current-offer-copy h2 a:hover { color: var(--accent); }
.offer-highlight-copy p { margin-bottom: 1.5rem; }
.offer-highlight-copy .text-link { margin-top: auto; }

.current-offer { display: flex; flex-direction: column; padding: 0; }
.current-offer-media {
  display: block;
  height: 280px;
  flex: 0 0 auto;
  overflow: hidden;
  background: var(--cream-deep);
}
.current-offer-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .35s ease;
}
.current-offer:nth-child(2) .current-offer-media img { object-position: center 65%; }
.current-offer-media:hover img { transform: scale(1.025); }
.current-offer-copy {
  position: relative;
  display: flex;
  flex: 1;
  align-items: flex-start;
  flex-direction: column;
  padding: clamp(2rem, 4vw, 3.5rem);
}
.current-offer-copy h2 { margin-top: 1.7rem; }
.current-offer-copy ul { width: 100%; }
.current-offer-copy .button { margin-top: auto; }

.legacy-offer-media {
  width: 100%;
  height: clamp(360px, 43vw, 610px);
  margin: 0 0 clamp(3rem, 6vw, 5rem);
  overflow: hidden;
  background: var(--cream-deep);
}
.legacy-offer-media img { width: 100%; height: 100%; object-fit: cover; }
.legacy-offer-media img[src*="offer-dog"] { object-position: center 65%; }

@media (max-width: 900px) {
  .offer-highlight { grid-template-columns: 1fr 1fr; }
  .offer-highlight > div:first-child { grid-column: 1 / -1; min-height: 240px; }
}

@media (max-width: 620px) {
  .offer-highlight { grid-template-columns: 1fr; }
  .offer-highlight > div:first-child { grid-column: auto; min-height: 220px; }
  .offer-highlight-card { min-height: 0; grid-template-rows: 190px auto; }
  .current-offer-media { height: 230px; }
  .legacy-offer-media {
    width: 100vw;
    height: 72vw;
    margin-left: calc((var(--shell) - 100vw) / 2);
  }
}

/* Complete price conditions from the original seasonal pages. */
.price-details {
  margin-top: clamp(3rem, 5vw, 5rem);
  border-top: 1px solid var(--line);
  padding-top: clamp(2.5rem, 4vw, 4rem);
}
.price-details > h4 {
  margin: 0 0 2rem;
  font-family: var(--serif);
  font-size: clamp(1.65rem, 2.2vw, 2.25rem);
  font-weight: 400;
  line-height: 1.15;
}
.price-details > ul {
  columns: 2 380px;
  column-gap: clamp(2.5rem, 6vw, 6rem);
  margin: 0;
  padding: 0;
  list-style: none;
}
.price-details > ul li {
  position: relative;
  break-inside: avoid;
  border-bottom: 1px solid var(--line);
  padding: .9rem 0 .9rem 1.15rem;
  color: var(--ink-soft);
  font-size: .88rem;
  line-height: 1.58;
}
.price-details > ul li::before {
  position: absolute;
  top: 1.35rem;
  left: 0;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--accent);
  content: "";
}
.price-details > ul strong { color: var(--ink); font-weight: 720; }
.price-details > h5 {
  margin: clamp(2.75rem, 5vw, 4.5rem) 0 .8rem;
  font-family: var(--serif);
  font-size: clamp(1.35rem, 1.8vw, 1.8rem);
  font-weight: 400;
}
.price-details > h5 + p { max-width: 720px; color: var(--ink-soft); }
.price-details-action { margin-top: 1.5rem; }

@media (max-width: 760px) {
  .price-details > ul { columns: 1; }
  .price-details > ul li { font-size: .84rem; }
}

/* One inner-page grid: functional blocks span the shell, copy stays readable. */
.content-page:not(.prices-page),
.form-page,
.legacy-page,
.weather-page {
  width: var(--shell);
  max-width: none;
}
.content-page-header,
.form-header,
.legacy-header,
.legacy-content,
.legacy-booking,
.archive-note,
.form-page .booking-panel,
.form-page .booking-benefits,
.form-page .form-help,
.inquiry-form,
.form-errors,
.form-success,
.form-test-notice,
.weather-panel,
.weather-page .content-page-header {
  margin-right: 0;
  margin-left: 0;
}
.form-header,
.form-page .booking-panel,
.form-page .booking-benefits,
.form-page .form-help,
.inquiry-form,
.form-errors,
.form-success,
.form-test-notice,
.weather-panel,
.weather-page .content-page-header,
.weather-page .webcam-stills,
.weather-page .webcam-section {
  width: 100%;
  max-width: none;
}

/* Price comparison follows the same shell as the header and becomes cards on phones. */
.prices-page {
  --price-first: 410px;
  width: var(--shell);
  max-width: none;
}
.prices-header { width: min(100%, 1040px); }
.prices-header-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .8rem 1.2rem;
  align-items: center;
  justify-content: space-between;
  margin-top: 1.4rem;
}
.prices-header-actions .season-tabs { margin: 0; }
.price-calculator-jump {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  border-bottom: 1px solid currentColor;
  color: var(--brand-primary);
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.price-table-wrap tbody tr:has(.price-room-link) td { border-top-width: 0; }
.price-table-wrap tbody tr.price-room-main:not(:first-child) td { border-top: 1px solid #dacdbc; }
.price-room-cell {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  gap: 1rem;
  align-items: center;
}
.price-room-photo {
  display: block;
  width: 112px;
  height: 92px;
  overflow: hidden;
  background: var(--cream-deep);
}
.price-room-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .25s ease;
}
.price-room-photo:hover img { transform: scale(1.035); }
.price-room-copy { min-width: 0; }
.price-room-title {
  position: relative;
  display: flex;
  gap: .45rem;
  align-items: center;
  width: 100%;
}
.price-room-title .price-info { flex: 0 0 auto; margin: 0; }
.price-room-title .price-tooltip {
  top: calc(100% + 8px);
  right: 0;
  bottom: auto;
  left: auto;
  width: min(310px, calc(100vw - 40px));
  transform: translateY(-4px);
}
.price-room-title .price-info:hover .price-tooltip,
.price-room-title .price-info:focus-within .price-tooltip,
.price-room-title .price-info.is-open .price-tooltip { transform: none; }
.price-calculator { scroll-margin-top: 120px; }
.price-calculator-form input[type="date"] {
  width: 100%;
  min-height: 48px;
  border: 1px solid var(--line);
  border-radius: 0;
  padding: .75rem .8rem;
  background: #fff;
  color: var(--ink);
  font: inherit;
}
.offer-highlight > div:first-child .eyebrow { color: #f4d8ca; }

@media (max-width: 1120px) {
  .prices-page { --price-first: 350px; width: var(--shell); }
  .price-table-wrap { width: 100%; margin-left: 0; }
  .price-room-cell { grid-template-columns: 96px minmax(0, 1fr); gap: .8rem; }
  .price-room-photo { width: 96px; height: 82px; }
}

@media (max-width: 760px) {
  .prices-page { --price-first: auto; }
  .prices-header-actions { align-items: flex-start; }
  .price-calculator-jump { min-height: 36px; }
  .price-scroll-hint { display: none; }
  .price-table-wrap {
    width: 100%;
    margin-left: 0;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }
  .price-table-wrap table,
  .price-table-wrap tbody { display: block; width: 100%; min-width: 0; }
  .price-table-wrap thead { display: none; }
  .price-table-wrap tr {
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: 100%;
    margin: 0 0 .8rem;
    overflow: visible;
    border: 1px solid var(--line);
    background: var(--white);
  }
  .price-table-wrap tr.price-room-main { margin-top: 1.35rem; }
  .price-table-wrap tr.price-room-main:first-child { margin-top: 0; }
  .price-table-wrap td,
  .price-table-wrap td:first-child {
    position: static;
    display: block;
    width: auto;
    min-width: 0;
    border: 0;
    border-top: 1px solid var(--line);
    padding: .75rem .8rem;
    background: var(--white);
    box-shadow: none;
    text-align: left;
  }
  .price-table-wrap td:first-child {
    grid-column: 1 / -1;
    border-top: 0;
    background: #fff9f0;
  }
  .price-table-wrap td:not(:first-child)::before {
    display: block;
    min-height: 2.5em;
    margin-bottom: .4rem;
    color: var(--ink-soft);
    content: attr(data-period);
    font-size: .62rem;
    font-weight: 750;
    line-height: 1.25;
  }
  .price-table-wrap tr.price-room-supplement {
    margin-top: -.8rem;
    border-top: 0;
    background: #fbf5eb;
  }
  .price-table-wrap tr.price-room-supplement td,
  .price-table-wrap tr.price-room-supplement td:first-child { background: #fbf5eb; }
  .price-room-cell { grid-template-columns: 92px minmax(0, 1fr); gap: .75rem; }
  .price-room-photo { width: 92px; height: 86px; }
  .price-room-title { align-items: flex-start; }
  .price-room-title .price-tooltip {
    position: fixed;
    top: auto;
    right: 14px;
    bottom: 78px;
    left: 14px;
    z-index: 30;
    width: auto;
  }
  .price-value { font-size: 1rem; }
}
.legacy-header,
.legacy-content,
.legacy-booking,
.archive-note { width: 100%; max-width: none; }
.legacy-content > p,
.legacy-content > ul,
.legacy-content > ol:not(:first-child) { max-width: 880px; }
.rating-hero,
.legal-copy,
.inquiry-disabled {
  width: 100%;
  max-width: none;
  margin-right: 0;
  margin-left: 0;
}
.legal-copy > p,
.legal-copy > ul,
.legal-copy > ol { max-width: 880px; }

/* The mark keeps breathing room above and intentionally overlaps below. */
@media (min-width: 1121px) {
  .brand { overflow: visible; }
  .brand img,
  .page-home .brand img,
  .site-header.is-scrolled .brand img,
  .page-home .site-header.is-scrolled .brand img {
    width: auto;
    height: 100px;
    transform: translateY(12px);
  }
}

@media (max-width: 1120px) {
  .brand { overflow: visible; }
  .brand img,
  .page-home .brand img,
  .site-header.is-scrolled .brand img,
  .page-home .site-header.is-scrolled .brand img {
    width: auto;
    height: 84px;
    transform: translateY(8px);
  }
}

@media (max-width: 760px) {
  .brand img,
  .page-home .brand img,
  .site-header.is-scrolled .brand img,
  .page-home .site-header.is-scrolled .brand img {
    height: 72px;
    transform: translateY(8px);
  }
}

/* Live estimate built from the currently displayed seasonal table. */
.price-calculator {
  margin-top: clamp(3.5rem, 7vw, 6rem);
  border: 1px solid var(--line);
  padding: clamp(1.5rem, 4vw, 3.5rem);
  background: var(--white);
}
.price-calculator > header { width: min(100%, 760px); margin-bottom: 2.25rem; }
.price-calculator > header h2 { margin-bottom: .7rem; }
.price-calculator > header p:last-child { color: var(--ink-soft); }
.price-calculator-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: start;
}
.price-calculator-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.15rem;
}
.price-calculator-form > label,
.price-calculator-ages label {
  display: grid;
  gap: .45rem;
  color: var(--ink-soft);
  font-size: .7rem;
  font-weight: 750;
  letter-spacing: .045em;
}
.price-calculator-form select,
.price-calculator-form input[type="number"],
.price-calculator-ages select {
  width: 100%;
  min-height: 52px;
  border: 1px solid var(--line);
  border-radius: 0;
  padding: .7rem .85rem;
  background: #fbf8f2;
  color: var(--ink);
  font-size: .92rem;
  font-weight: 500;
}
.price-calculator-ages {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .8rem;
}
.price-calculator-ages[hidden] { display: none; }
.price-calculator-check {
  display: flex !important;
  min-height: 52px;
  align-items: center;
  grid-template-columns: auto 1fr;
  gap: .7rem !important;
  border: 1px solid var(--line);
  padding: .75rem .9rem;
  background: #fbf8f2;
}
.price-calculator-check input { width: 18px; height: 18px; margin: 0; accent-color: var(--accent); }
.price-calculator-result {
  border-left: 1px solid var(--line);
  padding-left: clamp(1.5rem, 3vw, 3rem);
}
.price-calculator-result dl { margin: 0; }
.price-calculator-result dl > div { display: flex; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--line); padding: .62rem 0; }
.price-calculator-result dt { color: var(--ink-soft); font-size: .78rem; }
.price-calculator-result dd { margin: 0; font-size: .82rem; font-weight: 750; white-space: nowrap; }
.price-calculator-total { display: flex; align-items: end; justify-content: space-between; gap: 1rem; padding: 1.35rem 0; }
.price-calculator-total span { color: var(--ink-soft); font-size: .78rem; }
.price-calculator-total strong { color: var(--accent); font-size: clamp(1.5rem, 2.2vw, 2rem); line-height: 1; }
.price-calculator-status {
  display: flex;
  gap: .8rem;
  margin: 0 0 1rem;
  border: 1px solid rgba(173, 126, 46, .3);
  border-radius: 10px;
  padding: .9rem 1rem;
  background: #fbf8f2;
  color: var(--ink);
  font-size: .78rem;
  line-height: 1.45;
}
.price-calculator-status-icon {
  display: grid;
  flex: 0 0 22px;
  width: 22px;
  height: 22px;
  place-items: center;
  border-radius: 50%;
  background: var(--accent);
  color: #fff;
  font-size: .7rem;
  font-weight: 800;
}
.price-calculator-status strong { display: block; }
.price-calculator-status ul { margin: .4rem 0 0; padding-inline-start: 1.1rem; color: var(--ink-soft); }
.price-calculator-status li + li { margin-top: .2rem; }
.price-calculator-status.is-ready { border-color: rgba(57, 116, 76, .28); background: #f3f8f3; }
.price-calculator-status.is-ready .price-calculator-status-icon { background: #39744c; font-size: 0; }
.price-calculator-status.is-ready .price-calculator-status-icon::before { content: '✓'; font-size: .75rem; }
.price-calculator-status.is-unavailable { border-color: rgba(173, 126, 46, .3); background: #fff9ed; }
.price-calculator-result > p { color: var(--ink-soft); font-size: .72rem; line-height: 1.55; }
.price-calculator-result .price-calculator-warning { border-left: 2px solid var(--accent); padding-left: .75rem; color: var(--accent); font-weight: 700; }
.price-calculator-result .button { margin-top: .5rem; }

@media (max-width: 900px) {
  .price-calculator-layout { grid-template-columns: 1fr; }
  .price-calculator-result { border-top: 1px solid var(--line); border-left: 0; padding-top: 1.5rem; padding-left: 0; }
}

@media (max-width: 600px) {
  .price-calculator { width: 100vw; margin-left: calc((var(--shell) - 100vw) / 2); border-right: 0; border-left: 0; padding-inline: 14px; }
  .price-calculator-form { grid-template-columns: 1fr; }
  .price-calculator-ages { grid-column: auto; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Orientation between long content branches. */
.page-navigation {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 1.25rem;
  align-items: center;
  border-bottom: 1px solid var(--line);
  padding-top: 1rem;
  padding-bottom: 1rem;
}
.page-back {
  display: inline-flex;
  gap: .4rem;
  align-items: center;
  color: var(--brand-primary);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .045em;
  text-transform: uppercase;
}
.breadcrumbs { min-width: 0; }
.breadcrumbs ol {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: flex-end;
  gap: .55rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.breadcrumbs li {
  min-width: 0;
  color: var(--ink-soft);
  font-size: .7rem;
  white-space: nowrap;
}
.breadcrumbs li + li::before { margin-right: .55rem; color: #b7a99a; content: "/"; }
.breadcrumbs li[aria-current="page"] { overflow: hidden; max-width: 34rem; color: var(--ink); text-overflow: ellipsis; }
.offer-inquiry-context,
.inquiry-context {
  display: flex;
  gap: 1.5rem;
  align-items: center;
  justify-content: space-between;
  border: 1px solid var(--line);
  padding: clamp(1.25rem, 3vw, 2.25rem);
  background: #fff9f0;
}
.offer-inquiry-context { margin-top: 2rem; }
.offer-inquiry-context p,
.inquiry-context p { margin: .4rem 0 0; color: var(--ink-soft); }
.inquiry-context {
  display: block;
  margin-bottom: 1.5rem;
  border-left: 4px solid var(--gold);
}
.inquiry-context > span {
  display: block;
  margin-bottom: .35rem;
  color: var(--brand-primary);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.inquiry-context > strong { font-family: var(--serif); font-size: clamp(1.25rem, 2vw, 1.65rem); font-weight: 500; }

@media (max-width: 760px) {
  .page-navigation { display: block; overflow: hidden; padding-top: .75rem; padding-bottom: .75rem; }
  .page-back { margin-bottom: .55rem; }
  .breadcrumbs { overflow-x: auto; scrollbar-width: none; }
  .breadcrumbs::-webkit-scrollbar { display: none; }
  .breadcrumbs ol { width: max-content; max-width: none; justify-content: flex-start; }
  .breadcrumbs li[aria-current="page"] { max-width: 16rem; }
  .offer-inquiry-context { display: grid; gap: 1rem; }
  .offer-inquiry-context .button { width: 100%; }
}

/* Final header, mobile price and calculator refinements. */
.room-detail-hero-copy .eyebrow { color: #eee; }

@media (min-width: 1121px) {
  .header-main {
    min-height: 140px;
    grid-template-columns: 154px minmax(0, 1fr) auto;
    grid-template-rows: 140px;
  }
  .brand { width: 148px; height: 140px; }
  .brand img,
  .page-home .brand img,
  .site-header.is-scrolled .brand img,
  .page-home .site-header.is-scrolled .brand img {
    width: auto;
    height: 140px;
    transform: none;
  }
}

@media (max-width: 1120px) {
  .header-main {
    min-height: 124px;
    grid-template-columns: 124px minmax(0, 1fr) auto;
    grid-template-rows: 124px;
  }
  .brand { width: 120px; height: 124px; }
  .brand img,
  .page-home .brand img,
  .site-header.is-scrolled .brand img,
  .page-home .site-header.is-scrolled .brand img {
    top: 2px;
    width: auto;
    height: 120px;
    transform: none;
  }
  .site-navigation,
  .site-navigation.is-open {
    right: auto;
    left: 50%;
    width: 100vw;
    max-width: none;
    border-right: 0;
    border-left: 0;
    padding-right: max(18px, calc((100vw - var(--shell)) / 2));
    padding-left: max(18px, calc((100vw - var(--shell)) / 2));
    transform: translateX(-50%);
  }
}

.price-calculator-jump {
  justify-content: center;
  min-height: 46px;
  border: 1px solid rgba(128,25,21,.35);
  padding: .72rem 1rem;
  background: #fff9f0;
  color: var(--brand-primary);
  font-size: .75rem;
  letter-spacing: .025em;
  text-transform: none;
  transition: border-color .2s ease, background .2s ease, color .2s ease;
}
.price-calculator-jump:hover {
  border-color: var(--brand-primary);
  background: var(--brand-primary);
  color: #fff;
}

@media (max-width: 760px) {
  .header-main {
    min-height: 124px;
    grid-template-columns: 120px minmax(0, 1fr) auto;
    grid-template-rows: 124px;
  }
  .brand { width: 116px; height: 124px; }
  .brand img,
  .page-home .brand img,
  .site-header.is-scrolled .brand img,
  .page-home .site-header.is-scrolled .brand img {
    top: 2px;
    width: auto;
    height: 120px;
    transform: none;
  }
  .prices-page,
  .price-season,
  .price-table-wrap,
  .price-table-wrap table,
  .price-table-wrap tbody,
  .price-details,
  .price-calculator,
  .price-calculator-layout,
  .price-calculator-form { min-width: 0; max-width: 100%; }
  .prices-header-actions { display: grid; width: 100%; }
  .price-calculator-jump { width: 100%; min-height: 44px; }
  .price-table-wrap tr {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    max-width: 100%;
  }
  .price-table-wrap td,
  .price-table-wrap td:first-child {
    max-width: 100%;
    overflow-wrap: anywhere;
  }
  .price-room-cell {
    width: 100%;
    grid-template-columns: 82px minmax(0, 1fr);
  }
  .price-room-photo { width: 82px; height: 78px; }
  .price-room-copy,
  .price-room-title,
  .price-room-link { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
  .price-value { white-space: normal; overflow-wrap: anywhere; }
  .price-calculator {
    width: 100%;
    margin-left: 0;
    padding-right: 14px;
    padding-left: 14px;
  }
  .price-calculator-form select,
  .price-calculator-form input { max-width: 100%; }
}

@media (max-width: 420px) {
  .price-table-wrap tr { grid-template-columns: minmax(0, 1fr); }
  .price-table-wrap td:first-child { grid-column: 1; }
  .price-table-wrap td:not(:first-child)::before { min-height: 0; }
}

/* Compact brand header with visible social utility and rating on photography. */
.header-utility {
  display: flex;
  width: 100%;
  height: 32px;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--line);
  padding-right: max(24px, calc((100vw - 1340px) / 2));
  padding-left: max(24px, calc((100vw - 1340px) / 2));
  background: rgba(255,250,243,.82);
}
.header-utility > a,
.header-utility > a:last-child { display: inline-flex; color: var(--ink-soft); text-decoration: none; }
.header-social { display: flex; gap: .45rem; }
.header-social a {
  display: grid;
  width: 23px;
  height: 23px;
  place-items: center;
  border-color: rgba(84,58,36,.2);
  color: var(--brand-primary);
}
.header-social .icon { width: 12px; height: 12px; }
.header-rating-main { display: none !important; }

.hero-rating-badge {
  position: absolute;
  z-index: 5;
  top: 22px;
  right: max(40px, calc((100vw - 1340px) / 2));
  display: flex;
  min-height: 48px;
  align-items: center;
  gap: .7rem;
  border: 1px solid rgba(255,255,255,.62);
  padding: .55rem .75rem;
  background: rgba(255,253,249,.94);
  box-shadow: 0 12px 34px rgba(31,20,12,.2);
  color: #003b95;
  text-decoration: none;
  backdrop-filter: blur(12px);
}
.hero-rating-badge img { width: 92px; height: 19px; object-fit: contain; }
.hero-rating-badge > span { display: flex; align-items: baseline; gap: .14rem; white-space: nowrap; }
.hero-rating-badge strong { font-size: 1rem; line-height: 1; }
.hero-rating-badge small { font-size: .66rem; }

@media (min-width: 1121px) {
  .header-main {
    min-height: 110px;
    grid-template-columns: 128px minmax(0, 1fr) auto;
    grid-template-rows: 110px;
  }
  .brand { width: 122px; height: 110px; }
  .brand img,
  .page-home .brand img,
  .site-header.is-scrolled .brand img,
  .page-home .site-header.is-scrolled .brand img {
    top: 50%;
    left: 0;
    width: auto;
    height: 116px;
    transform: translateY(-50%);
  }
}

@media (max-width: 1120px) {
  .header-main {
    min-height: 100px;
    grid-template-columns: 108px minmax(0, 1fr) auto;
    grid-template-rows: 100px;
  }
  .brand { width: 104px; height: 100px; }
  .brand img,
  .page-home .brand img,
  .site-header.is-scrolled .brand img,
  .page-home .site-header.is-scrolled .brand img {
    top: 50%;
    left: 0;
    width: auto;
    height: 104px;
    transform: translateY(-50%);
  }
}

.price-calculator-date {
  display: grid;
  min-width: 0;
  gap: .45rem;
  border: 1px solid var(--line);
  padding: .7rem .85rem;
  background: #fbf8f2;
}
.price-calculator-date > span:first-child {
  color: var(--ink-soft);
  font-size: .7rem;
  font-weight: 750;
  letter-spacing: .045em;
}
.price-calculator-date .booking-date-button { min-height: 30px; font-size: .92rem; }

@media (max-width: 760px) {
  .header-utility {
    height: 30px;
    padding-right: 14px;
    padding-left: 14px;
    font-size: .64rem;
  }
  .header-main {
    min-height: 92px;
    grid-template-columns: 98px minmax(0, 1fr) auto;
    grid-template-rows: 92px;
  }
  .brand { width: 94px; height: 92px; }
  .brand img,
  .page-home .brand img,
  .site-header.is-scrolled .brand img,
  .page-home .site-header.is-scrolled .brand img {
    top: 50%;
    left: 0;
    width: auto;
    height: 96px;
    transform: translateY(-50%);
  }
  .hero-rating-badge {
    top: 12px;
    right: 12px;
    min-height: 40px;
    gap: .5rem;
    padding: .42rem .55rem;
  }
  .hero-rating-badge img { width: 76px; height: 16px; }
  .hero-rating-badge strong { font-size: .86rem; }
  .hero-rating-badge small { font-size: .58rem; }
}

/* Hero pages use the compact photographic header shown in the approved direction. */
.button,
.button-small,
.button-gold,
.booking-submit,
.booking-inquiry,
.header-inquiry,
.mobile-book,
.price-calculator-jump,
.hero-inquiry,
.hero-rating-badge,
.page-back,
.breadcrumbs a { text-decoration: none !important; }

.editorial-block.section-shell {
  width: var(--shell);
  max-width: none;
  margin-right: auto;
  margin-left: auto;
}
.editorial-block.section-shell > div { max-width: 920px; }

:is(.page-home, .page-detail, .page-room, .page-region) .site-header {
  position: absolute !important;
  top: 0;
  right: 0;
  left: 0;
  border-bottom: 1px solid rgba(255,255,255,.2);
  background: linear-gradient(180deg, rgba(18,14,10,.5), rgba(18,14,10,.12) 72%, transparent) !important;
  box-shadow: none;
  color: #fff !important;
  backdrop-filter: none;
}
:is(.page-home, .page-detail, .page-room, .page-region) .header-utility {
  border-bottom-color: rgba(255,255,255,.2);
  background: rgba(20,15,11,.12);
  color: rgba(255,255,255,.88);
}
:is(.page-home, .page-detail, .page-room, .page-region) .header-utility > a,
:is(.page-home, .page-detail, .page-room, .page-region) .header-social a,
:is(.page-home, .page-detail, .page-room, .page-region) .site-navigation a,
:is(.page-home, .page-detail, .page-room, .page-region) .header-inquiry,
:is(.page-home, .page-detail, .page-room, .page-region) .language-switcher summary,
:is(.page-home, .page-detail, .page-room, .page-region) .menu-toggle { color: #fff; }
:is(.page-home, .page-detail, .page-room, .page-region) .header-social a,
:is(.page-home, .page-detail, .page-room, .page-region) .language-switcher summary { border-color: rgba(255,255,255,.5); }
:is(.page-home, .page-detail, .page-room, .page-region) .brand img { filter: drop-shadow(0 8px 18px rgba(0,0,0,.32)); }
:is(.page-home, .page-detail, .page-room, .page-region) .language-switcher > div { color: var(--ink); }
:is(.page-home, .page-detail, .page-room, .page-region) .hero-rating-badge { top: 150px; }

:is(.page-detail, .page-room, .page-region) .page-navigation {
  position: absolute;
  z-index: 12;
  top: 142px;
  right: 0;
  left: 0;
  border-bottom-color: rgba(255,255,255,.28);
  color: rgba(255,255,255,.82);
}
:is(.page-detail, .page-room, .page-region) .hero-rating-badge { top: 210px; }
:is(.page-detail, .page-room, .page-region) .page-back,
:is(.page-detail, .page-room, .page-region) .breadcrumbs li,
:is(.page-detail, .page-room, .page-region) .breadcrumbs li[aria-current="page"] { color: rgba(255,255,255,.9); }

:is(.page-home, .page-detail, .page-room, .page-region) .site-header.is-scrolled {
  position: fixed !important;
  background: rgba(251,243,232,.97) !important;
  box-shadow: 0 8px 24px rgba(45,31,20,.12);
  color: var(--ink) !important;
  backdrop-filter: blur(16px);
}
:is(.page-home, .page-detail, .page-room, .page-region) .site-header.is-scrolled .header-utility { display: none; }
:is(.page-home, .page-detail, .page-room, .page-region) .site-header.is-scrolled .header-main {
  min-height: 82px;
  grid-template-rows: 82px;
}
:is(.page-home, .page-detail, .page-room, .page-region) .site-header.is-scrolled .brand { height: 82px; }
:is(.page-home, .page-detail, .page-room, .page-region) .site-header.is-scrolled .brand img {
  height: 88px;
  filter: drop-shadow(0 5px 11px rgba(40,25,16,.16));
}
:is(.page-home, .page-detail, .page-room, .page-region) .site-header.is-scrolled .site-navigation a,
:is(.page-home, .page-detail, .page-room, .page-region) .site-header.is-scrolled .header-inquiry,
:is(.page-home, .page-detail, .page-room, .page-region) .site-header.is-scrolled .language-switcher summary,
:is(.page-home, .page-detail, .page-room, .page-region) .site-header.is-scrolled .menu-toggle { color: var(--ink); }
:is(.page-home, .page-detail, .page-room, .page-region) .site-header.is-scrolled .language-switcher summary { border-color: var(--line); }

@media (max-width: 760px) {
  .editorial-block.section-shell { grid-template-columns: 32px minmax(0, 1fr); gap: .85rem; }
  :is(.page-home, .page-detail, .page-room, .page-region) .hero-rating-badge { top: 128px; }
  :is(.page-detail, .page-room, .page-region) .page-navigation { top: 122px; }
  :is(.page-detail, .page-room, .page-region) .hero-rating-badge { top: 205px; }
  :is(.page-home, .page-detail, .page-room, .page-region) .site-header:has(.site-navigation.is-open) {
    background: rgba(251,243,232,.98) !important;
    color: var(--ink) !important;
  }
  :is(.page-home, .page-detail, .page-room, .page-region) .site-header:has(.site-navigation.is-open) .menu-toggle,
  :is(.page-home, .page-detail, .page-room, .page-region) .site-header:has(.site-navigation.is-open) .language-switcher summary { color: var(--ink); }
}

/* Booking and enquiry are equal conversion paths. */
.button-outline {
  border-color: rgba(128,25,21,.48);
  background: transparent;
  color: var(--brand-primary);
}
.button-outline:hover {
  border-color: var(--brand-primary);
  background: var(--brand-primary);
  color: #fff;
}
.button-hero-secondary {
  border-color: rgba(255,255,255,.75);
  background: rgba(20,15,11,.12);
  color: #fff;
  backdrop-filter: blur(8px);
}
.button-hero-secondary:hover { border-color: #fff; background: #fff; color: var(--brand-primary); }
.price-calculator-actions,
.content-note-actions,
.footer-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  align-items: center;
}
.price-calculator-actions { margin-top: .75rem; }
.price-calculator-actions .button { flex: 1 1 180px; margin-top: 0; padding-inline: 1rem; }
.content-note-actions { flex: 0 0 auto; }
.content-note-actions .button { min-height: 46px; padding: .75rem 1rem; }
.footer-hero-actions { justify-content: flex-end; }
.footer-inquiry {
  border-color: rgba(255,255,255,.62);
  background: transparent;
  color: #fff;
}
.footer-inquiry:hover { border-color: #fff; background: #fff; color: var(--brand-primary); }
.room-actions .button-outline { min-height: 46px; padding-inline: 1rem; }

/* The crest hangs down slightly, while its top remains fully visible. */
@media (min-width: 1121px) {
  .brand img,
  .page-home .brand img,
  .site-header.is-scrolled .brand img,
  .page-home .site-header.is-scrolled .brand img {
    top: calc(50% + 6px);
    height: 108px;
  }
}
@media (max-width: 1120px) {
  .brand img,
  .page-home .brand img,
  .site-header.is-scrolled .brand img,
  .page-home .site-header.is-scrolled .brand img {
    top: calc(50% + 6px);
    height: 100px;
  }
}
@media (max-width: 760px) {
  .brand img,
  .page-home .brand img,
  .site-header.is-scrolled .brand img,
  .page-home .site-header.is-scrolled .brand img {
    top: calc(50% + 5px);
    height: 90px;
  }
  .hero-actions,
  .content-note-actions,
  .footer-hero-actions { width: 100%; align-items: stretch; flex-direction: column; }
  .hero-actions .button,
  .content-note-actions .button,
  .footer-hero-actions .button { width: 100%; }
  .price-calculator-actions { display: grid; }
}

:is(.page-home, .page-detail, .page-room, .page-region) .site-header.is-scrolled .brand img {
  top: calc(50% + 4px);
  height: 84px;
}

/* One field system in the calculator. */
.price-calculator-form { align-items: end; }
.price-calculator-field,
.price-calculator-ages .price-calculator-field {
  display: grid !important;
  min-width: 0;
  grid-template-rows: minmax(2.65em, auto) 52px;
  gap: .45rem;
  color: var(--ink-soft);
  font-size: .7rem;
  font-weight: 750;
  letter-spacing: .045em;
}
.price-field-label {
  display: flex;
  min-height: 2.65em;
  align-items: flex-end;
  line-height: 1.3;
}
.price-calculator-form .price-calculator-field select,
.price-calculator-form .price-calculator-field input[type="number"],
.price-calculator-form .price-calculator-date .booking-date-button,
.price-calculator-ages .price-calculator-field select {
  width: 100%;
  height: 52px;
  min-height: 52px;
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: .7rem .85rem;
  background: #fbf8f2;
  color: var(--ink);
  font-size: .92rem;
  font-weight: 550;
}
.price-calculator-date {
  border: 0;
  padding: 0;
  background: transparent;
}
.price-calculator-form .price-calculator-date .booking-date-button { display: flex; }
.price-calculator-check {
  height: 52px;
  margin-top: calc(2.65em + .45rem);
  border-radius: 10px;
}

/* Consistent restrained rounding for cards, media and functional blocks. */
:root { --radius: 12px; }
.button,
.price-calculator-jump { border-radius: 8px; }
.stay-card,
.room-variant,
.current-offer,
.offer-highlight,
.offer-highlight-card,
.service-cards a,
.content-note,
.price-calculator,
.price-table-wrap,
.inquiry-form,
.weather-panel,
.rating-hero,
.legal-cards a,
.offer-inquiry-context,
.inquiry-context {
  border-radius: var(--radius);
}
.stay-card,
.room-variant,
.current-offer,
.offer-highlight,
.offer-highlight-card,
.price-table-wrap { overflow: hidden; }
.intro-image,
.home-gallery-grid button,
.room-detail-grid button,
.region-card-grid button,
.restaurant-gallery button,
.breakfast-gallery button,
.webcam-gallery button,
.webcam-frame,
.legacy-offer-media,
.current-offer-media,
.offer-highlight-media,
.price-room-photo,
.plan-open,
.room-plan > button {
  overflow: hidden;
  border-radius: var(--radius);
}

/* Stable bottom anchoring prevents the crest jumping or clipping at the top. */
.brand { overflow: visible; }
.brand img,
.page-home .brand img,
.site-header.is-scrolled .brand img,
.page-home .site-header.is-scrolled .brand img {
  top: auto !important;
  bottom: -6px;
  left: 0;
  height: 108px;
  transform: none !important;
  transition: filter .2s ease;
}
:is(.page-home, .page-detail, .page-room, .page-region) .site-header.is-scrolled .brand img {
  top: auto !important;
  bottom: -4px;
  height: 84px;
}

@media (max-width: 1120px) {
  .brand img,
  .page-home .brand img,
  .site-header.is-scrolled .brand img,
  .page-home .site-header.is-scrolled .brand img { bottom: -5px; height: 100px; }
  .booking-submit { border-radius: 0 !important; }
}

@media (max-width: 760px) {
  .price-calculator-check { margin-top: 0; }
  .brand img,
  .page-home .brand img,
  .site-header.is-scrolled .brand img,
  .page-home .site-header.is-scrolled .brand img { bottom: -4px; height: 90px; }
  :is(.page-home, .page-detail, .page-room, .page-region) .site-header.is-scrolled .brand img { bottom: -3px; height: 80px; }
  .price-table-wrap { border-radius: 0; overflow: visible; }
  .price-table-wrap tr { overflow: hidden; border-radius: var(--radius); }
}

/* Final header balance: keep the complete crest visible with real air on both sides. */
.brand img,
.page-home .brand img,
.site-header.is-scrolled .brand img,
.page-home .site-header.is-scrolled .brand img {
  top: auto !important;
  bottom: 9px;
  width: auto;
  height: 92px;
  transform: none !important;
}
:is(.page-home, .page-detail, .page-room, .page-region) .site-header.is-scrolled .brand img {
  top: auto !important;
  bottom: 7px;
  height: 68px;
}

/* Room pages finish with a calm invitation instead of a full-width red panel. */
.room-detail-page > .detail-cta {
  display: grid;
  width: var(--shell);
  min-height: 0;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  gap: .65rem clamp(2rem, 5vw, 5rem);
  align-items: center;
  margin: clamp(3.5rem, 7vw, 6rem) auto 0;
  border: 1px solid rgba(106, 76, 52, .16);
  border-radius: var(--radius);
  padding: clamp(2rem, 4.5vw, 3.75rem);
  background: #eadcca;
  box-shadow: 0 18px 46px rgba(66, 44, 29, .08);
  color: var(--ink);
  text-align: left;
}
.room-detail-page > .detail-cta .eyebrow {
  grid-column: 1;
  margin-bottom: 0;
  color: var(--brand-primary);
}
.room-detail-page > .detail-cta h2 {
  grid-column: 1;
  max-width: 690px;
  color: var(--ink);
  font-size: clamp(1.75rem, 2.65vw, 2.7rem);
}
.room-detail-page > .detail-cta > div {
  display: flex;
  grid-row: 1 / 3;
  grid-column: 2;
  align-items: center;
  flex-direction: row;
  gap: .7rem;
  margin-top: 0;
}
.room-detail-page > .detail-cta .button-light,
.room-detail-page > .detail-cta .text-link-light {
  display: inline-flex;
  min-height: 52px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--brand-primary);
  border-radius: 8px;
  padding: .9rem 1.35rem;
  box-shadow: none;
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .09em;
  line-height: 1.1;
  text-decoration: none;
  text-transform: uppercase;
  white-space: nowrap;
}
.room-detail-page > .detail-cta .button-light {
  background: var(--brand-primary);
  color: #fff;
}
.room-detail-page > .detail-cta .button-light:hover {
  border-color: var(--brand-primary-dark);
  background: var(--brand-primary-dark);
  color: #fff;
}
.room-detail-page > .detail-cta .text-link-light {
  background: transparent;
  color: var(--brand-primary);
}
.room-detail-page > .detail-cta .text-link-light:hover {
  background: rgba(128, 25, 21, .07);
}

/* The final CTA already provides separation; avoid an additional empty band. */
.page-room .site-footer,
.page-region .site-footer { margin-top: 0; }

/* Warm translucent Booking.com badge, matching the photographic hero. */
.hero-rating-badge {
  border-color: rgba(255, 255, 255, .42);
  border-radius: 10px;
  background: rgba(221, 214, 204, .82);
  box-shadow: 0 10px 28px rgba(31, 20, 12, .16);
  backdrop-filter: blur(14px) saturate(110%);
}

@media (max-width: 1120px) {
  .brand img,
  .page-home .brand img,
  .site-header.is-scrolled .brand img,
  .page-home .site-header.is-scrolled .brand img {
    bottom: 8px;
    height: 84px;
  }
}

@media (max-width: 760px) {
  .brand img,
  .page-home .brand img,
  .site-header.is-scrolled .brand img,
  .page-home .site-header.is-scrolled .brand img {
    bottom: 8px;
    height: 76px;
  }
  :is(.page-home, .page-detail, .page-room, .page-region) .site-header.is-scrolled .brand img {
    bottom: 7px;
    height: 68px;
  }
  .room-detail-page > .detail-cta {
    width: var(--shell);
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto;
    gap: .75rem;
    margin-top: 3rem;
    padding: 1.65rem;
  }
  .room-detail-page > .detail-cta .eyebrow,
  .room-detail-page > .detail-cta h2,
  .room-detail-page > .detail-cta > div {
    grid-row: auto;
    grid-column: 1;
  }
  .room-detail-page > .detail-cta > div {
    width: 100%;
    align-items: stretch;
    flex-direction: column;
    margin-top: .6rem;
  }
  .room-detail-page > .detail-cta .button-light,
  .room-detail-page > .detail-cta .text-link-light { width: 100%; white-space: normal; }
  .hero-rating-badge { border-radius: 8px; }
}

/* Utility contacts must remain readable without competing with the main navigation. */
.header-utility > a,
.header-utility > a:last-child {
  font-size: .76rem;
  font-weight: 650;
  letter-spacing: .025em;
}
.header-social { gap: .55rem; }
.header-social a {
  width: 28px;
  height: 28px;
}
.header-social .icon {
  width: 15px;
  height: 15px;
}

/* The availability action is the square end-cap of every booking form. */
.button.booking-submit { border-radius: 0 !important; }

/* Price notes float above the table instead of being clipped by its scroll frame. */
.price-room-title .price-tooltip {
  position: fixed;
  z-index: 120;
  top: var(--price-tooltip-top, 50%);
  right: auto;
  bottom: auto;
  left: var(--price-tooltip-left, 50%);
  width: min(310px, calc(100vw - 32px));
  transform: translateY(-4px);
}
.price-table-wrap tbody tr.price-room-main:not(:first-child) td { border-top: 0; }

@media (max-width: 760px) {
  .header-utility > a,
  .header-utility > a:last-child { font-size: .7rem; }
  .header-social { gap: .45rem; }
  .header-social a { width: 26px; height: 26px; }
  .header-social .icon { width: 14px; height: 14px; }
  .price-table-wrap table,
  .price-table-wrap tbody { background: transparent; }
  .price-room-title .price-tooltip {
    top: auto;
    right: 14px;
    bottom: 20px;
    left: 14px;
    width: auto;
  }
}

/* Final utility geometry after the historical responsive layers. */
.header-utility {
  height: 40px;
  padding-top: 5px;
  padding-bottom: 5px;
}
:is(.page-home, .page-detail, .page-room, .page-region) .hero-rating-badge { top: 158px; }
:is(.page-detail, .page-room, .page-region) .page-navigation { top: 150px; }
:is(.page-detail, .page-room, .page-region) .hero-rating-badge { top: 218px; }
:is(.page-home, .page-detail, .page-room, .page-region) .site-header:has(.site-navigation.is-open) .language-open { color: var(--ink); }

@media (max-width: 760px) {
  .header-utility { height: 38px; padding-top: 5px; padding-bottom: 5px; }
  :is(.page-home, .page-detail, .page-room, .page-region) .hero-rating-badge { top: 136px; }
  :is(.page-detail, .page-room, .page-region) .page-navigation { top: 130px; }
  :is(.page-detail, .page-room, .page-region) .hero-rating-badge { top: 213px; }
}

.legacy-page:has(.legacy-offer-media) .legacy-header {
  width: 100%;
  max-width: 1120px;
}
.legacy-page:has(.legacy-offer-media) .legacy-header h1 {
  max-width: 18ch;
  font-size: clamp(2.7rem, 5vw, 5.2rem);
}
.legacy-page:has(.legacy-offer-media) .offer-inquiry-context .button {
  padding: 1rem 1.6rem;
  font-size: .78rem;
}

/* Room photography is one clean, left-aligned composition without letterboxing. */
.room-detail-gallery > .section-heading {
  display: block;
  width: 100%;
  margin-bottom: clamp(1.6rem, 3vw, 2.5rem);
  text-align: left;
}
.room-detail-gallery > .section-heading > div:first-child,
.room-detail-gallery > .section-heading h2 { width: 100%; max-width: none; }
.room-detail-grid {
  grid-template-columns: 2fr 1fr 1fr;
  grid-auto-rows: 220px;
  gap: 16px;
}
.room-detail-grid button,
.room-detail-grid .room-detail-main {
  width: 100%;
  height: 100%;
  min-height: 0;
  overflow: hidden;
  border: 0;
  border-radius: var(--radius);
  background: var(--cream-deep);
  aspect-ratio: auto;
}
.room-detail-grid .room-detail-main {
  grid-row: span 2;
  grid-column: span 2;
  aspect-ratio: auto;
}
.room-detail-grid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .35s ease;
}
.room-detail-grid button:hover img { transform: scale(1.025); }

/* Compact, secondary calculator shortcut. */
.price-calculator-jump {
  width: auto;
  min-height: 0;
  justify-content: flex-start;
  border: 0;
  border-bottom: 1px solid rgba(128,25,21,.32);
  border-radius: 0;
  padding: .25rem 0;
  background: transparent;
  color: var(--ink-soft);
  font-size: .69rem;
  letter-spacing: .045em;
  text-transform: uppercase;
}
.price-calculator-jump:hover {
  border-color: var(--brand-primary);
  background: transparent;
  color: var(--brand-primary);
}

/* The availability introduction is a light card, so its copy must be dark. */
.offer-highlight > div:first-child { color: var(--ink); }
.offer-highlight > div:first-child .eyebrow { color: var(--brand-primary); }
.offer-highlight > div:first-child h2 { color: var(--ink); }
.offer-highlight .offers-index-link { margin-top: 1.6rem; }
.text-link { border-bottom: 0; }
.offer-highlight-media { border-radius: var(--radius) var(--radius) 0 0; }

/* Rating sits unobtrusively in the free lower-left area of every photo hero. */
.hero-rating-badge,
:is(.page-home, .page-detail, .page-room, .page-region) .hero-rating-badge {
  z-index: 8;
  top: auto !important;
  right: auto;
  bottom: 70px;
  left: max(24px, calc((100vw - 1320px) / 2));
  border: none;
  background: rgb(217 194 166);
  box-shadow: none;
}
.page-home .hero-rating-badge { bottom: 90px; }
:is(.page-home, .page-detail, .page-room, .page-region) .site-header { border-bottom: 0; }

@media (min-width: 1121px) {
  .button.booking-submit { border-radius: 0 7px 0 0 !important; }
}

@media (max-width: 1120px) and (min-width: 761px) {
  .button.booking-submit { border-radius: 0 0 0 7px !important; }
  .room-detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 260px; }
  .room-detail-grid .room-detail-main { height: auto; grid-row: auto; grid-column: 1 / -1; aspect-ratio: 16 / 9; }
}

@media (max-width: 760px) {
  .room-detail-gallery > .section-heading { width: var(--shell); }
  .room-detail-grid {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    padding: 0 14px 1rem;
  }
  .room-detail-grid button,
  .room-detail-grid .room-detail-main {
    width: 86vw;
    height: auto;
    min-width: 86vw;
    aspect-ratio: 4 / 3;
    scroll-snap-align: center;
  }
  .price-calculator-jump { width: auto; min-height: 0; }
  .hero-rating-badge,
  :is(.page-home, .page-detail, .page-room, .page-region) .hero-rating-badge {
    right: auto;
    bottom: 33px;
    left: 12px;
  }
}

/* Cascade lock: these decisions must win over the retained historical layers above. */
.header-main,
.header-utility,
:is(.page-home, .page-detail, .page-room, .page-region) .header-main,
:is(.page-home, .page-detail, .page-room, .page-region) .header-utility { border-bottom: 0 !important; }
.room-detail-page > .detail-cta,
.detail-page > .detail-cta,
.region-page > .detail-cta { margin-bottom: clamp(3rem, 6vw, 5.5rem); }
.legacy-page:has(.legacy-offer-media) .offer-inquiry-context {
  width: 100%;
  max-width: none;
  margin-top: clamp(2.5rem, 5vw, 4.5rem);
  padding: clamp(2rem, 4vw, 3.5rem);
}
.legacy-page:has(.legacy-offer-media) .offer-inquiry-context strong { font-size: clamp(1.8rem, 3vw, 3rem); }
.legacy-page:has(.legacy-offer-media) .offer-inquiry-context p { font-size: 1.05rem; }
.legacy-content-faq > h5 {
  margin: clamp(2.5rem, 5vw, 4rem) 0 1rem;
  color: var(--brand-primary);
  font-family: var(--serif);
  font-size: clamp(1.5rem, 2.5vw, 2.2rem);
  letter-spacing: 0;
}

/* Local brand artwork: no second circle around the official Pinterest mark. */
.header-social .header-social-pinterest {
  overflow: visible;
  border: 0;
  background: transparent;
}
.header-social-pinterest img { display: block; width: 26px; height: 26px; }

/* Price notes live at body level, beyond every table and row clipping context. */
.price-tooltip.price-tooltip-portal {
  position: fixed !important;
  z-index: 240 !important;
  top: var(--price-tooltip-top, 50%);
  right: auto;
  bottom: auto;
  left: var(--price-tooltip-left, 50%);
  display: block;
  width: min(310px, calc(100vw - 32px));
  opacity: 0;
  pointer-events: none;
  transform: translateY(-4px);
}
.price-tooltip.price-tooltip-portal.is-visible { opacity: 1; transform: none; }
.price-calculator-check[hidden] { display: none !important; }
.price-calculator-result dd { text-align: right; white-space: normal; }

/* A quieter offer article, aligned to the same shell as its image and action. */
.legacy-page:has(.legacy-offer-media) .legacy-offer-media {
  border-radius: var(--radius);
  box-shadow: 0 18px 48px rgba(66,44,29,.08);
}
.legacy-page:has(.legacy-offer-media) .legacy-content {
  width: 100%;
  max-width: none;
  border: 1px solid rgba(91,65,45,.12);
  border-radius: var(--radius);
  padding: clamp(1.5rem, 4vw, 3.5rem);
  background: var(--white);
  box-shadow: 0 12px 38px rgba(66,44,29,.045);
}
.legacy-page:has(.legacy-offer-media) .legacy-content > p,
.legacy-page:has(.legacy-offer-media) .legacy-content > ul { max-width: 920px; }
.legacy-page:has(.legacy-offer-media) .legacy-content > p:first-of-type {
  max-width: 980px;
  margin-bottom: 1.6rem;
  color: var(--ink);
  font-size: clamp(1.25rem, 2vw, 1.65rem);
  line-height: 1.45;
}
.legacy-page:has(.legacy-offer-media) .legacy-content > p > strong:only-child {
  color: var(--brand-primary);
  font-size: 1.04em;
}
.legacy-page:has(.legacy-offer-media) .legacy-content ul {
  border-radius: 10px;
  padding: 1.25rem 1.25rem 1.25rem 2.6rem;
  background: #faf6ef;
}
.legacy-page:has(.legacy-offer-media) .offer-inquiry-context {
  gap: clamp(1.5rem, 4vw, 3rem);
  border: 1px solid rgba(91,65,45,.13);
  border-radius: var(--radius);
  background: var(--white);
  box-shadow: none;
}
.legacy-page:has(.legacy-offer-media) .offer-inquiry-context strong {
  color: var(--ink);
  font-size: clamp(1.55rem, 2.4vw, 2.2rem);
}
.legacy-page:has(.legacy-offer-media) .offer-inquiry-context .button {
  border-color: var(--brand-primary);
  background: var(--brand-primary);
}

/* Contact essentials first, travel instructions second. */
.contact-quick {
  display: grid;
  width: 100%;
  grid-template-columns: minmax(220px, .7fr) minmax(0, 1.3fr);
  gap: clamp(2rem, 5vw, 5rem);
  margin-bottom: clamp(3rem, 6vw, 5rem);
  border-radius: var(--radius);
  padding: clamp(1.5rem, 4vw, 3.5rem);
  background: #eadcca;
}
.contact-quick-heading h2 { max-width: 10ch; font-size: clamp(2rem, 3vw, 3.2rem); }
.contact-quick-details { display: grid; align-content: start; }
.contact-quick-details a {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 1rem;
  align-items: center;
  border-bottom: 1px solid rgba(91,65,45,.15);
  padding: 1rem 0;
  color: var(--ink);
  text-decoration: none;
}
.contact-quick-details .icon { width: 24px; height: 24px; color: var(--brand-primary); }
.contact-quick-details span { display: grid; gap: .22rem; }
.contact-quick-details small { color: var(--ink-soft); font-size: .65rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.contact-quick-details strong { overflow-wrap: anywhere; font-size: 1rem; }
.contact-route-actions { display: flex; grid-column: 1 / -1; gap: .7rem; flex-wrap: wrap; }
.legacy-page-contact .legacy-content {
  width: 100%;
  max-width: none;
  border: 0;
  padding: clamp(1.5rem, 4vw, 3.5rem);
  background: var(--white);
}
.legacy-page-contact .legacy-content > h3:first-child {
  max-width: 900px;
  margin-top: 0;
  font-size: clamp(2rem, 3.5vw, 3.5rem);
}
.legacy-page-contact .legacy-content h2 { font-size: clamp(1.65rem, 2.5vw, 2.4rem); }
.legacy-page-contact .legacy-content h4 {
  margin: .45rem 0 clamp(1.75rem, 3vw, 2.5rem);
  color: var(--ink-soft);
  font-size: 1.05rem;
  font-weight: 500;
  line-height: 1.55;
}

/* Service hub: clearer hierarchy and more useful destinations. */
.service-page { padding-bottom: clamp(5rem, 9vw, 9rem); }
.service-hero { max-width: none; text-align: left; }
.service-hero h1 { max-width: 14ch; }
.service-hero .lead { max-width: 820px; margin-inline: 0; }
.service-cards { gap: clamp(.8rem, 1.5vw, 1.25rem); }
.service-cards a {
  min-height: 360px;
  grid-template-rows: auto auto 1fr auto;
  border: 0;
  border-radius: var(--radius);
  background: var(--white);
  box-shadow: 0 14px 40px rgba(66,44,29,.055);
}
.service-cards a small { color: #b49b7d; font-size: .66rem; font-weight: 800; letter-spacing: .12em; }
.service-cards h2 { max-width: 10ch; margin-top: auto; margin-bottom: 1.4rem; }
.service-cards a > strong { color: var(--brand-primary); font-size: .66rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.service-links {
  grid-template-columns: minmax(250px, .8fr) minmax(0, 1.2fr);
  border: 0;
  border-radius: var(--radius);
  padding: clamp(2rem, 5vw, 4rem);
  background: #eadcca;
}
.service-links > div p:last-child { max-width: 500px; color: var(--ink-soft); }
.service-links nav a { border-color: rgba(91,65,45,.17); font-size: 1rem; }

/* Legal content follows the main grid and keeps headings larger than body text. */
.legal-page .content-page-header,
.privacy-page .content-page-header { width: 100%; max-width: 1080px; }
.legal-copy {
  width: 100%;
  max-width: none;
  overflow: hidden;
  border: 0;
  border-radius: var(--radius);
  padding: clamp(1.5rem, 4vw, 4rem);
  box-shadow: 0 14px 42px rgba(66,44,29,.05);
}
.legal-copy > p,
.legal-copy > ul,
.legal-copy > ol { width: 100%; max-width: 960px; margin-right: auto; margin-left: auto; }
.legal-copy h2,
.legal-copy h3,
.legal-copy h4,
.legal-copy h5,
.legal-copy h6 { width: 100%; max-width: 960px; margin-right: auto; margin-left: auto; overflow-wrap: anywhere; }
.legal-copy h2 { font-size: clamp(2rem, 3.2vw, 3.2rem); }
.legal-copy h3 { font-size: clamp(1.7rem, 2.7vw, 2.55rem); }
.legal-copy h4 { font-size: clamp(1.35rem, 2vw, 1.85rem); line-height: 1.25; }
.legal-copy p,
.legal-copy li { font-size: 1rem; line-height: 1.72; }
.privacy-page .legal-cards { width: 100%; margin: 0; }
.legacy-page-legal .legacy-header { width: 100%; max-width: 1080px; }
.legacy-page-legal .legacy-content {
  width: 100%;
  max-width: none;
  overflow: hidden;
  border: 0;
  border-radius: var(--radius);
  padding: clamp(1.5rem, 4vw, 4rem);
  background: var(--white);
  box-shadow: 0 14px 42px rgba(66,44,29,.05);
}
.legacy-page-legal .legacy-content > p,
.legacy-page-legal .legacy-content > ul,
.legacy-page-legal .legacy-content > ol,
.legacy-page-legal .legacy-content > h2,
.legacy-page-legal .legacy-content > h3,
.legacy-page-legal .legacy-content > h4 { width: 100%; max-width: 960px; margin-right: auto; margin-left: auto; }
.legacy-page-legal .legacy-content h2 { font-size: clamp(2rem, 3.2vw, 3.2rem); }
.legacy-page-legal .legacy-content h3 { font-size: clamp(1.7rem, 2.7vw, 2.55rem); }
.legacy-page-legal .legacy-content h4 {
  margin-top: clamp(2.5rem, 5vw, 4.5rem);
  margin-bottom: 1rem;
  color: var(--ink);
  font-size: clamp(1.35rem, 2vw, 1.85rem);
  line-height: 1.25;
  letter-spacing: 0;
  overflow-wrap: anywhere;
}
.legacy-page-legal .legacy-content p,
.legacy-page-legal .legacy-content li { font-size: 1rem; line-height: 1.72; }

/* Footer enquiry is warm and solid rather than disappearing as a white control. */
.site-footer .footer-inquiry {
  border-color: #d9c2a6;
  background: #d9c2a6;
  color: #4c1d17;
}
.site-footer .footer-inquiry:hover { border-color: #fff0dc; background: #fff0dc; color: #4c1d17; }

/* Requested rating placement and warmer opaque background. */
.hero-rating-badge,
:is(.page-home, .page-detail, .page-room, .page-region) .hero-rating-badge { background: rgb(252 243 232); }

@media (max-width: 900px) {
  .contact-quick,
  .service-links { grid-template-columns: 1fr; gap: 2rem; }
  .service-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .hero-actions { gap: .55rem; }
  .booking-actions { gap: 0; }
  .booking-submit,
  .booking-inquiry { min-height: 48px; }
  .hero-rating-badge,
  :is(.page-home, .page-detail, .page-room, .page-region) .hero-rating-badge {
    right: auto;
    bottom: 51px;
    left: 7px;
  }
  .price-tooltip.price-tooltip-portal {
    top: auto;
    right: 10px;
    bottom: 18px;
    left: 10px;
    width: auto;
  }
  .legacy-page:has(.legacy-offer-media) .legacy-content { padding: 1.25rem; }
  .legacy-page:has(.legacy-offer-media) .legacy-content ul { padding: 1rem 1rem 1rem 2.25rem; }
  .contact-quick { padding: 1.35rem; }
  .contact-route-actions { display: grid; }
  .contact-route-actions .button { width: 100%; }
  .service-cards { grid-template-columns: 1fr; }
  .service-cards a { min-height: 240px; }
  .service-links { padding: 1.5rem; }
  .legal-copy { border-radius: 10px; padding: 1.25rem; }
}

/* Final homepage ordering and header icon treatment. */
.gift-media {
  overflow: visible;
  background: transparent;
}
.gift-media img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.gift-feature {
  padding-bottom: 0;
  align-items: end;
}
.gift-copy {
  align-self: center;
  padding-bottom: clamp(5rem, 8vw, 8rem);
}
.gift-media {
  align-self: end;
  margin-bottom: 0;
}
.header-social {
  align-items: center;
  gap: .7rem;
  border-radius: 999px;
  padding: .22rem .55rem;
  background: var(--brand-primary);
}
.header-social a,
.header-social .header-social-pinterest {
  width: 26px;
  height: 26px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #fff;
}
.header-social .icon,
.header-social-pinterest img {
  width: 19px;
  height: 19px;
}
:is(.page-home, .page-detail, .page-room, .page-region) .header-social {
  background: rgba(22, 15, 11, .3);
}
:is(.page-home, .page-detail, .page-room, .page-region) .header-social a {
  color: #fff;
}
.room-source-overview header h2,
.room-amenities-section header h2 {
  max-width: none;
}

/* Region guides follow the same clear booking-first rhythm as room pages. */
.region-page-hero > .section-shell { padding-bottom: clamp(6.5rem, 9vw, 8rem); }
.region-page-hero > .section-shell > p:last-of-type {
  width: min(100%, 720px);
  margin-top: 1.25rem;
  color: rgba(255,255,255,.82);
  font-size: clamp(1rem, 1.35vw, 1.2rem);
  line-height: 1.65;
}
.region-page > .detail-booking { margin-top: -32px; }
.region-guide-intro {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr);
  gap: clamp(3rem, 7vw, 7rem);
  align-items: end;
  padding-block: clamp(5rem, 9vw, 8rem) clamp(3rem, 5vw, 5rem);
}
.region-guide-intro h2 { width: min(100%, 780px); }
.region-guide-intro .lead { max-width: 760px; margin-top: 1.5rem; color: var(--ink-soft); }
.region-guide-intro ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  list-style: none;
}
.region-guide-intro li {
  min-height: 92px;
  border-top: 1px solid var(--line);
  padding: 1.1rem .8rem 1rem 0;
  color: var(--ink);
  font-size: .82rem;
  font-weight: 720;
  line-height: 1.45;
}
.region-topic-nav { display: flex; gap: .6rem; overflow-x: auto; padding-bottom: 1.4rem; scrollbar-width: thin; }
.region-topic-nav a {
  flex: 0 0 auto;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: .75rem 1rem;
  background: rgba(255,255,255,.72);
  color: var(--ink);
  font-size: .68rem;
  font-weight: 780;
  letter-spacing: .055em;
  text-decoration: none;
  text-transform: uppercase;
}
.region-topic-nav a:hover { border-color: var(--brand-primary); color: var(--brand-primary); }
.region-topic-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.5rem); }
.region-topic-grid article {
  scroll-margin-top: 130px;
  overflow: hidden;
  border-radius: var(--radius);
  background: var(--white);
  box-shadow: 0 16px 42px rgba(66,44,29,.07);
}
.region-topic-grid article.region-topic-featured {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: minmax(0, 1.3fr) minmax(320px, .7fr);
}
.region-topic-grid button { position: relative; display: block; width: 100%; overflow: hidden; aspect-ratio: 16 / 10; border: 0; padding: 0; background: #ddd4c9; }
.region-topic-featured button { height: 100%; aspect-ratio: 16 / 9; }
.region-topic-grid button img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.region-topic-grid button:hover img { transform: scale(1.02); }
.region-topic-grid button > span {
  position: absolute;
  top: .9rem;
  right: .9rem;
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border-radius: 50%;
  background: rgba(255,255,255,.9);
  color: var(--brand-primary);
  font-size: 1.25rem;
}
.region-topic-grid article > div { padding: clamp(1.35rem, 3vw, 2.5rem); }
.region-topic-grid article > div > span { color: var(--accent); font-size: .67rem; font-weight: 800; letter-spacing: .08em; }
.region-topic-grid h2 { margin-top: .45rem; font-size: clamp(1.55rem, 2.5vw, 2.65rem); }
.region-topic-grid p { margin-top: 1rem; color: var(--ink-soft); line-height: 1.68; }
.region-current {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(320px, .9fr);
  gap: clamp(2.5rem, 7vw, 7rem);
  margin-block: clamp(5rem, 9vw, 8rem);
  border-radius: var(--radius);
  padding: clamp(2rem, 5vw, 4.5rem);
  background: #eadcca;
}
.region-current > div p:last-child { max-width: 720px; margin-top: 1.4rem; color: var(--ink-soft); font-size: 1.05rem; line-height: 1.75; }
.region-current aside { border-left: 1px solid rgba(91,65,45,.18); padding-left: clamp(1.5rem, 4vw, 4rem); }
.region-current aside h3 { font-size: clamp(1.35rem, 2vw, 1.8rem); }
.region-current aside ul { margin: 1.25rem 0 1.5rem; padding-left: 1.15rem; }
.region-current aside li { margin-top: .75rem; color: var(--ink-soft); line-height: 1.55; }
.region-gallery { padding-bottom: clamp(2rem, 4vw, 4rem); }
.region-gallery header { margin-bottom: 2rem; }
.region-gallery > div { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 190px; gap: .75rem; }
.region-gallery button { overflow: hidden; border: 0; border-radius: 10px; padding: 0; background: #ddd4c9; }
.region-gallery button:first-child { grid-row: span 2; grid-column: span 2; }
.region-gallery button:nth-child(4) { grid-column: span 2; }
.region-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.region-gallery button:hover img { transform: scale(1.025); }

.region-page > .detail-cta {
  display: grid;
  width: var(--shell);
  min-height: 0;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  gap: .65rem clamp(2rem, 5vw, 5rem);
  align-items: center;
  margin: clamp(3.5rem, 7vw, 6rem) auto 0;
  border: 1px solid rgba(106,76,52,.16);
  border-radius: var(--radius);
  padding: clamp(2rem, 4.5vw, 3.75rem);
  background: #eadcca;
  box-shadow: 0 18px 46px rgba(66,44,29,.08);
  color: var(--ink);
  text-align: left;
}
.region-page > .detail-cta .eyebrow,
.region-page > .detail-cta h2 { grid-column: 1; color: var(--ink); }
.region-page > .detail-cta .eyebrow { margin-bottom: 0; color: var(--brand-primary); }
.region-page > .detail-cta h2 { max-width: 690px; font-size: clamp(1.75rem, 2.65vw, 2.7rem); }
.region-page > .detail-cta > div { display: flex; grid-row: 1 / 3; grid-column: 2; gap: .7rem; margin-top: 0; }
.region-page > .detail-cta :is(.button-light, .text-link-light) {
  display: inline-flex;
  min-height: 52px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--brand-primary);
  border-radius: 8px;
  padding: .9rem 1.35rem;
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .09em;
  text-decoration: none;
  text-transform: uppercase;
  white-space: nowrap;
}
.region-page > .detail-cta .button-light { background: var(--brand-primary); color: #fff; }
.region-page > .detail-cta .text-link-light { background: transparent; color: var(--brand-primary); }

@media (max-width: 900px) {
  .region-guide-intro,
  .region-current { grid-template-columns: 1fr; }
  .region-current aside { border-top: 1px solid rgba(91,65,45,.18); border-left: 0; padding-top: 2rem; padding-left: 0; }
  .region-topic-grid article.region-topic-featured { grid-template-columns: 1fr; }
  .region-gallery > div { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 170px; }
}

@media (max-width: 760px) {
  .region-page > .detail-booking { width: calc(100% - 16px); margin-top: -24px; }
  .region-guide-intro { gap: 2.5rem; padding-top: 4.5rem; }
  .region-guide-intro ul { grid-template-columns: 1fr; }
  .region-guide-intro li { min-height: 0; }
  .region-topic-nav { width: 100%; padding-right: 14px; padding-left: 14px; }
  .region-topic-grid { grid-template-columns: 1fr; }
  .region-topic-grid article.region-topic-featured { grid-column: auto; }
  .region-topic-grid button,
  .region-topic-featured button { height: auto; aspect-ratio: 4 / 3; }
  .region-current { border-radius: 10px; padding: 1.5rem; }
  .region-gallery { width: 100%; }
  .region-gallery header { width: var(--shell); margin-right: auto; margin-left: auto; }
  .region-gallery > div { gap: .45rem; grid-auto-rows: 135px; }
  .region-gallery button { border-radius: 6px; }
  .region-page > .detail-cta { grid-template-columns: 1fr; grid-template-rows: auto; gap: .75rem; padding: 1.65rem; }
  .region-page > .detail-cta .eyebrow,
  .region-page > .detail-cta h2,
  .region-page > .detail-cta > div { grid-row: auto; grid-column: 1; }
  .region-page > .detail-cta > div { width: 100%; flex-direction: column; margin-top: .6rem; }
  .region-page > .detail-cta :is(.button-light, .text-link-light) { width: 100%; white-space: normal; }
}

/* Final visual calibration for the voucher and regional photography. */
.gift-feature {
  max-width: 1320px;
  grid-template-columns: minmax(320px, .8fr) minmax(0, 1.2fr);
  gap: clamp(2.5rem, 5vw, 5rem);
}
.gift-media {
  width: min(100%, 680px);
  max-width: none;
}
.gift-media img { transform-origin: right bottom; }

.page-home .region-media picture,
.page-home .region-media img {
  display: block;
  width: 100%;
  height: 100%;
}
.page-home .region-media img {
  object-fit: cover;
  object-position: 50% 50% !important;
}
.region-page-hero .eyebrow {
  color: #eee !important;
  text-shadow: 0 1px 12px rgba(0,0,0,.28);
}

@media (min-width: 1121px) {
  .gift-media img { transform: scale(1.14); }
}

@media (max-width: 1120px) {
  .gift-feature { grid-template-columns: 1fr; }
  .gift-media { width: min(100%, 540px); }
}

/* Activity guides extend the seasonal region hubs. Their body also carries
   .page-region so header, breadcrumbs and rating placement stay identical. */
.activity-hero {
  position: relative;
  min-height: 690px;
  overflow: hidden;
  color: #fff;
}
.activity-hero > img,
.activity-hero-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.activity-hero > img { object-fit: cover; object-position: center; }
.activity-hero-shade { background: linear-gradient(90deg, rgba(15,14,12,.72), rgba(15,14,12,.25) 62%, rgba(15,14,12,.08)), linear-gradient(0deg, rgba(15,14,12,.3), transparent 45%); }
.activity-hero-copy {
  position: relative;
  z-index: 2;
  display: flex;
  min-height: 690px;
  flex-direction: column;
  justify-content: flex-end;
  padding-bottom: clamp(6.5rem, 9vw, 8rem);
}
.activity-hero-copy .eyebrow { color: #eee; text-shadow: 0 1px 12px rgba(0,0,0,.3); }
.activity-hero-copy h1 { max-width: 15ch; margin: .5rem 0 1.25rem; font-size: clamp(2.6rem, 4.5vw, 4.8rem); line-height: .98; }
.activity-hero-copy > p:last-of-type { max-width: 700px; margin: 0; color: rgba(255,255,255,.88); font-size: clamp(1rem, 1.4vw, 1.25rem); line-height: 1.6; }
.activity-page > .detail-booking { position: relative; z-index: 5; margin-top: -52px; }
.activity-intro {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr);
  gap: clamp(3rem, 7vw, 7rem);
  align-items: start;
  padding-top: clamp(5rem, 8vw, 8rem);
  padding-bottom: clamp(4rem, 7vw, 7rem);
}
.activity-lead { max-width: 820px; margin: 1rem 0 0; font-family: var(--font-display); font-size: clamp(1.55rem, 2.6vw, 2.65rem); line-height: 1.22; }
.activity-intro ul { display: grid; gap: .7rem; margin: 0; padding: 0; list-style: none; }
.activity-intro li { border-radius: 10px; padding: 1rem 1.2rem; background: #f2e9dd; font-size: .86rem; font-weight: 750; }

.activity-content { display: grid; gap: 0; padding-bottom: clamp(5rem, 8vw, 8rem); }
.activity-content article { display: grid; grid-template-columns: 70px minmax(0, 1fr); gap: clamp(1rem, 3vw, 3rem); border-top: 1px solid var(--line); padding: clamp(2rem, 4vw, 3.5rem) 0; }
.activity-content article:last-child { border-bottom: 1px solid var(--line); }
.activity-content article > span { color: var(--accent); font-size: .72rem; font-weight: 850; letter-spacing: .12em; }
.activity-content article > div { display: grid; grid-template-columns: minmax(240px, .45fr) minmax(0, .9fr); gap: clamp(2rem, 7vw, 7rem); }
.activity-content h2 { margin: 0; font-size: clamp(1.65rem, 2.6vw, 2.8rem); }
.activity-content p { max-width: 760px; margin: 0; color: var(--ink-soft); font-size: 1rem; line-height: 1.8; }

.activity-map {
  display: grid;
  overflow: hidden;
  grid-template-columns: minmax(0, 1fr) minmax(340px, .82fr);
  border-radius: 14px;
  padding: 0;
  background: #2b352f;
  color: #fff;
}
.activity-map > div:last-child { padding: clamp(2rem, 5vw, 5rem); }
.activity-map h2 { margin: .5rem 0 1rem; font-size: clamp(1.8rem, 3vw, 3.1rem); }
.activity-map p { color: rgba(255,255,255,.77); line-height: 1.7; }
.activity-map .eyebrow { color: #e6d4bd; }
.activity-map .button { margin-top: 1rem; background: #f8eee1; color: var(--ink); }
.activity-map-warning { border-left: 2px solid #d9c2a6; padding-left: 1rem; font-size: .78rem; }
.activity-map-visual { position: relative; min-height: 430px; overflow: hidden; background: #65756a; }
.activity-map-visual::after { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(19,25,21,.02) 35%, rgba(19,25,21,.72)); content: ""; }
.activity-map-visual > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; filter: saturate(.82) contrast(.96); transform: scale(1.015); }
.activity-map-card { position: absolute; z-index: 2; right: 24px; bottom: 24px; left: 24px; display: flex; align-items: center; gap: 1rem; border: 1px solid rgba(255,255,255,.3); border-radius: 12px; padding: 1rem 1.1rem; background: rgba(30,35,31,.66); color: #fff; box-shadow: 0 14px 36px rgba(0,0,0,.18); backdrop-filter: blur(12px); }
.activity-map-pin { flex: 0 0 auto; width: 46px; height: 46px; padding: 11px; border-radius: 50%; background: var(--accent); color: #fff; }
.activity-map-card > span { display: grid; gap: .2rem; min-width: 0; }
.activity-map-card strong { overflow: hidden; font-size: .94rem; text-overflow: ellipsis; white-space: nowrap; }
.activity-map-card small { color: rgba(255,255,255,.72); font-size: .72rem; letter-spacing: .04em; }

.activity-resources { display: grid; grid-template-columns: minmax(260px, .65fr) minmax(0, 1.35fr); gap: clamp(2rem, 7vw, 7rem); padding-top: clamp(5rem, 8vw, 8rem); padding-bottom: clamp(5rem, 8vw, 8rem); }
.activity-resources header h2 { margin-top: .55rem; font-size: clamp(1.7rem, 2.8vw, 3rem); }
.activity-resources > div { display: grid; align-content: start; }
.activity-resources a { display: flex; justify-content: space-between; gap: 1rem; border-top: 1px solid var(--line); padding: 1.35rem .25rem; color: var(--ink); text-decoration: none; }
.activity-resources a:last-child { border-bottom: 1px solid var(--line); }
.activity-resources a:hover { color: var(--accent); }

.activity-related { padding-bottom: clamp(5rem, 8vw, 8rem); }
.activity-related header { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 2rem; }
.activity-related header h2 { margin: 0; }
.activity-related > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.activity-related a { overflow: hidden; border-radius: 12px; background: #f2e9dd; color: var(--ink); text-decoration: none; }
.activity-related img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; transition: transform .35s ease; }
.activity-related a:hover img { transform: scale(1.025); }
.activity-related a span { display: flex; justify-content: space-between; gap: 1rem; padding: 1.15rem 1.25rem; font-weight: 800; }
.activity-page,
.region-page { padding-bottom: clamp(3rem, 6vw, 6rem); }
.activity-page > .detail-cta,
.region-page > .detail-cta { margin-bottom: 0; }

.wellness-overview { padding-block: clamp(5rem, 8vw, 8rem); }
.wellness-overview > header { display: grid; grid-template-columns: minmax(260px, .8fr) minmax(0, 1.2fr); column-gap: clamp(2rem, 7vw, 7rem); align-items: end; }
.wellness-overview > header .eyebrow { grid-column: 1 / -1; }
.wellness-overview > header h2 { margin: .5rem 0 0; font-size: clamp(2rem, 3.8vw, 4rem); }
.wellness-overview > header > p:last-child { max-width: 700px; margin: 0; color: var(--ink-soft); line-height: 1.75; }
.wellness-overview > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-top: clamp(2.5rem, 5vw, 5rem); }
.wellness-overview article { border-radius: 12px; padding: clamp(1.4rem, 3vw, 2.3rem); background: #f2e9dd; }
.wellness-overview article > span { color: var(--accent); font-size: .7rem; font-weight: 850; letter-spacing: .12em; }
.wellness-overview h3 { margin: 1.6rem 0 .8rem; font-size: clamp(1.25rem, 1.8vw, 1.7rem); }
.wellness-overview article p { margin: 0; color: var(--ink-soft); font-size: .9rem; line-height: 1.7; }
.wellness-gallery { padding-bottom: clamp(5rem, 8vw, 8rem); }
.wellness-gallery header { margin-bottom: 2rem; }
.wellness-gallery h2 { margin: .5rem 0 0; font-size: clamp(2rem, 3.5vw, 3.6rem); }
.wellness-gallery > div { display: grid; grid-template-columns: 1.2fr .8fr .8fr; grid-auto-rows: 245px; gap: 12px; }
.wellness-gallery button { position: relative; overflow: hidden; border: 0; border-radius: 12px; padding: 0; background: #ddd1c2; color: #fff; cursor: zoom-in; }
.wellness-gallery button:nth-child(1) { grid-row: 1 / 3; grid-column: 1; }
.wellness-gallery button:nth-child(2) { grid-row: 1; grid-column: 2; }
.wellness-gallery button:nth-child(3) { grid-row: 1; grid-column: 3; }
.wellness-gallery button:nth-child(4) { grid-row: 2; grid-column: 2; }
.wellness-gallery button:nth-child(5) { grid-row: 2; grid-column: 3; }
.wellness-gallery button:nth-child(6) { grid-row: 3; grid-column: 1 / 4; }
.wellness-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.wellness-gallery button:hover img { transform: scale(1.025); }
.wellness-gallery button > span { position: absolute; right: 0; bottom: 0; left: 0; padding: 2.2rem 1rem .8rem; background: linear-gradient(transparent, rgba(18,15,12,.68)); font-size: .74rem; font-weight: 760; text-align: left; }

@media (max-width: 1120px) {
  .activity-intro { grid-template-columns: 1fr; }
  .activity-intro ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .activity-map { grid-template-columns: 1fr; }
  .activity-map-visual { min-height: 300px; }
}

@media (max-width: 760px) {
  .activity-hero,
  .activity-hero-copy { min-height: 610px; }
  .activity-hero-copy { padding-bottom: 6.25rem; }
  .activity-hero-copy h1 { font-size: clamp(2.2rem, 11vw, 3.25rem); }
  .activity-page > .detail-booking { width: calc(100% - 16px); margin-top: -24px; }
  .activity-intro { gap: 2rem; padding-top: 4.5rem; }
  .activity-intro ul { grid-template-columns: 1fr; }
  .activity-content article { grid-template-columns: 38px minmax(0, 1fr); }
  .activity-content article > div { grid-template-columns: 1fr; gap: 1rem; }
  .activity-map { width: calc(100% - 28px); border-radius: 10px; }
  .activity-map-visual { min-height: 230px; }
  .activity-map > div:last-child { padding: 1.6rem; }
  .activity-map .button { width: 100%; white-space: normal; }
  .activity-resources { grid-template-columns: 1fr; }
  .activity-related header { display: block; }
  .activity-related > div { grid-template-columns: 1fr; }
  .activity-page > .detail-cta { grid-template-columns: 1fr; grid-template-rows: auto; gap: .75rem; padding: 1.65rem; }
  .activity-page > .detail-cta .eyebrow,
  .activity-page > .detail-cta h2,
  .activity-page > .detail-cta > div { grid-row: auto; grid-column: 1; }
  .wellness-overview > header { grid-template-columns: 1fr; gap: 1rem; }
  .wellness-overview > div { grid-template-columns: 1fr; }
  .wellness-gallery { width: calc(100% - 28px); }
  .wellness-gallery > div { grid-template-columns: 1fr 1fr; grid-auto-rows: 180px; gap: 8px; }
  .wellness-gallery button:nth-child(n) { grid-row: auto; grid-column: auto; }
  .wellness-gallery button:nth-child(1) { grid-row: span 2; }
  .wellness-gallery button:nth-child(6) { grid-column: span 2; }
}

/* Shared final CTA: room, editorial and activity pages use one calm card. */
:is(.detail-page, .activity-page) > .detail-cta {
  display: grid;
  width: var(--shell);
  min-height: 0;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  gap: .65rem clamp(2rem, 5vw, 5rem);
  align-items: center;
  margin: clamp(3.5rem, 7vw, 6rem) auto clamp(3rem, 6vw, 6rem);
  border: 1px solid rgba(106,76,52,.16);
  border-radius: var(--radius);
  padding: clamp(2rem, 4.5vw, 3.75rem);
  background: #eadcca;
  box-shadow: 0 18px 46px rgba(66,44,29,.08);
  color: var(--ink);
  text-align: left;
}
:is(.detail-page, .activity-page) > .detail-cta :is(.eyebrow, h2, .restaurant-mark) { grid-column: 1; }
:is(.detail-page, .activity-page) > .detail-cta .eyebrow { margin-bottom: 0; color: var(--brand-primary); }
:is(.detail-page, .activity-page) > .detail-cta h2 { max-width: 690px; color: var(--ink); font-size: clamp(1.75rem, 2.65vw, 2.7rem); }
:is(.detail-page, .activity-page) > .detail-cta .restaurant-mark { width: min(190px, 50%); margin-bottom: .5rem; }
:is(.detail-page, .activity-page) > .detail-cta > div { display: flex; grid-row: 1 / 4; grid-column: 2; gap: .7rem; margin-top: 0; }
:is(.detail-page, .activity-page) > .detail-cta :is(.button-light, .text-link-light) {
  display: inline-flex;
  min-height: 52px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--brand-primary);
  border-radius: 8px;
  padding: .9rem 1.35rem;
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .09em;
  text-decoration: none;
  text-transform: uppercase;
  white-space: nowrap;
}
:is(.detail-page, .activity-page) > .detail-cta .button-light { background: var(--brand-primary); color: #fff; }
:is(.detail-page, .activity-page) > .detail-cta .text-link-light { background: transparent; color: var(--brand-primary); }
.activity-page > .detail-cta { margin-bottom: 0; }

/* Region shortcuts belong to the compact menu, not the desktop navigation. */
.mobile-region-navigation { display: none; }

/* Locally rendered review catalogue and platform switcher. */
.guest-review-tabs { display: flex; gap: .55rem; overflow-x: auto; margin-bottom: 1rem; padding-bottom: .25rem; scrollbar-width: thin; }
.guest-review-tabs button { display: inline-flex; min-height: 42px; align-items: center; gap: .55rem; border: 1px solid var(--line); border-radius: 999px; padding: .65rem 1rem; background: transparent; color: var(--ink-soft); font: inherit; font-size: .73rem; font-weight: 760; white-space: nowrap; cursor: pointer; }
.guest-review-tabs button span { display: grid; min-width: 22px; height: 22px; place-items: center; border-radius: 50%; background: #eee3d6; font-size: .62rem; }
.guest-review-tabs button:is(:hover, .is-active) { border-color: var(--brand-primary); background: var(--brand-primary); color: #fff; }
.guest-review-tabs button:is(:hover, .is-active) span { background: rgba(255,255,255,.18); }
.guest-review-avatar { overflow: hidden; object-fit: cover; }
.guest-reviews-more { display: flex; min-height: 48px; align-items: center; justify-content: center; margin: 1rem auto 0; border: 1px solid var(--brand-primary); border-radius: 8px; padding: .75rem 1.3rem; background: transparent; color: var(--brand-primary); font-size: .7rem; font-weight: 820; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; }
.guest-reviews-more:hover { background: var(--brand-primary); color: #fff; }
.guest-reviews-panel-compact { grid-template-columns: minmax(250px, .58fr) minmax(0, 1.7fr); background: #f3e9dc; box-shadow: none; }
.guest-reviews-panel-compact .guest-review-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.guest-reviews-panel-compact .guest-review-card { background: rgba(255,255,255,.78); }
.guest-reviews-panel-compact .guest-review-card > p { -webkit-line-clamp: 4; }

@media (max-width: 1120px) {
  .guest-reviews-panel-compact { grid-template-columns: 1fr; }
  :is(.page-home, .page-detail, .page-room, .page-region) .site-navigation.is-open {
    background: rgba(251, 243, 232, .99);
    color: var(--ink);
  }
  :is(.page-home, .page-detail, .page-room, .page-region) .site-navigation.is-open > a {
    color: var(--ink) !important;
  }
  .site-navigation .mobile-region-navigation {
    display: grid;
    gap: .7rem;
    margin-top: .7rem;
    border-radius: 8px;
    padding: .9rem;
    background: rgba(128, 25, 21, .055);
  }
  .site-navigation .mobile-region-navigation > a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid rgba(128, 25, 21, .2);
    padding: 0 0 .65rem;
    color: var(--brand-primary) !important;
    font-weight: 820;
  }
  .mobile-region-navigation > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .45rem; }
  .site-navigation .mobile-region-navigation > div > a {
    display: grid;
    min-height: 42px;
    place-items: center;
    border: 1px solid rgba(128, 25, 21, .17);
    border-radius: 6px;
    padding: .45rem .25rem;
    background: rgba(255, 255, 255, .62);
    color: var(--ink) !important;
    font-size: .64rem;
    text-align: center;
  }
}

@media (max-width: 760px) {
  .booking-deck,
  .detail-booking,
  .region-page > .detail-booking,
  .activity-page > .detail-booking {
    width: calc(100% - 24px);
    margin-top: -40px;
  }
  .hero-rating-badge,
  :is(.page-home, .page-detail, .page-room, .page-region) .hero-rating-badge { right: auto; bottom: 50px; left: 12px; }
  :is(.detail-page, .activity-page) > .detail-cta { grid-template-columns: 1fr; grid-template-rows: auto; gap: .75rem; padding: 1.65rem; }
  :is(.detail-page, .activity-page) > .detail-cta :is(.eyebrow, h2, .restaurant-mark, div) { grid-row: auto; grid-column: 1; }
  :is(.detail-page, .activity-page) > .detail-cta > div { width: 100%; flex-direction: column; margin-top: .6rem; }
  :is(.detail-page, .activity-page) > .detail-cta :is(.button-light, .text-link-light) { width: 100%; white-space: normal; }
  .guest-review-tabs { margin-inline: -1rem; padding-inline: 1rem; }
  .guest-reviews-panel-compact .guest-review-list { display: flex; gap: .75rem; overflow-x: auto; margin-inline: -1rem; padding: 0 1rem .7rem; scroll-snap-type: x mandatory; }
  .guest-reviews-panel-compact .guest-review-card { width: 84vw; min-width: 84vw; scroll-snap-align: center; }
}

/* Shared, source-backed room overview for all accommodation categories. */
.room-overview { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:clamp(2rem,4.5vw,5rem); padding-block:clamp(3.5rem,6vw,6rem); }
.room-overview-photo { position:relative; display:block; width:100%; height:100%; min-height:520px; border:0; border-radius:var(--radius); padding:0; overflow:hidden; background:var(--cream-deep); }
.room-overview-photo img { width:100%; height:100%; min-height:520px; object-fit:cover; transition:transform .3s; }
.room-overview-photo:hover img { transform:scale(1.025); }
.room-overview-photo > span { position:absolute; inset-inline-end:16px; bottom:16px; display:grid; place-items:center; width:40px; height:40px; background:var(--white); color:var(--ink); font-size:24px; border-radius:50%; }
.room-overview-copy { min-width:0; }
.room-overview-copy > .eyebrow { margin-bottom:1rem; }
.room-overview-copy h2 { font-size:clamp(1.7rem,2.5vw,2.5rem); line-height:1.15; margin-bottom:1.5rem; }
.room-summary-facts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin:0 0 1.75rem; }
.room-summary-facts > div { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:7px; min-height:124px; padding:17px 6px; border:1px solid rgba(128,25,21,.14); border-radius:var(--radius); background:var(--white); color:var(--ink); text-align:center; }
.room-summary-facts .icon { width:25px; height:25px; margin-bottom:4px; flex:none; color:var(--brand-primary); stroke-width:1.25; }
.room-summary-facts dt { order:2; max-width:100%; color:var(--ink-soft); font-size:.6rem; line-height:1.4; font-weight:600; letter-spacing:.08em; text-transform:uppercase; overflow-wrap:anywhere; }
.room-summary-facts dd { margin:0; color:var(--brand-primary); font-size:1.15rem; line-height:1.25; font-weight:600; white-space:nowrap; }
.room-summary-amenities { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 20px; list-style:none; margin:0 0 2rem; padding:0; }
.room-summary-amenities li { display:flex; align-items:flex-start; gap:12px; padding:0; border:0; font-size:.86rem; color:var(--ink-soft); line-height:1.5; }
.room-summary-amenities .icon { width:25px; height:25px; flex:none; color:var(--brand-primary); stroke-width:1.2; }
.room-overview .room-actions { gap:12px; }
.room-overview .room-actions .button { min-height:44px; padding:.85rem 1rem; font-size:.64rem; }
.room-variant .room-variant-copy { min-width:0; padding:clamp(1.5rem,3vw,3rem); }
.room-variant .room-variant-copy h3 { margin:0 0 1.5rem; font-size:clamp(1.5rem,2.25vw,2.25rem); line-height:1.2; }
.room-variant .room-summary-facts { margin-bottom:1.5rem; }
.room-variant .room-summary-facts,.room-variant .room-summary-amenities { width:100%; }
.room-variant .room-summary-facts > div { min-height:108px; }
.room-variant .room-summary-facts > div { background:var(--cream); }
.room-variant .room-summary-amenities { margin-bottom:1.75rem; gap:12px 16px; }
.room-variant .room-actions { gap:10px; }
.room-variant .room-actions .button { padding-inline:1rem; font-size:.64rem; }
#room-amenities { scroll-margin-top:110px; }
@media(max-width:1100px) and (min-width:901px) {
  .room-variant .room-summary-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .room-variant .room-summary-facts > div { min-height:90px; }
}
@media(max-width:1000px) {
  .room-overview { grid-template-columns:1fr; gap:2rem; }
  .room-overview-photo,.room-overview-photo img { min-height:0; height:auto; aspect-ratio:4/3; }
}
@media(max-width:600px) {
  .room-overview { padding-block:3rem; gap:1.5rem; }
  .room-summary-facts { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .room-summary-facts > div { min-height:105px; }
  .room-summary-facts dt { font-size:.65rem; }
  .room-summary-amenities { gap:14px 12px; }
  .room-summary-amenities li { font-size:.8rem; gap:9px; }
  .room-summary-amenities .icon { width:22px; height:22px; }
  .room-overview .room-actions { align-items:stretch; flex-direction:column; }
  .room-overview .room-actions .button { width:100%; }
}
@media(prefers-reduced-motion:reduce) { .room-overview-photo img { transition:none; } }
.room-source-overview > *, .room-amenities-section > * { min-width:0; }
.room-source-overview h2 { overflow-wrap:anywhere; }
.room-source-copy, .room-overview-copy h2, .room-variants h3,
.detail-page .original-content .rich-copy { overflow-wrap:anywhere; }

/* Public consent and calculator switches retain native checkbox behaviour. */
.inquiry-form .check-label { grid-template-columns: 44px minmax(0,1fr); gap: 14px; align-items: center; font-size: .875rem; line-height: 1.6; }
.inquiry-form .check-label .site-switch { margin: 0; }
input[type=checkbox].site-switch { appearance: none; -webkit-appearance: none; position: relative; flex: 0 0 44px; width: 44px; height: 27px; min-height: 27px; margin: 2px 0 0; padding: 0; border: 0; border-radius: 999px; background: #cfc8bf; cursor: pointer; transition: background .2s; }
input[type=checkbox].site-switch::after { content: ''; position: absolute; top: 3px; left: 3px; width: 21px; height: 21px; border-radius: 50%; background: #fff; box-shadow: 0 2px 4px #0002; transition: transform .2s; }
input[type=checkbox].site-switch:checked { background: var(--burgundy, #801915); }
input[type=checkbox].site-switch:checked::after { transform: translateX(17px); }
input[type=checkbox].site-switch:focus-visible { outline: 2px solid var(--burgundy, #801915); outline-offset: 4px; }
input[type=checkbox].site-switch:disabled { opacity: .5; cursor: default; }
@media(prefers-reduced-motion:reduce){input[type=checkbox].site-switch,input[type=checkbox].site-switch::after{transition:none}}
/* The same readable privacy documents and cards are available in every locale. */
.privacy-page .legal-cards a{min-width:0}
.privacy-page .legal-cards h2{font-size:clamp(1.35rem,2.1vw,2rem);line-height:1.25;overflow-wrap:anywhere;hyphens:auto}
.privacy-page .legal-cards strong>span{display:inline;width:auto;height:auto;font:inherit;color:inherit}
.legal-page .legal-copy{overflow:visible}
.legal-page .legal-copy :is(h2,h3){font-size:clamp(1.3rem,2vw,1.8rem);line-height:1.35;margin-top:2.5rem;margin-bottom:1rem}
.legal-page .legal-copy>:first-child{margin-top:0}
.legal-page .legal-copy :is(p,li,a){overflow-wrap:anywhere}
.legal-back{display:inline-block;margin-top:1rem;color:var(--burgundy);font-size:.875rem;text-underline-offset:4px}
html[dir=rtl] .privacy-page .legal-cards strong>span{display:inline-block;transform:scaleX(-1)}
.legal-page .content-page-header h1{font-size:clamp(1.8rem,5vw,3.6rem);overflow-wrap:anywhere;hyphens:auto}

/* Keep the rating in the text flow so translated hero copy always has breathing room. */
.hero-rating-badge,
:is(.page-home, .page-detail, .page-room, .page-region) .hero-rating-badge {
  position: relative;
  inset: auto !important;
  display: inline-flex;
  width: max-content;
  max-width: 100%;
  flex-shrink: 0;
  align-self: flex-start;
  margin: clamp(1.5rem, 2.5vw, 2rem) 0 0;
}
@media (min-width: 761px) {
  .room-detail-grid--pair {
    grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
    grid-template-rows: clamp(300px, 35vw, 520px);
    grid-auto-rows: auto;
  }
  .room-detail-grid--pair .room-detail-main {
    grid-column: auto;
    grid-row: auto;
    height: 100%;
    aspect-ratio: auto;
  }
}

.site-captcha { margin-block: 1.25rem; max-width: 100%; }
.site-captcha [data-captcha-error-message] { max-width: 38rem; margin-top: .75rem; color: var(--burgundy); font-size: .875rem; line-height: 1.5; }

/* Google's required attribution is visible beside each protected form. */
.grecaptcha-badge { visibility: hidden; }
.site-captcha small { display: block; font-size: .72rem; line-height: 1.55; color: var(--ink-soft); }
.site-captcha small a { text-decoration: underline; text-underline-offset: 2px; }

.inquiry-paused{margin:2rem 0;border:1px solid var(--line);border-radius:var(--radius);padding:clamp(1.5rem,4vw,3rem);background:var(--cream-deep)}
.inquiry-paused p{margin-top:1rem;max-width:52rem;line-height:1.75}.inquiry-paused-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}

/* Consistent vertical rhythm across public page templates. */
.intro-section,.detail-intro,.room-detail-intro,.region-page-intro{padding-block:clamp(2.5rem,4vw,4rem)}
.stay-section,.room-variants,.home-gallery,.gift-feature,.plan-section{padding-block:clamp(2.5rem,4vw,4rem)}
.detail-intro + .room-variants{padding-top:0}
.content-page,.form-page,.legacy-page{padding-block:clamp(2.5rem,4vw,4rem)}
.content-page-header{margin-bottom:clamp(2rem,3.5vw,3.5rem)}
.section-heading{margin-bottom:clamp(1.5rem,2.5vw,2.5rem)}
.room-detail-gallery,.room-plan,.experience-pair{padding-bottom:clamp(2.5rem,4vw,4rem)}
.site-footer{margin-top:clamp(3rem,5vw,5rem)}
.price-policy-heading{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem}
.price-policy-heading h3,.price-policy-heading p{margin:0}
.price-policy-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.price-policy-card{min-width:0;padding:clamp(1.2rem,2vw,2rem);border:1px solid var(--line);border-radius:14px;background:#fffaf4}
.price-policy-card h4{font-size:1.1rem;margin:.75rem 0 1rem}.price-policy-card p{font-size:.9rem;line-height:1.65;color:var(--ink-soft)}
.price-policy-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;color:var(--brand-primary);background:#f1e6d8}.price-policy-icon svg{width:20px;height:20px}
.price-policy-card dl{margin:0}.price-policy-card dl>div{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 0;border-bottom:1px solid var(--line);font-size:.9rem}.price-policy-card dd{margin:0;font-weight:650;white-space:nowrap}
.price-policy-value{font-size:2.2rem}.price-policy-disclaimer{max-width:80ch;font-size:.85rem;color:var(--ink-soft);margin-top:1.5rem}
.seasonal-policy-note{margin:1.5rem 0;padding:1.2rem 1.5rem;border-left:3px solid var(--brand-primary);background:#f1e8dc}.seasonal-policy-note p:last-child{margin-bottom:0}
@media(max-width:850px){.price-policy-grid{grid-template-columns:1fr}.detail-intro,.intro-section,.room-detail-intro{padding-block:2rem}}
.offer-full-conditions{max-width:920px;margin:2rem auto 0;padding:clamp(1.4rem,3vw,2.5rem);border:1px solid var(--line);border-radius:14px;background:#fffaf4}.offer-full-conditions p{line-height:1.8}
@media(max-width:600px){.benefit-ribbon{grid-template-columns:repeat(2,minmax(0,1fr))}.benefit-ribbon>div{min-width:0;overflow-wrap:anywhere}.benefit-ribbon strong,.benefit-ribbon small{max-width:100%}}
[dir=rtl] .gift-media img{transform:none}

/* Offer detail uses the same template on the website and in draft previews. */
.offer-detail-page{padding-block:clamp(24px,4vw,56px) clamp(48px,6vw,88px)}
.offer-detail-back{display:inline-flex;gap:12px;margin-bottom:24px;font-size:13px}
.offer-detail-hero{display:grid;grid-template-columns:1fr 1.08fr;align-items:center;gap:clamp(28px,5vw,72px)}
.offer-detail-intro{padding-block:16px}
.offer-detail-intro .eyebrow{font-size:11px;line-height:1.6;letter-spacing:.12em;margin:0 0 20px}
.offer-detail-intro h1{font-size:clamp(32px,4vw,58px);line-height:1.08;letter-spacing:-.045em;margin:0 0 24px;overflow-wrap:anywhere}
.offer-detail-lead{font-size:clamp(17px,1.5vw,21px);line-height:1.65;color:var(--muted);margin:0 0 28px;max-width:42ch}
.offer-detail-image{margin:0;aspect-ratio:1.15;overflow:hidden;border-radius:18px;background:var(--cream-deep)}
.offer-detail-image img{display:block;width:100%;height:100%;object-fit:cover}
.offer-detail-highlights{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding:28px 0;margin:32px 0 40px;border-block:1px solid var(--line);list-style:none}
.offer-detail-highlights li{display:flex;align-items:flex-start;gap:12px;font-size:16px;line-height:1.5}
.offer-detail-highlights li>span{color:var(--accent);font-size:19px;flex-shrink:0}
.offer-detail-highlights p{margin:0}
.offer-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:clamp(36px,6vw,96px);align-items:start}
.offer-detail-conditions{font-size:17px;line-height:1.8;min-width:0;overflow-wrap:anywhere}
.offer-detail-conditions p{margin:0 0 20px}
.offer-detail-conditions h2{font-size:clamp(21px,2vw,27px);line-height:1.3;letter-spacing:-.025em;margin:32px 0 14px}
.offer-detail-conditions>:first-child{margin-top:0}
.offer-detail-conditions ul{padding-inline-start:22px;margin:0 0 24px;display:block;list-style:disc}
.offer-detail-conditions li{padding-inline-start:4px;margin:7px 0}
.offer-detail-conditions li::marker{color:var(--accent)}
.offer-detail-request{position:sticky;top:120px;background:#fffaf4;border:1px solid var(--line);border-radius:16px;padding:28px}
.offer-detail-request .eyebrow{font-size:11px;margin:0 0 14px}
.offer-detail-request h2{font-size:25px;line-height:1.2;margin:0 0 16px}
.offer-detail-request>p:not(.eyebrow){font-size:15px;line-height:1.65;color:var(--muted);margin-bottom:22px}
.offer-detail-request .button{width:100%;text-align:center;padding-inline:16px;white-space:normal}
.offer-detail-book{display:flex;justify-content:center;gap:12px;margin-top:18px;font-size:14px;font-weight:650;color:var(--accent)}
@media(max-width:900px){.offer-detail-layout{grid-template-columns:minmax(0,1fr) 280px;gap:32px}.offer-detail-request{padding:22px}.offer-detail-hero{gap:28px}.offer-detail-highlights{gap:16px}}
@media(max-width:700px){.offer-detail-hero{display:flex;flex-direction:column;align-items:stretch;gap:24px}.offer-detail-intro{padding:0}.offer-detail-intro h1{font-size:36px;margin-bottom:18px}.offer-detail-image{aspect-ratio:1.45;border-radius:12px}.offer-detail-intro .eyebrow{margin-bottom:14px}.offer-detail-highlights{grid-template-columns:1fr;gap:16px;margin:24px 0 28px;padding:22px 0}.offer-detail-highlights li{font-size:16px}.offer-detail-layout{grid-template-columns:1fr;gap:28px}.offer-detail-conditions{font-size:16px}.offer-detail-request{position:static}.offer-detail-lead{margin-bottom:22px}.offer-detail-back{margin-bottom:20px}}
.offer-detail-layout.is-summary-only{display:block}.offer-detail-layout.is-summary-only .offer-detail-request{max-width:600px;position:static}
.webcam-gallery figcaption time{display:block;margin-top:5px;font-size:12px;font-weight:400;color:var(--muted);font-variant-numeric:tabular-nums}
/* Keep navigation and booking actions apart on intermediate desktop widths. */
@media(min-width:1121px) and (max-width:1340px){
 .header-main{grid-template-columns:100px minmax(0,1fr) auto}
 .menu-toggle{display:flex;justify-self:end}
 .site-navigation{position:absolute;top:100%;right:20px;left:auto;display:none;flex-direction:column;align-items:stretch;gap:0;width:min(390px,calc(100vw - 40px));max-width:none;padding:12px 24px;border:1px solid var(--line);background:var(--cream);box-shadow:var(--shadow)}
 .site-navigation.is-open{display:flex}
 .site-navigation a{padding:14px 0;border-bottom:1px solid var(--line)}
 .header-inquiry{display:none}
}
@media(min-width:761px){.price-table-wrap{min-width:0;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}}
@media(max-width:1100px){.content-note{flex-wrap:wrap}.content-note>p{min-width:0;flex-basis:300px}.content-note-actions{flex:1 1 100%;min-width:0;justify-content:flex-start}}
