
:root{
  --pine:#14231d; --pine-2:#1b2f27; --pine-3:#22392f;
  --slate:#26343b; --slate-2:#33454e;
  --mist:#a9bab3; --cream:#f2ede3; --paper:#e9e3d6;
  --text:#e8e4da; --muted:#a4b0aa;
  --cta:#ff5f0f; --cta-hover:#ff7a33; --cta-ink:#140800;
  --radius:14px;
  --serif:"Fraunces", Georgia, serif;
  --sans:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:76px}
body{margin:0;background:var(--pine);color:var(--text);font:400 17px/1.65 var(--sans);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.12;margin:0 0 .5em;color:var(--cream)}
h2{font-size:clamp(2rem,4vw,3.1rem);letter-spacing:-.01em}
h3{font-size:1.45rem}
p{margin:0 0 1em}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
.eyebrow{font:600 .78rem/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--mist);margin-bottom:14px;display:block}
section{padding:96px 0}
.alt{background:var(--slate)}
.lede{font-size:1.15rem;color:#d9d6cc;max-width:720px}

/* CTA – deliberately off-palette blaze orange */
.btn-book{display:inline-flex;align-items:center;gap:10px;background:var(--cta);color:var(--cta-ink);font:700 .98rem/1 var(--sans);letter-spacing:.02em;text-decoration:none;padding:16px 26px;border-radius:999px;border:0;cursor:pointer;box-shadow:0 8px 28px rgba(255,95,15,.35);transition:transform .15s, background .15s, box-shadow .15s;white-space:nowrap}
.btn-book:hover{background:var(--cta-hover);transform:translateY(-1px);box-shadow:0 12px 34px rgba(255,95,15,.5)}
.btn-book:focus-visible{outline:3px solid #fff;outline-offset:3px}
.btn-book svg{width:18px;height:18px}
.btn-ghost{display:inline-flex;align-items:center;gap:8px;color:var(--cream);text-decoration:none;font:600 .95rem/1 var(--sans);padding:15px 22px;border:1px solid rgba(242,237,227,.4);border-radius:999px}
.btn-ghost:hover{background:rgba(242,237,227,.08)}

/* Header */
.hdr{position:fixed;inset:0 0 auto 0;z-index:50;transition:background .25s, box-shadow .25s}
.hdr.solid{background:rgba(20,35,29,.94);backdrop-filter:blur(10px);box-shadow:0 1px 0 rgba(255,255,255,.06)}
.hdr .wrap{display:flex;align-items:center;gap:28px;height:72px}
.logo{font:700 1.35rem/1 var(--serif);letter-spacing:.06em;text-decoration:none;color:var(--cream);margin-right:auto}
.logo small{display:block;font:500 .62rem/1.4 var(--sans);letter-spacing:.2em;color:var(--mist);text-transform:uppercase}
.nav{display:flex;gap:22px}
.nav a{text-decoration:none;font:500 .9rem/1 var(--sans);color:#d6d9d2;opacity:.9}
.nav a:hover{color:#fff}
.hdr .btn-book{padding:12px 20px;font-size:.92rem}
@media (max-width:980px){.nav{display:none}}

/* Mobile sticky bar */
.mbar{display:none}
@media (max-width:760px){
  .mbar{display:flex;position:fixed;inset:auto 0 0 0;z-index:60;background:var(--pine);border-top:1px solid rgba(255,255,255,.1);padding:10px 14px calc(10px + env(safe-area-inset-bottom));align-items:center;gap:12px}
  .mbar .meta{font-size:.78rem;line-height:1.3;color:var(--muted)}
  .mbar .meta b{color:var(--cream);font-size:.9rem}
  .mbar .btn-book{margin-left:auto;padding:14px 20px}
  .hdr .btn-book{display:none}
  body{padding-bottom:76px}
}

/* Hero */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:flex-end;padding:0 0 64px;overflow:hidden}
.hero img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,18,15,.78) 0%,rgba(10,18,15,.45) 45%,rgba(10,18,15,0) 75%),linear-gradient(180deg,rgba(10,18,15,.55) 0%,rgba(10,18,15,0) 25%,rgba(14,25,21,.92) 100%)}
.hero .wrap{position:relative;z-index:2;width:100%}
.badge{display:inline-flex;align-items:center;gap:10px;background:rgba(242,237,227,.12);border:1px solid rgba(242,237,227,.25);backdrop-filter:blur(6px);padding:8px 14px;border-radius:999px;font:600 .85rem/1 var(--sans);color:var(--cream);margin-bottom:22px}
.badge .star{color:#ffd27a;white-space:nowrap}
.hero h1{font-size:clamp(2.6rem,6.4vw,5.4rem);max-width:14ch;margin-bottom:18px;letter-spacing:-.015em}
.hero h1 em{font-style:italic;padding-right:.12em;font-weight:400;color:#cfe0d8}
.hero p.sub{font-size:clamp(1.05rem,1.6vw,1.25rem);max-width:640px;color:#e3e6df;margin-bottom:30px}
.hero .ctas{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:40px}
.facts{display:flex;flex-wrap:wrap;gap:0;border-top:1px solid rgba(255,255,255,.18);padding-top:22px}
.facts div{padding:0 28px 0 0;margin-right:28px;border-right:1px solid rgba(255,255,255,.18)}
.facts div:last-child{border:0}
.facts b{display:block;font:600 1.6rem/1.1 var(--serif);color:var(--cream)}
.facts span{font-size:.82rem;color:var(--muted);letter-spacing:.04em}
@media (max-width:640px){.facts div{padding:0 16px 12px 0;margin-right:16px}.facts b{font-size:1.25rem}}

/* Intro */
.intro-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:center}
.intro-grid img{border-radius:var(--radius);aspect-ratio:4/5;object-fit:cover;width:100%}
.ticks{list-style:none;padding:0;margin:26px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:12px 22px}
.ticks li{padding-left:26px;position:relative;font-size:.97rem;color:#dcdcd2}
.ticks li:before{content:"";position:absolute;left:0;top:.55em;width:12px;height:2px;background:var(--mist)}
@media (max-width:900px){.intro-grid{grid-template-columns:1fr}.intro-grid img{aspect-ratio:3/2}}

/* Feature sections (sauna / dome / hot tub / river) */
.feature{display:grid;grid-template-columns:1.15fr 1fr;gap:0;align-items:stretch;min-height:560px}
.feature.flip{grid-template-columns:1fr 1.15fr}
.feature.flip .f-media{order:2}
.f-media{position:relative;overflow:hidden}
.f-media img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.f-media .thumbs{position:absolute;left:18px;bottom:18px;display:flex;gap:10px;z-index:2}
.f-media .thumbs img{position:static;width:110px;height:74px;border-radius:8px;border:2px solid rgba(255,255,255,.85);cursor:pointer;object-fit:cover}
.f-copy{padding:72px 64px;display:flex;flex-direction:column;justify-content:center;background:var(--pine-2)}
.feature:nth-of-type(even) .f-copy{background:var(--slate)}
.f-copy .num{font:400 .85rem/1 var(--serif);color:var(--mist);letter-spacing:.2em;margin-bottom:18px}
.f-copy ul{padding-left:18px;margin:6px 0 26px;color:#d6d8d0}
.f-copy ul li{margin-bottom:6px}
.f-copy .btn-book{align-self:flex-start}
@media (max-width:900px){.feature,.feature.flip{grid-template-columns:1fr}.feature.flip .f-media{order:0}.f-media{min-height:320px}.f-copy{padding:44px 24px}.f-media .thumbs img{width:84px;height:58px}}

/* Inside */
.inside-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:40px}
.card{background:var(--pine-2);border-radius:var(--radius);overflow:hidden;border:1px solid rgba(255,255,255,.06)}
.alt .card{background:var(--pine)}
.card img{width:100%;aspect-ratio:3/2;object-fit:cover;cursor:pointer}
.card .c{padding:22px 22px 24px}
.card h3{font-size:1.25rem;margin-bottom:6px}
.card p{font-size:.95rem;color:#c9cdc5;margin:0}
@media (max-width:900px){.inside-grid{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.inside-grid{grid-template-columns:1fr}}

/* Bedrooms */
.beds-summary{display:flex;flex-wrap:wrap;gap:12px;margin:26px 0 8px}
.pill{border:1px solid rgba(169,186,179,.4);border-radius:999px;padding:9px 16px;font:500 .9rem/1 var(--sans);color:var(--cream)}
.bed-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:34px}
.bed .bedline{display:flex;align-items:center;gap:10px;margin:2px 0 10px;font:600 .95rem/1.3 var(--sans);color:#ffd9c2}
.bed .bedline svg{width:22px;height:22px;flex:none;color:var(--mist)}
.bed .floor{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--mist);margin-bottom:6px;display:block}
.bath-note{margin-top:28px;color:#cfd3cb;font-size:.98rem}
@media (max-width:900px){.bed-grid{grid-template-columns:1fr}}

/* Amenities */
.amen{columns:3;column-gap:40px;margin-top:34px;padding:0;list-style:none}
.amen li{break-inside:avoid;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.08);font-size:.97rem;color:#dbdcd4}
@media (max-width:900px){.amen{columns:2}}
@media (max-width:560px){.amen{columns:1}}

/* Gallery */
.gal{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:190px;gap:10px;margin-top:36px}
.gal button{padding:0;border:0;background:none;cursor:pointer;overflow:hidden;border-radius:10px;position:relative}
.gal button img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.gal button:hover img{transform:scale(1.05)}
.gal .big{grid-column:span 2;grid-row:span 2}
.gal .hide{display:none}
.gal.all .hide{display:block}
.gal-more{margin-top:26px;text-align:center}
@media (max-width:760px){.gal{grid-template-columns:repeat(2,1fr);grid-auto-rows:140px}}

/* Lightbox */
.lb{position:fixed;inset:0;z-index:100;background:rgba(8,12,10,.96);display:none;align-items:center;justify-content:center;flex-direction:column}
.lb.open{display:flex}
.lb img{max-width:92vw;max-height:80vh;border-radius:8px;object-fit:contain}
.lb p{color:#cfd3cb;font-size:.95rem;margin:14px 20px 0;text-align:center;max-width:800px}
.lb .x,.lb .prev,.lb .next{position:absolute;background:rgba(255,255,255,.1);border:0;color:#fff;width:52px;height:52px;border-radius:50%;font-size:26px;cursor:pointer}
.lb .x{top:18px;right:18px}
.lb .prev{left:18px;top:50%}
.lb .next{right:18px;top:50%}
.lb .count{position:absolute;top:30px;left:24px;color:var(--muted);font-size:.9rem}

/* Reviews */
.rv-top{display:grid;grid-template-columns:auto 1fr;gap:56px;align-items:center;margin:30px 0 44px}
.score{text-align:center}
.score b{font:600 5rem/1 var(--serif);color:var(--cream);display:block}
.score .stars{color:#ffd27a;letter-spacing:4px;font-size:1.2rem}
.score span{display:block;color:var(--muted);font-size:.9rem;margin-top:6px}
.score .gf{display:inline-block;margin-top:14px;border:1px solid rgba(255,210,122,.5);color:#ffe2a6;border-radius:999px;padding:7px 14px;font-size:.82rem;font-weight:600}
.cats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px 34px}
.cat{font-size:.92rem;color:#d4d7cf}
.cat .bar{height:4px;background:rgba(255,255,255,.12);border-radius:4px;margin-top:6px}
.cat .bar i{display:block;height:100%;background:var(--mist);border-radius:4px}
.cat b{float:right;color:var(--cream)}
.rv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.rv{background:var(--pine-2);border-radius:var(--radius);padding:28px;border:1px solid rgba(255,255,255,.06);display:flex;flex-direction:column}
.alt .rv{background:var(--pine)}
.rv .stars{color:#ffd27a;font-size:.95rem;letter-spacing:2px;margin-bottom:12px}
.rv blockquote{margin:0 0 18px;font:400 1.04rem/1.6 var(--serif);color:#ebe7dc;flex:1}
.rv cite{font-style:normal;font-size:.88rem;color:var(--muted)}
.rv cite b{color:var(--cream);font-weight:600}
.rv-src{margin-top:26px;font-size:.88rem;color:var(--muted)}
@media (max-width:900px){.rv-top{grid-template-columns:1fr;gap:30px}.cats{grid-template-columns:1fr 1fr}.rv-grid{grid-template-columns:1fr}}

/* Hosts */
.host{display:grid;grid-template-columns:.9fr 1.1fr;gap:64px;align-items:center}
.host-card{background:var(--pine);border-radius:20px;padding:40px;border:1px solid rgba(255,255,255,.08)}
.mono{width:86px;height:86px;border-radius:50%;background:var(--slate-2);display:flex;align-items:center;justify-content:center;font:600 1.6rem/1 var(--serif);color:var(--cream);border:2px solid var(--mist);margin-bottom:18px}
.hstats{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:24px}
.hstats div{border-top:1px solid rgba(255,255,255,.12);padding-top:12px}
.hstats b{font:600 1.7rem/1 var(--serif);color:var(--cream);display:block}
.hstats span{font-size:.85rem;color:var(--muted)}
@media (max-width:900px){.host{grid-template-columns:1fr;gap:36px}}

/* Things to do */
.ttd-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:40px}
.ttd{background:var(--pine-2);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;border:1px solid rgba(255,255,255,.06)}
.ttd .im{position:relative}
.ttd .im img{width:100%;aspect-ratio:4/3;object-fit:cover}
.ttd .dist{position:absolute;top:12px;left:12px;background:rgba(20,35,29,.88);color:var(--cream);font:600 .78rem/1 var(--sans);padding:7px 11px;border-radius:999px;letter-spacing:.02em}
.type-card{aspect-ratio:4/3;background:radial-gradient(circle at 30% 20%,#3a5260,#1b2f27 70%);display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--cream)}
.type-card span{font:italic 600 2.4rem/1 var(--serif)}
.type-card small{margin-top:10px;font:600 .72rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--mist)}
.ttd .c{padding:20px 20px 16px;flex:1;display:flex;flex-direction:column}
.ttd h3{font-size:1.2rem;margin-bottom:6px}
.ttd p{font-size:.93rem;color:#c9cdc5;flex:1}
.ttd .credit{font-size:.72rem;color:#7f8d87;margin:8px 0 0}
.ttd .credit a{color:#93a29b}
@media (max-width:1000px){.ttd-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.ttd-grid{grid-template-columns:1fr}}

/* Booking */
.book{background:var(--paper);color:#1f2a25}
.book h2{color:var(--pine)}
.book .eyebrow{color:#5c6f66}
.book-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:56px;align-items:start}
.book .lede{color:#3b4a43}
.widget-wrap{background:#fff;border-radius:18px;padding:22px;box-shadow:0 20px 60px rgba(20,35,29,.15);min-height:420px;border-top:6px solid var(--cta)}
.widget-fallback{display:none;text-align:center;padding:40px 20px;color:#3b4a43}
.widget-fallback.show{display:block}
.widget-fallback .btn-book{margin-top:12px}
.know{list-style:none;padding:0;margin:26px 0;display:grid;gap:12px}
.know li{display:flex;gap:12px;font-size:.98rem;color:#2c3833}
.know li b{min-width:110px;color:var(--pine)}
.direct-why{background:#fff;border-radius:14px;padding:22px 24px;margin-top:10px;border-left:4px solid var(--cta)}
.direct-why h3{color:var(--pine);font-size:1.15rem;margin-bottom:10px}
.direct-why ul{margin:0;padding-left:18px;color:#34413b;font-size:.95rem}
.contact-line{margin-top:20px;font-size:.98rem;color:#34413b}
.contact-line a{color:var(--pine);font-weight:600}
@media (max-width:900px){.book-grid{grid-template-columns:1fr}}

/* FAQ */
.faq{max-width:860px;margin:36px auto 0}
.faq details{border-bottom:1px solid rgba(255,255,255,.12);padding:4px 0}
.faq summary{list-style:none;cursor:pointer;padding:20px 40px 20px 0;font:600 1.12rem/1.4 var(--serif);color:var(--cream);position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"+";position:absolute;right:6px;top:16px;font:300 1.7rem/1 var(--sans);color:var(--mist);transition:transform .2s}
.faq details[open] summary:after{transform:rotate(45deg)}
.faq details p{color:#cfd3cb;margin:0 0 20px;max-width:760px}

/* Final CTA band */
.band{position:relative;padding:130px 0;text-align:center;overflow:hidden}
.band img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.band:after{content:"";position:absolute;inset:0;background:rgba(14,25,21,.62)}
.band .wrap{position:relative;z-index:2}
.band h2{font-size:clamp(2.2rem,5vw,3.8rem)}
.band p{max-width:560px;margin:0 auto 30px;color:#e2e5de}

footer{background:#0e1914;padding:56px 0 40px;font-size:.88rem;color:#8e9c96}
.f-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:40px}
footer h4{color:var(--cream);font:600 1rem/1.3 var(--serif);margin:0 0 12px}
footer a{color:#b9c6c0}
footer .credits{margin-top:36px;border-top:1px solid rgba(255,255,255,.08);padding-top:20px;font-size:.78rem;line-height:1.7}
@media (max-width:800px){.f-grid{grid-template-columns:1fr}}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* --- v2 additions --- */
picture{display:block}
.gal picture{height:100%}
.f-media picture,.hero picture,.band picture,.page-hero picture{position:static}
.price-line{display:inline-block;margin:-10px 0 26px;font:600 1rem/1.4 var(--sans);color:#fff;background:rgba(20,35,29,.6);border:1px solid rgba(255,255,255,.18);padding:10px 16px;border-radius:12px}
.price-line a{color:#ffb98f}
.more-link{display:inline-flex;align-items:center;gap:8px;margin-top:30px;color:var(--cream);font-weight:600;text-decoration:none;border-bottom:1px solid rgba(242,237,227,.4);padding-bottom:3px}
.more-link:hover{border-color:var(--cta);color:#fff}
.page-hero{position:relative;padding:150px 0 70px;overflow:hidden}
.page-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.page-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,18,15,.88),rgba(10,18,15,.55))}
.page-hero .wrap{position:relative;z-index:2}
.page-hero h1{font-size:clamp(2.3rem,5vw,4rem);max-width:18ch}
.crumbs{font-size:.85rem;color:var(--muted);margin-bottom:16px}
.crumbs a{color:#cfd8d3}
.prose{max-width:780px}
.prose h2{margin-top:56px}
.prose h3{margin-top:30px}
.prose ul{color:#d6d8d0}
.season{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin-top:30px}
.season .card .c{padding:26px}
.facts-table{width:100%;border-collapse:collapse;margin-top:24px;font-size:.97rem}
.facts-table th,.facts-table td{text-align:left;padding:12px 10px;border-bottom:1px solid rgba(255,255,255,.1)}
.facts-table th{color:var(--mist);font-weight:600;width:38%}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:30px}
@media (max-width:800px){.season,.contact-grid{grid-template-columns:1fr}}
.nav a[aria-current="page"]{color:#fff;border-bottom:2px solid var(--cta);padding-bottom:4px}
footer .f-h{color:var(--cream);font:600 1rem/1.3 var(--serif);margin:0 0 12px;letter-spacing:0}
img{height:auto}
.more-link svg{width:18px;height:18px;flex:none}
