/* Extensions of the approved Grand Gallery system. */
:root { --lc-control-height: 50px; }
body { overflow-wrap: break-word; line-height: 1.55; }
h1,h2,h3 { text-wrap: balance; }
p { margin-bottom: 1em; }
/* Intrinsic dimensions reserve space; responsive images must release the HTML height. */
img { height: auto; }
[hidden] { display: none !important; }
.no-script-navigation { padding: 16px var(--lc-page-inset); border-bottom: 1px solid var(--lc-gold); font: 500 15px/1.6 var(--lc-sans); }
.no-script-navigation summary { cursor: pointer; padding-block: 8px; }
.no-script-navigation nav { display: flex; flex-wrap: wrap; gap: 12px 24px; padding-block: 16px; }
.no-script-navigation a { padding-block: 8px; }
.skip-link:not(:focus) { width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.main-nav { gap: clamp(18px,2.2vw,38px); }
.main-nav a,.main-nav button { font-size: 16px; font-weight: 500; letter-spacing: .065em; }
.sticky-nav a,.sticky-nav button { font-size: 14px; font-weight: 500; letter-spacing: .035em; }
.button { font-size: 14px; letter-spacing: .09em; }
.masthead .button { width: 202px; font-size: 14px; }
.sticky-book { font-size: 13px; }
.sticky-header { isolation: isolate; overflow: hidden; }
.sticky-header::before,.sticky-header::after { content: ""; position: absolute; inset-block: 0; width: clamp(96px,12vw,210px); background: url("decor/reeds-navigation.webp") left center / 100% auto no-repeat; opacity: .28; pointer-events: none; mask-image: linear-gradient(to right,#000 35%,transparent 100%); }
.sticky-header::before { left: 0; }
.sticky-header::after { right: 0; transform: scaleX(-1); }
.sticky-header-inner { position: relative; z-index: 1; }
@media (max-width:699px) { .sticky-header::before,.sticky-header::after { width: 60px; background-size: 100px auto; background-position: -18px center; opacity: .16; } }
.text-link { font-size: 14px; letter-spacing: .075em; }
.main-nav [aria-current=page],.sticky-nav [aria-current=page] { text-decoration: underline; text-decoration-color: var(--lc-gold); text-underline-offset: 8px; }
.site-header { padding-top: 24px; isolation: isolate; }
/* The logo scrim follows the header, ending just below the navigation at every breakpoint. */
.site-header::before { content: ""; position: absolute; inset: 0 0 -12px; z-index: -1; pointer-events: none; background: linear-gradient(180deg,rgba(15,23,14,.82) 0%,rgba(15,23,14,.64) 38%,rgba(15,23,14,.28) 72%,rgba(15,23,14,0) 100%); }
.masthead { padding-bottom: 22px; }
.brand img { width: 196px; }
.masthead .button--outline,.masthead .menu-toggle { background: #253127b3; }
.masthead .button--outline:hover { background: var(--lc-action-gold); }
.arrival[data-carousel] { min-height: 680px; height: clamp(680px,92svh,820px); }
.hero-description { max-width: 680px; font-size: 21px; line-height: 1.5; margin-bottom: 26px; }
.hero-content { bottom: 76px; }
.hero-title { max-width: 1100px; }
.arrival[data-carousel] .hero-title { font-size: var(--lc-heading-hero); margin-bottom: 22px; }
.slider-controls { bottom: 26px; }
.hero-title em { display: block; }
.hero-shade::before { content: none; }
.arrival[data-carousel] .hero-shade { background: linear-gradient(180deg,transparent 25%,rgba(15,23,14,.12) 40%,rgba(15,23,14,.58) 100%); }
.arrival--inner { height: clamp(460px,67svh,600px); min-height: 460px; }
.arrival--inner .hero-title { font-size: clamp(48px,4.6vw,66px); max-width: 1000px; margin-bottom: 0; }
.arrival--inner .hero-content { bottom: 44px; }
.arrival--inner .hero-shade { background: linear-gradient(180deg,transparent 50%,#1520169e); }
.arrival--inner .actions { margin-top: 24px; }
.arrival--compact { height: clamp(440px,52svh,520px); min-height: 440px; }
.arrival--compact .hero-content { bottom: 36px; }
.arrival--compact .hero-title { font-size: clamp(44px,4.2vw,60px); }
.arrival--compact .hero-shade { background: linear-gradient(180deg,transparent 28%,#1520160d 50%,#152016b8); }
.hero-image--booking { object-position: 50% 74%; }
.hero-image--rates { object-position: 50% 62%; }
.section { padding-block: var(--lc-section-space); position: relative; }
.section--sage { background: var(--lc-sage); }
.section--olive { background: var(--lc-olive); color: var(--lc-ivory); }
.section--olive .eyebrow { color: var(--lc-ivory); }
.section h2 { font-size: var(--lc-heading-section); line-height: 1.08; letter-spacing: -.02em; margin-bottom: 26px; }
.prose { max-width: 64ch; }
.prose p { font-size: var(--lc-body-size); line-height: 1.6; margin-bottom: 22px; }
.prose p:last-child { margin-bottom: 0; }
.off-grid-note { max-width: 70ch; margin: 28px 0 0; padding-left: 20px; border-left: 1px solid var(--lc-gold); color: var(--lc-olive); font-size: 18px; line-height: 1.55; }
.booking-grid .off-grid-note { margin: 0 0 32px; }
.connectivity-term { white-space: nowrap; }
.section .actions,.intro .actions { margin-top: 28px; }
.actions { display: flex; flex-wrap: wrap; gap: 18px; align-items: center; }
.intro-grid { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(40px,6vw,80px); align-items: start; }
.intro-heading { position: relative; }
.intro-heading .reed { width: 230px; height: 340px; left: -150px; top: 120px; opacity: .12; z-index: -1; }
.intro { isolation: isolate; }
.intro-heading h2 { max-width: 12ch; }
.intro .eyebrow { margin-bottom: 28px; }
.intro .intro-grid { grid-template-columns: 1fr; gap: 32px; }
.intro-heading h2 { max-width: none; margin-bottom: 0; }
.intro-heading .small-rule { display: none; }
.intro .prose { max-width: none; display: grid; grid-template-columns: 1fr 1fr; gap: 56px; }
.intro .prose p { margin: 0; }
.intro-rule { margin-bottom: 48px; }
.home-stays { padding-block: 0 calc(var(--lc-section-space) / 2); }
.stay-grid { grid-template-columns: 1fr 1fr; gap: 40px; align-items: stretch; }
.stay-intro { grid-column: 1/-1; position: relative; align-self: start; min-height: 0; padding: 0 0 32px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--lc-line); }
.stay-intro .reed { display: none; }
.stay-intro .section-heading { max-width: none; margin: 0; }
.stay-intro .small-rule,.stay-intro::before,.stay-intro::after { display: none; }
.stay-intro .text-link { font-size: 13px; letter-spacing: .04em; gap: 12px; white-space: nowrap; }
.stay-card--featured { display: flex; flex-direction: column; }
.stay-photo { display: block; overflow: hidden; }
.stay-photo img { width: 100%; height: 100%; object-fit: cover; }
.stay-photo:hover img { filter: brightness(1.04); }
.stay-card--featured .stay-photo { flex: 1; min-height: 400px; position: relative; }
.stay-card--featured .stay-photo img { position: absolute; inset: 0; object-position: 49% center; }
.stay-card figcaption { padding: 26px 28px; }
.stay-card--featured figcaption { padding-inline: 0; padding-bottom: 0; }
@media (min-width:1000px) { .stay-card--featured figcaption { order: -1; padding: 0 0 28px; } }
.stay-card p,.stay-card--landscape p { font-size: 19px; line-height: 1.5; margin: 12px 0 18px; }
.title-link { text-decoration: none; }
.title-link:hover { text-decoration: underline; text-decoration-color: var(--lc-gold); }
.stay-card--landscape figcaption { display: block; }
.stay-card--landscape .text-link { font-size: 13px; margin-top: 8px; }
.stay-card--landscape .stay-photo { aspect-ratio: 2.35; }
.stay-stack { gap: 32px; }
.stay-watermark { display: none; }
.home-stays > .centred-rule:last-child { margin: calc(var(--lc-section-space) / 2) auto 0; }
.home-main .main-area-grid { grid-template-columns: 1fr 1.4fr .38fr; gap: 32px; padding: 0; }
.home-main { padding-block: var(--lc-section-space); }
.home-main .editorial-copy { max-width: 38ch; font-size: 19px; line-height: 1.55; }
.home-main .main-area-copy { padding: 0; }
.home-main .main-area-copy .section-heading { font-size: var(--lc-heading-section); max-width: 12ch; }
.home-main .main-area-photo img { height: 480px; }
.home-main .main-area-detail img { height: 280px; }
.home-main .main-area-detail { justify-content: center; }
.home-main .main-area-detail::after { content: ""; display: block; height: 1px; width: 60%; background: var(--lc-gold); margin: 30px auto; }
.experiences { padding-block: 0; }
.experience-grid { position: relative; isolation: isolate; grid-template-columns: 1.3fr 1fr; overflow: hidden; }
.experience-media { position: relative; min-width: 0; margin: 0; }
.experience-panel { grid-column: 2; padding: clamp(40px,4.2vw,60px); }
.experience-panel .editorial-copy { max-width: 44ch; font-size: 19px; line-height: 1.55; }
.experience-photo { position: absolute; inset: 0; width: 100%; height: 100%; min-height: 0; object-fit: cover; object-position: center 80%; }
.experience-panel .section-heading { max-width: 16ch; font-size: var(--lc-heading-section); }
.split-grid { display: grid; grid-template-columns: 1.12fr 1fr; gap: clamp(40px,6vw,80px); align-items: center; }
.split-grid--reverse { grid-template-columns: 1fr 1.12fr; }
.split-grid--reverse .split-media { order: 2; }
.split-media { margin: 0; position: relative; }
.split-media > img { width: 100%; aspect-ratio: 1.25; object-fit: cover; }
.split-media--portrait > img { aspect-ratio: .8; }
.split-media.split-media--historic-map > img { aspect-ratio: auto; height: auto; object-fit: contain; }
.split-grid:has(.split-media--portrait) { grid-template-columns: .8fr 1.2fr; }
.split-media figcaption { margin-top: 18px; font: 12px/1.6 var(--lc-sans); color: var(--lc-muted); }
.diptych { display: grid; grid-template-columns: 1.1fr .7fr; gap: 24px; align-items: center; }
.diptych img { width: 100%; height: 380px; object-fit: cover; }
.diptych img:nth-child(2) { height: 270px; }
.wide-photo { margin: 0; }
.wide-photo img { width: 100%; height: clamp(320px,43vw,650px); object-fit: cover; }
.section-divider { margin: 0 auto; width: 96px; height: 1px; border: 0; background: var(--lc-gold); }
.section-number { font: 13px/1.4 var(--lc-sans); color: var(--lc-muted); letter-spacing: .12em; margin-bottom: 32px; }
.closing { padding-block: var(--lc-section-space); }
/* Adjoining cream sections share one pause; activities have alternating surfaces. */
.section:not(.section--sage):not(.section--olive):not(.activity) + .closing { padding-top: 0; }
.closing > .centred-rule { margin-bottom: 36px; }
.closing .eyebrow { margin-bottom: 24px; }
.closing .closing-copy { max-width: 62ch; margin: 0 auto 28px; font-size: 20px; line-height: 1.55; }
.closing .actions { justify-content: center; }
.closing h2 { max-width: 28ch; font-size: var(--lc-heading-section); margin-bottom: 24px; }
.closing .reed { width: 370px; height: 460px; opacity: .2; }
.jump-nav { background: var(--lc-sage); padding: 14px var(--lc-page-inset); border-bottom: 1px solid var(--lc-line); }
.jump-nav-inner { display: flex; gap: 18px 40px; justify-content: center; flex-wrap: wrap; }
.jump-nav a { font: 14px/1.7 var(--lc-sans); text-decoration: none; border-bottom: 1px solid var(--lc-gold); padding: 6px 0; }
.reading-intro { max-width: 1050px; margin: auto; }
.reading-intro .prose { max-width: none; column-gap: 64px; }
.detail-intro { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(40px,6vw,80px); }
.detail-intro h2 { max-width: 12ch; }
.detail-gallery { display: grid; grid-template-columns: 1fr 1fr; gap: 36px 32px; align-items: start; }
.detail-gallery figure { margin: 0; }
.detail-gallery img { width: 100%; aspect-ratio: 1.4; object-fit: cover; }
.detail-gallery figcaption { font: 13px/1.6 var(--lc-sans); margin-top: 18px; color: var(--lc-muted); }
.home-gallery-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 28px; }
.home-gallery-grid figure { margin: 0; min-width: 0; aspect-ratio: 4/3; overflow: hidden; }
.home-gallery-grid img { width: 100%; height: 100%; object-fit: cover; }
.home-gallery-grid .gallery-thumbnail--bird { object-position: 65% center; }
@media (max-width:699px) { .home-gallery-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; } }
.related-stays { display: grid; grid-template-columns: repeat(3,1fr); gap: 32px; }
.related-stays article { border-top: 1px solid var(--lc-gold); padding-top: 24px; display: flex; flex-direction: column; }
.related-stays h3 { font-size: 30px; line-height: 1.1; margin-bottom: 16px; }
.related-stays p { font-size: 19px; line-height: 1.55; margin-bottom: 24px; }
.related-stays .text-link { align-self: flex-start; margin-top: auto; }
.related-stays img { aspect-ratio: 1.4; width: 100%; object-fit: cover; }
.related-stays .stay-photo { margin-bottom: 24px; }
.related-heading { margin-bottom: 36px; }
.duration { font-size: 18px; border-top: 1px solid var(--lc-gold); padding-top: 24px; margin-top: 32px; }
.activity + .activity { border-top: 1px solid var(--lc-line); }
#walking-safaris .split-media > img { aspect-ratio: auto; height: auto; object-fit: contain; }
.activity .split-media > img { aspect-ratio: auto; }
#madisa h2,#wuestenquell h2,#wws h2 { font-size: clamp(28px,3.2vw,44px); line-height: 1.15; letter-spacing: .01em; max-width: 23ch; }
.activity:nth-of-type(even) { background: var(--lc-sage); }
.story-archive { display: grid; grid-template-columns: .6fr 1fr .75fr; gap: 36px; align-items: center; }
.story-archive img { width: 100%; height: 390px; object-fit: contain; }
.rates-intro { max-width: 800px; }
.rate-tabs { display: flex; gap: 24px; margin: 32px 0 24px; border-bottom: 1px solid var(--lc-gold); }
.rate-tabs button { background: none; border: 0; border-bottom: 3px solid transparent; padding: 12px 20px; font: 26px var(--lc-serif); color: var(--lc-muted); }
.rate-tabs [aria-pressed=true] { border-color: var(--lc-gold); color: var(--lc-ink); }
.rate-table { width: 100%; border-collapse: collapse; font-size: 19px; line-height: 1.45; }
.rate-table th { text-align: left; background: var(--lc-olive); color: var(--lc-ivory); padding: 18px 20px; font-weight: 400; }
.rate-table td { padding: 18px 20px; border-bottom: 1px solid var(--lc-line); }
.rate-table td:last-child { white-space: nowrap; }
.rate-table tbody tr:nth-child(even) { background: #dadbcf55; }
.rate-table th:last-child,.rate-table td:last-child { text-align: right; }
.rate-downloads { display: flex; gap: 28px; flex-wrap: wrap; margin-top: 40px; }
.policies { display: grid; grid-template-columns: 1fr 1fr; gap: 48px 72px; }
.policies h2 { font-size: 32px; }
.policies p,.policies li { font-size: 20px; line-height: 1.55; }
.policies ul { padding-left: 24px; }
.practical-list { margin: 0; padding-left: 24px; columns: 2; column-gap: 80px; }
.practical-list li { padding-left: 8px; margin-bottom: 18px; break-inside: avoid; font-size: 20px; }
.contact-grid { display: grid; grid-template-columns: .9fr 1.2fr; gap: 72px; }
.contact-details { border-top: 1px solid var(--lc-gold); padding-top: 32px; }
.contact-details p { margin-bottom: 22px; font-size: 20px; }
.contact-details a { overflow-wrap: anywhere; }
.contact-grid .wide-photo img { height: auto; }
.directions-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; }
.directions-grid h3 { font-size: 30px; line-height: 1.15; margin-bottom: 24px; }
.directions-grid p { font-size: 20px; }
.booking-grid { display: grid; grid-template-columns: minmax(0,1.8fr) minmax(280px,.8fr); gap: 64px; align-items: start; }
.booking-aside { position: sticky; top: 116px; padding: 30px; border: 1px solid var(--lc-gold); background: var(--lc-olive); color: var(--lc-ivory); }
.booking-aside h2 { font-size: 30px; }
.booking-aside p { font-size: 19px; }
.booking-aside a { overflow-wrap: anywhere; }
.booking-intro { max-width: 64ch; margin-bottom: 36px; font-size: 20px; line-height: 1.55; }
.booking-form { min-width: 0; }
.booking-form fieldset { border: 0; border-top: 1px solid var(--lc-gold); padding: 28px 0 0; margin: 0 0 44px; min-width: 0; }
.booking-form legend { font-size: 29px; padding: 0 20px 0 0; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.field { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.field--wide { grid-column: 1/-1; }
.field label,.checkbox-label { font: 15px/1.6 var(--lc-sans); }
.field input,.field select,.field textarea { width: 100%; border: 1px solid #92967f; background: #fff8eb77; color: var(--lc-ink); border-radius: 0; min-height: 54px; padding: 12px 14px; font: 17px/1.5 var(--lc-sans); }
.field textarea { min-height: 140px; resize: vertical; }
.field input[aria-invalid=true] { border: 2px solid var(--lc-error); }
.required { color: var(--lc-error); }
.form-note { font: 14px/1.7 var(--lc-sans); color: var(--lc-muted); margin-bottom: 30px; }
.checkbox-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 24px; }
.checkbox-label { display: flex; gap: 14px; align-items: flex-start; cursor: pointer; }
.checkbox-label input { appearance: auto; accent-color: var(--lc-olive); width: 22px; height: 22px; margin: 1px 0 0; flex: 0 0 22px; }
.consent-list { display: grid; gap: 26px; }
.form-status { padding: 24px; border-left: 3px solid var(--lc-gold); background: var(--lc-sage); margin: 28px 0; font: 16px/1.6 var(--lc-sans); }
.form-status.is-error { border-color: var(--lc-error); }
.honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.gallery-filters { display: flex; gap: 12px; flex-wrap: wrap; margin: 0 0 48px; }
.gallery-filters button { min-height: 44px; border: 1px solid var(--lc-gold); background: none; color: var(--lc-ink); padding: 10px 18px; font: 14px var(--lc-sans); }
.gallery-filters [aria-pressed=true] { background: var(--lc-olive); color: var(--lc-ivory); }
.gallery-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 32px 28px; }
.gallery-item { margin: 0; min-width: 0; }
.gallery-item a { display: block; aspect-ratio: 4/3; overflow: hidden; }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; }
.gallery-item figcaption { font: 13px/1.6 var(--lc-sans); margin-top: 14px; }
.gallery-dialog { border: 1px solid var(--lc-gold); background: var(--lc-ink); color: var(--lc-ivory); max-width: calc(100vw - 32px); max-height: calc(100dvh - 32px); padding: 54px 24px 24px; width: 1100px; }
.gallery-dialog::backdrop { background: #152016e8; }
.gallery-dialog img { max-height: calc(100dvh - 220px); width: 100%; object-fit: contain; }
.gallery-dialog footer { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 22px; }
.gallery-dialog p { margin: 0; font-size: 20px; }
.gallery-dialog .icon-button { color: var(--lc-ivory); }
.site-footer { padding: 64px var(--lc-page-inset) 28px; background: var(--lc-olive); color: var(--lc-ivory); border-top: 1px solid var(--lc-gold); }
.footer-main { max-width: var(--lc-content-width); margin: auto; display: grid; grid-template-columns: 1.3fr .8fr 1fr; gap: 64px; }
.footer-brand img { width: 220px; height: auto; filter: brightness(0) invert(1); margin-bottom: 30px; }
.footer-brand p { max-width: 34ch; font-size: 19px; line-height: 1.55; }
.footer-nav { display: grid; align-content: start; gap: 14px; }
.footer-nav a { font: 14px/1.6 var(--lc-sans); text-decoration: none; }
.footer-contact p { font-size: 19px; margin-bottom: 20px; }
.footer-contact .button { margin-top: 20px; }
.partner-logos { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; align-items: center; border: 1px solid var(--lc-gold); padding: 24px 36px; margin: 48px auto 30px; max-width: var(--lc-content-width); }
.logo-effect-defs { position: absolute; pointer-events: none; }
.partner-logo { --logo-max-width: 200px; --logo-padding: 8px; display: flex; position: relative; min-width: 0; height: 140px; padding: var(--logo-padding); align-items: center; justify-content: center; }
/* Derive the glow from the actual ink, excluding white backgrounds and transparent canvas. */
.partner-logo::before { content: ''; position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); width: min(var(--logo-max-width),calc(100% - var(--logo-padding) * 2)); height: calc(100% - var(--logo-padding) * 2); z-index: 0; pointer-events: none; background: var(--logo-image) center / contain no-repeat; filter: url('#partner-logo-ink-glow'); }
.partner-logos img { position: relative; z-index: 1; max-width: var(--logo-max-width); max-height: 100%; width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
.partner-logo--madisa { --logo-image: url('brand/madisa-logo.webp'); }
.partner-logo--wuestenquell { --logo-max-width: 220px; --logo-image: url('brand/wuestenquell-logo-footer.webp'); }
.partner-logo--hiking { --logo-max-width: 192px; --logo-image: url('brand/wws-hiking-logo-footer.webp'); }
.footer-base { display: flex; justify-content: space-between; gap: 24px; max-width: var(--lc-content-width); margin: auto; font: 12px/1.6 var(--lc-sans); }
.footer-base p { margin: 0; }
.mobile-nav-dialog { overflow: auto; color: var(--lc-ink); }
.mobile-nav-links { gap: 0; }
.mobile-nav-links a { font-size: 28px; padding: 13px 0; }
.mobile-nav-links .sub-link { font-size: 21px; padding-left: 20px; border: 0; }
.mobile-nav-dialog .button { margin-top: 28px; }
@media (max-width:1399px) {
 .main-nav { gap: 20px; padding-inline: 16px; }.main-nav a { font-size: 15px; letter-spacing: .025em; }
 .home-main .main-area-grid { grid-template-columns: 1fr 1.4fr; }.home-main .main-area-detail { display: none; }
 .stay-grid { gap: 32px; }
}
@media (min-width:1200px) {
 .sticky-nav { display: flex; gap: 18px; }.sticky-menu { display: none; }
 .sticky-header-inner { gap: 22px; min-height: 82px; }.sticky-brand img { width: 128px; }
 .sticky-nav a { font-size: 14px; letter-spacing: .015em; }.sticky-book { padding-inline: 18px; font-size: 12px; }
}
@media (min-width:1280px) { .sticky-nav a { font-size: 16px; } }
@media (min-width:700px) and (max-width:999px) {
 .home-stays .stay-grid { grid-template-columns: 1fr; }
 .stay-card--featured { display: block; }.stay-card--featured .stay-photo { min-height: 0; }.stay-card--featured .stay-photo img { position: static; height: auto; aspect-ratio: 1.5; }
 .stay-stack { grid-template-columns: 1fr 1fr; gap: 32px; }
 .stay-stack .stay-card { display: flex; flex-direction: column; }
 .stay-stack figcaption { display: flex; flex: 1; flex-direction: column; align-items: flex-start; }
 .stay-stack .text-link { margin-top: auto; }
 .related-stays { grid-template-columns: 1fr; }
 .related-stays article { display: grid; grid-template-columns: .8fr 1.2fr; gap: 0 28px; align-content: start; }
 .related-stays .stay-photo { grid-column: 1; grid-row: 1/4; align-self: start; margin: 0; }
 .related-stays h3,.related-stays p,.related-stays .text-link { grid-column: 2; }
 .related-stays .text-link { justify-self: start; }
}
@media (max-width:999px) {
 .gallery-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .experience-grid { grid-template-columns: 1fr; }.experience-photo { position: static; height: auto; aspect-ratio: auto; }.experience-panel { grid-column: auto; }
 .masthead { grid-template-columns: 52px 1fr 180px; }.masthead .menu-toggle { display: inline-flex; border: 1px solid var(--lc-gold); }
 .masthead > .other-camps,.main-nav { display: none; }.mobile-header-line { height: 1px; background: var(--lc-gold); }
 .masthead .button:last-of-type { width: 180px; }.brand img { margin: auto; }
 .masthead .button:last-of-type { font-size: 14px; }
 .stay-grid { gap: 32px; }.stay-intro .reed { display: none; }
 .intro-grid,.detail-intro { grid-template-columns: .7fr 1.3fr; gap: 40px; }.intro-heading h2 { max-width: 12ch; }.intro .prose { max-width: 65ch; }
 .split-grid,.split-grid--reverse { gap: 40px; }.booking-grid { grid-template-columns: 1fr; gap: 30px; }.booking-aside { position: static; }
 .footer-main { grid-template-columns: 1.2fr 1fr; gap: 48px; }.footer-contact { grid-column: 1/-1; }
 .contact-grid { grid-template-columns: 1fr; gap: 48px; }.directions-grid { gap: 40px; }
 .related-stays { gap: 28px; }.related-stays h3 { font-size: 29px; }
}
@media (max-width:699px) {
 .masthead { grid-template-columns: 44px 1fr 110px; gap: 10px; }.masthead .button:last-of-type { width: 110px; font-size: 12px; letter-spacing: .025em; }.brand img { width: 128px; }
 .sticky-header-inner { gap: 10px; }.sticky-book { font-size: 11px; }.sticky-brand img { width: 106px; }
 .site-header { padding-top: 24px; }
 .arrival[data-carousel] { min-height: 720px; height: max(720px,94svh); }.hero-content { bottom: 100px; }
 .arrival[data-carousel] .hero-shade { background: linear-gradient(180deg,transparent 12%,rgba(15,23,14,.12) 20%,rgba(15,23,14,.48) 48%,rgba(15,23,14,.64) 100%); }
 .arrival[data-carousel] .hero-title { font-size: var(--lc-heading-hero); }.hero-description { font-size: 19px; line-height: 1.5; max-width: 36ch; }
 .slider-controls { bottom: 28px; }
 .hero-actions { gap: 12px; }.hero-actions .button { font-size: 12px; letter-spacing: .04em; min-height: 52px; padding-inline: 14px; }
 .arrival--inner { height: 440px; min-height: 440px; }.arrival--inner .hero-title { font-size: 42px; }.arrival--inner .hero-content { bottom: 36px; }
 .arrival--compact { height: 440px; min-height: 440px; }.arrival--compact .hero-title { font-size: 42px; }
 .hero-image--booking { object-position: 50% 50%; }.hero-image--rates { object-position: 55% 50%; }
 .section h2 { font-size: var(--lc-heading-section); }.intro-rule { margin-bottom: 36px; }
 .intro-grid,.detail-intro,.stay-grid,.split-grid,.split-grid--reverse,.home-main .main-area-grid,.experience-grid,.related-stays,.policies,.directions-grid,.form-grid { grid-template-columns: 1fr; }
 .intro-grid { gap: 28px; }.intro-heading h2 { max-width: 14ch; margin-bottom: 0; }.intro-heading .small-rule { margin-bottom: 0; }.intro-heading .reed { opacity: .12; }
 .intro .prose { grid-template-columns: 1fr; gap: 22px; }
 .stay-intro { padding-bottom: 24px; display: block; }.stay-intro .text-link { margin-top: 16px; }
 .stay-card--featured .stay-photo { min-height: 0; flex: none; }.stay-card--featured .stay-photo img { position: static; height: auto; aspect-ratio: 1.1; }.stay-card p,.stay-card--landscape p { font-size: 19px; }.stay-stack { gap: 32px; }
 .stay-card--landscape .stay-photo { aspect-ratio: 1.65; }.stay-card figcaption { padding: 24px; }.stay-card--featured figcaption { padding-inline: 0; }
 .home-main .main-area-photo img { height: auto; aspect-ratio: 1.2; }
 .home-main .main-area-copy .section-heading { max-width: none; }.main-area-grid { padding-inline: 0; }
 .experience-photo { position: static; width: 100%; height: auto; aspect-ratio: auto; }.experience-panel { grid-column: auto; padding: 48px var(--lc-page-inset); }.experience-panel .section-heading { font-size: var(--lc-heading-section); }
 .experience-panel .editorial-copy { max-width: none; font-size: 19px; }
 .split-grid--reverse .split-media { order: 0; }.split-grid { gap: 36px; }.split-media > img { aspect-ratio: 1.2; }
 .split-grid:has(.split-media--portrait) { grid-template-columns: 1fr; }
 .detail-gallery { gap: 44px; grid-template-columns: 1fr; }.detail-gallery figure:nth-child(even) { margin-top: 0; }
 .detail-intro { gap: 32px; }.detail-intro h2 { max-width: none; }
 .diptych { gap: 18px; }.diptych img { height: 320px; }.diptych img:nth-child(2) { height: 230px; }
 .closing .closing-copy { font-size: 19px; }.closing .reed { opacity: .13; }
 .practical-list { columns: 1; }.practical-list li,.policies p,.policies li,.contact-details p,.directions-grid p,.booking-intro { font-size: 19px; }.policies { gap: 40px; }
 .rate-table { font-size: 18px; }.rate-table th,.rate-table td { padding: 16px 10px; }.rate-table td:nth-child(2) { font-size: 16px; }
 .rate-table th:last-child { min-width: 90px; }.rate-table td:last-child { white-space: normal; }
 .rate-tabs { margin-top: 36px; }.rate-downloads { gap: 20px; }.rate-downloads a { font-size: 12px; }
 .story-archive { grid-template-columns: 1fr 1fr; gap: 24px; }.story-archive img { height: 240px; }.story-archive img:nth-child(2) { grid-column: 1/-1; grid-row: 2; height: auto; }
 .field--wide { grid-column: auto; }.checkbox-grid { grid-template-columns: 1fr; }.booking-form fieldset { padding-top: 30px; margin-bottom: 48px; }.booking-aside { padding: 26px; }
 .gallery-grid { gap: 24px 16px; }.gallery-item figcaption { font-size: 12px; }.gallery-dialog { padding-inline: 14px; }.gallery-dialog p { font-size: 17px; }
 .footer-main { grid-template-columns: 1fr; }.footer-contact { grid-column: auto; }.footer-nav { grid-template-columns: 1fr 1fr; gap: 18px; }
 .partner-logos { grid-template-columns: 1fr; padding: 24px 20px; gap: 24px; }.partner-logo { --logo-padding: 4px; width: 100%; max-width: 260px; justify-self: center; height: 120px; }.footer-base { flex-direction: column; gap: 18px; }.site-footer { padding-top: 64px; }
}
@media print {
 .site-header,.sticky-header,.mobile-nav-dialog,.hero-actions,.site-footer,.rate-tabs,.booking-aside { display: none !important; }
 .arrival,.arrival--inner,.arrival--compact { height: auto; min-height: 0; background: none; color: #111; padding: 30px; }.hero-content { position: static; }.hero-images,.hero-shade,.slider-controls { display: none; }
 .section { padding-block: 30px; }.rate-panel[hidden] { display: block !important; }.rate-table { font-size: 12pt; }.rate-table th,.rate-table td { padding: 10px; }
}
@media (max-width:379px) {
 .arrival[data-carousel] .hero-title { font-size: 40px; }.hero-description { font-size: 19px; }
 .masthead { grid-template-columns: 40px 1fr 96px; gap: 8px; }.masthead .button:last-of-type { width: 96px; font-size: 10px; }.masthead .brand img { width: 100px; }
 .sticky-brand img { width: 84px; }.sticky-book { padding-inline: 8px; font-size: 10px; }.sticky-menu { width: 40px; flex-basis: 40px; }
 .rate-table { font-size: 16px; }.rate-table td:nth-child(2) { font-size: 14px; }.rate-table th,.rate-table td { padding-inline: 6px; }.rate-table th:last-child { min-width: 74px; }
 .slider-controls { gap: 4px; }.slide-progress { width: 40px; margin-right: 0; }
}
