:root{--ink:#2b2140;--muted:#655c78;--bg:#fff9f3;--card:#fff;--line:#f1e4d8;--brand:#d93a66;--teal:#12766f;--sun:#ffcb52;--soft:#fff1e6;--r:1.1rem}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font:1.0625rem/1.6 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);background:var(--bg)}
h1,h2,.logo{font-family:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif}
h1{font-size:clamp(2rem,5.2vw,3.2rem);line-height:1.1;margin:0 0 .6rem;letter-spacing:-.01em}
h2{font-size:clamp(1.5rem,3.4vw,2rem);line-height:1.2;margin:0 0 .5rem;scroll-margin-top:5rem}
h3{font-size:1.12rem;margin:0 0 .2rem;line-height:1.3}
main>section>h3,[data-area-panel] h3{font-size:1.3rem;margin:2rem 0 .6rem}
a{color:var(--teal)}
p{margin:.6rem 0}
.wrap,.top,.foot,body.county>header:not(.top),body.county>main,body.county>nav{max-width:68rem;margin:0 auto;padding-left:1.25rem;padding-right:1.25rem}
main>section.wrap{margin-top:2.75rem}
.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;background:#fff;padding:.5rem;z-index:20}
[hidden]{display:none!important}
.small,.meta{color:var(--muted);font-size:.88rem}
.lede{color:var(--muted);font-size:1.15rem;margin-top:0;max-width:44rem}

/* Top bar */
.top{display:flex;align-items:center;gap:1rem;padding-top:.8rem;padding-bottom:.8rem;flex-wrap:wrap}
.logo{font-size:1.7rem;font-weight:700;color:var(--ink);text-decoration:none;letter-spacing:-.02em}
.logo span{color:var(--brand)}
.logo::after{content:"♥";color:var(--sun);font-size:.9rem;margin-left:.2rem;vertical-align:.5em}
.mainnav{display:flex;gap:.25rem;flex-wrap:wrap;margin-left:auto}
.mainnav a{color:var(--ink);text-decoration:none;font-weight:600;padding:.4rem .8rem;border-radius:2rem}
.mainnav a:hover,.mainnav a:focus-visible{background:var(--soft)}
.areachip{background:#fff;border:1.5px solid var(--line);border-radius:2rem;padding:.35rem .9rem;text-decoration:none;color:var(--ink);font-weight:600;font-size:.95rem;white-space:nowrap}
.areachip:hover{border-color:var(--brand)}

/* Hero */
.hero,body.county>header:not(.top){background:radial-gradient(circle at 88% 12%,#ffe08a55 0,#ffe08a00 34%),radial-gradient(circle at 6% 90%,#9fe0d655 0,#9fe0d600 36%),linear-gradient(135deg,#ffe3e8 0,#fff1dc 52%,#e2f6f1 100%);padding:3.2rem 0 3rem;border-radius:0 0 2.2rem 2.2rem}
.hero.slim,body.county>header:not(.top){padding:2.2rem 0 2rem}
body.county>header:not(.top){max-width:none;padding-left:max(1.25rem,calc(50% - 32.75rem));padding-right:max(1.25rem,calc(50% - 32.75rem))}
.hero.home h1{max-width:18ch}

/* Tiles */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(15.5rem,1fr));gap:1rem;margin:1.6rem 0 0}
.tile{display:block;background:var(--card);border:1.5px solid #fff;border-radius:var(--r);padding:1.1rem 1.15rem 1.2rem;text-decoration:none;color:var(--ink);box-shadow:0 6px 18px -10px #6b3f5b55;transition:transform .15s,box-shadow .15s,border-color .15s}
.tile:hover,.tile:focus-visible{transform:translateY(-3px);box-shadow:0 14px 26px -12px #6b3f5b77;border-color:var(--brand)}
.tile strong{display:block;font-size:1.15rem;line-height:1.25;margin:.55rem 0 .15rem}
.tile span{display:block;color:var(--muted);font-size:.96rem}
.tile .ico{display:grid;place-items:center;width:2.9rem;height:2.9rem;border-radius:50%;background:var(--soft);font-size:1.45rem;color:inherit}
.t1 .ico{background:#ffe0e8}.t2 .ico{background:#fff0bf}.t3 .ico{background:#d9f3ee}.t4 .ico{background:#e9e2fb}.t5 .ico{background:#ffe9c9}.t6 .ico{background:#ffe3d6}
@media (min-width:761px){.hero.home .tiles{grid-template-columns:repeat(3,1fr)}}
main>section .tiles{margin-top:1rem}
main>section .tile{border-color:var(--line);box-shadow:none}

/* Map and area picker */
.near{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:2rem;align-items:center}
.picker label{display:block;font-weight:700;margin-bottom:.3rem}
input[type=text],input[type=search],select{font:inherit;padding:.65rem .8rem;border:1.5px solid #cbbfd0;border-radius:.8rem;max-width:100%;background:#fff;color:var(--ink)}
input[type=text],input[type=search]{width:min(24rem,100%)}
input:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid #7fb8f0;outline-offset:2px}
.regionbtns,.chips{display:flex;flex-wrap:wrap;gap:.45rem;margin:.9rem 0 0}
.regionbtns button,.chips button{font:inherit;font-size:.95rem;font-weight:600;color:var(--ink);background:#fff;border:1.5px solid var(--line);border-radius:2rem;padding:.4rem .85rem;cursor:pointer}
.regionbtns button::before,.chips button[style]::before{content:"";display:inline-block;width:.7rem;height:.7rem;border-radius:50%;background:var(--c);margin-right:.4rem}
.regionbtns button[aria-pressed=true],.chips button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}
.areasummary{margin-top:1.1rem}
.areasummary .btn{margin-left:.4rem}
.mapbox{background:#fff;border:1.5px solid var(--line);border-radius:1.6rem;padding:1rem 1rem .4rem}
.map svg{display:block;width:100%;height:auto;max-height:31rem}
.map path{stroke:#fff;stroke-width:1.1;cursor:pointer;transition:opacity .15s}
.map path:hover{opacity:.75}
.map path.dim{opacity:.28}
.map path.sel{stroke:var(--ink);stroke-width:3;opacity:1}
.maptip{text-align:center;color:var(--muted);font-size:.92rem;margin:.2rem 0 .4rem;min-height:1.5em}
.countybox{background:var(--soft);border-radius:var(--r);padding:.9rem 1.1rem;margin:1rem 0}
.countybox:empty{display:none}

/* Events */
.events{display:grid;gap:.9rem;margin:1rem 0}
.event{display:grid;grid-template-columns:4.4rem 1fr;gap:1rem;background:var(--card);border:1.5px solid var(--line);border-radius:var(--r);padding:1rem}
.event p{margin:.3rem 0}
.date{display:grid;place-content:center;text-align:center;width:4.4rem;height:4.4rem;border-radius:1rem;background:#ffe0e8;line-height:1.05}
.date b{font-size:1.6rem;font-family:Georgia,serif}.date i{font-style:normal;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.date.now{background:#d9f3ee}.date.now b{font-size:1.15rem}.date.now i{text-transform:none;letter-spacing:0;font-weight:600}
.tags{display:flex;flex-wrap:wrap;gap:.35rem;margin:0 0 .35rem!important}
.tag{font-size:.78rem;font-weight:700;background:var(--soft);border-radius:2rem;padding:.1rem .6rem;color:var(--ink)}
.k-moms{background:#ffd3e0}.k-little{background:#fff0bf}.k-sensory{background:#e9e2fb}
.where{font-weight:600}
.when{color:var(--muted);font-size:.95rem}
.src{font-size:.85rem;color:var(--muted)}

/* Listing cards */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(19rem,1fr));gap:1rem;margin-top:1rem}
.county .cards{grid-template-columns:repeat(auto-fit,minmax(19rem,1fr))}
.card{background:var(--card);border:1.5px solid var(--line);border-radius:var(--r);padding:1.05rem 1.1rem}
.card p{margin:.5rem 0}.org{color:var(--muted);font-size:.95rem;margin-top:0!important}
.addr{color:var(--muted);font-size:.95rem}
.actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.note{color:var(--muted);font-size:.9rem}
.btn{display:inline-block;border:1.5px solid var(--teal);border-radius:2rem;padding:.38rem .9rem;text-decoration:none;font-weight:700;font-size:.95rem;color:var(--teal);background:#fff}
.btn:hover{background:#e7f5f3}
.btn.call{background:var(--teal);color:#fff}.btn.call:hover{background:#0d5f59}
.btn.plain{border-color:var(--line);font-weight:400;color:var(--ink)}
.btn.big{background:var(--brand);border-color:var(--brand);color:#fff;font-size:1.05rem;padding:.6rem 1.3rem}.btn.big:hover{background:#bd2c55}
button.btn{font:inherit;font-weight:700;cursor:pointer;padding:.6rem 1.1rem}button.btn:disabled{opacity:.6}
.pending{background:#fff6dc;border-radius:.8rem;padding:.7rem 1rem;border:1.5px dashed #e9c96a}
.quiet{color:var(--muted);font-size:.95rem}
.exitlink{font:inherit;background:none;border:0;padding:0;color:var(--teal);text-decoration:underline;cursor:pointer}
.search label{font-weight:700;margin-right:.3rem}
.backlink{margin-top:1.5rem}
.groups h2{margin-top:2.2rem}.groups h2:first-child{margin-top:0}
.cta{background:linear-gradient(135deg,#ffe3e8,#fff1dc);border-radius:1.6rem;padding:1.8rem 1.6rem!important;text-align:center}
.cta p{max-width:40rem;margin-left:auto;margin-right:auto}

/* County pages (published markup) */
body.county>nav{display:flex;gap:.45rem;flex-wrap:wrap;padding-top:1rem;font-size:.92rem}
body.county>nav a{background:#fff;border:1.5px solid var(--line);border-radius:2rem;padding:.25rem .75rem;text-decoration:none;color:var(--ink);font-weight:600}
body.county>main h2{margin-top:2.6rem}
body.county .brandline{font-weight:700;margin:0 0 .4rem}

/* Tell us form */
.report{max-width:36rem;margin:1rem 0}
.field{margin:0 0 1rem}.field label{display:block;font-weight:700;margin-bottom:.25rem}
.report input,.report textarea{display:block;width:100%;font:inherit;padding:.6rem .7rem;border:1.5px solid #cbbfd0;border-radius:.8rem;background:#fff;color:var(--ink)}
.report [aria-invalid=true]{border-color:#b3261e}
.error{display:block;color:#b3261e;font-size:.9rem}

.foot{border-top:1.5px solid var(--line);margin-top:3.5rem;padding-top:1.4rem;padding-bottom:3rem;font-size:.95rem}
.footnav{display:flex;flex-wrap:wrap;gap:.3rem 1.2rem;font-weight:700}
.footnav a{text-decoration:none}

@media (max-width:760px){
  .near{grid-template-columns:1fr;gap:1.2rem}
  .mainnav{order:3;width:100%;margin-left:-.6rem}
  .areachip{margin-left:auto}
  .hero{padding:2rem 0 2rem;border-radius:0 0 1.5rem 1.5rem}
  .tiles{grid-template-columns:1fr;gap:.5rem;margin-top:1.1rem}
  .tile{display:grid;grid-template-columns:auto 1fr;column-gap:.8rem;align-items:center;padding:.6rem .8rem}
  .tile .ico{grid-row:1 / span 2;width:2.5rem;height:2.5rem;font-size:1.25rem}
  .tile strong{font-size:1.02rem;margin:0;align-self:end}.tile span:last-child{font-size:.88rem;line-height:1.35;align-self:start}
  .event{grid-template-columns:3.6rem 1fr;gap:.75rem}.date{width:3.6rem;height:3.6rem}.date b{font-size:1.3rem}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media print{.top nav,.areachip,.chips,.picker,.mapbox,input,select,label{display:none}.card,.event{break-inside:avoid}}

/* Polls and feedback */
.listenband{background:linear-gradient(135deg,#e2f6f1,#fff1dc);border-radius:1.6rem;padding:1.8rem 1.6rem!important}
.poll{background:#fff;border:1.5px solid var(--line);border-radius:var(--r);padding:1.1rem 1.2rem;margin:1rem 0}
.poll h3{font-size:1.2rem;margin:0 0 .7rem}
.opts{display:flex;flex-wrap:wrap;gap:.5rem}
.opts button,.helpful button{font:inherit;font-size:.98rem;font-weight:600;color:var(--ink);background:#fff;border:1.5px solid #cbbfd0;border-radius:2rem;padding:.45rem .95rem;cursor:pointer}
.opts button:hover:not(:disabled),.helpful button:hover{border-color:var(--brand)}
.opts button[aria-pressed=true]{background:var(--brand);border-color:var(--brand);color:#fff}
.opts button:disabled{cursor:default}.opts button:disabled:not([aria-pressed=true]){opacity:.55}
.pollnote{color:var(--muted);font-size:.92rem;min-height:1.4em;margin:.6rem 0 0}
.fb label{display:block;font-weight:700;margin:.9rem 0 .25rem}
.fb textarea,.fb input,.fb select{display:block;width:100%;max-width:36rem;font:inherit;padding:.6rem .7rem;border:1.5px solid #cbbfd0;border-radius:.8rem;background:#fff;color:var(--ink)}
.helpful{text-align:center;color:var(--muted);margin-top:3rem}
.helpful input{width:min(18rem,100%);padding:.4rem .6rem}
/* The map opens on request on a phone; site.js opens it on wider screens. */
.mapfold>summary{cursor:pointer;color:var(--teal);font-weight:700;padding:.4rem 0;list-style:none}
.mapfold>summary::-webkit-details-marker{display:none}
.mapfold>summary::before{content:"+";display:inline-block;width:1.1rem}
.mapfold[open]>summary::before{content:"\2212"}
@media (min-width:761px){.mapfold>summary{display:none}}
