/* ===== GRS B on Astra: integration + build-specific styles ===== */
body.d-b{font-family:Inter,system-ui,sans-serif;color:var(--ink);font-size:17px;line-height:1.6;background:#fff}
body.d-b h1,body.d-b h2,body.d-b h3{font-family:var(--fh);font-weight:400;line-height:1.1}
body.d-b .site-content>.ast-container{max-width:none;padding:0;display:block}
body.d-b .entry-content>*{margin-top:0;margin-bottom:0}
body.d-b #primary{margin:0;padding:0}
body.d-b .entry-content a.btn-red,body.d-b a.btn-red{color:#fff}
body.d-b .entry-content a:where(:not(.btn)){text-decoration:none}
body.d-b .entry-content p{margin-bottom:0}
body.d-b .entry-content ul,body.d-b .entry-content ol{margin-left:20px}
body.d-b .wp-block-html{margin:0}
.ast-page-builder-template .entry-header,.ast-page-builder-template .post-thumb{display:none}
.hdr .nav a{color:var(--navy)}.hdr .nav a:hover{color:var(--red)}
.hdr-in{max-width:1376px}
.nav{gap:24px;font-size:14.5px}
/* hero image position comes from grs-config.php */
.hero-full .hero-bg img{object-position:var(--hero-pos,75% 35%)}
/* ---- item 2: on mobile the headline + red button sit ABOVE the photo ---- */
@media(max-width:760px){
 .hero.hero-full{display:flex;flex-direction:column;align-items:stretch;padding:0;min-height:0;background:#0b0e22}
 .hero-full .hero-in{order:1;padding-top:28px;padding-bottom:26px}
 .hero-full .hero-bg{order:2;position:relative;inset:auto;height:260px}
 .hero-full .hero-bg img{object-position:var(--hero-pos-m,62% 30%)}
 .hero-full .hero-bg:after{background:linear-gradient(180deg,#0b0e22 0%,rgba(11,14,34,.15) 30%,rgba(11,14,34,0) 60%)}
 .hero-full .hero-txt:before{margin-bottom:16px}
 .hero-full h1{font-size:42px;margin-bottom:14px}
 .hero-full .lead{font-size:16.5px;margin-bottom:22px}
 .hero-full .btns{flex-direction:row;flex-wrap:wrap;gap:12px 22px;align-items:center}
 .nav-open .nav{display:flex;position:absolute;top:64px;left:0;right:0;flex-direction:column;gap:0;background:#fff;border-bottom:1px solid var(--line);padding:8px 20px 16px;box-shadow:0 12px 24px rgba(0,0,0,.08)}
 .nav-open .nav a{padding:12px 0;border-bottom:1px solid var(--line)}
}
/* ---- item 8: proof section = (hidden) stat bar + client photo row ---- */
.proof{background:#fff}
.proof-stats{background:var(--navy);color:#fff;border-radius:4px;padding:44px 24px;margin-bottom:40px}
.proof-stats.n3{grid-template-columns:repeat(3,1fr)}
.proof-stats .stat .num{font-family:"DM Serif Display",serif;font-weight:400;font-size:64px}
.client-row{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:20px}
.client-row figure{margin:0;position:relative;border-radius:4px;overflow:hidden;aspect-ratio:4/3;background:#0b0e22}
.client-row img{width:100%;height:100%;object-fit:cover}
.client-row figcaption{position:absolute;left:0;right:0;bottom:0;padding:28px 16px 12px;color:#fff;font-size:14px;font-weight:600;background:linear-gradient(180deg,rgba(11,14,34,0),rgba(11,14,34,.85))}
.proof .note{margin-top:18px;color:var(--mut);font-size:15px}
@media(max-width:760px){.client-row{grid-template-columns:1fr;gap:14px}.proof-stats,.proof-stats.n3{grid-template-columns:1fr 1fr}.proof-stats .stat .num{font-size:44px}}
/* ---- service pages ---- */
.svc-intro{display:grid;grid-template-columns:1.1fr 1fr;gap:64px;align-items:center}
.svc-intro .sblock-img{aspect-ratio:4/3}
.svc-intro h2{font-size:44px;color:var(--navy);margin:0 0 16px}
.svc-intro ul{margin:22px 0 28px 20px;color:var(--mut)}.svc-intro li{margin-bottom:8px}
.sb-ctas{display:flex;gap:24px;align-items:center;flex-wrap:wrap}
.get-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.get{padding:28px}.get h3{font-size:24px;color:var(--navy);margin:0 0 8px}.get p{color:var(--mut);font-size:16px}
.grs-faq{max-width:880px}
.grs-faq h2{font-size:44px;color:var(--navy);margin-bottom:28px}
.grs-faq .wp-block-details{border-top:1px solid var(--line);padding:20px 0;margin:0}
.grs-faq .wp-block-details:last-child{border-bottom:1px solid var(--line)}
.grs-faq summary{font-family:"DM Serif Display",serif;font-size:23px;color:var(--navy);cursor:pointer;list-style:none;position:relative;padding-right:36px}
.grs-faq summary::-webkit-details-marker{display:none}
.grs-faq summary:after{content:"+";position:absolute;right:0;top:-2px;color:var(--red);font-family:Inter,sans-serif;font-size:26px;font-weight:600}
.grs-faq details[open] summary:after{content:"–"}
.grs-faq details p{color:var(--mut);margin-top:10px!important;max-width:760px}
.plan-band{background:#f7f5f0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:56px 0}
.plan-band .wrap{display:flex;justify-content:space-between;align-items:center;gap:32px}
.plan-band h2{font-size:36px;color:var(--navy)}.plan-band p{color:var(--mut);margin-top:8px}
.btn-navy{background:var(--navy);color:#fff!important}.btn-navy:hover{background:#0b0e22}
.other-svcs{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.other-svcs a{padding:24px;display:block}.other-svcs h3{font-size:22px;color:var(--navy);margin:0 0 6px}
@media(max-width:760px){.svc-intro,.get-grid,.other-svcs{grid-template-columns:1fr;gap:24px}.svc-intro h2,.grs-faq h2{font-size:32px}.grs-faq summary{font-size:20px}.plan-band .wrap{flex-direction:column;align-items:flex-start}.plan-band h2{font-size:28px}}
.ph-block{border:2px dashed #d4a300;background:#fffbea;border-radius:6px;padding:20px;color:#7a5600;font-weight:600}
/* ---- Fluent Forms in B style ---- */
.form-shell{padding:36px;box-shadow:0 24px 60px rgba(0,0,0,.08)}
.form-shell h2{font-size:28px;color:var(--navy);margin:4px 0 18px}
.fluentform .ff-el-group{margin-bottom:16px}
.fluentform .ff-el-input--label label{font-size:14px;font-weight:600;color:var(--ink)}
.fluentform .ff-el-form-control{font:inherit!important;font-size:16px!important;padding:11px 14px!important;border:1px solid #cfd3da!important;border-radius:6px!important}
.fluentform .ff-el-is-required.asterisk-right label:after{color:var(--red)}
.fluentform .ff-btn-submit{background:var(--red)!important;border-color:var(--red)!important;color:#fff!important;font-weight:700!important;font-size:16px!important;padding:15px 30px!important;border-radius:2px!important}
.fluentform .ff_t_c{font-size:14px;color:var(--ink);font-weight:600}
.fluentform .ff-el-form-check label{font-size:14px;color:var(--mut)}
.fluentform .grs-pills .ff-el-form-check{display:inline-block;margin:0 8px 8px 0;border:1px solid #cfd3da;border-radius:30px;padding:6px 12px}
.fluentform .ff-el-form-check-label{display:inline-flex;gap:6px;align-items:flex-start}
.grs-spam-slot{font-size:13px;color:#7a5600;background:#fffbea;border:1px dashed #d4a300;border-radius:6px;padding:8px 12px;margin-bottom:16px}
.form-legal{margin-top:8px}
.credits-list li{margin-bottom:10px}
.legal-ph{max-width:820px}
/* Astra article padding + link underline resets */
body.d-b .ast-article-single,body.d-b article.page{padding:0!important;margin:0!important;border:0}
body.d-b .entry-content a,body.d-b a{text-decoration:none}
body.d-b .entry-content .plan-link,body.d-b .form-legal a,body.d-b .consent a{text-decoration:underline}
body.d-b .hero .lead{margin-bottom:34px}
@media(max-width:760px){body.d-b .hero-full .lead{margin-bottom:22px}}
body.d-b .site-content{background:#fff}
body.d-b .cta a.btn-red{background:#fff;color:var(--red)!important}
body.d-b .cta a.btn-red:hover{background:#f3f4f6}
.also>span{display:inline}
body.d-b .phero h1{color:#fff}
body.d-b .phero .lead{margin-bottom:30px}
.grs-faq{max-width:1240px}.grs-faq .wp-block-details,.grs-faq h2{max-width:880px}
#ast-scroll-top{display:none!important}
.client-row figure{aspect-ratio:auto;height:320px}
@media(max-width:760px){.client-row figure{height:240px}}
.client-row figure{height:auto;background:none;overflow:visible}
.client-row img{height:300px;border-radius:4px}
.client-row figcaption{position:static;background:none;color:var(--navy);padding:10px 2px 0;font-size:14px}
@media(max-width:760px){.client-row img{height:220px}}

/* Oct 20 7:3x PM: 5 service pages -> 4 'other programs'; About bio block (image never upscaled past 600px native) */
.other-svcs{grid-template-columns:repeat(4,1fr)}
@media(max-width:1100px){.other-svcs{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.other-svcs{grid-template-columns:1fr}}
.grs-bio{background:var(--alt);display:block}
.bio-grid{display:grid!important;grid-template-columns:360px minmax(0,1fr);gap:56px;align-items:center}.bio-txt{max-width:640px}
.bio-fig{margin:0;width:360px;max-width:100%}
.bio-fig img{display:block;width:100%;max-width:360px;height:auto;border-radius:4px}
.bio-fig figcaption{margin-top:10px;color:var(--mut);font-size:14px;font-weight:600}
.bio-txt h2{color:var(--navy);margin:10px 0 14px}
@media(max-width:760px){.bio-grid{grid-template-columns:1fr;gap:24px}.bio-fig{width:300px}}
.hero-full .hero-bg picture{display:block;width:100%;height:100%}
.hero-full .hero-bg picture img{width:100%!important;height:100%!important;object-fit:cover}
@media(max-width:760px){.hero-full .hero-bg{width:100%;align-self:stretch}}

/* CQC FIX 7:43 PM: bio photo capped at 240px (descreened TV frame; residual line texture stays invisible at this size) */
.bio-grid{grid-template-columns:240px minmax(0,1fr)!important}
.bio-fig{width:240px!important}.bio-fig img{max-width:240px!important}
@media(max-width:760px){.bio-grid{grid-template-columns:1fr!important}.bio-fig{width:240px!important}}
/* 7:57 PM DRAFT privacy policy */
.draft-banner{background:#fff3cd;border:2px solid #d4a300;color:#6b4c00;font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:14px;padding:12px 16px;border-radius:6px;margin-bottom:24px}
.privacy .pp-eff{color:var(--mut);margin-bottom:28px}.privacy .pp-sec{margin-bottom:26px}.privacy h2{font-size:24px;color:var(--navy);margin:0 0 10px}.privacy p,.privacy li{font-size:16.5px;line-height:1.65}.privacy ul{margin:0 0 12px 20px}
.privacy .lr{background:#fde8e7;color:#a3160f;font-weight:700;font-size:12px;padding:1px 6px;border-radius:4px;white-space:nowrap}
.privacy .pp-quote{border-left:4px solid var(--red,#e3231b);background:#f5f6f8;margin:8px 0 14px;padding:12px 16px;font-size:15px}
.ff-el-tc a,.ff_t_c a{text-decoration:underline}
body.d-b .ff_tc_label a,body.d-b .ff-el-tc a{text-decoration:underline!important}
.privacy p{margin:0 0 12px}

@media (min-width:761px){.nav{align-items:center}}
.nav-dd{position:relative}
.nav-dd-top:after{content:"";display:inline-block;width:6px;height:6px;margin-left:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-3px) rotate(45deg)}
.dd-menu{display:none;position:absolute;top:100%;left:-20px;z-index:50;padding:14px;margin-top:12px;background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:0 18px 40px rgba(10,20,50,.14);grid-template-columns:repeat(2,minmax(190px,1fr));gap:2px 16px;min-width:430px}
.dd-menu:before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px}
.dd-menu a{padding:8px 10px;border-radius:6px;font-weight:600;white-space:nowrap}
.dd-menu a:hover,.dd-menu a.on{background:var(--alt);color:var(--red)}
.dd-menu .dd-all{grid-column:1/-1;border-bottom:1px solid var(--line);border-radius:0;margin-bottom:6px;padding-bottom:10px}
.nav-dd:hover .dd-menu,.nav-dd:focus-within .dd-menu{display:grid}
@media (max-width:760px){
 .nav-open .nav-dd{width:100%}
 .nav-open .nav-dd .dd-menu{display:block;position:static;margin:0;padding:0 0 0 14px;border:0;box-shadow:none;min-width:0}
 .nav-open .nav-dd .dd-menu .dd-all{display:none}
 .nav-open .nav-dd .dd-menu a{display:block;padding:9px 0;font-weight:500;border-bottom:1px solid var(--line);border-radius:0}
 .nav-open .nav-dd-top{display:block;padding:12px 0;border-bottom:1px solid var(--line)}
 .nav-open .nav-dd-top:after{display:none}
}

/* GRS blog posts: readable article layout (single posts only; pages untouched) */
body.single-post .site-content>.ast-container{max-width:780px;margin:0 auto;padding:48px 24px 72px}
body.single-post .entry-header,body.single-post .post-thumb{display:block}
body.single-post .entry-header{margin-bottom:28px}
body.single-post .entry-title{font-size:44px;line-height:1.15;color:var(--navy);font-family:"DM Serif Display",Georgia,serif;font-weight:400;margin-bottom:14px}
body.single-post .entry-meta,body.single-post .entry-meta a{font-size:14px;color:var(--mut)}
body.single-post .post-thumb,body.single-post .ast-single-post-featured-section{width:100%;max-width:none;float:none;margin:0}
body.single-post .post-thumb img{max-width:100%;width:100%;height:auto;border-radius:8px;margin:0 0 32px}
body.single-post .ast-article-single{display:block;padding:0}
body.single-post .entry-content{font-size:18px;line-height:1.75;color:var(--ink)}
body.single-post .entry-content>*{margin-bottom:1.1em}
body.single-post .entry-content p{margin-bottom:1.1em}
body.single-post .entry-content h2{font-family:"DM Serif Display",Georgia,serif;font-size:32px;line-height:1.2;color:var(--navy);margin:1.8em 0 .6em}
body.single-post .entry-content h3{font-size:22px;font-weight:700;line-height:1.3;color:var(--navy);margin:1.5em 0 .5em}
body.single-post .entry-content ul,body.single-post .entry-content ol{margin:0 0 1.2em 1.4em;padding-left:.4em}
body.single-post .entry-content li{margin-bottom:.45em}
body.single-post .entry-content a:where(:not(.btn)){color:var(--red);text-decoration:underline;text-underline-offset:2px}
body.single-post .entry-content blockquote{background:var(--alt);border-left:4px solid var(--red);border-radius:6px;padding:20px 24px;margin:0 0 1.5em;font-style:normal}
body.single-post .entry-content blockquote p,body.single-post .entry-content blockquote li{font-style:normal}
body.single-post .entry-content blockquote>*:last-child{margin-bottom:0}
body.single-post .entry-content table{width:100%;border-collapse:collapse;font-size:15.5px;line-height:1.5;margin:0 0 1.5em;display:block;overflow-x:auto}
body.single-post .entry-content th{background:var(--navy);color:#fff;text-align:left;font-weight:600}
body.single-post .entry-content th,body.single-post .entry-content td{border:1px solid var(--line);padding:10px 12px;vertical-align:top}
body.single-post .entry-content tr:nth-child(even) td{background:var(--alt)}
body.single-post .post-navigation,body.single-post .comments-area{max-width:780px;margin:32px auto 0}
@media(max-width:760px){body.single-post .site-content>.ast-container{padding:28px 18px 56px}body.single-post .entry-title{font-size:32px}body.single-post .entry-content{font-size:17px}body.single-post .entry-content h2{font-size:26px}}

/* GRS news cards (home "Latest" strip + /news/ page). Scoped to .grs-posts / .news-latest / .news-list */
body.d-b .entry-content>.wp-block-group.sec{padding:110px 0;margin-top:0;margin-bottom:0;max-width:none}
body.d-b .entry-content>.wp-block-group.sec>.wrap{max-width:var(--wp--custom--ast-content-width-size,1240px);margin-left:auto;margin-right:auto}
body.d-b .news-latest{background:#f7f5f0;border-top:1px solid var(--line)}
body.d-b .news-latest .sec-head,body.d-b .news-list .sec-head{margin-bottom:40px}
body.d-b .grs-news-wrap>*{margin-block-start:0}
body.d-b .grs-posts{margin:0}
body.d-b .grs-posts ul.wp-block-post-template{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;max-width:none}
body.d-b .grs-posts li.wp-block-post{margin:0;padding:0;background:#fff;border:1px solid var(--line);border-radius:4px;overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .2s,transform .2s}
body.d-b .grs-posts li.wp-block-post:hover{box-shadow:0 10px 30px rgba(20,24,58,.10);transform:translateY(-2px)}
body.d-b .grs-posts .wp-block-post-featured-image{margin:0;width:100%}
body.d-b .grs-posts .wp-block-post-featured-image a{display:block}
body.d-b .grs-posts .wp-block-post-featured-image img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;border-radius:0}
body.d-b .grs-posts .wp-block-post-date{margin:20px 22px 0;font-family:var(--fb);font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--red)}
body.d-b .grs-posts .wp-block-post-title{margin:8px 22px 0;font-family:var(--fh);font-size:22px;line-height:1.25;font-weight:400;color:var(--navy)}
body.d-b .grs-posts .wp-block-post-title a{color:inherit;text-decoration:none}
body.d-b .grs-posts .wp-block-post-title a:hover{color:var(--red)}
body.d-b .grs-posts .wp-block-post-excerpt{margin:12px 22px 24px;font-size:15px;line-height:1.6;color:var(--mut)}
body.d-b .grs-posts .wp-block-post-excerpt p{margin:0}
body.d-b .grs-posts .wp-block-post-excerpt__more-text{margin-top:12px}
body.d-b .news-all{margin:40px 0 0}
body.d-b .news-all a{font-weight:700;color:var(--red);text-decoration:none}
body.d-b .news-all a:hover{text-decoration:underline}
body.d-b .grs-posts .wp-block-query-pagination{margin-top:40px;gap:10px;font-weight:600}
body.d-b .grs-posts .wp-block-query-pagination a{color:var(--navy)}
@media (max-width:1000px){body.d-b .grs-posts ul.wp-block-post-template{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){body.d-b .entry-content>.wp-block-group.sec{padding:64px 0}body.d-b .grs-posts ul.wp-block-post-template{grid-template-columns:1fr;gap:20px}body.d-b .grs-posts .wp-block-post-title{font-size:20px}}
/* GRS AZ tracker 1602 wide layout v3, 2026-10-31, page-scoped */
/* GRS AZ Early Vote Tracker (post 1602): wide-screen dashboard, v2. PROPOSAL ONLY, not live.
   Ref S3-az-tracker-wide-layout-2026-10-31.
   - Every selector starts with body.postid-1602.
   - Every layout/visual rule is inside @media (min-width:1280px) or wider.
   - Colors are the site's own tokens, sampled from grs-base.css:
     navy #14183a, red #e3231b, red2 #c41a12, ink #1f2937, muted #4b5563,
     line #e5e7eb, alt #f5f6f8, white #fff.
   - No copy or numbers are added or changed. */

/* Spacing-neutral rule (all widths). The new wrapper divs would otherwise strip
   the theme's ".entry-content>*{margin:0 0 1.1em}" from the elements they wrap.
   This gives those elements back exactly the spacing they have today, which is
   why 390/1024/1279 render pixel-identical. It sets no layout, color or size. */
body.postid-1602 .entry-content :where(.grs-hero,.grs-hero-main,.grs-stats,.grs-trend,.grs-changed,.grs-county-grid,.grs-info,.grs-info>div,.grs-close)>*{margin-top:0;margin-bottom:1.1em}

@media (min-width:1280px){
  body.postid-1602{
    --g:32px;            /* the one gutter */
    --sec:64px;          /* space between sections */
    --pad:32px;          /* card padding */
    --gnavy:#14183a; --gred:#e3231b; --gred2:#c41a12; --gink:#1f2937;
    --gmut:#4b5563; --gline:#e5e7eb; --galt:#f5f6f8;
  }
  body.postid-1602 .site-content>.ast-container{max-width:1200px}

  /* header: the banner repeats the stat row below, so it is hidden on wide
     screens only (OPEN QUESTION in the plan); the title row gets a rule under it */
  body.postid-1602 .post-thumb{display:none}
  body.postid-1602 .entry-header{margin-bottom:var(--g);padding-bottom:20px;border-bottom:1px solid var(--gline)}
  body.postid-1602 .entry-title{font-size:48px;margin-bottom:8px}

  /* one section-header style everywhere: short red bar, DM Serif, navy */
  body.postid-1602 .entry-content h2{font-size:32px;line-height:1.2;margin:var(--sec) 0 24px}
  body.postid-1602 .entry-content h2::before{content:"";display:block;width:40px;height:4px;border-radius:2px;background:var(--gred);margin-bottom:14px}
  /* h2 at the top of a card: same style, no outer section space */
  body.postid-1602 :is(.grs-hero-main,.grs-info>div)>h2{margin:0 0 20px}

  /* shared card look */
  body.postid-1602 :is(.grs-hero-main,.grs-hero>figure,.grs-trend>figure,.grs-changed>p,.grs-county,.grs-info>div,.grs-close){
    background:#fff;border:1px solid var(--gline);border-radius:12px;padding:var(--pad);margin:0;box-shadow:0 1px 2px rgba(20,24,58,.04)}
  body.postid-1602 :is(.grs-hero-main,.grs-county,.grs-info>div,.grs-close)>:last-child{margin-bottom:0}

  /* 12-column grids, one gutter, rows stretch so edges line up */
  body.postid-1602 :is(.grs-hero,.grs-trend,.grs-info){display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g);row-gap:var(--g);align-items:stretch;margin:0}

  /* ---------- 1. hero: Updated stamp, intro, stat row | statewide map ---------- */
  body.postid-1602 .grs-hero{margin-bottom:0}
  body.postid-1602 .grs-hero-main{grid-column:1/span 6;display:flex;flex-direction:column;justify-content:space-between;gap:20px}
  body.postid-1602 .grs-hero-main>*{margin:0!important}
  body.postid-1602 .grs-hero-main>p:first-child{font-size:14px;letter-spacing:.06em;text-transform:uppercase;color:var(--gred2)}
  body.postid-1602 .grs-hero-main>p:nth-child(2){font-size:18px;line-height:1.65;color:var(--gink)}
  body.postid-1602 .grs-hero-main>p:last-child{font-size:14px;color:var(--gmut)}
  body.postid-1602 .grs-hero>figure{grid-column:span 6;display:flex;align-items:center;justify-content:center;padding:16px}
  body.postid-1602 .grs-hero>figure img{width:100%;height:100%;max-height:100%;object-fit:contain;border-radius:6px}

  /* stat row built from the existing two paragraphs (spans only, same words) */
  body.postid-1602 .grs-stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px;margin:0!important}
  body.postid-1602 .grs-stats>p,body.postid-1602 .grs-stats strong{display:contents}
  body.postid-1602 .grs-stats br{display:none}
  body.postid-1602 .grs-stat{display:flex;align-items:center;grid-column:span 2;min-height:96px;padding:16px 20px;border-radius:10px;background:var(--galt);border-top:4px solid var(--gline);font-size:18px;font-weight:600;line-height:1.35;color:var(--gnavy);text-wrap:balance;font-variant-numeric:tabular-nums}
  body.postid-1602 .grs-margin{order:-2;grid-column:span 3;min-height:112px;background:var(--gnavy);color:#fff;border-top-color:var(--gred);font-size:28px;font-weight:700}
  body.postid-1602 .grs-total{order:-1;grid-column:span 3;min-height:112px;background:#fff;border:1px solid var(--gline);border-top:4px solid var(--gnavy);font-size:28px;font-weight:700}
  body.postid-1602 .grs-gop{border-top-color:var(--gred)}
  body.postid-1602 .grs-dem{border-top-color:var(--gnavy)}
  body.postid-1602 .grs-oth{border-top-color:#9ca3af}

  /* ---------- 2. trend: chart card | table card, takeaway spans both ---------- */
  body.postid-1602 .grs-trend>h2{grid-column:1/-1;margin-bottom:-8px}
  body.postid-1602 .grs-trend>p{grid-column:1/-1;margin:0;max-width:none}
  body.postid-1602 .grs-trend>figure.wp-block-image{grid-column:1/span 6;display:flex;align-items:center;justify-content:center;padding:16px}
  body.postid-1602 .grs-trend>figure.wp-block-image img{width:100%;height:auto;border-radius:6px}
  body.postid-1602 .grs-trend>figure.wp-block-table{grid-column:span 6;display:flex;padding:16px}
  body.postid-1602 .grs-trend>figure.wp-block-table table{display:table;height:100%;margin:0;font-size:15px}
  body.postid-1602 .grs-trend>figure.wp-block-table td,body.postid-1602 .grs-trend>figure.wp-block-table th{vertical-align:middle}
  body.postid-1602 .grs-trend>p:last-child{font-size:19px;line-height:1.6;color:var(--gink);padding:24px var(--pad);background:var(--galt);border-left:4px solid var(--gred);border-radius:0 12px 12px 0}

  /* ---------- 3. what changed: one card, two balanced columns ---------- */
  body.postid-1602 .grs-changed{margin:0}
  /* v3: one column, ~70ch measure, no column breaks */
  /* card spans the full 12-column width; the text measure stays <=70ch via right padding */
  body.postid-1602 .grs-changed>p{max-width:none!important;width:100%;box-sizing:border-box;padding-right:max(var(--pad),calc(100% - 70ch - var(--pad)))!important;font-size:18px;line-height:1.7;margin:0}

  /* ---------- all 15 counties table ---------- */
  body.postid-1602 .entry-content>p.has-small-font-size{display:none} /* phone-only tip */
  body.postid-1602 .entry-content>p{max-width:66%}
  body.postid-1602 .entry-content>figure.wp-block-table{margin:0}
  body.postid-1602 .entry-content>figure.wp-block-table table{display:table;margin:0;border-radius:12px;overflow:hidden}

  /* ---------- 5. counties: uniform card grid, rows aligned with subgrid ---------- */
  /* v3 county layout: one grid, visual order only (CSS order; DOM order untouched).
     Counties with a card image first (lead order kept), then card-less counties as stat tiles. */
  body.postid-1602 .grs-county-grid{display:grid;grid-template-columns:repeat(24,minmax(0,1fr));column-gap:var(--g);row-gap:0;margin:0}
  body.postid-1602 .grs-county:has(figure){grid-column:span 12}
  body.postid-1602 .grs-county:not(:has(figure)){order:1;grid-column:span 6;grid-row:span 3;padding:20px 22px;background:var(--galt);box-shadow:none}
  /* 1280: 7 tiles = 4 + 3, second row centred (starts at column 4 of 24) */
  body.postid-1602 .grs-county:nth-child(5 of .grs-county:not(:has(figure))){grid-column:4/span 6}
  body.postid-1602 .grs-county{position:relative;display:grid;grid-row:span 4;grid-template-rows:subgrid;row-gap:10px;margin:0 0 var(--g)!important;padding:24px}
  body.postid-1602 .grs-county>*{margin:0!important}
  /* Maricopa's empty anchor span: taken out of the grid so every card has the same 4 rows; the #maricopa-precincts link still works */
  body.postid-1602 .grs-county>span[id]:empty{position:absolute;top:0;left:0}
  /* WordPress turns a stray </p> after that span into an empty <p>; it holds no text */
  body.postid-1602 .grs-county>p:empty{display:none}
  body.postid-1602 .grs-county h3{font-size:20px;line-height:1.3;min-height:2.6em;padding-bottom:10px;border-bottom:2px solid var(--gnavy)}
  body.postid-1602 .grs-county:not(:has(figure)) h3{font-size:18px}
  body.postid-1602 .grs-county h3+p{font-size:14px;color:var(--gmut);line-height:1.4}
  body.postid-1602 .grs-county h3+p+p{font-size:16px;line-height:1.7}
  body.postid-1602 .grs-county figure img{display:block;width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px}

  /* ---------- 6. deadlines | ballot status + what the numbers mean ---------- */
  body.postid-1602 .grs-info{margin-top:var(--sec)}
  body.postid-1602 .grs-info>div{margin:0}
  body.postid-1602 .grs-deadlines{grid-column:1/span 6;grid-row:1/span 2}
  body.postid-1602 .grs-status{grid-column:7/span 6}
  body.postid-1602 .grs-meaning{grid-column:7/span 6}
  body.postid-1602 .grs-info h3{font-size:19px;margin:1.2em 0 .4em}
  body.postid-1602 .grs-info :is(p,li){font-size:16.5px;line-height:1.65}
  body.postid-1602 .grs-info>div>h2+h3{margin-top:0}

  /* ---------- closing band ---------- */
  body.postid-1602 .entry-content>.grs-close{margin-top:var(--sec);background:var(--galt);border-left:4px solid var(--gred);border-radius:0 12px 12px 0}
  body.postid-1602 .grs-close>p:first-child{font-size:20px;line-height:1.6;color:var(--gnavy)}
  body.postid-1602 .grs-close>p:last-child{font-size:14px;color:var(--gmut)}
}

@media (min-width:1280px) and (max-width:1599.98px){
  /* 1280-1599: the text column is too narrow to match the map's height with
     the stat row inside it, so the stat row runs full width under the hero.
     The left card is drawn by .grs-hero::before so both cards stay equal height. */
  body.postid-1602 .grs-hero{grid-template-rows:auto auto auto auto 1fr auto;row-gap:0}
  body.postid-1602 .grs-hero::before{content:"";grid-area:1/1/6/8;background:#fff;border:1px solid var(--gline);border-radius:12px;box-shadow:0 1px 2px rgba(20,24,58,.04)}
  body.postid-1602 .grs-hero-main{display:contents}
  body.postid-1602 .grs-hero-main>*{grid-column:1/span 7;padding:0 var(--pad)}
  body.postid-1602 .grs-hero-main>p:first-child{grid-row:1;padding-top:var(--pad)}
  body.postid-1602 .grs-hero-main>p:nth-child(2){grid-row:2;margin-top:16px!important}
  body.postid-1602 .grs-hero-main>h2{grid-row:3;margin-top:24px!important;margin-bottom:16px!important}
  body.postid-1602 .grs-hero-main>p:nth-child(5){grid-row:4}
  body.postid-1602 .grs-hero-main>p:last-child{grid-row:5;align-self:end;padding-top:16px;padding-bottom:var(--pad)}
  body.postid-1602 .grs-hero>figure{grid-area:1/8/6/13}
  body.postid-1602 .grs-stats{grid-row:6;grid-column:1/-1!important;padding:0!important;margin-top:var(--g)!important;grid-template-columns:repeat(5,minmax(0,1fr))}
  body.postid-1602 .grs-stats .grs-stat{grid-column:auto}
  body.postid-1602 .grs-stats .grs-stat{font-size:17px;min-height:104px}
  body.postid-1602 .grs-stats :is(.grs-margin,.grs-total){font-size:22px}
}

@media (min-width:1600px) and (max-width:1919.98px){
  body.postid-1602 :is(.grs-margin,.grs-total){font-size:24px}
}
@media (min-width:1600px){
  body.postid-1602 .site-content>.ast-container{max-width:1440px}
  body.postid-1602 .grs-trend>figure.wp-block-image{grid-column:1/span 5}
  body.postid-1602 .grs-trend>figure.wp-block-table{grid-column:span 7}
}

@media (min-width:1920px){
  body.postid-1602 .grs-hero-main{grid-column:1/span 7}
  body.postid-1602 .grs-hero>figure{grid-column:span 5}
  body.postid-1602 .grs-county h3+p{font-size:13px}
  body.postid-1602 .site-content>.ast-container{max-width:1680px}
  /* 4x2 card grid; 7 tiles in one row (28 = lcm-friendly: cards span 7, tiles span 4) */
  body.postid-1602 .grs-county-grid{grid-template-columns:repeat(28,minmax(0,1fr))}
  body.postid-1602 .grs-county:has(figure){grid-column:span 7}
  body.postid-1602 .grs-county:not(:has(figure)),body.postid-1602 .grs-county:nth-child(5 of .grs-county:not(:has(figure))){grid-column:span 4;padding:18px 16px}
  body.postid-1602 .grs-county:not(:has(figure)) h3{font-size:17px}
  body.postid-1602 .grs-county:not(:has(figure)) h3+p+p{font-size:13.5px;white-space:nowrap}
}
/* end 1602 */