@font-face{font-family:Barlow;src:url(barlow-800.woff2) format("woff2");font-weight:800;font-display:swap}
@font-face{font-family:Source;src:url(source-sans-3.woff2) format("woff2");font-weight:400 700;font-display:swap}
:root{color-scheme:light;--paper:#f6f4eb;--white:#fffcf4;--ink:#252e23;--olive:#344432;--muted:#535e4e;--line:#c9cabb;--map:#e6e8d8;--rust:#a13922;--max:76rem;--gutter:clamp(1.15rem,4vw,3rem);font:1.125rem/1.55 Source,system-ui,sans-serif;scroll-padding-top:1.25rem}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);caret-color:var(--rust);scrollbar-color:var(--olive) var(--paper)}
::selection{background:#e7c8a7;color:var(--ink)}
a{color:var(--olive);text-underline-offset:.22em}
a:hover{color:var(--rust)}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:3px solid var(--rust);outline-offset:4px}
h1,h2,h3{font-family:Barlow,sans-serif;font-weight:800;line-height:1.03;letter-spacing:-.025em;margin:0;text-wrap:balance}
h1{font-size:clamp(2.7rem,7vw,5.9rem)}
h2{font-size:clamp(2rem,4.5vw,3.4rem)}
h3{font-size:clamp(1.25rem,2.1vw,1.65rem)}
p{margin:.75rem 0 0;max-width:70ch}
ul,ol{padding-left:1.3rem}
img,svg{display:block;max-width:100%}
[hidden]{display:none!important}
.wrap{width:min(var(--max),100%);margin-inline:auto;padding-inline:var(--gutter)}
.skip{position:absolute;top:.5rem;left:.5rem;padding:.5rem .8rem;background:var(--white);z-index:5;transform:translateY(-160%)}
.skip:focus{transform:none}
.masthead{border-bottom:1px solid var(--line)}
.masthead .wrap{min-height:4.6rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.brand{display:inline-flex;align-items:center;gap:.55rem;text-decoration:none;color:var(--ink);font:800 1.25rem/1 Barlow,sans-serif;white-space:nowrap}
.brand img{width:1.95rem;height:1.95rem}
nav{display:flex;align-items:center;gap:clamp(.65rem,2.5vw,2rem);flex-wrap:wrap}
nav a{font-size:.94rem;text-decoration:none;font-weight:650;padding-block:.55rem}
nav a:hover{text-decoration:underline}
.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(1.5rem,4vw,4rem);align-items:center;padding-block:clamp(2.75rem,6vw,6.25rem)}
.hero h1{font-size:clamp(2.55rem,5.35vw,4.75rem);text-wrap:initial}
.hero h1 span{display:block;color:var(--rust)}
.hero p,.lede{font-size:clamp(1.08rem,2vw,1.28rem);color:var(--muted);max-width:60ch}
.actions{display:flex;align-items:center;gap:.75rem 1.15rem;flex-wrap:wrap;margin-top:1.5rem}
.button{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:2.65rem;padding:.52rem .92rem;border:1px solid var(--olive);border-radius:.32rem;background:var(--olive);color:var(--white);font-weight:700;text-decoration:none}
.button:hover{background:#253522;color:var(--white)}
.button.secondary{background:transparent;color:var(--olive)}
.button.secondary:hover{background:var(--map);color:var(--ink)}
.arrow{width:.95rem;height:.95rem;flex:none}
.field-map{margin:0;background:var(--map);border:1px solid #aeb6a2;border-radius:.65rem;overflow:hidden}
.map-art{width:100%;height:auto}
.map-art a:hover .map-label,.map-art a:focus-visible .map-label{stroke:var(--rust);stroke-width:2}
.map-art a:focus-visible{outline:none}
.field-map figcaption{display:flex;justify-content:space-between;gap:.65rem;flex-wrap:wrap;padding:.55rem .85rem;background:var(--white);border-top:1px solid #aeb6a2;font-size:.82rem;font-weight:650;color:var(--muted)}
.route-band{background:var(--olive);color:var(--white);padding-block:.45rem}
.route-band .wrap{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.route-band a{display:grid;grid-template-columns:1fr auto;gap:.65rem;align-items:center;color:var(--white);text-decoration:none;padding:1.15rem 1rem}
.route-band a:first-child{padding-left:0}
.route-band a+a{border-left:1px solid #75826d}
.route-band a:hover{background:#43573d;text-decoration:underline}
.route-band a:focus-visible{outline-color:var(--white);outline-offset:-4px}
.route-band b{font:800 1.15rem/1.15 Barlow,sans-serif}
.section{padding-block:clamp(2.8rem,6vw,5.6rem)}
.section + .section{border-top:1px solid var(--line)}
.split{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(1.25rem,6vw,5rem);align-items:start}
.directory{margin:0;padding:0;list-style:none;border-top:1px solid var(--line)}
.directory a{display:grid;grid-template-columns:1fr auto;align-items:center;gap:.35rem 1rem;padding:1.1rem 0;text-decoration:none;border-bottom:1px solid var(--line)}
.directory a span{grid-column:1;color:var(--muted)}
.directory a svg{grid-row:1 / span 2;grid-column:2}
.directory a:hover h3{text-decoration:underline}
.band{background:var(--map);border-block:1px solid var(--line)}
.footer{border-top:1px solid var(--line);padding-block:1.6rem;font-size:.91rem;color:var(--muted)}
.footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem}
.footer nav{gap:.6rem 1.2rem}
.page-head{padding-block:2.5rem 2.25rem;border-bottom:1px solid var(--line)}
.page-head h1{font-size:clamp(2.5rem,6vw,4.65rem);max-width:22ch}
.crumb{font-size:.91rem;margin:0 0 .8rem;color:var(--muted)}
.reading{max-width:54rem;padding-block:2.5rem 4rem}
.reading h2{margin-top:2.3rem;font-size:clamp(1.75rem,4vw,2.5rem)}
.reading h2:first-child{margin-top:0}
.reading li+li{margin-top:.45rem}
.checklist{margin:1.2rem 0 2rem;padding:0;list-style:none;border-top:1px solid var(--line)}
.checklist li{margin:0!important;border-bottom:1px solid var(--line)}
.checklist label{display:flex;align-items:flex-start;gap:.7rem;padding:.72rem .15rem;cursor:pointer}
.checklist input{width:1.15rem;height:1.15rem;margin:.19rem 0 0;flex:none;accent-color:var(--olive)}
.checklist input:checked + span{color:var(--muted)}
.small{font-size:.91rem;color:var(--muted)}
.filters{display:grid;grid-template-columns:2fr 1fr;gap:.8rem;margin-bottom:1rem}
.filters label{display:grid;gap:.2rem;font-weight:650}
.filters input,.filters select{width:100%;min-width:0;padding:.55rem .7rem;border:1px solid #798472;border-radius:.28rem;background:var(--white)}
.catalog{padding-block:2rem 4rem}
.catalog-meta{font-variant-numeric:tabular-nums;color:var(--muted);margin-bottom:.7rem}
.catalog-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}
.catalog-list li{border-bottom:1px solid var(--line);padding:.8rem 0}
.catalog-list a{font-weight:700;text-decoration:none;overflow-wrap:anywhere}
.catalog-list a:hover{text-decoration:underline}
.catalog-list small{display:block;color:var(--muted)}
.paging{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem;margin-top:1rem}
.paging button:disabled{opacity:.65;cursor:default}
.details{display:grid;grid-template-columns:minmax(7rem,12rem) 1fr;margin:1rem 0;border-top:1px solid var(--line)}
.details dt,.details dd{margin:0;padding:.45rem 0;border-bottom:1px solid var(--line)}
.details dt{font-weight:700}
.details dd{overflow-wrap:anywhere}
.activity{border:1px solid var(--line);border-radius:.65rem;padding:1rem;background:var(--white);margin-top:1rem}
.activity legend{font-weight:700;padding-inline:.3rem}
.activity label{display:block;margin:.35rem 0}
.activity input{accent-color:var(--olive)}
.feedback{min-height:1.6em}
@media(max-width:760px){
 .masthead .wrap{min-height:0;align-items:flex-start;flex-direction:column;gap:.25rem;padding-block:.7rem .25rem}
 .masthead nav{column-gap:1rem}
 .masthead nav a{font-size:.91rem}
 .hero,.split{grid-template-columns:1fr}
 .hero{padding-block:2.25rem 1.8rem}
 .route-band a{padding:.75rem .45rem;grid-template-columns:1fr;justify-items:start;gap:.4rem}
 .route-band a svg{display:none}
 .route-band b{font-size:1rem}
 .filters{grid-template-columns:1fr}
}
@media print{
 .masthead,.footer,.actions,.skip{display:none!important}
 body{background:white;color:black}
 .reading,.page-head{padding-block:1rem}
}
