/* Our Town Almanac: walking tour + road trip pages (v14.1). Loaded after /assets/style.css on those pages only.
   Uses the live site palette (no redesign). Tour-only variables below map to existing site colors. No inline styles (CSP style-src 'self'). */
:root{--card:#fffaf0;--line-strong:#897650;--focus:#2b2318;--town:var(--accent);--town-dark:var(--accent-dark);--town-tint:var(--paper2);
 --b-gem:#5e3d6e;--b-gem-bg:#f3ecf5;--b-photo:#24527a;--b-photo-bg:#e8eff5}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.arrive a:focus-visible,.arrive button:focus-visible{outline-color:#fff}
.tour-intro{font-size:1.05em}
.tour-facts{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0;padding:0;list-style:none}
.tour-facts li{background:var(--paper2);border:1px solid var(--rule);padding:6px 10px;font:14px/1.3 system-ui,sans-serif}
.tour-facts strong{display:block;font-size:17px;color:var(--town-dark)}
.note{background:#fffaf0;border:1px solid var(--rule);border-left:4px solid var(--muted);padding:8px 12px;margin:10px 0;font-size:.95em}
.start-here{background:var(--town-tint);border:2px solid var(--town);padding:10px 12px;margin:12px 0}
.start-here h3{margin:0 0 4px}
#map{height:62vh;min-height:320px;max-height:560px;border:1px solid var(--rule);margin:8px 0 4px;background:#e8e0c8}
.map-help{font:13px/1.4 system-ui,sans-serif;color:var(--muted);margin:0 0 12px}
.filters{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.filters button{font:600 14px system-ui,sans-serif;padding:8px 12px;border:2px solid var(--line-strong);background:var(--card);color:var(--ink);border-radius:22px;cursor:pointer;min-height:44px}
.filters button[aria-pressed="true"]{background:var(--town);color:#fff;border-color:var(--town)}
ol.stops{list-style:none;margin:0;padding:0}
ol.stops>li{margin:0 0 14px}
.stop{background:var(--card);border:1px solid var(--rule);padding:12px;scroll-margin-top:12px}
.stop.is-active{border-color:var(--town);box-shadow:0 0 0 2px var(--town)}
.stop h3{margin:0 0 4px;font-size:1.15em;display:flex;gap:8px;align-items:flex-start}
.stop h3 button{all:unset;cursor:pointer;color:var(--ink)}
.stop h3 button{min-height:44px;display:inline-flex;align-items:center}
.stop h3 button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.num{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--town);color:#fff;font:700 14px system-ui,sans-serif;margin-top:8px}
.badges{display:flex;flex-wrap:wrap;gap:4px;margin:4px 0 6px}
.badges .badge{display:inline-flex;align-items:center;gap:5px;font-size:12px;letter-spacing:.05em;border-radius:20px;padding:4px 9px;background:var(--paper2);color:var(--ink);border:1px solid var(--line-strong)}
.badge.gem{background:var(--b-gem-bg);color:var(--b-gem);border-color:var(--b-gem)}
.badge.photo{background:var(--b-photo-bg);color:var(--b-photo);border-color:var(--b-photo)}
.badge.priv{background:var(--card);color:var(--ink)}
.badge.cem{background:var(--paper2);color:var(--ink);border-color:var(--line-strong)}
.badge.start{background:var(--town-tint);color:var(--town-dark);border-color:var(--town)}
.badge.gem::before{content:"\25C6";content:"\25C6"/""}
.badge.photo::before{content:"\25CE";content:"\25CE"/""}
.badge.start::before{content:"\25B6\FE0E";content:"\25B6\FE0E"/"";font-size:10px}
.why{font-style:italic;margin:4px 0}
.gem-hook,.photo-tip{font-size:.95em;margin:6px 0;padding:6px 8px;background:var(--paper)}
.meta{font:14px/1.45 system-ui,sans-serif;color:var(--muted);margin:6px 0}
.stop figure{margin:8px 0}
.stop img{width:100%;height:auto;max-width:600px;display:block;border:1px solid var(--rule)}
.stop figcaption{font:13px/1.35 system-ui,sans-serif;color:var(--muted)}
.feat{font-size:.95em;padding-left:18px}
.feat li{margin:4px 0}
.dir-link{display:inline-flex;align-items:center;min-height:44px;margin:6px 8px 0 0;font:600 14px system-ui,sans-serif;padding:0 12px;border:2px solid var(--accent);border-radius:6px;text-decoration:none;color:var(--accent);background:var(--card)}
.nearby{font:14px/1.4 system-ui,sans-serif}
.srcs{font:13px/1.4 system-ui,sans-serif}
.srcs summary{cursor:pointer;color:var(--link);min-height:44px;display:flex;align-items:center}
.leg{font:13px system-ui,sans-serif;color:var(--muted);margin:-6px 0 12px 36px}
.stop.hide,.leg.hide,.along.hide{display:none}
.pin{background:var(--town);color:#fff;border:2px solid #fff;border-radius:50%;font:700 13px/24px system-ui,sans-serif;text-align:center;box-shadow:0 1px 3px rgba(0,0,0,.5)}
.pin.is-active{background:var(--town-dark);color:#fff;box-shadow:0 0 0 3px #fff,0 0 0 5px var(--town-dark)}
.pin.dim{opacity:.35}
.pin-start{background:var(--town-tint);color:var(--town-dark);border:2px solid var(--town-dark);border-radius:4px;font:700 11px/18px system-ui,sans-serif;text-align:center;white-space:nowrap}
.pin-drive{background:#fff;color:var(--town-dark);border:2px solid var(--town);border-radius:50%;font:700 12px/20px system-ui,sans-serif;text-align:center}
.drive{display:grid;gap:10px;grid-template-columns:1fr}
.drive .card{margin:0}
.versions{display:grid;gap:10px;grid-template-columns:1fr}
table.std{border-collapse:collapse;width:100%;font:14px/1.4 system-ui,sans-serif}
table.std th,table.std td{border:1px solid var(--rule);padding:6px;vertical-align:top;text-align:left}
.ft-stop{border:1px solid var(--rule);padding:10px;margin:10px 0;background:var(--card);break-inside:avoid}
.ft-stop dl{display:grid;grid-template-columns:1fr;gap:2px;margin:6px 0;font:14px/1.4 system-ui,sans-serif}
.ft-stop dt{font-weight:700}
.ft-stop dd{margin:0 0 4px}
.hunt li{margin:6px 0}
.blank{display:inline-block;min-width:10em;border-bottom:1px solid var(--ink)}
.answers{font-size:.95em}
.print-btn{font:600 14px system-ui,sans-serif;padding:0 14px;min-height:44px;border:2px solid var(--accent);background:var(--accent);color:#fff;border-radius:6px;cursor:pointer}
@media (min-width:760px){.drive,.versions{grid-template-columns:1fr 1fr}.tour-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:18px;align-items:start}.tour-layout #map{position:sticky;top:10px;height:80vh;max-height:none}.ft-stop dl{grid-template-columns:11em 1fr}}
@media print{
 .natbar,.mainnav,.sitefoot .footlinks,.no-print,#map,.filters,.dir-link{display:none!important}
 body{background:#fff;font-size:11pt}
 .wrap{max-width:none;padding:0}
 a{color:#000;text-decoration:none}
 .ft-stop,.card,section{break-inside:avoid}
 .page-break{break-before:page}
 .masthead{border:0;padding:0}
}
.player{margin:8px 0}
.player button,.audio-tour button,.arrive button{font:600 14px system-ui,sans-serif;padding:0 14px;min-height:44px;border:2px solid var(--town);background:#fff;color:var(--town-dark);border-radius:22px;cursor:pointer;margin:4px 6px 4px 0}
.player .listen{background:var(--town);color:#fff}
.player button:hover,.audio-tour button:hover{background:var(--town-tint)}
.player .listen:hover{background:var(--town-dark)}
.pl-body{border:1px solid var(--rule);padding:8px;margin-top:6px;background:#fff}
.pl-body audio,.audio-tour audio{width:100%;margin:6px 0}
.transcript{font-size:.95em;border-top:1px solid var(--rule);margin-top:6px;padding-top:6px}
.transcript h4{margin:0 0 4px;font:700 14px system-ui,sans-serif}
.arrive{position:sticky;top:0;z-index:1000;background:var(--town-dark);color:#fff;padding:10px 12px;margin:8px 0}
.arrive a{color:#fff}
.arrive p{margin:0 0 6px}
.checkin{background:#fff;cursor:pointer}
.checkin-msg{margin:2px 0}
.leaflet-touch .leaflet-bar.leaflet-control-zoom a,.leaflet-control-zoom a{width:44px;height:44px;line-height:44px}
.leaflet-container a.leaflet-popup-close-button{width:44px;height:44px;font-size:24px;line-height:44px;color:var(--ink)}
.leaflet-popup-content a{display:inline-flex;align-items:center;min-height:44px}
.dir-link.checkin{border-color:var(--town);color:var(--town-dark);background:#fff;cursor:pointer}
.dir-link.checkin:hover{background:var(--town-tint)}
.leaflet-container .leaflet-popup-content a,.leaflet-container .leaflet-control-attribution a{color:var(--link)}

.leaflet-touch .leaflet-bar.leaflet-control-zoom a,.leaflet-control-zoom a{width:44px;height:44px;line-height:44px}
.leaflet-container a.leaflet-popup-close-button{width:44px;height:44px;font-size:24px;line-height:44px;color:var(--ink)}
.leaflet-popup-content a{display:inline-flex;align-items:center;min-height:44px}
.dir-link.checkin{border-color:var(--town);color:var(--town-dark);background:#fff;cursor:pointer}
.dir-link.checkin:hover{background:var(--town-tint)}
.leaflet-container .leaflet-popup-content a,.leaflet-container .leaflet-control-attribution a{color:var(--link)}
.fix-link{font:14px/1.4 system-ui,sans-serif;margin:8px 0 0}
.fix-link a{display:inline-flex;align-items:center;min-height:44px}
/* road trips */
.rt-ctl{display:flex;flex-wrap:wrap;gap:8px 16px;margin:8px 0 12px;font:15px system-ui,sans-serif;align-items:center}
.rt-ctl label{display:inline-flex;align-items:center;gap:6px;min-height:44px}
.rt-ctl select{font:inherit;min-height:44px}
.rt-routes{display:grid;gap:14px;grid-template-columns:1fr}
.rt-route{background:var(--card);border:1px solid var(--rule);padding:12px;scroll-margin-top:12px}
.rt-route h2{margin:0 0 4px}
.rt-meta{font:600 15px system-ui,sans-serif;color:var(--accent-dark);margin:4px 0}
.rt-roads{font:14px/1.45 system-ui,sans-serif;color:var(--muted)}
.rt-stop{border-top:1px solid var(--rule);padding:10px 0}
.rt-stop h3{margin:0 0 4px;font-size:1.05em}
.rt-stop figure{margin:6px 0}
.rt-stop img{width:100%;max-width:480px;height:auto;display:block;border:1px solid var(--rule)}
.rt-stop figcaption,.rt-facts,.rt-src{font:13px/1.4 system-ui,sans-serif;color:var(--muted)}
.rt-src a{color:var(--link)}
.rt-check{font:14px/1.4 system-ui,sans-serif;background:var(--paper2);border-left:4px solid var(--accent);padding:6px 8px;margin:6px 0}
.rt-tip{font-size:.95em;margin:6px 0;padding:6px 8px;background:var(--paper)}
.badge.best{background:var(--ink);color:#fff;border-color:var(--ink)}
.badge.kids{background:#e9f1e4;color:#2c5326;border-color:#2c5326}
.rt-next{display:grid;gap:12px;grid-template-columns:1fr}
.rt-safety{background:#fff6e5;border:1px solid #e3c98a;padding:10px 12px;margin:10px 0;font-size:.95em}
.rt-out{border-top:1px solid var(--rule);padding:8px 0}
.next-town ul{margin:6px 0 0;padding-left:18px}
@media (min-width:900px){.rt-routes{grid-template-columns:1fr 1fr}.rt-next{grid-template-columns:repeat(4,1fr)}}
#rt-map{height:60vh;min-height:320px;max-height:560px;border:1px solid var(--rule);margin:8px 0 4px;background:#e8e0c8}
.get-to-know p{margin:6px 0}
.rt-ctl label{flex-wrap:wrap;max-width:100%}
.rt-ctl select{max-width:calc(100vw - 110px)}
