/* Base: copied from design/m-rotating-towns.html (Option M). Edit this file from now on. */
/* The reader just put down a mailed copy of the Republican Reader that said "Visit
   northidahorepublicans.org to find your precinct number and your PC candidate." This page picks up
   exactly there. It borrows the Republican Reader's look (black-weight headlines, serif body, red/navy VOTE
   cards, "show up" line, paid-for folio) so it feels like the same people — but it is the NIR site,
   with the NIR logo, not a copy of the paper. Big type, high contrast, one clear next step. */
:root{
 color-scheme:light;
 --paper:#ffffff;
 --card:#fff;
 --ink:#121212;
 --mute:#55555a;
 --rule:#e4e4e4;
 --red:#bd270f;
 --blue:#172333;
 --navy:#172333;
 --head:"Arial Black","Helvetica Neue",Impact,Arial,sans-serif;
 --serif:Georgia,"Times New Roman",serif;
 --ui:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
 --h-xl:clamp(2.4rem,1rem + 7.4vw,5.2rem);
 --h-l:clamp(1.8rem,1rem + 3.4vw,3rem);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:76px}
body{margin:0;background:var(--paper);color:var(--ink);font:1.12rem/1.65 var(--serif);-webkit-font-smoothing:antialiased}
a{color:inherit}
.wrap{width:min(1060px,100% - 2rem);margin-inline:auto}
.mock{background:#111;color:#ffe9a8;font:13px var(--ui);text-align:center;padding:6px 10px}
.mock a{color:#fff}
:focus-visible{outline:3px solid var(--red);outline-offset:3px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;border:0;cursor:pointer;font:800 .95rem var(--ui);letter-spacing:.03em;text-transform:uppercase;text-decoration:none;background:var(--red);color:#fff;padding:1em 1.5em;border-radius:4px}
.btn.navy{background:var(--navy)}
.btn.line{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 3px var(--ink)}
.btn.lg{padding:1.1em 1.7em;font-size:1rem}

/* header: NIR logo first */
header.site{position:sticky;top:0;z-index:50;background:var(--paper);border-bottom:4px solid var(--navy)}
.hbar{display:flex;align-items:center;gap:10px;height:68px}
.hbar img{height:50px;width:auto;display:block}
.hbar .sp{margin-left:auto}
.hbar .btn{padding:.7em 1.1em;font-size:.8rem}
.navlinks{display:none;gap:4px}
.navlinks a{font:800 .78rem var(--ui);letter-spacing:.08em;text-transform:uppercase;text-decoration:none;padding:10px 10px}
.navlinks a:hover{color:var(--red)}
details.m summary{list-style:none;cursor:pointer;font:800 .8rem var(--ui);letter-spacing:.08em;text-transform:uppercase;padding:12px 14px;border:3px solid var(--ink);border-radius:4px}
details.m summary::-webkit-details-marker{display:none}
details.m[open] .sheet{position:fixed;inset:72px 0 0 0;background:var(--navy);color:#fff;padding:20px 22px;display:grid;align-content:start;z-index:49}
.sheet a{font:900 clamp(1.8rem,8vw,2.6rem)/1.15 var(--head);letter-spacing:-.04em;text-decoration:none;padding:6px 0;border-bottom:1px solid #ffffff22}

/* hero: the "you saw it in the Republican Reader" moment */
.hero{padding:28px 0 8px}
.seen{display:inline-flex;align-items:center;gap:8px;background:var(--navy);color:#fff;font:700 .78rem var(--ui);letter-spacing:.06em;text-transform:uppercase;padding:7px 12px}
.seen b{color:#ff9d92}
.hero h1{font:900 var(--h-xl)/.95 var(--head);letter-spacing:-.045em;margin:.35em 0 .25em}
.hero h1 em{font-style:normal;color:var(--red)}
.hero p.lede{font:italic 400 clamp(1.25rem,1rem + 1.2vw,1.8rem)/1.3 var(--serif);max-width:30ch;margin:0 0 20px}

/* the lookup */
.find{border:4px solid var(--ink);background:var(--card);display:grid}
.find .a{background:var(--navy);color:#fff;padding:20px}
.find .a h2{font:900 1.7rem/1 var(--head);letter-spacing:-.04em;text-transform:uppercase;margin:0 0 12px}
.find ol{margin:0;padding-left:1.2em;font:1rem/1.5 var(--ui);color:#d4dcf3}
.find ol li{margin:6px 0}
.find ol a{color:#fff;font-weight:800}
.find .b{padding:20px}
.find label{font:800 .8rem var(--ui);letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}
.find input{display:block;width:100%;font:900 2.8rem/1 var(--head);letter-spacing:-.03em;border:0;border-bottom:5px solid var(--ink);background:transparent;color:var(--ink);padding:6px 0;outline:0;margin-top:6px}
.find input::placeholder{color:var(--mute);font:400 1.15rem var(--ui);letter-spacing:0}
#out{min-height:84px;margin-top:14px}
.hit{display:flex;gap:14px;align-items:center;border:3px solid var(--ink);padding:12px;font-family:var(--ui)}
.hit .n{background:var(--red);color:#fff;font:900 1.4rem var(--head);padding:12px 14px}
.hit b{font-size:1.15rem}
.helper{font:.95rem var(--ui);color:var(--mute);margin:10px 0 0}

/* section heads — same rule-line treatment as the Republican Reader */
.sec{padding:40px 0 8px}
.sec h2{font:900 var(--h-l)/1 var(--head);letter-spacing:-.04em;text-transform:uppercase;margin:0;display:flex;align-items:baseline;gap:12px}
.sec h2:after{content:"";flex:1;border-top:4px solid var(--ink);align-self:center}
.sec p.sub{font:italic 1.15rem var(--serif);color:var(--mute);margin:8px 0 0;max-width:46ch}

/* VOTE cards — same component as the printed cards */
.cards{display:grid;grid-auto-flow:column;grid-auto-columns:min(86%,340px);gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:16px 1rem 22px;margin-inline:-1rem;scrollbar-width:none}
.cards::-webkit-scrollbar{display:none}
.vote{scroll-snap-align:start;background:var(--card);border:1px solid var(--rule);display:flex;flex-direction:column;overflow:hidden}
.vote .hd{background:var(--red);color:#fff;padding:12px 14px 28px;clip-path:polygon(0 0,100% 0,100% 72%,0 100%)}
.vote .hd b{font:900 1.35rem/1 var(--head);letter-spacing:-.03em}
.vote .hd small{display:block;font:700 .62rem var(--ui);letter-spacing:.16em;margin-top:5px;opacity:.92}
.vote .body{display:grid;grid-template-columns:1fr 92px;gap:12px;padding:6px 14px 12px;font:.95rem/1.4 var(--ui)}
.vote ul{margin:0;padding-left:16px;color:var(--mute)}
.vote .face{width:92px;height:92px;border-radius:50%;background:linear-gradient(160deg,#cfd6e6,#e6dcc3);border:3px solid #fff;box-shadow:0 0 0 1px var(--rule)}
.vote .ft{margin-top:auto;background:var(--blue);color:#fff;padding:10px 14px;font:800 .78rem/1.2 var(--ui);display:flex;justify-content:space-between;align-items:center;gap:10px}
.vote .ft span{background:#fff;color:var(--blue);padding:4px 8px;font-weight:900;white-space:nowrap}
.note{font:.85rem var(--ui);color:var(--mute);margin:0}

/* about NIR */
.about{display:grid;gap:22px;margin-top:16px}
.about .big{font:900 clamp(1.8rem,1rem + 3vw,2.8rem)/1.05 var(--head);letter-spacing:-.04em}
.about .big em{font-style:normal;color:var(--red)}
.prin{list-style:none;margin:0;padding:0;display:grid;gap:0}
.prin li{display:flex;gap:14px;align-items:baseline;padding:12px 0;border-top:1px solid var(--rule);font:1.02rem/1.35 var(--ui)}
.prin li:last-child{border-bottom:1px solid var(--rule)}
.prin i{font:900 .8rem var(--head);font-style:normal;color:var(--red);min-width:2ch}

/* three steps — the Republican Reader's "Look up / find / vote" turned into doing */
.steps{display:grid;gap:12px;margin-top:16px}
.step{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center;border:3px solid var(--ink);background:var(--card);padding:16px;text-decoration:none}
.step .no{font:900 2.6rem/1 var(--head);color:var(--red);letter-spacing:-.05em}
.step b{display:block;font:900 1.2rem/1.15 var(--head);letter-spacing:-.03em}
.step span{font:.95rem var(--ui);color:var(--mute)}
.step:hover{background:var(--navy);color:#fff}.step:hover span{color:#cdd6f0}

/* from the Republican Reader — article headlines, linked out */
.rd{display:grid;gap:0;margin-top:14px}
.rd a{display:block;text-decoration:none;padding:18px 0;border-bottom:1px solid var(--rule)}
.rd h3{font:900 clamp(1.4rem,1rem + 2vw,2.1rem)/1.02 var(--head);letter-spacing:-.04em;margin:0 0 6px}
.rd small{font:700 .75rem var(--ui);letter-spacing:.08em;text-transform:uppercase;color:var(--red)}
.rd a:hover h3{text-decoration:underline;text-decoration-color:var(--red);text-decoration-thickness:4px;text-underline-offset:5px}
.reader-band{margin-top:18px;background:var(--navy);color:#fff;padding:20px;display:grid;gap:12px}
.reader-band b{font:900 1.3rem/1.1 var(--head);letter-spacing:-.03em}
.reader-band p{margin:0;font:1rem var(--ui);color:#cdd6f0}

/* get involved */
.help{display:grid;gap:10px;margin-top:16px}
.help a{display:flex;justify-content:space-between;align-items:center;border:3px solid var(--ink);padding:16px;text-decoration:none;font:800 1.05rem var(--ui)}
.help a:after{content:"→";color:var(--red);font-size:1.4rem}
.help a:hover{background:var(--ink);color:var(--paper)}

/* quote break */
.qb{background:var(--navy);color:#fff;margin-top:44px;padding:46px 0;position:relative;overflow:hidden}
.qb:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(115deg,transparent 0 46px,#ffffff08 46px 92px)}
.qb blockquote{position:relative;margin:0;font:italic 400 clamp(1.6rem,1rem + 3.4vw,3rem)/1.2 var(--serif);max-width:22ch}
.qb cite{position:relative;display:block;margin-top:14px;font:700 .8rem var(--ui);letter-spacing:.14em;text-transform:uppercase;font-style:normal;color:#ff9d92}

/* signup + give */
.two{display:grid;gap:14px;margin-top:20px}
.box{border:4px solid var(--ink);padding:22px;background:var(--card)}
.box h3{font:900 1.6rem/1 var(--head);letter-spacing:-.04em;text-transform:uppercase;margin:0 0 8px}
.box p{font:1rem var(--ui);color:var(--mute);margin:0 0 14px}
.box form{display:grid;gap:10px}
.box input{font:1.05rem var(--ui);padding:.9em 1em;border:2px solid var(--ink);background:var(--paper);color:var(--ink);border-radius:4px}

footer{margin-top:50px;border-top:4px double var(--ink);padding:26px 0 110px;font:.95rem/1.55 var(--ui);color:var(--mute)}
footer img{height:60px;display:block;margin-bottom:12px}
footer .paid{margin-top:12px;font-weight:700;color:var(--ink)}
footer .paid i{font-weight:400}

.dock{position:fixed;left:50%;translate:-50% 0;bottom:calc(12px + env(safe-area-inset-bottom));z-index:55;display:flex;gap:6px;background:var(--ink);padding:6px;border-radius:999px;box-shadow:0 8px 30px #0005}
.dock a{font:800 .8rem var(--ui);letter-spacing:.04em;text-transform:uppercase;text-decoration:none;color:var(--paper);padding:12px 18px;border-radius:999px}
.dock a.p{background:var(--red);color:#fff}

@media(min-width:800px){
 .dock{display:none}footer{padding-bottom:40px}
 .navlinks{display:flex}details.m{display:none}
 .hbar{height:84px}.hbar img{height:62px}
 .hero .grid{display:grid;grid-template-columns:1fr 1.15fr;gap:40px;align-items:center}
 .find{grid-template-columns:1fr}
 .cards{grid-auto-flow:row;grid-template-columns:repeat(3,1fr);grid-auto-columns:auto;overflow:visible;padding-inline:0;margin-inline:0}
 .about{grid-template-columns:1fr 1.2fr;gap:40px}
 .steps{grid-template-columns:repeat(3,1fr)}.step{grid-template-columns:1fr}
 .help{grid-template-columns:1fr 1fr}
 .two{grid-template-columns:1.2fr 1fr}
 .rd{grid-template-columns:1fr 1fr;column-gap:40px}
 .reader-band{grid-template-columns:1fr auto;align-items:center}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Option H: white page, hairline rules, softer cards, centred hero */
header.site{border-bottom:1px solid var(--rule);box-shadow:0 1px 0 #0000000d}
.hero{padding:40px 0 16px;text-align:center}
.hero .grid{display:block}
.hero h1{max-width:14ch;margin-inline:auto}
.hero p.lede{margin-inline:auto;max-width:28ch}
.find{border:1px solid var(--rule);box-shadow:0 18px 50px #0b1b3a1f;border-radius:14px;overflow:hidden;max-width:620px;margin:26px auto 0;text-align:left}
.find .a{padding:18px 22px}
.find input{border-bottom:4px solid var(--red)}
.sec h2:after{border-top:2px solid var(--ink)}
.vote{border-radius:10px;box-shadow:0 8px 24px #0b1b3a14}
.vote .ft{border-radius:0}
.step{border:1px solid var(--rule);border-radius:12px;box-shadow:0 8px 24px #0b1b3a10}
.help a{border:1px solid var(--rule);border-radius:12px}
.box{border:1px solid var(--rule);border-radius:14px;box-shadow:0 8px 24px #0b1b3a10}
.reader-band{border-radius:14px}
.qb{margin-top:50px}
footer{border-top:1px solid var(--rule)}
@media(min-width:800px){.hero h1{font-size:clamp(3rem,1rem + 6vw,5.4rem)}.hero{padding:64px 0 24px}}

/* Option M: hero rotates through North Idaho communities */
header.site{position:absolute;top:0;left:0;right:0;background:none;border:0;box-shadow:none;z-index:6}
.hbar{height:auto;padding-top:12px;justify-content:flex-end}
.navlinks{background:#172333cc;backdrop-filter:blur(10px);border-radius:999px;padding:4px 8px}
.navlinks a{color:#fff}
details.m summary{background:#172333cc;color:#fff;border:1px solid #ffffff55;border-radius:999px}
.hero{position:relative;padding:0;text-align:left;color:#fff;min-height:min(86vh,760px);display:flex;align-items:flex-end;isolation:isolate;overflow:hidden;background:#172333}
.slides{position:absolute;inset:0;z-index:-2}
.slide{position:absolute;inset:0;opacity:0;transition:opacity 1.4s ease}
.slide.on{opacity:1}
.slide img{width:100%;height:100%;object-fit:cover;display:block}
.hero:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#17233380 0%,#0000 28%,#0000 38%,#172333d9 100%)}
.hero .copy{padding:120px 0 108px;width:min(1060px,100% - 2rem)}
.hero h1{color:#fff;max-width:12ch;margin-inline:0;text-shadow:0 2px 22px #0009}
.hero h1 em{color:#ff8587}
.hero p.lede{margin-inline:0;color:#fff;text-shadow:0 1px 14px #000a}
.hero .seen{background:#ffffff26;border:1px solid #ffffff55;backdrop-filter:blur(6px)}
.where{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline;margin-top:16px;font:700 .95rem var(--ui);text-shadow:0 1px 8px #000a}
.where .cr{font-weight:400;font-size:.72rem;opacity:.8}
.dots{position:absolute;left:50%;bottom:78px;translate:-50% 0;display:flex;gap:8px}
.dots button{width:10px;height:10px;border-radius:50%;border:0;background:#ffffff66;padding:0;cursor:pointer}
.dots button.on{background:#fff;width:26px;border-radius:6px}
.sendphoto{position:absolute;right:12px;bottom:74px;font:600 11px var(--ui);color:#fff;opacity:.85;text-decoration:underline;text-underline-offset:3px;text-shadow:0 1px 6px #000c}
.sendphoto:hover{opacity:1}
.pull{margin-top:-64px;position:relative;z-index:3}
.find{margin:0 auto}
.btn{background:#bd270f}
@media(min-width:800px){.pull{margin-top:-90px}.dots{bottom:104px}.sendphoto{bottom:96px}}
@media(prefers-reduced-motion:reduce){.slide{transition:none}}

/* ================= Working-site additions ================= */
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.hp{position:absolute;left:-9999px;opacity:0}
/* header: rounded white badge (logo option 3) */
.badge{background:#fff;border-radius:16px;padding:6px 12px;box-shadow:0 6px 18px #0004;margin-right:auto;display:block}
.badge img{height:50px;width:auto;display:block}
header.site .hbar{justify-content:flex-start;gap:10px}
header.site .navlinks{margin-left:auto}
@media(min-width:800px){.badge img{height:58px}}
body.subpage header.site{position:sticky;background:#fff;border-bottom:1px solid var(--rule);box-shadow:0 1px 0 #0000000d}
body.subpage .navlinks{background:none;backdrop-filter:none}
body.subpage .navlinks a{color:var(--ink)}
body.subpage details.m summary{background:#fff;color:var(--ink);border:3px solid var(--ink)}
body.subpage .badge{box-shadow:none;padding:0}
/* hero signup */
.signup{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 0;max-width:520px}
.signup input[type=email]{flex:1 1 230px;font:1rem var(--ui);padding:.85em 1.1em;border:0;border-radius:999px;background:#fffffff2;color:#111}
.signup button{font:800 .9rem var(--ui);letter-spacing:.03em;text-transform:uppercase;border:0;border-radius:999px;padding:.85em 1.4em;color:#fff;background:#bd270f;cursor:pointer}
.signup button:disabled{opacity:.6}
.su-msg{flex:1 1 100%;margin:2px 4px 0;font:600 .85rem var(--ui);min-height:1.2em}
.su-msg.ok{color:#9cf5b6}.su-msg.err{color:#ffd2cc}.su-msg a{color:#fff}
.box .signup{max-width:none;margin:0}
.box .signup input[type=email]{border:2px solid var(--ink);background:#fff}
.box .su-msg.ok{color:#0c5b2a}.box .su-msg.err{color:#b11116}.box .su-msg a{color:var(--navy)}
/* find card extras */
.hit{display:grid;gap:12px;grid-template-columns:120px 1fr;align-items:start;border:3px solid var(--ink);padding:12px;font-family:var(--ui)}
.hit img{width:100%;height:auto;border:1px solid var(--rule);border-radius:6px}
.hit .n{display:inline-block;background:var(--red);color:#fff;font:900 1rem var(--head);padding:6px 10px;margin-bottom:8px}
.hit b{display:block;font-size:1.2rem}.hit small{display:block;color:var(--mute);margin:2px 0 6px}
.hit a{font-weight:700;color:var(--navy)}
@media(min-width:520px){.hit{grid-template-columns:200px 1fr}}
.allp{margin-top:12px;font:.9rem var(--ui)}.allp summary{cursor:pointer;font-weight:700}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.chip{font:700 .85rem var(--ui);border:2px solid var(--navy);background:#fff;color:var(--navy);border-radius:999px;padding:4px 10px;cursor:pointer}
.chip:hover{background:var(--navy);color:#fff}
/* voting tiles */
.vgrid{display:grid;gap:10px;margin-top:14px}
.vt{display:block;border:1px solid var(--rule);border-radius:12px;padding:14px 16px;text-decoration:none;box-shadow:0 8px 24px #0b1b3a10;border-left:6px solid var(--red)}
.vt b{display:block;font:900 1.1rem/1.15 var(--head);letter-spacing:-.02em}
.vt span{font:.9rem var(--ui);color:var(--mute)}
.vt:hover{background:var(--navy);color:#fff;border-left-color:#bd270f}.vt:hover span{color:#cdd6f0}
@media(min-width:700px){.vgrid{grid-template-columns:repeat(3,1fr)}}
/* buttons / misc */
.btn.big{padding:1.05em 1.6em;font-size:1rem}
.more{margin:14px 0 0;font:700 .95rem var(--ui)}.more a{color:var(--navy)}
.fine{font:.85rem var(--ui);color:var(--mute);margin:12px 0 0}
.help{display:grid;gap:10px;margin-top:16px}
.help a{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--rule);border-radius:12px;padding:16px;text-decoration:none;font:800 1.05rem var(--ui)}
.help a:after{content:"→";color:var(--red);font-size:1.4rem}.help a:hover{background:var(--ink);color:#fff}
@media(min-width:800px){.help{grid-template-columns:1fr 1fr}}
/* articles */
.artlist{display:grid;gap:0;margin-top:12px}
.art{display:flex;gap:14px;align-items:flex-start;justify-content:space-between;padding:16px 0;border-bottom:1px solid var(--rule)}
.art[hidden]{display:none}
.at{font:900 clamp(1.15rem,1rem + 1vw,1.55rem)/1.1 var(--head);letter-spacing:-.03em;text-decoration:none;color:var(--ink)}
.at:hover{text-decoration:underline;text-decoration-color:var(--red);text-decoration-thickness:3px;text-underline-offset:4px}
.am{font:700 .75rem var(--ui);letter-spacing:.05em;text-transform:uppercase;color:var(--red);margin:6px 0 0}
.as{font:.98rem/1.45 var(--ui);color:var(--mute);margin:6px 0 0}
.kf{font:.9rem var(--ui);margin-top:6px}.kf summary{cursor:pointer;font-weight:700;color:var(--navy)}.kf p{margin:6px 0 0;color:var(--mute)}
.av{width:52px;height:52px;border-radius:50%;object-fit:cover;flex:none}
@media(min-width:800px){.artlist{grid-template-columns:1fr 1fr;column-gap:40px}}
.pagehead{padding-top:34px}.pagehead h1{font:900 clamp(2rem,1rem + 4vw,3.2rem)/1 var(--head);letter-spacing:-.04em;margin:0 0 8px}
.filter{width:100%;max-width:420px;font:1rem var(--ui);padding:.8em 1em;border:2px solid var(--ink);border-radius:8px;margin-top:6px}
.sec h2 small{font:700 .8rem var(--ui);background:var(--ink);color:#fff;border-radius:999px;padding:2px 9px;letter-spacing:0}
/* candidates grid */
.cgrid{display:grid;gap:14px;margin-top:18px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.cc{margin:0;border:1px solid var(--rule);border-radius:10px;overflow:hidden;background:#fff;box-shadow:0 8px 24px #0b1b3a10}
.cc[hidden]{display:none}
.cc img{display:block;width:100%;height:auto}
.cc figcaption{padding:8px 12px 12px;font:.9rem var(--ui)}.cc figcaption span{color:var(--mute)}
.note{font:.85rem var(--ui);color:var(--mute);margin-top:20px}
footer img{height:60px}

/* ===== Header: white pill bar with the NIR wordmark and a flag-inspired edge (logo option 4) ===== */
header.site .hbar{padding-top:10px}
.bar4{position:relative;display:flex;align-items:center;gap:10px;width:100%;background:#fff;border-radius:999px;overflow:hidden;
  padding:0 8px 9px 0;box-shadow:0 6px 18px #0004}
/* flag stripes along the bottom edge only: red / white / red */
.bar4:after{content:"";position:absolute;left:0;right:0;bottom:0;height:9px;
  background:linear-gradient(180deg,#bd270f 0 3px,#fff 3px 6px,#bd270f 6px 9px)}
/* blue canton with stars at the left end, like the flag's corner */
.canton{align-self:stretch;flex:none;width:42px;margin-right:2px;position:relative;z-index:1;
  background:#172333 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cpath fill='white' d='M6 1.2l1.1 3.1h3.2L7.7 6.2l1 3.1L6 7.5 3.3 9.3l1-3.1L1.7 4.3h3.2z'/%3E%3C/svg%3E") 3px 3px/12px 12px}
.brand{display:flex;align-items:center;gap:9px;text-decoration:none;color:inherit;margin-right:auto;padding-top:8px;min-width:0}
.brand .canton{margin:-8px 2px 0 0}
.brand .idaho{height:32px;width:auto;display:block;flex:none}
.wm{font-family:"Avenir Next Condensed","HelveticaNeue-CondensedBold","Roboto Condensed","sans-serif-condensed","Arial Narrow","Franklin Gothic Medium",Impact,sans-serif;
  font-weight:800;text-transform:uppercase;line-height:.95;letter-spacing:.01em;font-size:17px;color:#2c3550}
.wm b,.wm i{display:block;font-style:normal;font-weight:800}
.wm i{color:#bd270f}
.bar4 .navlinks{background:none;backdrop-filter:none;padding:8px 0 0;margin:0}
.bar4 .navlinks a{color:#172333}
.bar4 .btn{margin-top:8px}
.bar4 details.m{margin-top:8px}
.bar4 details.m summary{background:#fff;color:#172333;border:3px solid #172333;border-radius:999px;backdrop-filter:none}
body.subpage header.site{position:sticky;top:0;background:#fffffff2;border-bottom:0;box-shadow:none;padding-bottom:8px}
body.subpage .bar4{box-shadow:0 2px 12px #0002;border:1px solid var(--rule)}
@media(min-width:800px){
  .canton{width:52px}
  .brand .idaho{height:38px}
  .wm{font-size:24px;line-height:1}
  .wm b,.wm i{display:inline}
  .wm i{margin-left:.28em}
}

/* ---- header fit fixes ---- */
.brand{flex:1 1 auto;overflow:hidden}
.wm{white-space:nowrap}
.bar4 .navlinks a{white-space:nowrap;font-size:10.5px;padding:8px 7px;letter-spacing:.06em}
.bar4 .btn{padding:.62em .95em;font-size:.72rem;white-space:nowrap}
.bar4 details.m summary{padding:8px 13px;border-width:2px;font-size:.72rem}
@media(max-width:799px){
  .canton{width:30px}
  .brand{gap:7px}
  .brand .idaho{height:28px}
  .wm{font-size:15px}
}
@media(min-width:800px){.wm{font-size:21px}.bar4 .navlinks a{font-size:11px}}
@media(min-width:1100px){.wm{font-size:26px}.bar4 .navlinks a{padding:8px 10px}}
/* soft scrim so hero text stays readable on bright photos */
.hero:after{background:linear-gradient(180deg,#17233380 0%,#0000 28%,#0000 38%,#172333d9 100%),linear-gradient(90deg,#172333aa 0%,#17233355 45%,#0000 75%)}


/* ===== Round 3: header responsiveness, lightbox, news, key facts ===== */
/* Wordmark stays stacked until real desktop width ("Republicans" is never cut off); inline menu only from 1000px */
@media(min-width:800px) and (max-width:999px){
  .bar4 .navlinks{display:none}
  details.m{display:block}
}
@media(min-width:800px) and (max-width:1099px){
  .wm{font-size:21px;line-height:.95}
  .wm b,.wm i{display:block}
  .wm i{margin-left:0}
}
@media(min-width:1000px){details.m{display:none}.bar4 .navlinks{display:flex}}
@media(min-width:1100px){.wm{font-size:26px;line-height:1}.wm b,.wm i{display:inline}.wm i{margin-left:.28em}}
.brand{flex:0 0 auto;overflow:visible}
.bar4{gap:12px}
.bar4 .navlinks{margin-left:auto}
.bar4 > .btn{margin-left:auto}
.bar4 .navlinks + .btn{margin-left:0}
/* expanded menu: scrolls, and tightens in landscape so every item fits */
details.m[open] .sheet{overflow-y:auto;-webkit-overflow-scrolling:touch}
.sheet a{font-size:clamp(1.5rem,6vw,2.4rem)}
@media(max-height:520px){
  details.m[open] .sheet{inset:64px 0 0 0;padding:12px 22px;grid-template-columns:1fr 1fr;column-gap:24px;align-content:start}
  .sheet a{font-size:1.35rem;padding:4px 0}
}
/* precinct result: big and tappable */
.hit{grid-template-columns:1fr}
.zoomwrap{position:relative;display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in}
.hit img{width:100%}
.zoomhint{position:absolute;right:8px;bottom:8px;background:#000b;color:#fff;font:700 .72rem var(--ui);padding:4px 9px;border-radius:999px}
@media(min-width:620px){.hit{grid-template-columns:minmax(280px,1.2fr) 1fr}}
.cc img{cursor:zoom-in}
.lightbox{border:0;padding:0;background:#000;width:100vw;height:100dvh;max-width:none;max-height:none}
.lightbox::backdrop{background:#000d}
.lbscroll{width:100%;height:100%;overflow:auto;display:flex;align-items:flex-start;justify-content:center;touch-action:pan-x pan-y pinch-zoom;-webkit-overflow-scrolling:touch}
.lbscroll img{display:block;width:100%;max-width:1100px;height:auto;margin:0 auto}
.lbx{position:fixed;top:10px;right:10px;z-index:3;background:#fff;color:#111;border:0;border-radius:999px;font:800 .85rem var(--ui);padding:10px 16px;cursor:pointer}
/* news */
.srcchips{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 4px}
.srcchips button{font:700 .85rem var(--ui);border:2px solid var(--navy);background:#fff;color:var(--navy);border-radius:999px;padding:6px 14px;cursor:pointer}
.srcchips button.on{background:var(--navy);color:#fff}
.arch{font-weight:700;color:var(--navy);text-transform:none;letter-spacing:0;text-decoration:underline}
.linkbtn{background:none;border:0;padding:0;font:700 .9rem var(--ui);color:var(--navy);text-decoration:underline;cursor:pointer}
/* key facts: a real bullet list */
.kf summary span{color:var(--mute);font-weight:400}
.kf ul{margin:8px 0 0;padding-left:1.15em;color:var(--ink);font:.95rem/1.45 var(--ui)}
.kf li{margin:5px 0}


/* ===== Round 4: promos, social links, submit page, preview flag ===== */
.promos{display:grid;gap:12px}
.promo{background:linear-gradient(160deg,#172333,#172333);color:#fff;border-radius:14px;padding:22px 22px 24px;box-shadow:0 18px 50px #0b1b3a33;border-top:6px solid #bd270f}
.promo .eyebrow{font:800 .72rem var(--ui);letter-spacing:.14em;text-transform:uppercase;color:#ff9d92}
.promo h2{display:block;font:900 clamp(1.6rem,1rem + 2.5vw,2.4rem)/1 var(--head);letter-spacing:-.04em;margin:8px 0 10px;color:#fff}
.promo p{font:1.05rem/1.5 var(--ui);color:#e6ebfa;margin:0 0 14px}
.promo ul{margin:0 0 16px;padding-left:1.2em;font:1.05rem/1.45 var(--ui);color:#fff}.promo li{margin:6px 0}.promo li::marker{color:#ff9d92}
@media(min-width:800px){.promos{grid-template-columns:1fr 1fr;gap:16px}}
.social{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}
.soc{display:inline-flex;align-items:center;gap:8px;font:700 .9rem var(--ui);color:var(--navy);text-decoration:none;border:1px solid var(--rule);border-radius:999px;padding:8px 14px;background:#fff}
.soc svg{width:20px;height:20px;fill:currentColor}
.soc:hover{background:var(--navy);color:#fff}
.previewflag{background:#fff8e1;border:1px solid #f0dc9a;border-radius:8px;padding:8px 12px;font:.85rem var(--ui);margin:0 0 18px}
/* "Send us your photo" page */
.submit h1{font:900 clamp(2.2rem,1rem + 6vw,4rem)/.98 var(--head);letter-spacing:-.045em;margin:34px 0 14px}
.submit h1 em{font-style:normal;color:var(--red)}
.submit .lede{font:italic 400 1.35rem/1.35 var(--serif);margin:0 0 26px}
.submit h2{font:900 1.5rem/1.1 var(--head);letter-spacing:-.03em;text-transform:uppercase;margin:34px 0 10px;display:flex;gap:12px;align-items:baseline}
.submit h2:after{content:"";flex:1;border-top:2px solid var(--ink);align-self:center}
.submit ol,.submit ul{padding-left:1.2em;font:1.02rem/1.55 var(--ui)}.submit li{margin:8px 0}
.rights{border:2px solid var(--navy);background:#f4f6fc;padding:18px 20px;border-radius:12px;font:1.02rem/1.55 var(--ui)}
.rights p{margin:0 0 10px}.rights p:last-child{margin:0}.rights b{color:var(--navy)}
.draftnote{font:.8rem var(--ui);background:#fff8e1;border:1px solid #f0dc9a;border-radius:8px;padding:8px 12px;margin:18px 0 40px}
.submit{max-width:760px}


/* ===== Flag edge, round 5: the canton runs the full height of the bar (flush top, bottom and left, clipped only by the pill's
   rounded end) and holds a whole star field that scales to fit, so no star is ever cut off. Stripes start where it ends. ===== */
.bar4{--cw:40px}
@media(min-width:800px){.bar4{--cw:50px}}
.bar4 .canton{position:absolute;left:0;top:0;bottom:0;width:var(--cw);margin:0;z-index:1;
  background:#172333 url("data:image/svg+xml,%3Csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20viewBox=%270%200%2060%2060%27%3E%3Cg%20fill=%27white%27%3E%3Cpolygon%20points=%2710.0%2C3.4%2011.8%2C8.5%2017.2%2C8.7%2012.9%2C12.0%2014.5%2C17.1%2010.0%2C14.1%205.5%2C17.1%207.1%2C12.0%202.8%2C8.7%208.2%2C8.5%27/%3E%3Cpolygon%20points=%2730.0%2C3.4%2031.8%2C8.5%2037.2%2C8.7%2032.9%2C12.0%2034.5%2C17.1%2030.0%2C14.1%2025.5%2C17.1%2027.1%2C12.0%2022.8%2C8.7%2028.2%2C8.5%27/%3E%3Cpolygon%20points=%2750.0%2C3.4%2051.8%2C8.5%2057.2%2C8.7%2052.9%2C12.0%2054.5%2C17.1%2050.0%2C14.1%2045.5%2C17.1%2047.1%2C12.0%2042.8%2C8.7%2048.2%2C8.5%27/%3E%3Cpolygon%20points=%2720.0%2C22.4%2021.8%2C27.5%2027.2%2C27.7%2022.9%2C31.0%2024.5%2C36.1%2020.0%2C33.1%2015.5%2C36.1%2017.1%2C31.0%2012.8%2C27.7%2018.2%2C27.5%27/%3E%3Cpolygon%20points=%2740.0%2C22.4%2041.8%2C27.5%2047.2%2C27.7%2042.9%2C31.0%2044.5%2C36.1%2040.0%2C33.1%2035.5%2C36.1%2037.1%2C31.0%2032.8%2C27.7%2038.2%2C27.5%27/%3E%3Cpolygon%20points=%2710.0%2C41.4%2011.8%2C46.5%2017.2%2C46.7%2012.9%2C50.0%2014.5%2C55.1%2010.0%2C52.1%205.5%2C55.1%207.1%2C50.0%202.8%2C46.7%208.2%2C46.5%27/%3E%3Cpolygon%20points=%2730.0%2C41.4%2031.8%2C46.5%2037.2%2C46.7%2032.9%2C50.0%2034.5%2C55.1%2030.0%2C52.1%2025.5%2C55.1%2027.1%2C50.0%2022.8%2C46.7%2028.2%2C46.5%27/%3E%3Cpolygon%20points=%2750.0%2C41.4%2051.8%2C46.5%2057.2%2C46.7%2052.9%2C50.0%2054.5%2C55.1%2050.0%2C52.1%2045.5%2C55.1%2047.1%2C50.0%2042.8%2C46.7%2048.2%2C46.5%27/%3E%3C/g%3E%3C/svg%3E") center/auto 78% no-repeat}
.bar4:after{left:var(--cw)}
.bar4 .brand{margin-left:calc(var(--cw) + 8px)}
/* FAQ (also feeds the FAQPage structured data) */
.faq{display:grid;gap:10px;margin-top:14px}
.faq details{border:1px solid var(--rule);border-left:6px solid var(--red);border-radius:8px;background:#fff;padding:12px 16px}
.faq summary{cursor:pointer;font:800 1.02rem var(--ui);color:var(--navy)}
.faq p{margin:10px 0 2px;font:1rem/1.55 var(--ui);color:var(--ink)}
/* home page shows 6 items in two columns on desktop, 5 on mobile */
@media(max-width:799px){#news .art:nth-child(n+6){display:none}}

/* ===== Header uses the official logo banner (flag, Idaho, wordmark); no custom canton or stripes. Brand colours: navy #172333, red #bd270f. ===== */
.bar4{--cw:0px;padding:6px 8px 6px 14px;gap:12px}
.bar4 .canton,.bar4:after{display:none}
.bar4 .brand{margin-left:0;padding-top:0}
.brand .logo{display:block;height:46px;width:auto}
.bar4 .navlinks,.bar4 .btn,.bar4 details.m{margin-top:0}
@media(min-width:800px){.brand .logo{height:58px}}
@media(min-width:1100px){.brand .logo{height:66px}}
footer img.footlogo{height:84px;width:auto;margin-bottom:12px}
.bar4 .brand{flex:0 1 auto;min-width:0}.brand .logo{max-width:100%;height:auto;max-height:52px}
@media(min-width:800px){.brand .logo{max-height:68px}}
@media(min-width:1100px){.brand .logo{max-height:76px}}
.vdates{display:grid;gap:10px;margin-top:14px}
.vdates div{border-left:6px solid var(--red);padding:6px 14px}.vdates b{display:block;font:900 clamp(1.6rem,1rem + 2.5vw,2.4rem)/1 var(--head);letter-spacing:-.04em}.vdates span{font:.95rem var(--ui);color:var(--mute)}
.vmain{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}
.vmore{margin-top:10px}.vmore summary{cursor:pointer;font:700 .95rem var(--ui);color:var(--mute)}
@media(min-width:700px){.vdates{grid-template-columns:repeat(3,1fr)}}
/* photo-led home */
.promo{padding:0;overflow:hidden}.promo .pimg{display:block;width:100%;height:170px;object-fit:cover}.promo .pbody{padding:20px 22px 24px}
.vband{display:grid;gap:14px;margin-top:14px}.vband>img{width:100%;height:190px;object-fit:cover;border-radius:14px}
.collage{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr;gap:8px;height:260px}
.collage img{width:100%;height:100%;object-fit:cover;border-radius:12px}.collage img:first-child{grid-row:1/3}
.reader-band>img{width:120px;border-radius:6px;box-shadow:0 10px 30px #0006}
@media(min-width:700px){.vband{grid-template-columns:1fr 1.2fr;align-items:center}.vband>img{height:240px}.collage{height:320px}.reader-band>img{width:150px}}
.vband .vdates b{font-size:clamp(1.3rem,1rem + 1.4vw,1.9rem);white-space:nowrap}
.about .big .ab{font:500 1.15rem/1.4 var(--ui);letter-spacing:0;margin:10px 0 0}
@media(min-width:700px){.vband{grid-template-columns:.7fr 1.5fr}.reader-band{grid-template-columns:auto 1fr auto;gap:22px}.reader-band .btn{align-self:center}}
.faces{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.faces img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:50%;display:block}
@media(min-width:700px){.faces{grid-template-columns:repeat(5,1fr);gap:12px}}
.aboutimg{width:100%;height:100%;min-height:220px;max-height:340px;object-fit:cover;border-radius:14px;display:block}
.more{text-align:right}.more a.btn{color:#fff}
/* voting timeline */
.tl{margin-top:18px;padding:0 6px}
.tlbar{position:relative;height:36px;background:#e6e9f2;border-radius:18px}
.tlearly{position:absolute;left:0;top:0;height:100%;background:var(--red);color:#fff;border-radius:18px 0 0 18px;font:800 .8rem/36px var(--ui);letter-spacing:.06em;text-transform:uppercase;text-align:center}
.tlpin{position:absolute;top:50%;width:22px;height:22px;margin:-11px 0 0 -11px;border-radius:50%;background:var(--navy);border:3px solid #fff;box-shadow:0 0 0 2px var(--navy)}
.tlday{position:absolute;top:-5px;width:16px;height:46px;margin-left:-16px;border-radius:0 18px 18px 0;background:var(--navy)}
.tldates{position:relative;height:22px;margin-top:6px;font:800 .8rem var(--ui)}
.tldates b{position:absolute;transform:translateX(-50%);white-space:nowrap}.tldates b:first-child{transform:none}.tldates b:last-child{transform:translateX(-100%)}
.tlkey{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px;font:.95rem/1.3 var(--ui)}.tlkey li{display:flex;gap:10px;align-items:baseline}.tlkey b{margin-right:4px}
.sw{flex:none;width:14px;height:14px;display:inline-block;transform:translateY(2px)}.sw.early{background:var(--red);border-radius:7px}.sw.pin{background:var(--navy);border-radius:50%}.sw.day{background:var(--navy);border-radius:2px}
@media(min-width:800px){.tlkey{grid-template-columns:repeat(3,1fr);gap:18px}}
/* turnout bars */
.turnout{margin-top:26px;border-top:1px solid var(--rule);padding-top:16px}.turnout h3{font:900 1.15rem var(--head);letter-spacing:-.02em;margin:0 0 10px}
.tb{display:grid;grid-template-columns:1fr auto;gap:2px 10px;align-items:center;margin:9px 0;font:.92rem var(--ui)}.tb .tbl{grid-column:1/3}.tbt{height:16px;background:#e6e9f2;border-radius:8px;overflow:hidden}.tbt i{display:block;height:100%;background:var(--navy);border-radius:8px}.tb:last-of-type .tbt i{background:var(--red)}.tb b{font:900 1.1rem var(--head)}
@media(min-width:800px){.tb{grid-template-columns:20rem 1fr 3rem}.tb .tbl{grid-column:auto}}
/* poll */
.poll{margin-top:14px;display:grid;gap:12px;max-width:640px}
.pchoices{display:grid;gap:8px}@media(min-width:600px){.pchoices{grid-template-columns:1fr 1fr}}
.pc{display:block;position:relative;cursor:pointer}.pc input{position:absolute;opacity:0}
.pc span{display:block;border:2px solid var(--rule);border-radius:12px;padding:13px 16px;font:800 1.02rem var(--ui);background:#fff}
.pc input:checked+span{border-color:var(--red);background:#fff3f1;box-shadow:inset 6px 0 0 var(--red)}.pc input:focus-visible+span{outline:3px solid var(--navy)}
.pother{display:none;padding:12px 14px;border:2px solid var(--rule);border-radius:10px;font:1rem var(--ui)}.poll.other .pother{display:block}
.prow{display:flex;gap:8px;flex-wrap:wrap}.prow input[type=email]{flex:1 1 220px;padding:13px 14px;border:2px solid var(--rule);border-radius:10px;font:1rem var(--ui)}
.presults{margin-top:14px;max-width:640px}.pr{margin:10px 0}.pr .prl{display:flex;justify-content:space-between;font:800 1rem var(--ui)}.pr .prt{height:20px;background:#e6e9f2;border-radius:10px;overflow:hidden;margin-top:4px}.pr .prt i{display:block;height:100%;background:var(--red);border-radius:10px;transition:width .8s}.pr.top .prt i{background:var(--navy)}
.presults .fine{font:.85rem var(--ui);color:var(--mute)}
.tsub{font:1.1rem/1.4 var(--ui);margin:0 0 12px;max-width:46rem}
.tb:first-of-type .tbt i{background:var(--red)}.tb:first-of-type{font-weight:800}.tb:first-of-type .tbt{height:26px;border-radius:13px}.tb:first-of-type b{font-size:1.6rem;color:var(--red)}
.tb:last-of-type .tbt i{background:var(--navy)}
#poll{text-align:center}#poll h2{justify-content:center}#poll h2:before{content:"";flex:1;border-top:4px solid var(--ink);align-self:center}
.poll,.presults{margin-left:auto;margin-right:auto;text-align:left}.prow{justify-content:center}
.tsub{max-width:none;text-wrap:balance}
.tlkey li{align-items:flex-start}.tlkey b{white-space:nowrap}.tlkey li>span.sw{margin-top:3px}
.tlkey li{display:block;padding-left:24px;position:relative}.tlkey .sw{position:absolute;left:0;top:3px;transform:none}
@media(min-width:800px){.tb{grid-template-columns:20rem 1fr 4.2rem}}
.vmain{justify-content:center}#poll .sub{text-align:center;margin-left:auto;margin-right:auto}
.tsub{text-wrap:pretty}

.tlearly{box-sizing:border-box;padding-left:30%}

/* ===== Sample ballot page ===== */
.kicker{font:800 .75rem var(--ui);letter-spacing:.14em;text-transform:uppercase;color:var(--red);margin:0 0 6px}
.ballot{padding-bottom:40px}.bofficial{margin:18px 0 8px}
.bcard{border:1px solid var(--rule);border-top:6px solid var(--navy);border-radius:12px;padding:18px 20px 20px;margin-top:20px;box-shadow:0 8px 24px #0b1b3a10;background:#fff}
.bcard h2{font:900 1.35rem/1.1 var(--head);letter-spacing:-.03em;margin:0 0 10px;text-transform:uppercase}
.bcard h3{font:800 .8rem var(--ui);letter-spacing:.12em;text-transform:uppercase;color:var(--red);margin:14px 0 4px}
.brows{list-style:none;margin:0;padding:0}
.brows li{display:flex;gap:6px 14px;flex-wrap:wrap;align-items:baseline;padding:9px 0;border-bottom:1px solid var(--rule)}.brows li:last-child{border:0}
.brows li:before{content:"";flex:none;width:16px;height:16px;border:2px solid var(--navy);border-radius:50%;align-self:center}
.bo{font:.9rem var(--ui);color:var(--mute);min-width:13rem}.brows b{font:800 1.05rem var(--ui)}
.bmeasures{display:grid;gap:14px}
.bmeas{border:1px solid var(--rule);border-left:6px solid var(--red);border-radius:10px;padding:14px 16px;background:#fafafa}
.bt{font:800 .72rem var(--ui);letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
.bmeas h3{font:900 1.3rem/1.1 var(--head);letter-spacing:-.03em;text-transform:none;color:var(--ink);margin:6px 0}
.bq{font:700 1rem/1.4 var(--ui);margin:0 0 8px}.byn{font:.98rem/1.45 var(--ui);margin:4px 0}.bnote{font:.9rem var(--ui);color:var(--mute);margin:8px 0 0}
.bopts{font:.98rem/1.45 var(--ui);margin:6px 0;padding-left:1.4em}
.brec{font:1rem var(--ui);margin:10px 0 0;color:var(--red)}
.blinks{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:12px;font:700 .92rem var(--ui)}.blinks a{color:var(--navy)}
@media(min-width:800px){.bmeasures{grid-template-columns:1fr 1fr}}
@media(min-width:800px){.slide img{transform:scale(var(--z,1));transform-origin:var(--zo,50% 50%)}}  /* per-slide zoom (site.json "zoom": "scale;origin"): keeps the bald eagle clear of the headline */
.bo{min-width:16rem}
.brec b{font-weight:900}

/* ===== News cards, round 2: face on the left beside its own byline and headline ===== */
.art{justify-content:flex-start;gap:18px;padding:20px 0}
.art .av{width:72px;height:72px;box-shadow:0 0 0 3px #fff,0 0 0 5px var(--red)}
.art .av.logo{object-fit:contain;background:#fff;box-shadow:0 0 0 1px var(--rule)}
.art .av.ini{display:flex;align-items:center;justify-content:center;background:var(--navy);color:#fff;font:900 1.35rem var(--head);letter-spacing:-.02em}
.art .artbody{flex:1;min-width:0}
.am{margin:0 0 6px;font:600 .95rem var(--ui);letter-spacing:0;text-transform:none;color:var(--mute)}
.am .by{font-weight:800;color:var(--navy);font-size:1.02rem}
.art .at{display:block}
@media(min-width:800px){.artlist{column-gap:56px}#news .art{border-bottom:1px solid var(--rule)}.artlist.single{grid-template-columns:1fr;max-width:860px}}
@media(max-width:520px){.art .av{width:56px;height:56px}.art{gap:14px}}
.addcal{text-align:center;margin:14px 0 0}
.addcal .fine{display:block;margin-top:8px}

/* printable-ballot links at the top of the sample ballot page; "Vote Yes" tag on levies */
.bprint{display:flex;flex-wrap:wrap;gap:18px 24px;align-items:center;margin:18px 0 4px;padding:18px 20px;border:1px solid var(--rule);border-left:6px solid var(--red);border-radius:12px;background:#fff}
.bprint h2{font:900 1.35rem/1.1 var(--head);letter-spacing:-.03em;margin:0 0 6px;text-transform:uppercase}.bprint p{margin:0 0 12px}
.bprint>div{flex:1 1 300px}.bprint .actions{display:flex;flex-wrap:wrap;gap:10px}
.bthumb{flex:0 0 220px;max-width:100%}.bthumb img{display:block;width:100%;height:auto;border:1px solid var(--rule)}
.byes{font:900 .9rem var(--ui);letter-spacing:.06em;text-transform:uppercase;background:var(--red);color:#fff;padding:.3em .75em;border-radius:3px;margin-left:auto;flex:none}  /* THE recommendation tag: one red style for every Yes/No/choice */
.bhead{display:flex;gap:10px 14px;align-items:flex-start;justify-content:space-between}.bhead h3{margin:6px 0}.bhead .byes{margin-top:6px;max-width:55%}
.bhead .byes{max-width:60%;text-align:center}@media(max-width:520px){.bhead{flex-wrap:wrap}.bhead .byes{max-width:100%}}

/* ballot rows: every listed name is a recommendation, so the bubble is filled in with a check (Dan, 2026-10-17) */
.brows li:before{content:"\2713";display:flex;align-items:center;justify-content:center;width:22px;height:22px;border:0;background:var(--red);color:#fff;font:900 .85rem/1 var(--ui)}
.aboutrel{font:1.05rem/1.55 var(--serif,Georgia,serif);max-width:62ch;margin:18px 0 8px}

/* Who is NIR page */
.who{max-width:760px;padding-bottom:40px}.who h1{font:900 clamp(2rem,1rem + 4vw,3.2rem)/1 var(--head);letter-spacing:-.04em;margin:0 0 12px}.who h1 em{color:var(--red);font-style:normal}
.who .lede{font:1.2rem/1.55 var(--serif);margin:0 0 8px}.who h2{font:900 1.35rem/1.1 var(--head);letter-spacing:-.03em;text-transform:uppercase;margin:34px 0 10px}
.who p,.who li{font:1.05rem/1.55 var(--serif)}.who .small{font:.9rem var(--ui);color:var(--mute)}.whodo{padding-left:1.2em}.whodo li{margin:10px 0}
.draftnote{display:inline-block;margin:18px 0 0;padding:4px 10px;background:#fff3cd;border:1px solid #e0c36a;font:700 .8rem var(--ui)}

/* Who we are (home): copy column + a photo that fills the full height beside it, no stranded whitespace */
.about{align-items:stretch}.aboutcopy{min-width:0}.aboutcopy .aboutrel{max-width:none;margin:16px 0 14px}.aboutbtn{margin:0 0 6px}
.about .aboutimg{height:100%;min-height:240px;max-height:none}
@media(max-width:899px){.about .aboutimg{height:260px}}

/* Who is NIR page: spacious layout with pictures */
.whohero{position:relative;color:#fff;min-height:340px;display:flex;align-items:flex-end;margin-bottom:0}
.whohero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 55%}
.whohero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#0b1b3a00 20%,#0b1b3acc 100%)}
.whohero .wrap{position:relative;z-index:1;padding:90px 0 36px}.whohero .kicker{color:#fff;opacity:.9}
.whohero h1{font:900 clamp(2.2rem,1rem + 5vw,4rem)/1 var(--head);letter-spacing:-.04em;margin:0}.whohero h1 em{color:#fff;font-style:normal;text-decoration:underline;text-decoration-color:var(--red);text-decoration-thickness:.12em;text-underline-offset:.1em}
.who{max-width:1060px;padding-bottom:70px}.who .lede{font:1.3rem/1.6 var(--serif);max-width:62ch;margin:46px 0 0}
.whoband{margin-top:80px}.whoband h2{font:900 clamp(1.6rem,1rem + 2vw,2.3rem)/1.1 var(--head);letter-spacing:-.03em;text-transform:uppercase;margin:0 0 22px}
.whoband p{font:1.1rem/1.65 var(--serif);max-width:62ch}.whoband.two{display:grid;gap:30px;align-items:center}
.whophoto{width:100%;height:100%;min-height:260px;max-height:420px;object-fit:cover;border-radius:14px;display:block}
.faces{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 8px}.faces img{width:54px;height:54px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 3px #fff,0 0 0 5px var(--red);margin:0 6px 6px 0}
.prin2{display:grid;gap:0 40px}
.docards{display:grid;gap:26px}.docards article{border:1px solid var(--rule);border-radius:14px;overflow:hidden;background:#fff;box-shadow:0 8px 24px #0b1b3a10;display:flex;flex-direction:column}
.docards img{width:100%;height:200px;object-fit:cover;display:block;background:#f3f1ec}.docards img.logo{object-fit:contain;padding:22px}
.docards h3{font:900 1.25rem/1.15 var(--head);letter-spacing:-.02em;margin:22px 24px 8px}.docards p{font:1rem/1.55 var(--ui);margin:0 24px 18px;flex:1}.docards .btn{margin:0 24px 24px;align-self:flex-start}
.wintop{display:flex;gap:22px;align-items:center;background:var(--navy);color:#fff;border-radius:14px;padding:26px 30px;margin-bottom:12px}
.wintop b{font:900 4.5rem/1 var(--head);color:#fff;letter-spacing:-.05em}.wintop span{font:700 1.25rem/1.35 var(--ui)}
.wins{list-style:none;margin:0;padding:0}.wins li{display:grid;gap:6px 28px;padding:24px 0;border-bottom:1px solid var(--rule)}
.wins i{font:900 1rem var(--head);font-style:normal;color:var(--red);text-transform:uppercase;letter-spacing:.04em}.wins span{font:1.15rem/1.55 var(--serif)}
.whoread{margin-top:34px}.whoread .btn{margin-top:14px}
.whostrip{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:80px 0 0}.whostrip img{width:100%;height:150px;object-fit:cover;border-radius:12px;display:block}
.join{text-align:left}.join .btn{margin-top:6px}
@media(min-width:800px){.whoband.two{grid-template-columns:1.1fr 1fr;gap:56px}.prin2{grid-template-columns:1fr 1fr}.docards{grid-template-columns:1fr 1fr}.wins li{grid-template-columns:150px 1fr}.whostrip img{height:230px}.whohero{min-height:420px}}
.docards img[src*="reader-cover"]{object-position:50% 0}.whoread{margin:34px 0 14px}

/* who page, round 3: wins grouped by year; hero title on one line at every width */
.wins div p{font:1.15rem/1.55 var(--serif);margin:0 0 10px;max-width:none}.wins div p:last-child{margin:0}
.whohero h1{font-size:clamp(1.15rem,5.3vw,3.4rem);white-space:nowrap}
.whohero h1 em{text-decoration-skip-ink:none}
.winsub{font:900 1.2rem var(--head);text-transform:uppercase;letter-spacing:-.01em;margin:44px 0 4px}

/* one consistent reading measure for the who page (was 62ch next to wider blocks, which looked ragged) */
.who .lede,.whoband p,.whoread{max-width:72ch}


/* "Your vote counts" band on the who page */
.votecounts{background:var(--navy);color:#fff;border-radius:16px;padding:38px 34px;margin-top:70px}
.votecounts h2{color:#fff;margin:0 0 14px}.votecounts p{font:1.15rem/1.6 var(--serif);color:#fff;margin:0 0 14px;max-width:70ch}
.votecounts .goal{font:900 clamp(1.3rem,1rem + 1.5vw,1.8rem)/1.25 var(--head);letter-spacing:-.02em}
.votecounts .btn{margin-top:8px}
.who .lede{font-size:clamp(1.12rem,.9rem + 1vw,1.3rem)}


/* current home page photos page + link at the bottom of the send-a-photo page */
.photolink{margin-top:34px;padding-top:18px;border-top:1px solid var(--rule);font:1rem var(--ui)}
.hpphotos{max-width:1060px;padding-bottom:60px}.hpphotos h1{font:900 clamp(2rem,1rem + 4vw,3.2rem)/1 var(--head);letter-spacing:-.04em;margin:0 0 12px}.hpphotos h1 em{color:var(--red);font-style:normal}
.hpphotos figure{margin:44px 0 0}.hpphotos img{width:100%;height:auto;display:block;border-radius:14px}
.hpphotos figcaption{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline;margin-top:10px;font:1rem var(--ui)}.hpphotos figcaption span{color:var(--mute);font-size:.9rem}
.whohero h1{font-size:clamp(.95rem,4.6vw,3.2rem)}

.stay{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:26px 0}@media(max-width:700px){.stay{grid-template-columns:1fr}}
.stay .box{margin:0}.share{display:flex;flex-wrap:wrap;gap:8px}.share .btn{cursor:pointer}.share [hidden]{display:none}
.calmenu{position:relative;display:inline-block}.calmenu summary{list-style:none;cursor:pointer}.calmenu summary::-webkit-details-marker{display:none}
.calmenu summary:after{content:"";display:inline-block;width:.55em;height:.55em;margin-left:.7em;border:solid currentColor;border-width:0 3px 3px 0;transform:translateY(-.15em) rotate(45deg);transition:transform .2s}
.calmenu[open] summary:after{transform:translateY(.05em) rotate(225deg)}
.calpop{position:absolute;z-index:30;left:50%;top:calc(100% + 10px);width:min(21rem,calc(100vw - 2rem));transform:translateX(-50%);background:#fff;border:1px solid #17233322;border-radius:20px;box-shadow:0 18px 50px #17233340;padding:8px;text-align:left;animation:calin .18s ease-out}
@keyframes calin{from{opacity:0;transform:translate(-50%,-6px)}to{opacity:1;transform:translate(-50%,0)}}
.calrow{display:flex;align-items:center;gap:14px;padding:11px 12px;border-radius:14px;color:var(--ink);text-decoration:none}.calrow:hover,.calrow:focus-visible{background:#f2f4f8}
.calrow i{flex:none;width:2.4rem;height:2.4rem;border-radius:50%;display:grid;place-items:center;font:900 1.05rem var(--head);font-style:normal;color:#fff;background:#172333}
.calrow:nth-child(1) i{background:#1a73e8}.calrow:nth-child(2) i{background:#555}.calrow:nth-child(3) i{background:#0f6cbd}.calrow:nth-child(4) i{background:var(--red)}
.calrow b{display:block;font:800 1rem var(--ui)}.calrow em{display:block;font:.85rem var(--ui);font-style:normal;color:#5a6472}
@media(prefers-reduced-motion:reduce){.calpop{animation:none}}
/* ---- Text wrapping, permanently (applies everywhere; see CLAUDE.md "Layout rules") ----
   Headings, buttons, tags and short blurbs balance their lines; body copy avoids orphans and one-word last lines;
   long words and URLs never overflow. Do not put .btn inside a <p> and do not size text blocks with narrow ch max-widths. */
h1,h2,h3,h4,summary,.btn,.byes,.kicker,figcaption{text-wrap:balance}
p,li,dd,blockquote{text-wrap:wrap}  /* plain greedy wrapping: 'pretty' made early, uneven breaks on narrow screens */
@media(max-width:700px){p,li{hyphens:auto;-webkit-hyphens:auto}}
p,li,h1,h2,h3,a,td,th,figcaption{overflow-wrap:break-word}
.btn{text-align:center}
