/* /cook, /chicago, /dupage (kg 2026-10-14). The page's own sheet on top of tokens.css and base.css. base owns the shell,
   logo, Meet Chris, the folder (.ev-card), the link card (.link), the Neighbor Check, the Election Day card, the Follow
   card and the paid-for line; this sheet only adds what those do not have. kg 23:04 (Design PM swarm, A): back on the
   homepage's system. Radii 18/14/12/9 only, no shadows of our own, 12px between blocks, one icon language (the tint
   tile), green only for an advancing action (these pages have none), stamps in the homepage stamp's shape. */
.ea h1,.ea h2,.ea p,.ea ul{margin:0;padding:0}

/* Title block: the town template's h1 and 56x4 rule (places/template.html), with kg's "Early Voting" line (21:38). */
.ea-title{margin-top:var(--sp-4);font-size:22px;font-weight:800;line-height:1.25;letter-spacing:-.01em;color:var(--navy);text-wrap:balance}
.ea-h1sub{display:block;margin-top:4px;font-size:11.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--cornflower-press)}
.ea-rule{width:56px;height:4px;background:var(--cornflower);border-radius:3px;margin:10px 0 0}
.ea .ea-cross{margin-top:10px;font-size:14px;color:var(--ink)}
.ea-cross a{padding:14px 0;font-weight:700;color:var(--cornflower-press);text-decoration:underline;text-underline-offset:3px}   /* the padding lifts the tap area to 44px without moving the line */
.ea .ea-rule+a.meet,.ea .ea-cross+a.meet{margin-top:12px}

/* The date phase (early-voting/ev-phase.js sets <html data-ev>). An element shows only in the phases it lists. With
   scripts off there is no data-ev: the page shows the "open" version and drops the stamp and the chips. */
html:not([data-ev]) [data-show]:not([data-show~="open"]),html:not([data-ev]) [data-js],
html[data-ev="pre"] [data-show]:not([data-show~="pre"]),
html[data-ev="first"] [data-show]:not([data-show~="first"]),
html[data-ev="open"] [data-show]:not([data-show~="open"]),
html[data-ev="last"] [data-show]:not([data-show~="last"]),
html[data-ev="post"] [data-show]:not([data-show~="post"]){display:none!important}

/* The folder is base's .ev-card; this only gives the stamp room. */
.ea .ea-folder{margin-bottom:0;padding:20px 16px 14px}
/* Stamps: the homepage stamp's shape (.ev-row__when .stamp in base.css): navy 2px border, radius 6, leaning left.
   kg 21:38 white fill; 22:48 navy. */
.ea-stamp,.ea-chip{border:2px solid var(--navy);border-radius:6px;background:#fff;color:var(--navy);font-weight:800;text-transform:uppercase;white-space:nowrap;transform:rotate(-2deg)}
.ea-stamp{position:absolute;top:-24px;right:-4px;display:block;padding:4px 10px 5px;text-align:center;line-height:1.05}
.ea-stamp small{display:block;font-size:11px;letter-spacing:.06em}
.ea-stamp b{display:block;font-size:17px;letter-spacing:.05em}
.ea-stamp b i{font-style:normal}
/* Under 380 wide the full stamp reaches the tab label (measured: it covered "VOTING" at 360 and 320). The stamp keeps
   only its big line, "Open now" stacks, and the line it drops is said in full under the headline. */
@media (max-width:379.98px){.ea-stamp small{display:none}.ea-stamp{top:-22px;padding:3px 7px}.ea-stamp b{font-size:15px}.ea-stamp b i{display:block}}
@media (max-width:339.98px){.ea-stamp b{font-size:14px}}
.ea-chip{display:inline-block;padding:2px 7px;font-size:11px;letter-spacing:.08em}
.ea .ea-lead{font-size:20px;font-weight:800;line-height:1.25;color:var(--navy);text-wrap:balance}
.ea-lead a{padding:10px 0;color:var(--cornflower-press);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
.ea-lead a .ea-ext{display:inline-block;width:18px;height:18px;margin-left:4px;vertical-align:-2px}
.ea-ext{fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.ea .ea-sub{margin-top:14px;font-size:15px;font-weight:500;color:var(--ink)}   /* kg 23:18 A1: the count in bold, the date in regular weight */
.ea .ea-sub span{display:block}   /* two clean lines, never a spilled word (kg 21:30) */
.ea .ea-sub span:first-child{font-weight:800;color:var(--navy)}
.ea .ea-sub--one{font-weight:500;color:var(--ink)}   /* cw 2026-10-15 (refinement 5): the open-phase sub has no count, so no bold half; one line, one weight */
.ea-table{width:100%;border-collapse:collapse;margin-top:12px;font-size:16px;border-top:1px solid var(--manila-line)}
.ea-table tr{border-bottom:1px solid var(--manila-line)}   /* kg 23:18 A1: thin rules, no dotted leaders */
.ea-table th,.ea-table td{padding:9px 0;white-space:nowrap}
.ea-table th{text-align:left;font-weight:700;color:var(--navy)}
.ea .ea-table th{white-space:normal;padding-right:12px;line-height:1.25}   /* kg 23:20: full day names; on the smallest phones the name wraps, the time never does */
.ea-table td{text-align:right;color:var(--ink);font-variant-numeric:tabular-nums}
.ea .ea-src{margin-top:10px;font-size:12px;color:var(--ink);text-align:right}

/* Sites: each card is the homepage's card box (white, 1px line, radius 18, flat). Town or ward first with its stamp
   (kg 20:56, 21:33), venue, street, "Directions" on the last line (kg 22:44 A). The whole card is the map link and
   takes the tint on hover. Hours show on a card only when that site differs from the folder. */
.ea-sites{margin-top:12px}
.ea .ea-h2{margin:0 2px 10px;font-size:18px;font-weight:800;color:var(--navy)}
.ea-list{list-style:none;display:flex;flex-direction:column;gap:12px}
.ea-row{display:flex;flex-direction:column;padding:15px 16px;background:#fff;border:1px solid var(--line);border-radius:var(--r-card);text-decoration:none;color:inherit}
.ea-row:hover,.ea-row:active{background:var(--tint);border-color:var(--cornflower);text-decoration:none}
.ea-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.ea-big{font-size:18px;font-weight:800;line-height:1.2;color:var(--navy)}
.ea-chips{flex:none;padding-right:2px}
.ea-venue{margin-top:3px;font-size:15px;font-weight:500;line-height:1.3;color:var(--ink);text-wrap:balance}
.ea-addr{font-size:14.5px;color:var(--ink)}
.ea-info{font-size:14.5px;font-weight:600;color:var(--ink)}
.ea-row em{margin:4px 0 2px;font-style:normal;font-size:14.5px;font-weight:700;line-height:1.35;color:var(--warn-ink-strong)}   /* orange: a site's hours differ from the folder (kg 2026-10-14) */
.ea-row em i{font-style:normal;white-space:nowrap}
.ea-last{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;column-gap:10px}   /* Directions shares the last line, and drops below it only when the line is full */
.ea-dir{margin-left:auto;display:inline-flex;align-items:center;gap:3px;font-size:15px;font-weight:800;color:var(--navy)}   /* navy text, cornflower mark: the homepage's "See sites and hours" */
.ea-dir .ea-ext{width:18px;height:18px;color:var(--cornflower-press)}
/* The last row of the list and the registration links are base's .link card. */
.ea-list .link,.ea-reg .link{margin:0}
.ea-reg{margin-top:12px}
.ea .ea-k{margin:0 2px 10px;font-size:18px;font-weight:800;color:var(--navy)}
.ea-reg .link+.link{margin-top:12px}

/* Election Day and the Neighbor Check keep the page's rhythm: Election Day directly above the Neighbor Check
   (kg 2026-09-27, reaffirmed 23:04). */
.ea .ed{margin-top:12px}
.ea .dc{margin:12px 0 0}
.ea .t2-soc__head{margin:0 0 12px}   /* the p reset above was eating the Follow heading's gap (kg 21:47) */

/* Chicago's count on the other-area cards: 52, or 55 on Oct 28 to 30 (ev-phase.js sets data-uni). Scripts off: 52. */
/* .ea-n52 / .ea-n55 (Chicago's 52 or 55) moved to site/base.css 2026-10-17, shared with the 404 page. */
/* kg 2026-10-15 14:15: the other-area rows match the homepage folder's rows (index.html .ev-areas, copied here). */
.ea .ev-areas{display:block;margin-top:12px;background:#fff;border:1px solid var(--manila-line);border-radius:var(--r-control);overflow:hidden}
.ea .ev-area{display:flex;align-items:center;gap:10px;min-height:44px;padding:12px 14px;color:var(--navy);text-decoration:none}
.ea .ev-area+.ev-area{border-top:1px solid var(--line)}
.ea .ev-area:hover,.ea .ev-area:active{background:var(--tint);color:var(--navy);text-decoration:none}
.ea .ev-area>span{flex:1;display:flex;flex-direction:column}
.ea .ev-area b{font-size:16px;font-weight:800;line-height:1.25}
.ea .ev-area span span{font-size:12.5px;font-weight:500;color:var(--ink)}
.ea .ev-area svg{flex:none;width:20px;height:20px;fill:none;stroke:var(--cornflower-press);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
/* kg 14:30 (A): the other-area folder, a small .ev-card: the tab, the question, the rows. */
.ea .ea-other{margin:52px 0 0;padding:16px}
.ea .ea-other__q{margin:0;font-size:20px;font-weight:800;line-height:1.25;color:var(--navy);text-wrap:balance}
.ea .ea-other+.ea-reg{margin-top:12px}
/* kg 2026-10-15 14:41 (C): the See all card, tinted, in the site cards' shape, with "Full list" where Directions sits. */
.ea-all{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 16px;background:var(--tint);border:1px solid var(--cornflower);border-radius:var(--r-card);color:var(--navy);text-decoration:none}
.ea-all:hover,.ea-all:active{color:var(--navy);text-decoration:none;border-color:var(--cornflower-press)}
.ea-all>span:first-child{display:flex;flex-direction:column;min-width:0}
.ea-all b{font-size:18px;font-weight:800;line-height:1.2}
.ea-all>span:first-child span{margin-top:3px;font-size:14.5px;color:var(--ink)}
.ea-all__go{flex:none;display:inline-flex;align-items:center;gap:3px;font-size:15px;font-weight:800;color:var(--navy);white-space:nowrap}
.ea-all__go .ea-ext{width:18px;height:18px;color:var(--cornflower-press)}
/* kg 2026-10-15 22:08: /early-voting. The folder sits under Meet Chris, so it takes the tab's room; the lookup sits
   under the rows with its own label; a split town's two rows appear under the field. */
.ea .ea-hub{margin-top:52px}
.ea .ea-hub__find{margin:16px 0 0}
.ea .ea-hub__label{display:block;margin:0 0 8px;font-size:15px;font-weight:700;color:var(--navy)}
.ea .ea-hub__split p{margin:12px 0 0;font-size:14.5px;line-height:1.4;color:var(--ink)}
