/* =====================================================================
   Cabin Panorama – version 3 "night lodge" theme
   Loaded after site.css. Deliberately dark in every viewer theme.
   ===================================================================== */
:root,
:root:not([data-v3-x]),
:root[data-theme="dark"],
:root[data-theme="light"]{
  color-scheme:dark;
  --snow:#0E1416;      /* page */
  --paper:#161D20;     /* cards, panels */
  --ink:#ECE6DA;       /* warm white text */
  --ink-2:#A9B3B1;     /* secondary text */
  --line:#2A3437;
  --fjord:#86C9C1;     /* links, teal accents */
  --fjord-soft:#1B282B;
  --rorbu:#A9845A;     /* bronze buttons */
  --rorbu-ink:#FFFFFF;
  --sun:#D9B26F;
  --aurora:#5FC59A;
  --bronze:#A9845A;
  --bronze-hi:#C29C6F;
  --serif:"Playfair Display",Georgia,"Times New Roman",serif;
  --sans:"Montserrat",system-ui,-apple-system,"Segoe UI",sans-serif;
}
body{background:var(--snow);color:var(--ink);font-size:16px;letter-spacing:.005em}
h1,h2,h3{font-family:var(--serif);font-weight:400;letter-spacing:.005em}
h2{font-size:clamp(30px,3.6vw,44px);color:#D8E2DF}
.eyebrow{color:var(--bronze-hi);letter-spacing:.2em;font-size:11px}
.lede{color:var(--ink-2)}
a{color:var(--fjord)}

/* buttons: square bronze, small caps */
.btn{border-radius:2px;background:var(--bronze);color:#fff;text-transform:uppercase;letter-spacing:.14em;font:600 12px/1 var(--sans);padding:16px 24px}
.btn:hover{background:var(--bronze-hi);filter:none}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--bronze)}
.btn.ghost:hover{background:rgba(169,132,90,.15)}

/* ---------------- header: menu left, logo centre, tools right ---------------- */
.nav3{background:transparent;transition:background .35s,backdrop-filter .35s}
.nav3 .bar3{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:92px;transition:height .3s}
.nav3.solid{background:rgba(12,17,19,.9);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 1px 0 rgba(255,255,255,.06)}
.nav3.solid .bar3{height:72px}
.menu3{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:12px;color:#fff;font:600 11px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;justify-self:start;padding:8px 0}
.menu3:focus-visible{outline:2px solid var(--fjord);outline-offset:4px}
.logo3{display:grid;justify-items:center;text-decoration:none;color:#fff;gap:2px}
.logo3-mark{width:44px;height:33px;color:#fff;transition:width .3s,height .3s}
.nav3.solid .logo3-mark{width:34px;height:26px}
.logo3-name{font:400 17px/1 var(--serif);letter-spacing:.24em;text-transform:uppercase;margin-top:6px}
.logo3-sub{font:500 9px/1 var(--sans);letter-spacing:.32em;text-transform:uppercase;opacity:.7;margin-top:4px}
.tools3{justify-self:end;display:flex;align-items:center;gap:12px}
.nav3 .lang{border-color:rgba(255,255,255,.4)}
.nav3 .lang button{color:#fff}
.nav3 .lang button[aria-pressed="true"]{background:#fff;color:#12262C}
.nav3.solid .lang button{color:#fff}
.nav3.solid .lang{border-color:rgba(255,255,255,.3)}
.nav3.solid .lang button[aria-pressed="true"]{background:#fff;color:#12262C}
.book3{padding:13px 18px}
@media (max-width:720px){
  .nav3 .bar3{height:76px}.nav3.solid .bar3{height:64px}
  .menu3 span{display:none}
  .book3{display:none}
  .logo3-name{font-size:14px;letter-spacing:.18em}.logo3-sub{display:none}
  .logo3-mark{width:34px;height:26px}
}

/* overlay menu */
.overlay3{position:fixed;inset:0;z-index:90;background:radial-gradient(120% 80% at 80% 10%,rgba(95,197,154,.18),transparent 60%),#0B1012;color:var(--ink);display:flex;align-items:center;padding-block:calc(80px + env(safe-area-inset-top,0px)) 40px;overflow:auto}
.overlay3:not([hidden]){animation:ov3 .35s ease-out}
@keyframes ov3{from{opacity:0}to{opacity:1}}
.close3{all:unset;cursor:pointer;position:absolute;top:calc(28px + env(safe-area-inset-top,0px));left:max(16px,calc((100vw - 1180px)/2 + 40px));font:600 11px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:#fff;padding:8px 0}
.close3:focus-visible{outline:2px solid var(--fjord);outline-offset:4px}
.overlay3-in{display:grid;grid-template-columns:1.4fr 1fr;gap:48px;align-items:end;width:100%}
.menu3-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.menu3-list a{display:flex;align-items:baseline;gap:18px;text-decoration:none;color:var(--ink);font:400 clamp(34px,5.4vw,64px)/1.15 var(--serif);transition:color .2s,transform .2s}
.menu3-list a small{font:500 12px/1 var(--mono);color:var(--bronze-hi);letter-spacing:.1em}
.menu3-list a:hover,.menu3-list a[aria-current="page"]{color:var(--bronze-hi);transform:translateX(6px)}
.overlay3-side{display:grid;gap:14px;align-content:end;color:var(--ink-2);border-left:1px solid var(--line);padding-left:32px}
@media (max-width:760px){.overlay3-in{grid-template-columns:1fr}.overlay3-side{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:24px}}

/* ---------------- home hero ---------------- */
.hero3{position:relative;min-height:min(100vh,920px);display:flex;flex-direction:column;justify-content:center;color:#fff;overflow:visible;background:#0B1012;padding-block:140px 0}
.hero3-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%}
.hero3::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,12,14,.55) 0%,rgba(8,12,14,.15) 30%,rgba(8,12,14,.25) 62%,rgba(14,20,22,1) 100%)}
.hero3-in{position:relative;z-index:1;text-align:center;display:grid;justify-items:center;gap:16px;padding-bottom:150px}
.hero3-over{font:600 11px/1 var(--sans);letter-spacing:.3em;text-transform:uppercase;color:#fff;opacity:.92}
.hero3 h1{font:400 clamp(44px,7vw,92px)/1.02 var(--serif);color:#fff;text-shadow:0 2px 24px rgba(0,0,0,.35);max-width:none}
.hero3-sub{max-width:44ch;color:#DDE8E5;font-size:clamp(15px,1.4vw,18px)}
/* booking bar */
.book3-bar{position:relative;z-index:2;margin-top:-104px;margin-bottom:-40px;display:grid;grid-template-columns:repeat(4,1fr) auto;gap:10px;background:rgba(30,34,35,.94);padding:14px;max-width:min(980px,calc(100% - 32px));border-radius:2px;box-shadow:0 30px 60px -30px rgba(0,0,0,.8)}
.book3-bar label,.b3-info{display:grid;gap:6px;background:#0F1416;padding:12px 14px;border-radius:2px;color:#fff;font-weight:500}
.b3-l{font:600 9px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--bronze-hi)}
.book3-bar input,.book3-bar select{all:unset;font:500 14px/1.3 var(--sans);color:#fff;color-scheme:dark;width:100%;cursor:pointer}
.book3-bar select option{color:#12262C}
.b3-info output{font:500 14px/1.3 var(--sans)}
.book3-bar .btn{height:100%;min-height:56px}
@media (max-width:820px){.book3-bar{grid-template-columns:1fr 1fr;margin-top:-80px}.book3-bar .btn{grid-column:1/-1}}

/* ---------------- intro + carousel ---------------- */
.intro3{position:relative;padding-block:140px 110px;background:radial-gradient(70% 60% at 85% 35%,rgba(95,197,154,.22),transparent 70%),radial-gradient(60% 50% at 10% 90%,rgba(60,140,150,.18),transparent 70%),var(--snow);overflow:hidden}
.intro3-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr);gap:clamp(32px,5vw,72px);align-items:center}
.intro3-text{display:grid;gap:18px;justify-items:start}
.intro3-text p{color:var(--ink-2);max-width:44ch}
.intro3-facts{list-style:none;padding:0;margin:4px 0 10px;display:flex;gap:28px;flex-wrap:wrap}
.intro3-facts li{display:grid;gap:4px;font-size:13px;color:var(--ink-2)}
.intro3-facts b{font:400 26px/1 var(--serif);color:var(--sun)}
.car3{display:grid;gap:18px;min-width:0}
.car3-track{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:4px}
.car3-track::-webkit-scrollbar{display:none}
.car3-item{margin:0;flex:0 0 62%;scroll-snap-align:start;background:#fff;padding:6px;box-shadow:0 20px 40px -20px rgba(0,0,0,.7)}
.car3-item img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.car3-nav{display:flex;align-items:center;gap:18px;justify-content:center;font:500 12px/1 var(--mono);color:var(--ink-2)}
.car3-nav button{all:unset;cursor:pointer;color:var(--ink);font-size:20px;padding:6px 10px}
.car3-nav button:focus-visible{outline:2px solid var(--fjord)}
@media (max-width:880px){.intro3-grid{grid-template-columns:1fr}.car3-item{flex-basis:82%}}

/* ---------------- mosaic gallery ---------------- */
.mos3{padding:0;background:#0B1012}
.mos3-grid{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:clamp(140px,15vw,220px);gap:2px}
.mos3-t{all:unset;cursor:zoom-in;overflow:hidden;display:block}
.mos3-t img{width:100%;height:100%;object-fit:cover;transition:transform .6s,filter .4s;filter:saturate(.95)}
.mos3-t:hover img{transform:scale(1.05);filter:saturate(1.1)}
.mos3-t:focus-visible{outline:2px solid var(--fjord);outline-offset:-2px}
.mos3-text{grid-column:5;grid-row:1 / span 2;background:#1B2022;display:grid;align-content:center;gap:14px;padding:28px;outline:1px dashed rgba(255,255,255,.16);outline-offset:-12px;justify-items:start}
.mos3-text p{color:var(--ink-2);font-size:14px}
.mos3-text h2{font-size:clamp(26px,2.6vw,36px)}
@media (max-width:900px){.mos3-grid{grid-template-columns:repeat(3,1fr)}.mos3-text{grid-column:1 / -1;grid-row:auto;order:-1;padding:32px 24px}}

/* ---------------- wide midnight-sun image + light widget ---------------- */
.wide3{position:relative;padding:0;min-height:min(80vh,680px);display:flex;align-items:flex-start;justify-content:center;overflow:hidden;background:#20141f}
.wide3-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.wide3::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(25,14,30,.85) 0%,rgba(25,14,30,.35) 45%,rgba(14,20,22,0) 70%,rgba(14,20,22,.95) 100%)}
.wide3-in{position:relative;z-index:1;text-align:center;padding-block:110px;display:grid;justify-items:center;gap:16px}
.wide3-in h2{color:#E6E1EA;max-width:20ch}
.wide3-in p{color:#E3DCE6;max-width:60ch;opacity:.9}
.sun3{background:var(--snow);padding-block:0 100px}
.sun3 .sun{margin-top:-60px;position:relative;z-index:2;background:#151E21;border-color:#26363A}
.seasons{background:#121A1C}

/* explore + reviews spacing */
#explore{background:var(--snow)}
.tabs button{border-radius:2px;border-color:var(--line);color:var(--ink-2)}
.tabs button[aria-selected="true"]{background:var(--bronze);border-color:var(--bronze);color:#fff}
.filters button{border-radius:2px}
.filters button[aria-pressed="true"]{background:var(--bronze);border-color:var(--bronze);color:#fff}
.card img,.room .pics img,.strip img,.mosaic img,.season-grid img,.duo figure,.vk-side,.gal button,.masonry button{border-radius:2px}
.save{background:rgba(14,20,22,.75);color:#fff}
.save.on{background:var(--bronze)}

/* ---------------- location ---------------- */
.loc3{background:radial-gradient(60% 70% at 100% 40%,rgba(95,197,154,.16),transparent 70%),var(--snow)}
.loc3-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(32px,6vw,80px);align-items:center}
.loc3-fig{margin:0;background:#fff;padding:6px;box-shadow:0 30px 60px -30px rgba(0,0,0,.8);transform:rotate(-1.2deg)}
.loc3-fig img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.loc3-text{display:grid;gap:16px;justify-items:start}
.loc3-text>p{color:var(--ink-2)}
.loc3-list{list-style:none;margin:0;padding:0;display:grid;width:100%;border-top:1px solid var(--line)}
.loc3-list li{display:grid;grid-template-columns:90px 1fr;gap:14px;padding:12px 0;border-bottom:1px solid var(--line);color:var(--ink-2);font-size:15px}
.loc3-list b{font:400 18px/1.2 var(--serif);color:var(--sun)}
.loc3-cta{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}
@media (max-width:880px){.loc3-grid{grid-template-columns:1fr}.loc3-fig{transform:none}}

/* ---------------- reviews as dashed lodge cards ---------------- */
.rv{background:var(--snow)}
.rv-scores>div,.rv-tags button{background:var(--paper)}
.rv-tags button{border-radius:2px;color:var(--ink)}
.rv-tags button[aria-pressed="true"]{background:var(--bronze);color:#fff}
.rv-stage{background:#1B2022;border-radius:2px;outline:1px dashed rgba(255,255,255,.16);outline-offset:-14px;box-shadow:0 30px 60px -30px rgba(0,0,0,.8)}
.rv-q blockquote{color:#E8E2D6}
.rv-av{background:var(--bronze)}
.rv-btn{border-color:var(--line);color:var(--ink)}
.rv-btn:hover{background:var(--paper);border-color:var(--ink-2)}

/* ---------------- FAQ ---------------- */
.faq3{position:relative;overflow:hidden;background:#0B1012;padding-block:160px 120px}
.faq3-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55}
.faq3::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(14,20,22,1) 0%,rgba(14,20,22,.55) 30%,rgba(11,16,18,.85) 70%,rgba(11,16,18,1) 100%),radial-gradient(80% 50% at 50% 100%,rgba(95,197,154,.25),transparent 70%)}
.faq3-in{position:relative;z-index:2;max-width:860px;display:grid;gap:16px;justify-items:start}
.faq3-list{display:grid;gap:8px;width:100%;margin:14px 0 18px}
.faq3-q{background:rgba(34,38,39,.92);border-radius:2px}
.faq3-q summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 22px;font:400 17px/1.35 var(--serif);color:#E6E0D4}
.faq3-q summary::-webkit-details-marker{display:none}
.faq3-q summary:focus-visible{outline:2px solid var(--fjord);outline-offset:2px}
.faq3-q i{flex:none;position:relative;width:14px;height:14px}
.faq3-q i::before,.faq3-q i::after{content:"";position:absolute;left:0;right:0;top:6px;height:2px;background:#fff;transition:transform .25s}
.faq3-q i::after{transform:rotate(90deg)}
.faq3-q[open] i::after{transform:rotate(0)}
.faq3-q p{padding:0 22px 20px;color:var(--ink-2);max-width:65ch}

/* ---------------- photo strip ---------------- */
.strip3{display:grid;grid-template-columns:repeat(8,1fr);padding:0;background:#151A1C}
.strip3 a{display:block;aspect-ratio:1;overflow:hidden}
.strip3-t img{width:100%;height:100%;object-fit:cover;transition:transform .5s,opacity .3s;opacity:.9}
.strip3-t:hover img{transform:scale(1.06);opacity:1}
.strip3-lead{display:grid!important;place-content:center;justify-items:center;gap:10px;text-align:center;text-decoration:none;color:var(--ink-2);font:500 12px/1.4 var(--sans);letter-spacing:.12em;text-transform:uppercase;background:#1B2022;padding:12px}
.strip3-lead .logo3-mark{width:40px;height:30px;color:var(--ink)}
.strip3-lead:hover{color:var(--ink)}
@media (max-width:820px){.strip3{grid-template-columns:repeat(4,1fr)}}

/* ---------------- footer ---------------- */
.foot3{background:#0A0E10;color:var(--ink-2);padding-block:72px 28px;font-size:14px}
.foot3-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:32px;align-items:start}
.foot3 .logo3{justify-items:start}
.foot3 .logo3-mark{width:40px;height:30px}
.foot3-col{display:grid;gap:8px}
.foot3-col p{margin:0;color:var(--ink-2)}
.foot3-nav a{color:var(--ink-2);text-decoration:none}
.foot3-nav a:hover{color:var(--ink)}
.foot3-bottom{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:48px;padding-top:20px;border-top:1px solid var(--line);font-size:12px;letter-spacing:.06em}
.foot3-bottom a{color:var(--ink-2);text-decoration:none}
.foot3-bottom a:hover{color:var(--ink)}
@media (max-width:820px){.foot3-grid{grid-template-columns:1fr 1fr}}

/* ---------------- sub pages: centred hero, darker panels ---------------- */
.hero .wrap{text-align:center}
.hero h1,.hero .sub{margin-inline:auto}
.hero .cta{justify-content:center}
.hero .coords{color:#fff}
.page-hero .wrap{padding-block:150px 64px}
.page-hero::after,.hero.hero-bright::after{background:linear-gradient(180deg,rgba(8,12,14,.6) 0%,rgba(8,12,14,.25) 40%,rgba(14,20,22,.95) 100%)!important}
.fac,.vk{background:#121A1C}
.cta-band{background:#1B2022;color:var(--ink);border-radius:2px;outline:1px dashed rgba(255,255,255,.14);outline-offset:-12px}
.cta-band h2{color:var(--ink)}
.cta-band p{color:var(--ink-2)}
.goodtoknow,.fac-grid{background:var(--line);border-color:var(--line)}
form{background:var(--paper);border-color:var(--line)}
.trip{background:var(--fjord-soft)}
.trip .badge{background:#0E1416;color:var(--ink)}
.info dd a{color:var(--fjord)}
.chip{background:var(--fjord-soft);color:var(--ink)}
.mbar{background:#121719;box-shadow:0 -1px 0 var(--line)}
.mbar .btn.ghost{color:var(--ink)}
.to-top{background:var(--paper);color:var(--ink);border-color:var(--line)}
.plan-btn{background:var(--bronze);color:#fff}
.plan-btn b{background:#0E1416}
.toast{background:var(--paper);color:var(--ink);border:1px solid var(--line)}
.dr-panel{background:var(--paper)}
.vk-tl li::before{background:var(--paper)}
/* fixes */
.rv-q mark{background:linear-gradient(transparent 86%,rgba(194,156,111,.75) 86%);color:inherit}
.rv-q mark.hot{background:rgba(194,156,111,.28)}
.page-hero h1{font-size:clamp(34px,4.6vw,60px);max-width:18ch}
.foot3-grid{align-items:end}
/* booking bar lower: straddles the bottom edge of the hero photo */
.hero3-in{padding-bottom:120px}
.book3-bar{margin-top:-46px;margin-bottom:-46px}
.hero3::after{background:linear-gradient(180deg,rgba(8,12,14,.5) 0%,rgba(8,12,14,.1) 30%,rgba(8,12,14,.15) 70%,rgba(14,20,22,.9) 100%)}
.hero3{padding-bottom:0}
.intro3{padding-top:150px}
@media (max-width:820px){.book3-bar{margin-top:-40px}}
/* booking bar pinned to the bottom edge of the hero photo (half over the photo, half below) */
.hero3{justify-content:center;padding-block:120px 0;margin-bottom:0}
.hero3-in{padding-bottom:40px}
.book3-bar{position:absolute;left:50%;bottom:0;transform:translate(-50%,50%);width:min(980px,calc(100% - 32px));margin:0}
.intro3{padding-top:170px}
@media (max-width:820px){.book3-bar{margin:0}.intro3{padding-top:230px}}
/* hero: show more of the cabin, less sky */
.hero3-img{object-position:center 82%}
@media (max-width:820px){.hero3-img{object-position:80% 100%}}
/* gallery box on its own (photos removed) */
.mos3{background:radial-gradient(60% 80% at 50% 50%,rgba(95,197,154,.12),transparent 70%),var(--snow);padding-block:40px 110px}
.mos3-grid{display:flex;justify-content:center;padding-inline:16px}
.mos3-text{grid-column:auto;grid-row:auto;order:0;max-width:560px;width:100%;text-align:center;justify-items:center;padding:52px 40px}
.mos3-text p{font-size:15px;max-width:40ch}
/* hero photo: enlarged and anchored to the bottom, so less sky and more cabin */
.hero3-img{top:auto;bottom:0;height:128%;object-position:center bottom}
@media (max-width:820px){.hero3-img{height:118%;object-position:82% bottom}}
.hero3-sub{text-shadow:0 1px 3px rgba(0,0,0,.85),0 2px 18px rgba(0,0,0,.65)}
.hero3 h1,.hero3-over{text-shadow:0 2px 20px rgba(0,0,0,.6)}
/* hero photo: summer jacuzzi view (as in version 2) */
.hero3-img{top:0;bottom:auto;height:100%;object-position:center 42%}
@media (max-width:820px){.hero3-img{height:100%;object-position:46% 40%}}
.hero3::after{background:linear-gradient(180deg,rgba(8,12,14,.5) 0%,rgba(8,12,14,.12) 28%,rgba(8,12,14,.22) 65%,rgba(14,20,22,.92) 100%)}
