/* The Fold – concept design by Happy Desk (2026-10). Travel-magazine layout, their own photography. */
:root{
  --mist:#EEF0EA; --paper:#F8F8F4; --ink:#101B24; --ink-2:#3B4751; --ink-3:#5D6871;
  --sage:#6F8B76; --sage-d:#46604F; --sage-l:#DCE3DA;
  --copper:#B5653A; --copper-d:#94491F; --copper-l:#F1DCCB;
  --night:#0D1622; --night-2:#152238; --star:#F4E9D6;
  --line:rgba(16,27,36,.14); --line-n:rgba(244,233,214,.18);
  --wrap:1640px; --gut:clamp(16px,4vw,56px);
  --serif:"Gloock",Georgia,serif; --sans:"Figtree",system-ui,sans-serif;
  --ease:cubic-bezier(.22,.7,.2,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--mist);color:var(--ink);font:400 17px/1.6 var(--sans);overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--copper);outline-offset:3px}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.08;letter-spacing:-.01em;margin:0;text-wrap:balance}
h1{font-size:clamp(40px,5.6vw,88px)}
h2{font-size:clamp(32px,3.8vw,60px)}
h3{font-size:clamp(24px,2vw,32px)}
p{margin:0 0 1em;text-wrap:pretty}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--ink);color:#fff;padding:10px 16px;text-decoration:none}
.skip:focus{top:12px}
.kicker{display:block;font:600 15px/1.3 var(--sans);color:var(--copper-d);margin-bottom:14px}
.on-dark .kicker{color:#E7A57C}
.lead{font-size:clamp(18px,1.35vw,21px);line-height:1.55;color:var(--ink-2);max-width:62ch}
.on-dark .lead{color:rgba(244,233,214,.86)}
.cap{font-size:13.5px;color:var(--ink-3);margin-top:8px}
.on-dark .cap{color:rgba(244,233,214,.7)}

/* buttons: label says what happens */
.btn{display:inline-flex;align-items:center;gap:10px;min-height:50px;padding:12px 24px;font:600 16px/1.2 var(--sans);text-decoration:none;border:1.5px solid currentColor;border-radius:0;cursor:pointer;transition:background .25s,color .25s,border-color .25s;background:transparent;color:var(--ink)}
.btn svg{width:18px;height:18px;transition:transform .3s var(--ease)}
.btn:hover svg{transform:translateX(4px)}
.btn-copper{background:var(--copper-d);border-color:var(--copper-d);color:#fff}
.btn-copper:hover{background:#7C3C17;border-color:#7C3C17}
.btn-ghost-light{color:#fff;border-color:rgba(255,255,255,.75)}
.btn-ghost-light:hover{background:#fff;color:var(--ink)}
.btn-ink:hover{background:var(--ink);color:#fff}
.on-dark .btn-ink{color:var(--star)}
.on-dark .btn-ink:hover{background:var(--star);color:var(--night)}
.textlink{font-weight:600;text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:4px;text-decoration-color:var(--copper)}
.textlink:hover{color:var(--copper-d)}

/* concept ribbon */
.concept{background:var(--ink);color:rgba(255,255,255,.82);font-size:13px;text-align:center;padding:7px 16px}

/* header */
.site-head{position:sticky;top:0;z-index:50;background:rgba(238,240,234,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);transition:background .35s,border-color .35s}
.site-head .bar{display:flex;align-items:center;justify-content:space-between;gap:24px;height:78px}
.brand{display:flex;align-items:center;flex:none}
.brand img{height:46px;width:auto}
.brand .lg-w{display:none}
.nav{display:flex;align-items:center;gap:clamp(18px,2.2vw,36px)}
.nav a{font-weight:500;font-size:16px;text-decoration:none;padding:8px 0;position:relative}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1.5px;background:var(--copper);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.nav a:hover::after,.nav a[aria-current=page]::after{transform:scaleX(1)}
.nav .btn{padding:10px 20px;min-height:46px}
.nav .btn::after{display:none}
.menu-btn{display:none;background:none;border:0;color:inherit;font:600 16px var(--sans);min-height:46px;padding:8px 4px;cursor:pointer;align-items:center;gap:10px}
.menu-btn i{display:block;width:24px;height:1.5px;background:currentColor;position:relative}
.menu-btn i::before,.menu-btn i::after{content:"";position:absolute;left:0;width:24px;height:1.5px;background:currentColor;top:-7px}
.menu-btn i::after{top:7px}
/* transparent over the home hero */
.home .site-head.over{background:transparent;border-color:transparent;backdrop-filter:none;color:#fff}
.home .site-head.over .lg-i{display:none}.home .site-head.over .lg-w{display:block}
.home .site-head{position:fixed;left:0;right:0}
.home .site-head.over .nav .btn{background:transparent;border-color:rgba(255,255,255,.8);color:#fff}

@media (max-width:980px){
  .nav{position:fixed;inset:0;top:0;background:var(--night);color:var(--star);flex-direction:column;align-items:flex-start;justify-content:center;padding:96px var(--gut) 40px;gap:8px;transform:translateY(-102%);transition:transform .45s var(--ease);visibility:hidden}
  .nav.open{transform:none;visibility:visible}
  .nav a{font:400 34px/1.2 var(--serif);padding:8px 0}
  .nav .btn{font:600 17px var(--sans);margin-top:24px;background:var(--copper-d);border-color:var(--copper-d);color:#fff}
  .menu-btn{display:inline-flex;position:relative;z-index:70}
  body.menu-open .menu-btn{color:var(--star)}
  body.menu-open .site-head .lg-i{display:none}
  body.menu-open .site-head .lg-w{display:block}
  .brand{position:relative;z-index:70}
  .site-head .bar{height:68px}
  .brand img{height:40px}
}

/* mobile sticky booking bar */
.book-bar{display:none}
@media (max-width:760px){
  .book-bar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;gap:10px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:rgba(13,22,34,.96);transform:translateY(110%);transition:transform .35s var(--ease)}
  .book-bar.show{transform:none}
  .book-bar a{flex:1;justify-content:center;min-height:48px;font-size:15px;padding:10px 12px}
  .book-bar .btn-ink{color:var(--star);border-color:rgba(244,233,214,.5)}
  body{padding-bottom:0}
}

/* ---------- HOME: cover hero ---------- */
.cover{position:relative;min-height:max(640px,100svh);max-height:1100px;color:#fff;overflow:hidden;background:var(--night);display:flex;align-items:flex-end}
.cover .slides,.cover .slide{position:absolute;inset:0}
.cover .slide{opacity:0;transition:opacity 1.6s ease}
.cover .slide.on{opacity:1}
.cover .slide img{width:100%;height:100%;object-fit:cover;transform:scale(1.06);transition:transform 9s linear}
.cover .slide.on img{transform:scale(1)}
.cover::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,22,34,.62) 0,rgba(13,22,34,.38) 38%,rgba(13,22,34,.08) 70%),linear-gradient(180deg,rgba(13,22,34,.55) 0,rgba(13,22,34,.1) 24%,rgba(13,22,34,.2) 50%,rgba(13,22,34,.85) 100%);pointer-events:none}
.cover h1,.cover .sub{text-shadow:0 1px 2px rgba(13,22,34,.45),0 4px 28px rgba(13,22,34,.5)}
.cover .inner{position:relative;z-index:2;width:100%;padding-top:150px;padding-bottom:clamp(28px,4vw,56px)}
.cover-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:clamp(28px,4vw,72px);align-items:end}
.cover h1{max-width:15ch;text-shadow:0 2px 30px rgba(0,0,0,.25)}
.cover .sub{font-size:clamp(17px,1.35vw,21px);max-width:52ch;margin:22px 0 30px;color:rgba(255,255,255,.92)}
.cover .ctas{display:flex;flex-wrap:wrap;gap:12px}
.coverlines{list-style:none;margin:0;padding:18px 24px 6px;background:rgba(13,22,34,.42);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.16)}
.coverlines li:last-child{border-bottom:0}
.coverlines li{border-bottom:1px solid rgba(255,255,255,.28)}
.coverlines a{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:4px 16px;padding:14px 0;text-decoration:none}
.coverlines b{font:400 clamp(22px,1.7vw,28px)/1.15 var(--serif)}
.coverlines span{font-size:15px;color:rgba(255,255,255,.85);grid-column:1}
.coverlines em{font-style:normal;font-size:15px;font-weight:600;grid-column:2;grid-row:1/3;align-self:center;white-space:nowrap}
.coverlines a:hover b{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.coverlines .lbl{font-size:14px;font-weight:600;padding:0 0 10px;border:0;color:rgba(255,255,255,.85)}
.cover .slidecap{position:absolute;z-index:2;right:var(--gut);top:120px;font-size:13.5px;color:rgba(255,255,255,.85);text-align:right}
.cover .dots{display:flex;gap:8px;margin-top:22px}
.cover .dots button{width:34px;height:24px;border:0;background:none;padding:0;cursor:pointer;position:relative}
.cover .dots button::before{content:"";position:absolute;left:0;right:0;top:11px;height:2px;background:rgba(255,255,255,.4)}
.cover .dots button.on::before{background:#fff}
@media (max-width:900px){
  .cover-grid{grid-template-columns:1fr}
  .cover .slidecap{display:none}
  .cover{min-height:auto}
  .cover .inner{padding-top:min(46vh,380px)}
  .cover::after{background:linear-gradient(180deg,rgba(13,22,34,.55) 0,rgba(13,22,34,.35) 30%,rgba(13,22,34,.62) 55%,rgba(13,22,34,.88) 100%)}
  .home .site-head.over{background:rgba(13,22,34,.55);backdrop-filter:blur(10px)}
}
@media (max-width:640px){.concept .long{display:none}}

/* sections */
.sec{padding:clamp(72px,8vw,128px) 0}
.sec-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,80px);align-items:end;margin-bottom:clamp(36px,4vw,60px)}
.sec-head .lead{margin:0}
@media (max-width:900px){.sec-head{grid-template-columns:1fr}}

/* cabin finder */
.finder{display:flex;flex-wrap:wrap;align-items:center;gap:10px 10px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:clamp(28px,3vw,44px)}
.finder .q{font-weight:600;margin-right:8px}
.chip{position:relative}
.chip input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.chip span{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:9px 16px;border:1.5px solid var(--line);background:var(--paper);font-weight:500;font-size:15.5px;transition:background .2s,border-color .2s,color .2s}
.chip span::before{content:"";width:14px;height:14px;border:1.5px solid var(--ink-3);transition:all .2s}
.chip input:checked+span{background:var(--ink);color:#fff;border-color:var(--ink)}
.chip input:checked+span::before{background:var(--copper);border-color:var(--copper);box-shadow:inset 0 0 0 2px var(--ink)}
.chip input:focus-visible+span{outline:3px solid var(--copper);outline-offset:2px}
.finder .result{flex-basis:100%;font-size:15.5px;color:var(--ink-2);margin-top:4px;min-height:1.6em}
.reset{background:none;border:0;font:600 15px var(--sans);text-decoration:underline;text-underline-offset:3px;cursor:pointer;color:var(--copper-d);min-height:44px}

.cabins{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(40px,4vw,72px) clamp(24px,3vw,56px)}
.cabin{transition:opacity .45s,filter .45s}
.cabin.dim{opacity:.32;filter:grayscale(.8)}
.cabin .ph{display:block;position:relative;aspect-ratio:3/2;overflow:hidden;background:var(--sage-l)}
.cabin .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .7s,transform 1.2s var(--ease)}
.cabin .ph img+img{opacity:0}
.cabin:hover .ph img+img,.cabin:focus-within .ph img+img{opacity:1}
.cabin:hover .ph img{transform:scale(1.03)}
.cabin .ph .tag{position:absolute;left:0;bottom:0;background:var(--paper);padding:8px 14px;font-size:14px;font-weight:600;z-index:2}
.cabin .top{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin:22px 0 8px;flex-wrap:wrap}
.cabin .price{font-weight:600;white-space:nowrap}
.cabin .price small{display:block;font-weight:400;font-size:14px;color:var(--ink-3);text-align:right}
.cabin .feat{display:flex;flex-wrap:wrap;gap:6px 18px;list-style:none;padding:0;margin:0 0 16px;font-size:15.5px;color:var(--ink-2)}
.cabin .feat li{display:flex;align-items:center;gap:7px}
.cabin .feat li::before{content:"";width:7px;height:7px;background:var(--sage);transform:rotate(45deg)}
.cabin .feat li.no::before{background:none;border:1.5px solid var(--ink-3)}
.cabin blockquote{margin:0 0 20px;padding-left:18px;border-left:2px solid var(--copper);font-size:16px;color:var(--ink-2)}
.cabin blockquote cite{display:block;font-style:normal;font-weight:600;font-size:14.5px;margin-top:4px;color:var(--ink)}
@media (max-width:760px){.cabins{grid-template-columns:1fr}}

/* farm story */
.farm{background:var(--paper);border-top:1px solid var(--line)}
.farm-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(32px,5vw,96px);align-items:start}
.farm .big{position:sticky;top:140px}
@media (max-width:900px){.farm .big{position:relative;top:auto}}
.farm .big img{width:100%;aspect-ratio:5/4;object-fit:cover}
.farm .inset{position:absolute;right:-1px;bottom:-1px;width:42%;border:8px solid var(--paper);border-right:0;border-bottom:0;background:var(--paper)}
.farm .inset img{aspect-ratio:4/3;object-fit:cover}
.nums{list-style:none;padding:0;margin:28px 0 30px;border-top:1px solid var(--line)}
.nums li{display:grid;grid-template-columns:minmax(120px,170px) 1fr;gap:18px;align-items:baseline;padding:14px 0;border-bottom:1px solid var(--line)}
.nums b{font:400 clamp(30px,2.6vw,42px)/1 var(--serif);color:var(--sage-d)}
.tv{display:flex;gap:18px;align-items:center;padding:18px 20px;background:var(--mist);border-left:3px solid var(--copper);margin-top:8px}
.tv p{margin:0}
.tv .textlink{white-space:nowrap}
@media (max-width:900px){.farm-grid{grid-template-columns:1fr}.tv{flex-direction:column;align-items:flex-start}}

/* good to know */
.know-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 clamp(24px,3vw,56px);border-top:1px solid var(--line)}
.know{padding:26px 0 28px;border-bottom:1px solid var(--line)}
.know h3{font-size:clamp(22px,1.6vw,26px);margin-bottom:10px;display:flex;gap:12px;align-items:center}
.know h3 svg{width:18px;height:18px;flex:none;color:var(--copper)}
.know p{margin:0;color:var(--ink-2);font-size:16.5px}
@media (max-width:1000px){.know-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.know-grid{grid-template-columns:1fr}}

/* evenings: dusk to night */
.evening{position:relative;color:var(--star);background:linear-gradient(180deg,var(--mist) 0,#DDD2C4 50px,#A8958D 120px,#5A5868 190px,#24304A 260px,var(--night) 340px);padding-top:clamp(300px,24vw,360px);overflow:hidden}
.stars{position:absolute;left:0;right:0;top:0;height:330px;pointer-events:none}
.stars i{position:absolute;width:var(--s,10px);height:var(--s,10px);background:var(--star);clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%);opacity:0;transform:scale(.4);transition:opacity 1.4s ease var(--d,0s),transform 1.4s var(--ease) var(--d,0s)}
.evening.in .stars i{opacity:var(--o,.8);transform:scale(1)}
.evening.in .stars i.tw{animation:tw 4s ease-in-out infinite var(--d,0s)}
@keyframes tw{0%,100%{opacity:var(--o,.8)}50%{opacity:.2}}
.evening .wrap{position:relative;z-index:1}
.eve-grid{position:relative;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(16px,2vw,32px)}
.eve-text{grid-column:1/6;align-self:center}
.eve-main{grid-column:6/13}
.eve-main img{width:100%;aspect-ratio:16/10;object-fit:cover}
.eve-row{grid-column:1/13;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,32px);margin-top:clamp(16px,2vw,32px)}
.eve-row img{width:100%;aspect-ratio:4/3;object-fit:cover}
.eve-text blockquote{margin:28px 0;font:400 clamp(22px,1.8vw,28px)/1.3 var(--serif)}
.eve-text blockquote cite{display:block;font:600 15px var(--sans);margin-top:10px;color:rgba(244,233,214,.75)}
.skylinks{display:flex;flex-wrap:wrap;gap:10px 22px;font-size:15.5px}
@media (max-width:900px){.eve-text,.eve-main{grid-column:1/13}.eve-row{grid-template-columns:1fr 1fr}.eve-row figure:last-child{display:none}}

/* book band (night) */
.bookband{background:var(--night);color:var(--star);padding:clamp(72px,8vw,120px) 0}
.bb-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(32px,5vw,96px);align-items:center;border-top:1px solid var(--line-n);padding-top:clamp(48px,5vw,80px)}
.bb-grid .ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.bb-side blockquote{margin:0 0 24px;font:400 clamp(22px,1.8vw,28px)/1.3 var(--serif)}
.bb-side cite{display:block;font:600 15px var(--sans);margin-top:10px;color:rgba(244,233,214,.75)}
@media (max-width:900px){.bb-grid{grid-template-columns:1fr}}

/* placeholder */
.todo{border:1.5px dashed var(--copper);padding:18px 20px;color:var(--ink-2);background:rgba(181,101,58,.06);font-size:15.5px}
.todo b{color:var(--copper-d)}
.on-dark .todo{color:rgba(244,233,214,.85);background:rgba(231,165,124,.06);border-color:#E7A57C}
.on-dark .todo b{color:#E7A57C}

/* footer */
.foot{background:var(--night);color:rgba(244,233,214,.86);padding:clamp(56px,6vw,88px) 0 28px;font-size:15.5px}
.foot-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:clamp(24px,4vw,64px);padding-bottom:40px;border-bottom:1px solid var(--line-n)}
.foot img{height:64px;width:auto;margin-bottom:18px}
.foot h2{font:600 15px var(--sans);color:var(--star);margin:0 0 12px}
.foot ul{list-style:none;padding:0;margin:0}
.foot li{margin:0 0 8px}
.foot a{text-decoration:none}.foot a:hover{text-decoration:underline;text-underline-offset:3px}
.foot .small{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:22px;font-size:13.5px;color:rgba(244,233,214,.64)}
@media (max-width:900px){.foot-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.foot-grid{grid-template-columns:1fr}.foot{padding-bottom:96px}}

/* ---------- inner pages ---------- */
.page-head{padding-top:clamp(56px,6vw,96px);padding-bottom:clamp(32px,4vw,56px)}
.page-head .lead{margin-top:20px}
.crumbs{font-size:14.5px;color:var(--ink-3);margin-bottom:18px}
.crumbs a{text-decoration:none}.crumbs a:hover{text-decoration:underline}

/* cabins page */
.jump{position:sticky;top:113px;z-index:30;background:rgba(238,240,234,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.jump .wrap{display:flex;gap:clamp(16px,3vw,40px);overflow-x:auto;scrollbar-width:none}
.jump a{flex:none;display:flex;align-items:center;min-height:52px;text-decoration:none;font-weight:600;font-size:15.5px;border-bottom:2px solid transparent}
.jump a.on{border-color:var(--copper)}
@media (max-width:980px){.jump{top:102px}}

.compare-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.compare{width:100%;border-collapse:separate;border-spacing:14px 0;margin:0 -14px;min-width:900px;font-size:16px}
.compare th,.compare td{text-align:left;vertical-align:top;padding:16px 20px;border-bottom:1px solid var(--line)}
.compare td,.compare thead th:not(:first-child){background:var(--paper)}
.compare thead th{font:400 clamp(22px,1.6vw,26px)/1.15 var(--serif);padding:22px 20px 18px;border-top:4px solid var(--ink);border-bottom:2px solid var(--ink)}
.compare thead th:nth-child(2){border-top-color:var(--sage-d)}.compare thead th:nth-child(3){border-top-color:var(--copper)}
.compare thead th:nth-child(4){border-top-color:var(--sage)}.compare thead th:nth-child(5){border-top-color:var(--copper-d)}
.compare thead th:first-child{border:0;background:transparent}
.compare thead th a{text-decoration:none}.compare thead th a:hover{text-decoration:underline;text-underline-offset:4px}
.compare tbody th{font-weight:600;width:15%;color:var(--ink);padding-left:0}
.compare td{width:21%}
.compare tbody tr:last-child td{border-bottom:0;padding-bottom:22px}
.compare tbody tr:hover td{background:#fff}
.compare .y{color:var(--sage-d);font-weight:600}
.compare .n{color:var(--ink-3)}
.compare tbody th,.compare thead th:first-child{position:sticky;left:0;background:var(--mist);z-index:1;box-shadow:14px 0 0 var(--mist)}
.swipe-hint{display:none;font-size:14px;color:var(--ink-3);margin:10px 0 0}
@media (max-width:900px){.swipe-hint{display:block}}

.cabin-sec{padding:clamp(64px,7vw,112px) 0;border-top:1px solid var(--line);scroll-margin-top:170px}
.cabin-sec:nth-of-type(even){background:var(--paper)}
.gal{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:auto auto;gap:clamp(8px,1vw,16px);margin-bottom:clamp(32px,4vw,56px)}
.gal figure{margin:0;position:relative;overflow:hidden;background:var(--sage-l)}
.gal figure:first-child{grid-row:1/3}
.gal img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}
.gal figure:first-child img{aspect-ratio:auto;min-height:100%}
.gal figcaption{position:absolute;left:0;bottom:0;background:rgba(248,248,244,.94);font-size:13.5px;padding:6px 12px;color:var(--ink-2)}
@media (max-width:760px){.gal{grid-template-columns:1fr 1fr}.gal figure:first-child{grid-column:1/3;grid-row:auto}.gal figure:first-child img{aspect-ratio:4/3}.gal figure:nth-child(n+4){display:none}}
.cabin-body{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(32px,5vw,96px)}
.cabin-body h2{margin-bottom:6px}
.cabin-body .sum{font-size:17px;color:var(--ink-3);margin-bottom:22px}
.incl{columns:2;column-gap:32px;list-style:none;padding:0;margin:8px 0 0;font-size:16px}
.incl li{break-inside:avoid;padding:7px 0 7px 22px;position:relative;border-bottom:1px solid var(--line)}
.incl li::before{content:"";position:absolute;left:2px;top:15px;width:7px;height:7px;background:var(--sage);transform:rotate(45deg)}
.cabin-body h3{font-size:24px;margin:34px 0 8px}
.side-card{background:var(--mist);border-top:3px solid var(--ink);padding:26px clamp(20px,2vw,32px) 28px;align-self:start}
.cabin-sec:nth-of-type(odd) .side-card{background:var(--paper)}
.side-card .pr{font:600 clamp(26px,2vw,32px)/1.15 var(--sans);letter-spacing:-.01em}
.side-card .pr small{display:block;font:400 15px var(--sans);color:var(--ink-3);margin-top:6px}
.side-card dl{margin:20px 0;display:grid;grid-template-columns:auto 1fr;gap:8px 16px;font-size:15.5px}
.side-card dt{font-weight:600}
.side-card dd{margin:0;color:var(--ink-2)}
.side-card blockquote{margin:22px 0 0;padding-top:20px;border-top:1px solid var(--line);font-size:16px;color:var(--ink-2)}
.side-card cite{display:block;font-style:normal;font-weight:600;color:var(--ink);margin-top:6px;font-size:14.5px}
.side-card .btn{width:100%;justify-content:center}
.access{list-style:none;padding:0;margin:0;font-size:16px}
.access li{padding:8px 0 8px 30px;position:relative;border-bottom:1px solid var(--line)}
.access li svg{position:absolute;left:0;top:11px;width:18px;height:18px;color:var(--copper)}
@media (max-width:900px){.cabin-body{grid-template-columns:1fr}.side-card{position:static}.incl{columns:1}}

/* plan page */
.guide{display:grid;grid-template-columns:260px minmax(0,1fr);gap:clamp(32px,5vw,96px);padding-bottom:clamp(72px,8vw,120px)}
.toc{position:sticky;top:140px;align-self:start;border-top:2px solid var(--ink);padding-top:14px}
.toc a{display:block;padding:7px 0;text-decoration:none;font-weight:500;color:var(--ink-2);border-left:2px solid transparent;padding-left:12px;margin-left:-14px}
.toc a.on{color:var(--ink);border-color:var(--copper)}
.guide section{padding:0 0 clamp(40px,4vw,64px);margin-bottom:clamp(40px,4vw,64px);border-bottom:1px solid var(--line);scroll-margin-top:140px}
.guide section:last-child{border:0}
.guide p,.guide details p{max-width:64ch}
.cal p{max-width:66ch}
.guide h2{font-size:clamp(30px,2.8vw,44px);margin-bottom:18px}
.guide .two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(20px,3vw,48px)}
.guide figure{margin:0}
.guide figure img{width:100%;aspect-ratio:3/2;object-fit:cover}
.w3w{display:inline-flex;align-items:center;gap:10px;font:600 19px var(--sans);background:var(--paper);border:1.5px solid var(--line);padding:12px 18px;text-decoration:none;margin:4px 0 16px}
.w3w span{color:#E11F26}
.packing{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:0 32px}
.packing li{padding:10px 0 10px 32px;border-bottom:1px solid var(--line);position:relative}
.packing li::before{content:"";position:absolute;left:0;top:13px;width:18px;height:18px;border:1.5px solid var(--ink-3)}
.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:8px 0 20px}
.facts div{background:var(--paper);padding:18px 20px;border-top:3px solid var(--sage)}
.facts b{display:block;font:400 30px/1.1 var(--serif)}
details{border-bottom:1px solid var(--line)}
summary{cursor:pointer;list-style:none;padding:16px 36px 16px 0;font-weight:600;font-size:17px;position:relative;min-height:44px}
summary::-webkit-details-marker{display:none}
summary::after{content:"";position:absolute;right:6px;top:22px;width:10px;height:10px;border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);transform:rotate(45deg);transition:transform .3s}
details[open] summary::after{transform:rotate(-135deg);top:26px}
details p{color:var(--ink-2)}
.nearby{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.nearby div{border-top:2px solid var(--ink);padding-top:14px}
.nearby b{display:block;font:400 24px/1.2 var(--serif);margin-bottom:4px}
@media (max-width:900px){.guide{grid-template-columns:1fr}.toc{display:none}.guide .two,.nearby{grid-template-columns:1fr}.packing{grid-template-columns:1fr}}

/* book page */
.book-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(32px,5vw,96px);padding-bottom:clamp(64px,7vw,104px)}
.pick{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 20px;padding:0;border:0}
.pick legend{font-weight:600;margin-bottom:12px;padding:0}
.pick label{position:relative;cursor:pointer;display:block;background:var(--paper);border:1.5px solid var(--line);transition:border-color .2s}
.pick input{position:absolute;opacity:0}
.pick img{width:100%;aspect-ratio:4/3;object-fit:cover}
.pick span{display:block;padding:10px 12px 12px;font-size:14.5px;line-height:1.35}
.pick span b{display:block;font:400 19px/1.2 var(--serif);margin-bottom:2px}
.pick input:checked+img+span{background:var(--ink);color:#fff}
.pick label:has(input:checked){border-color:var(--ink)}
.pick input:focus-visible~span{outline:3px solid var(--copper)}
.cal{min-height:340px;display:flex;flex-direction:column;justify-content:center;gap:8px}
.cal .chosen{font:400 26px var(--serif);color:var(--ink)}
.why-direct{list-style:none;padding:0;margin:20px 0 0}
.why-direct li{padding:10px 0 10px 28px;position:relative;border-bottom:1px solid var(--line)}
.why-direct li::before{content:"";position:absolute;left:2px;top:18px;width:8px;height:8px;background:var(--copper);transform:rotate(45deg)}
form.enq{display:grid;gap:18px}
form.enq label{display:grid;gap:6px;font-weight:600;font-size:15.5px}
form.enq input,form.enq select,form.enq textarea{font:400 17px var(--sans);padding:12px 14px;min-height:50px;border:1.5px solid #9AA3A9;background:#fff;color:var(--ink);border-radius:0;width:100%}
form.enq textarea{min-height:130px;resize:vertical}
form.enq .err{color:#A3261B;font-weight:500;font-size:14.5px;display:none}
form.enq .bad input{border-color:#A3261B}
form.enq .bad .err{display:block}
.sent{display:none;padding:18px 20px;background:var(--sage-l);border-left:3px solid var(--sage-d)}
.gifts{background:var(--paper);border-top:1px solid var(--line)}
.gift-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,96px);align-items:center}
.gift-grid img{width:100%;aspect-ratio:4/3;object-fit:cover}
.contact-list{list-style:none;padding:0;margin:0 0 24px;font-size:16.5px}
.contact-list li{padding:12px 0;border-bottom:1px solid var(--line)}
.contact-list b{display:block;font-size:14.5px;color:var(--ink-3);font-weight:600}
@media (max-width:900px){.book-grid,.gift-grid{grid-template-columns:1fr}.pick{grid-template-columns:1fr 1fr}}

/* reveals (each kind does a different job) */
.js .rv{opacity:0;transform:translateY(22px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.js .rv.in{opacity:1;transform:none}
/* clip the image, not the observed box, so the scroll observer still sees it */
.js .wipe>img{clip-path:inset(0 0 100% 0);transition:clip-path 1.2s var(--ease)}
.js .wipe.in>img{clip-path:inset(0 0 0 0)}
.page-fade{animation:pf .5s ease both}
@keyframes pf{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .js .rv{opacity:1;transform:none}.js .wipe>img{clip-path:none}
  .cover .slide img{transform:none}
  .evening .stars i{opacity:var(--o,.8);transform:none}
}

/* ---------- calm motion (Lucy 2026-10-19: A + B) ---------- */
/* A1: hill contour lines, the "folds" of the valley, drawn as you arrive */
.folds{height:clamp(56px,7vw,110px);overflow:hidden;line-height:0;margin-top:calc(-1 * clamp(32px,4.5vw,72px))}
.page-head+.folds{margin-top:0}
.folds.on-paper{background:var(--paper)}
.folds svg{width:100%;height:100%;display:block}
.folds path{fill:none;stroke-width:1.4;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:0}
.folds path:nth-child(1){stroke:var(--sage)}
.folds path:nth-child(2){stroke:var(--copper);opacity:.55}
.folds path:nth-child(3){stroke:var(--sage-d);opacity:.4}
.js .folds path{stroke-dashoffset:1;transition:stroke-dashoffset 2.8s cubic-bezier(.45,.05,.25,1)}
.js .folds path:nth-child(2){transition-delay:.35s}
.js .folds path:nth-child(3){transition-delay:.7s}
.js .folds.in path{stroke-dashoffset:0}
.folds svg{animation:sway 18s ease-in-out infinite alternate}
@keyframes sway{from{transform:translateX(0)}to{transform:translateX(-1.5%) scaleX(1.03)}}
/* A2: photos drift a little slower than the page */
.drift{overflow:hidden}
.drift>img{transform:scale(1.08) translate3d(0,var(--dy,0px),0);will-change:transform}
/* B: night sky - shooting stars and rising embers */
.shoot{position:absolute;height:1.5px;width:140px;background:linear-gradient(90deg,rgba(244,233,214,0),rgba(244,233,214,.9));border-radius:2px;opacity:0;transform-origin:right center;pointer-events:none}
.shoot.go{animation:shoot 1.6s ease-out forwards}
@keyframes shoot{0%{opacity:0;transform:translate(0,0) rotate(-16deg) scaleX(.3)}15%{opacity:1}100%{opacity:0;transform:translate(320px,92px) rotate(-16deg) scaleX(1)}}
.embers{position:absolute;left:0;right:0;bottom:0;height:70%;pointer-events:none;overflow:hidden}
.embers i{position:absolute;bottom:-10px;width:var(--s,4px);height:var(--s,4px);border-radius:50%;background:#F2A15E;box-shadow:0 0 10px 3px rgba(242,161,94,.45);opacity:0;animation:rise var(--t,16s) linear infinite var(--d,0s)}
@keyframes rise{0%{opacity:0;transform:translate(0,0)}12%{opacity:.75}70%{opacity:.4}100%{opacity:0;transform:translate(var(--x,30px),-520px)}}
.evening.in .stars i.tw{animation-duration:6s}
@media (prefers-reduced-motion:reduce){.folds path{stroke-dashoffset:0!important}.drift>img{transform:none}.embers,.shoot{display:none}}

/* ---------- Plan your stay: colour bands (Lucy 2026-10-19) ---------- */
.band{padding:clamp(64px,7vw,112px) 0;scroll-margin-top:160px}
.band h2{margin-bottom:18px}
.band .lead{margin-bottom:32px}
.band-paper{background:var(--paper)}
.band-sage{background:var(--sage-l)}
.band-copper{background:var(--copper-l)}
.band-night{background:var(--night);color:var(--star)}
.two-band{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,96px);align-items:center}
.two-band p{max-width:60ch}
.two-band figure img{width:100%;aspect-ratio:4/3;object-fit:cover}
@media (max-width:900px){.two-band{grid-template-columns:1fr}}
/* arrival steps: a real sequence, so numbered */
.steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(16px,2vw,32px);counter-reset:st;position:relative}
.steps::before{content:"";position:absolute;left:0;right:0;top:21px;height:2px;background:var(--line)}
.steps::after{content:"";position:absolute;left:0;top:21px;height:2px;width:100%;background:var(--copper);transform:scaleX(var(--p,0));transform-origin:left;transition:transform .2s linear}
.steps li{counter-increment:st;position:relative;padding-top:62px}
.steps li::before{content:counter(st);position:absolute;top:0;left:0;width:44px;height:44px;border-radius:50%;background:var(--paper);border:2px solid var(--line);display:grid;place-items:center;font:400 20px var(--serif);color:var(--ink-3);z-index:1;transition:background .6s,border-color .6s,color .6s,box-shadow .6s}
.steps li.lit::before{background:var(--copper);border-color:var(--copper);color:#fff;box-shadow:0 0 0 6px rgba(181,101,58,.14)}
.steps li b,.steps li span{transition:opacity .6s}
.js .steps li:not(.lit) b,.js .steps li:not(.lit) span{opacity:.5}
.steps b{display:block;font:400 clamp(20px,1.5vw,24px)/1.2 var(--serif);margin-bottom:8px}
.steps span{color:var(--ink-2);font-size:16px}
@media (max-width:900px){.steps{grid-template-columns:1fr;gap:0}.steps::before,.steps::after{left:21px;right:auto;top:0;bottom:0;width:2px;height:auto}.steps::after{transform:scaleY(var(--p,0));transform-origin:top;height:100%}.steps li{padding:0 0 28px 64px}}
/* packing list tool */
.pack-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(32px,5vw,96px);align-items:start}
.pack-opts{border:0;padding:0;margin:0 0 18px;display:flex;flex-wrap:wrap;gap:10px}
.pack-opts legend{font-weight:600;margin-bottom:10px;padding:0}
.chip input[type=radio]+span::before{border-radius:50%}
.pack-note{font-size:16px;color:var(--sage-d);font-weight:500;min-height:1.6em}
.pack-card{background:var(--paper);padding:clamp(22px,2.4vw,36px);border-top:3px solid var(--sage-d)}
.pack-top{display:flex;justify-content:space-between;align-items:center;gap:12px}
.pack-top b{font:400 26px var(--serif)}
.pack-bar{height:6px;background:var(--sage-l);margin:14px 0 8px;overflow:hidden}
.pack-bar i{display:block;height:100%;width:0;background:var(--sage-d);transition:width .6s var(--ease)}
.pack-list{list-style:none;padding:0;margin:0 0 14px}
.pack-list li{border-bottom:1px solid var(--line);animation:pin .5s var(--ease) both}
@keyframes pin{from{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:none}}
.pack-list label{display:flex;gap:14px;align-items:center;min-height:52px;padding:8px 0;cursor:pointer}
.pack-list input{position:absolute;opacity:0;width:1px;height:1px}
.pack-list .box{flex:none;width:24px;height:24px;border:1.5px solid var(--ink-3);display:grid;place-items:center;transition:background .25s,border-color .25s}
.pack-list .box svg{width:16px;height:16px;stroke:#fff;stroke-width:2.5;fill:none;stroke-dasharray:24;stroke-dashoffset:24;transition:stroke-dashoffset .35s ease .05s}
.pack-list input:checked+.box{background:var(--sage-d);border-color:var(--sage-d)}
.pack-list input:checked+.box svg{stroke-dashoffset:0}
.pack-list input:checked~.txt{color:var(--ink-3);text-decoration:line-through;text-decoration-color:var(--sage)}
.pack-list input:focus-visible+.box{outline:3px solid var(--copper);outline-offset:2px}
.pack-list .why{display:block;font-size:14px;color:var(--ink-3)}
.pack-list .tag{margin-left:auto;font-size:13px;font-weight:600;color:var(--copper-d);white-space:nowrap}
.pack-done{font:400 22px var(--serif);color:var(--sage-d)}
@media (max-width:900px){.pack-grid{grid-template-columns:1fr}}
/* off-grid tiles */
.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,2vw,28px)}
.tile{border-top:1px solid var(--line-n);padding-top:22px}
.tile svg{width:44px;height:44px;fill:none;stroke:#E7A57C;stroke-width:1.6;stroke-linecap:round;margin-bottom:14px}
.tile .sun{animation:spin 40s linear infinite;transform-origin:center;transform-box:fill-box}
.tile .drop{animation:bob 4s ease-in-out infinite;transform-box:fill-box}
.tile .wave{animation:pulse 3.5s ease-in-out infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes bob{50%{transform:translateY(3px)}}
@keyframes pulse{50%{opacity:.35}}
.tile h3{font-size:24px;margin-bottom:8px}
.tile p{color:rgba(244,233,214,.82);font-size:16px;margin:0}
@media (max-width:1000px){.tiles{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.tiles{grid-template-columns:1fr}}
/* dogs */
.dog-list{list-style:none;padding:0;margin:0 0 22px;border-top:1px solid rgba(148,73,31,.25)}
.dog-list li{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid rgba(148,73,31,.25);font-size:17px}
.dog-list b{font:400 21px var(--serif)}
.dog-list span{font-weight:600;color:var(--sage-d)}
.dog-list .no span{color:var(--ink-3)}
/* without a car */
.cols3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,3vw,48px);margin-top:24px}
.cols3>div{border-top:2px solid var(--ink);padding-top:16px}
.cols3 h3{font-size:24px;margin-bottom:8px}
.cols3 p{color:var(--ink-2)}
@media (max-width:900px){.cols3{grid-template-columns:1fr}}
/* drive-time route */
.route{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,2vw,32px)}
.route-line{position:absolute;left:11px;right:0;top:11px;height:2px;background-image:linear-gradient(90deg,var(--sage) 50%,transparent 0);background-size:14px 2px}
.route-line i{position:absolute;inset:0;background:var(--sage-d);transform:scaleX(var(--p,0));transform-origin:left;transition:transform .2s linear}
.stop .dot{transition:background .6s,box-shadow .6s}
.stop.lit .dot:not(.home){background:var(--sage-d);box-shadow:0 0 0 6px rgba(70,96,79,.14)}
.stop b,.stop span{transition:opacity .6s}
.js .route .stop:not(.lit) b,.js .route .stop:not(.lit) span:last-child{opacity:.5}
.stop{position:relative;padding-top:40px}
.stop .dot{position:absolute;top:0;left:0;width:24px;height:24px;border-radius:50%;background:var(--paper);border:2px solid var(--sage-d)}
.stop .dot.home{background:var(--copper);border-color:var(--copper)}
.stop b{display:block;font:400 24px/1.2 var(--serif);margin-bottom:6px}
.stop span:last-child{color:var(--ink-2)}
@media (max-width:900px){.route{grid-template-columns:1fr;gap:0}.route-line{left:11px;top:0;bottom:0;width:2px;height:auto;right:auto;background-image:linear-gradient(180deg,var(--sage) 50%,transparent 0);background-size:2px 14px}.route-line i{transform:scaleY(var(--p,0));transform-origin:top}.stop{padding:0 0 28px 44px}}
@media (prefers-reduced-motion:reduce){.steps::after{transform:none}.route-line i{transform:none}.js .steps li b,.js .steps li span,.js .route .stop b,.js .route .stop span{opacity:1!important}}
