:root{
  --paper:#fbf7f0; --ink:#2b2622; --muted:#7a6e63; --accent:#b5532a; --accent-dark:#8a3c1c;
  --line:#e6dccd; --card:#fffdf9; --ochre:#d9a441;
  --serif: "Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,"Times New Roman",serif;
  --sans: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:19px;line-height:1.65;-webkit-text-size-adjust:100%}
a{color:var(--accent-dark)}
a:hover{color:var(--accent)}
.wrap{max-width:1100px;margin:0 auto;padding:0 22px}
.wrap.narrow{max-width:720px}
.site-head{background:#2f2520;color:#f5ead9;position:sticky;top:0;z-index:1000}
.site-head .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;height:52px}
.brand{color:#f5ead9;text-decoration:none;font-weight:bold;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.site-head nav a{color:#f1d9b8;text-decoration:none;font-family:var(--sans);font-size:15px;margin-left:18px}
.site-head nav a:hover{color:#fff}
.hero-band{padding:56px 0 28px;background:linear-gradient(180deg,#f3e3c8 0%,var(--paper) 100%);border-bottom:1px solid var(--line)}
.hero-band.small{padding:40px 0 24px}
.kicker{font-family:var(--sans);text-transform:uppercase;letter-spacing:.14em;font-size:13px;color:var(--accent);margin:0 0 8px}
h1{font-size:clamp(38px,6.5vw,68px);line-height:1.05;margin:0 0 14px;font-weight:700;letter-spacing:-.01em}
.subtitle{font-size:clamp(22px,3.2vw,34px);line-height:1.2;color:var(--accent-dark);margin:0 0 10px;font-weight:400}
.byline{font-family:var(--sans);text-transform:uppercase;letter-spacing:.14em;font-size:13px;color:var(--muted);margin:0 0 22px}
.lede{font-size:clamp(20px,2.4vw,25px);font-style:italic;color:#4a3f37;margin:0 0 18px;max-width:46em}
.facts{list-style:none;padding:0;margin:0 0 18px;display:flex;flex-wrap:wrap;gap:10px}
.facts li{background:var(--card);border:1px solid var(--line);border-radius:999px;padding:4px 14px;font-family:var(--sans);font-size:15px;color:#4a3f37}
.facts strong{color:var(--ink)}
.intro{max-width:44em;margin:0}
.map-section{padding:24px 0 8px}
#map{height:min(72vh,640px);min-height:380px;max-width:1100px;margin:0 auto;border:1px solid var(--line);border-radius:10px;box-shadow:0 2px 14px rgba(60,40,20,.10)}
@media (max-width:1140px){#map{border-radius:0;border-left:0;border-right:0}}
.map-note{font-family:var(--sans);font-size:13px;color:var(--muted);margin-top:8px}
.num-marker{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:var(--accent);color:#fff;font:700 11px/1 var(--sans);border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.35)}
.num-marker.wide{width:34px;border-radius:13px;margin-left:-4px;font-size:10px}
.num-marker.empty{background:#fff;color:var(--accent);border-color:var(--accent)}
.leaflet-marker-icon:hover .num-marker{background:var(--accent-dark)}
.pop{font-family:var(--serif);font-size:15px;line-height:1.35;min-width:170px}
.pop strong{display:block;margin-bottom:6px}
.pop img{display:block;max-width:144px;margin:4px 0 6px;border-radius:4px}
.pop a{font-family:var(--sans);font-size:14px;font-weight:600}
.stops{padding:24px 22px 48px}
.stops h2{font-size:28px;margin:12px 0 14px}
.stop-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:6px 18px}
.stop-list a{display:flex;align-items:baseline;gap:10px;text-decoration:none;color:var(--ink);padding:5px 4px;border-bottom:1px dotted var(--line)}
.stop-list a:hover{background:#f3e8d6}
.stop-list .n{font-family:var(--sans);font-weight:700;font-size:13px;color:var(--accent);min-width:2.6em}
.stop-list .p{flex:1}
.stop-list .dt{font-family:var(--sans);font-size:12px;color:var(--muted);white-space:nowrap}
.jump{display:flex;flex-wrap:wrap;gap:5px;margin-top:20px}
.jump a{font-family:var(--sans);font-size:12px;text-decoration:none;min-width:30px;text-align:center;padding:3px 5px;border:1px solid var(--line);border-radius:5px;background:var(--card);color:var(--ink)}
.jump a:hover{border-color:var(--accent);color:var(--accent)}


.day header{margin-bottom:18px}
.day h2{font-size:clamp(26px,3.6vw,34px);line-height:1.15;margin:0 0 6px}
.place{font-family:var(--sans);font-size:15px;color:var(--muted);margin:0}
.place .onmap{margin-left:10px;font-size:13px}
.entry p{margin:0 0 1em;hyphens:auto;overflow-wrap:break-word}
.entry p:first-child::first-letter{font-size:1.15em}
.no-entry{font-style:italic;color:var(--muted)}
.prevnext{display:flex;justify-content:space-between;align-items:center;gap:10px;font-family:var(--sans);font-size:14px;margin:26px 0 18px}
.prevnext a{text-decoration:none}
.prevnext .next{text-align:right}
.prevnext .top{color:var(--muted);font-size:12px}
.site-foot{padding:30px 0 40px;font-family:var(--sans);font-size:13px;color:var(--muted)}
@media (max-width:600px){
  body{font-size:18px}
  .site-head nav a{margin-left:12px;font-size:14px}
  .brand{font-size:15px}
  .hero{padding:34px 0 20px}
  .prevnext{font-size:13px}
  .prevnext .top{display:none}
}
@media print{
  body{background:#fff;font-size:11.5pt;line-height:1.5}
  .site-head,.jump,.prevnext,.onmap,.map-section,.site-foot,.stops{display:none}
  .hero-band{background:none;border:0;padding:0 0 12pt}
  .day{background:none!important;border:0;padding:14pt 0 0;break-inside:auto}
  .day header{break-after:avoid}
  a{color:inherit;text-decoration:none}
}

/* ---- day entries v2 ---- */
.day{padding:0 0 8px;border-bottom:1px solid var(--line);scroll-margin-top:52px;content-visibility:auto;contain-intrinsic-size:auto 1500px}
.hero{margin:0;max-width:1240px;margin:0 auto;padding-top:34px}
.hero-img{position:relative;aspect-ratio:16/8;max-height:620px;overflow:hidden;background:#e9dfcf;border-radius:10px}
.hero-img img{width:100%;height:100%;object-fit:cover;display:block}
.hero figcaption{font-family:var(--sans);font-size:12px;color:var(--muted);padding:7px 4px 0;display:flex;flex-wrap:wrap;gap:4px 12px;justify-content:space-between}
.hero figcaption .subj{font-style:italic;color:#5b4f45}
.hero figcaption a{color:var(--muted)}
@media (max-width:1280px){.hero{padding-left:14px;padding-right:14px}}
.day-wrap{max-width:1040px}
.day-head{margin:22px 0 18px;max-width:720px}
.day-head h2{font-size:clamp(30px,4.4vw,46px);line-height:1.08;margin:2px 0 8px;letter-spacing:-.01em}
.maptitle{font-family:var(--sans);font-size:13px;color:var(--muted);margin:0;letter-spacing:.02em}
.day-grid{display:grid;grid-template-columns:minmax(0,680px) 230px;gap:44px;align-items:start}
.entry p:first-of-type::first-letter{float:left;font-size:3.3em;line-height:.85;padding:6px 8px 0 0;color:var(--accent-dark);font-weight:700}
.inset{position:sticky;top:70px}
.minimap{width:100%;height:auto;display:block;background:#eef4f6;border:1px solid var(--line);border-radius:8px}
.minimap .land polygon{fill:#f3ead9;stroke:#c9b79c;stroke-width:1}
.minimap .route-all{fill:none;stroke:#b5532a;stroke-opacity:.22;stroke-width:1.6;stroke-dasharray:3 3}
.minimap .route-done{fill:none;stroke:#b5532a;stroke-width:2.6;stroke-linejoin:round;stroke-linecap:round}
.minimap .start{fill:#fff;stroke:#2f2520;stroke-width:1.5}
.minimap .here{fill:#b5532a;stroke:#fff;stroke-width:2}
.minimap .here-halo{fill:#b5532a;fill-opacity:.2}
.inset-cap{font-family:var(--sans);font-size:13px;color:var(--muted);margin:8px 2px 0;line-height:1.45}
.inset-cap strong{color:var(--ink);font-size:14px}
.stop-list .p small{display:block;font-size:13px;color:var(--muted);font-style:italic;line-height:1.3}
.nav-cur,.site-head nav a[aria-current]{color:#fff;text-decoration:underline;text-underline-offset:4px}
.narrow-wide{max-width:980px}
.credits h1{margin-top:36px}
.credit-table{width:100%;border-collapse:collapse;font-family:var(--sans);font-size:13px;margin:20px 0 40px}
.credit-table th,.credit-table td{text-align:left;vertical-align:top;padding:8px 6px;border-bottom:1px solid var(--line)}
.credit-table td a{word-break:break-word}
.credit-table img{border-radius:3px;display:block}
@media (max-width:820px){
  .day-grid{grid-template-columns:1fr;gap:0}
  .inset{position:static;order:-1;display:flex;gap:12px;align-items:center;margin:0 0 16px}
  .minimap{width:150px;flex:none}
  .hero-img{aspect-ratio:4/3;border-radius:6px}
}
@media print{
  .day{content-visibility:visible;break-before:page}
  .inset{position:static}
  .hero-img{max-height:9cm}
}
.pop .pt{display:block;font-family:var(--sans);font-size:12px;color:var(--muted);margin:-3px 0 6px}.pop img{max-width:200px}
.site-head nav{display:flex;white-space:nowrap}
@media (max-width:600px){
  .site-head .wrap{padding:0 14px;gap:10px}
  .brand{font-size:14px;min-width:0}
  .site-head nav a{margin-left:10px;font-size:13px}
}
@media (max-width:380px){.brand{max-width:42%}}
