
/* ---------- GeoMap: state representative, sponsor, ZIP index (added 10 Aug 2026) ---------- */
.gm-welcome{width:100%;background:#fff;line-height:0;margin:0}
.gm-welcome img{width:100%;height:auto;display:block}
.rep-banner{line-height:0;margin-bottom:18px}
.rep-banner img{width:100%;height:auto;display:block;border-radius:var(--radius-card,18px)}
.rep-band{background:var(--navy,#14263F);border-radius:var(--radius-card,18px);padding:42px 46px;display:flex;gap:46px;align-items:flex-start;flex-wrap:wrap}
.rep-copy{flex:1 1 520px}
.rep-band .eyebrow{color:var(--green,#41C94A)}
.rep-band h3{color:#fff;font-size:2rem;margin-bottom:.9rem;letter-spacing:-.01em}
.rep-band p{color:#C9D6E8;font-size:.99rem}
.rep-band p.rep-lede{font-size:1.1rem;color:#E4ECF6}
.rep-band strong{color:#fff}
.rep-actions{margin-top:1.7rem;display:flex;gap:12px;flex-wrap:wrap}
.rep-side{flex:0 0 250px;border-left:1px solid rgba(255,255,255,.16);padding-left:32px}
.rep-stat{margin-bottom:22px}
.rep-num{display:block;font-family:var(--font-headline,'Montserrat',sans-serif);font-weight:700;font-size:2.1rem;color:var(--green,#41C94A);line-height:1.1}
.rep-lab{font-size:.86rem;color:#9FB1C9}
.rep-host{font-size:.78rem;color:#7D8EA6}
.sponsor{margin-top:2.2rem;background:var(--soft-white,#F8FAFC);border:1px solid var(--medium-gray,#D5DEE8);border-radius:var(--radius-card,18px);padding:38px 42px}
.sponsor h3{font-size:1.6rem;margin-bottom:1.4rem}
.sponsor-cols{display:grid;grid-template-columns:1fr 1fr;gap:38px}
.sponsor p{font-size:.98rem}
.sponsor em{color:var(--navy,#14263F);font-style:italic}
.thanks{margin-top:1.4rem;border-left:4px solid var(--green,#41C94A);padding:2px 0 2px 20px}
.thanks h4{font-family:var(--font-headline,'Montserrat',sans-serif);font-size:1.08rem;color:var(--navy,#14263F);margin-bottom:.5rem}
.thanks p{margin-bottom:0}
.thanks .disclose{margin-top:.9rem;font-size:.9rem;color:#7A8698}
.zipsearch{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin:1.8rem 0 1.4rem}
.zipsearch input{font-family:var(--font-body,'Inter',sans-serif);font-size:1rem;padding:14px 18px;border:1px solid var(--medium-gray,#D5DEE8);border-radius:10px;min-width:340px;flex:0 1 380px;outline:none}
.zipsearch input:focus{border-color:var(--blue,#1F78E8);box-shadow:0 0 0 3px rgba(31,120,232,.15)}
#zcount{font-family:var(--font-headline,'Montserrat',sans-serif);font-weight:600;font-size:.85rem;color:var(--dark-gray,#667085)}
#zwrap{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.cty{border:1px solid var(--medium-gray,#D5DEE8);border-radius:12px;background:#fff;overflow:hidden;align-self:start}
.cty[open]{grid-column:1/-1;box-shadow:0 8px 24px rgba(20,38,63,.08)}
.cty summary{cursor:pointer;list-style:none;padding:13px 16px;display:flex;justify-content:space-between;align-items:center;gap:12px;font-family:var(--font-headline,'Montserrat',sans-serif);font-weight:600;font-size:.92rem;color:var(--navy,#14263F)}
.cty summary::-webkit-details-marker{display:none}
.cty summary:hover{background:var(--soft-white,#F8FAFC)}
.cc{font-family:var(--font-body,'Inter',sans-serif);font-weight:400;font-size:.78rem;color:var(--dark-gray,#667085);white-space:nowrap}
.zips{display:flex;flex-wrap:wrap;gap:8px;padding:4px 16px 18px}
.zip{font-size:.84rem;background:var(--soft-white,#F8FAFC);border:1px solid var(--light-gray,#EEF2F6);border-radius:8px;padding:7px 11px;color:var(--dark-gray,#667085)}
.zip b{font-family:var(--font-headline,'Montserrat',sans-serif);color:var(--navy,#14263F);font-weight:600}
.zip.hit{background:rgba(65,201,74,.12);border-color:var(--green,#41C94A)}
@media(max-width:900px){#zwrap{grid-template-columns:repeat(2,1fr)}.rep-band{padding:30px 26px;gap:26px}.rep-side{flex:1 1 100%;border-left:none;border-top:1px solid rgba(255,255,255,.16);padding-left:0;padding-top:24px;display:flex;gap:30px;flex-wrap:wrap}.rep-stat{margin-bottom:0}}
@media(max-width:800px){.sponsor{padding:28px 24px}.sponsor-cols{grid-template-columns:1fr;gap:8px}}
@media(max-width:620px){#zwrap{grid-template-columns:1fr}.zipsearch input{min-width:0;width:100%}}

/* ---------- GeoMap: city table, live weather, game day (added 10 Aug 2026) ---------- */
.src{margin-top:1.4rem;font-size:.82rem;color:#8A94A6}
.citytable{width:100%;border-collapse:collapse;margin-top:2rem;background:#fff;border:1px solid var(--medium-gray,#D5DEE8);border-radius:var(--radius-card,18px);overflow:hidden}
.citytable th{background:var(--navy,#14263F);color:#fff;font-family:var(--font-headline,'Montserrat',sans-serif);font-size:.82rem;font-weight:600;text-align:left;padding:13px 18px;letter-spacing:.03em}
.citytable td{padding:12px 18px;border-top:1px solid var(--light-gray,#EEF2F6);font-size:.94rem;color:var(--dark-gray,#667085)}
.citytable tr td:first-child a{font-family:var(--font-headline,'Montserrat',sans-serif);font-weight:600;color:var(--navy,#14263F);text-decoration:none}
.citytable tr td:first-child a:hover{color:var(--blue,#1F78E8)}
.citytable .num{text-align:right}
@media(max-width:620px){.citytable th,.citytable td{padding:10px 10px;font-size:.84rem}}
.wx{display:grid;grid-template-columns:repeat(7,1fr);gap:12px;margin-top:2rem}
.wx-card{background:#fff;border:1px solid var(--medium-gray,#D5DEE8);border-radius:14px;padding:18px 12px;text-align:center;box-shadow:0 8px 24px rgba(20,38,63,.08)}
.wx-city{font-family:var(--font-headline,'Montserrat',sans-serif);font-weight:600;font-size:.8rem;color:var(--navy,#14263F);min-height:2.2em;line-height:1.2}
.wx-temp{font-family:var(--font-headline,'Montserrat',sans-serif);font-weight:700;font-size:1.7rem;color:var(--green,#41C94A);margin:.35rem 0}
.wx-desc{font-size:.74rem;color:var(--dark-gray,#667085);line-height:1.35;min-height:2.4em}
@media(max-width:1000px){.wx{grid-template-columns:repeat(4,1fr)}}
@media(max-width:620px){.wx{grid-template-columns:repeat(2,1fr)}}
.sports{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:2rem}
.sport{background:#fff;border:1px solid var(--medium-gray,#D5DEE8);border-radius:var(--radius-card,18px);padding:22px;box-shadow:0 8px 24px rgba(20,38,63,.08)}
.sport-tag{display:inline-block;font-family:var(--font-headline,'Montserrat',sans-serif);font-weight:700;font-size:.66rem;letter-spacing:.1em;color:var(--green,#41C94A);border:1px solid rgba(65,201,74,.5);border-radius:5px;padding:3px 8px;margin-bottom:.7rem}
.sport-name{display:block;font-family:var(--font-headline,'Montserrat',sans-serif);font-weight:700;font-size:1.05rem;color:var(--navy,#14263F)}
.sport-where{display:block;font-size:.85rem;color:var(--dark-gray,#667085);margin-top:.25rem}
@media(max-width:900px){.sports{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.sports{grid-template-columns:1fr}}
