:root{
  --ink:#151d2b; --ink-soft:#4a5568; --paper:#f6f5f1; --panel:#fff;
  --line:#e2ded4; --teal:#0E8E8B; --teal-deep:#0a6b69; --amber:#C98A12;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;
  --sans:-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box;margin:0}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.5}
main,.phdr,.pfoot{max-width:860px;margin:0 auto;padding:0 24px}
.phdr{padding-top:26px;padding-bottom:20px}
.back{display:inline-block;font-size:13px;font-weight:700;color:var(--teal-deep);
  text-decoration:none;margin-bottom:16px}
.back:hover{text-decoration:underline}
.eyebrow{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--teal-deep);
  font-weight:700;margin-bottom:5px}
h1{font-family:var(--serif);font-weight:600;font-size:clamp(25px,4vw,36px);letter-spacing:-.01em;line-height:1.15}
.sub{margin-top:10px;color:var(--ink-soft);font-size:15px}
h2{font-family:var(--serif);font-size:21px;font-weight:600;margin:28px 0 10px;
  border-bottom:2px solid var(--ink);padding-bottom:5px}
h3{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);margin:18px 0 7px}
.elist{list-style:none;padding:0;display:flex;flex-direction:column;gap:12px}
.elist li{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px 16px}
.etop{font-size:16px}
.etop strong{font-family:var(--serif);font-weight:600;font-size:18px}
.adap{display:inline-block;background:#f2ecfa;color:#5f3b86;border:1px solid #d9c8ee;
  border-radius:99px;padding:2px 9px;font-size:11px;font-weight:700;vertical-align:2px}
.battlebadge{display:inline-block;margin-left:6px;color:#0a6b69;background:#eef8f7;border:1px solid #b9d8d5;
  border-radius:99px;padding:2px 9px;font-size:11px;font-weight:700;vertical-align:2px}
.battleinfo{margin-top:8px;padding:9px 10px;border:1px solid #b9d8d5;border-radius:8px;background:#eef8f7;
  color:#315b5a;font-size:12px;line-height:1.45}
.battleinfo a{color:#0a6b69;font-weight:700;text-decoration:none}
.battleinfo a:hover{text-decoration:underline}
.edate{font-weight:700;color:var(--teal-deep);font-size:14px;margin-top:6px}
.emeta{font-size:12.5px;color:var(--ink-soft);margin-top:3px}
.enote{font-size:12.5px;color:var(--ink-soft);margin-top:6px}
.elink{margin-top:8px}
.elink a{color:var(--teal-deep);font-size:12.5px;font-weight:700;text-decoration:none}
.elink a:hover{text-decoration:underline}
.cta{margin:26px 0}
.btn{display:inline-block;background:var(--ink);color:#fff;text-decoration:none;
  border-radius:8px;padding:11px 19px;font-size:14px;font-weight:700}
.btn:hover{background:var(--teal-deep)}
.cols3{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:3px 18px}
.cols3 li{font-size:13.5px;padding:3px 0}
.cols3 a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line)}
.cols3 a:hover{color:var(--teal-deep);border-color:var(--teal)}
.cols3 span{color:#b6b0a3;font-size:11.5px;margin-left:4px}
.pfoot{margin-top:40px;padding-top:18px;padding-bottom:40px;border-top:1px solid var(--line);
  font-size:12px;color:var(--ink-soft)}
.pfoot p+p{margin-top:8px}
.pfoot a{color:var(--teal-deep);font-weight:700;text-decoration:none}
.sform{max-width:620px}
.sform h2{font-size:16px;margin:26px 0 12px}
.f{display:block;margin-bottom:16px}
.f>span{display:block;font-size:12px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;
  color:var(--ink-soft);margin-bottom:6px}
.f>span em{font-style:normal;color:var(--amber);letter-spacing:.04em}
.f input,.f textarea,.f select{display:block;width:100%;padding:10px 12px;border:1px solid var(--line);
  border-radius:7px;font-size:14.5px;font-family:var(--sans);color:var(--ink);background:#fdfdfb}
.f textarea{line-height:1.5}
.f input:focus,.f textarea:focus,.f select:focus{outline:2px solid var(--teal);border-color:var(--teal)}
.f small{display:block;margin-top:5px;font-size:12px;color:var(--ink-soft);line-height:1.45}
.fc{display:flex;gap:9px;align-items:flex-start;background:#fff;border:1px solid var(--line);
  border-radius:8px;padding:12px 14px;margin-bottom:16px;cursor:pointer}
.fc input{margin-top:2px;width:16px;height:16px;flex:none}
.fc span{font-size:14px;font-weight:600}
.note{background:var(--ink);color:#c3ccdb;border-radius:10px;padding:15px 17px;font-size:13.5px;
  line-height:1.55;margin-bottom:14px}
.hp{position:absolute;left:-9999px}
.fine{font-size:12px;color:var(--ink-soft);margin-top:12px}
.review-note{max-width:700px;background:#e8f4f3;color:#0a4b4a;border:1px solid #bfdedc;
  border-left:4px solid var(--teal);border-radius:10px;padding:16px 18px;margin:0 0 24px;
  font-size:13.5px;line-height:1.55}
.review-note strong{color:#083f3e}
.review-form{max-width:700px}
.rating-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}
.review-attest{border-color:#9dcfca;background:#edf8f7}
.review-attest span{color:#083f3e}
@media(max-width:600px){.rating-grid{grid-template-columns:1fr}}
.lead{font-size:16px;color:var(--ink-soft)}
.suggest .sbtn{display:inline-block;margin-top:10px;background:var(--ink);color:#fff;
  text-decoration:none;border-radius:7px;padding:9px 16px;font-size:13.5px;font-weight:700}
.f>span i{font-style:normal;color:#b6b0a3;letter-spacing:.04em;font-weight:600}
.statenav{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 18px;padding:10px 12px;background:#fbfaf7;border:1px solid var(--line);border-radius:11px}
.statenav-label{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);white-space:nowrap}
.statechips{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.statechips a{display:inline-block;padding:5px 9px;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--teal-deep);font-size:12px;font-weight:700;text-decoration:none;line-height:1.2}
.statechips a:hover{border-color:var(--teal);background:#e8f4f3}
.statelink{margin-top:-10px;font-size:13.5px}
.statelink a{color:var(--teal-deep);font-weight:700;text-decoration:none}

/* ── editorial guides ── */
.guide-wrap{max-width:760px}
.guide-lede{background:var(--panel);border-left:4px solid var(--teal);padding:17px 19px;border-radius:0 9px 9px 0}
.guide-lede p{font-size:16px;color:var(--ink);line-height:1.55}
.guide-cta{margin:18px 0 4px}
.guide-section h2{margin-top:30px}
.criteria{padding-left:20px;color:var(--ink-soft);font-size:14px;line-height:1.6}
.criteria li+li{margin-top:5px}
.checklist{padding-left:20px;line-height:1.65;margin:10px 0 0}
.checklist li+li{margin-top:7px}
.checklist li strong{font-weight:650}
.guide-source{font-size:13px;margin-top:10px}
.guide-source a{color:var(--ink-soft)}
.honorees{display:flex;flex-direction:column;gap:12px}
.honoree{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px 18px}
.honoree h3{font-family:var(--serif);font-size:20px;letter-spacing:0;text-transform:none;color:var(--ink);margin:0 0 6px}
.honoree p{font-size:14px;color:var(--ink-soft);line-height:1.55}
.evidence-label{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--teal-deep);margin-top:11px}
.sources{list-style:none;padding:0;margin-top:3px}
.sources a{font-size:13px;color:var(--teal-deep);font-weight:700;text-decoration:none}
.sources a:hover{text-decoration:underline}
.method-note,.editor-note{margin-top:22px;background:var(--ink);color:#c3ccdb;border-radius:10px;padding:15px 17px;font-size:13px;line-height:1.55}
.method-note strong,.editor-note strong{color:#fff}
.editor-note{background:#e8f4f3;color:#0a4b4a}
.editor-note strong{color:#083f3e}
.guide-index-intro{max-width:700px;color:var(--ink-soft);font-size:15px;line-height:1.6}
.guide-index-intro p+p{margin-top:10px}
.guide-index-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:24px}
.guide-index-card{display:block;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:17px 18px;text-decoration:none;color:var(--ink);transition:transform .15s,box-shadow .15s,border-color .15s}
.guide-index-card:hover{transform:translateY(-2px);border-color:var(--teal);box-shadow:0 5px 16px rgba(21,29,43,.08)}
.guide-index-card h2{font-size:21px;border:0;margin:3px 0 7px;padding:0}
.guide-index-card p{font-size:13.5px;color:var(--ink-soft);line-height:1.5}
.guide-index-card span{display:block;margin-top:12px;color:var(--teal-deep);font-size:13px;font-weight:700}
.guide-kicker{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--teal-deep);font-weight:700}
@media(max-width:600px){.guide-index-grid{grid-template-columns:1fr}.guide-lede p{font-size:15px}}

/* ── site chrome on generated pages ── */
.topnav{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;
  max-width:860px;margin:0 auto;padding:14px 24px;border-bottom:1px solid var(--line)}
.brand{display:inline-flex;align-items:center;font-family:var(--serif);font-size:19px;font-weight:600;
  color:var(--ink);text-decoration:none;white-space:nowrap}
.brand::before{content:"DCF";display:inline-grid;place-items:center;width:28px;height:28px;margin-right:9px;
  border-radius:8px;background:var(--ink);color:#fff;font-family:var(--sans);font-size:9px;font-weight:800;
  letter-spacing:.04em}
.brand span{color:var(--teal)}
.navlinks{display:flex;align-items:center;gap:4px;flex-wrap:wrap;padding:4px;background:#eeece5;
  border:1px solid var(--line);border-radius:12px}
.navlinks a{display:inline-block;padding:7px 10px;border-radius:8px;font-size:12px;font-weight:700;
  color:var(--ink-soft);text-decoration:none;white-space:nowrap;transition:background .15s,color .15s,box-shadow .15s}
.navlinks a:hover,.navlinks a:focus-visible{background:var(--panel);color:var(--teal-deep);box-shadow:0 1px 4px rgba(21,29,43,.08)}
.navlinks .navlink-report{background:#e1f1ef;color:var(--teal-deep)}
.navlinks .navlink-report:hover,.navlinks .navlink-report:focus-visible{background:#cce8e5;color:var(--ink)}
.phdr{padding-top:22px}

/* ── place-specific email capture ── */
.pagesignup{background:var(--ink);color:#fff;border-radius:12px;padding:22px 24px;margin:30px 0 10px}
.pagesignup h2{font-family:var(--serif);font-size:20px;font-weight:600;color:#fff;
  border:none;margin:0 0 8px;padding:0}
.pagesignup p{font-size:13.5px;color:#c3ccdb;line-height:1.55;margin-bottom:14px}
.signup-report{display:inline-block;margin:-3px 0 13px;color:#8de0dc;font-size:12px;font-weight:700;text-decoration:none}
.signup-report:hover{text-decoration:underline}
.pform{display:flex;gap:8px;flex-wrap:wrap}
.pform input{flex:1;min-width:170px;padding:10px 12px;border-radius:7px;border:1px solid #3a4457;
  font-size:14px;font-family:var(--sans);background:#fdfdfb;color:var(--ink)}
.pform input:focus{outline:2px solid var(--teal);border-color:var(--teal)}
.pform .btn{flex:none;background:#4ec9c6;color:var(--ink);border:none;cursor:pointer;
  padding:10px 18px;font-size:14px}
.pform .btn:hover{background:#7fdedb}
.pagesignup-top{margin:4px 0 26px;border:1px solid #cfe3df;border-left:4px solid var(--teal);
  background:#eaf5f3;color:var(--ink);box-shadow:0 4px 14px rgba(21,29,43,.04)}
.pagesignup-top h2{color:var(--ink);font-size:20px}
.pagesignup-top p{color:var(--ink-soft);max-width:680px;margin-bottom:5px}
.pagesignup-top .signup-report{color:var(--teal-deep);margin-bottom:9px}
.pagesignup-top .pform input{border-color:#bdd6d2;background:#fff}
.pagesignup-top .pform .btn{background:var(--ink);color:#fff}
.pagesignup-top .pform .btn:hover{background:var(--teal-deep)}

/* ── Studio Set, once, near the bottom ── */
.shubpage{border-top:1px solid var(--line);margin-top:36px}
.shubpage-in{max-width:860px;margin:0 auto;padding:26px 24px;
  border-left:4px solid var(--teal);background:var(--panel)}
.shubpage-eyebrow{font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--teal-deep);margin-bottom:7px}
.shubpage h2{font-family:var(--serif);font-size:20px;font-weight:600;border:none;margin:0;padding:0}
.shubpage p{font-size:13.5px;color:var(--ink-soft);line-height:1.55;margin:8px 0 14px;max-width:620px}
.btn.light{background:var(--ink)}
.btn.light:hover{background:var(--teal-deep)}

@media(max-width:760px){
  .topnav{align-items:flex-start;padding:12px 18px}
  .brand{width:100%}
  .navlinks{width:100%;justify-content:stretch}
  .navlinks a{flex:1 1 auto;text-align:center}
}
@media(max-width:460px){
  .topnav{padding-left:14px;padding-right:14px}
  .navlinks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .navlinks a{font-size:11.5px;padding:7px 6px}
  .navlinks .navlink-report{grid-column:span 2}
}

/* ── directory page polish ── */
.dir-guides-teaser{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
  margin:4px 0 34px;padding:20px 22px;border:1px solid var(--line);border-left:4px solid var(--teal);
  border-radius:12px;background:#f3faf9}
.dir-guides-txt{flex:1;min-width:240px}
.dir-guides-txt h2{margin:4px 0 6px;padding:0;border:none;font-size:19px}
.dir-guides-txt p{font-size:13.5px;color:var(--ink-soft);line-height:1.5;max-width:520px}
.dir-guides-teaser .btn{flex:none}

.dir-state-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-bottom:8px}
.dir-state-card{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 13px;
  border:1px solid var(--line);border-radius:9px;background:var(--panel);text-decoration:none;
  color:var(--ink);font-size:13.5px;font-weight:600;transition:border-color .15s,transform .15s}
.dir-state-card:hover{border-color:var(--teal);transform:translateY(-1px)}
.dir-state-count{font-size:11px;font-weight:700;color:#b6b0a3}
.dir-state-card:hover .dir-state-count{color:var(--teal-deep)}

.dir-city-hint{font-size:13px;color:var(--ink-soft);margin:-4px 0 14px}
.dir-city-group{border:1px solid var(--line);border-radius:10px;margin-bottom:8px;background:var(--panel);overflow:hidden}
.dir-city-group summary{list-style:none;cursor:pointer;padding:12px 16px;font-weight:700;font-size:14px;
  display:flex;align-items:center;justify-content:space-between;gap:10px}
.dir-city-group summary::-webkit-details-marker{display:none}
.dir-city-group summary::before{content:"▸";margin-right:9px;color:var(--teal-deep);font-size:12px;
  transition:transform .15s;display:inline-block}
.dir-city-group[open] summary::before{transform:rotate(90deg)}
.dir-city-n{font-size:11px;font-weight:700;color:#b6b0a3;margin-left:auto}
.dir-city-group ul.cols3{padding:0 16px 14px;margin:0}

@media(max-width:600px){
  .dir-guides-teaser{padding:16px 18px}
  .dir-state-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}
}
