
:root{
  --navy:#081f4d;
  --navy-2:#0d2f6f;
  --red:#e30613;
  --white:#ffffff;
  --off:#f4f6fa;
  --ink:#172033;
  --muted:#5d6677;
  --line:#dfe4ec;
  --shadow:0 12px 30px rgba(8,31,77,.12);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--white);line-height:1.55}
a{color:var(--navy-2)}
img{max-width:100%;display:block}
.container{width:min(1160px,calc(100% - 32px));margin:auto}
.skip-link{position:absolute;left:-9999px;top:0;background:#fff;padding:10px;z-index:999}
.skip-link:focus{left:10px;top:10px}
.topbar{background:var(--red);color:#fff;font-size:.9rem}
.topbar .container{display:flex;justify-content:space-between;gap:16px;padding:8px 0}
.topbar a{color:#fff;text-decoration:none}
.site-header{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--line)}
.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:92px;gap:24px}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--navy)}
.brand img{width:76px;height:76px;object-fit:contain;border-radius:50%}
.brand-text strong{font-size:1.22rem;display:block;line-height:1.1}
.brand-text span{font-size:.82rem;color:var(--muted)}
.nav-toggle{display:none;border:0;background:var(--navy);color:#fff;padding:10px 13px;border-radius:8px;font-size:1.2rem}
.site-nav ul{display:flex;list-style:none;margin:0;padding:0;align-items:center;gap:4px}
.site-nav a{display:block;padding:12px 13px;text-decoration:none;color:var(--navy);font-weight:700;border-radius:7px}
.site-nav a:hover,.site-nav a[aria-current="page"]{background:var(--off);color:var(--red)}
.site-nav .button-link{background:#4169E1;color:#fff;border:2px solid #4169E1;border-radius:8px;font-weight:800}
.hero{background:linear-gradient(120deg,rgba(8,31,77,.98),rgba(13,47,111,.9));color:#fff;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;align-items:center;gap:40px;padding:62px 0}
.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;font-weight:800;color:#ffccd0}
.hero h1{font-size:clamp(2.15rem,5vw,4.5rem);line-height:1.02;margin:.25rem 0 1rem}
.hero p{font-size:1.14rem;max-width:670px;color:#eaf0ff}
.hero-logo{background:#fff;border-radius:50%;padding:14px;box-shadow:0 20px 50px rgba(0,0,0,.28);max-width:410px;margin:auto}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:25px}
.btn{display:inline-block;border:2px solid transparent;border-radius:8px;padding:12px 18px;font-weight:800;text-decoration:none;cursor:pointer}
.btn-red{background:var(--red);color:#fff}
.btn-white{background:#fff;color:var(--navy)}
.btn-outline{border-color:#fff;color:#fff}
.btn-navy{background:var(--navy);color:#fff}
.section{padding:58px 0}
.section-alt{background:var(--off)}
.section-title{text-align:center;max-width:760px;margin:0 auto 34px}
.section-title h2{font-size:clamp(1.75rem,3vw,2.6rem);color:var(--navy);margin:0 0 8px}
.section-title p{margin:0;color:var(--muted)}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:25px;box-shadow:var(--shadow)}
.card h3{margin-top:0;color:var(--navy)}
.icon{font-size:2rem;margin-bottom:10px}
.notice{border-left:5px solid var(--red);background:#fff;padding:18px 20px;border-radius:8px;box-shadow:var(--shadow)}
.meeting-list{display:grid;gap:14px}
.meeting{display:grid;grid-template-columns:110px 1fr;gap:18px;align-items:center;padding:18px;background:#fff;border:1px solid var(--line);border-radius:12px}
.date-box{text-align:center;background:var(--navy);color:#fff;border-radius:10px;padding:10px}
.date-box strong{display:block;font-size:1.55rem}
.date-box span{text-transform:uppercase;font-size:.78rem;letter-spacing:.08em}
.map-wrap{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;box-shadow:var(--shadow)}
.map-wrap iframe{display:block;width:100%;height:620px;border:0}
.form-card label{font-weight:700;color:var(--navy)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
input,textarea,select{width:100%;padding:12px 13px;border:1px solid #bfc7d5;border-radius:7px;font:inherit;margin:6px 0 14px}
input:focus,textarea:focus,select:focus{outline:3px solid rgba(227,6,19,.18);border-color:var(--red)}
.status{margin-top:12px;font-weight:700}
.page-hero{background:linear-gradient(120deg,var(--navy),var(--navy-2));color:#fff;padding:48px 0}
.page-hero h1{font-size:clamp(2rem,4vw,3.4rem);margin:0 0 8px}
.quick-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.quick-links a{background:#fff;color:var(--navy);padding:10px 13px;border-radius:7px;text-decoration:none;font-weight:700}
.footer{background:var(--navy);color:#fff;padding:42px 0 20px}
.footer-grid{display:grid;grid-template-columns:1.1fr .9fr .9fr;gap:32px}
.footer h3{margin-top:0}
.footer a{color:#fff}
.footer-logo{width:92px;border-radius:50%;background:#fff;padding:5px}
.copyright{border-top:1px solid rgba(255,255,255,.2);margin-top:30px;padding-top:18px;text-align:center;font-size:.86rem;color:#d9e2f5}
.small{font-size:.88rem;color:var(--muted)}
.social-links{display:flex;gap:10px;flex-wrap:wrap}
.social-links a{display:inline-block;padding:9px 12px;border:1px solid rgba(255,255,255,.35);border-radius:7px;text-decoration:none}
.badge{display:inline-block;background:#ffe5e7;color:#a6000b;font-weight:800;font-size:.78rem;padding:5px 9px;border-radius:999px}
@media(max-width:900px){
  .hero-grid,.grid-3,.footer-grid{grid-template-columns:1fr}
  .hero-grid{text-align:center}
  .hero p{margin-left:auto;margin-right:auto}
  .actions{justify-content:center}
  .hero-logo{max-width:320px}
  .nav-toggle{display:block}
  .site-nav{display:none;position:absolute;left:0;right:0;top:92px;background:#fff;border-bottom:1px solid var(--line);box-shadow:var(--shadow)}
  .site-nav.open{display:block}
  .site-nav ul{display:block;padding:10px 16px 18px}
  .site-nav a{padding:13px}
}
@media(max-width:650px){
  .topbar .container{display:block;text-align:center}
  .brand-text span{display:none}
  .brand img{width:60px;height:60px}
  .header-inner{min-height:76px}
  .site-nav{top:76px}
  .hero-grid{padding:42px 0}
  .grid-2,.form-row{grid-template-columns:1fr}
  .meeting{grid-template-columns:82px 1fr}
  .map-wrap iframe{height:470px}
  .section{padding:42px 0}
}

.candidate-banner{
  min-height:360px;
  border-radius:16px;
  background:linear-gradient(135deg,var(--red),#b4000b 48%,var(--navy) 48%,var(--navy-2));
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:36px;
  box-shadow:var(--shadow);
  position:relative;
  overflow:hidden;
}
.candidate-banner:before,.candidate-banner:after{
  content:"★";
  position:absolute;
  color:rgba(255,255,255,.14);
  font-size:12rem;
}
.candidate-banner:before{left:-20px;top:-70px}
.candidate-banner:after{right:-20px;bottom:-90px}
.candidate-banner h2{font-size:clamp(2rem,5vw,4.2rem);line-height:1.05;margin:0;position:relative;z-index:1}
.candidate-banner p{font-size:1.25rem;position:relative;z-index:1}
.official-section{padding:30px 0;border-bottom:1px solid var(--line)}
.official-section:last-child{border-bottom:0}
.official-section h2{color:var(--navy);font-size:1.8rem;margin-bottom:20px}
.official-section h3{color:var(--navy);margin-bottom:5px}
.official-list{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.official-entry{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px}
.official-entry p{margin:.3rem 0}
.official-entry a{font-weight:700}
@media(max-width:700px){
  .official-list{grid-template-columns:1fr}
  .candidate-banner{min-height:280px}
}

/* Full-width photographic hero */
.hero-photo{
  min-height:620px;
  position:relative;
  background-image:url("collier-hero-landscape.jpg");
  background-size:cover;
  background-position:center;
  display:flex;
  align-items:center;
}
.hero-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(3,17,48,.88) 0%,rgba(5,29,73,.72) 48%,rgba(3,17,48,.30) 100%);
}
.hero-photo-grid{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(260px,390px) minmax(0,720px);
  align-items:center;
  gap:48px;
  padding:70px 0;
}
.hero-logo-wrap{display:flex;justify-content:center}
.hero-logo-overlay{
  width:min(360px,90%);
  border-radius:50%;
  background:#fff;
  padding:8px;
  filter:drop-shadow(0 18px 26px rgba(0,0,0,.4));
}
.hero-copy{color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.5)}
.hero-copy h1{font-size:clamp(2.6rem,5.5vw,5.2rem);line-height:.98;margin:.3rem 0 1rem}
.hero-copy p{font-size:1.18rem;max-width:650px;color:#fff}
.resource-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.donate-layout{display:grid;grid-template-columns:1.25fr .75fr;gap:30px;align-items:start}
.donation-options{display:flex;gap:12px;flex-wrap:wrap;margin:18px 0 26px}
.donation-amount{display:inline-flex;align-items:center;justify-content:center;min-width:92px;padding:16px;border:2px solid var(--navy);border-radius:10px;text-decoration:none;font-weight:800;font-size:1.2rem;background:#fff}
.donation-amount:hover,.donation-amount:focus{background:var(--navy);color:#fff}
.btn-large{padding:15px 22px;font-size:1.05rem}
.compliance-card{border-top:6px solid var(--red)}
.legal-content{max-width:850px;margin:auto}
.footer-legal{text-align:center;margin-top:24px}
.footer-legal a{color:#fff}

/* Accessibility */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
:focus-visible{outline:3px solid #ffbf47;outline-offset:3px}
.accessibility-tools{position:fixed;right:18px;bottom:18px;z-index:100}
.accessibility-toggle{
  width:52px;height:52px;border-radius:50%;border:3px solid #fff;background:var(--navy);color:#fff;
  font-size:1.45rem;box-shadow:0 5px 18px rgba(0,0,0,.28);cursor:pointer
}
.accessibility-panel{
  position:absolute;right:0;bottom:62px;width:220px;background:#fff;border:2px solid var(--navy);
  border-radius:12px;padding:14px;box-shadow:var(--shadow)
}
.accessibility-panel h2{font-size:1.05rem;color:var(--navy);margin:0 0 10px}
.accessibility-panel button{width:100%;padding:10px;margin:4px 0;border:1px solid var(--navy);border-radius:7px;background:#fff;color:var(--navy);font-weight:700;cursor:pointer}
.accessibility-panel button:hover,.accessibility-panel button:focus{background:var(--navy);color:#fff}
body.large-text{font-size:118%}
body.high-contrast{--navy:#000;--navy-2:#000;--red:#b00000;--off:#fff;--ink:#000;--muted:#111;--line:#000}
body.high-contrast a{text-decoration:underline}
body.high-contrast .btn,body.high-contrast .site-nav a{border:2px solid currentColor}
body.high-contrast .hero-overlay{background:rgba(0,0,0,.82)}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
@media(max-width:1000px){
  .resource-grid{grid-template-columns:repeat(2,1fr)}
  .hero-photo-grid{grid-template-columns:300px 1fr;gap:28px}
  .donate-layout{grid-template-columns:1fr}
}
@media(max-width:700px){
  .hero-photo{min-height:auto}
  .hero-photo-grid{grid-template-columns:1fr;text-align:center;padding:45px 0}
  .hero-logo-overlay{width:220px}
  .hero-copy p{margin-left:auto;margin-right:auto}
  .resource-grid{grid-template-columns:1fr}
  .accessibility-tools{right:12px;bottom:12px}
}

/* Requested navigation and page-label refinements */
.site-nav ul{flex-wrap:nowrap}
.site-nav a{white-space:nowrap}
.eyebrow-royal{
  color:#4169e1;
  background:#fff;
  display:inline-block;
  padding:6px 11px;
  border-radius:6px;
  text-shadow:none;
  letter-spacing:.12em;
}
.hero-photo .eyebrow-royal,
.page-hero .eyebrow-royal{
  color:#4169e1;
  background:#fff;
}
@media (min-width:901px) and (max-width:1180px){
  .site-nav a{padding:10px 7px;font-size:.84rem}
  .header-inner{gap:10px}
  .brand-text strong{font-size:1rem}
  .brand-text span{font-size:.76rem}
}


/* Professional SVG social icons */
.topbar .container{
  align-items:center;
}
.topbar-social{
  display:flex;
  align-items:center;
  gap:16px;
}
.top-social-link{
  display:inline-flex;
  align-items:center;
  gap:7px;
  color:#fff;
  text-decoration:none;
  font-weight:700;
}
.top-social-link svg{
  width:18px;
  height:18px;
  flex:0 0 18px;
}
.top-social-link:hover,
.top-social-link:focus{
  text-decoration:underline;
}

.social-icon{
  width:46px;
  height:46px;
  border-radius:50%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#fff;
  border:2px solid var(--navy);
  color:var(--navy);
  text-decoration:none;
  box-shadow:0 5px 16px rgba(0,0,0,.18);
  transition:transform .18s ease, background .18s ease, color .18s ease, box-shadow .18s ease;
}
.social-icon svg{
  width:23px;
  height:23px;
}
.social-icon:hover,
.social-icon:focus-visible{
  background:var(--navy);
  color:#fff;
  transform:translateY(-2px);
  box-shadow:0 8px 20px rgba(0,0,0,.24);
}
.social-icon.facebook:hover,
.social-icon.facebook:focus-visible{
  background:#1877f2;
  border-color:#1877f2;
}
.social-icon.x:hover,
.social-icon.x:focus-visible{
  background:#000;
  border-color:#000;
}

.page-social-icons{
  position:fixed;
  left:18px;
  bottom:18px;
  display:flex;
  gap:10px;
  z-index:90;
}

.footer-social-icons{
  display:flex;
  gap:10px;
  margin-top:12px;
}
.footer-social-icons .social-icon{
  width:42px;
  height:42px;
  box-shadow:none;
  border-color:rgba(255,255,255,.65);
  background:transparent;
  color:#fff;
}
.footer-social-icons .social-icon:hover,
.footer-social-icons .social-icon:focus-visible{
  background:#fff;
  color:var(--navy);
  border-color:#fff;
}

@media(max-width:900px){
  .topbar-social span{
    display:none;
  }
}
@media(max-width:700px){
  .page-social-icons{
    left:12px;
    bottom:12px;
  }
  .social-icon{
    width:42px;
    height:42px;
  }
  .topbar .container{
    display:flex;
    justify-content:center;
    flex-wrap:wrap;
  }
}

.site-nav .button-link:hover{background:#2f54d6;border-color:#2f54d6;color:#fff}
.site-nav .donate-link{
background:#4169E1;
color:#fff !important;
border:2px solid #4169E1;
border-radius:8px;
font-weight:800;
}
.site-nav .donate-link:hover{
background:#2f54d6;
border-color:#2f54d6;
color:#fff !important;
}
.site-nav .button-link{
background:#E30613 !important;
border:2px solid #E30613 !important;
color:#fff !important;
}
.site-nav .button-link:hover{
background:#b6000f !important;
border-color:#b6000f !important;
}

/* Make all Donate buttons royal blue */
.donate-btn{
    background:#4169E1 !important;
    color:#fff !important;
    border:2px solid #4169E1 !important;
}
.donate-btn:hover,
.donate-btn:focus{
    background:#2f54d6 !important;
    border-color:#2f54d6 !important;
    color:#fff !important;
}

/* Consistent action hierarchy */

/* Primary engagement */
.btn.btn-red,
.site-nav .button-link{
  background:#E30613 !important;
  border:2px solid #E30613 !important;
  color:#fff !important;
}
.btn.btn-red:hover,
.site-nav .button-link:hover{
  background:#b6000f !important;
  border-color:#b6000f !important;
}

/* Donations */
.donate-btn,
.site-nav .donate-link{
  background:#4169E1 !important;
  border:2px solid #4169E1 !important;
  color:#fff !important;
}
.donate-btn:hover,
.site-nav .donate-link:hover{
  background:#2f54d6 !important;
  border-color:#2f54d6 !important;
}

/* Informational actions */
.btn.btn-white{
  background:#fff !important;
  color:#081F4D !important;
  border:2px solid #fff !important;
}
.btn.btn-white:hover{
  background:#eef3ff !important;
}

/* Secondary navigation/actions */
.btn.btn-navy{
  background:#081F4D !important;
  color:#fff !important;
  border:2px solid #081F4D !important;
}
.btn.btn-navy:hover{
  background:#10306e !important;
}

/* Uniform homepage feature icon sizing */
.card .icon{
    font-size:2rem;
    line-height:1;
    width:2.2rem;
    height:2.2rem;
    display:flex;
    align-items:center;
    justify-content:center;
    margin-bottom:10px;
}

/* Voter guide */
.voter-guide-layout{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
}
.voter-guide-card{
  height:100%;
}
.guide-checklist{
  padding-left:1.25rem;
}
.guide-checklist li{
  margin-bottom:.65rem;
}
@media(max-width:900px){
  .voter-guide-layout{grid-template-columns:1fr}
}
@media print{
  .site-header,.topbar,.footer,.page-social-icons,.accessibility-tools,.nav-toggle{display:none!important}
  body{background:#fff;color:#000}
  .page-hero{background:#fff;color:#000;padding:20px 0}
  .page-hero h1,.section-title h2{color:#000}
  .btn{display:none!important}
  .card{box-shadow:none;border:1px solid #999}
}

/* About page: professional SVG principles grid */
.about-content{
  max-width:960px;
  margin:auto;
}
.about-content > p{
  font-size:1.05rem;
}
.mission-list{
  max-width:960px;
  margin:0 auto;
  padding-left:1.3rem;
}
.mission-list li{
  margin-bottom:.85rem;
  padding-left:.2rem;
}
.principles-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:22px;
}
.principle-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:14px;
  padding:24px;
  box-shadow:var(--shadow);
  transition:transform .18s ease, box-shadow .18s ease;
}
.principle-card:hover{
  transform:translateY(-4px);
  box-shadow:0 16px 34px rgba(8,31,77,.18);
}
.principle-icon{
  width:58px;
  height:58px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--navy);
  color:#fff;
  margin-bottom:16px;
}
.principle-card:nth-child(even) .principle-icon{
  background:var(--red);
}
.principle-icon svg{
  width:30px;
  height:30px;
}
.principle-card h3{
  color:var(--navy);
  margin:0 0 10px;
}
.principle-card p{
  margin:0;
  color:var(--muted);
}
@media(max-width:1050px){
  .principles-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:650px){
  .principles-grid{grid-template-columns:1fr}
  .principle-card{padding:20px}
}

/* Official organization website links */
.official-site-link{
  margin:.35rem 0 1.25rem;
}
.official-site-link a{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  padding:9px 13px;
  border-radius:7px;
  background:#f4f6fa;
  border:1px solid #dfe4ec;
  color:#0d2f6f;
  font-weight:700;
  text-decoration:none;
}
.official-site-link a::before{
  content:"↗";
  font-size:1rem;
}
.official-site-link a:hover,
.official-site-link a:focus{
  background:#e8eef9;
  color:#e30613;
}

/* Website ownership and content-use notice */
.content-permission-notice{
  max-width:980px;
  margin:24px auto 0;
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,.25);
  color:#d9e2f5;
  text-align:center;
  font-size:.78rem;
  line-height:1.45;
}

/* Launch polish */
.map-link{
  display:inline-block;
  margin-top:8px;
  padding:7px 10px;
  border-radius:6px;
  background:#081f4d;
  color:#fff !important;
  font-weight:700;
  text-decoration:none;
}
.map-link:hover,.map-link:focus{
  background:#4169e1;
}
.footer-professional{
  margin-top:28px;
  padding-top:24px;
  border-top:1px solid rgba(255,255,255,.22);
  text-align:center;
}
.footer-brand-name{
  color:#fff;
  font-size:1.2rem;
  font-weight:800;
  letter-spacing:.08em;
}
.footer-contact-line,.footer-social-line{
  display:flex;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
  margin-top:9px;
}
.footer-contact-line a,.footer-social-line a{
  color:#fff;
}
.footer-paid-for{
  margin:18px auto 0;
  color:#fff;
  font-size:.88rem;
  font-weight:700;
}
.footer-copyright{
  margin-top:20px;
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,.18);
  text-align:center;
}
.footer-copyright strong{
  display:block;
  color:#fff;
  font-size:.95rem;
  margin-bottom:.65rem;
}
.footer-disclaimer{
  max-width:900px;
  margin:0 auto;
  color:#bcc7d9;
  font-size:.83rem;
  line-height:1.6;
}
.campaign-finance-notice{
  border-top:6px solid #4169e1;
}
.error-page{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:30px;
  background:linear-gradient(135deg,#081f4d,#0d2f6f);
}
.error-card{
  width:min(760px,100%);
  background:#fff;
  border-radius:18px;
  padding:42px;
  text-align:center;
  box-shadow:0 20px 55px rgba(0,0,0,.32);
}
.error-card img{
  width:150px;
  margin:0 auto 20px;
}
.error-card h1{
  color:#081f4d;
  font-size:clamp(2rem,5vw,3.5rem);
  margin:.6rem 0 1rem;
}
.error-actions{
  justify-content:center;
}
@media(max-width:650px){
  .footer-contact-line,.footer-social-line{display:block}
  .footer-contact-line span,.footer-social-line span{display:none}
  .footer-contact-line a,.footer-social-line a{display:block;margin:7px 0}
  .error-card{padding:28px 20px}
}

/* Centered Collier voting-district reference map */
.district-explorer{
  display:block;
  width:100%;
}
.district-map-card{
  width:min(100%,1100px);
  margin:0 auto;
  padding:14px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:14px;
  box-shadow:var(--shadow);
}
.district-reference-map{
  display:block;
  width:100%;
  height:auto;
  margin:0 auto;
  border-radius:9px;
  border:1px solid #d7dee8;
}
.official-map-details{
  width:min(100%,1100px);
  margin:24px auto 0;
}
.official-map-details summary{
  cursor:pointer;
  font-weight:800;
  color:var(--navy);
  padding:14px 16px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:8px;
}
.official-map-details[open] summary{margin-bottom:12px}


/* Version 32 QA corrections */
.btn,
.site-nav a,
.map-link,
.donation-amount,
.official-site-link a{
  transition:background-color .18s ease, border-color .18s ease, color .18s ease,
             transform .18s ease, box-shadow .18s ease;
}
.btn:hover,
.btn:focus-visible{
  transform:translateY(-1px);
}
.btn-outline:hover,
.btn-outline:focus-visible{
  background:#fff;
  color:var(--navy);
}
.nav-toggle{
  min-width:44px;
  min-height:44px;
}
.site-nav a{
  min-height:44px;
  display:flex;
  align-items:center;
}
.table-scroll{
  width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  border-radius:8px;
}
.polling-table{
  width:100%;
  min-width:620px;
  border-collapse:collapse;
}
.polling-table th,
.polling-table td{
  padding:10px;
  text-align:left;
  vertical-align:top;
}
.polling-table th{
  background:var(--navy);
  color:#fff;
}
.polling-table td{
  border-top:1px solid #ddd;
}
@media(max-width:650px){
  body{font-size:16px}
  .container{width:min(100% - 24px,1160px)}
  .card{padding:20px}
  .actions .btn{width:100%;text-align:center}
  .hero-copy h1{font-size:clamp(2.35rem,12vw,3.6rem)}
  .topbar{font-size:.82rem}
  .polling-table-card{padding:12px}
}


/* Version 33: iPad and tablet optimization */

/* iPad portrait and similar tablets */
@media (min-width: 700px) and (max-width: 900px) {
  .container{
    width:min(100% - 40px,1160px);
  }

  .header-inner{
    min-height:82px;
    gap:14px;
  }

  .brand img{
    width:64px;
    height:64px;
  }

  .brand-text strong{
    font-size:1.05rem;
  }

  .brand-text span{
    font-size:.75rem;
  }

  .nav-toggle{
    display:block;
  }

  .site-nav{
    display:none;
    position:absolute;
    left:0;
    right:0;
    top:82px;
    background:#fff;
    border-bottom:1px solid var(--line);
    box-shadow:var(--shadow);
    max-height:calc(100vh - 82px);
    overflow-y:auto;
  }

  .site-nav.open{
    display:block;
  }

  .site-nav ul{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    padding:16px 20px 22px;
  }

  .site-nav a{
    min-height:48px;
    justify-content:center;
    text-align:center;
  }

  .hero-photo{
    min-height:auto;
  }

  .hero-photo-grid{
    grid-template-columns:240px 1fr;
    gap:28px;
    padding:52px 0;
  }

  .hero-logo-overlay{
    width:220px;
  }

  .hero-copy h1{
    font-size:clamp(2.6rem,7vw,4rem);
  }

  .hero-copy p{
    font-size:1.05rem;
  }

  .resource-grid{
    grid-template-columns:repeat(2,1fr);
  }

  .principles-grid{
    grid-template-columns:repeat(2,1fr);
  }

  .grid-3{
    grid-template-columns:repeat(2,1fr);
  }

  .footer-grid{
    grid-template-columns:1fr 1fr;
  }

  .footer-grid > div:first-child{
    grid-column:1 / -1;
  }

  .map-wrap iframe{
    height:540px;
  }

  .meeting{
    grid-template-columns:96px 1fr;
  }

  .donate-layout{
    grid-template-columns:1fr;
  }

  .voter-guide-layout{
    grid-template-columns:1fr 1fr;
  }

  .voter-guide-layout .voter-guide-card:last-child{
    grid-column:1 / -1;
  }

  .official-list{
    grid-template-columns:repeat(2,1fr);
  }

  .actions{
    gap:10px;
  }

  .actions .btn{
    width:auto;
  }
}

/* iPad landscape and wider tablets */
@media (min-width: 901px) and (max-width: 1180px) {
  .container{
    width:min(100% - 48px,1160px);
  }

  .header-inner{
    gap:12px;
  }

  .brand img{
    width:66px;
    height:66px;
  }

  .brand-text strong{
    font-size:1rem;
  }

  .brand-text span{
    font-size:.74rem;
  }

  .site-nav ul{
    gap:2px;
  }

  .site-nav a{
    padding:10px 7px;
    font-size:.82rem;
  }

  .hero-photo-grid{
    grid-template-columns:280px 1fr;
    gap:30px;
    padding:58px 0;
  }

  .hero-logo-overlay{
    width:260px;
  }

  .resource-grid{
    grid-template-columns:repeat(2,1fr);
  }

  .principles-grid{
    grid-template-columns:repeat(2,1fr);
  }

  .grid-3{
    grid-template-columns:repeat(3,1fr);
  }

  .footer-grid{
    grid-template-columns:1fr 1fr 1fr;
  }

  .voter-guide-layout{
    grid-template-columns:repeat(2,1fr);
  }

  .voter-guide-layout .voter-guide-card:last-child{
    grid-column:1 / -1;
  }

  .map-wrap iframe{
    height:580px;
  }
}

/* iPad Safari: avoid text auto-enlargement and preserve predictable sizing */
html{
  -webkit-text-size-adjust:100%;
}

/* Improve tap targets and reduce accidental taps on touch devices */
@media (hover:none) and (pointer:coarse){
  .btn,
  .site-nav a,
  .map-link,
  .social-icon,
  .donation-amount,
  .official-site-link a{
    min-height:44px;
  }

  .principle-card:hover,
  .btn:hover,
  .social-icon:hover{
    transform:none;
  }
}

/* Safer viewport behavior on modern iPadOS Safari */
@supports (padding: max(0px)) {
  .site-header,
  .topbar,
  .footer{
    padding-left:max(0px, env(safe-area-inset-left));
    padding-right:max(0px, env(safe-area-inset-right));
  }

  .page-social-icons{
    left:max(12px, env(safe-area-inset-left));
    bottom:max(12px, env(safe-area-inset-bottom));
  }

  .accessibility-tools{
    right:max(12px, env(safe-area-inset-right));
    bottom:max(12px, env(safe-area-inset-bottom));
  }
}


/* Version 34 production release */
img{height:auto}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
button,input,select,textarea{font:inherit}
a,button{touch-action:manipulation}
@media (hover:hover){
  .card:hover{box-shadow:0 14px 34px rgba(8,31,77,.15)}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
    scroll-behavior:auto!important;
  }
}
@media print{
  .site-header,.topbar,.footer,.page-social-icons,.accessibility-tools,.nav-toggle{display:none!important}
  body{background:#fff;color:#000}
  a{color:#000;text-decoration:none}
}


/* Version 36: Polling-place photo cards */
.polling-place-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
}
.polling-place-card{
  overflow:hidden;
  background:#fff;
  border:1px solid var(--line);
  border-radius:14px;
  box-shadow:var(--shadow);
  display:flex;
  flex-direction:column;
  min-width:0;
}
.polling-place-photo{
  width:100%;
  aspect-ratio:20 / 13;
  object-fit:cover;
  display:block;
  background:#e8ecf3;
}
.polling-place-content{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  flex:1;
  padding:21px;
}
.polling-district-label{
  display:inline-block;
  margin-bottom:8px;
  padding:5px 9px;
  border-radius:999px;
  background:#eef2ff;
  color:#274bc7;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.polling-place-card h3{
  margin:0 0 9px;
  color:var(--navy);
  font-size:1.2rem;
  line-height:1.25;
}
.polling-place-card address{
  margin:0 0 18px;
  color:var(--muted);
  font-style:normal;
  line-height:1.55;
}
.polling-place-card .map-link{
  margin-top:auto;
}
.polling-verification-note{
  margin:24px auto 0;
  max-width:900px;
  padding:15px 18px;
  border-left:5px solid var(--red);
  border-radius:7px;
  background:#fff;
  color:var(--muted);
}
@media(max-width:1000px){
  .polling-place-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:650px){
  .polling-place-grid{grid-template-columns:1fr}
  .polling-place-content{padding:18px}
}


/* Version 44: restored accessibility controls on every page */
.accessibility-tools{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:1000;
}
.accessibility-toggle{
  width:52px;
  height:52px;
  border-radius:50%;
  border:3px solid #fff;
  background:var(--navy,#081f4d);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.45rem;
  box-shadow:0 5px 18px rgba(0,0,0,.28);
  cursor:pointer;
}
.accessibility-toggle:hover,
.accessibility-toggle:focus-visible{
  background:#4169e1;
}
.accessibility-panel{
  position:absolute;
  right:0;
  bottom:62px;
  width:220px;
  background:#fff;
  border:2px solid var(--navy,#081f4d);
  border-radius:12px;
  padding:14px;
  box-shadow:0 12px 30px rgba(0,0,0,.22);
}
.accessibility-panel h2{
  font-size:1.05rem;
  color:var(--navy,#081f4d);
  margin:0 0 10px;
}
.accessibility-panel button{
  width:100%;
  min-height:44px;
  padding:10px;
  margin:4px 0;
  border:1px solid var(--navy,#081f4d);
  border-radius:7px;
  background:#fff;
  color:var(--navy,#081f4d);
  font-weight:700;
  cursor:pointer;
}
.accessibility-panel button:hover,
.accessibility-panel button:focus-visible{
  background:var(--navy,#081f4d);
  color:#fff;
}
body.large-text{
  font-size:118%;
}
body.high-contrast{
  --navy:#000;
  --navy-2:#000;
  --red:#b00000;
  --off:#fff;
  --ink:#000;
  --muted:#111;
  --line:#000;
  background:#fff;
  color:#000;
}
body.high-contrast a{
  text-decoration:underline;
}
body.high-contrast .btn,
body.high-contrast .site-nav a,
body.high-contrast .card,
body.high-contrast .accessibility-panel{
  border:2px solid #000;
}
body.high-contrast .hero-overlay{
  background:rgba(0,0,0,.86);
}
@media(max-width:650px){
  .accessibility-tools{
    right:12px;
    bottom:12px;
  }
}


/* v46 official Allegheny County GIS voting-district map */
.official-gis-card{padding:16px}
.official-district-map{width:100%;height:620px;border-radius:14px;border:1px solid rgba(17,40,72,.18);background:#eef3f7;overflow:hidden}
.official-map-status{margin:12px 2px 4px;font-weight:700;color:#243b5a}
.district-map-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 18px;margin:16px 0 8px}
.district-map-legend span{display:inline-flex;align-items:center;gap:7px;font-weight:700;color:#172b4d}
.district-map-legend i{display:inline-block;width:18px;height:18px;border:2px solid #172b4d;border-radius:4px;background:var(--district-color)}
.district-number-label{font-size:24px;font-weight:900;color:#101820;background:rgba(255,255,255,.78);border:0;box-shadow:0 1px 4px rgba(0,0,0,.2);padding:2px 7px}
.district-number-label:before{display:none}
.static-map-card{margin-top:14px}
@media (max-width:760px){.official-district-map{height:470px}.district-number-label{font-size:18px}}

/* v47: website-styled Mailchimp newsletter forms */
.newsletter-form{display:grid;gap:12px}
.newsletter-form label{display:block;font-weight:700;color:var(--navy)}
.newsletter-form input[type="text"],
.newsletter-form input[type="email"]{width:100%;min-height:46px;margin-top:6px;padding:10px 12px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);font:inherit}
.newsletter-form input:focus{outline:3px solid rgba(65,105,225,.28);border-color:#4169e1}
.newsletter-form .consent-label{display:flex;align-items:flex-start;gap:9px;font-weight:600;line-height:1.45}
.newsletter-form .consent-label input{width:auto;min-width:18px;height:18px;margin-top:2px}
.form-help,.privacy-note{margin:0;color:var(--muted);font-size:.9rem}
.mailchimp-honeypot{position:absolute!important;left:-5000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.footer-website-line{margin-top:5px}
.footer-website-line a,.website-address a{font-weight:700}
