/* Approved campaign mockup direction */
body{background:#edf2f8}
.site-header{height:96px;padding:0 clamp(22px,4vw,64px);background:#06264f;border-bottom:0}
.site-header .brand-logo{height:88px;width:104px;margin-bottom:-24px;position:relative;z-index:4;filter:drop-shadow(0 5px 5px rgba(0,0,0,.28))}
.site-header nav{gap:clamp(16px,2.5vw,34px);text-transform:uppercase;font-family:"Barlow Condensed",sans-serif;font-size:1rem;letter-spacing:.04em}
.site-header .nav-cta{padding:13px 25px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}
.site-header .donate-cta{background:#16813b;color:#fff;padding:11px 20px;border:2px solid #40a95f;font-weight:900;box-shadow:0 4px 0 rgba(0,0,0,.18)}
.site-header .donate-cta:hover{background:#0f672f;color:#fff;border-color:#fff}

.hero{min-height:690px;grid-template-columns:56% 44%;background:linear-gradient(110deg,rgba(255,255,255,.98) 0 52%,rgba(227,236,247,.9) 67%,#aac1db 100%);border-bottom:0}
.hero:before{width:100%;height:7px;z-index:5}
.hero-copy{padding:112px 4vw 70px 7vw;max-width:none}
.hero .eyebrow{color:var(--navy);font-size:clamp(1rem,1.35vw,1.2rem);font-weight:900;letter-spacing:.14em}
.hero .eyebrow .office-star,.hero .eyebrow .office-district{color:var(--red)}
.hero .eyebrow .office-star{margin-right:8px}
.hero .eyebrow .office-district{margin-right:0}
.hero h1{font-family:Montserrat,Inter,sans-serif;font-weight:900;font-size:clamp(4.5rem,7vw,7.6rem);line-height:.92;color:var(--red);text-shadow:none;letter-spacing:-.015em}
.hero h1 em{color:var(--navy);text-shadow:none}
.hero-kicker{color:var(--red);font-size:clamp(1.3rem,2vw,1.75rem);margin-top:38px}
.hero .hero-lead{color:#263b54;max-width:700px;font-size:1.08rem}
.hero-actions .button{border-width:3px;box-shadow:0 7px 0 rgba(7,30,65,.14);transition:transform .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease}
.hero-actions .button:hover{transform:translateY(-2px);box-shadow:0 9px 0 rgba(7,30,65,.18)}
.hero .primary{background:var(--navy);border-color:var(--navy);color:#fff}
.hero .primary:hover{background:#0b376f;border-color:#0b376f}
.hero .secondary{border-color:var(--navy);color:var(--navy);background:#fff}
.hero .secondary:hover{background:#e9f0f8;color:var(--navy)}
.donate-button{background:var(--navy);color:#fff;border-color:var(--navy)}
.donate-button:hover{background:#0b376f;border-color:#0b376f}
.hero .donate-button{background:var(--red);color:#fff;border-color:var(--red)}
.hero .donate-button:hover{background:#b91820;border-color:#b91820;color:#fff}
.hero-proof{border-top-color:#b9c5d3}
.hero-proof div{border-right-color:#b9c5d3}
.hero-proof span{color:var(--navy)}
.hero-visual{min-height:690px;padding:34px 4% 0 0;background:transparent;align-items:flex-end}
.hero-photo{width:100%;max-width:610px;height:94%;border:0;box-shadow:none;background:transparent;clip-path:polygon(8% 0,100% 0,100% 100%,0 100%)}
.hero-photo img{object-position:50% 18%}
.hero-campaign-logo{left:-22%;top:28px;bottom:auto;width:clamp(185px,16vw,255px);filter:drop-shadow(4px 8px 3px rgba(3,20,45,.35))}

.campaign-ribbon{min-height:92px;background:#fff;color:var(--navy);border:0;border-bottom:8px solid var(--navy);box-shadow:0 -8px 25px rgba(6,38,79,.08);font-size:clamp(1.45rem,2.4vw,2.2rem)}
.campaign-ribbon b{color:var(--red);text-shadow:none}
.campaign-ribbon p{color:var(--red);border-left-color:#b7c3d2;font-style:italic}
.campaign-ribbon .slogan-blue{color:var(--navy)}
.campaign-ribbon .slogan-red{color:var(--red)}
.statement{padding:35px 20px;background:linear-gradient(90deg,#07244b,#0a376c)}
.statement span{font-size:1rem;font-weight:900;letter-spacing:.18em}

.priorities{background:#f6f8fb;color:var(--navy);border-top:0;padding-top:86px}
.priorities{position:relative;overflow:hidden}
.priorities:before{content:"";position:absolute;right:-45px;top:18px;width:clamp(230px,26vw,430px);aspect-ratio:1;background:url("assets/forrest-campaign-logo.png") center/contain no-repeat;opacity:.045;pointer-events:none}
.priorities>*{position:relative;z-index:1}
.priorities .section-heading .eyebrow{color:var(--red);font-size:clamp(1rem,1.4vw,1.2rem);font-weight:900;letter-spacing:.16em;margin-bottom:24px}
.priorities .section-heading{max-width:900px;margin:0 auto 44px;text-align:center}
.priorities .section-heading h2{font-size:clamp(3.3rem,5.7vw,6rem)}
.priorities .section-heading h2::first-line{color:var(--navy)}
.priorities .section-heading>p:last-child{color:#526174;max-width:680px;margin:0 auto}
.priority-grid{grid-template-columns:repeat(5,1fr);gap:12px;align-items:stretch}
.priority{padding:30px 24px;background:#fff;border:1px solid #d6dee8;border-top:5px solid var(--red);box-shadow:0 9px 20px rgba(8,35,72,.09)}
.priority.featured{background:#fff;color:var(--navy);border-top-color:var(--navy)}
.priority .number{width:58px;height:58px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;margin:0 auto;font-size:1rem;box-shadow:4px 4px 0 var(--red)}
.priority:nth-child(even) .number{background:var(--red);box-shadow:4px 4px 0 var(--navy)}
.priority h3,.priority.featured h3{font-size:1.72rem;text-align:center;margin:24px 0 15px;color:var(--navy)}
.priority p,.priority.featured p{font-size:.9rem;color:#526174}
.priority h4,.priority.featured h4{color:var(--red);font-size:.82rem}
.priority li,.priority.featured li{color:#33445a;font-size:.87rem}

.data-center-position{display:grid;grid-template-columns:.7fr 1.3fr;background:var(--navy);color:#fff;border-top:8px solid var(--red);border-bottom:8px solid #fff}
.position-label{padding:clamp(55px,7vw,100px) clamp(28px,6vw,90px);display:flex;flex-direction:column;justify-content:center;background:linear-gradient(145deg,#061b3a,#0a376c);position:relative;overflow:hidden}
.position-label:after{content:"";position:absolute;right:-52px;top:-10%;width:105px;height:120%;background:var(--red);transform:skewX(-8deg)}
.position-label span{color:#ff555b;font:900 .8rem/1.2 Inter;letter-spacing:.16em;margin-bottom:18px}
.position-label strong{font:900 clamp(2.8rem,4.8vw,5.3rem)/.9 "Barlow Condensed";text-transform:uppercase;max-width:590px}
.position-copy{padding:clamp(55px,7vw,100px) clamp(28px,7vw,110px);background:#fff;color:#273b54}
.position-copy h2{font:900 clamp(2.5rem,4vw,4.4rem)/.92 "Barlow Condensed";text-transform:uppercase;color:var(--navy);margin:0 0 26px;max-width:850px}
.position-copy h2 span{color:var(--red)}
.position-copy>p{font-size:1.04rem;line-height:1.72;max-width:900px}
.position-copy .position-principle{border-left:6px solid var(--red);padding:15px 0 15px 22px;color:var(--navy);font-weight:700;font-size:1.08rem;margin:26px 0}
.position-copy h3{font:800 1.25rem/1.2 "Barlow Condensed";text-transform:uppercase;color:var(--red);letter-spacing:.04em;margin:30px 0 14px}
.position-copy ul{columns:2;column-gap:42px;margin:0;padding-left:1.2rem}
.position-copy li{break-inside:avoid;margin:0 0 11px;line-height:1.5}

.challenges{grid-template-columns:.9fr 1.1fr;border-top:0;border-bottom:8px solid #fff}
.challenges-intro{background:linear-gradient(135deg,#cf111d,#ed2832);position:relative;overflow:hidden;padding-right:clamp(110px,10vw,160px)}
.challenges-intro:after{content:"";position:absolute;right:-58px;top:0;width:120px;height:100%;background:#f2f5f9;transform:skewX(-8deg)}
.challenges-intro>*{position:relative;z-index:2}
.challenges-logo{width:clamp(175px,18vw,255px);height:auto;align-self:flex-start;margin:0 0 30px;filter:drop-shadow(0 8px 10px rgba(62,0,5,.28))}
.challenges-intro h2{font-size:clamp(3.2rem,5vw,5.4rem)}
.challenge-list{background:#f2f5f9}
.challenge-list article>span{box-shadow:4px 4px 0 var(--red)}

.seguin-divider{min-height:62px;padding:14px 24px;display:flex;align-items:center;justify-content:center;gap:clamp(14px,3vw,34px);background:#fff;color:var(--navy);border-top:4px solid var(--red);border-bottom:4px solid var(--navy);font:900 clamp(.9rem,1.5vw,1.15rem)/1 "Barlow Condensed",sans-serif;letter-spacing:.16em;text-transform:uppercase;text-align:center}.seguin-divider span{color:var(--red);font-size:1.15em}.seguin-divider.inverse{background:var(--navy);color:#fff;border-top-color:#fff;border-bottom-color:var(--red)}.seguin-divider.inverse span{color:var(--red)}

.district-map{display:grid;grid-template-columns:.72fr 1.28fr;min-height:610px;background:var(--navy);border-top:8px solid #fff;border-bottom:8px solid var(--red)}.district-map-copy{padding:clamp(60px,8vw,115px) clamp(28px,6vw,92px);display:flex;flex-direction:column;justify-content:center;color:#fff;background:linear-gradient(145deg,#061b3a,#0b376f)}.district-map-copy h2{font:900 clamp(3rem,5vw,5.5rem)/.9 "Barlow Condensed",sans-serif;text-transform:uppercase;margin:0 0 24px;color:#fff}.district-map-copy>p:last-of-type{color:#d6e1ef;font-size:1.05rem;line-height:1.7}.district-map-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.map-primary{background:var(--red);color:#fff}.map-primary:hover{background:#b91820}.map-secondary{background:#fff;color:var(--navy);border-color:#fff}.map-secondary:hover{background:#e8eef6}.district-map-frame{min-height:610px;background:#e7edf4}.district-map-frame iframe{width:100%;height:100%;min-height:610px;border:0;display:block}

.youth-impact{grid-template-columns:56% 44%;min-height:580px;border-bottom:8px solid #fff}
.youth-photo{min-height:580px;clip-path:polygon(0 0,100% 0,91% 100%,0 100%);z-index:2}
.youth-photo:after{display:none}
.youth-copy{margin-left:-9%;padding-left:18%;border-left:0;background:#fff;color:var(--navy)}
.youth-copy h2{color:var(--navy);text-shadow:none;font-size:clamp(3.4rem,5.5vw,6rem)}
.youth-copy h2 .opportunity-blue{color:var(--navy)}
.youth-copy h2 .outcome-red{color:var(--red)}
.youth-copy h2:after{content:"";display:block;width:84px;height:5px;background:var(--red);margin-top:24px}
.youth-copy p{color:#34475f}
.youth-copy .eyebrow{color:var(--red)}
.youth-copy .text-link{color:var(--navy)}

.service{background:linear-gradient(110deg,#06264f,#0b3c77);border-bottom:8px solid var(--red)}
.service-intro>p:last-child{color:#d6e1ef}
.recognition-grid{display:grid;gap:12px;margin-top:34px}
.recognition-grid article{padding:16px 18px;background:rgba(255,255,255,.08);border-left:5px solid var(--red)}
.recognition-grid span{display:block;color:#ff5960;font:800 .72rem/1.2 Inter;text-transform:uppercase;letter-spacing:.12em;margin-bottom:5px}
.recognition-grid strong{display:block;color:#fff;font:800 1.18rem/1.2 "Barlow Condensed";text-transform:uppercase}
.recognition-grid small{display:block;color:#d7e1ee;line-height:1.45;margin-top:6px}
.service-list div{grid-template-columns:175px 1fr;padding:19px 0}
.service-list strong{font-size:1.18rem}
.community-photo{height:clamp(500px,48vw,720px);border-bottom:8px solid #fff}
.community-photo img{object-position:center top}
.about{background:#fff}
.about-copy h2 .meet-red{color:var(--red)}
.family-section{background:linear-gradient(135deg,var(--red) 0%,#b51622 100%);color:#fff;border-bottom:8px solid var(--navy)}
.family-section>div:last-child{position:relative;isolation:isolate;overflow:hidden}
.family-section>div:last-child::before{content:"";position:absolute;z-index:-1;right:-8%;bottom:-18%;width:min(48%,290px);height:92%;background:url("assets/seguin-water-tower-watermark.png") center bottom/contain no-repeat;opacity:.13;mix-blend-mode:screen;pointer-events:none}
.family-section h2,.family-section .eyebrow{color:#fff}
.family-section p,.family-section p:last-child{color:#fff}

.vote{background:#fff;color:var(--navy);padding:0;gap:0;grid-template-columns:.75fr 1.25fr;border-top:8px solid #fff;border-bottom:8px solid #fff}
.vote>.vote-intro{background:var(--red);color:#fff;padding:58px clamp(24px,5vw,80px);height:100%;display:flex;flex-direction:column;justify-content:center;clip-path:polygon(0 0,92% 0,100% 100%,0 100%)}
.vote h2{font-size:clamp(2.7rem,4.4vw,4.8rem)}
.vote>.vote-intro>p:last-child{color:#fff}
.dates{padding:38px clamp(24px,5vw,75px);background:linear-gradient(90deg,#edf3f9,#fff)}
.dates article{background:var(--navy);border:0;border-top:5px solid var(--red);box-shadow:0 9px 18px rgba(8,35,72,.13)}
.voter-help{grid-column:1/-1;padding:75px clamp(22px,7vw,110px) 85px;background:linear-gradient(145deg,#eef3f8 0 55%,#dbe6f1 55% 100%)}
.voter-help-heading{max-width:850px;margin-bottom:36px}.voter-help h3{font:800 clamp(2.25rem,4vw,4rem)/.95 "Barlow Condensed",sans-serif;text-transform:uppercase;margin:0 0 18px;color:var(--navy)}.voter-help-heading>p:last-child{color:#425169;font-size:1.05rem;max-width:800px}
.voter-action-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.voter-action-grid article{display:flex;flex-direction:column;background:#fff;border-top:6px solid var(--red);padding:28px;box-shadow:0 12px 30px rgba(6,38,79,.12)}.voter-step{font:900 1rem/1 Inter,sans-serif;color:var(--red);letter-spacing:.14em}.voter-action-grid h4{font:800 1.75rem/1 "Barlow Condensed",sans-serif;text-transform:uppercase;color:var(--navy);margin:22px 0 12px}.voter-action-grid p{color:#536078;margin:0 0 24px}.vote-button{background:var(--navy);color:#fff;margin-top:auto;text-align:center}.vote-button:hover{background:#0b3c77}
.voting-locations{margin-top:24px;background:var(--navy);color:#fff;padding:36px;display:grid;grid-template-columns:1.2fr .8fr;gap:18px 38px;align-items:start;border-left:8px solid var(--red)}.voting-locations h3{color:#fff;font-size:clamp(2rem,3vw,3rem);margin-bottom:14px}.voting-locations>div>p:last-child{color:#d6e1ef;margin-bottom:0}.voting-locations ul{list-style:none;padding:0;margin:2px 0 0}.voting-locations li{display:flex;justify-content:space-between;gap:18px;border-bottom:1px solid #48617f;padding:13px 0}.voting-locations li:first-child{padding-top:0}.voting-locations li strong{font:700 1.12rem/1.2 "Barlow Condensed",sans-serif;text-transform:uppercase}.voting-locations li span{color:#ff8c91;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;text-align:right}.locations-button{background:var(--red);color:#fff;width:max-content}.locations-button:hover{background:#b91920}.location-note{color:#c4d2e3;font-size:.78rem;margin:8px 0 0}

.join{background:linear-gradient(120deg,#06264f 0 48%,#0b3c77 48% 100%);color:#fff;border-top:0}
.join h2{color:#fff}
.join>div>p:last-child{color:#d6e1ef}
.join .eyebrow{color:#ff535a}
.join label{color:#fff}
.join .form-note{color:#c8d4e4}
.donation-panel{margin-top:32px;padding:24px;border-left:6px solid var(--red);background:rgba(255,255,255,.08);max-width:620px}
.donation-panel strong{display:block;font:900 1.7rem/1 "Barlow Condensed";text-transform:uppercase;color:#fff;margin-bottom:10px}
.donation-panel p{color:#d6e1ef;line-height:1.6;margin:0 0 20px}
.donation-panel .donate-button{background:var(--red);border-color:var(--red)}
.donation-panel .donate-button:hover{background:#b91820;border-color:#b91820}
footer{padding-top:32px;padding-bottom:32px;grid-template-columns:170px 1fr;background:#041a38}
footer{position:relative;overflow:hidden;border-top:0}footer:before{content:"";position:absolute;left:0;right:0;top:0;height:12px;background:repeating-linear-gradient(165deg,#fff 0 20px,var(--red) 20px 40px,#fff 40px 60px,#1b72b8 60px 80px)}footer>*{position:relative;z-index:1}
footer .footer-brand{height:125px;width:145px}
footer p{text-align:center;font:700 clamp(1.1rem,2vw,1.6rem)/1.2 "Barlow Condensed";font-style:italic}

@media(max-width:1180px){.priority-grid{grid-template-columns:repeat(2,1fr)}.priority:last-child{grid-column:1/-1}.hero-campaign-logo{left:-16%}.site-header{padding-left:24px;padding-right:24px}.site-header nav{gap:14px;font-size:.9rem}.site-header .nav-cta,.site-header .donate-cta{padding-left:14px;padding-right:14px}.hero-actions{flex-wrap:wrap}}
@media(max-width:900px){
 .site-header{height:78px}.site-header .brand-logo{height:72px;width:86px;margin-bottom:-18px}
 .hero{grid-template-columns:1fr;min-height:0}.hero-copy{padding:80px 24px 55px}.hero-visual{min-height:590px;padding:20px 5% 0;background:linear-gradient(135deg,#dce7f3,#a8bed7)}
 .hero-photo{height:560px;width:min(95%,560px);clip-path:none}.hero-campaign-logo{left:5%;top:25px;width:180px}
 .campaign-ribbon{padding:20px 24px}.challenges{grid-template-columns:1fr}.challenges-intro:after{display:none}
 .district-map{grid-template-columns:1fr}.district-map-frame,.district-map-frame iframe{min-height:500px}
 .youth-impact{grid-template-columns:1fr}.youth-photo{height:500px;min-height:0;clip-path:none}.youth-copy{margin-left:0;padding:65px 28px;border-top:8px solid var(--red)}
 .vote{grid-template-columns:1fr}.vote>.vote-intro{clip-path:none}.voter-action-grid{grid-template-columns:1fr}.voting-locations{grid-template-columns:1fr}.join{background:var(--navy)}
 .data-center-position{grid-template-columns:1fr}.position-label:after{display:none}.position-copy ul{columns:1}
}
@media(max-width:620px){
 .priority-grid{grid-template-columns:1fr}.priority:last-child{grid-column:auto}.priority{padding:28px 24px}
 .hero h1{font-size:clamp(3.25rem,14vw,4.7rem);line-height:.96;letter-spacing:-.01em}.hero-kicker{font-size:1.25rem}.hero-campaign-logo{width:145px}
 .campaign-ribbon{gap:10px}.campaign-ribbon span{font-size:1.25rem}.campaign-ribbon p{font-size:1.1rem}
 footer{grid-template-columns:1fr;text-align:center}footer .footer-brand{margin:0 auto}footer p{text-align:center}
 .community-photo{height:390px}
 .family-section>div:last-child::before{right:-12%;width:250px;opacity:.1}
 .challenges-logo{width:180px;margin-bottom:24px}
 .seguin-divider{gap:10px;letter-spacing:.1em}.district-map-frame,.district-map-frame iframe{min-height:420px}.district-map-actions{flex-direction:column}.district-map-actions .button{width:100%}
}
.form-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}

/* Larger navigation and campaign calls to action */
.site-header nav{font-size:1.12rem;font-weight:800}
.site-header .nav-cta,.site-header .donate-cta{font-size:1.08rem;padding:14px 24px}
.button{min-height:54px;padding:0 29px;font-size:1rem;letter-spacing:.01em}

@media(max-width:1180px){
 .site-header nav{font-size:1rem}
 .site-header .nav-cta,.site-header .donate-cta{font-size:.98rem;padding-left:15px;padding-right:15px}
}

@media(max-width:900px){
 .menu{font-size:1rem;padding:11px 16px}
 .site-header nav{font-size:1.15rem}
 .site-header .nav-cta,.site-header .donate-cta{font-size:1.1rem;padding:14px 18px;text-align:center}
 .button{min-height:56px;font-size:1.05rem}
 .challenges-intro{padding-right:clamp(28px,6vw,95px)}
}

/* Published 2026 voting schedule and locations */
.voting-locations{grid-template-columns:repeat(2,minmax(0,1fr))}
.locations-intro,.locations-footer{grid-column:1/-1}
.location-group{min-width:0}
.location-group h4{font:700 1.65rem/1.2 "Barlow Condensed",sans-serif;margin:6px 0 18px;color:#fff}
.location-group>p{color:#d6e1ef}
.voting-locations .location-group li{display:block;padding:14px 0}
.voting-locations .location-group li strong{display:block}
.voting-locations .location-group li span{display:block;text-align:left;color:#d6e1ef;font-size:.9rem;font-weight:400;text-transform:none;letter-spacing:0;margin-top:5px;overflow-wrap:anywhere}
.voting-hours{margin:0 0 22px;color:#d6e1ef}
.voting-hours>div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid #48617f}
.voting-hours dd{margin:0;text-align:right;white-space:nowrap}
.election-hours{font-size:1.15rem;font-weight:700}
.location-group .locations-button{margin-top:20px;max-width:100%;width:fit-content;white-space:normal;text-align:center}
.locations-footer a{color:#fff;text-decoration:underline}
@media(max-width:900px){.voting-locations{grid-template-columns:minmax(0,1fr);padding:24px}.voting-hours>div{flex-wrap:wrap}.locations-intro,.locations-footer{grid-column:auto}}

/* Keep navigation, long labels and service rows within mobile viewports. */
@media(max-width:900px){
 .site-header nav{top:100%;max-height:calc(100dvh - 78px);overflow-y:auto}
 .voter-action-grid article,.voter-help,.join>div,.join form{min-width:0}
 .button{max-width:100%;white-space:normal;overflow-wrap:anywhere;text-align:center;padding-top:12px;padding-bottom:12px;line-height:1.35}
 .voting-locations h3,.location-group h4,.location-group li strong,.locations-footer{overflow-wrap:anywhere}
 section[id]{scroll-margin-top:90px}
}
@media(max-width:580px){
 .service-list div{grid-template-columns:minmax(0,1fr);gap:4px}
 .hero h1{font-size:clamp(2.8rem,13vw,4.7rem)}
 .hero-proof{gap:18px}
 .hero-proof div{min-width:0;padding-right:0}
 .join input,.join select{min-width:0}
}
