/* Color/font tokens live in tokens.css (linked first). */
html{font-size-adjust:from-font}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bb-surface,var(--paper));color:var(--bb-text,var(--ink));font:var(--bb-fs-base,18px)/var(--bb-leading,1.55) var(--sans)}
a{color:var(--bb-link)}img{max-width:100%;height:auto}
.top{position:sticky;top:0;z-index:200;display:flex;align-items:center;gap:8px;height:56px;padding:0 20px;background:var(--paper);border-bottom:1px solid var(--line);font-family:var(--sans)}
.brand{display:flex;gap:8px;align-items:center;text-decoration:none;color:var(--bb-text-strong,var(--deep));font:700 17px/1.2 var(--sans);letter-spacing:-.01em}.brand img{width:36px;height:36px;display:block;flex:none}
/* .pill styles in button component block */
.hero{position:relative;min-height:min(72vh,640px);display:flex;align-items:flex-end;color:var(--bb-text-on-inverse,#fff);background:#16121C}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%;max-width:none}
.hero .shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(22,18,28,.15) 0%,rgba(22,18,28,.25) 40%,rgba(22,18,28,.78) 100%);pointer-events:none}
.hero .inner{position:relative;z-index:1;padding:48px 18px 36px;max-width:var(--bb-width,1080px);margin:0 auto;width:100%;box-sizing:border-box}
.hero .kicker{font:600 11px/1.2 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:#F3C7A8;margin:0 0 10px}
.hero h1{font-family:var(--display,var(--serif));font-weight:400;text-transform:uppercase;font-size:clamp(44px,8vw,92px);line-height:.95;margin:0;color:#fff;letter-spacing:.02em;text-shadow:0 2px 18px rgba(0,0,0,.35);text-wrap:balance}
.hero .tag{margin:10px 0 22px;font-family:var(--display,var(--serif));font-weight:400;font-size:clamp(22px,3.2vw,34px);color:var(--bb-orange-display,#F56725);letter-spacing:.04em;text-transform:uppercase;text-shadow:0 1px 8px rgba(0,0,0,.35)}
.hero .paths{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-start}
.hero .go:not(.big){background:rgba(255,251,244,.94)}
.eyebrow{font:600 13px var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--moss);margin:0}
.lede{font-size:clamp(18px,2.2vw,22px);max-width:620px;margin:0 auto 26px}
.paths{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
/* Buttons: see component block below; keep legacy .go hook names */
.wrap{max-width:1080px;margin:0 auto;padding:44px 22px}
.wrap h2{font-family:var(--display,var(--serif));font-weight:400;text-transform:uppercase;letter-spacing:.04em;font-size:clamp(26px,3.5vw,36px);margin:.2em 0 .4em;color:var(--deep)}.sub{color:#4b5a52;margin-top:0}
.now{background:var(--bb-surface-raised,#fff);border:1px solid var(--line);border-left:6px solid var(--bb-accent);border-radius:var(--bb-radius,2px);margin-top:-40px;position:relative;max-width:1036px}
.label{font:700 12px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--bb-accent)}
.facts{padding-left:20px}.facts li{margin:.5em 0}.src{font:14px var(--sans);color:#5b675f}
.three{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:22px}
.three>div{background:#fff;border-radius:14px;padding:20px;border:1px solid var(--line)}.three h3{margin:.3em 0}.three p{margin:0;font-size:16px}
.num{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--moss);color:#fff;font:700 16px var(--sans)}
div.trails{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}
.trailc{display:block;border-radius:16px;padding:20px;color:#fff;text-decoration:none;min-height:170px;background:var(--moss);position:relative;overflow:hidden}
.trailc:after{content:"";position:absolute;inset:auto 0 0 0;height:50px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 50'%3E%3Cpath d='M0 40 L40 18 70 32 110 10 150 30 200 15 V50 H0Z' fill='%23ffffff22'/%3E%3C/svg%3E") bottom/cover}
.trailc h3{margin:.3em 0;font-size:21px;line-height:1.2}.trailc p{font:14px var(--sans);opacity:.85;margin:0}.trailc .n{font:700 12px var(--sans);text-transform:uppercase;letter-spacing:.1em;opacity:.8}
.t-vote{background:#7a4f00}.t-money{background:#3d5848}.t-power{background:#2f5d6b}.t-health{background:#6b3d3d}.t-school{background:#4f4a7a}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-bottom:20px}
.card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;text-decoration:none;color:var(--ink)}
.card:hover{border-color:var(--moss)}.card h3{margin:.25em 0;font-size:21px;line-height:1.25;color:var(--deep)}.card p{font-size:16px;margin:0 0 10px;flex:1}
.k,.meta{font:600 12px var(--sans);color:#55635a;text-transform:uppercase;letter-spacing:.08em}
.signup{background:var(--deep);color:#fff;border-radius:18px;max-width:1036px}.signup h2{color:#fff}
.newsform{display:flex;flex-wrap:wrap;gap:8px}.newsform input{flex:1;min-width:220px;padding:13px;border-radius:10px;border:1.5px solid var(--bb-border,var(--line));font-size:17px}
.thanks{flex-basis:100%;font:15px var(--sans)}
.split{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:30px}.spons{font-size:16px;text-align:center;color:#4b5a52}
.foot{margin-top:40px;background:var(--bb-surface-inverse,var(--deep));color:var(--bb-text-on-inverse,#dfe7e1);font:15px var(--sans)}.foot a{color:var(--bb-link-on-inverse,#F3C7A8)}.foot .credit{letter-spacing:.14em;text-transform:uppercase;font-size:11px;color:#C9BFB0;margin:0 0 8px}
.ridge-foot{height:44px;line-height:0;overflow:hidden;color:var(--bb-ridge-foot,var(--deep));background:var(--bb-surface,var(--paper))}
.ridge-foot .ridge-motif{display:block;width:100%;height:44px}
.fwrap{max-width:1080px;margin:0 auto;padding:10px 22px 40px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:20px}
.art{max-width:720px;margin:0 auto;padding:30px 20px}.crumb{font:600 13px var(--sans);color:#55635a;text-transform:uppercase;letter-spacing:.06em}
.art h1{font-family:var(--display,var(--serif));font-weight:400;text-transform:uppercase;letter-spacing:.02em;font-size:clamp(32px,5vw,46px);line-height:1.1;margin:.3em 0;color:var(--deep)}.dek{font-size:21px;color:#3c4a42}
.layers{position:sticky;top:57px;z-index:5;display:flex;gap:6px;overflow-x:auto;background:var(--paper);padding:8px 0;border-bottom:1px solid var(--line)}
.layers a{flex:none;font:600 14px var(--sans);padding:7px 12px;border-radius:0;background:#fff;border:1.5px solid var(--line);text-decoration:none;color:var(--deep);min-height:var(--bb-touch,44px);display:inline-flex;align-items:center}
.layer h2{display:flex;align-items:center;gap:10px;font-size:24px;color:var(--deep);margin-top:1.6em}
.layer h2 span{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--moss);color:#fff;font:700 15px var(--sans)}
.short{background:#fff;border:1px solid var(--line);border-radius:14px;padding:4px 22px 10px;margin-top:20px}.short>p:first-of-type{font-size:20px}
.nudge{font:15px var(--sans);color:#5b675f}
.prose h2,.prose h3{font-family:var(--display,var(--serif));font-weight:400;text-transform:uppercase;letter-spacing:.03em;color:var(--deep)}.prose h3{font-size:23px;margin-top:1.6em}.prose figure{margin:22px 0}.prose figcaption{font:13px var(--sans);color:#5b675f}
.prose div,.prose aside{max-width:100%}.cite{font:11px var(--sans);vertical-align:super;text-decoration:none}
.srcs{font:14px var(--sans);word-break:break-word}.srcs li{margin:4px 0}
.share,.fb1,.trail{background:#fff;border:1px solid var(--line);border-radius:14px;padding:6px 20px 18px;margin-top:22px}
.share h2,.fb1 h2,.trail h2{font-size:20px;color:var(--deep)}
.btns{display:flex;flex-wrap:wrap;gap:8px}.sharechips a,.sharechips button,.sharebtns .native,.btns button{font:600 15px var(--sans);padding:10px 14px;border-radius:0;border:1.5px solid var(--line);background:var(--bb-surface-raised,var(--paper));color:var(--deep);text-decoration:none;cursor:pointer;min-height:var(--bb-touch,44px);min-width:var(--bb-touch,44px);box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center}
.btns button.sel{background:var(--moss);color:#fff}.oneq label{display:block;margin-top:12px;font:15px var(--sans)}.oneq input{width:100%;padding:10px;border:1.5px solid var(--line);border-radius:0;font-size:16px;margin-top:4px;min-height:var(--bb-touch,44px)}
.trail ol{font:15px var(--sans);padding-left:22px}.trail li.on{font-weight:700}.trail li.on a{color:var(--ink)}
.next{margin-top:10px}
.doc{max-width:760px}.doc h1{font-family:var(--display,var(--serif));font-weight:400;text-transform:uppercase;letter-spacing:.02em;color:var(--deep);font-size:40px}
#map{height:70vh;min-height:420px;border-radius:14px;border:1px solid var(--line);position:relative;z-index:0;isolation:isolate}
.tier{background:#fff;border:1px solid var(--line);border-radius:14px;padding:4px 20px 14px;margin:14px 0}
@media(max-width:640px){body{font-size:17px}.hero{min-height:92vh}.hero-in{padding-top:8vh}}

.vh{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.prose img{max-width:100%;height:auto}
.soon{font:16px/1.5 var(--sans);background:#ffffff14;border-radius:10px;padding:12px 14px;margin:0}
.places{font:16px/1.5 var(--sans)}
a:focus-visible,button:focus-visible{outline:3px solid #8a5a0b;outline-offset:2px}
.subhead{font-size:1.15rem;margin:.25rem 0 0}
.byline{font-weight:700;margin:.25rem 0 1rem}
/* forms (rendered only when their backend env vars are set at build time) */
.fbform,.bdform{display:grid;gap:.5rem;max-width:36rem;margin:1rem 0}
.fbform textarea,.bdform input[type=email]{font:inherit;padding:.6rem;border:1px solid #55635a;border-radius:6px;width:100%;box-sizing:border-box}
.fbform button,.bdform button{justify-self:start}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.small{font-size:.9rem;margin:0}
/* directory */
.dir .cbp{background:#fff;border:1px solid var(--line);border-left:6px solid var(--gold);border-radius:16px;padding:18px 22px;margin:20px 0}
.cbpnums{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.cbpnums p{margin:0;font:16px var(--sans)}.cbpnums b{display:block;font:400 32px/1 var(--display,var(--serif));color:var(--bb-accent);letter-spacing:.02em}
.cbp table{width:100%;border-collapse:collapse;font:15px var(--sans);margin:14px 0}.cbp caption{text-align:left;font-weight:700;padding:4px 0}.cbp th,.cbp td{text-align:left;padding:5px 8px;border-bottom:1px solid var(--line)}.cbp td{text-align:right}
.dirtools{font-family:var(--sans);margin:18px 0}.dirtools label{display:block;font-weight:700}.dirtools input{width:100%;max-width:460px;font:17px var(--sans);padding:10px 12px;border:1.5px solid var(--bb-border,var(--line));border-radius:0;margin:6px 0 10px;background:var(--bb-surface-raised);color:var(--ink);min-height:var(--bb-touch,44px)}
.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{font:600 15px var(--sans);padding:8px 14px;border-radius:0;border:1.5px solid var(--moss);background:#fff;color:var(--deep);cursor:pointer;min-height:var(--bb-touch,44px);min-width:var(--bb-touch,44px);box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center}
.chip[aria-pressed=true]{background:var(--deep);border-color:var(--deep);color:#fff}
#dirmap{height:420px;border-radius:14px;border:1px solid var(--line);margin-top:12px}
.bizlist{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.biz{background:var(--bb-surface-raised,#fff);border:1px solid var(--line);border-top:5px solid var(--moss);border-radius:var(--bb-radius,2px);padding:14px 18px}.biz h3{margin:.1em 0;font-size:20px}.biz .k,.biz1 .k{font:600 14px var(--sans);color:#4b5a52;margin:0 0 6px}
.c-food{border-top-color:#b5501f}.c-shopping{border-top-color:#6b4fa0}.c-auto{border-top-color:#4a5560}.c-health{border-top-color:#b8233a}.c-banking{border-top-color:#1f6b52}.c-lodging{border-top-color:#9a6a00}.c-services{border-top-color:#2c5f8a}
.bizfacts{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font:15px var(--sans);margin:8px 0}.bizfacts dt{font-weight:700}.bizfacts dd{margin:0}
.bizact{display:flex;flex-wrap:wrap;gap:12px;align-items:center;font:14px var(--sans);margin:8px 0 0}.showpin{font:600 14px var(--sans);padding:6px 12px;border-radius:0;border:1.5px solid var(--moss);background:#fff;color:var(--deep);cursor:pointer;min-height:var(--bb-touch,44px);min-width:var(--bb-touch,44px);box-sizing:border-box}
.claimbox{background:var(--bb-surface-raised,#FFFBF4);border:1px solid var(--bb-border,var(--line));border-radius:var(--bb-radius,2px);padding:14px 20px;margin:20px 0}.claimbox h2{font-size:22px!important}.claim{color:var(--bb-link)}

/* nav: mobile first */
.skip{position:absolute;left:12px;top:-60px;z-index:400;background:var(--deep);color:#fff;padding:10px 14px;border-radius:0;font:600 15px var(--sans)}.skip:focus{top:8px}
main:focus{outline:0}main,#main,.wrap,.doc{min-width:0;max-width:100%;box-sizing:border-box}.brand{margin-right:auto}.brand span{white-space:nowrap}
.ib{display:inline-grid;place-items:center;min-width:44px;height:44px;border-radius:12px;color:var(--deep);text-decoration:none;background:none;border:0;cursor:pointer}
.hsearch{display:none}
.menu{display:none;position:fixed;inset:0;z-index:300;background:var(--paper);flex-direction:column;font-family:var(--sans)}
.menu:target,.menu.open{display:flex}
.mhead{padding:16px 20px 8px;color:#55635a;font-size:13px;letter-spacing:.14em;text-transform:uppercase}
.groups{list-style:none;margin:0;padding:0 12px;overflow-y:auto;flex:1;display:flex;flex-direction:column}.groups>:first-child{margin-top:auto}
.g{border-bottom:1px solid var(--line);padding:6px 0}.gl{display:flex;align-items:center;min-height:48px;padding:0 8px;font:800 20px var(--sans);color:var(--deep);text-decoration:none}
.gt{display:none}.panel{list-style:none;margin:0 0 6px;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:2px}
.panel a{display:flex;flex-direction:column;justify-content:center;min-height:44px;padding:6px 8px;border-radius:10px;color:var(--ink);text-decoration:none;font-size:15px;line-height:1.3}
.panel a:hover{background:#fff}.panel small{color:#55635a;font-size:12px}
.mfoot{display:flex;gap:8px;align-items:center;padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fff}
.mf{display:inline-flex;gap:6px;align-items:center;min-height:44px;padding:0 14px;border:1px solid var(--line);border-radius:99px;color:var(--deep);text-decoration:none;font-weight:600}
.mfoot .pill{min-height:44px;display:inline-flex;align-items:center;text-decoration:none;font-weight:600}.mclose{margin-left:auto;padding:0 14px;border:1px solid var(--line);font-weight:600}
.lock{overflow:hidden}
@media(min-width:960px){
.sbtn,.mbtn,.mhead,.mclose,.mf{display:none}
.menu,.menu:target{display:flex;position:static;flex-direction:row;align-items:center;background:none;order:1}
.groups{flex-direction:row;overflow:visible;padding:0;gap:2px}.groups>:first-child{margin-top:0}
.g{position:relative;border:0;padding:0;display:flex;align-items:center}
.gl{min-height:var(--bb-touch,44px);padding:0 2px 0 8px;font:600 15px var(--sans);color:var(--ink)}.gl:hover{color:var(--moss)}
.gt{display:inline-grid;place-items:center;min-width:var(--bb-touch,44px);min-height:var(--bb-touch,44px);width:var(--bb-touch,44px);height:var(--bb-touch,44px);padding:0;border:0;background:none;color:var(--ink);cursor:pointer;border-radius:8px;flex:0 0 auto;box-sizing:border-box}.gt[hidden]{display:none}
.gt svg{width:12px;height:12px;transition:transform .15s}.gt[aria-expanded=true] svg{transform:rotate(180deg)}
.g:has(.gt[hidden]) .gl{padding-right:10px}
.panel{display:none;position:absolute;top:100%;left:0;min-width:280px;max-width:420px;grid-template-columns:1fr;background:#fff;border:1px solid var(--line);border-radius:14px;padding:8px;box-shadow:0 12px 30px #1d2a2420}
.g:has(.panel li:nth-child(5)) .panel{grid-template-columns:1fr 1fr;min-width:420px}
.g:not(.js):hover .panel,.g:not(.js):focus-within .panel,.g.open .panel{display:grid}
.mfoot{padding:0 0 0 8px;border:0;background:none}.mfoot .pill{min-height:44px}
.hsearch{display:flex;order:2;margin-left:8px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:99px;padding:0 4px 0 12px}
.hsearch input{border:0;background:none;font:15px var(--sans);width:130px;padding:8px 0;color:var(--ink)}.hsearch input:focus{outline:0}.hsearch:focus-within{outline:3px solid #8a5a0b;outline-offset:2px}
.hsearch button{display:grid;place-items:center;min-width:44px;min-height:44px;width:44px;height:44px;padding:0;border:0;border-radius:99px;background:none;color:var(--deep);cursor:pointer;flex:0 0 auto}
}
@media(min-width:960px) and (max-width:1100px){
.hsearch input{width:96px}
.groups{gap:0}
}
.sform{max-width:100%;min-width:0}
.sform div{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px;min-width:0;max-width:100%}
.sform input{flex:1 1 12rem;min-width:0;max-width:100%;box-sizing:border-box;padding:12px;border:1.5px solid var(--line);border-radius:0;font:17px var(--sans);min-height:var(--bb-touch,44px);background:var(--bb-surface-raised)}
.sform label{font:600 15px var(--sans);display:block}
.sform button[type=submit]{flex:0 1 auto;max-width:100%;box-sizing:border-box}
@media(max-width:400px){
  .sform div{flex-direction:column;align-items:stretch}
  /* flex-basis 12rem is width in a row; in a column it becomes height (~192px). Reset axis. */
  .sform input{flex:0 1 auto;flex-basis:auto;width:100%;max-width:100%;min-height:var(--bb-touch,44px);height:auto;align-self:stretch}
  .sform button[type=submit]{width:100%;flex:0 0 auto}
}
.sres{font:16px/1.4 var(--sans);padding-left:22px;min-width:0;max-width:100%;overflow-wrap:anywhere;word-break:break-word}
.sres li{margin:10px 0;min-width:0}
.sres a{overflow-wrap:anywhere;word-break:break-word}
.sres small,.sres p{display:block;color:#55635a;margin:2px 0 0}

.layers{top:56px}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
.note{border-left:4px solid #b8860b;background:#fff8e1;padding:.6em .9em;margin:1em 0}

/* Pass it on: primary native Share, then equal-width chips */
.sharebtns{display:grid;gap:10px}.sharebtns .native[hidden]{display:none}
.sharebtns .native{width:100%;background:var(--deep);color:#fff;border-color:var(--deep);font-size:16px;padding:12px 14px}
.sharechips{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.sharechips>*{text-align:center;white-space:nowrap;min-width:0}
@media(max-width:640px){.sharechips{grid-template-columns:repeat(2,1fr)}.sharechips .copy{grid-column:1/-1}}
/* Full story stat cards (reuse .cbpnums) */
.cbpnums.stats{margin:18px 0 26px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}
.cbpnums.stats p{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:12px 14px;line-height:1.3}
.cbpnums.stats .lab{display:block;font-weight:600;color:var(--deep)}.cbpnums.stats .sn{display:block;font-size:13px;color:#5b675f;margin-top:3px}
@media(max-width:640px){.cbpnums.stats{grid-template-columns:repeat(2,1fr)}.cbpnums.stats b{font-size:24px}}
/* News article template polish: one type scale, sentence-case headings, steady rhythm */
.art.news h1{font-family:var(--display,var(--serif));font-weight:400;text-transform:uppercase;font-size:clamp(30px,4.6vw,42px);line-height:1.12;letter-spacing:.02em;margin:.25em 0 .35em;text-wrap:balance}

.art.news .prose{font-size:18px;line-height:1.65}.art.news .prose p{margin:0 0 1em}
.art.news .prose h2{font:400 24px/1.25 var(--display,var(--serif));text-transform:uppercase;letter-spacing:.04em;color:var(--deep);margin:2em 0 .6em;text-wrap:balance}
.art.news .prose h2:first-child{margin-top:0}
.art.news .prose ul{padding-left:1.2em;margin:0 0 1em}.art.news .prose li{margin:.3em 0}
.art.news .layer.deep h2,.art.news .fb1 h2,.art.news .trail h2{font:400 22px/1.3 var(--display,var(--serif));text-transform:uppercase;letter-spacing:.04em;color:var(--deep)}
.tblwrap{overflow-x:auto;margin:18px 0 8px}.tblwrap:focus-visible{outline:3px solid var(--bb-focus,var(--bb-accent,#C2410E));outline-offset:3px}.prose table{width:100%;border-collapse:collapse;font:15px/1.4 var(--sans)}
.prose th,.prose td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top}
.prose thead th{font-weight:700;color:var(--deep);border-bottom:2px solid var(--deep);white-space:nowrap}
.prose tbody th{font-weight:600}.prose td{font-variant-numeric:tabular-nums;white-space:nowrap}
@media(max-width:640px){.art.news .prose{font-size:17px}.art.news .prose h2{font-size:21px}.prose td{white-space:normal}}

/* design-system density + token wiring (feat/seasonal-design-system) */
body{background:var(--bb-surface,var(--paper));color:var(--bb-text,var(--ink));font:var(--bb-fs-base,18px)/var(--bb-leading,1.55) var(--sans)}
a{color:var(--bb-link,#7a4f00)}
a:focus-visible,button:focus-visible,.hsearch:focus-within{outline:3px solid var(--bb-focus,var(--bb-accent,#8a5a0b));outline-offset:2px}
.top{min-height:var(--bb-topbar-h,52px);height:auto;padding:6px 16px;gap:8px}
.brand{font-size:17px}.brand img{width:36px;height:36px}

/* compact reader intro (replaces giant mountain hero) */
.intro{padding:18px 18px 14px;max-width:var(--bb-width,1080px)}
.intro .eyebrow{margin:0 0 6px}
.intro h1.lede,.intro .lede{font-size:clamp(22px,3vw,30px);font-weight:400;font-family:var(--display,var(--serif));text-transform:uppercase;color:var(--bb-text-strong,var(--deep));margin:0 0 6px;max-width:40ch;letter-spacing:.02em;line-height:1.15}
.intro .subhead{font-size:16px;color:var(--bb-text-subtle,#5b675f);margin:0 0 12px;max-width:52ch}
.intro .paths{justify-content:flex-start;gap:8px}

.wrap{max-width:var(--bb-width,1080px);margin:0 auto;padding:24px 18px}
.home-board{padding-top:18px}
.doc,.trails-page,.dir{padding-top:18px}
.doc h1,.trails-page h1,.dir h1{margin-top:0}
.trails-page .sub{margin-bottom:18px}

/* desktop main + rail */
.layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:18px 28px;align-items:start}
@media(max-width:900px){.layout{grid-template-columns:1fr}.rail{order:2}}
.rail h2{font:700 13px/1.2 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--bb-text-muted,#55635a);margin:0 0 8px}
.navlist{list-style:none;margin:0 0 14px;padding:0;border:1px solid var(--bb-border,var(--line));border-radius:var(--bb-radius,2px);overflow:hidden;background:var(--bb-surface-raised,#fff)}
.navlist a{display:flex;align-items:center;min-height:44px;padding:0 12px;text-decoration:none;color:var(--bb-text-strong,var(--deep));font:600 14px var(--sans);border-bottom:1px solid var(--bb-border,var(--line))}
.navlist li:last-child a{border-bottom:0}
.navlist a:hover{background:var(--bb-season-wash,var(--sky))}
.mapnote{font:13px/1.4 var(--sans);color:var(--bb-text-subtle,#4A433A);padding:10px 12px;border:1px dashed var(--bb-season-tint,var(--moss));border-radius:var(--bb-radius,2px);background:var(--bb-surface-raised,#FFFBF4);margin-bottom:12px}
.mapnote strong{color:var(--bb-text-strong,var(--deep))}
.rail-more{font:13px/1.4 var(--sans);margin:0;color:var(--bb-text-muted,#55635a)}

.cards{gap:var(--bb-gap-card,12px)}
.card{padding:var(--bb-pad-card,14px);border-radius:var(--bb-radius,2px)}
.card h3{font-size:18px;line-height:1.3;margin:.2em 0}
.card p{font-size:15px}
.k,.meta{font-size:var(--bb-fs-meta,13px);color:var(--bb-text-muted,#55635a)}
.cite{font-size:var(--bb-fs-label,12px)}
.trailc{min-height:120px;padding:16px;border-radius:var(--bb-radius,2px);background:var(--bb-season-tint,var(--moss))}
.now,.cbp{border-left-color:var(--bb-season-rule,var(--gold))}
.foot a{color:var(--bb-link-on-inverse,#e9c46a)}
.label{color:var(--bb-accent,#8a5a0b)}

/* dense news feed — auto date column so full dates never collide with titles */
.feed{list-style:none;margin:0;padding:0;border-top:1px solid var(--bb-border,var(--line))}
.feed li{border-bottom:1px solid var(--bb-border,var(--line))}
.feed a{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 16px;padding:12px 0;text-decoration:none;color:inherit;min-height:var(--bb-touch,44px);align-items:baseline}
.feed .k{grid-column:1;margin:0;padding-top:2px;white-space:nowrap;text-transform:none;letter-spacing:0;font:600 13px/1.3 var(--sans);color:var(--bb-text-muted,#55635a)}
.feed h3{grid-column:2;margin:0;font-size:17px;line-height:1.3;color:var(--bb-text-strong,var(--deep))}
.feed p{grid-column:2;margin:2px 0 0;font-size:15px;color:var(--bb-text-subtle,#5b675f)}
.feed .meta{grid-column:2;text-transform:none;letter-spacing:0}
.feed a:hover h3{color:var(--bb-link)}
@media(max-width:720px){
  .feed a{grid-template-columns:1fr;gap:2px}
  .feed .k,.feed h3,.feed p,.feed .meta{grid-column:1}
}

.compact-how{margin-top:22px}
.home .wrap>h2:first-child,.home .how{margin-top:.2em}
.now{margin-top:12px}


/* article header: stacked hierarchy for every story template (not .news flex) */
.art{display:block}
.art > h1{display:block;width:100%}
.art .meta1{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;font:500 15px var(--sans);color:var(--bb-text-muted,#55635a);margin:0 0 22px;padding-bottom:16px;border-bottom:1px solid var(--bb-border,var(--line))}
.art .meta1 .byline{margin:0;font:inherit;color:var(--bb-text-strong,var(--deep));font-weight:600}
.art .meta1 time::before{content:'·';margin-right:10px}
.art.news h1,.art.trailstep h1{font-family:var(--display,var(--serif));font-weight:400;text-transform:uppercase;font-size:clamp(30px,4.6vw,42px);line-height:1.12;letter-spacing:.02em;margin:.25em 0 .35em;text-wrap:balance}

.design-review .seasonbar{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0;border:0;padding:0;min-inline-size:0}
.design-review .seasonbar legend{padding:0;margin:0 0 8px}
.design-review .seasonbar .chip{
  display:inline-flex;align-items:center;justify-content:center;gap:0;
  min-block-size:var(--bb-touch,44px);min-inline-size:var(--bb-touch,44px);
  min-height:var(--bb-touch,44px);min-width:var(--bb-touch,44px);
  padding:10px 14px;cursor:pointer;position:relative;box-sizing:border-box;
}
.design-review .seasonbar .chip input{
  position:absolute;inset:0;margin:0;opacity:0;cursor:pointer;
}
.design-review .seasonbar .chip:has(input:focus-visible){
  outline:3px solid var(--bb-focus,var(--bb-accent,#8a5a0b));outline-offset:2px;
}
.design-review .seasonbar .chip:has(input:checked){
  background:var(--bb-season-tint,var(--deep));color:#fff;border-color:var(--bb-season-tint,var(--deep));
}
.design-review .review-links{margin:14px 0;padding:12px;border:1px solid var(--bb-border,var(--line));border-radius:var(--bb-radius,2px);background:var(--bb-surface-raised,#fff)}
.design-review .review-links h2{font-size:18px;margin:0 0 8px}
.design-review .review-links ul{margin:0;padding-left:1.2em;font:15px/1.5 var(--sans)}
.design-review .review-links li{margin:.35em 0}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
html{overflow-x:clip}
@media(max-width:640px){
  body{font-size:17px}
  .intro{padding:14px 14px 10px}
  .intro .lede{font-size:22px}
  .wrap{padding:18px 14px}
}

/* ========== Buttons (component) ==========
   Hierarchy: .go.big / .next / primary form submits = primary (offset lift)
              .go = secondary (cream rectangle, stronger orange border on hover)
   Square corners — not pills or rounded-rects.
   Scoped away from map/search icon buttons (.hsearch button, .ib, Leaflet).
*/
a.go,
.go,
a.next,
.next{
  box-sizing:border-box;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.4em;
  min-height:var(--bb-touch,44px);
  padding:var(--bb-btn-pad-y,10px) var(--bb-btn-pad-x,16px);
  border-radius:0;
  border:var(--bb-btn-border-width,1.5px) solid var(--bb-btn-secondary-border,var(--line));
  background:var(--bb-btn-secondary-bg,var(--bb-surface-raised,#FFFBF4));
  color:var(--bb-btn-secondary-fg,var(--bb-text-strong,var(--deep)));
  font:var(--bb-btn-font,600 15px/1.2 var(--sans));
  text-decoration:none;
  box-shadow:none;
  cursor:pointer;
  position:relative;
  transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease,color .15s ease,transform .15s ease;
}
a.go:hover,
.go:hover{
  background:var(--bb-btn-secondary-hover-bg,#fff);
  border-color:var(--bb-accent,#C2410E);
}
a.go:active,
.go:active{
  box-shadow:var(--bb-btn-shadow-active,inset 0 1px 2px #0002);
  background:#F0E8D8;
}
a.go.big,
.go.big,
a.next,
.next{
  background:var(--bb-btn-primary-bg,#C2410E);
  color:var(--bb-btn-primary-fg,#fff);
  border-color:var(--bb-btn-primary-border,#9E3A0C);
  font-weight:700;
  box-shadow:0 0 0 var(--ink);
}
a.go.big:hover,
.go.big:hover,
a.next:hover,
.next:hover{
  background:var(--bb-btn-primary-hover-bg,#9E3A0C);
  border-color:var(--bb-btn-primary-border,#9E3A0C);
  color:var(--bb-btn-primary-fg,#fff);
  transform:translate(-2px,-2px);
  box-shadow:var(--bb-btn-lift,4px 4px 0 #16121C);
}
a.go.big:active,
.go.big:active,
a.next:active,
.next:active{
  background:var(--bb-btn-primary-active-bg,#7A2C09);
  transform:translate(0,0);
  box-shadow:0 0 0 #16121C;
}
a.next,
.next{
  display:flex;
  width:100%;
  text-align:left;
  justify-content:flex-start;
  padding:14px 16px;
}
a.next small,
.next small{display:block;font-weight:500;color:var(--bb-btn-primary-fg,#fff)}

/* Quiet / menu feedback — square, not a pill */
a.pill,
.pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:var(--bb-touch,44px);
  padding:7px 14px;
  border-radius:0;
  border:var(--bb-btn-border-width,1.5px) solid color-mix(in srgb, var(--bb-surface-inverse,var(--deep)) 88%, transparent);
  background:var(--bb-surface-inverse,var(--deep));
  color:#fff!important;
  font:600 14px/1.2 var(--sans);
  text-decoration:none;
  box-shadow:none;
  transition:background-color .15s ease,box-shadow .15s ease,border-color .15s ease;
}
a.pill:hover,
.pill:hover{
  background:color-mix(in srgb, var(--bb-surface-inverse,var(--deep)) 88%, var(--bb-accent,#C2410E));
}
a.pill:active,
.pill:active{box-shadow:var(--bb-btn-shadow-active,inset 0 1px 2px #0003)}

/* Form primary submits — same lift as .go.big; not map/search icon buttons */
.fbform > button[type=submit],
.bdform > button[type=submit],
.sform button[type=submit],
.newsform > button{
  min-height:var(--bb-touch,44px);
  padding:var(--bb-btn-pad-y,10px) var(--bb-btn-pad-x,16px);
  border-radius:0;
  border:var(--bb-btn-border-width,1.5px) solid var(--bb-btn-primary-border,#9E3A0C);
  background:var(--bb-btn-primary-bg,#C2410E);
  color:var(--bb-btn-primary-fg,#fff);
  font:var(--bb-btn-font,600 15px/1.2 var(--sans));
  font-weight:700;
  box-shadow:0 0 0 var(--ink);
  cursor:pointer;
  position:relative;
  transition:background-color .15s ease,box-shadow .15s ease,transform .15s ease;
}
.fbform > button[type=submit]:hover,
.bdform > button[type=submit]:hover,
.sform button[type=submit]:hover,
.newsform > button:hover{
  background:var(--bb-btn-primary-hover-bg,#9E3A0C);
  transform:translate(-2px,-2px);
  box-shadow:var(--bb-btn-lift,4px 4px 0 #16121C);
}
.fbform > button[type=submit]:active,
.bdform > button[type=submit]:active,
.sform button[type=submit]:active,
.newsform > button:active{
  background:var(--bb-btn-primary-active-bg,#7A2C09);
  transform:translate(0,0);
  box-shadow:0 0 0 #16121C;
}

a.go[aria-disabled=true],
.go:disabled,
button:disabled,
.fbform > button:disabled,
.bdform > button:disabled{
  opacity:var(--bb-btn-disabled-opacity,.48);
  cursor:not-allowed;
  box-shadow:none;
  pointer-events:none;
  transform:none;
}

a.go:focus-visible,
.go:focus-visible,
a.next:focus-visible,
.next:focus-visible,
a.pill:focus-visible,
.pill:focus-visible,
.fbform > button:focus-visible,
.bdform > button:focus-visible,
.sform button:focus-visible,
.newsform > button:focus-visible,
.chip:focus-visible{
  outline:3px solid var(--bb-focus,var(--bb-accent,#C2410E));
  outline-offset:3px;
}

/* Chip filter controls — square corners */
.chip{
  border-radius:0;
  border:var(--bb-btn-border-width,1.5px) solid var(--bb-season-tint,var(--moss));
  background:var(--bb-surface-raised,#fff);
  color:var(--bb-text-strong,var(--deep));
  box-shadow:none;
  transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease;
}
.chip:hover{
  background:color-mix(in srgb, var(--bb-surface-raised,#fff) 88%, var(--bb-season-wash,var(--sky)));
  border-color:var(--bb-accent,#C2410E);
}
.chip:active{box-shadow:var(--bb-btn-shadow-active,inset 0 1px 2px #0002)}
.chip[aria-pressed=true],
.chip[aria-selected=true]{
  background:var(--ink);
  border-color:var(--ink);
  color:#fff;
}

@media (prefers-reduced-motion: reduce){
  a.go,.go,a.next,.next,a.pill,.pill,.chip,
  .fbform > button,.bdform > button,.sform button,.newsform > button{
    transition:none!important;
  }
}

/* ========== Ridge motif (seam + footer) ========== */
.ridge-seam{
  height:36px;
  margin:0;
  line-height:0;
  overflow:hidden;
  color:var(--bb-ridge,var(--bb-season-tint,var(--moss)));
  background:var(--bb-surface,var(--paper));
}
.ridge-seam .ridge-motif{
  display:block;
  width:100%;
  height:36px;
}
.ridge-motif--foot{
  color:var(--bb-ridge-foot,var(--bb-surface-inverse,var(--deep)));
}

/* Map chrome: zoom hit ≥44; popup text wraps inside container (JS sets maxWidth). Default pin graphic stays Leaflet size — hit exception documented; directory .showpin is 44. */
#map .leaflet-bar a,
#dirmap .leaflet-bar a,
.leaflet-touch #map .leaflet-bar a,
.leaflet-touch #dirmap .leaflet-bar a{
  width:var(--bb-touch,44px);height:var(--bb-touch,44px);line-height:var(--bb-touch,44px);
  font-size:18px;display:flex;align-items:center;justify-content:center;
}
#map .leaflet-popup-content,
#dirmap .leaflet-popup-content{
  margin:10px 12px;overflow-wrap:anywhere;word-break:break-word;max-width:100%;
}
#map .leaflet-popup-content-wrapper,
#dirmap .leaflet-popup-content-wrapper{max-width:100%;box-sizing:border-box}


/* Article discovery: topic chips, related links, dates, print */
/* Topic chips: rule-of-thirds step down from buttons.
   Before: 15px type, padding 8px 14px, 44px-tall square (radius 0).
   After: 12px type (--bb-fs-label; 15×2/3=10, rounded up to the 12px label/meta floor),
   visual padding 6px 10px (8×2/3≈5.3→6, 14×2/3≈9.3→10), 30px-tall pill (44×2/3≈29.3→30),
   border-radius 999px. The <a> keeps a 44px transparent hit box; the pill is painted
   on ::before so a row of chips (gap 8px) does not overlap hit areas. */
.topics{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
a.topic{
  position:relative;
  display:inline-flex;align-items:center;justify-content:center;
  box-sizing:border-box;
  min-height:var(--bb-touch,44px);min-width:var(--bb-touch,44px);
  padding:0 10px;
  border:0;
  background:transparent;
  color:var(--bb-accent,#C2410E);
  font:600 12px/1.2 var(--sans);
  text-decoration:none;
  z-index:0;
}
a.topic::before{
  content:"";
  position:absolute;inset-inline:0;top:50%;height:30px;margin-top:-15px;
  box-sizing:border-box;
  border:1.5px solid var(--bb-accent,#C2410E);
  background:var(--bb-surface-raised,#FFFBF4);
  border-radius:999px;
  z-index:-1;
  pointer-events:none;
}
a.topic:hover{color:var(--bb-btn-primary-hover-bg,#9E3A0C)}
a.topic:hover::before{background:#fff;border-color:var(--bb-btn-primary-border,#9E3A0C)}
a.topic:focus-visible{outline:none}
a.topic:focus-visible::before{outline:3px solid var(--bb-focus,var(--bb-accent,#C2410E));outline-offset:3px}
.art .meta1 time.updated{font-weight:500}
.related{background:var(--bb-surface-raised,#FFFBF4);border:1px solid var(--line);border-radius:var(--bb-radius,2px);padding:6px 20px 18px;margin-top:22px}
.related h2{font:400 22px/1.3 var(--display,var(--serif));text-transform:uppercase;letter-spacing:.04em;color:var(--deep);margin:.6em 0 .4em}
.related ol{list-style:none;margin:0;padding:0}
.related li{margin:0}
.related li a{
  display:flex;align-items:center;
  min-height:var(--bb-touch,44px);
  padding:8px 0;
  color:var(--bb-link,#C2410E);
  text-decoration:none;
  font:600 16px/1.3 var(--sans);
  overflow-wrap:anywhere;
}
.related li a:hover{text-decoration:underline}
.related li a:focus-visible{outline:3px solid var(--bb-focus,var(--bb-accent,#C2410E));outline-offset:3px}
/* Next stop on news pages sits between related and “More from” */
.art.news > a.next{margin-top:22px;max-width:100%}
@media print{
  .skip,.top,.menu,.hsearch,.mbtn,.ib,.share,.hero,.shade,.paths,.foot{display:none!important}
  body{background:#fff;color:#000;font-size:12pt;line-height:1.4}
  a{color:#000}
  .art{max-width:none;padding:0}
  .topic,.next,.related,.trail,.fb1,.nudge,.layers{/* keep topics and sources; hide chrome CTAs in print? keep sources */ }
  .fb1,.share,.nudge,.layers{display:none}
  .related,.trail,a.next{display:none}
}
