
:root{
  --texas-red:#BF0A30;
  --navy:#082f4e;
  --navy2:#0b4169;
  --gold:#c99a3d;
  --gold2:#f0c56a;
  --ivory:#f7f0de;
  --ink:#132131;
  --red:#BF0A30;
  --rule:#b88d3b;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ivory);color:var(--ink);font-family:Georgia,"Times New Roman",serif}
a{color:inherit}
.skip{position:absolute;left:-9999px}.skip:focus{left:1rem;top:1rem;background:white;padding:.7rem;z-index:99}
.topbar{background:var(--navy);color:white;border-bottom:3px solid var(--gold);position:sticky;top:0;z-index:20}
.topbar .inner{max-width:1240px;margin:auto;padding:.65rem 1rem;display:flex;gap:1rem;align-items:center;justify-content:space-between}
.brand{font-weight:700;letter-spacing:.06em}.brand small{display:block;font-size:.68rem;letter-spacing:.12em;color:#efd28b}
.utility{display:flex;gap:.9rem;flex-wrap:wrap;align-items:center}
.utility a{text-decoration:none;font-size:.82rem;letter-spacing:.05em}
.stay{background:linear-gradient(#f7d77e,#d9a841);color:#17314a!important;padding:.55rem .9rem;border:1px solid #f5d676;font-weight:700}
.hero{max-width:1277px;margin:0 auto}
.hero img{display:block;width:100%;height:auto}
.navgrid{max-width:1240px;margin:1rem auto 1.4rem;padding:0 1rem;display:grid;grid-template-columns:repeat(7,1fr);gap:.55rem}
.navgrid a{display:flex;align-items:center;justify-content:center;text-align:center;min-height:66px;padding:.6rem;background:linear-gradient(#0c466f,#082f4e);color:white;border:4px double var(--gold);text-decoration:none;letter-spacing:.045em;font-size:.9rem}
.wrap{max-width:1240px;margin:auto;padding:0 1rem 3rem}
.eyebrow{text-align:center;color:var(--navy);font-weight:700;letter-spacing:.18em;font-size:.78rem;margin:.5rem 0}
h1,h2,h3{color:var(--navy);text-align:center}
h1{font-size:clamp(2.1rem,5vw,4.8rem);margin:.15rem 0 .1rem}
.subtitle{text-align:center;letter-spacing:.15em;font-size:.9rem;margin:0 0 1rem}
.rule{height:1px;background:linear-gradient(90deg,transparent,var(--rule),transparent);margin:1.5rem 0}
.art{border:3px solid var(--gold);box-shadow:0 2px 0 #17314a;background:#082f4e;padding:5px}
.art img{display:block;width:100%;height:auto}
.candidate-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1rem}
.candidate{background:linear-gradient(#0d4c75,#07324f);color:white;border:2px solid var(--gold);padding:1rem}
.candidate h3{text-align:left;color:white;margin:.1rem 0;font-size:1.9rem}
.candidate p{margin:.25rem 0 1rem;font-size:1.02rem}
.candidate .party{font-size:.8rem;letter-spacing:.16em;color:#f1d18b}
.candidate.republican .party{color:var(--texas-red)}
.btn{display:inline-block;background:linear-gradient(#f7d77e,#d7a640);color:#14324d;text-decoration:none;font-weight:700;padding:.8rem 1rem;border:1px solid #f5d676}
.context{font-size:1.02rem;line-height:1.55;text-align:center;max-width:1000px;margin:1rem auto}
.section{margin:2.4rem 0}
.section-head{display:flex;align-items:center;gap:.8rem;margin-bottom:1rem}
.section-head:before,.section-head:after{content:"";height:1px;background:var(--rule);flex:1}
.section-head h2{margin:0;font-size:1.6rem;letter-spacing:.08em}
.racecards{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.racecard{background:white;border:2px solid var(--gold);padding:.85rem}
.racecard h3{text-align:left;margin:.15rem 0;font-size:1.25rem}
.racecard p{line-height:1.45}
.placeholder{border:2px dashed #b88d3b;background:#fffaf0;padding:1rem;line-height:1.5}
.house img{width:100%;display:block;border:3px solid var(--gold)}
.house-note{text-align:center;margin:.7rem 0;color:#55472f}
.courts{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.courtbox{background:white;border:2px solid var(--gold);padding:1rem}
.courtbox h3{text-align:left}
.sourcebar{background:#fff;border-top:2px solid var(--gold);border-bottom:2px solid var(--gold);padding:1rem;line-height:1.55}
.footer{background:var(--navy);color:white;border-top:4px solid var(--gold);padding:2rem 1rem;text-align:center}
.footer strong{letter-spacing:.12em}
.small{font-size:.85rem}
.preindex{background:#8d1c24;color:white;text-align:center;padding:.45rem .75rem;font-family:Arial,sans-serif;font-size:.82rem;font-weight:700;letter-spacing:.08em}
@media(max-width:900px){
  .navgrid{grid-template-columns:repeat(2,1fr)}
  .navgrid a:last-child{grid-column:1/-1}
  .racecards{grid-template-columns:1fr}
  .courts{grid-template-columns:1fr}
}
@media(max-width:640px){
  .topbar .inner{align-items:flex-start}
  .utility{display:none}
  .navgrid{grid-template-columns:1fr 1fr;padding:0 .65rem;gap:.4rem}
  .navgrid a{min-height:58px;font-size:.78rem}
  .candidate-grid{grid-template-columns:1fr}
  .wrap{padding-left:.7rem;padding-right:.7rem}
  h1{font-size:2.25rem}
}

/* Roll 31 correction lock */
.republican-label,
.house .republican-label,
.house [data-party="republican"]{
  color:var(--texas-red)!important;
}
.race-link{position:relative}
.race-link:hover::after,
.race-link:focus-visible::after{
  content:"VIEW RACE CONNECTION";
  position:absolute;left:50%;bottom:calc(100% + .4rem);transform:translateX(-50%);
  white-space:nowrap;background:var(--navy);color:white;border:1px solid var(--gold);
  padding:.35rem .5rem;font:700 .68rem/1.2 Arial,sans-serif;letter-spacing:.05em;z-index:5;
}
@media(max-width:640px){
  html,body{max-width:100%;overflow-x:hidden}
  .comparison-row,.candidate-grid,.courts,.racecards{grid-template-columns:1fr!important}
  .race-intro,.context{text-align:center}
  .candidate .btn,.racecard .btn,.courtbox .btn{display:block;width:100%;text-align:center}
  img,svg,video{max-width:100%;height:auto}
}

.source-actions,.share-actions{display:flex;flex-wrap:wrap;gap:.55rem;justify-content:center;margin:1rem 0}
.source-actions a,.share-actions a{
  display:inline-block;text-decoration:none;background:white;color:var(--navy);
  border:1px solid var(--gold);padding:.62rem .78rem;font:700 .76rem/1.2 Arial,sans-serif;
  letter-spacing:.04em
}
.source-actions a:hover,.share-actions a:hover{background:#fff7e4}
.art-held{border:2px dashed var(--gold);background:#fffaf0;padding:1rem;text-align:center}
.art-held strong{display:block;color:var(--navy);margin-bottom:.3rem}
@media(max-width:640px){
 .source-actions,.share-actions{display:grid;grid-template-columns:1fr 1fr}
 .source-actions a,.share-actions a{text-align:center}
}

.verification-stamp{text-align:center;font:700 .78rem/1.4 Arial,sans-serif;letter-spacing:.035em;color:#5c513e;margin:.25rem 0 1rem}
#certified-house-directory .racecard p{min-height:3.2em}
@media(max-width:640px){#certified-house-directory .racecard p{min-height:0}}

/* ROLL 35 PUBLISHER POLISH — CENTERED TEXAS EDITORIAL SYSTEM */
:root{--texas-red:#BF0A30}
.wrap{max-width:1180px}
.section,.sourcebar,.racecard,.courtbox,.candidate{text-align:center}
.section-head{justify-content:center;text-align:center}
.section-head h2,.racecard h3,.courtbox h3,.candidate h3{text-align:center}
.candidate-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(225px,1fr));
  gap:14px;
  max-width:1080px;
  margin:16px auto;
  align-items:stretch;
}
.candidate{
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  min-height:190px;
  border-radius:2px;
}
.candidate.republican{border-color:var(--texas-red)}
.candidate.republican .party{color:#ffb0b6}
.candidate .party{font-family:Arial,sans-serif;font-weight:800}
.candidate h3{margin:.35rem 0}
.candidate p{max-width:30rem;margin:.35rem auto}
.btn,.source-actions a,.share-actions a{
  text-align:center;
  justify-content:center;
  margin-left:auto;
  margin-right:auto;
}
.source-actions,.share-actions{justify-content:center;align-items:center}
.racecards{
  align-items:stretch;
  justify-items:stretch;
}
.racecard{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
}
.racecard .art{width:100%}
.racecard .btn{margin-top:auto}
.context,.verification-stamp{margin-left:auto;margin-right:auto;text-align:center}
.art{max-width:1080px;margin:0 auto}
.house{ text-align:center }
.house img{margin:0 auto}
.footer{text-align:center}
.footer strong,.footer p{display:block;text-align:center}
@media(max-width:760px){
  .candidate-grid{grid-template-columns:1fr;max-width:560px}
  .racecards{grid-template-columns:1fr!important}
  .source-actions,.share-actions{grid-template-columns:1fr!important}
  .btn,.source-actions a,.share-actions a{width:100%;max-width:560px}
}

/* ROLL 36 FULL ARCHITECTURE — publisher centered system */
html,body{max-width:100%;overflow-x:hidden}
body{background:#efe7d8}
.site-shell-v2{width:min(1180px,100%);margin:auto;background:#fffaf0;box-shadow:0 0 38px rgba(0,0,0,.12)}
.topbar-v2{background:linear-gradient(#0a365c,#041f36);color:white;display:flex;align-items:center;gap:20px;padding:10px 20px;border-bottom:2px solid #c79a45}
.topbar-v2 nav{margin-left:auto;display:flex;gap:18px}.topbar-v2 a{color:white;text-decoration:none}
.brand-v2{display:flex;align-items:center;gap:9px;font-weight:700;letter-spacing:.06em}.tx-star{color:#e5bd66;font-size:25px}
.stay-v2{background:linear-gradient(#f0cf82,#c7923a);color:#132b43!important;padding:10px 16px;font-weight:700;border:1px solid #f4d88d}
.hero-v2 img{width:100%;display:block}
.jumpnav-v2{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;padding:10px 22px;background:#f7f0df}
.jumpnav-v2 a{background:linear-gradient(#0d3c67,#06253f);color:white;border:2px solid #caa456;text-decoration:none;text-align:center;padding:12px 5px;display:flex;align-items:center;justify-content:center}
.main-v2{padding:0 22px 28px}.center{text-align:center}.eyebrow-v2{letter-spacing:.17em;text-transform:uppercase;color:#0a3154;font-weight:700;text-align:center;margin-top:16px}
.title-v2{text-align:center;color:#052746;font-size:clamp(2rem,5vw,4rem);margin:4px 0}.date-v2{text-align:center;text-transform:uppercase;letter-spacing:.1em}
.section-v2{margin:28px 0}.section-title-v2{text-align:center;color:#052746;font-size:2rem;margin:0 0 14px}
.race-art-v2{max-width:1040px;margin:0 auto;border:2px solid #c4a15c;background:#06243e;padding:5px}.race-art-v2 img{width:100%;height:auto}
.cards-v2{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;max-width:1100px;margin:16px auto}
.candidate-card-v2{background:linear-gradient(#0d3d67,#06253f);color:white;border:2px solid #c4a15c;display:flex;gap:12px;padding:12px;align-items:center;text-align:center}
.candidate-card-v2.rep{border-color:#BF0A30}.candidate-photo img,.portrait-placeholder{width:105px;height:128px;object-fit:cover;border:1px solid #d1b168;background:#082640}
.portrait-placeholder{display:flex;align-items:center;justify-content:center;font-size:40px;color:#d7b665}
.candidate-copy{flex:1;text-align:center}.candidate-copy h3{margin:3px 0;font-size:1.45rem}.candidate-copy p{margin:6px 0 10px}
.party-label{font:800 .75rem/1.2 Arial,sans-serif;letter-spacing:.12em;color:#f0d99a}.rep .party-label{color:#BF0A30}
.primary-btn,.source-btn{display:inline-block;text-decoration:none;text-align:center;background:linear-gradient(#f0cf82,#c7923a);color:#132b43;padding:9px 13px;border:1px solid #f4d88d;font-weight:700}
.source-row,.share-row{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:14px auto}
.source-btn{background:white;color:#052746;border-color:#c4a15c}.writein-note,.context-v2{max-width:900px;margin:12px auto;text-align:center;line-height:1.5}
.race-grid-v2{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.race-tile-v2{background:white;border:2px solid #c4a15c;padding:9px;text-align:center;display:flex;flex-direction:column}
.race-tile-v2 img{width:100%;aspect-ratio:1/1;object-fit:cover;background:#06243e}.race-tile-v2 h3{margin:8px 0;color:#052746}.race-tile-v2 a{margin-top:auto}
.house-grid-v2{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.house-card-v2{background:#fff;border:2px solid #c4a15c;text-align:center;padding:8px}.house-card-v2 img{width:100%;aspect-ratio:1/1;object-fit:cover}
.house-card-v2 .rep-name{color:#BF0A30;font-weight:700}.house-card-v2 .dem-name{color:#0b69b7;font-weight:700}
.source-record{background:#fff;border:1px solid #c4a15c;padding:14px;margin:12px auto;max-width:950px}
.footer-scenery-v2{height:60px;background:url('/assets/footer-landscape.jpg') center/cover no-repeat;border-top:1px solid #c4a15c}
.footer-v2{background:linear-gradient(#082d4d,#041c32);color:#fff;text-align:center;padding:18px;display:grid;grid-template-columns:1fr auto 1fr;gap:18px;align-items:center;font-size:.78rem;letter-spacing:.09em}
.footer-name{font-family:cursive;color:#e4c06b;font-size:1.6rem;letter-spacing:0}
.verification{text-align:center;font:700 .78rem/1.4 Arial,sans-serif;color:#6d5a35;margin:8px auto}
@media(max-width:900px){.race-grid-v2,.house-grid-v2{grid-template-columns:repeat(2,1fr)}.footer-v2{grid-template-columns:1fr}.topbar-v2 nav{display:none}}
@media(max-width:620px){.jumpnav-v2{grid-template-columns:repeat(2,1fr);padding:8px}.main-v2{padding-left:10px;padding-right:10px}.race-grid-v2,.house-grid-v2{grid-template-columns:1fr}.candidate-card-v2{flex-direction:column}.candidate-photo img,.portrait-placeholder{width:130px;height:150px}.primary-btn,.source-btn{width:100%}.source-row,.share-row{display:grid;grid-template-columns:1fr}.topbar-v2{padding:8px 10px}.stay-v2{font-size:.75rem;padding:9px}}

/* LIVE QA PATCH — 2026-09-07 */
.preindex{display:none!important}

.topbar-v2{
  min-height:72px;
  justify-content:center;
  position:relative;
  padding:10px 18px;
}
.brand-v2{
  justify-content:center;
  text-align:center;
  font-size:clamp(.85rem,2.5vw,1.05rem);
  line-height:1.05;
  letter-spacing:.055em;
}
.brand-v2 .tx-star{display:none!important}
.topbar-v2 nav{
  position:absolute;
  left:50%;
  transform:translateX(-50%);
}
.stay-v2{
  position:absolute;
  right:18px;
}
@media(max-width:900px){
  .topbar-v2{
    min-height:68px;
    padding:8px 110px 8px 14px;
  }
  .brand-v2{
    width:100%;
    justify-content:center;
    text-align:center;
  }
  .stay-v2{
    right:10px;
    padding:9px 10px;
    font-size:.68rem;
  }
}

/* LOCK Republican treatment to Texas red — never pink */
:root{--texas-red:#BF0A30}
.rep{border-color:var(--texas-red)!important}
.rep .party-label,
.rep-name,
.republican-label,
[data-party="republican"]{
  color:var(--texas-red)!important;
}

.judicial-text-tile{
  min-height:220px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:28px 18px!important;
  background:linear-gradient(#fffdf8,#f7edda);
}
.judicial-text-tile h3{
  font-size:1.9rem;
  max-width:540px;
}

/* LIVE QA PATCH 2 — centering + portrait treatment */
.jumpnav-v2{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  justify-content:center;
  align-items:stretch;
  max-width:980px;
  margin:0 auto;
}
.jumpnav-v2 a:last-child{
  grid-column:1 / -1;
  width:calc(50% - 4px);
  justify-self:center;
}
@media(min-width:1050px){
  .jumpnav-v2{
    grid-template-columns:repeat(7,minmax(0,1fr))!important;
    max-width:none;
  }
  .jumpnav-v2 a:last-child{
    grid-column:auto;
    width:auto;
  }
}
@media(max-width:620px){
  .jumpnav-v2{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    width:100%;
  }
  .jumpnav-v2 a:last-child{
    grid-column:1 / -1;
    width:calc(50% - 4px);
  }
}
.candidate-photo.no-photo{
  display:none!important;
}
.candidate-card-v2.no-photo-card{
  min-height:0!important;
  padding:18px 14px!important;
}
.candidate-card-v2.no-photo-card .candidate-copy{
  width:100%;
}

/* LIVE QA PATCH 3 — House thumbnail navigation */
.house-thumb-link{
  display:block;
  width:100%;
  text-decoration:none;
}
.house-thumb-link img{
  display:block;
  width:100%;
  height:auto!important;
  aspect-ratio:auto!important;
  object-fit:contain!important;
  border:0;
}
.house-card-v2{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
}
.house-card-v2 .primary-btn{
  width:100%;
  margin-top:10px;
}
.house-preview-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  max-width:1040px;
  margin:14px auto;
}
.house-preview-card{
  display:flex;
  flex-direction:column;
  text-decoration:none;
  border:2px solid #c4a15c;
  background:#06253f;
  color:white;
  text-align:center;
}
.house-preview-card img{
  width:100%;
  height:auto;
  display:block;
}
.house-preview-card span{
  padding:9px 7px;
  font-weight:700;
}
@media(max-width:720px){
  .house-preview-grid{grid-template-columns:repeat(2,1fr)}
}

/* LIVE QA PATCH 4 — crisp full-resolution clickable House directory */
.house-directory-map{
  position:relative;
  width:min(853px,100%);
  margin:16px auto;
  border:2px solid #c4a15c;
  background:#fff;
}
.house-directory-map > img{
  display:block;
  width:100%;
  height:auto;
  image-rendering:auto;
}
.district-hotspot{
  position:absolute;
  display:block;
  border:0;
  background:transparent;
  text-decoration:none;
  -webkit-tap-highlight-color:rgba(191,10,48,.16);
}
.district-hotspot:hover,
.district-hotspot:focus-visible{
  outline:3px solid #d4af56;
  outline-offset:-3px;
  background:rgba(255,255,255,.08);
}

/* LIVE QA PATCH 5 — make House candidate boxes functional */
.house-directory-map{position:relative}
.candidate-hotspot,.race-footer-hotspot{
  position:absolute;
  display:block;
  background:transparent;
  text-decoration:none;
  -webkit-tap-highlight-color:rgba(212,175,86,.22);
}
.candidate-hotspot:hover,.candidate-hotspot:focus-visible{
  outline:3px solid #d4af56;
  outline-offset:-3px;
  background:rgba(255,255,255,.06);
}
.race-footer-hotspot:hover,.race-footer-hotspot:focus-visible{
  outline:3px solid #d4af56;
  outline-offset:-3px;
  background:rgba(255,255,255,.10);
}
.house-card-visual{position:relative;width:100%}
.house-card-visual img{display:block;width:100%;height:auto}
.candidate-half-link{position:absolute;top:0;bottom:0;width:50%;display:block}
.candidate-half-link.left{left:0}
.candidate-half-link.right{right:0}
.candidate-name-link{
  color:inherit;
  text-decoration:underline;
  text-underline-offset:2px;
  font-weight:700;
}
.house-candidate-links{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6px;
  margin:-4px auto 12px;
}
.house-candidate-links a{
  background:#fff;
  border:1px solid #c4a15c;
  padding:7px 6px;
  text-align:center;
  color:#052746;
  text-decoration:none;
  font-weight:700;
}

/* LIVE QA PATCH 6 — restore functional depth: sources + social/share drawers */
.tool-drawer{
  width:100%;
  max-width:760px;
  margin:9px auto;
  border:1px solid #c4a15c;
  background:#fffaf0;
  color:#052746;
}
.tool-drawer summary{
  cursor:pointer;
  list-style:none;
  text-align:center;
  padding:11px 14px;
  font:800 .82rem/1.2 Arial,sans-serif;
  letter-spacing:.06em;
  text-transform:uppercase;
  background:linear-gradient(#f5dfaa,#d1a54d);
  color:#052746;
}
.tool-drawer summary::-webkit-details-marker{display:none}
.tool-drawer summary::after{content:" +";font-weight:900}
.tool-drawer[open] summary::after{content:" −"}
.drawer-actions{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(145px,1fr));
  gap:8px;
  padding:10px;
}
.tool-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  text-decoration:none;
  text-align:center;
  border:1px solid #c4a15c;
  background:#fff;
  color:#052746;
  padding:8px 9px;
  font:800 .76rem/1.2 Arial,sans-serif;
}
.candidate-card-v2 .tool-drawer{
  margin-top:7px;
}
.candidate-card-v2 .tool-drawer summary{
  font-size:.68rem;
  padding:8px 7px;
}
.candidate-card-v2 .drawer-actions{
  grid-template-columns:1fr;
}
.civic-tools-shelf{
  margin:28px auto;
  max-width:1080px;
}
.civic-tool-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
}
@media(max-width:720px){
  .drawer-actions,.civic-tool-grid{grid-template-columns:1fr}
  .tool-drawer{max-width:100%}
}

/* FINAL ACCESSIBILITY / VISUAL HELP */
.visual-help-bar{width:100%;background:linear-gradient(90deg,#f8f1e1,#fffaf0,#f8f1e1);border-bottom:1px solid #c7a159;color:#052746;text-align:center;font-family:Arial,sans-serif;position:relative;z-index:50}
.visual-help-toggle{appearance:none;border:0;background:transparent;color:#052746;padding:8px 14px;font:800 .72rem/1.2 Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.visual-help-toggle::before{content:"◉";color:#b58c3e;margin-right:7px}
.visual-help-panel{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:7px;padding:0 10px 10px}
.visual-help-panel[hidden]{display:none!important}
.visual-help-panel button{min-height:38px;border:1px solid #b99552;background:#fff;color:#052746;padding:7px 11px;font-weight:800;cursor:pointer}
.visual-help-label{font-weight:700;font-size:.78rem}
html.visual-font-1{font-size:112.5%} html.visual-font-2{font-size:125%} html.visual-font-minus{font-size:93.75%}
html.visual-contrast body{background:#fff!important;color:#000!important}
html.visual-contrast .site-shell-v2,html.visual-contrast .source-record,html.visual-contrast .tool-drawer,html.visual-contrast .race-tile-v2,html.visual-contrast .house-card-v2{background:#fff!important;color:#000!important}
:root{--texas-red:#BF0A30!important}
.rep,.candidate-card-v2.rep{border-color:#BF0A30!important}
.rep .party-label,.candidate-card-v2.rep .party-label,.rep-name,.republican-label,[data-party="republican"]{color:#BF0A30!important}
.section-title-v2,.title-v2,.eyebrow-v2,.date-v2,.candidate-copy,.candidate-copy h3,.context-v2,.verification,.source-record,.tool-drawer summary,.footer-v2{text-align:center!important}
.primary-btn,.source-btn,.tool-btn{text-align:center!important;justify-content:center!important}
@media(max-width:620px){.visual-help-toggle{font-size:.66rem;padding:7px 8px}.visual-help-panel{gap:5px}.visual-help-panel button{width:auto!important;min-width:64px}}

/* ==========================================================
   OFFLINE VISUAL REBUILD PASS 1 — 2026-09-07
   Approved framing + original masters + mobile-first behavior
   ========================================================== */

:root{
  --tx-navy:#072844;
  --tx-navy-deep:#041f35;
  --tx-gold:#c8a35c;
  --tx-ivory:#fffaf0;
  --tx-red:#BF0A30;
  --tx-blue:#1e78c6;
}

/* Header: compact, centered, no giant dead navy band */
.topbar-v2{
  display:grid !important;
  grid-template-columns:minmax(190px,1fr) auto minmax(140px,1fr) !important;
  align-items:center !important;
  gap:16px !important;
  min-height:62px !important;
  padding:8px 18px !important;
}
.brand-v2{
  justify-self:start !important;
  text-align:left !important;
  line-height:1.02 !important;
  font-size:.98rem !important;
}
.topbar-v2 nav{
  position:static !important;
  transform:none !important;
  justify-self:center !important;
}
.stay-v2{
  position:static !important;
  justify-self:end !important;
}
@media(max-width:900px){
  .topbar-v2{
    grid-template-columns:1fr auto !important;
    min-height:58px !important;
    padding:7px 10px !important;
  }
  .brand-v2{
    justify-self:center !important;
    text-align:center !important;
    font-size:.78rem !important;
  }
  .topbar-v2 nav{display:none !important}
  .stay-v2{
    justify-self:end !important;
    padding:8px 10px !important;
    font-size:.66rem !important;
  }
}

/* Race art: full original, never crop, never stretch */
.race-art-v2,
.original-race-art{
  width:100% !important;
  max-width:1040px !important;
  margin:14px auto 18px !important;
  padding:0 !important;
  min-height:0 !important;
  height:auto !important;
  background:transparent !important;
  border:0 !important;
}
.race-art-v2 img,
.original-race-art img{
  display:block !important;
  width:100% !important;
  height:auto !important;
  max-height:none !important;
  object-fit:contain !important;
  object-position:center !important;
  margin:0 auto !important;
  border:2px solid var(--tx-gold);
}

/* Compact text race fallback: beautiful, not giant silhouettes */
.rebuild-text-race{
  background:linear-gradient(180deg,#0a3a61,#062844);
  color:white;
  border:2px solid var(--tx-gold);
  max-width:1040px;
  margin:14px auto 18px;
  padding:22px 18px;
  text-align:center;
}
.rebuild-text-race h3{
  color:var(--tx-ivory);
  margin:0 0 8px;
}
.rebuild-text-race p{
  margin:5px auto;
  max-width:760px;
}
.rebuild-text-race .rebuild-badge{
  display:inline-block;
  padding:5px 9px;
  border:1px solid var(--tx-gold);
  margin-bottom:8px;
  color:#f2cf82;
  font-weight:800;
  letter-spacing:.08em;
  font-size:.72rem;
}

/* Candidate cards: centered, compact, readable */
.candidate-card-v2{
  min-height:0 !important;
  height:auto !important;
  padding:18px 14px !important;
  text-align:center !important;
  align-items:center !important;
  justify-content:center !important;
}
.candidate-card-v2 .candidate-copy,
.candidate-card-v2 .candidate-copy *{
  text-align:center !important;
}
.candidate-card-v2 h3{
  color:#fffdf6 !important;
  text-shadow:0 1px 1px rgba(0,0,0,.25);
}
.candidate-card-v2.rep .party-label,
.rep-name,.republican-label,[data-party="republican"]{
  color:var(--tx-red) !important;
}

/* House directory: real HTML cards, actual original graphic, real link */
.house-directory-rebuild{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  max-width:1120px;
  margin:16px auto;
}
.house-directory-rebuild .house-rebuild-card{
  display:flex;
  flex-direction:column;
  background:#fff;
  border:2px solid var(--tx-gold);
  padding:9px;
  text-align:center;
  min-width:0;
}
.house-rebuild-card > a.house-art-link{
  display:block;
  text-decoration:none;
}
.house-rebuild-card img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:1/1;
  object-fit:contain;
  background:white;
}
.house-rebuild-card h3{
  margin:8px 0 4px;
  color:var(--tx-navy);
}
.house-rebuild-candidates{
  margin:2px 0 10px;
  line-height:1.35;
  font-size:.86rem;
}
.house-rebuild-card .primary-btn{
  margin-top:auto;
  width:100%;
}
@media(max-width:900px){
  .house-directory-rebuild{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
  .house-directory-rebuild{
    grid-template-columns:1fr;
    gap:12px;
    padding:0 8px;
  }
  .house-rebuild-card{
    max-width:430px;
    width:100%;
    margin:0 auto;
  }
}

/* Court graphic family */
.court-rebuild-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  max-width:1080px;
  margin:16px auto;
}
.court-rebuild-card{
  border:2px solid var(--tx-gold);
  background:#fff;
  padding:8px;
  text-align:center;
}
.court-rebuild-card img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
}
@media(max-width:720px){
  .court-rebuild-grid{grid-template-columns:1fr}
}

/* Mobile: no giant navy dead space */
@media(max-width:760px){
  .race-art-v2,
  .original-race-art{
    margin:10px auto 14px !important;
  }
  .candidate-card-v2{
    padding:16px 12px !important;
  }
  .candidate-card-v2 .neutral-candidate-silhouette,
  .candidate-card-v2 .candidate-photo{
    display:none !important;
  }
  .section-v2{
    padding-left:10px !important;
    padding-right:10px !important;
  }
}

/* OFFLINE REBUILD PASS 2 — clean candidate cards without derivative thumbnails */
.candidate-card-v2{
  min-height:0!important;
  height:auto!important;
  padding:20px 16px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  align-items:center!important;
  text-align:center!important;
}
.candidate-card-v2 .candidate-copy{
  width:100%!important;
  max-width:680px!important;
  margin:0 auto!important;
}
.candidate-card-v2 h3{
  font-size:clamp(1.35rem,3vw,2rem)!important;
  color:#fffdf6!important;
  margin:.35rem auto!important;
}
.candidate-card-v2 .party-label{
  font-weight:800!important;
  letter-spacing:.08em!important;
}
.candidate-card-v2.rep .party-label{
  color:#BF0A30!important;
}
@media(max-width:760px){
  .candidate-card-v2{padding:16px 12px!important}
}

/* PASS 3: exact master art + social-safe previews */
.original-race-art img,.house-rebuild-card img,.court-rebuild-card img{
 object-fit:contain!important;object-position:center!important;max-width:100%!important;height:auto!important;
}
@media(max-width:620px){.original-race-art{padding:0 6px!important}.original-race-art img{width:100%!important;height:auto!important}}

/* PASS 5 — final Republican color lock */
:root{--tx-red:#BF0A30!important}
.rep .party-label,.candidate-card-v2.rep .party-label,.rep-name,.republican-label,[data-party="republican"]{color:#BF0A30!important}
.finance-note{font-size:.82rem;line-height:1.35;margin:.55rem auto 0;max-width:720px;color:#6a5a3d;text-align:center}

/* ===== RECONCILED MASTER PASS — Sept 8, 2026 ===== */
.visual-help-bar{
  position:relative;z-index:50;
  background:#fffaf0;border-bottom:1px solid #c8a35c;
  text-align:center;padding:5px 10px;
}
.visual-help-toggle{
  border:0;background:transparent;color:#5a4723;
  font-weight:800;letter-spacing:.08em;font-size:.72rem;cursor:pointer;
}
.visual-help-panel{
  max-width:1080px;margin:7px auto 2px;padding:8px;
  display:flex;flex-wrap:wrap;gap:7px;justify-content:center;align-items:center;
  border-top:1px solid #e0c98f;
}
.visual-help-panel[hidden]{display:none!important}
.visual-help-panel button{padding:7px 9px;border:1px solid #b9934d;background:#fff;color:#072844;font-weight:700}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.visual-font-1{font-size:112.5%}
.visual-font-2{font-size:125%}
.visual-contrast{filter:contrast(1.18)}
.visual-spacing body{letter-spacing:.035em;line-height:1.7}
.visual-underline a{text-decoration:underline!important;text-underline-offset:3px}
.visual-motion *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
.visual-textonly img,.visual-textonly .hero-v2,.visual-textonly .footer-scenery-v2{display:none!important}

.reconciled-race-art{max-width:1040px;margin:14px auto 18px;padding:0;background:transparent}
.reconciled-race-art img{display:block;width:100%;height:auto;object-fit:contain!important;object-position:center!important;border:2px solid #c8a35c}
.reconciled-race-art figcaption{font-size:.82rem;text-align:center;margin-top:6px;color:#66583e}

.race-tile-v2 img{display:block;width:100%;height:auto;aspect-ratio:auto!important;object-fit:contain!important;margin:0 auto 10px}
.race-tile-v2{height:auto!important;min-height:0!important}

.house-directory-final{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;max-width:1180px;margin:14px auto;
}
.house-directory-card-final{
  display:flex;flex-direction:column;min-width:0;background:#fff;
  border:2px solid #c8a35c;padding:8px;text-align:center;
}
.house-directory-art-final{display:block}
.house-directory-card-final img{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:contain!important}
.house-directory-card-final h3{margin:7px 0 4px;color:#072844}
.house-candidate-lines{margin:2px 0 9px;text-align:left;font-weight:800;font-size:.82rem;line-height:1.25}
.house-candidate-line{padding:2px 4px}
.house-candidate-line.dem{color:#126fbd}
.house-candidate-line.rep{color:#BF0A30}
.house-candidate-line.lib{color:#8b6c10}
.house-candidate-line.green{color:#267b42}
.house-candidate-line.ind,.house-candidate-line.writein{color:#4d4d4d}
.house-directory-card-final .primary-btn{margin-top:auto}

.court-family-title{text-align:center;color:#072844;margin:22px 0 10px}
.court-directory-final{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;max-width:1180px;margin:0 auto 18px}
.court-directory-card-final{background:#fff;border:2px solid #c8a35c;padding:8px;text-align:center;display:flex;flex-direction:column}
.court-directory-card-final img{width:100%;height:auto;object-fit:contain!important}
.court-directory-card-final h4{color:#072844;margin:7px 0}
.court-directory-card-final .primary-btn{margin-top:auto}

.candidate-card-v2 h3{color:#fffdf6!important}
.candidate-card-v2.rep .party-label,.republican-label,.rep-name,[data-party="republican"]{color:#BF0A30!important}

a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #f2c764!important;outline-offset:3px!important}

@media(max-width:900px){
  .house-directory-final{grid-template-columns:repeat(3,minmax(0,1fr))}
  .court-directory-final{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
  .house-directory-final{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:0 4px}
  .house-directory-card-final{padding:6px}
  .house-candidate-lines{font-size:.72rem}
  .house-directory-card-final .primary-btn{font-size:.72rem;padding:8px 5px}
  .court-directory-final{grid-template-columns:1fr}
  .reconciled-race-art{padding:0 5px}
  .visual-help-toggle{font-size:.66rem}
}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
@media (forced-colors: active){
  a,button,summary{forced-color-adjust:auto}
}

/* ===== FINAL HEADER / DIRECTORY / ACCESSIBILITY CORRECTION ===== */

.visual-help-bar{padding:7px 10px!important}
.visual-help-toggle{
  display:inline-flex!important;align-items:center!important;gap:9px!important;
  color:#5a4723!important;letter-spacing:.085em!important;
}
.visual-help-toggle::before{
  content:"";width:11px;height:11px;border-radius:50%;
  background:#c7a14e;border:2px solid #fffaf0;
  box-shadow:0 0 0 1px #b99445;flex:0 0 auto;
}

.tcc-header-final{
  position:relative;z-index:45;width:100%;
  background:linear-gradient(180deg,#073457 0%,#042a49 100%);
  border-bottom:2px solid #c8a35c;color:#fff;
}
.tcc-header-inner{
  max-width:1240px;margin:0 auto;min-height:62px;padding:8px 20px;
  display:grid;grid-template-columns:minmax(230px,1fr) auto minmax(165px,.55fr);
  gap:22px;align-items:center;
}
.tcc-brand-final{display:inline-flex;align-items:center;gap:10px;color:#fff!important;text-decoration:none!important;width:max-content}
.tcc-texas-mark{
  width:42px;height:42px;display:inline-grid;place-items:center;
  color:#e6bc63;font-size:2rem;line-height:1
}
.tcc-brand-words{display:flex;flex-direction:column;line-height:.95;font-family:Georgia,"Times New Roman",serif}
.tcc-brand-words strong{font-size:1.03rem;letter-spacing:.035em}
.tcc-brand-words span{font-size:1.2rem;letter-spacing:.03em;font-weight:700}
.tcc-desktop-nav{display:flex;gap:24px;align-items:center;justify-content:center}
.tcc-desktop-nav a{color:#fff!important;text-decoration:none!important;font-size:.76rem;font-weight:800;letter-spacing:.06em}
.tcc-stay-final{
  justify-self:end;color:#082d4d!important;text-decoration:none!important;
  background:linear-gradient(#f6d98c,#dba83c);border:1px solid #f8e5ab;
  box-shadow:inset 0 0 0 1px #a77c2e;padding:12px 18px;
  font-family:Georgia,"Times New Roman",serif;font-weight:800;letter-spacing:.02em
}

/* House framing */
.house-directory-title-final{
  font-size:clamp(2rem,4vw,3.4rem)!important;line-height:1!important;
  margin:18px 0 4px!important;text-align:center!important;
}
.house-directory-subtitle-final{
  text-align:center!important;margin:0 auto 16px!important;
  color:#6b6256!important;font-size:1rem!important;
}
.house-directory-final{
  margin-top:8px!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
}
.house-directory-card-final{padding:7px!important}
.house-directory-card-final img{aspect-ratio:1/1!important;object-fit:contain!important}
.house-candidate-lines{font-size:.82rem!important;line-height:1.25!important;margin-bottom:7px!important}

/* Remove excessive vertical acreage from statewide cards */
.race-tile-v2{padding-bottom:12px!important;margin-bottom:12px!important}
.race-tile-v2 h3{margin:8px 8px 6px!important;line-height:1.08!important}
.race-tile-v2 .primary-btn{margin:8px!important}
.section-v2{padding-top:22px!important;padding-bottom:22px!important}

/* Candidate thumbnails */
.candidate-photo-approved{overflow:hidden;background:#fff}
.candidate-photo-approved img{
  width:100%!important;height:100%!important;display:block!important;
  object-fit:cover!important;object-position:50% 20%!important;
}

/* A11y */
a:focus-visible,button:focus-visible,summary:focus-visible{
  outline:3px solid #f2c764!important;outline-offset:3px!important
}

@media(max-width:900px){
  .tcc-header-inner{grid-template-columns:1fr auto;gap:12px;padding:8px 14px}
  .tcc-desktop-nav{display:none}
  .tcc-brand-words strong{font-size:.92rem}
  .tcc-brand-words span{font-size:1.05rem}
  .tcc-stay-final{padding:10px 13px;font-size:.88rem}
  .house-directory-final{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}
@media(max-width:620px){
  .tcc-header-inner{min-height:72px}
  .tcc-texas-mark{width:32px;height:32px;font-size:1.5rem}
  .tcc-brand-final{gap:7px}
  .tcc-brand-words strong{font-size:.82rem}
  .tcc-brand-words span{font-size:.94rem}
  .tcc-stay-final{padding:9px 10px;font-size:.76rem}
  .house-directory-final{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
  .house-directory-title-final{font-size:2rem!important}
  .house-directory-subtitle-final{font-size:.88rem!important;padding:0 12px}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
@media(forced-colors:active){
  .tcc-header-final,.visual-help-bar{forced-color-adjust:auto}
}

/* ===== SHARE / BACK / VS GRAPHIC CORRECTION ===== */
.back-to-race-final{
  display:inline-block;margin:14px 18px 8px;padding:10px 14px;
  border:1px solid #c8a35c;background:#fffaf0;color:#072844!important;
  font-weight:800;text-decoration:none!important;
}
.back-to-race-final:hover{background:#f7e8bd}
.back-to-race-bottom{margin-top:22px;margin-bottom:18px}
.race-share-only{margin-top:12px}
[data-save-vs="true"]{font-weight:900!important}
@media(max-width:620px){
  .back-to-race-final{margin-left:10px;margin-right:10px;width:calc(100% - 20px);text-align:center}
}

/* ===== VISIBLE VS SAVE BUTTON ===== */
.vs-save-strip-final{
  max-width:1040px;margin:-4px auto 18px;padding:10px 12px;
  background:#fffaf0;border:1px solid #c8a35c;
  display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;
}
.vs-save-note{
  color:#5b513f;font-weight:700;font-size:.95rem;
}
.vs-save-button-final{
  display:inline-block;background:linear-gradient(#f6d98c,#dba83c);
  color:#072844!important;border:1px solid #b98a34;
  padding:10px 16px;text-decoration:none!important;
  font-weight:900;letter-spacing:.02em;
}
.vs-save-button-final:focus-visible{
  outline:3px solid #f2c764!important;outline-offset:3px!important;
}
@media(max-width:620px){
  .vs-save-strip-final{
    margin:-2px 8px 16px;padding:9px 10px;gap:8px;
  }
  .vs-save-note{
    width:100%;text-align:center;font-size:.85rem;
  }
  .vs-save-button-final{
    width:100%;text-align:center;padding:11px 12px;
  }
}

/* ===== LOCKED TEXAS HEADER — FINAL ===== */
.tcc-header-locked{
  background:linear-gradient(180deg,#062f50,#042641)!important;
  border-top:0!important;border-bottom:2px solid #c8a35c!important;
  box-shadow:0 1px 0 rgba(255,255,255,.08) inset!important;
}
.tcc-header-locked .tcc-header-inner{
  max-width:1180px!important;min-height:52px!important;
  padding:6px 16px!important;
  grid-template-columns:minmax(240px,1fr) auto minmax(150px,.55fr)!important;
  gap:18px!important;
}
.tcc-header-locked .tcc-brand-final{gap:9px!important}
.tcc-header-locked .tcc-texas-mark{
  position:relative!important;width:34px!important;height:34px!important;
  display:inline-block!important;background:#e0b357!important;
  clip-path:polygon(18% 0,44% 10%,55% 4%,67% 18%,95% 24%,86% 45%,100% 59%,76% 67%,68% 100%,46% 84%,32% 93%,22% 70%,0 62%,13% 41%,6% 21%)!important;
  flex:0 0 auto!important;
}
.tcc-header-locked .tcc-texas-star{
  position:absolute!important;left:13px!important;top:10px!important;
  font-size:.72rem!important;color:#fff!important;line-height:1!important;
}
.tcc-header-locked .tcc-brand-words{
  font-family:Georgia,"Times New Roman",serif!important;line-height:.92!important;
}
.tcc-header-locked .tcc-brand-words strong{
  font-size:.91rem!important;letter-spacing:.045em!important;
}
.tcc-header-locked .tcc-brand-words span{
  font-size:1rem!important;letter-spacing:.045em!important;font-weight:700!important;
}
.tcc-header-locked .tcc-desktop-nav{gap:20px!important}
.tcc-header-locked .tcc-desktop-nav a{
  font-size:.68rem!important;letter-spacing:.07em!important;
}
.tcc-header-locked .tcc-stay-final{
  padding:9px 14px!important;font-size:.78rem!important;
  border:1px solid #e9ca7c!important;
  box-shadow:inset 0 0 0 1px #aa7d27!important;
}
@media(max-width:900px){
  .tcc-header-locked .tcc-header-inner{
    grid-template-columns:1fr auto!important;min-height:58px!important;
    padding:7px 12px!important;
  }
  .tcc-header-locked .tcc-desktop-nav{display:none!important}
}
@media(max-width:620px){
  .tcc-header-locked .tcc-header-inner{
    min-height:60px!important;padding:7px 10px!important;gap:9px!important;
  }
  .tcc-header-locked .tcc-texas-mark{width:28px!important;height:28px!important}
  .tcc-header-locked .tcc-texas-star{left:10px!important;top:8px!important;font-size:.6rem!important}
  .tcc-header-locked .tcc-brand-words strong{font-size:.72rem!important}
  .tcc-header-locked .tcc-brand-words span{font-size:.82rem!important}
  .tcc-header-locked .tcc-stay-final{padding:8px 9px!important;font-size:.68rem!important}
}

/* ===== FINAL TOP-OF-SITE SIMPLIFICATION ===== */
/* The hero is the brand header. Keep only the Visual Access strip above it. */
.tcc-header-final,
.tcc-header-locked,
.topbar-v2{
  display:none!important;
}
.visual-help-bar{
  margin:0!important;
  border-bottom:2px solid #c8a35c!important;
}

/* ===== CLASS PAGE BACK TO HOME ===== */
.back-home-final{
  display:inline-block;
  margin:14px 18px 8px;
  padding:10px 16px;
  background:linear-gradient(#f6d98c,#dba83c);
  border:1px solid #b98a34;
  color:#072844!important;
  font-weight:900;
  text-decoration:none!important;
  letter-spacing:.02em;
}
.back-home-final:hover{background:#f2cf73}
.back-home-final:focus-visible{
  outline:3px solid #f2c764!important;
  outline-offset:3px!important;
}
@media(max-width:620px){
  .back-home-final{
    display:block;
    width:calc(100% - 20px);
    margin:10px;
    text-align:center;
  }
}

/* ===== RECOVERY PASS G: CANDIDATE → PARENT RACE CONTEXT ===== */
.candidate-race-context-final{
  max-width:760px;
  margin:10px auto 12px;
  padding:0 12px;
  text-align:center;
}
.candidate-race-context-label{
  margin:0 0 7px;
  color:#072844;
  font-family:Georgia,"Times New Roman",serif;
  font-weight:800;
  font-size:1.05rem;
}
.candidate-race-context-final img{
  display:block;
  width:100%;
  height:auto;
  max-height:240px;
  object-fit:contain;
  margin:0 auto;
}
@media(max-width:620px){
  .candidate-race-context-final{
    margin:8px auto 10px;
    padding:0 8px;
  }
  .candidate-race-context-label{
    font-size:.95rem;
  }
  .candidate-race-context-final img{
    max-height:180px;
  }
}

/* ===== RECOVERY PASS H: NAV / SAVE / MOBILE HERO LOCK ===== */
.visible-save-vs-final,
.race-art-v2 + a[download],
.original-race-art + a[download],
.reconciled-race-art + a[download]{
  display:block!important;
  width:max-content!important;
  max-width:calc(100% - 24px)!important;
  margin:10px auto 16px!important;
}
.site-header,.tcc-header{
  background:#072844;
}
.candidate-bottom-back-final{
  display:block;
  width:max-content;
  max-width:calc(100% - 24px);
  margin:24px auto 10px;
}

/* ===== RECOVERY PASS I: APPROVED HOMEPAGE TOP / DO NOT SHRINK NEW HERO ===== */
@media(max-width:620px){
  .home-hero img,.hero-scene img,.texas-hero img{
    width:100%!important;
    height:auto!important;
    max-height:none!important;
    object-fit:initial!important;
  }
}


/* PASS K MOBILE VISUAL QA — restore locked slim brand strip below Visual Access tools */
.tcc-slim-strip-final{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  background:#072844;color:#fff;padding:8px 18px;border-bottom:1px solid #c8a35c;
  font-family:Georgia,"Times New Roman",serif;font-weight:700;letter-spacing:.02em;
}
.tcc-slim-strip-final span{font-size:.95rem}
.tcc-slim-strip-final a{color:#fff!important;text-decoration:none;font-family:Arial,sans-serif;font-size:.76rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.tcc-slim-strip-final a:hover,.tcc-slim-strip-final a:focus-visible{text-decoration:underline}
.tcc-slim-strip-final a:focus-visible{outline:3px solid #f2c764;outline-offset:3px}
@media(max-width:620px){
  .tcc-slim-strip-final{padding:7px 10px}
  .tcc-slim-strip-final span{font-size:.8rem}
  .tcc-slim-strip-final a{font-size:.66rem}
}
@media(forced-colors:active){.tcc-slim-strip-final{forced-color-adjust:auto}}


/* PASS K MOBILE HERO — JEN APPROVED FIT 2026-09-08 */
/* Keep the exact approved Texas banner fully visible on phones. No crop, shrink, or alternate artwork. */
@media(max-width:620px){
  .hero-v2{width:100%!important;overflow:visible!important;}
  .hero-v2 img{
    display:block!important;
    width:100%!important;
    height:auto!important;
    max-height:none!important;
    object-fit:contain!important;
    object-position:center center!important;
  }
}

/* PASS K3 VISUAL QA — lock Governor homepage headings to approved editorial serif */
.title-v2,.governor-home-title-final{font-family:Georgia,"Times New Roman",serif!important;font-weight:700!important;}
