/* Stories Under My Feet — design system
   Handwritten teal titles + orange underline · mono labels · warm cream · polaroid photos */
:root{
  --bg:#fbf7f0; --paper:#fffdf9; --ink:#2b2620; --muted:#8c8375; --line:#e8ded0;
  --teal:#2e7a66; --teal-dark:#245f50; --teal-soft:#e4efe9;
  --orange:#d2662f; --orange-soft:#f6e7d8; --orange-dark:#a8501f;
  --max:820px; --radius:12px;
  --font-hand:'Caveat', ui-rounded, cursive;
  --font-mono:'Space Mono', ui-monospace, monospace;
  --font-body:'Nunito Sans', system-ui, -apple-system, sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--font-body); line-height:1.7; font-size:1.02rem;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--orange); text-decoration:none}
.no-entry{color:var(--teal)}
a:hover{text-decoration:underline}

/* ---- labels / eyebrows / mono ---- */
.crumb, .kicker, .chips-label, .site-nav a, .progress, .map-note,
.info-table th, .footer-brand, .muted{
  font-family:var(--font-mono);
}
.kicker{text-transform:uppercase; letter-spacing:.12em; font-size:.72rem; color:var(--teal); margin:0}

/* ---- header ---- */
.site-header{
  display:flex; align-items:center; justify-content:space-between;
  gap:1rem; flex-wrap:wrap;
  padding:1rem 1.5rem; border-bottom:1px solid var(--line);
  background:var(--bg); position:sticky; top:0; z-index:500;
}
.brand{font-family:var(--font-hand); font-weight:700; font-size:1.7rem; color:var(--teal)}
.brand:hover{text-decoration:none; color:var(--teal-dark)}
.site-nav a{margin-left:1.1rem; font-size:.72rem; text-transform:uppercase;
  letter-spacing:.1em; color:var(--muted)}
.site-nav a:hover{color:var(--orange); text-decoration:none}

.wrap{max-width:var(--max); margin:0 auto; padding:2rem 1.5rem 4rem}

/* ---- headings ---- */
h1{font-family:var(--font-hand); font-weight:700; color:var(--teal);
  font-size:clamp(2.4rem,6vw,3.2rem); line-height:1.05; margin:.1em 0 .35em;
  display:inline-block; position:relative}
h1::after{content:""; display:block; height:12px; margin-top:.1em;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 14' preserveAspectRatio='none'><path d='M5 9 C 70 3 140 3 205 6 C 250 8 276 6 295 8' fill='none' stroke='%23d2662f' stroke-width='3.5' stroke-linecap='round'/></svg>") left center/100% 100% no-repeat}
h2{font-family:var(--font-hand); font-weight:600; color:var(--teal); font-size:1.9rem;
  line-height:1.15; margin:2.2rem 0 .5rem}
h3{font-family:var(--font-body); font-weight:700; font-size:1.1rem; margin:.2rem 0}
.kicker{margin-bottom:.2rem}

.hero-title{display:block; text-align:center; font-size:clamp(2.8rem,8vw,4rem); margin:1rem auto .3rem}
.hero-title::after{max-width:340px; margin:.1em auto 0}
.hero-desc{text-align:center; color:var(--muted); font-size:1rem; line-height:1.6;
  max-width:600px; margin:.2rem auto 1.4rem}
.hero-sub{text-align:center; color:var(--muted); font-size:1.15rem; max-width:620px;
  margin:0 auto .35rem}

.muted{color:var(--muted); font-size:.85em}
.kicker + h1{margin-top:.1em}

/* ---- breadcrumb ---- */
.crumb{font-size:.72rem; color:var(--muted); margin-bottom:.6rem; letter-spacing:.04em}
.crumb a{color:var(--muted)}
.crumb a:hover{color:var(--teal)}

/* ---- chips / cross-links ---- */
.chips{display:flex; flex-wrap:wrap; align-items:center; gap:.4rem; margin:.5rem 0}
.chips-label{font-size:.68rem; text-transform:uppercase; letter-spacing:.1em;
  color:var(--muted); margin-right:.3rem}
.chip{font-family:var(--font-body); font-size:.9rem; background:var(--orange-soft);
  color:var(--orange); padding:.15rem .7rem; border-radius:999px}
.chip a{color:var(--orange)}
.chip.tag{background:transparent; border:1px solid var(--line); font-family:var(--font-mono);
  font-size:.72rem; letter-spacing:.04em}
.chip.tag a{color:var(--orange)}

/* ---- prose ---- */
.prose{margin-top:1.6rem; font-size:1.06rem}
.prose h2{margin-top:2rem}
.prose strong{color:var(--teal-dark); font-weight:700}
.prose a{border-bottom:1px solid var(--orange-soft)}
.prose a:hover{border-bottom-color:var(--orange); text-decoration:none}
.prose img{max-width:100%; height:auto; border-radius:var(--radius); margin:1rem 0}
.prose blockquote{border-left:3px solid var(--orange); margin:1.4rem 0; padding:.3rem 1.2rem;
  color:var(--muted); font-style:italic; font-size:1.1rem}

/* ---- backlinks ---- */
.backlinks{margin-top:2.5rem; background:var(--paper); border:1px solid var(--line);
  border-radius:var(--radius); padding:1.1rem 1.4rem}
.backlinks h2{border:none; margin:.2rem 0 .6rem; font-size:1.5rem}
.backlinks ul{margin:0; padding-left:1.1rem}

/* ---- info table ---- */
.info-table{border-collapse:collapse; margin:1rem 0; font-size:.92rem}
.info-table th{text-align:left; color:var(--muted); font-weight:400; font-size:.8rem;
  text-transform:uppercase; letter-spacing:.04em; padding:.35rem 1.1rem .35rem 0; vertical-align:top}
.info-table td{padding:.35rem 0; font-family:var(--font-body)}

/* ---- lists / grid ---- */
.entry-list{list-style:none; padding:0}
.entry-list li{padding:.6rem 0; border-bottom:1px solid var(--line); font-size:1.05rem}
.grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:1rem; margin:1.5rem 0}
.nav-card{background:var(--paper); border:1px solid var(--line); border-radius:var(--radius);
  padding:1.1rem 1.3rem}
.nav-card h3{margin:.2rem 0; font-family:var(--font-hand); font-weight:600; font-size:1.5rem}
.nav-card h3 a{color:var(--teal)}
.nav-card p{margin:.2rem 0 0; color:var(--muted); font-size:.9rem}

/* ---- stat row (progress) ---- */
.progress{font-size:.85rem; color:var(--orange); letter-spacing:.04em}

/* ---- map ---- */
.map{border-radius:var(--radius); border:1px solid var(--line); margin:1rem 0; z-index:1}
.leaflet-container{background:var(--bg) !important}
.map-dot{background:var(--orange); border:2px solid #fff; border-radius:50%;
  box-shadow:0 1px 3px rgba(0,0,0,.35)}
.map-note{font-size:.8rem; margin-top:-.4rem; color:var(--muted)}
.map-legend{display:flex; flex-wrap:wrap; gap:1rem; margin:.4rem 0 .2rem;
  font-family:var(--font-mono); font-size:.72rem; color:var(--muted)}
.map-legend span{display:inline-flex; align-items:center; gap:.4rem}
.sw{width:14px; height:14px; border-radius:3px; display:inline-block; border:1px solid rgba(0,0,0,.08)}
.sw-teal{background:#2e7a66}
.sw-orange{background:#d2662f}
.sw-gray{background:#e8dfd0}
.muted-card{opacity:.6}
.muted-card h3{color:var(--muted)}

/* ---- photos: polaroid frames ---- */
.hero-photo{margin:1.4rem 0 .5rem; padding:8px; background:#fff; border-radius:14px;
  box-shadow:0 6px 22px rgba(60,45,30,.16); display:block; clear:both; max-width:100%}
.hero-img{width:100%; max-height:460px; object-fit:cover; border-radius:8px; display:block}
.gallery{display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr));
  gap:16px; margin:1.2rem 0}
.gallery .ph{padding:6px; background:#fff; border:0; cursor:pointer; border-radius:9px;
  box-shadow:0 4px 14px rgba(60,45,30,.15); transition:transform .18s ease, box-shadow .18s ease}
.gallery .ph:nth-child(odd){transform:rotate(-1.6deg)}
.gallery .ph:nth-child(even){transform:rotate(1.4deg)}
.gallery .ph:nth-child(3n){transform:rotate(.8deg)}
.gallery .ph:hover{transform:rotate(0) scale(1.04); box-shadow:0 10px 26px rgba(60,45,30,.24); z-index:2}
.gallery .thumb{width:100%; height:150px; object-fit:cover; display:block; border-radius:4px}

/* ---- lightbox ---- */
.lightbox{display:none; position:fixed; inset:0; z-index:1000;
  background:rgba(30,22,14,.92); align-items:center; justify-content:center; padding:2rem}
.lightbox img{max-width:88%; max-height:92%; object-fit:contain; border-radius:6px;
  box-shadow:0 8px 40px rgba(0,0,0,.5); cursor:pointer; background:#fff; padding:8px}
.lb-btn{position:absolute; background:rgba(0,0,0,.35); color:#fff; border:none; cursor:pointer;
  display:flex; align-items:center; justify-content:center; font-family:var(--font-body);
  line-height:1; transition:background .15s ease}
.lb-btn:hover{background:var(--orange)}
.lb-prev,.lb-next{top:50%; transform:translateY(-50%); width:52px; height:72px; font-size:2rem; border-radius:8px}
.lb-prev{left:16px}
.lb-next{right:16px}
.lb-close{top:16px; right:16px; width:44px; height:44px; font-size:1.8rem; border-radius:50%}
@media (max-width:600px){
  .lb-prev,.lb-next{width:40px; height:56px; font-size:1.5rem}
  .lb-prev{left:6px} .lb-next{right:6px}
  .lightbox img{max-width:98%}
}

.broken-link{color:#b23; border-bottom:1px dotted #b23; cursor:help}

/* ---- lead paragraph (index intros) ---- */
.lead{font-size:1.12rem; color:var(--muted); max-width:640px; margin:.2rem 0 1.6rem}

/* ---- stats row (parks) ---- */
.stat-row{display:flex; flex-wrap:wrap; gap:1rem; margin:1.6rem 0}
.stat{background:var(--paper); border:1px solid var(--line); border-radius:12px;
  padding:1rem 1.3rem; min-width:130px}
.stat-num{font-family:var(--font-hand); font-weight:700; color:var(--orange); font-size:2.4rem; line-height:1}
.stat-lab{font-family:var(--font-mono); font-size:.68rem; text-transform:uppercase;
  letter-spacing:.08em; color:var(--muted); margin-top:.3rem}

/* ---- park directory (expandable) ---- */
.park-list{margin:1rem 0}
.park{border-bottom:1px solid var(--line)}
.park > summary{list-style:none; cursor:pointer; display:flex; align-items:center;
  gap:.8rem; padding:.85rem .2rem}
.park > summary::-webkit-details-marker{display:none}
.park > summary:hover{background:rgba(46,122,102,.04)}
.pk-badge{flex:none; min-width:2.6ch; text-align:center; font-family:var(--font-mono);
  font-size:.72rem; font-weight:700; color:var(--muted); border:1px solid var(--line);
  border-radius:8px; padding:.35rem .5rem}
.pk-name{font-family:var(--font-body); font-weight:600; color:var(--teal); font-size:1.02rem;
  line-height:1.3; flex:1 1 auto; text-decoration:none}
a.pk-name{color:var(--orange)}
a.pk-name:hover{text-decoration:underline}
.pk-est{font-style:italic; color:var(--muted); font-size:.9rem; white-space:nowrap}
.np-hero{display:flex; align-items:center; gap:1.4rem; margin:.25rem 0 1.1rem; flex-wrap:wrap}
.np-hero .stat-row{flex:1 1 auto; margin:0}
.np-stamp{flex:none; display:block; width:118px; height:auto}
/* Light deterrent against casual image saving (not real protection — see note) */
img{-webkit-user-drag:none; -khtml-user-drag:none; -moz-user-drag:none; user-drag:none;
  -webkit-touch-callout:none; -webkit-user-select:none; user-select:none}
.pk-flag{height:1em; width:auto; margin-right:.4em; vertical-align:-2px; border-radius:2px;
  box-shadow:0 0 0 1px rgba(60,45,30,.18)}
.pk-state{flex:none; display:inline-flex; align-items:center; white-space:nowrap;
  font-family:var(--font-body); font-weight:600; font-size:.9rem; color:var(--teal-dark)}
.pk-state-name{font-size:.9rem}
.pk-chip.loc .pk-flag{height:.95em; margin-right:.3em}
/* Passport books behind the stamps */
.passport-books{list-style:none; margin:1rem 0 .4rem; padding:0; display:flex;
  flex-direction:column; gap:1.1rem}
.passport-books li{display:flex; gap:1rem; align-items:flex-start}
.pbook-cover{flex:none; width:64px; height:94px; position:relative; display:inline-block;
  background:var(--orange-soft); overflow:hidden; border:1px solid var(--orange);
  border-radius:3px; box-shadow:0 1px 5px rgba(60,45,30,.28)}
.pbook-cover .media-cover-img{position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; display:block; background:var(--orange-soft)}
.pbook-cover .media-cover-txt{position:absolute; inset:0; display:flex; align-items:center;
  padding:5px; font-size:.56rem; line-height:1.2; font-weight:600; color:var(--orange-dark);
  overflow:hidden}
.pbook-text{min-width:0}
.pbook-title{font-weight:700; color:var(--teal-dark)}
.pbook-note{margin:.35rem 0 .4rem; color:var(--ink); font-size:.96rem; line-height:1.55}
.pbook-buy{margin:0}
.h2-sub{font-family:var(--font-mono); font-size:.6rem; text-transform:uppercase;
  letter-spacing:.08em; color:var(--muted); font-weight:400; margin-left:.35rem}
a.pk-chip{text-decoration:none}
a.pk-chip:hover{text-decoration:underline}
.pk-caret{color:var(--muted); transition:transform .18s ease; margin-left:.2rem}
.park[open] > summary .pk-caret{transform:rotate(180deg)}
.pend{font-family:var(--font-mono); font-size:.62rem; text-transform:uppercase;
  letter-spacing:.06em; color:var(--orange); border:1px solid var(--orange-soft);
  border-radius:999px; padding:.1rem .55rem; white-space:nowrap}
.pk-body{padding:.2rem .2rem 1.3rem 3.6rem}
.pk-grid{display:grid; grid-template-columns:minmax(0,220px) minmax(0,1fr); gap:1.5rem 2.5rem}
.pk-field{margin-bottom:.9rem}
.pk-label{display:block; font-family:var(--font-mono); font-size:.66rem; text-transform:uppercase;
  letter-spacing:.1em; color:var(--teal); margin-bottom:.35rem}
.pk-chips{display:flex; flex-wrap:wrap; gap:.4rem}
.pk-chip{font-family:var(--font-mono); font-size:.72rem; letter-spacing:.03em;
  padding:.2rem .6rem; border-radius:7px; border:1px solid transparent}
.pk-chip.loc, .pk-chip.person{background:var(--teal-soft); color:var(--teal)}
a.pk-chip.loc, a.pk-chip.person{background:var(--orange-soft); color:var(--orange)}
.pk-chip.year{color:var(--teal); border-color:var(--teal-soft); background:transparent}
.pk-overview{margin:0; color:var(--ink); font-size:1.02rem; line-height:1.65}
.pk-over .pk-overview a{color:var(--orange)}
@media (max-width:640px){
  .pk-body{padding-left:.2rem}
  .pk-grid{grid-template-columns:1fr; gap:1rem}
}

.park-note{margin-top:1.5rem; font-size:.95rem}
.park-note p{color:var(--muted)}

/* ---- countries & regions log ---- */
.country-log{list-style:none; padding:0; margin:1rem 0; counter-reset:cl}
.country-log li{display:flex; align-items:baseline; gap:.6rem; padding:.45rem 0;
  border-bottom:1px solid var(--line)}
.country-log li::before{counter-increment:cl; content:counter(cl);
  font-family:var(--font-mono); font-size:.72rem; color:var(--muted); min-width:2.2ch; text-align:right}
.cl-flag{font-size:1.1rem; min-width:1.6rem}
.cl-flagimg{width:1.15rem; height:1.15rem; border-radius:50%; vertical-align:-3px; object-fit:cover}
.cl-name{font-weight:600; flex:1}
.cl-years{font-family:var(--font-mono); font-size:.78rem; color:var(--orange)}

/* ---- year-based timeline ---- */
.timeline{margin:1.5rem 0; padding-left:.2rem}
.tl-decade{font-family:var(--font-mono); font-weight:700; font-size:.78rem; letter-spacing:.14em;
  color:var(--ink); margin:1.9rem 0 .5rem 0; padding-left:0;
  display:flex; align-items:center; gap:.9rem}
.tl-decade::before{content:""; width:1.4rem; height:2px; background:var(--orange)}
.tl-decade::after{content:""; flex:1; height:2px; background:var(--line)}
.timeline > .tl-decade:first-child{margin-top:.2rem}
.tl-row{display:flex; gap:.7rem; padding:.4rem 0 1.1rem 1.1rem; position:relative; align-items:flex-start}
.tl-year{font-family:var(--font-body); font-weight:700; color:var(--teal);
  font-size:1.05rem; line-height:1.25; min-width:4ch; position:relative}
.tl-year::before{content:""; position:absolute; left:-1.1rem; top:50%; transform:translateY(-50%);
  width:11px; height:11px; border-radius:50%; background:#c3e2d9; border:2px solid var(--bg)}
.tl-events{display:flex; flex-direction:column; gap:.5rem; flex:1}
.tl-ev{display:flex; align-items:center; gap:.7rem}
.tl-when{font-family:var(--font-body); font-size:.72rem; color:var(--muted);
  min-width:3rem; flex:none; text-align:left}
.tl-event{font-family:var(--font-body); font-size:1rem; font-weight:600; color:var(--orange); line-height:1.25}
.tl-event:hover{color:var(--orange); text-decoration:underline}

/* ---- home "Latest" + journal off-the-map list ---- */
.latest-head{font-family:var(--font-hand); color:var(--teal); font-size:2rem; margin:.4rem 0 .5rem}
.latest{display:grid; grid-template-columns:1fr; gap:1rem; margin:0 0 2rem}
@media(min-width:640px){.latest{grid-template-columns:repeat(3,1fr)}}
.latest-card{display:flex; flex-direction:column; border:1px solid var(--line);
  border-radius:16px; overflow:hidden; background:var(--paper); text-decoration:none;
  box-shadow:0 3px 14px rgba(60,45,30,.07); transition:transform .15s, box-shadow .15s}
.latest-card:hover{transform:translateY(-3px); box-shadow:0 10px 24px rgba(60,45,30,.14)}
.latest-thumb{display:block; height:132px; background-size:cover; background-position:center;
  background-color:var(--teal-soft)}
.latest-thumb--text{display:flex; align-items:center; justify-content:center;
  background:var(--orange-soft); padding:10px; text-align:center}
.latest-thumb--text span{font-family:var(--font-hand); color:var(--orange); font-size:1.7rem;
  line-height:1.05}
.latest-body{padding:.7rem .95rem 1rem; display:flex; flex-direction:column; gap:.15rem}
.latest-kicker{font-family:var(--font-mono); font-size:.6rem; text-transform:uppercase;
  letter-spacing:.12em; color:var(--muted)}
.latest-title{font-family:var(--font-hand); color:var(--teal); font-size:1.55rem; line-height:1.05}
.latest-excerpt{color:var(--ink); font-size:.86rem; line-height:1.45; margin-top:.15rem;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden}
.jrnl-offmap{list-style:none; padding:0; margin:1.4rem 0 0}
.jrnl-offmap li{padding:.35rem 0; display:flex; align-items:baseline; gap:.6rem; flex-wrap:wrap;
  font-size:.98rem}
.pill-tag{font-family:var(--font-mono); font-size:.6rem; text-transform:uppercase;
  letter-spacing:.1em; color:var(--muted); border:1px solid var(--line); border-radius:999px;
  padding:.08rem .5rem; white-space:nowrap}

/* ---- books & media refs + affiliate disclosure ---- */
.media-refs{margin-top:1.8rem; padding-top:1.1rem; border-top:1px solid var(--line)}
.media-label{font-family:var(--font-mono); text-transform:uppercase; letter-spacing:.1em;
  font-size:.68rem; color:var(--teal); margin:0 0 .45rem}
.media-refs ul{list-style:none; padding:0; margin:0}
.media-refs li{display:flex; align-items:center; gap:.75rem; padding:.35rem 0;
  font-size:.95rem; line-height:1.4}
.media-cover{width:46px; height:67px; object-fit:cover; border-radius:3px; flex:none;
  box-shadow:0 1px 5px rgba(60,45,30,.28)}
.media-cover--ph{position:relative; display:inline-block; background:var(--orange-soft);
  overflow:hidden; border:1px solid var(--orange)}
.media-cover-img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  display:block; background:var(--orange-soft)}
.media-cover-txt{position:absolute; inset:0; display:flex; align-items:center;
  padding:4px; font-size:.52rem; line-height:1.2; font-weight:600;
  color:var(--orange-dark); overflow:hidden}
.media-text{min-width:0}
.media-title{font-weight:600}
.buy-amazon{white-space:nowrap}
.affiliate-disclosure{margin:1.8rem 0 0; font-size:.75rem; color:var(--muted); font-style:italic}

/* ---- journal entry: reference footer (related entries + tags) ---- */
.entry-meta{margin-top:2.4rem; padding-top:1.2rem; border-top:1px solid var(--line)}
.entry-meta .chips{margin:.3rem 0}

/* ---- trip page: highlight, route map, indexed "where I visited" ---- */
.trip-highlight{font-size:1.08rem; line-height:1.6; color:var(--ink); margin:.6rem 0 1.4rem;
  padding-left:1rem; border-left:3px solid var(--orange)}
.route-map{background:var(--bg) !important; border:1px solid var(--line); border-radius:8px}
.leaflet-tooltip.state-label{background:transparent !important; border:none !important;
  box-shadow:none !important; color:var(--ink); font-family:var(--font-body);
  font-weight:700; font-size:.72rem; padding:0;
  text-shadow:0 0 3px #fff, 0 0 3px #fff, 0 1px 2px #fff}
.leaflet-tooltip.state-label::before{display:none !important}
.route-pin{background:var(--orange) !important; border:2px solid #fff !important;
  border-radius:50%; color:#fff; display:flex !important; align-items:center;
  justify-content:center; font-family:var(--font-mono); font-weight:700; font-size:.78rem;
  box-shadow:0 1px 3px rgba(0,0,0,.35)}
.wiv-head{font-family:var(--font-hand); font-weight:700; color:var(--teal);
  font-size:2.1rem; margin:2.2rem 0 .5rem}
.wiv-state{font-family:var(--font-body); font-weight:700; font-size:1.1rem;
  margin:1.1rem 0 .2rem; scroll-margin-top:80px}
.wiv-list{list-style:none; padding-left:1.6rem; margin:.2rem 0 1rem}
.wiv-list li{display:flex; align-items:baseline; gap:.7rem; padding:.2rem 0; line-height:1.4}
.wiv-num{flex:none; display:inline-flex; align-items:center; justify-content:center;
  min-width:1.5rem; height:1.5rem; background:var(--orange); color:#fff; border-radius:50%;
  font-family:var(--font-mono); font-size:.72rem; font-weight:700; transform:translateY(.15rem)}

/* ---- person card: simplified header ---- */
.person-dates{font-family:var(--font-mono); color:var(--muted); font-size:.95rem;
  letter-spacing:.06em; margin:.1rem 0 .7rem}
.person-known{margin:0 0 1.2rem; color:var(--ink); line-height:1.5}
.person-known .pk-lab{font-family:var(--font-mono); text-transform:uppercase;
  letter-spacing:.1em; font-size:.68rem; color:var(--teal); margin-right:.55rem}

/* ---- state page: two-column layout ---- */
.state-title{display:flex; align-items:center; gap:.6rem}
.state-flag{height:2.55rem; width:auto; border:1px solid var(--line); border-radius:3px;
  box-shadow:0 1px 2px rgba(0,0,0,.08); flex:none}
.state-flag-sm{height:.95em; width:auto; vertical-align:-0.12em; margin-right:.45rem;
  border:1px solid var(--line); border-radius:2px}
.state-sub{text-align:center; font-style:italic; color:var(--muted); font-size:1.15rem;
  max-width:620px; margin:.1rem auto 1.2rem}
.state-grid{display:grid; grid-template-columns:1fr 1fr; gap:2rem 3rem; margin-top:1.6rem}
.st-sec{margin-bottom:1.7rem}
.st-lab{font-family:var(--font-mono); text-transform:uppercase; letter-spacing:.12em;
  font-size:.72rem; color:var(--teal); margin:0 0 .55rem}
.st-list{list-style:none; padding:0; margin:0}
.st-list li{padding:.16rem 0; padding-left:1rem; position:relative; line-height:1.4}
.st-list li::before{content:"—"; position:absolute; left:0; color:var(--muted)}
.st-list a{color:var(--orange)}
.st-list a:hover{color:var(--orange-dark); text-decoration:underline}
.st-region{font-family:var(--font-body); font-weight:700; font-size:.82rem; color:var(--ink);
  margin:.7rem 0 .2rem}
.st-grouped .st-region:first-child{margin-top:0}
.state-index{columns:2; column-gap:2rem}
@media (max-width:640px){ .state-grid{grid-template-columns:1fr; gap:0} .state-index{columns:1} }

/* ---- footer ---- */
.site-footer{border-top:1px solid var(--line); padding:2.5rem 1.5rem; text-align:center;
  color:var(--muted); margin-top:2rem}
.site-footer p:first-child{font-family:var(--font-hand); color:var(--teal); font-size:1.6rem; margin:0}
.footer-brand{font-size:.72rem; text-transform:uppercase; letter-spacing:.1em; margin:.4rem 0 0}
.footer-links{margin:.8rem 0 0}
.footer-links a{font-family:var(--font-mono); font-size:.72rem; text-transform:uppercase;
  letter-spacing:.08em; color:var(--muted)}
.footer-links a:hover{color:var(--orange)}
