:root{--navy:#1b2a4a;--navy-dark:#12203c;--red:#b3282d;--blue:#2458b3;--cream:#faf8f4;--ink:#21242b;--muted:#5c6370;--border:#e3e0d8;--radius:12px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--cream);color:var(--ink);line-height:1.55;-webkit-font-smoothing:antialiased}a{color:var(--blue)}.site-header{background:var(--navy);color:#fff;display:flex;justify-content:space-between;align-items:center;padding:.9rem 1.25rem}.logo{color:#fff;text-decoration:none;font-weight:700;font-size:1.15rem;letter-spacing:.01em}.logo-mark{color:#e8b64c}.site-header nav a{color:#cdd6e8;text-decoration:none;font-size:.95rem}.site-header nav a:hover{color:#fff}.container{max-width:720px;margin:0 auto;padding:0 1.25rem 4rem}.hero{text-align:center;padding:3rem 0 1.5rem}.hero h1{font-size:clamp(1.8rem,5vw,2.6rem);color:var(--navy);margin-bottom:.75rem}.hero p{color:var(--muted);margin-bottom:1.5rem}.hero-privacy{font-size:.9rem;color:var(--navy);font-weight:600}.lookup-form{display:flex;gap:.5rem;max-width:560px;margin:0 auto}.lookup-form input{flex:1 1;padding:.85rem 1rem;font-size:1rem;border:2px solid var(--border);border-radius:var(--radius);background:#fff}.lookup-form input:focus{outline:none;border-color:var(--blue)}.lookup-form button{padding:.85rem 1.4rem;font-size:1rem;font-weight:600;color:#fff;background:var(--red);border:none;border-radius:var(--radius);cursor:pointer;white-space:nowrap}.lookup-form button:hover{background:#9c2226}.lookup-form button:disabled{opacity:.6;cursor:wait}.location-btn{margin-top:.75rem;background:none;border:none;color:var(--blue);font-size:.95rem;cursor:pointer;text-decoration:underline}.location-btn:disabled{opacity:.6;cursor:wait}.loading-note{text-align:center;color:var(--muted);padding:3rem 0}.error{color:var(--red);background:#fdf0f0;border:1px solid #f0cfd0;border-radius:var(--radius);padding:.75rem 1rem}.error,.results{margin-top:1rem}.matched-address{text-align:center;color:var(--muted);font-size:.9rem;margin-bottom:1.25rem}.result-section{background:#fff;border:1px solid var(--border);border-radius:var(--radius);margin-bottom:1rem;overflow:hidden}.section-toggle{width:100%;display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background:none;border:none;font-size:1.05rem;cursor:pointer;text-align:left;color:var(--navy)}.section-subtitle{font-weight:400;font-size:.92rem}.chevron,.section-subtitle{color:var(--muted)}.section-body{padding:0 1.25rem 1.25rem}.rep-card{display:flex;gap:1rem;padding:1rem;border:1px solid var(--border);border-radius:var(--radius);margin-bottom:.75rem;background:var(--cream)}.rep-photo{width:64px;height:78px;object-fit:cover;border-radius:8px;flex-shrink:0;background:#dcd8cf}.rep-photo-fallback{display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.3rem;color:var(--navy)}.rep-info h3{font-size:1.05rem;color:var(--navy)}.rep-role{color:var(--muted);font-size:.9rem;margin:.15rem 0 .5rem}.party-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px}.party-dem{background:#2458b3}.party-rep{background:#b3282d}.party-other{background:#8a8f98}.rep-actions{display:flex;flex-wrap:wrap;gap:.75rem;font-size:.9rem}.rep-actions a{text-decoration:none}.rep-actions a:hover{text-decoration:underline}.empty-note{color:var(--muted);font-size:.92rem;padding:.5rem 0}.empty-note p{margin-bottom:.4rem}.election-card{display:flex;gap:1.25rem;align-items:flex-start}.election-date{background:var(--navy);color:#fff;border-radius:var(--radius);padding:.9rem 1rem;text-align:center;flex-shrink:0;display:flex;flex-direction:column;line-height:1.2;font-size:.8rem}.election-day-count{font-size:1.9rem;font-weight:800}.election-card h3{color:var(--navy);margin-bottom:.25rem}.election-card p{margin-bottom:.4rem;font-size:.95rem}.election-note{color:var(--muted);font-size:.85rem}.cta-link{font-weight:600}.pitch{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:1rem;gap:1rem;margin-top:2.5rem}.pitch-item{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.pitch-item h2{font-size:1.05rem;color:var(--navy);margin-bottom:.4rem}.pitch-item p{color:var(--muted);font-size:.92rem}.prose{max-width:680px;margin:0 auto;padding:2.5rem 1.25rem 4rem}.prose h1{color:var(--navy);margin-bottom:1rem}.prose h2{color:var(--navy);margin:1.75rem 0 .5rem;font-size:1.25rem}.prose p{margin-bottom:1rem}.site-footer{background:var(--navy-dark);color:#cdd6e8;text-align:center;padding:1.5rem 1.25rem;font-size:.9rem}.site-footer a{color:#e8b64c}.footer-fine{font-size:.8rem;margin-top:.5rem;color:#8d99b5}@media (max-width:540px){.election-card,.lookup-form{flex-direction:column}}