@font-face {
  font-family:"Manrope"; font-style:normal; font-weight:400 700; font-display:swap;
  src:url("/fonts/manrope-latin-variable.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family:"Young Serif"; font-style:normal; font-weight:400; font-display:swap;
  src:url("/fonts/young-serif-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
:root {
  --forest-950:#0b1511; --forest-900:#10251b; --forest-800:#183629; --forest-700:#2f6b50;
  --mist:#f2f5f0; --ink:#152019; --sage:#c1cdc3; --copper:#d9965b; --copper-dark:#8b4b20;
  --white:#fff; --muted:#45584a; --line-light:#526559; --line-dark:#819184;
  --display:"Young Serif",Georgia,serif; --body:"Manrope","Segoe UI",sans-serif;
  --gutter:clamp(1.25rem,4.4vw,5rem); --section:clamp(3.5rem,6vw,6.5rem);
  --ease:cubic-bezier(.22,1,.36,1); --z-header:10;
}
*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:7rem; }
body { margin:0; background:var(--forest-950); color:var(--mist); font:400 1rem/1.65 var(--body); overflow-wrap:anywhere; }
body:has(dialog[open]) { overflow:hidden; }
img { display:block; width:100%; height:auto; }
picture { display:block; }
figure { margin:0; }
button,input,select,textarea { font:inherit; }
button,select,summary { cursor:pointer; }
button { color:inherit; }
a { color:inherit; text-underline-offset:.23em; text-decoration-thickness:1px; }
a,button { touch-action:manipulation; }
a:hover { text-decoration-thickness:2px; }
:focus-visible { outline:3px solid var(--copper); outline-offset:5px; }
[hidden] { display:none !important; }
h1,h2,h3 { margin:0; font-family:var(--display); font-weight:400; letter-spacing:-.025em; text-wrap:balance; overflow-wrap:break-word; }
h1 { font-size:clamp(2.4rem,4.4vw,4.4rem); line-height:1.13; }
h2 { font-size:clamp(2rem,3.3vw,3.2rem); line-height:1.18; }
h3 { font-size:clamp(1.5rem,2.5vw,2rem); line-height:1.25; }
p { margin:0 0 1.15rem; max-width:68ch; text-wrap:pretty; overflow-wrap:anywhere; }
a[href^="mailto:"] { overflow-wrap:anywhere; }
p:last-child { margin-bottom:0; }
ul { padding-left:1.2rem; }
small { font-size:.875rem; }
section[id],article[id],details[id] { scroll-margin-top:7rem; }
main:focus { outline:none; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.skip-link { position:fixed; top:.75rem; left:1rem; z-index:20; padding:.75rem 1rem; background:var(--mist); color:var(--ink); transform:translateY(-160%); }
.skip-link:focus { transform:none; }
.wrap { width:min(100% - var(--gutter)*2,86rem); margin-inline:auto; }
.section { padding-block:var(--section); }
.section-light { background:var(--mist); color:var(--ink); }
.section-light :focus-visible,.section-copper :focus-visible { outline-color:var(--forest-800); }
.section-copper { background:var(--copper); color:var(--forest-950); }
.section-light p { color:var(--muted); }
.section-heading { display:flex; flex-wrap:wrap; gap:1.5rem 3rem; justify-content:space-between; align-items:end; margin-bottom:2.25rem; }
.section-heading>* { min-width:0; max-width:100%; }
.section-heading h2 { max-width:22ch; }
.section-heading p { max-width:40ch; color:var(--sage); }
.section-light .section-heading p { color:var(--muted); }
.section-heading .text-link { flex-shrink:0; }
.kicker { margin-bottom:1rem; color:var(--sage); font-size:.875rem; font-weight:600; }
.accent { color:var(--copper); }
.lede { font-size:clamp(1.05rem,1.45vw,1.2rem); line-height:1.7; }
.actions { display:flex; flex-wrap:wrap; align-items:center; gap:.9rem 1.4rem; margin-top:1.75rem; }
.button { min-width:0; max-width:100%; min-height:3.2rem; display:inline-flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:min(1.1rem,3vw); padding:.8rem min(1.4rem,6vw); border:1px solid transparent; border-radius:3rem; font-weight:700; font-size:.9375rem; line-height:1.45; text-decoration:none; transition:background-color 180ms ease-out,color 180ms ease-out,transform 180ms var(--ease); }
.button-primary { background:var(--copper); color:var(--forest-950); }
.button-primary:hover { background:#efb581; }
.button-ink { background:var(--forest-950); color:var(--white); }
.button-ink:hover { background:var(--forest-800); }
.button-outline { background:transparent; border-color:currentColor; color:inherit; }
.button-outline:hover { background:var(--mist); color:var(--ink); border-color:var(--mist); }
.button:active { transform:translateY(1px); }
.button:hover { text-decoration:none; }
.button:disabled { opacity:.65; cursor:wait; transform:none; }
.text-link { display:inline-flex; align-items:center; gap:.7rem; min-width:0; max-width:100%; min-height:2.75rem; font-weight:600; }
.text-link span,.button span[aria-hidden] { transition:transform 180ms var(--ease); }
.text-link:hover span,.button:hover span[aria-hidden] { transform:translateX(3px); }
.icon-button { display:inline-grid; place-items:center; width:3rem; height:3rem; padding:0; flex-shrink:0; border:1px solid var(--line-light); background:transparent; border-radius:50%; color:inherit; transition:background-color 180ms ease-out,color 180ms ease-out; }
.icon-button:hover { background:var(--copper); color:var(--forest-950); border-color:var(--copper); }
.icon-button:disabled { opacity:.4; cursor:default; }
.icon-button svg { width:1.15rem; height:1.15rem; }
.site-header { position:sticky; top:0; z-index:var(--z-header); background:var(--forest-950); border-bottom:1px solid #26382d; }
.header-inner { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:.75rem 2rem; padding-block:.85rem; }
.brand { display:inline-flex; align-items:center; gap:.85rem; text-decoration:none; min-width:0; max-width:100%; }
.brand picture { flex-shrink:0; }
.brand-logo { width:3.75rem; height:3.75rem; border-radius:50%; }
.brand-name { display:block; min-width:0; font-size:1.1rem; font-weight:600; line-height:1.3; letter-spacing:.08em; }
.brand-name small { display:block; font-size:.68rem; font-weight:500; letter-spacing:.12em; margin-top:.25rem; }
.site-nav { display:flex; align-items:center; flex-wrap:wrap; gap:.5rem 1.7rem; }
.site-nav>a { padding:.6rem 0; font-size:.875rem; font-weight:600; text-decoration:none; }
.site-nav>a:hover,.site-nav>a[aria-current="page"] { color:var(--copper); }
.site-nav>a[aria-current="page"] { text-decoration:underline; text-underline-offset:.6em; }
.site-nav>.nav-book { border:1px solid var(--line-light); border-radius:3rem; padding:.7rem 1.2rem; }
.site-nav>.nav-book:hover { background:var(--copper); border-color:var(--copper); color:var(--forest-950); }
.menu-toggle { display:none; min-height:3rem; }
.hero { position:relative; min-height:clamp(39rem,78svh,52rem); display:flex; align-items:stretch; isolation:isolate; overflow:hidden; }
.hero-content { position:relative; z-index:3; min-height:inherit; display:flex; flex-direction:column; justify-content:space-between; padding-block:clamp(3.75rem,8vh,6.5rem) clamp(1.25rem,3vh,2rem); }
.hero-copy { min-width:0; max-width:46rem; margin-block:auto; padding-block:2rem 3rem; }
.hero h1 { max-width:15ch; font-size:clamp(3rem,5.2vw,5.6rem); color:var(--white); text-shadow:0 2px 18px rgba(0,0,0,.34); }
.hero .kicker { color:var(--white); text-shadow:0 1px 12px rgba(0,0,0,.5); }
.hero .lede { margin-top:1.5rem; color:#f2f5f0; max-width:40ch; font-weight:500; text-shadow:0 1px 12px rgba(0,0,0,.6); }
.hero .text-link { color:var(--white); text-shadow:0 1px 10px rgba(0,0,0,.7); }
.hero-photo { position:absolute; inset:0; z-index:0; min-width:0; }
.hero-photo::after { content:""; position:absolute; inset:0; z-index:2; pointer-events:none; background:linear-gradient(90deg,rgba(7,18,13,.94) 0%,rgba(7,18,13,.78) 34%,rgba(7,18,13,.3) 60%,rgba(7,18,13,.08) 82%),linear-gradient(0deg,rgba(7,18,13,.9) 0%,rgba(7,18,13,.3) 30%,rgba(7,18,13,.04) 64%); }
.hero-media { position:absolute; inset:0; width:100%; height:100%; overflow:hidden; background:var(--forest-900); }
.hero-media picture,.hero-media img,.hero-video { width:100%; height:100%; }
.hero-media picture,.hero-video { position:absolute; inset:0; }
.hero-media picture { z-index:0; }
.hero-media img,.hero-video { object-fit:cover; object-position:center; }
.hero-video { z-index:1; opacity:0; transition:opacity 350ms var(--ease); }
.hero-media.video-ready .hero-video { opacity:1; }
.hero-video-toggle { position:absolute; top:1.25rem; right:var(--gutter); z-index:4; display:inline-flex; align-items:center; gap:.55rem; min-height:3rem; padding:.65rem 1rem; border:1px solid rgba(255,255,255,.68); border-radius:3rem; background:rgba(11,21,17,.88); color:var(--white); font-size:.8125rem; font-weight:700; line-height:1; transition:background-color 180ms ease-out,border-color 180ms ease-out; }
.hero-video-toggle:hover { background:var(--forest-950); border-color:var(--white); }
.hero-video-icon { display:inline-block; min-width:.8rem; font-size:.85rem; text-align:center; }
.orientation { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1rem 2rem; padding-block:1.4rem 2.5rem; }
.orientation p { color:var(--sage); max-width:68ch; }
.orientation-links { display:flex; gap:1.5rem; flex-wrap:wrap; }
.hero-orientation { width:100%; padding-block:1.2rem 0; border-top:1px solid rgba(255,255,255,.42); color:var(--white); }
.hero-orientation p { max-width:56ch; margin:0; color:#eef3ee; text-shadow:0 1px 10px rgba(0,0,0,.7); }
.quick-book { padding-block:2.75rem; }
.quick-book-heading { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:1rem 2rem; margin-bottom:1.6rem; }
.quick-book-heading h2 { font-size:clamp(1.75rem,2.5vw,2.3rem); }
.quick-book-heading p { font-size:.9375rem; max-width:48ch; }
.quick-fields { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }
.quick-bottom { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1rem; margin-top:1.2rem; }
form { min-width:0; }
label,legend { font-weight:600; font-size:.9375rem; }
.field { display:flex; flex-direction:column; gap:.45rem; min-width:0; }
input:not([type="radio"]):not([type="checkbox"]):not([type="hidden"]),select,textarea { min-width:0; max-width:100%; width:100%; min-height:3.15rem; padding:.75rem .85rem; border:1px solid var(--line-dark); border-radius:.2rem; background:#fff; color:var(--ink); font-size:1rem; line-height:1.4; transition:border-color 160ms ease-out; }
input::placeholder,textarea::placeholder { color:#586259; opacity:1; }
input:focus-visible,select:focus-visible,textarea:focus-visible { outline:3px solid var(--forest-700); outline-offset:3px; border-color:var(--forest-700); }
textarea { resize:vertical; min-height:7.5rem; }
.consent { display:flex; align-items:flex-start; gap:.7rem; font-size:.875rem; font-weight:400; line-height:1.6; }
.consent input { flex-shrink:0; width:1.2rem; height:1.2rem; margin:.15rem 0 0; accent-color:var(--forest-800); }
.consent a { font-weight:600; }
.form-status { margin:1rem 0 0; font-weight:600; font-size:.9375rem; padding:.9rem 1rem; border:1px solid currentColor; border-radius:.2rem; }
.form-status:empty,.field-error:empty { display:none; }
.form-status[data-state="error"],.field-error { color:#51140e; }
.field-error { font-size:.875rem; font-weight:500; }
[aria-invalid="true"] { border-color:#842a22 !important; }
.form-note { font-size:.875rem; line-height:1.6; color:var(--muted); }
.form-status:focus { outline-offset:4px; }
.gallery-tools { display:flex; flex-wrap:wrap; align-items:center; gap:.6rem; }
.gallery-tools p { margin:0 .75rem 0 0; font-size:.875rem; color:var(--sage); }
.js-only { display:none; }
.js .js-only { display:flex; }
.gallery-rail { display:flex; gap:1.25rem; overflow-x:auto; padding:.4rem .3rem 1.25rem; scroll-snap-type:x proximity; scrollbar-color:var(--line-light) transparent; scrollbar-width:thin; }
.gallery-item { flex:0 0 42%; min-width:0; scroll-snap-align:start; text-decoration:none; }
.gallery-item img { aspect-ratio:3/2; object-fit:contain; background:var(--forest-900); }
.gallery-item figcaption { display:flex; align-items:baseline; gap:.75rem; justify-content:space-between; padding-top:.8rem; color:var(--sage); font-size:.875rem; }
.gallery-item figcaption span { color:var(--mist); }
.gallery-item:hover img,.photo-link:hover img { filter:brightness(1.07); }
.gallery-item img,.photo-link img { transition:filter 200ms ease-out; }
.gallery-hint { margin-top:.75rem; color:var(--sage); font-size:.875rem; }
.stays-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(2rem,4vw,4rem); }
.stay-preview { min-width:0; }
.stay-preview h3 { margin-top:1.4rem; font-size:clamp(1.9rem,2.7vw,2.5rem); }
.stay-preview h3 a { text-decoration:none; }
.stay-preview>p { color:var(--muted); margin-top:.85rem; }
.stay-preview .actions { margin-top:1.25rem; }
.stay-facts { display:flex; flex-wrap:wrap; gap:.55rem 1.5rem; margin:1.1rem 0 0; padding:0; list-style:none; font-size:.875rem; color:var(--muted); }
.stay-facts li { display:flex; gap:.5rem; align-items:center; }
.stay-facts li::before { content:""; width:.3rem; height:.3rem; background:var(--forest-700); border-radius:50%; }
.slideshow { min-width:0; }
.slides { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; }
.slides::-webkit-scrollbar { display:none; }
.slide { flex:0 0 100%; min-width:0; scroll-snap-align:start; }
.slide>a { display:block; }
.slide img { width:100%; aspect-ratio:3/2; object-fit:cover; }
.slide figcaption { margin-top:.65rem; padding-inline:.1rem; font-size:.875rem; color:var(--muted); }
.slideshow-controls { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1rem; margin-top:.9rem; }
.slideshow-controls .icon-button { border-color:var(--line-dark); color:var(--ink); }
.slideshow-controls .icon-button:hover { background:var(--forest-800); color:var(--white); }
.slideshow-controls .counter { font-size:.875rem; font-variant-numeric:tabular-nums; }
.slideshow-controls>div { display:flex; gap:.5rem; }
.experience-layout { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:clamp(2rem,6vw,6rem); align-items:center; }
.experience-layout>figure img { aspect-ratio:1.5; object-fit:cover; }
.experience-copy h2 { margin-bottom:1.4rem; }
.experience-copy p { color:var(--sage); }
.photo-caption { color:var(--sage); font-size:.875rem; padding-top:.8rem; }
.section-light .photo-caption { color:var(--muted); }
.night-section { position:relative; isolation:isolate; min-height:32rem; display:flex; align-items:center; background:var(--forest-950); }
.night-section>picture { position:absolute; inset:0; z-index:-2; }
.night-section>picture img { width:100%; height:100%; object-fit:cover; object-position:65% 60%; }
.night-section::before { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(11,21,17,.94),rgba(11,21,17,.76) 35%,rgba(11,21,17,.06) 70%); z-index:-1; }
.night-copy { padding-block:4rem; max-width:27rem; }
.night-copy h2 { max-width:15ch; }
.night-copy p { margin-top:1.25rem; color:var(--mist); max-width:32ch; }
.region-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; }
.region-card { min-width:0; }
.region-card img { aspect-ratio:3/2; object-fit:cover; }
.region-card h3 { margin-top:1.25rem; font-size:1.6rem; }
.region-card p { margin-top:.75rem; }
.region-card>a { text-decoration:none; }
.region-card>a:hover h3 { text-decoration:underline; text-underline-offset:.15em; }
.booking-layout { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:clamp(2rem,6vw,6rem); align-items:start; }
.booking-intro { padding-top:.5rem; }
.booking-intro h2 { margin-bottom:1.4rem; }
.booking-intro>p { max-width:40ch; }
.booking-details { margin:2rem 0; padding:0; list-style:none; display:grid; gap:.65rem; }
.booking-details li { font-weight:600; font-size:.9375rem; }
.direct-options { display:grid; gap:1rem; margin-top:1.6rem; }
.direct-options a { min-height:2.75rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; font-size:.9375rem; }
.direct-options .email-link { overflow-wrap:anywhere; display:block; }
.booking-form { background:var(--mist); color:var(--ink); padding:clamp(1.25rem,3vw,2.75rem); border-radius:.35rem; }
.booking-form fieldset { min-width:0; padding:0; margin:0 0 1.5rem; border:0; }
.stay-choice { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,7rem),1fr)); gap:.7rem; margin-top:.6rem; }
.stay-choice label { position:relative; min-width:0; }
.stay-choice input { position:absolute; width:1px; height:1px; margin:0; overflow:hidden; clip-path:inset(50%); }
.stay-choice span { display:grid; place-items:center; min-height:3.1rem; padding:.6rem; color:var(--ink); border:1px solid var(--line-dark); border-radius:.2rem; cursor:pointer; }
.stay-choice input:checked+span { background:var(--forest-800); color:var(--white); border-color:var(--forest-800); }
.stay-choice input:focus-visible+span { outline:3px solid var(--forest-700); outline-offset:3px; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.1rem; }
.booking-form>.field,.booking-form>.consent,.booking-form>.button { margin-top:1.25rem; }
.booking-form .button { width:100%; }
.booking-form .form-note { margin-top:1rem; }
.fine-print { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2rem 5rem; padding-block:2.5rem; }
.fine-print h2 { font-family:var(--body); font-size:1rem; font-weight:700; letter-spacing:0; margin-bottom:.6rem; }
.fine-print p { font-size:.875rem; }
.site-footer { padding-block:3.5rem 1.75rem; }
.footer-main { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:2rem 5rem; padding-bottom:2.5rem; }
.footer-main p { color:var(--sage); margin-top:1.1rem; font-size:.9375rem; max-width:39ch; }
.footer-nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-content:start; gap:.5rem 2rem; }
.footer-nav a { min-height:2.75rem; display:flex; align-items:center; text-decoration:none; font-size:.9375rem; }
.footer-nav a:hover { text-decoration:underline; }
.footer-bottom { display:flex; flex-wrap:wrap; justify-content:space-between; gap:.8rem 2rem; border-top:1px solid #34483b; padding-top:1.5rem; color:var(--sage); font-size:.8125rem; }
.footer-bottom div { display:flex; flex-wrap:wrap; gap:1rem; }
.breadcrumbs { font-size:.875rem; color:var(--sage); padding-block:1.5rem; }
.breadcrumbs ol { list-style:none; display:flex; flex-wrap:wrap; gap:.6rem; padding:0; margin:0; }
.breadcrumbs li+li::before { content:"/"; padding-right:.6rem; }
.page-hero { display:grid; grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr); gap:clamp(2rem,5vw,5rem); align-items:center; padding-block:1rem 3.5rem; }
.page-hero h1 { max-width:14ch; }
.page-hero .lede { color:var(--sage); margin-top:1.5rem; }
.page-hero img { aspect-ratio:1.5; object-fit:cover; }
.page-hero figure { min-width:0; }
.fact-strip { padding:1.5rem 0; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:1rem clamp(1.25rem,3vw,3rem); align-items:start; list-style:none; margin:0; text-align:center; }
.fact-strip li { font-size:.9375rem; }
.fact-strip strong { display:block; font-weight:700; }
.detail-split { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:clamp(2rem,6vw,6rem); align-items:start; }
.detail-split h2 { margin-bottom:1.3rem; }
.detail-split figure img { aspect-ratio:1.5; object-fit:cover; }
.detail-split.reverse>figure { order:2; }
.amenity-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); padding:0; list-style:none; gap:.8rem 1.4rem; margin-top:1.5rem; }
.amenity-list li { padding-block:.5rem; border-bottom:1px solid #c1cdc3; font-size:.9375rem; }
.photo-tour { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,.7fr); gap:1.5rem; align-items:start; }
.photo-tour img { width:100%; height:auto; }
.photo-tour figcaption { margin-top:.75rem; font-size:.875rem; color:var(--sage); }
.photo-tour a { text-decoration:none; }
.page-gallery .gallery-item { flex-basis:47%; }
.page-gallery .gallery-item img { aspect-ratio:3/2; object-fit:contain; background:var(--forest-900); }
.enquiry-callout { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1.5rem 3rem; padding-block:2.5rem; }
.enquiry-callout h2 { font-size:clamp(1.7rem,2.6vw,2.5rem); }
.enquiry-callout p { margin-top:.7rem; max-width:50ch; }
.enquiry-callout .actions { margin:0; }
.faq-layout { display:grid; grid-template-columns:minmax(0,.6fr) minmax(0,1.4fr); gap:clamp(2rem,7vw,7rem); }
.faq-intro p { margin-top:1rem; }
.faq-list details { border-bottom:1px solid #a9b7ad; }
.faq-list details:first-child { border-top:1px solid #a9b7ad; }
.faq-list summary { display:flex; align-items:center; justify-content:space-between; gap:1rem; list-style:none; padding:1.2rem 0; font-size:1.0625rem; font-weight:600; line-height:1.5; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary::after { content:"+"; flex-shrink:0; font-size:1.5rem; font-weight:400; }
.faq-list details[open]>summary::after { content:"\2212"; }
.faq-list details>div { padding:0 1.5rem 1.35rem 0; }
.faq-list details>div a { font-weight:600; }
.subnav { display:flex; flex-wrap:wrap; gap:.6rem 1.6rem; padding-block:1rem; }
.subnav a { display:inline-flex; align-items:center; min-height:2.75rem; font-size:.9375rem; }
.faq-group+.faq-group { margin-top:3rem; }
.faq-group h2 { font-size:1.7rem; margin-bottom:1.25rem; }
.utility-hero { padding-block:2rem 3rem; }
.utility-hero h1 { max-width:19ch; }
.utility-hero .lede { color:var(--sage); margin-top:1.2rem; }
.utility-photo img { height:clamp(12rem,22vw,22rem); object-fit:cover; object-position:center 70%; }
.policy-layout { display:grid; grid-template-columns:minmax(0,.5fr) minmax(0,1.5fr); gap:3rem 6rem; }
.policy-nav { display:flex; flex-direction:column; align-items:start; gap:.6rem; font-size:.9375rem; }
.policy-nav a { min-height:2.75rem; display:flex; align-items:center; }
.policy-content { max-width:68ch; }
.policy-content section { margin-top:2rem; }
.policy-content h2 { font-size:1.8rem; margin-bottom:1rem; }
.location-story+.location-story { margin-top:4rem; }
.location-story { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(2rem,5vw,5rem); align-items:center; }
.location-story img { aspect-ratio:3/2; object-fit:cover; }
.location-story h2 { margin-bottom:1.25rem; }
.location-story .source-link { display:inline-block; font-size:.875rem; font-weight:600; margin-top:.5rem; }
.travel-note { margin-top:3rem; padding:1.5rem 0 0; border-top:1px solid #a9b7ad; }
.travel-note h3 { margin-bottom:.8rem; }
.lightbox { width:min(96vw,84rem); max-height:96dvh; border:0; padding:1rem; background:var(--forest-950); color:var(--mist); overflow-y:auto; }
.lightbox::backdrop { background:rgba(3,9,6,.93); }
.lightbox-top,.lightbox-bottom { display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.lightbox-top { margin-bottom:.8rem; }
.lightbox-top p { margin:0; color:var(--sage); font-size:.875rem; }
.lightbox figure img { width:100%; height:min(68dvh,52rem); object-fit:contain; }
.lightbox figcaption { font-size:.9375rem; margin-block:.8rem; }
.lightbox-bottom>div { display:flex; gap:.6rem; }
.lightbox-bottom>a { font-size:.875rem; }
.preview-note { background:#d9965b; color:#0b1511; text-align:center; padding:.35rem 1rem; font-size:.8125rem; }
@media (min-width:70.001rem) {
  .js .site-nav[hidden] { display:flex !important; }
}
@media (max-width:70rem) {
  .js .menu-toggle { display:inline-flex; align-items:center; gap:.6rem; border:1px solid var(--line-light); background:transparent; color:var(--white); border-radius:3rem; padding:.55rem 1rem; }
  .site-nav { flex-basis:100%; padding-block:.75rem; }
  .js .site-nav { display:grid; gap:.3rem; max-height:65dvh; overflow-y:auto; }
  .js .site-nav>a { padding:.65rem .1rem; }
  .js .site-nav>.nav-book { justify-self:start; padding:.7rem 1.2rem; margin-top:.5rem; }
  .hero h1 { font-size:clamp(2.3rem,4.5vw,3.4rem); }
  .hero .actions { gap:.8rem; }
  .quick-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:50rem) {
  .page-hero { grid-template-columns:minmax(0,1fr); padding-top:1.4rem; gap:1.5rem; }
  .page-hero>figure { order:-1; }
  .hero { min-height:max(44rem,calc(100svh - 5rem)); }
  .hero-content { justify-content:flex-end; padding-block:clamp(5rem,18vh,9rem) 1.25rem; }
  .hero-copy { margin-block:auto 1.75rem; padding:0; }
  .hero-photo::after { background:linear-gradient(0deg,rgba(7,18,13,.98) 0%,rgba(7,18,13,.9) 48%,rgba(7,18,13,.38) 72%,rgba(7,18,13,.08) 100%); }
  .hero-media img { object-position:center; }
  .hero-video,.hero-video-toggle { display:none !important; }
  .page-hero img { aspect-ratio:3/2; }
  .hero h1,.page-hero h1 { max-width:22ch; font-size:clamp(2.2rem,6vw,3.2rem); }
  .hero .lede { max-width:52ch; }
  .hero-orientation { gap:.5rem 1.25rem; padding-top:1rem; }
  .hero-orientation p { max-width:44ch; font-size:.875rem; }
  .fact-strip { grid-template-columns:repeat(2,minmax(0,1fr)); text-align:left; }
  .fact-strip li:last-child:nth-child(odd) { grid-column:1/-1; text-align:center; }
  .stays-grid,.experience-layout,.booking-layout,.detail-split,.faq-layout,.policy-layout { grid-template-columns:minmax(0,1fr); }
  .stays-grid { gap:3.5rem; }
  .experience-copy { max-width:40rem; }
  .gallery-item,.page-gallery .gallery-item { flex-basis:77%; }
  .region-grid { gap:1.25rem; }
  .region-card h3 { font-size:1.4rem; }
  .region-card p { font-size:.9375rem; }
  .night-section { min-height:28rem; }
  .night-copy { max-width:23rem; }
  .night-section::before { background:linear-gradient(90deg,rgba(11,21,17,.94),rgba(11,21,17,.76) 45%,rgba(11,21,17,.15)); }
  .detail-split.reverse>figure { order:0; }
  .location-story { gap:2rem; }
}
@media (max-width:36rem) {
  html { scroll-padding-top:6rem; }
  :root { --gutter:20px; }
  .brand-logo { width:3.1rem; height:3.1rem; }
  .brand-name { font-size:.95rem; }
  .brand-name small { font-size:.58rem; }
  .brand { gap:.6rem; }
  .header-inner { gap:.5rem; padding-block:.7rem; }
  .js .menu-toggle { padding:.6rem .8rem; font-size:.875rem; }
  .hero h1 { font-size:clamp(2rem,8.5vw,2.8rem); }
  .hero .lede { font-size:1rem; margin-top:1.2rem; }
  .hero .actions { margin-top:1.3rem; }
  .orientation-links { gap:.8rem 1.5rem; }
  .quick-fields { grid-template-columns:1fr; }
  .quick-bottom .button { width:100%; }
  .gallery-item,.page-gallery .gallery-item { flex-basis:90%; }
  .section-heading { align-items:start; gap:1.1rem; margin-bottom:1.5rem; }
  .section-heading p { font-size:1rem; }
  .region-grid,.footer-main,.fine-print,.form-grid,.location-story { grid-template-columns:minmax(0,1fr); }
  .region-grid { gap:2.5rem; }
  .region-card h3 { font-size:1.75rem; }
  .region-card p { font-size:1rem; }
  .booking-form { padding:1.15rem; }
  .night-section { min-height:38rem; align-items:end; }
  .night-section>picture img { object-position:68% top; }
  .night-section::before { background:linear-gradient(0deg,rgba(11,21,17,.97),rgba(11,21,17,.94) 29%,rgba(11,21,17,.08) 72%); }
  .night-copy { padding-bottom:2.5rem; max-width:none; }
  .night-copy h2 { max-width:18ch; }
  .night-copy p { max-width:34ch; }
  .photo-tour { grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:1rem; }
  .photo-tour figcaption { font-size:.8125rem; }
  .amenity-list { gap:.5rem 1rem; }
  .lightbox { padding:.75rem; }
  .lightbox figure img { height:60dvh; }
  .lightbox-bottom>a { max-width:14ch; }
}
@media (prefers-reduced-motion:no-preference) {
  .lightbox[open] { animation:dialog-arrive 180ms ease-out; }
  @keyframes photo-arrive { from { filter:brightness(.86); } to { filter:brightness(1); } }
  @keyframes dialog-arrive { from { opacity:.6; } to { opacity:1; } }
}
@media (prefers-reduced-motion:no-preference) and (min-width:50.001rem) {
  .hero-media img { animation:photo-arrive 650ms var(--ease) both; }
  .hero-copy { animation:hero-copy-arrive 700ms var(--ease) both; }
  @keyframes hero-copy-arrive { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:none; } }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
  .hero-video,.hero-video-toggle { display:none !important; }
  .button:active,.text-link:hover span,.button:hover span[aria-hidden] { transform:none; }
}
@media (forced-colors:active) {
  .button,.icon-button,.stay-choice span { border:1px solid ButtonText; }
  .stay-choice input:checked+span { outline:2px solid Highlight; }
}
