/* andersonportapotty.com: "Upstate road sign + route map" identity.
   Overpass (a Highway Gothic descendant) throughout. Guide-sign green, interstate red, map paper. */
:root{
  --paper:#F4F5F0;--white:#fff;--land:#E3EADE;--ink:#16201A;--ink2:#47524B;--ink3:#6E7871;--line:#D3DACF;--line2:#BAC4B6;
  --sign:#0A6B3B;--sign-d:#06522C;--sign-l:#E2EFE6;--red:#D42A1E;--red-d:#AE1F14;--blue:#1E4F9C;--water:#8FC0E2;--amber:#F2B233;
  --f:'Overpass',system-ui,-apple-system,'Segoe UI',Arial,sans-serif;--wrap:1220px;--r:10px
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17.5px/1.62 var(--f)}
img{max-width:100%;height:auto;display:block}
a{color:var(--sign);text-underline-offset:3px;text-decoration-thickness:1.5px}
a:hover{color:var(--sign-d)}
:focus-visible{outline:3px solid var(--red);outline-offset:3px;border-radius:3px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 22px}
.skip{position:absolute;left:-999px;top:0;background:var(--red);color:#fff;padding:10px 14px;z-index:99;font-weight:800}
.skip:focus{left:10px;top:10px}
h1,h2,h3{font-family:var(--f);color:var(--ink);line-height:1.08;margin:0 0 .45em;letter-spacing:-.012em}
h2{font-size:clamp(1.55rem,2.8vw,2.25rem);font-weight:800}
h3{font-size:1.2rem;font-weight:800;margin-top:1.5em}
p{margin:0 0 1em}ul,ol{padding-left:1.2em;margin:0 0 1.1em}li{margin:.3em 0}

/* ---------- Top strip + header ---------- */
.strip{background:var(--sign-d);color:#D8EADF;font-size:.9rem}
.strip .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:38px}
.strip a{color:#fff;font-weight:800;text-decoration:none}
.clock{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:#fff}
.clock::before{content:"";width:9px;height:9px;border-radius:50%;background:#3BE07A;box-shadow:0 0 0 3px rgba(59,224,122,.25);flex:none}
.clock.closed::before{background:var(--amber);box-shadow:0 0 0 3px rgba(242,178,51,.25)}
.hdr{background:var(--white);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
.hdr .wrap{display:flex;align-items:center;gap:18px;min-height:72px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);margin-right:auto}
.brand b{display:block;font-size:1.18rem;font-weight:900;letter-spacing:-.01em;line-height:1}
.brand small{display:block;font-size:.8rem;color:var(--ink2);font-weight:600;margin-top:3px}
.nav{display:flex;gap:2px}
.nav a{color:var(--ink);text-decoration:none;font-weight:700;font-size:.96rem;padding:9px 11px;border-radius:8px}
.nav a:hover,.nav a[aria-current=page]{background:var(--sign-l);color:var(--sign-d)}
.call{display:inline-flex;align-items:center;gap:9px;background:var(--red);color:#fff;font-weight:900;text-decoration:none;padding:11px 16px;border-radius:999px;white-space:nowrap;letter-spacing:.01em}
.call:hover{background:var(--red-d);color:#fff}
.menu{display:none}
.menu summary{list-style:none;cursor:pointer;padding:10px 14px;border-radius:999px;background:var(--ink);color:#fff;font-weight:800}
.menu summary::-webkit-details-marker{display:none}
.menu[open] .menu-panel{display:grid}
.menu-panel{display:none;position:absolute;left:0;right:0;top:100%;background:var(--white);border-bottom:4px solid var(--sign);padding:8px 22px 20px;max-height:78vh;overflow:auto;grid-template-columns:1fr 1fr;gap:0 24px}
.menu-panel div p{margin:14px 0 4px;color:var(--sign);font-size:.85rem;font-weight:900}
.menu-panel a{display:block;padding:9px 0;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none;font-weight:600;font-size:.97rem}
@media (max-width:1060px){.nav{display:none}.menu{display:block}.hdr .wrap{position:relative}}
@media (max-width:560px){.hdr .call{display:none}.strip .hide-s{display:none}.menu-panel{grid-template-columns:1fr}}

/* ---------- Guide sign (the signature element) ---------- */
.sign{position:relative;background:var(--sign);color:#fff;border-radius:14px;padding:30px 34px 28px;box-shadow:inset 0 0 0 5px var(--sign),inset 0 0 0 8px #fff,0 18px 40px -18px rgba(6,82,44,.55)}
.sign h1{color:#fff;font-weight:900;font-size:clamp(2.15rem,5vw,3.9rem);line-height:1.02;margin:0;letter-spacing:-.015em}
.sign h1 .ctl{display:block;font-size:.62em;font-weight:700;margin-top:.28em;letter-spacing:0;color:#E6F3EA}
.sign .sub{margin:16px 0 0;font-size:1.02rem;color:#D3EADB;font-weight:600;max-width:52ch}
.tab{position:absolute;top:-17px;right:26px;background:var(--sign);color:#fff;font-weight:900;font-size:.88rem;padding:6px 14px 5px;border-radius:8px 8px 0 0;box-shadow:inset 0 0 0 3px #fff;letter-spacing:.02em}
.sign.sm{padding:22px 26px 20px}
.sign.sm h1{font-size:clamp(1.8rem,3.6vw,2.75rem)}
.arrow{display:inline-block;width:.9em;height:.9em;margin-left:.15em;vertical-align:-.05em}

/* ---------- Home map hero ---------- */
.mhero{position:relative;background:var(--land);overflow:hidden;border-bottom:1px solid var(--line2)}
.mhero .mapbox{position:absolute;inset:0}
.mhero .mapbox svg{width:100%;height:100%}
.mhero .over{position:relative;display:grid;grid-template-columns:minmax(0,600px);padding:52px 22px 44px;pointer-events:none}
.map-m{display:none}
.mhero .over>*{pointer-events:auto}
.mhero .lead{background:rgba(255,255,255,.92);backdrop-filter:blur(4px);border-radius:var(--r);padding:16px 18px;margin:18px 0 0;font-size:1.06rem;color:var(--ink2);max-width:560px}
.plot{margin-top:14px;width:min(600px,100%);background:var(--white);border-radius:14px;padding:18px;box-shadow:0 20px 40px -20px rgba(22,32,26,.45);border:1px solid var(--line)}
.plot label{display:block;font-weight:900;font-size:1.1rem;margin-bottom:4px}
.plot .hint{font-size:.88rem;color:var(--ink3);margin:0 0 10px}
.zipform{display:flex;gap:8px;max-width:440px}
.zipform input{flex:1;min-width:0;font:inherit;font-size:1.15rem;font-weight:700;letter-spacing:.08em;padding:11px 13px;border:2px solid var(--line2);border-radius:10px}
.zipform input:focus{border-color:var(--sign);outline:none}
.zipform button{font:inherit;font-weight:900;background:var(--sign);color:#fff;border:0;border-radius:10px;padding:0 16px;cursor:pointer}
.zipout{margin:10px 0 0;font-size:.97rem;min-height:1.3em}
.zipout.ok{color:var(--sign-d)}.zipout.warn{color:#8A5A00}
.zipout a{font-weight:800}
@media (max-width:900px){.mhero{display:flex;flex-direction:column}.mhero .mapbox{position:relative;order:2;height:auto}.mhero .mapbox svg{height:auto}.map-d{display:none}.map-m{display:block}.mhero .over{grid-template-columns:minmax(0,1fr);padding:30px 18px 20px;order:1}.plot{width:auto}.mhero .lead{background:transparent;padding:0;backdrop-filter:none;margin-top:16px}}
@media (max-width:560px){.sign{padding:24px 20px 20px}.tab{right:14px}.strip .wrap{gap:10px}.strip a{white-space:nowrap}.strip .clock{font-size:.82rem}}

/* map styling */
.land{fill:#E3EADE}.topo{stroke:#CDD7C6;stroke-width:1}
.ring{fill:none;stroke:var(--sign);stroke-width:1.6;stroke-dasharray:3 7;opacity:.75}
.ring-15{fill:rgba(10,107,59,.07)}
.ringlab{font:700 12px var(--f);fill:var(--sign)}
.water{fill:none;stroke:var(--water);stroke-width:15;stroke-linecap:round;stroke-linejoin:round}
.waterlab{fill:#2F6D9A;font:italic 600 15px var(--f)}
.road{fill:none;stroke:#fff;stroke-width:4.5;stroke-linecap:round;stroke-linejoin:round}
.road.interstate{stroke:#FBFBF7;stroke-width:8;filter:drop-shadow(0 1px 0 #C4CDBF)}
.shield path{fill:var(--blue);stroke:#fff;stroke-width:2}
.shield text{fill:#fff;font:900 11px var(--f);text-anchor:middle}
.town circle{fill:var(--ink);stroke:#fff;stroke-width:2}
.town text{font:600 13px var(--f);fill:#29322C;paint-order:stroke;stroke:#E3EADE;stroke-width:4px;stroke-linejoin:round}
.town.major text{font-weight:800;font-size:15.5px;fill:var(--ink)}
a.town{cursor:pointer}a.town:hover circle,a.town:focus circle{fill:var(--red)}a.town:hover text{fill:var(--red)}
.town.hl circle{fill:var(--red)}.town.hl text{fill:var(--red);font-weight:900;font-size:17px}
.route{fill:none;stroke:var(--red);stroke-width:4.5;stroke-linecap:round;stroke-dasharray:11 7}
.route.drawn{animation:march 1.2s linear infinite}
@keyframes march{to{stroke-dashoffset:-36}}
.yard circle{fill:var(--red);stroke:#fff;stroke-width:3}
.yard .pulse{fill:rgba(212,42,30,.18);stroke:none;transform-origin:center;transform-box:fill-box;animation:pulse 2.4s ease-out infinite}
@keyframes pulse{0%{transform:scale(.6);opacity:1}100%{transform:scale(2.4);opacity:0}}
.yard text{font:900 14px var(--f);fill:var(--ink);paint-order:stroke;stroke:#fff;stroke-width:5px;stroke-linejoin:round}
.sc{fill:var(--land);stroke:var(--sign);stroke-width:2}
.smap .town text{font-size:13px}
.maptip{position:absolute;pointer-events:none;background:var(--ink);color:#fff;font-size:.86rem;font-weight:700;padding:6px 10px;border-radius:8px;transform:translate(-50%,-130%);white-space:nowrap;opacity:0;transition:opacity .15s}
.maptip.on{opacity:1}

/* ---------- Answer strip (five answers) ---------- */
.answers{background:var(--white);border-bottom:1px solid var(--line)}
.answers .grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0}
.ans{padding:22px 20px 20px;border-left:1px solid var(--line);position:relative}
.ans:first-child{border-left:0;padding-left:0}
.ans-old{font-size:.95rem;font-weight:900;color:var(--sign);margin:0 0 6px;letter-spacing:0;display:flex;align-items:center;gap:8px}
.ans-old svg{flex:none}
.ans p{margin:0;font-size:.98rem;line-height:1.48;color:var(--ink)}
.cta-bar{display:flex;flex-wrap:wrap;align-items:center;gap:14px 18px;padding:18px 0 24px;border-top:1px dashed var(--line2)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font:900 1.06rem/1.1 var(--f);text-decoration:none;border-radius:999px;padding:15px 22px;border:2px solid transparent;cursor:pointer;letter-spacing:.01em}
.btn-call{background:var(--red);color:#fff}.btn-call:hover{background:var(--red-d);color:#fff}
.btn-call .n{font-size:1.15rem}
.btn-quote{background:var(--white);color:var(--sign-d);border-color:var(--sign)}.btn-quote:hover{background:var(--sign-l);color:var(--sign-d)}
.cta-bar .clock{color:var(--ink);font-size:.96rem}
.cta-bar .clock::before{background:#1FAE5B}
.cta-bar small{color:var(--ink3);font-size:.9rem}
@media (max-width:1000px){.answers .grid{grid-template-columns:1fr 1fr}.ans{border-left:0;border-top:1px solid var(--line);padding:16px 14px 14px 0}.ans:nth-child(-n+2){border-top:0}.ans:last-child{grid-column:1/-1}}
@media (max-width:560px){.answers .grid{grid-template-columns:1fr}.ans:nth-child(2){border-top:1px solid var(--line)}.btn{width:100%}}

/* ---------- Inner hero ---------- */
.ihero{background:var(--land) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80'%3E%3Cpath d='M0 40 Q20 24 40 40 T80 40M0 70 Q20 54 40 70 T80 70M0 10 Q20 -6 40 10 T80 10' fill='none' stroke='%23CCD6C5'/%3E%3C/svg%3E");border-bottom:1px solid var(--line2)}
.ihero .grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:44px;align-items:center;padding:26px 0 40px}
.crumbs{font-size:.88rem;padding:16px 0 0;color:var(--ink2)}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.crumbs li{margin:0}.crumbs li+li::before{content:"\203A";margin-right:6px;color:var(--ink3)}
.crumbs a{color:var(--ink2);font-weight:600}
.ihero .lead{font-size:1.1rem;color:var(--ink2);margin:20px 0 0;max-width:62ch}
.meta-line{font-size:.92rem;color:var(--ink2);margin:14px 0 0;font-weight:600}
.media{position:relative;margin:0}
.media .frame{background:var(--white);border-radius:16px;padding:10px;box-shadow:0 24px 50px -28px rgba(22,32,26,.55);transform:rotate(.6deg)}
.media img{border-radius:10px;width:100%;aspect-ratio:5/4.2;object-fit:cover}
.media figcaption{font-size:.86rem;color:var(--ink2);padding:9px 6px 2px}
.media .mapframe{background:var(--white);border-radius:16px;padding:8px;box-shadow:0 24px 50px -28px rgba(22,32,26,.55);overflow:hidden}
.media .mapframe svg{width:100%;height:auto;display:block;border-radius:10px;aspect-ratio:4/3.3}
.distance{position:absolute;left:-14px;bottom:26px;background:var(--red);color:#fff;border-radius:12px;padding:10px 14px;font-weight:900;line-height:1.1;box-shadow:0 10px 24px -10px rgba(174,31,20,.6)}
.distance small{display:block;font-weight:700;font-size:.78rem;opacity:.9}
.distance b{font-size:1.5rem}
@media (max-width:900px){.ihero .grid{grid-template-columns:1fr;gap:26px}.media .frame{transform:none}.media img{aspect-ratio:16/10}.distance{left:12px}}

/* ---------- Content layout ---------- */
.page{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:56px;padding:48px 0 36px}
.page.solo{grid-template-columns:minmax(0,1fr)}
@media (max-width:1060px){.page{grid-template-columns:minmax(0,1fr)}.side{display:none}}
.prose{max-width:790px}
.sec{padding:0 0 30px;margin:0 0 34px;border-bottom:2px dashed var(--line);scroll-margin-top:100px}
.sec::after{content:"";display:block;clear:both}
.answer{position:relative;background:var(--white);border-radius:var(--r);padding:16px 20px 16px 22px;margin:0 0 20px;font-size:1.1rem;line-height:1.55;box-shadow:inset 5px 0 0 var(--sign),0 1px 0 var(--line)}
.prose ul li::marker{color:var(--sign)}
.prose ol{counter-reset:s;list-style:none;padding:0}
.prose ol>li{counter-increment:s;position:relative;padding-left:44px;margin:.7em 0}
.prose ol>li::before{content:counter(s);position:absolute;left:0;top:-1px;width:30px;height:30px;border-radius:50%;background:var(--sign);color:#fff;font-weight:900;display:grid;place-items:center;font-size:.92rem}
.tw{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 0 1.2em;border-radius:12px;background:var(--white);box-shadow:0 0 0 1px var(--line)}
table.t{border-collapse:collapse;width:100%;font-size:.97rem;min-width:540px}
table.t th,table.t td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--line);vertical-align:top}
table.t thead th{background:var(--sign);color:#fff;font-weight:800;white-space:nowrap}
table.t tbody tr:hover{background:#F7FAF6}
table.t tbody tr:last-child td{border-bottom:0}
table.t td:first-child{font-weight:700}
.ph{margin:4px 0 22px;max-width:470px}
.ph img{border-radius:12px;aspect-ratio:4/4.4;object-fit:cover;width:100%;background:var(--line)}
.ph figcaption{font-size:.88rem;color:var(--ink2);margin-top:7px;padding-left:10px;border-left:3px solid var(--red)}
@media (min-width:760px){.ph.r{float:right;margin:4px 0 18px 28px;max-width:320px}}
.chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0 0 1.2em}
.chips li{margin:0;background:var(--white);border:1px solid var(--line2);border-radius:8px;padding:5px 11px;font-size:.93rem;font-weight:600}
.chips li::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--sign);margin-right:7px;vertical-align:1px}

/* sidebar: trip sheet */
.side-in{position:sticky;top:96px;display:grid;gap:18px}
.trip{background:var(--sign);color:#DDEFE3;border-radius:16px;padding:22px;box-shadow:inset 0 0 0 4px var(--sign),inset 0 0 0 6px rgba(255,255,255,.85)}
.trip h2{color:#fff;font-size:1.3rem;margin:0 0 6px}
.trip p{font-size:.95rem;margin:0 0 12px}
.trip .btn{width:100%;margin-top:8px}
.trip .btn-quote{background:transparent;color:#fff;border-color:rgba(255,255,255,.7)}
.trip .clock{font-size:.92rem}
.toc{background:var(--white);border-radius:14px;padding:18px 18px 10px;box-shadow:0 0 0 1px var(--line)}
.toc h2{font-size:1rem;margin:0 0 8px}
.toc ol{list-style:none;margin:0;padding:0;font-size:.93rem}
.toc li{margin:0;border-top:1px solid var(--line)}
.toc a{display:block;padding:8px 0;color:var(--ink2);text-decoration:none;font-weight:600}
.toc a:hover,.toc a.on{color:var(--red)}

/* inline CTA: exit sign */
.exit{position:relative;display:flex;flex-wrap:wrap;gap:14px;align-items:center;background:var(--sign);color:#fff;border-radius:14px;padding:24px 22px 20px;margin:18px 0 36px;box-shadow:inset 0 0 0 4px var(--sign),inset 0 0 0 6px #fff}
.exit p{margin:0;flex:1 1 280px;font-weight:800;font-size:1.08rem}
.exit .tab{top:-15px;left:22px;right:auto;font-size:.8rem}
.exit .btn-quote{background:transparent;color:#fff;border-color:#fff}

/* FAQ */
.faq details{border-bottom:1px solid var(--line2)}
.faq details:first-of-type{border-top:1px solid var(--line2)}
.faq summary{cursor:pointer;list-style:none;padding:16px 46px 16px 0;font-weight:800;font-size:1.06rem;position:relative;line-height:1.35}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:6px;top:18px;width:22px;height:22px;border-radius:50%;background:var(--sign-l) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cpath d='M6 11h10M11 6v10' stroke='%2306522C' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E");transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .a{padding:0 0 14px;color:var(--ink2)}
.faq .a p{margin:0}
.faq h2.grp{margin:34px 0 10px;font-size:1.35rem}

.next{background:var(--white);border-radius:14px;padding:20px 22px;margin:0 0 30px;box-shadow:0 0 0 1px var(--line)}
.next h2{font-size:1.2rem}
.next ul{list-style:none;padding:0;margin:0;columns:2 250px;column-gap:28px}
.next li{break-inside:avoid;padding:6px 0;border-bottom:1px solid var(--line);margin:0}
.next a{font-weight:700;text-decoration:none}
.next a::after{content:" \2197";color:var(--red)}
.author{display:flex;gap:16px;background:var(--white);border-radius:14px;padding:18px;margin:0 0 30px;box-shadow:0 0 0 1px var(--line)}
.avatar{flex:none;width:58px;height:58px;border-radius:14px;background:var(--sign);color:#fff;display:grid;place-items:center;font-weight:900;font-size:1.5rem;box-shadow:inset 0 0 0 3px var(--sign),inset 0 0 0 5px #fff}
.author p{margin:0 0 .3em;font-size:.96rem}

/* quote form */
.qwrap{background:var(--white);border-radius:18px;padding:26px;box-shadow:0 0 0 1px var(--line),0 24px 50px -36px rgba(22,32,26,.6)}
.qform{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.qform .full{grid-column:1/-1}
.qform label{display:block;font-weight:800;font-size:.92rem;margin-bottom:5px}
.qform input,.qform select{width:100%;font:inherit;font-size:1rem;padding:12px 13px;border:2px solid var(--line);border-radius:10px;background:var(--paper);color:var(--ink)}
.qform input:focus,.qform select:focus{border-color:var(--sign);outline:none;background:#fff}
.qform .hp{display:none}
.qform .btn{width:100%;background:var(--sign);color:#fff;border-color:var(--sign)}
.qform .btn:hover{background:var(--sign-d)}
.form-msg{grid-column:1/-1;margin:0;font-weight:700;font-size:.95rem;color:var(--ink2)}
.form-msg.ok{color:var(--sign-d)}.form-msg.err{color:var(--red-d)}
@media (max-width:560px){.qform{grid-template-columns:1fr}.qwrap{padding:18px}}

/* ---------- Home widgets ---------- */
.lineup{background:var(--white);border-radius:18px;padding:22px 22px 18px;box-shadow:0 0 0 1px var(--line);margin:0 0 22px}
.lineup .ctl{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin-bottom:12px}
.lineup label{font-weight:900}
.lineup output{font-weight:900;color:var(--red);font-size:1.3rem;min-width:4.5ch}
input[type=range]{accent-color:var(--sign);width:min(360px,100%);height:28px}
.stage{display:flex;align-items:flex-end;gap:18px;overflow-x:auto;padding:10px 4px 0;border-bottom:6px solid #B9C3B4;min-height:230px}
.gate{flex:none;display:flex;align-items:flex-end;height:210px;position:relative}
.gate i{display:block;width:10px;height:150px;background:#7D6A55;border-radius:3px 3px 0 0}
.gate span{display:block;height:150px;border-top:3px dashed #7D6A55;transition:width .2s}
.gate em{position:absolute;bottom:156px;left:0;right:0;text-align:center;font-style:normal;font-weight:800;font-size:.8rem;color:#7D6A55}
.unit{flex:none;text-align:center;font-size:.84rem;font-weight:800;color:var(--ink2)}
.unit svg{display:block;margin:0 auto 6px}
.unit .body{fill:#C9D1C5;transition:fill .2s}.unit .door{fill:#AEB8AA}
.unit.fits .body{fill:#7FC79C}.unit.fits .door{fill:#4FA875}
.unit .st{display:block;font-size:.78rem;color:var(--ink3)}
.unit.fits .st{color:var(--sign)}
.unit a{color:inherit;text-decoration:none}
.sizer{background:var(--white);border-radius:18px;padding:22px;box-shadow:0 0 0 1px var(--line);margin:0 0 22px}
.sizer .row{display:grid;grid-template-columns:150px minmax(0,1fr) 70px;gap:12px;align-items:center;margin-bottom:6px}
.sizer label{font-weight:800}
.sizer output{font-weight:900;font-size:1.2rem;text-align:right}
.sizer .tg{display:flex;gap:18px;flex-wrap:wrap;margin:6px 0 14px;font-weight:700}
.glyphs{display:flex;flex-wrap:wrap;gap:6px;min-height:58px;padding:12px;background:var(--paper);border-radius:12px;margin-bottom:10px}
.glyphs i{display:block;width:22px;height:42px;border-radius:9px 9px 3px 3px;background:#5E6A63;animation:pop .25s ease-out both}
.glyphs i.acc{width:30px;background:var(--blue)}
.glyphs i.hw{width:16px;height:30px;align-self:flex-end;border-radius:4px;background:var(--water)}
.glyphs b{align-self:center;font-size:.95rem}
@keyframes pop{from{transform:scale(.5);opacity:0}}
.sizer .total{font-size:1.5rem;font-weight:900;margin:0 0 4px}
.sizer .steps{font-size:.93rem;color:var(--ink2);margin:0}
.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:.86rem;color:var(--ink2);margin:0 0 8px}
.legend span::before{content:"";display:inline-block;width:10px;height:14px;border-radius:3px;margin-right:6px;vertical-align:-2px;background:#5E6A63}
.legend .a::before{background:var(--blue)}.legend .h::before{background:var(--water)}
.road-steps{list-style:none;padding:0!important;margin:10px 0 18px;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;position:relative;counter-reset:none}
.road-steps::before{content:"";position:absolute;left:4%;right:4%;top:26px;height:10px;background:#3B443E;border-radius:6px}
.road-steps::after{content:"";position:absolute;left:5%;right:5%;top:30px;border-top:2px dashed #F2B233}
.road-steps li{position:relative;padding:62px 8px 0!important;margin:0!important;font-size:.92rem;text-align:center;z-index:1}
.road-steps li::before{content:attr(data-n)!important;position:absolute!important;left:50%!important;top:12px!important;transform:translateX(-50%);width:38px!important;height:38px!important;border-radius:8px!important;background:var(--sign)!important;box-shadow:inset 0 0 0 2px var(--sign),inset 0 0 0 4px #fff;color:#fff;font-weight:900;display:grid;place-items:center}
.road-steps b{display:block;font-size:1rem;margin-bottom:3px;color:var(--ink)}
@media (max-width:860px){.road-steps{grid-template-columns:1fr;gap:4px}.road-steps::before{left:17px;right:auto;top:10px;bottom:10px;width:8px;height:auto}.road-steps::after{display:none}.road-steps li{text-align:left;padding:4px 0 10px 58px!important}.road-steps li::before{left:19px!important;top:2px!important}}
.tag{position:relative;max-width:360px;background:#FFF8E3;border-radius:14px 14px 18px 18px;padding:46px 22px 18px;box-shadow:0 20px 40px -24px rgba(80,60,0,.45);transform:rotate(-1.4deg);margin:6px auto 20px}
.tag::before{content:"";position:absolute;top:14px;left:50%;width:22px;height:22px;margin-left:-11px;border-radius:50%;background:var(--paper);box-shadow:inset 0 0 0 4px #E3C77A}
.tag h3{margin:0 0 10px;font-size:1.15rem;text-align:center}
.tag ul{list-style:none;padding:0;margin:0}
.tag li{display:flex;gap:10px;align-items:baseline;padding:7px 0;border-bottom:1px dashed #E0CF9C;font-weight:700;font-size:.97rem}
.tag li::before{content:"";flex:none;width:16px;height:16px;border-radius:4px;background:var(--sign) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' stroke='white' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");transform:translateY(2px)}
.tag small{display:block;text-align:center;color:#8A7440;margin-top:10px;font-weight:700}
.two{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start}
@media (max-width:760px){.two{grid-template-columns:1fr}}
.gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:180px 180px;gap:10px;margin:0 0 22px}
.gallery img{width:100%;height:100%;object-fit:cover;border-radius:12px}
.gallery figure{margin:0;position:relative}
.gallery figure:first-child{grid-row:1/3}
.gallery figcaption{position:absolute;left:8px;bottom:8px;background:rgba(22,32,26,.82);color:#fff;font-size:.78rem;font-weight:700;padding:4px 8px;border-radius:6px}
@media (max-width:620px){.gallery{grid-template-columns:1fr 1fr;grid-template-rows:200px 130px 130px}.gallery figure:first-child{grid-column:1/3;grid-row:auto}}

/* ---------- Footer: guide sign ---------- */
.foot{background:#0F1712;color:#BFCBC3;padding:56px 0 100px;font-size:.95rem}
.gsign{background:var(--sign);border-radius:18px;padding:28px 32px;box-shadow:inset 0 0 0 5px var(--sign),inset 0 0 0 8px #fff;color:#fff;margin-bottom:40px}
.gsign h2{color:#fff;font-size:1.5rem;margin:0 0 4px}
.gsign p{color:#D3EADB;margin:0 0 16px;font-weight:600}
.dest{list-style:none;padding:0;margin:0;columns:3 230px;column-gap:44px}
.dest li{break-inside:avoid;margin:0;border-bottom:1px solid rgba(255,255,255,.25)}
.dest a{display:flex;justify-content:space-between;gap:10px;padding:8px 0;color:#fff;text-decoration:none;font-weight:800;font-size:1.05rem}
.dest a span{font-weight:900;font-variant-numeric:tabular-nums}
.dest a:hover{color:#FFE7A6}
.fgrid{display:grid;grid-template-columns:1.3fr repeat(3,1fr);gap:30px}
.foot h2{color:#fff;font-size:1rem;margin:0 0 12px}
.foot ul.l{list-style:none;padding:0;margin:0}.foot ul.l li{margin:0 0 7px}
.foot a{color:#E8F0EA;text-decoration:none}.foot a:hover{text-decoration:underline}
.foot .tel{display:inline-block;color:#fff;background:var(--red);font-weight:900;font-size:1.15rem;padding:8px 14px;border-radius:999px;margin:4px 0 12px;text-decoration:none!important}
.fbot{border-top:1px solid #26332B;margin-top:34px;padding-top:16px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:.86rem}
@media (max-width:900px){.fgrid{grid-template-columns:1fr 1fr}.fgrid>div:first-child{grid-column:1/-1}.gsign{padding:24px 20px}}

/* mobile call bar */
.mbar{position:fixed;left:10px;right:10px;bottom:10px;z-index:60;display:none;grid-template-columns:1.3fr 1fr;gap:8px;padding:7px;background:rgba(15,23,18,.94);backdrop-filter:blur(6px);border-radius:999px;box-shadow:0 14px 30px -10px rgba(0,0,0,.5);margin-bottom:env(safe-area-inset-bottom)}
.mbar a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;border-radius:999px;font-weight:900;text-decoration:none;font-size:1rem}
.mbar .c{background:var(--red);color:#fff}.mbar .q{background:#fff;color:var(--sign-d)}
@media (max-width:900px){.mbar{display:grid}}

/* misc */
.stories{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px;list-style:none;padding:0}
.stories li{margin:0}.stories a{display:block;text-decoration:none;color:var(--ink);font-weight:800}
.stories img{aspect-ratio:3/4;object-fit:cover;border-radius:14px;margin-bottom:8px;width:100%}
.posts{list-style:none;padding:0;margin:0}
.posts li{padding:20px 0;margin:0;border-bottom:2px dashed var(--line)}
.posts h2{font-size:1.35rem;margin:0 0 6px}.posts a{text-decoration:none}
.big404{font-size:clamp(5rem,16vw,10rem);font-weight:900;line-height:.9;color:var(--sign);margin:0 0 10px}
.board{display:grid;gap:10px;margin:0 0 1.4em}
.board-row{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:16px;align-items:center;background:var(--white);border-radius:14px;padding:10px 16px 10px 10px;box-shadow:0 0 0 1px var(--line)}
.board-row img,.board-row .acc{width:96px;height:96px;object-fit:cover;border-radius:10px}
.board-row h2,.board-row h3{margin:0 0 3px;font-size:1.1rem}
.board-row p{margin:0;font-size:.95rem;color:var(--ink2)}
.board-row .go{font-weight:800;white-space:nowrap}
@media (max-width:620px){.board-row{grid-template-columns:70px minmax(0,1fr)}.board-row img,.board-row .acc{width:70px;height:70px}.board-row .go{grid-column:2}}
.calc{background:var(--white);border-radius:18px;padding:22px;box-shadow:0 0 0 1px var(--line);margin:0 0 30px}
.calc h2{font-size:1.4rem}
.calc-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:end}
.calc label{display:block;font-weight:800;font-size:.9rem;margin-bottom:5px}
.calc input[type=number],.calc select{width:100%;font:inherit;padding:10px;border:2px solid var(--line);border-radius:10px}
.calc .chk{display:flex;gap:8px;align-items:center;padding-bottom:10px}
.calc-out{margin-top:16px;background:var(--sign-l);border-radius:12px;padding:14px 16px}
.calc-out .big{font-size:1.5rem;font-weight:900;color:var(--sign-d);margin:0}
.calc-out ol{margin:8px 0 0;font-size:.95rem}
.calc-out ol>li{padding-left:36px}.calc-out ol>li::before{width:24px;height:24px;font-size:.8rem}
.resp{font-size:.9rem;color:var(--ink3);margin:10px 0 0}
@media (max-width:760px){.calc-grid{grid-template-columns:1fr 1fr}.sizer .row{grid-template-columns:1fr 60px}.sizer .row label{grid-column:1/-1}}

.inset .town text{font-size:12px}.inset .town.major text{font-size:13.5px}.inset .town.hl text{font-size:16px}.inset .yard text{font-size:12.5px}.inset .waterlab{font-size:13px}.inset .water{stroke-width:11}
.media .mapframe svg.smap{aspect-ratio:auto}
.board{grid-template-columns:minmax(0,1fr)}
.prose .plot{width:auto!important;max-width:100%!important;min-width:0;box-sizing:border-box}
.zipform input{width:100%}
@media (max-width:620px){.board-row .go{white-space:normal}}

.graphic{display:grid;place-items:center}
.receipt{width:min(400px,100%);background:#fff;border-radius:6px;padding:22px 22px 16px;box-shadow:0 24px 50px -28px rgba(22,32,26,.55);transform:rotate(1deg);position:relative;
 background-image:radial-gradient(circle at 10px 0,transparent 7px,#fff 7.5px);background-size:20px 100%;}
.receipt .rh{display:flex;justify-content:space-between;align-items:baseline;border-bottom:2px solid var(--ink);padding-bottom:10px;margin-bottom:6px}
.receipt .rh span{font-size:.8rem;color:var(--ink3);font-weight:700}
.receipt dl{margin:0}.receipt dl div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px dashed var(--line2);font-size:.95rem}
.receipt dt{color:var(--ink2)}.receipt dd{margin:0;font-weight:900;white-space:nowrap}
.receipt .z dd{color:var(--sign)}.receipt p{margin:12px 0 0;font-size:.85rem;color:var(--ink3)}
.reg{width:min(400px,100%);background:#fff;border:5px solid var(--ink);border-radius:14px;padding:22px;box-shadow:0 24px 50px -28px rgba(22,32,26,.55)}
.reg .rt{font-size:2rem;font-weight:900;margin:0;line-height:1}.reg .rs{margin:6px 0 12px;font-weight:700;color:var(--ink2)}
.reg dl{margin:0}.reg div{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-top:2px solid var(--ink);font-weight:800}
.reg dd{margin:0;text-align:right;color:var(--red-d)}
.plan{width:min(420px,100%);background:#fff;border-radius:16px;padding:16px;box-shadow:0 24px 50px -28px rgba(22,32,26,.55)}
.plan svg{width:100%;height:auto;font-family:var(--f)}.plan p{margin:6px 0 0;font-size:.86rem;color:var(--ink2)}
.media .sizer{width:min(460px,100%);margin:0;box-shadow:0 24px 50px -28px rgba(22,32,26,.55)}
.hero-tag{margin:6px auto}
.media .sizer .total{font-size:1.2rem}
.tag .th{margin:0 0 10px;font-size:1.15rem;font-weight:900;text-align:center}

.ans .ans-h{font-size:.95rem;font-weight:900;color:var(--sign);margin:0 0 6px;display:flex;align-items:center;gap:8px}
.ans .ans-h svg{flex:none}
.trip .h{color:#fff;font-size:1.3rem;font-weight:900;margin:0 0 6px;line-height:1.1}
.toc .h{font-size:1rem;font-weight:900;margin:0 0 8px}
.hurry{margin:12px 0 0;font-size:.95rem;color:var(--ink2)}.hurry a{font-weight:900;color:var(--red-d)}
.intents{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 6px}
.intents a{display:block;background:var(--white);border-radius:12px;padding:14px 16px 13px;text-decoration:none;color:var(--ink);box-shadow:0 0 0 1px var(--line);border-top:5px solid var(--sign);transition:transform .15s,box-shadow .15s}
.intents a:hover{transform:translateY(-2px);box-shadow:0 0 0 2px var(--sign);color:var(--ink)}
.intents b{display:block;font-size:1.02rem;line-height:1.25;margin-bottom:4px}
.intents span{display:block;font-size:.88rem;color:var(--ink2)}
@media (max-width:760px){.intents{grid-template-columns:1fr 1fr}}
@media (max-width:420px){.intents{grid-template-columns:1fr}}
.owner{display:flex;gap:14px;align-items:center;background:var(--white);border-radius:14px;padding:14px 16px;box-shadow:0 0 0 1px var(--line);margin:0 0 14px}
.owner p{margin:0}
table.t.facts{min-width:0}table.t.facts th{background:var(--sign-l);color:var(--sign-d);width:34%;font-weight:800;white-space:normal}
.faq .a p+p{margin-top:.6em}
