/* Shady Rest Motel & Cabins — site styles
   Tokens come from the property itself: yellow siding, red doors, lattice rails, knotty pine, pines. */

@font-face{font-family:"Young Serif";font-style:normal;font-weight:400;font-display:swap;src:url("../assets/fonts/YoungSerif-normal.woff2") format("woff2")}
@font-face{font-family:"Figtree";font-style:normal;font-weight:400 700;font-display:swap;src:url("../assets/fonts/Figtree-normal.woff2") format("woff2")}
@font-face{font-family:"Figtree";font-style:italic;font-weight:400 500;font-display:swap;src:url("../assets/fonts/Figtree-italic.woff2") format("woff2")}

:root{
  --paper:#FCF8EF;
  --butter:#F6E7B4;
  --butter-soft:#FBF1CF;
  --sun:#EFC040;
  --door:#B3322A;
  --door-deep:#8E2620;
  --pine:#2E4B3A;
  --pine-tint:#E3EADB;
  --honey:#D4A263;
  --stain:#6B4423;
  --ink:#2D2118;
  --ink-soft:#5A4838;
  --bark:#33261B;
  --rule:rgba(107,68,35,.22);
  --serif:"Young Serif",Georgia,"Iowan Old Style",serif;
  --sans:"Figtree",system-ui,-apple-system,"Segoe UI",sans-serif;
  --wrap:1240px;
  --gut:48px;
  --radius:6px;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 18px/1.65 var(--sans);-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:var(--pine);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--door)}
:focus-visible{outline:3px solid var(--pine);outline-offset:3px;border-radius:3px}
.on-dark :focus-visible,.site-footer :focus-visible{outline-color:var(--sun)}
h1,h2,h3,h4,.plate b,.price,.pick .from b,.tile .from b,.spec-big,.spec-bed,.sleeps,.quiet-facts span{font-variant-numeric:lining-nums;font-feature-settings:"lnum" 1}
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;line-height:1.14;letter-spacing:-.005em;margin:0;color:var(--ink)}
h1{font-size:clamp(42px,4.6vw,66px);line-height:1.06}
h2{font-size:clamp(32px,3vw,42px)}
h3{font-size:24px;line-height:1.25}
p{margin:0 0 1em}
ul{margin:0;padding:0;list-style:none}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:12px;top:-60px;background:var(--ink);color:#fff;padding:10px 16px;border-radius:6px;z-index:100}
.skip:focus{top:12px}
.lead{font-size:21px;line-height:1.6;color:var(--ink-soft);max-width:60ch}
.measure{max-width:62ch}

/* external-link marker */
a[target="_blank"]:not(.btn):not(.spot)::after{content:"";display:inline-block;width:.7em;height:.7em;margin-left:.3em;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M4 2h6v6M10 2 3 9' fill='none' stroke='black' stroke-width='1.6'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M4 2h6v6M10 2 3 9' fill='none' stroke='black' stroke-width='1.6'/%3E%3C/svg%3E") center/contain no-repeat}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:.5em;font:600 17px/1 var(--sans);padding:16px 28px;border-radius:999px;text-decoration:none;border:2px solid transparent;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s}
.btn-primary{background:var(--door);color:#fff}
.btn-primary:hover{background:var(--door-deep);color:#fff}
.btn-ghost{border-color:var(--ink);color:var(--ink);background:transparent}
.btn-ghost:hover{background:var(--ink);color:var(--paper)}
.btn-light{background:var(--paper);color:var(--ink)}
.btn-light:hover{background:var(--sun);color:var(--ink)}
.btn-row{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.textlink{font-weight:600}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:60;background:rgba(252,248,239,.97);backdrop-filter:blur(8px);border-bottom:1px solid var(--rule)}
.site-header .wrap{display:flex;align-items:center;gap:20px;min-height:84px;max-width:1380px}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--ink);flex:none}
.brand:hover{color:var(--ink)}
.brand svg{width:44px;height:44px;flex:none}
.brand-name{font:400 23px/1.1 var(--serif);display:block}
.brand-sub{font-size:15px;color:var(--ink-soft);display:block;margin-top:3px}
.nav{margin-left:auto}
.nav ul{display:flex;gap:2px;align-items:center}
.nav a{display:block;white-space:nowrap;padding:10px 11px;font-weight:500;font-size:17px;text-decoration:none;color:var(--ink);border-radius:8px;position:relative}
.nav a:hover{color:var(--door)}
.nav a[aria-current="page"]{font-weight:700}
.nav a[aria-current="page"]::after{content:"";position:absolute;left:12px;right:12px;bottom:3px;height:3px;border-radius:2px;background:var(--door)}
.header-call{flex:none;font-weight:700;font-size:17px;text-decoration:none;color:var(--door);border:2px solid var(--door);border-radius:999px;padding:10px 20px}
.header-call:hover{background:var(--door);color:#fff}
.menu-btn{display:none;margin-left:auto;font:600 16px var(--sans);padding:10px 18px;border-radius:999px;border:2px solid var(--ink);background:none;color:var(--ink);cursor:pointer}

/* ---------- lattice + plank motifs ---------- */
.lattice{height:24px;background-color:var(--sun);border-block:4px solid var(--door);
  background-image:repeating-linear-gradient(45deg,transparent 0 8px,var(--door) 8px 10px),repeating-linear-gradient(-45deg,transparent 0 8px,var(--door) 8px 10px);
  background-clip:padding-box}
.plank{background-color:var(--butter-soft);background-image:repeating-linear-gradient(90deg,rgba(107,68,35,.075) 0 1px,transparent 1px 148px)}

/* ---------- door plate ---------- */
.plate{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;background:var(--door);color:#FFF4E0;border-radius:3px;padding:6px 13px 7px;min-width:62px;box-shadow:inset 0 0 0 2px rgba(255,244,224,.28),0 2px 0 var(--door-deep);transform-origin:50% -14px;line-height:1}
.plate small{font:600 13px/1 var(--sans);letter-spacing:.02em;opacity:.92}
.plate b{font:400 30px/1.05 var(--serif);margin-top:3px}
.plate.big{padding:10px 20px 11px;min-width:92px}
.plate.big small{font-size:15px}
.plate.big b{font-size:48px}
.plate.mini{padding:3px 9px 4px;min-width:0;flex-direction:row;gap:5px}
.plate.mini b{font-size:19px;margin:0}
.plate.mini small{font-size:13px}
@media (prefers-reduced-motion:no-preference){
  .hang:hover .plate,a:hover>.plate,.plate:hover{animation:sway 1.6s ease-in-out 1}
  @keyframes sway{0%{transform:rotate(0)}22%{transform:rotate(3.5deg)}55%{transform:rotate(-2.5deg)}80%{transform:rotate(1deg)}100%{transform:rotate(0)}}
}

/* ---------- home hero ---------- */
.hero{background:linear-gradient(180deg,var(--butter) 0%,var(--butter-soft) 100%);position:relative;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:10fr 14fr;gap:56px;align-items:end;padding-top:64px}
.hero-copy{padding-bottom:64px;align-self:center}
.hero h1{margin-bottom:22px;font-size:clamp(40px,4vw,58px)}
.hero .lead{margin-bottom:32px}
.hero-note{margin:26px 0 0;font-size:17px;color:var(--ink-soft);max-width:44ch}
.gable{--roof:84px;position:relative;background:var(--door);clip-path:polygon(0 var(--roof),50% 0,100% var(--roof),100% 100%,0 100%);padding-top:0}
.gable-in{position:relative;margin:0;clip-path:polygon(14px calc(var(--roof) + 16px),50% 16px,calc(100% - 14px) calc(var(--roof) + 16px),calc(100% - 14px) 100%,14px 100%);background:var(--sun)}
.gable-in img{width:100%;aspect-ratio:17/10;object-fit:cover;object-position:50% 50%}
.hero-cap{position:absolute;right:24px;bottom:22px;background:rgba(252,248,239,.94);padding:6px 14px;border-radius:999px;font-size:15px;color:var(--ink-soft);z-index:2}
.hero-fig{position:relative}

/* ---------- sections ---------- */
.section{padding:120px 0}
.section.tight{padding:88px 0}
.section-head{max-width:720px;margin-bottom:56px}
.section-head h2{margin-bottom:16px}
.section-head p{font-size:20px;color:var(--ink-soft);margin:0}
.on-butter{background:var(--butter-soft)}
.on-tint{background:var(--pine-tint)}

/* intro */
.intro{display:grid;grid-template-columns:5fr 6fr;gap:96px;align-items:center}
.intro-fig{margin:0}
.intro-fig img{width:100%;border-radius:var(--radius)}
.intro-fig figcaption,.cap{font-size:15px;color:var(--ink-soft);margin-top:12px}
.intro h2{margin-bottom:24px}
.intro p{font-size:19px}
.quiet-facts{display:flex;flex-wrap:wrap;gap:12px 36px;margin:30px 0 34px;padding:22px 0;border-block:1px solid var(--rule)}
.quiet-facts li{font-weight:600}
.quiet-facts span{display:block;font:400 28px/1.1 var(--serif);color:var(--door)}

/* featured cabins (open columns, no boxes) */
.pick-head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:56px}
.pick-head .section-head{margin:0}
.pick-links{display:flex;gap:28px;flex:none;padding-bottom:6px}
.picks{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.pick{padding:0 28px;border-left:1px solid var(--rule);display:flex;flex-direction:column}
.pick:first-child{padding-left:0;border-left:0}
.pick:last-child{padding-right:0}
.pick-photo{position:relative;display:block;margin-bottom:40px}
.pick-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius)}
.pick-photo .plate{position:absolute;left:14px;bottom:-26px}
.pick h3{margin-bottom:4px}
.pick .sleeps{font:400 20px/1.3 var(--serif);color:var(--door);margin-bottom:10px}
.pick .bed{font-weight:600;margin-bottom:8px;font-size:17px;line-height:1.45}
.pick .why{font-size:17px;color:var(--ink-soft);margin-bottom:16px;flex:1}
.pick .from{font-size:16px;color:var(--ink-soft);margin-bottom:14px}
.pick .from b{font:400 22px var(--serif);color:var(--ink)}

/* comforts */
.comforts{display:grid;grid-template-columns:6fr 5fr;gap:88px;align-items:start}
.comfort-list{display:grid;grid-template-columns:1fr 1fr;gap:34px 44px}
.comfort-list h3{font-size:21px;margin-bottom:6px}
.comfort-list p{font-size:17px;margin:0;color:var(--ink-soft)}
.comfort-fig{margin:0;position:sticky;top:120px}
.comfort-fig img{width:100%;aspect-ratio:692/560;object-fit:cover;border-radius:var(--radius)}

/* hosts + area */
.hosts{display:grid;grid-template-columns:277px 1fr 400px;gap:56px;align-items:start}
.hosts-fig{margin:0}
.hosts-fig img{width:277px;border-radius:var(--radius)}
.hosts h2{margin-bottom:20px}
.hosts p{font-size:19px}
.near h3{font-size:22px;margin-bottom:14px}
.leaders li{display:flex;align-items:baseline;gap:10px;padding:9px 0;font-size:17px}
.leaders li::after{content:"";order:2;flex:1;border-bottom:2px dotted rgba(107,68,35,.4);transform:translateY(-4px)}
.leaders .nm{order:1;font-weight:600}
.leaders .ds{order:3;color:var(--ink-soft);white-space:nowrap;font-size:16px}

/* review band */
.review-band{display:grid;grid-template-columns:1fr auto;gap:60px;align-items:center}
.review-band h2{margin-bottom:12px}
.review-band p{margin:0;font-size:19px;max-width:56ch}

/* good to know */
.gtk{display:grid;grid-template-columns:repeat(3,1fr);gap:56px}
.gtk>div{border-top:4px solid var(--sun);padding-top:24px}
.gtk h3{margin-bottom:12px}
.gtk p{font-size:18px;color:var(--ink-soft)}

/* close */
.close{display:grid;grid-template-columns:6fr 5fr;gap:80px;align-items:center}
.close-fig{margin:0}
.close-fig img{width:100%;aspect-ratio:600/380;object-fit:cover;border-radius:var(--radius)}
.close h2{margin-bottom:16px}
.close p{font-size:19px}
.contact-lines{margin:26px 0 30px;font-size:19px}
.contact-lines li{padding:4px 0}
.contact-lines b{display:inline-block;min-width:78px;font-weight:600;color:var(--ink-soft);font-size:17px}

/* ---------- footer ---------- */
.site-footer{background:var(--bark);color:#EADFCB;padding:72px 0 40px;font-size:17px}
.site-footer a{color:#F7EBD1}
.site-footer a:hover{color:var(--sun)}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:56px}
.site-footer h2{font:400 21px var(--serif);color:#fff;margin-bottom:16px}
.site-footer li{padding:4px 0}
.footer-brand .brand-name{color:#fff;font-size:26px}
.footer-brand p{margin:14px 0 0;max-width:30ch;color:#DCCFB8}
.footer-base{margin-top:56px;padding-top:26px;border-top:1px solid rgba(247,235,209,.2);display:flex;justify-content:space-between;gap:30px;font-size:15px;color:#CDBFA6}

/* ---------- inner page head ---------- */
.page-head{padding:76px 0 68px;border-bottom:1px solid var(--rule)}
.page-head .wrap{display:grid;grid-template-columns:1fr;gap:20px}
.page-head.split .wrap{grid-template-columns:7fr 5fr;gap:72px;align-items:center}
.page-head h1{margin-bottom:18px}
.page-head p:last-child{margin-bottom:0}
.crumbs{font-size:16px;color:var(--ink-soft);margin-bottom:22px}
.crumbs a{color:var(--ink-soft)}
.page-head figure{margin:0}
.page-head figure img{width:100%;border-radius:var(--radius)}

/* ---------- cabins list ---------- */
.filters{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:48px}
.filters .lbl{font-weight:600;margin-right:6px}
.chip{font:600 16px var(--sans);padding:10px 20px;border-radius:999px;border:2px solid var(--rule);background:transparent;color:var(--ink);cursor:pointer}
.chip:hover{border-color:var(--ink)}
.chip[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.filter-count{margin-left:auto;color:var(--ink-soft);font-size:16px}
.cabin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:72px 44px}
.tile[hidden]{display:none}
.tile .ph{position:relative;display:block;margin-bottom:38px}
.tile .ph img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius)}
.tile .ph .plate{position:absolute;left:14px;bottom:-24px}
.tile{display:flex;flex-direction:column}
.tile .from{margin-top:auto!important;padding-top:6px}
.tile h3{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-bottom:6px}
.tile h3 span{font:500 16px var(--sans);color:var(--ink-soft)}
.tile .sleeps{font:400 21px/1.3 var(--serif);color:var(--door);margin-bottom:8px}
.tile .bed{font-weight:600;font-size:17px;margin-bottom:6px;line-height:1.45}
.tile .why{font-size:17px;color:var(--ink-soft);margin-bottom:12px}
.tile .from{font-size:16px;color:var(--ink-soft);margin:0}
.tile .from b{font:400 21px var(--serif);color:var(--ink)}
.tile .flag{font-size:16px;color:var(--ink-soft);border-left:3px solid var(--sun);padding-left:12px;margin:0 0 12px}
.cabins-foot{margin-top:88px;padding-top:36px;border-top:1px solid var(--rule);display:flex;justify-content:space-between;gap:48px;align-items:center}
.cabins-foot p{margin:0;font-size:19px;max-width:60ch}

/* ---------- rates ---------- */
.rate-wrap{overflow:visible}
table.rates{width:100%;border-collapse:separate;border-spacing:0;font-size:18px}
.rates th,.rates td{padding:20px 18px;text-align:left;vertical-align:middle;border-bottom:1px solid var(--rule)}
.rates thead th{position:sticky;top:84px;background:var(--paper);z-index:5;font:400 20px/1.25 var(--serif);vertical-align:bottom;border-bottom:2px solid var(--ink);padding-bottom:16px}
.rates thead th small{display:block;font:400 15px/1.4 var(--sans);color:var(--ink-soft);margin-top:6px;max-width:22ch}
.rates .cab{display:flex;align-items:center;gap:20px;min-width:280px}
.rates .cab img{width:112px;aspect-ratio:4/3;object-fit:cover;border-radius:4px;flex:none}
.rates .cab a{text-decoration:none;color:var(--ink);font-weight:600;display:block}
.rates .cab a:hover{color:var(--door)}
.rates .cab span{display:block;font-size:15px;color:var(--ink-soft);font-weight:400}
.rates .price{font:400 28px/1.1 var(--serif);display:block}
.rates .esd{display:block;font-size:15px;color:var(--ink-soft);margin-top:4px}
.rates td.g{white-space:nowrap;font-weight:600}
.rates tbody tr:hover{background:var(--butter-soft)}
.rates-notes{display:grid;grid-template-columns:repeat(3,1fr);gap:48px;margin-top:64px}
.rates-notes h3{font-size:21px;margin-bottom:10px}
.rates-notes p{font-size:17px;color:var(--ink-soft)}
.legend{font-size:17px;color:var(--ink-soft);margin:0 0 28px;max-width:80ch}

/* ---------- cabin detail ---------- */
.cabin-top{display:grid;grid-template-columns:6fr 5fr;gap:72px;align-items:center}
.cabin-top figure{margin:0}
.cabin-top figure img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius)}
.cabin-top h1{margin:22px 0 14px}
.cabin-top h1 span{display:block;font:400 26px/1.3 var(--serif);color:var(--ink-soft);margin-top:6px}
.spec-big{font:400 28px/1.25 var(--serif);color:var(--door);margin-bottom:6px}
.spec-bed{font-size:20px;font-weight:600;margin-bottom:18px}
.spec-from{font-size:18px;color:var(--ink-soft);margin-bottom:26px}
.spec-from b{font:400 26px var(--serif);color:var(--ink)}
.detail{display:grid;grid-template-columns:6fr 5fr;gap:88px;align-items:start}
.detail.wideplan{grid-template-columns:5fr 6fr}
.detail h2{font-size:34px;margin-bottom:18px}
.block{margin-bottom:56px}
.block:last-child{margin-bottom:0}
.facts{display:grid;gap:0}
.facts>div{display:grid;grid-template-columns:150px 1fr;gap:20px;padding:15px 0;border-bottom:1px solid var(--rule)}
.facts>div:first-child{border-top:1px solid var(--rule)}
.facts dt{font-weight:700}
.facts dd{margin:0}
.facts ul li{padding:1px 0}
.note{border-left:4px solid var(--sun);background:var(--butter-soft);padding:20px 24px;border-radius:0 var(--radius) var(--radius) 0;font-size:18px;margin:0 0 28px}
.note p:last-child{margin:0}
.cab-rates{width:100%;border-collapse:collapse;font-size:18px}
.cab-rates th,.cab-rates td{text-align:left;padding:15px 12px 15px 0;border-bottom:1px solid var(--rule);vertical-align:top}
.cab-rates thead th{font:700 16px var(--sans);color:var(--ink-soft);border-bottom:2px solid var(--ink)}
.cab-rates td b{font:400 24px var(--serif);display:block}
.cab-rates td span{font-size:15px;color:var(--ink-soft)}
.cab-rates th[scope=row]{font-weight:600}
.cab-rates th[scope=row] small{display:block;font-weight:400;color:var(--ink-soft);font-size:15px}
.plan-fig{margin:0}
.plan-fig a{display:block;background:#fff;border:1px solid var(--rule);border-radius:var(--radius);padding:16px;cursor:zoom-in}
.plan-fig img{width:100%;height:auto;margin:0 auto}
.plan-fig figcaption{font-size:15px;color:var(--ink-soft);margin-top:12px;display:flex;justify-content:space-between;gap:16px}
.plan-fig.lodge a{padding:20px}
.plan-fig.lodge img{max-width:640px}
.cabin-nav{display:flex;justify-content:space-between;gap:24px;align-items:center;flex-wrap:wrap}
.cabin-nav a.step{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--ink);font-weight:600}
.cabin-nav a.step:hover{color:var(--door)}
.cabin-nav .plate{flex:none}
.also-links{display:flex;flex-wrap:wrap;gap:12px 30px;margin-top:6px}

/* ---------- policies ---------- */
.doc{display:grid;grid-template-columns:260px 1fr;gap:96px;align-items:start}
.toc{position:sticky;top:116px}
.toc h2{font-size:21px;margin-bottom:14px}
.toc li a{display:block;padding:9px 0;text-decoration:none;color:var(--ink);font-weight:500;border-bottom:1px solid var(--rule)}
.toc li a:hover{color:var(--door)}
.doc-body section{margin-bottom:80px;scroll-margin-top:110px}
.doc-body section:last-child{margin-bottom:0}
.doc-body h2{margin-bottom:22px;font-size:36px}
.doc-body h3{font-size:22px;margin:30px 0 10px}
.doc-body p,.doc-body li{max-width:66ch}
.doc-body ul.bul li{position:relative;padding:5px 0 5px 26px}
.doc-body ul.bul li::before{content:"";position:absolute;left:4px;top:.95em;width:9px;height:9px;background:var(--sun);border:2px solid var(--door);transform:rotate(45deg)}
.keyfacts{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-bottom:84px;border-block:1px solid var(--rule)}
.keyfacts>div{padding:26px 28px;border-left:1px solid var(--rule)}
.keyfacts>div:first-child{border-left:0;padding-left:0}
.keyfacts b{display:block;font:400 26px/1.2 var(--serif);margin-bottom:6px}
.keyfacts span{font-size:17px;color:var(--ink-soft)}
.doc-photo{margin:34px 0 0}
.doc-photo img{width:100%;max-width:692px;border-radius:var(--radius)}

/* ---------- explore ---------- */
.explore-group{margin-bottom:84px}
.explore-group:last-child{margin-bottom:0}
.explore-group h2{margin-bottom:10px}
.explore-group>p{color:var(--ink-soft);font-size:19px;margin-bottom:26px}
.explore-group .leaders{display:grid;grid-template-columns:1fr 1fr;gap:0 80px}
.explore-group .leaders li{font-size:19px;padding:13px 0}
.explore-group .leaders .ds{font-size:17px}
.explore-group .leaders small{display:block;font-size:15px;color:var(--ink-soft);font-weight:400}
.explore-note{margin-top:60px;padding:28px 32px;background:var(--butter-soft);border-radius:var(--radius);font-size:18px}

/* ---------- grounds ---------- */
.plan{position:relative;line-height:0;border-radius:var(--radius);overflow:hidden;border:1px solid var(--rule);background:#fff}
.plan img{width:100%}
.plan .spot{position:absolute;display:block;border:2px solid transparent;border-radius:3px;transition:background-color .15s,border-color .15s}
.plan .spot:hover,.plan .spot:focus-visible{background:rgba(179,50,42,.2);border-color:var(--door)}
.plan .spot span{position:absolute;left:50%;bottom:calc(100% + 6px);transform:translateX(-50%);background:var(--door);color:#fff;font:600 15px/1 var(--sans);padding:6px 10px;border-radius:4px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s}
.plan .spot:hover span,.plan .spot:focus-visible span{opacity:1}
.grounds-grid{display:grid;grid-template-columns:7fr 4fr;gap:80px;align-items:start}
.plan-jump{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.side-block{margin-bottom:44px}
.side-block h3{font-size:24px;margin-bottom:10px}
.side-block p{font-size:18px}
address{font-style:normal}

/* ---------- contact ---------- */
.contact-grid{display:grid;grid-template-columns:5fr 6fr;gap:96px;align-items:start}
.ways li{padding:20px 0;border-bottom:1px solid var(--rule);display:grid;grid-template-columns:110px 1fr;gap:16px;align-items:baseline}
.ways li:first-child{border-top:1px solid var(--rule)}
.ways b{font-weight:600;color:var(--ink-soft);font-size:17px}
.ways .big{font:400 28px/1.2 var(--serif);text-decoration:none;color:var(--ink)}
.ways .big:hover{color:var(--door)}
.hosts-mini{display:flex;gap:28px;align-items:center;margin-top:56px}
.hosts-mini img{width:152px;border-radius:var(--radius);flex:none}
.hosts-mini p{margin:0;font-size:18px}
.draft{background:var(--butter-soft);padding:44px;border-radius:var(--radius)}
.draft h2{font-size:32px;margin-bottom:10px}
.draft>p{color:var(--ink-soft);font-size:18px}
.field{margin-bottom:20px}
.field label{display:block;font-weight:600;margin-bottom:6px;font-size:17px}
.field input,.field select,.field textarea{width:100%;font:400 18px var(--sans);padding:13px 15px;border:2px solid rgba(107,68,35,.3);border-radius:8px;background:#fff;color:var(--ink)}
.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid var(--pine);outline-offset:1px;border-color:var(--pine)}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.draft small{display:block;margin-top:14px;font-size:16px;color:var(--ink-soft)}

/* ---------- zoom dialog ---------- */
dialog.zoom{border:0;padding:0;background:transparent;max-width:96vw;max-height:96vh;overflow:visible}
dialog.zoom::backdrop{background:rgba(45,33,24,.82)}
dialog.zoom .inner{background:#fff;padding:18px;border-radius:8px;position:relative}
dialog.zoom img{max-width:min(92vw,1100px);max-height:82vh;width:auto;height:auto}
dialog.zoom .cl{position:absolute;right:-6px;top:-54px;background:var(--paper);border:0;border-radius:999px;padding:10px 20px;font:600 16px var(--sans);cursor:pointer;color:var(--ink)}
dialog.zoom p{margin:10px 0 0;font-size:15px;color:var(--ink-soft)}

/* ---------- responsive baseline ---------- */
@media (max-width:1320px){
  :root{--gut:32px}
  .menu-btn{display:inline-block}
  .nav{position:absolute;left:0;right:0;top:100%;background:var(--paper);border-bottom:1px solid var(--rule);display:none;margin:0;padding:12px var(--gut) 24px}
  .nav.open{display:block}
  .nav ul{flex-direction:column;align-items:stretch}
  .nav a{padding:14px 4px;border-bottom:1px solid var(--rule);border-radius:0}
  .nav a[aria-current="page"]::after{display:none}
  .header-call{display:none}
  .site-header .wrap{position:relative}
}
@media (max-width:1020px){
  .hero .wrap,.intro,.comforts,.hosts,.close,.review-band,.cabin-top,.detail,.detail.wideplan,.doc,.grounds-grid,.contact-grid,.page-head.split .wrap{grid-template-columns:1fr;gap:48px}
  .hero-copy{padding-bottom:0}
  .picks{grid-template-columns:1fr 1fr;gap:56px 0}
  .pick:nth-child(3){border-left:0;padding-left:0}
  .cabin-grid{grid-template-columns:1fr 1fr}
  .gtk,.rates-notes{grid-template-columns:1fr;gap:36px}
  .footer-grid{grid-template-columns:1fr 1fr}
  .comfort-fig,.toc{position:static}
  .keyfacts{grid-template-columns:1fr 1fr}
  .keyfacts>div:nth-child(3){border-left:0;padding-left:0}
  .pick-head{flex-direction:column;align-items:flex-start;gap:20px}
  .hosts-fig img{width:220px}
  .section{padding:88px 0}
}
@media (max-width:1020px){.rate-wrap{overflow-x:auto}.rates thead th{position:static}}
@media (max-width:640px){
  :root{--gut:20px}
  body{font-size:17px}
  .picks,.cabin-grid,.comfort-list,.explore-group .leaders,.field-row,.footer-grid{grid-template-columns:1fr}
  .pick,.pick:nth-child(3){padding:0;border-left:0}
  .gable{--roof:56px}
  .cabins-foot{flex-direction:column;align-items:flex-start}
  .facts>div{grid-template-columns:1fr;gap:4px}
  .ways li{grid-template-columns:1fr;gap:4px}
  .keyfacts{grid-template-columns:1fr}
  .keyfacts>div{border-left:0;padding-left:0}
  .draft{padding:26px}
  .footer-base{flex-direction:column}
  .brand-sub{display:none}
  .brand svg{width:34px;height:34px}
  .brand{gap:10px;flex:1 1 0;min-width:0}
  .brand>span{min-width:0}
  .brand-name{overflow-wrap:break-word}
  .menu-btn{flex:none;margin-left:0}
  .brand-name{font-size:18px}
  .site-header .wrap{gap:12px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
@media print{.site-header,.site-footer,.lattice{display:none}}

/* lining numerals for Young Serif everywhere it shows figures (must come last: font shorthands above reset it) */
.plate b,.price,.pick .from b,.tile .from b,.spec-big,.spec-from b,.cab-rates td b,.ways .big,.sleeps,.quiet-facts span,.keyfacts b,.pick .sleeps,.tile .sleeps,h1,h2,h3{font-variant-numeric:lining-nums!important;font-feature-settings:"lnum" 1!important}

.ways .big.email{font-size:22px;overflow-wrap:anywhere}

/* quiet photographer credit on photos */
.credit-on{position:absolute;right:10px;bottom:10px;z-index:2;background:rgba(252,248,239,.92);color:var(--ink-soft);font:500 14px/1 var(--sans);padding:6px 11px;border-radius:999px}

/* ---------- home hero: one large photograph, copy on an overlapping signboard (scoped to .hero-photo) ---------- */
.hero-photo{overflow:visible}
.hero-photo .hero-img{position:relative;margin:0}
.hero-photo .hero-img img{width:100%;aspect-ratio:2400/1154;max-height:760px;object-fit:cover;object-position:50% 46%}
.hero-photo .hero-cap{top:24px;bottom:auto;right:24px}
.hero-photo .wrap{display:block;padding-top:0;padding-bottom:56px}
.hero-photo .hero-panel{position:relative;z-index:3;margin-top:-132px;display:grid;grid-template-columns:7fr 5fr;gap:56px;align-items:center;background:var(--paper);border-top:6px solid var(--door);border-radius:0 0 var(--radius) var(--radius);padding:44px 52px 48px;box-shadow:0 22px 48px -18px rgba(45,33,24,.38)}
.hero-photo .hero-panel h1{font-size:clamp(34px,3.5vw,50px);margin-bottom:16px}
.hero-photo .hero-panel .lead{margin:0;font-size:20px}
.hero-photo .hero-note{margin:22px 0 0;max-width:none}
@media (max-width:1020px){
  .hero-photo .hero-img img{aspect-ratio:auto;height:clamp(260px,58vw,460px);object-position:62% 50%}
  .hero-photo .hero-panel{grid-template-columns:1fr;gap:28px;margin-top:-56px;padding:32px 28px 36px}
}
@media (max-width:640px){
  .hero-photo .hero-cap{top:14px;right:14px}
  .hero-photo .wrap{padding-bottom:40px}
}
