.election-report{color:var(--navy);background:var(--sandstone);font-family:var(--font-sans)}
.election-hero{min-height:0}
.election-hero .analysis-hero-grid{width:min(1080px,calc(100% - 40px));padding:5rem 0 6rem}
.election-hero h1{font-size:clamp(3.2rem,7.5vw,6.5rem);line-height:1.02}
.election-body{width:min(1080px,calc(100% - 40px));margin:auto;padding:3rem 0 4rem;font-size:1rem;line-height:1.75}
.election-body>p{max-width:780px;color:rgba(26,38,56,.78)}
.election-body a{color:var(--navy);text-decoration:underline;text-decoration-color:var(--coral);text-underline-offset:4px;overflow-wrap:anywhere}
.election-body a:hover{color:var(--coral-dark)}
.election-body>nav{display:flex;flex-wrap:wrap;gap:.7rem 1.5rem;margin:2rem 0 3rem;padding:1.25rem 0;border-top:1px solid rgba(26,38,56,.16);border-bottom:1px solid rgba(26,38,56,.16);font-size:.8rem;font-weight:700}
.election-body h2{margin:4rem 0 1.5rem;padding-top:1.6rem;border-top:3px solid var(--coral);font-family:var(--font-display);font-size:clamp(2rem,4vw,3rem);line-height:1.15;font-weight:500;letter-spacing:-.035em;scroll-margin-top:110px}
.election-body h3.race{margin:2.5rem 0 1rem;font-size:1.25rem;line-height:1.4;font-weight:800}
.election-body .table-wrap{overflow-x:auto;border:1px solid rgba(26,38,56,.12);border-radius:12px}
.election-body table{width:100%;border-collapse:collapse;font-size:.9rem;line-height:1.65}
.election-body th{background:var(--navy);color:var(--sandstone);padding:1rem;text-align:left;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase}
.election-body td{padding:1.25rem;vertical-align:top;border-bottom:1px solid rgba(26,38,56,.1)}
.election-body td:first-child{width:20%;min-width:155px}
.election-body td:nth-child(2){width:33%}
.election-body tr:nth-child(even){background:rgba(26,38,56,.025)}
.election-body .cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}
.election-body .card{display:grid;grid-template-columns:110px minmax(0,1fr);align-content:start;overflow:hidden;border:1px solid rgba(26,38,56,.12);border-radius:12px;background:var(--paper)}
.election-body .card img{width:110px;height:145px;object-fit:cover;object-position:top}
.election-body .no-photo{width:110px;min-height:145px;display:grid;place-content:center;padding:.75rem;background:rgba(26,38,56,.06);color:rgba(26,38,56,.65);font-size:.7rem;line-height:1.5;text-align:center}
.election-body .cardbody{padding:1.1rem;min-width:0}
.election-body .card h3{margin:0 0 .4rem;font-size:1.2rem;line-height:1.25;letter-spacing:-.02em;color:var(--navy)}
.election-body .party{font-size:.65rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--coral-dark)}
.election-body .card p{font-size:.88rem;line-height:1.65;color:rgba(26,38,56,.78);margin:.8rem 0}
.election-body .card a{font-size:.75rem}
.election-body footer{font-size:.85rem;color:rgba(26,38,56,.7)}
.election-body footer h2{font-size:1.8rem}
@media(max-width:700px){.election-hero .analysis-hero-grid{padding:3rem 0}.election-hero .analysis-hero-index{margin-top:2rem}.election-body{padding-top:1.5rem}.election-body .cards{grid-template-columns:1fr}.election-body table{min-width:680px}.election-body h2{margin-top:3rem}.election-body .card{grid-template-columns:90px minmax(0,1fr)}.election-body .card img,.election-body .no-photo{width:90px;height:120px;min-height:120px}}
@media print{.election-hero{color:#000;background:#fff}.election-hero h1,.election-hero .analysis-dek{color:#000}.election-body{width:100%}.election-body .card,.election-body tr{break-inside:avoid}.election-body .table-wrap{overflow:visible}.election-body table{min-width:0}.election-body>nav{display:none}}
