/* Page-type layouts (A3). Loaded after pages.css / blog.css on every subpage. */
@font-face{font-family:"Kalam";font-style:normal;font-weight:400;font-display:optional;src:url(/fonts/kalam-400.woff2) format("woff2")}
:root{--hand:"Kalam","Comic Sans MS",cursive;--sage:var(--field);--glow:0 0 0 1px rgba(255,118,0,.45),0 0 22px 2px rgba(255,118,0,.45)}
main{overflow-x:clip}
.l-wrap{max-width:1180px;margin:0 auto;padding:0 28px}
.l-crumb{font-size:14px;color:var(--ink-soft);margin:34px 0 26px}
.l-crumb a{color:var(--ink-soft)}
.l-crumb a:hover{color:var(--clay-deep)}
.l-crumb span{margin:0 8px;opacity:.6}
.l-kicker{display:block;font-size:15px;font-weight:600;color:var(--sage);margin:0 0 14px}
.l-h1{font-family:var(--disp);font-weight:400;font-size:clamp(42px,5.6vw,78px);line-height:1.03;letter-spacing:-.028em;margin:0;color:var(--ink);text-wrap:balance}
.l-h1 em{font-style:normal;color:var(--clay)}
.l-lead{font-size:clamp(17px,1.35vw,20px);line-height:1.6;color:var(--ink-soft);max-width:34em;margin:24px 0 0}
.l-h2{font-family:var(--disp);font-weight:400;font-size:clamp(30px,3vw,44px);line-height:1.1;letter-spacing:-.02em;margin:0 0 18px;color:var(--ink)}
.hand{font-family:var(--hand);color:var(--clay-deep);line-height:1.15}
.l-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.l-btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:13px 26px;border-radius:999px;font-weight:600;font-size:16px;text-decoration:none!important;transition:transform .18s,background .18s,box-shadow .18s,color .18s}
.l-btn:hover{transform:translateY(-2px)}
.l-btn.pri{background:var(--clay);color:var(--on-clay)}
.l-btn.pri:hover{background:#FF8F33;color:var(--on-clay);box-shadow:var(--glow)}
.l-btn.gho{color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}
.l-btn.gho:hover{color:var(--ink);box-shadow:inset 0 0 0 1px var(--clay),0 0 18px 0 rgba(255,118,0,.3)}
@media (prefers-reduced-motion:reduce){.l-btn:hover,.l-card:hover,.idx a:hover{transform:none}}
.prose{font-size:17.5px;line-height:1.75;color:var(--ink-soft)}
.prose p{margin:0 0 1.1em}
.prose p:last-child{margin-bottom:0}
.prose strong{color:var(--ink);font-weight:600}
.prose a{color:var(--clay-deep);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.prose ul.tick{list-style:none;padding:0;margin:0 0 1.1em}
.prose ul.tick li{position:relative;padding-left:26px;margin:0 0 .55em}
.prose ul.tick li::before{content:"";position:absolute;left:2px;top:.62em;width:9px;height:9px;border-radius:50%;background:var(--clay)}
.l-sec{padding:88px 0}
.l-sec.band{background:var(--plate);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.l-card{background:var(--plate);border:1px solid var(--line);border-radius:22px;transition:transform .18s,border-color .18s,box-shadow .18s}

/* ---------- services: session sheet ---------- */
.svc-hero{display:grid;grid-template-columns:1.25fr .9fr;gap:72px;align-items:end;padding-bottom:72px}
.spec{position:relative;padding:30px 30px 26px}
.spec .hand{position:absolute;top:-46px;right:18px;font-size:22px;transform:none;white-space:nowrap}
.spec dl{margin:0}
.spec dl>div{display:grid;grid-template-columns:118px 1fr;gap:16px;padding:14px 0;border-top:1px solid var(--line)}
.spec dl>div:first-child{border-top:0;padding-top:0}
.spec dt{font-size:14px;color:var(--ink-soft)}
.spec dd{margin:0;font-size:15.5px;color:var(--ink);line-height:1.45}
.spec dl>div:last-child dd{font-family:var(--disp);font-size:24px;color:var(--clay-deep);line-height:1.2}
.rows{border-top:1px solid var(--line)}
.row{display:grid;grid-template-columns:320px 1fr;gap:64px;padding:56px 0;border-bottom:1px solid var(--line)}
.row-head{position:sticky;top:110px;align-self:start}
.row .num{display:block;font-family:var(--disp);font-size:16px;color:var(--clay-deep);margin-bottom:10px}
.row h2{font-family:var(--disp);font-weight:400;font-size:clamp(26px,2.4vw,34px);line-height:1.12;letter-spacing:-.015em;margin:0;color:var(--ink)}
.row .prose{max-width:660px}
.l-quote{margin:0 auto;max-width:860px;text-align:center}
.l-quote blockquote{margin:0;font-family:var(--disp);font-size:clamp(26px,3vw,40px);line-height:1.25;letter-spacing:-.015em;color:var(--ink)}
.l-quote figcaption{margin-top:18px;font-size:15px;color:var(--ink-soft)}
.l-quote .stars{display:block;color:var(--clay);letter-spacing:3px;margin-bottom:16px}
.l-faq{display:grid;grid-template-columns:1fr 1.7fr;gap:64px;align-items:start}
.l-faq .faq{margin:0}
.l-faq .hand{display:block;font-size:20px;margin-top:6px;transform:none}
.l-rel{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.l-rel a{display:block;padding:24px 24px 26px;text-decoration:none}
.l-rel a:hover{transform:translateY(-3px);border-color:var(--clay);box-shadow:0 0 22px 0 rgba(255,118,0,.18)}
.l-rel .k{display:block;font-size:13px;font-weight:600;color:var(--sage);margin-bottom:8px}
.l-rel b{font-family:var(--disp);font-weight:400;font-size:22px;color:var(--ink)}
.l-cta{display:grid;grid-template-columns:1.3fr auto;gap:40px;align-items:center;padding:52px 56px;border-radius:28px;background:var(--plate);border:1px solid var(--line);background-image:linear-gradient(var(--line-soft) 1px,transparent 1px),linear-gradient(90deg,var(--line-soft) 1px,transparent 1px);background-size:34px 34px}
.l-cta h2{font-family:var(--disp);font-weight:400;font-size:clamp(30px,3.4vw,48px);line-height:1.08;letter-spacing:-.02em;margin:0;color:var(--ink)}
.l-cta h2 em{font-style:normal;color:var(--clay)}
.l-cta p{margin:12px 0 0;color:var(--ink-soft);font-size:17px}
.l-cta .l-actions{margin:0}

/* ---------- conditions: chart ---------- */
.cond-hero{display:grid;grid-template-columns:1fr 380px;gap:64px;align-items:center;padding-bottom:64px}
.cfig{position:relative;padding:26px 24px 18px;display:flex;justify-content:center}
.cfig svg{width:200px;height:auto;display:block;overflow:visible}
.cfig .sk{fill:var(--paper);stroke:var(--ink);stroke-width:1.6;stroke-linejoin:round}
.cfig .ln{fill:none;stroke:var(--line);stroke-width:1.2;stroke-linecap:round}
.cfig .spine{stroke:var(--line);stroke-width:1.2;stroke-dasharray:3 5}
.cfig .nerve{fill:none;stroke:var(--clay);stroke-width:2.2;stroke-dasharray:4 6;stroke-linecap:round}
.cfig .zone{fill:var(--clay);fill-opacity:.16}
.cfig .dot{fill:var(--clay)}
.cfig .ring{fill:none;stroke:var(--clay);stroke-width:2;transform-box:fill-box;transform-origin:center;animation:pulse 2.4s ease-out infinite}
@keyframes pulse{0%{opacity:.9;transform:scale(.6)}100%{opacity:0;transform:scale(1.9)}}
@media (prefers-reduced-motion:reduce){.cfig .ring{animation:none;opacity:.5}}
.cfig .hand{position:absolute;font-size:22px;transform:none;white-space:nowrap}
.fit{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:24px}
.fit>div{padding:30px 30px 26px;border-radius:22px;border:1px solid var(--line);background:var(--plate)}
.fit .yes{border-color:var(--sage)}
.fit .no{border-color:var(--clay)}
.fit h2{font-family:var(--disp);font-weight:400;font-size:24px;margin:0 0 16px;color:var(--ink)}
.fit ul{list-style:none;margin:0;padding:0}
.fit li{position:relative;padding:0 0 0 30px;margin:0 0 12px;color:var(--ink-soft);font-size:16px;line-height:1.5}
.fit .yes li::before{content:"";position:absolute;left:2px;top:4px;width:14px;height:8px;border-left:2px solid var(--sage);border-bottom:2px solid var(--sage);transform:rotate(-45deg)}
.fit .no li::before{content:"!";position:absolute;left:0;top:0;width:19px;height:19px;border-radius:50%;background:var(--clay);color:var(--on-clay);font-size:12px;font-weight:700;line-height:19px;text-align:center}
.read{display:grid;grid-template-columns:230px 1fr;gap:72px;align-items:start}
.toc{position:sticky;top:110px;font-size:14.5px}
.toc b{display:block;font-size:13px;font-weight:600;color:var(--sage);margin-bottom:12px}
.toc a{display:block;padding:7px 0 7px 14px;border-left:2px solid var(--line);color:var(--ink-soft);text-decoration:none}
.toc a:hover{color:var(--ink);border-left-color:var(--clay)}
.read .prose{max-width:690px}
.read .prose h2{font-family:var(--disp);font-weight:400;font-size:clamp(28px,2.6vw,36px);line-height:1.12;letter-spacing:-.015em;color:var(--ink);margin:56px 0 16px;scroll-margin-top:100px}
.read .prose h2:first-child{margin-top:0}

/* ---------- towns: route card ---------- */
.town-hero{display:grid;grid-template-columns:1fr 1.05fr;gap:56px;align-items:center;padding-bottom:48px}
.town-hero .mapfig{margin:0}
.town-hero .mapfig .plate{border-radius:24px;padding:8px}
.town-hero .mapfig svg{border-radius:18px}
.facts{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:22px;background:var(--plate);overflow:hidden}
.facts>div{padding:22px 24px;border-left:1px solid var(--line)}
.facts>div:first-child{border-left:0}
.facts dt{font-size:13px;font-weight:600;color:var(--sage);margin-bottom:6px}
.facts dd{margin:0;font-family:var(--disp);font-size:21px;line-height:1.25;color:var(--ink)}
.facts .free dd{color:var(--clay-deep)}
.why{display:grid;grid-template-columns:1fr 1fr;gap:56px}
.steps3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:8px}
.steps3>div{padding:28px 26px}
.steps3 .n{font-family:var(--disp);font-size:44px;line-height:1;color:var(--clay);display:block;margin-bottom:16px}
.steps3 h3{font-family:var(--disp);font-weight:400;font-size:22px;margin:0 0 8px;color:var(--ink)}
.steps3 p{margin:0;color:var(--ink-soft);font-size:15.5px;line-height:1.55}
.work{display:grid;grid-template-columns:1.4fr 1fr;gap:56px;align-items:start}
.price-box{padding:30px}
.price-box .prose{font-size:16.5px}
.price-box h3{font-family:var(--disp);font-weight:400;font-size:24px;margin:0 0 12px;color:var(--ink)}
.price-box hr{border:0;border-top:1px solid var(--line);margin:22px 0}
.towns-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.towns-row a{padding:9px 16px;border:1px solid var(--line);border-radius:999px;color:var(--ink);text-decoration:none;font-size:15px;transition:border-color .18s,box-shadow .18s}
.towns-row a:hover{border-color:var(--clay);box-shadow:0 0 16px 0 rgba(255,118,0,.25)}

/* ---------- blog post: journal ---------- */
.post-head{max-width:900px;margin:0 auto;text-align:center;padding:8px 0 40px}
.post-head .l-h1{font-size:clamp(36px,4.6vw,62px)}
.post-meta{margin-top:22px;font-size:15px;color:var(--ink-soft)}
.post-meta span{margin:0 10px;opacity:.5}
.post-hero{max-width:1100px;margin:0 auto 64px}
.post-hero img{width:100%;height:auto;display:block;border-radius:24px;aspect-ratio:3/2;object-fit:cover;background:var(--plate)}
.post-body .prose>p:first-of-type::first-letter{font-family:var(--disp);float:left;font-size:4.4em;line-height:.82;margin:.06em .1em 0 0;color:var(--clay)}
.post-body .prose img{width:100%;height:auto;border-radius:18px;margin:16px 0 28px;display:block}
.post-body .prose h2{counter-increment:h}
.post-body .prose h2::before{content:counter(h,decimal-leading-zero);display:block;font-family:var(--sans);font-size:14px;font-weight:600;color:var(--clay-deep);margin-bottom:8px;letter-spacing:.02em}
.post-body .prose{counter-reset:h}
.pull{margin:44px 0 48px;padding:0;font-family:var(--disp);font-size:clamp(24px,2.4vw,32px);line-height:1.28;letter-spacing:-.012em;color:var(--ink)}
.pull::before{content:"\201C";display:block;font-size:2.4em;line-height:.6;color:var(--clay);margin-bottom:10px}
.author{display:grid;grid-template-columns:88px 1fr;gap:22px;align-items:center;margin-top:56px;padding:26px 28px}
.author img{width:88px;height:88px;border-radius:50%;object-fit:cover;object-position:50% 20%}
.author b{font-family:var(--disp);font-weight:400;font-size:21px;color:var(--ink)}
.author p{margin:4px 0 0;font-size:15px;color:var(--ink-soft);line-height:1.55}
.back-link{display:inline-block;margin-top:28px;color:var(--ink-soft);font-size:15px}

/* ---------- about ---------- */
.about-hero{display:grid;grid-template-columns:.9fr 1.1fr;gap:72px;align-items:center;padding-bottom:80px}
.portrait{position:relative}
.portrait img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 22%;border-radius:28px;display:block;background:var(--plate)}
.portrait .hand{position:absolute;right:-12px;bottom:28px;font-size:24px;transform:none;background:var(--paper);padding:6px 14px;border-radius:12px;border:1px solid var(--line)}
.about-hero .l-h1{font-size:clamp(56px,8vw,112px)}
.about-hero .prose{margin-top:22px;max-width:36em}
.ledger{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}
.ledger>div{display:grid;grid-template-columns:150px 1fr;gap:20px;padding:22px 0;border-bottom:1px solid var(--line)}
.ledger>div:nth-child(odd){padding-right:40px}
.ledger>div:nth-child(even){padding-left:40px;border-left:1px solid var(--line)}
.ledger dt{font-size:14px;color:var(--ink-soft)}
.ledger dd{margin:0;color:var(--ink);font-size:16.5px;line-height:1.45}
.steps4{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:2px solid var(--ink)}
.steps4>div{padding:28px 28px 0 0}
.steps4 .n{font-family:var(--disp);font-size:15px;color:var(--clay-deep);display:block;margin-bottom:14px}
.steps4 h3{font-family:var(--disp);font-weight:400;font-size:26px;margin:0 0 10px;color:var(--ink)}
.steps4 p{margin:0;color:var(--ink-soft);font-size:16px;line-height:1.6}
.steps4 a,.author p a{color:var(--clay-deep);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}

/* ---------- hubs ---------- */
.hub-head{padding-bottom:56px;max-width:880px}
.idx{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.idx a{display:grid;grid-template-columns:90px 1fr 1.1fr 40px;gap:28px;align-items:center;padding:30px 12px;border-bottom:1px solid var(--line);text-decoration:none;transition:background .18s,box-shadow .18s,transform .18s;border-radius:14px}
.idx a:hover{background:var(--plate);box-shadow:inset 0 0 0 1px var(--clay),0 0 24px 0 rgba(255,118,0,.16);transform:translateX(4px)}
.idx .n{font-family:var(--disp);font-size:18px;color:var(--clay-deep)}
.idx b{font-family:var(--disp);font-weight:400;font-size:clamp(26px,2.6vw,36px);line-height:1.1;color:var(--ink)}
.idx p{margin:0;color:var(--ink-soft);font-size:16px;line-height:1.55}
.idx .arr{font-size:24px;color:var(--clay);justify-self:end}
.hub-after{margin-top:40px;max-width:44em}
.cgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.cgrid a{display:flex;flex-direction:column;padding:26px 26px 28px;text-decoration:none}
.cgrid a:hover{transform:translateY(-4px);border-color:var(--clay);box-shadow:0 0 26px 0 rgba(255,118,0,.2)}
.cgrid .cfig{padding:6px 0 18px}
.cgrid .cfig svg{width:118px}
.cgrid b{font-family:var(--disp);font-weight:400;font-size:28px;color:var(--ink);margin-bottom:8px}
.cgrid p{margin:0 0 18px;color:var(--ink-soft);font-size:15.5px;line-height:1.55;flex:1}
.cgrid .go{font-weight:600;color:var(--clay-deep);font-size:15px}
.feature{display:grid;grid-template-columns:1.2fr 1fr;gap:0;overflow:hidden;text-decoration:none;margin-bottom:28px}
.feature img{width:100%;height:100%;object-fit:cover;display:block;min-height:320px}
.feature .t{padding:44px 44px 40px;display:flex;flex-direction:column;justify-content:center}
.feature .d{font-size:14px;color:var(--ink-soft);margin-bottom:12px}
.feature b{font-family:var(--disp);font-weight:400;font-size:clamp(28px,2.8vw,40px);line-height:1.12;color:var(--ink)}
.feature p{margin:16px 0 0;color:var(--ink-soft);font-size:16.5px;line-height:1.6}
.feature:hover{border-color:var(--clay);box-shadow:0 0 26px 0 rgba(255,118,0,.18)}
.plist{list-style:none;margin:0;padding:0}
.plist a{display:grid;grid-template-columns:150px 1fr 40px;gap:28px;align-items:baseline;padding:26px 8px;border-top:1px solid var(--line);text-decoration:none;transition:background .18s}
.plist a:hover{background:var(--plate)}
.plist .d{font-size:14px;color:var(--ink-soft)}
.plist b{font-family:var(--disp);font-weight:400;font-size:24px;line-height:1.2;color:var(--ink);display:block}
.plist p{margin:8px 0 0;color:var(--ink-soft);font-size:15.5px;line-height:1.55}
.plist .arr{color:var(--clay);font-size:22px}

/* ---------- responsive ---------- */
@media (max-width:1000px){
  .svc-hero,.cond-hero,.town-hero,.about-hero{grid-template-columns:1fr;gap:48px}
  .row{grid-template-columns:1fr;gap:16px}
  .row-head,.toc{position:static}
  .read{grid-template-columns:1fr;gap:28px}
  .toc{display:none}
  .l-faq,.work,.why{grid-template-columns:1fr;gap:28px}
  .cond-hero .cfig{max-width:380px}
  .about-hero .portrait{max-width:440px}
}
@media (max-width:760px){
  .l-wrap{padding:0 20px}
  .l-crumb{margin:22px 0 18px}
  .l-sec{padding:60px 0}
  .svc-hero,.cond-hero{padding-bottom:48px}
  .spec{padding:24px 22px 20px;margin-top:30px}
  .spec dl>div{grid-template-columns:1fr;gap:4px}
  .row{padding:40px 0}
  .prose{font-size:16.5px}
  .fit{grid-template-columns:1fr}
  .fit>div{padding:24px 22px 18px}
  .facts{grid-template-columns:1fr 1fr}
  .facts>div{border-left:0;border-top:1px solid var(--line);padding:18px 18px}
  .facts>div:nth-child(-n+2){border-top:0}
  .facts>div:nth-child(even){border-left:1px solid var(--line)}
  .facts dd{font-size:18px}
  .steps3,.l-rel,.cgrid{grid-template-columns:1fr}
  .l-cta{grid-template-columns:1fr;padding:34px 24px;gap:24px}
  .post-hero{margin-bottom:40px}
  .post-hero img{border-radius:16px}
  .ledger{grid-template-columns:1fr}
  .ledger>div,.ledger>div:nth-child(odd),.ledger>div:nth-child(even){grid-template-columns:110px 1fr;padding:16px 0;border-left:0}
  .steps4{grid-template-columns:1fr 1fr;row-gap:28px}
  .steps4>div{padding-right:18px}
  .idx a{grid-template-columns:44px 1fr 24px;gap:14px;padding:22px 4px}
  .idx a p{grid-column:2/3}
  .idx .arr{grid-row:1;grid-column:3}
  .feature{grid-template-columns:1fr}
  .feature img{min-height:0;aspect-ratio:3/2}
  .feature .t{padding:26px 22px 28px}
  .plist a{grid-template-columns:1fr 24px;gap:6px 14px}
  .plist .d{grid-column:1/-1}
  .author{grid-template-columns:64px 1fr;padding:20px}
  .author img{width:64px;height:64px}
  .portrait .hand{right:12px}
}

/* shared chrome, matched to the homepage */
.brand .name span{display:none}
.foot-cols h4,.drop-head{font-family:var(--sans);font-size:13px;letter-spacing:0;text-transform:none;font-weight:600;color:var(--sage)}
.drop-panel .drop-all{font-family:var(--sans);font-size:14px;letter-spacing:0;text-transform:none}
.cfig .hand{max-width:170px;white-space:normal;transform:none}

/* homepage's stronger outline color, for ghost buttons */
:root{--line-2:#B9AE9E}
html[data-theme="dark"],html.sys-dark:not([data-theme="light"]){--line-2:#4E4943}

/* ===== Shared chrome: header, menu, footer and phone bar use the homepage's sizes ===== */
.l-wrap{max-width:1280px;padding:0 32px}
.site-head .wrap{max-width:1280px;padding:0 32px;height:auto;min-height:76px;gap:20px}
.site-head .brand{flex-shrink:0;min-width:0;text-decoration:none}
.site-head .brand img{width:38px;height:38px;object-fit:contain;flex-shrink:0}
.site-head .brand .name{font-family:var(--disp);font-size:21px;font-weight:500;line-height:1.1;white-space:nowrap;letter-spacing:0}
.site-head .nav-links{gap:26px;font-size:15px;font-weight:500}
.site-head .nav-links a.link,.site-head .nav-drop .drop-trigger{font-family:var(--sans);font-size:15px;font-weight:500;color:var(--ink);border:0;padding:8px 0;background:none;gap:4px}
.site-head .nav-links a.link:hover,.site-head .nav-drop .drop-trigger:hover,.site-head .nav-drop[data-open="true"] .drop-trigger{color:var(--clay-deep);border:0;text-decoration:none}
.site-head .nav-drop .caret{width:15px;height:15px}
.site-head .call-link{font-family:var(--sans);font-size:15px;font-weight:500;gap:6px}
.site-head .call-link:hover{color:var(--clay-deep)}
.site-head .theme-toggle,.site-head .menu-toggle{width:44px;height:44px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--ink);align-items:center;justify-content:center;padding:0;flex-shrink:0}
.site-head .theme-toggle{display:inline-flex}
.site-head .theme-toggle:hover{color:var(--ink);border-color:var(--line)}
.site-head .theme-toggle svg,.site-head .menu-toggle svg{width:18px;height:18px}
.site-head .book-btn{min-height:44px;padding:10px 20px;font-size:15px;line-height:1.2;border-radius:999px;display:inline-flex;align-items:center;box-shadow:none}
.drop-panel{left:-18px;transform:translateY(-6px);min-width:250px;background:var(--plate);border-radius:16px;padding:12px}
.nav-drop[data-open="true"] .drop-panel{transform:translateY(0)}
.drop-head{margin:4px 10px 8px;color:var(--ink-soft)}
.drop-panel a{padding:9px 10px;border-radius:10px;font-size:15px}
.drop-panel a:hover{background:var(--paper);color:var(--ink)}
.drop-panel .drop-all{margin-top:6px;border-top:1px solid var(--line);border-radius:0 0 10px 10px;font-size:15px;color:var(--clay-deep)}
.drop-panel .drop-all:hover{text-decoration:none;background:var(--paper)}
@media (max-width:1060px){.site-head .nav-links{gap:18px}.site-head .call-link{display:none}}
@media (max-width:960px){.site-head .menu-toggle{display:inline-flex}}
@media (max-width:760px){.l-wrap{padding:0 20px}.site-head .wrap{padding:0 20px}}
@media (max-width:700px){.site-head .wrap{gap:20px}.site-head .brand img{width:38px;height:38px}.site-head .brand .name{font-size:21px;letter-spacing:0;white-space:nowrap}.site-head .book-btn{padding:10px 20px;font-size:15px}}
@media (max-width:600px){
  .site-head .nav-cta .book-btn{display:none}
  .site-head .brand{flex-shrink:1}
  .site-head .brand .name{font-size:16px;white-space:normal;max-width:9.5em}
  .site-head .brand img{width:32px;height:32px}
  .site-head .wrap{min-height:68px}
}
/* full-screen phone menu, same as the homepage */
.mobile-menu{inset:76px 0 0;background:var(--paper);border-bottom:0;padding:20px 24px 120px;flex-direction:column}
.mobile-menu a{font-family:var(--disp);font-size:24px;padding:12px 0;border-bottom:1px solid var(--line);color:var(--ink)}
.mobile-menu a:last-child{border-bottom:1px solid var(--line)}
.mobile-menu a:hover{text-decoration:none;color:var(--clay-deep)}
.mobile-menu .mob-sub{font-family:var(--sans);font-size:16px;padding:9px 0 9px 18px;color:var(--ink-soft)}
@media (max-width:600px){.mobile-menu{inset:68px 0 0}}
/* phone booking bar: pill buttons from 760px down, same as the homepage */
@media (max-width:760px){
  body{padding-bottom:72px}
  .mobile-book{display:grid;grid-template-columns:1fr 1fr;gap:10px;position:fixed;left:0;right:0;bottom:0;z-index:58;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--paper);backdrop-filter:none;border-top:1px solid var(--line);transform:translateY(110%);transition:transform .25s}
  .mobile-book.is-visible{transform:none}
  .mobile-book a{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:10px;border-radius:999px;font-weight:600;font-size:16px;text-decoration:none}
  .mobile-book .mb-ghost{border:0;box-shadow:inset 0 0 0 1px var(--line-2);color:var(--ink)}
  .mobile-book .mb-solid{background:var(--clay);color:var(--on-clay)}
}
/* footer */
.site-foot{border-top:1px solid var(--line);margin-top:0;padding:56px 0 40px;font-size:15px;background:transparent;color:var(--ink-soft)}
.site-foot .wrap{max-width:1280px;padding:0 32px}
.foot-grid{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:32px}
.foot-grid>*{min-width:0}
.foot-brand{display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none}
.foot-brand:hover{color:var(--ink);text-decoration:none}
.foot-brand img{width:36px;height:36px;object-fit:contain}
.foot-brand .name{font-family:var(--disp);font-size:19px;line-height:1.2}
.foot-brand .name span{display:block;font-family:var(--sans);font-size:13px;color:var(--ink-soft);margin-top:4px;letter-spacing:0}
.foot-col h4{margin:0 0 12px;font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--ink-soft)}
.foot-col a,.foot-col p{display:block;margin:0 0 4px;padding:3px 0;color:var(--ink-soft);text-decoration:none;overflow-wrap:anywhere;font-size:15px;line-height:1.7}
.foot-col a:hover{color:var(--clay-deep);text-decoration:none}
.foot-bottom{margin-top:44px;padding-top:24px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;color:var(--ink-soft);font-size:14px}
.foot-bottom a{color:var(--ink-soft);text-decoration:underline}
@media (max-width:900px){.foot-grid{grid-template-columns:1fr 1fr}.foot-grid>:first-child{grid-column:1/-1}}
@media (max-width:760px){.site-foot .wrap{padding:0 20px}}
@media (max-width:760px){.foot-grid{column-gap:20px}.foot-col .foot-email{font-size:14px}}

/* mobile menu: scrollable on short screens, out of the tab order when closed */
.mobile-menu{max-height:none;overflow-y:auto;overscroll-behavior:contain;visibility:hidden;transition:opacity .2s ease,transform .2s ease,visibility 0s linear .2s}
.mobile-menu.open{visibility:visible;transition:opacity .2s ease,transform .2s ease,visibility 0s}

/* hover bridge: covers the gap between the menu label and its panel */
.drop-panel::before{content:"";position:absolute;left:0;right:0;top:-16px;height:16px}

/* town map caption: sentence case like every other label */
.town-hero .map-note{font-family:var(--sans);font-size:13px;letter-spacing:0;text-transform:none}

/* scroll reveal (theme.js adds .rv to below-the-fold blocks) */
.rv{opacity:0;transform:translateY(22px)}
.rv.rv-in{opacity:1;transform:none;transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none}}
@media print{.rv{opacity:1;transform:none}}
