/*
Theme Name: Dudley Republicans Civic
Theme URI: https://dudleyrepublicans.com/
Author: Dudley Republican Town Committee
Description: Lightweight custom civic recruitment theme for DudleyRepublicans.com. Built for native WordPress, modular homepage plugins, Hostinger, and Cloudflare Free.
Version: 1.3.0
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: drtc
*/
:root{--drtc-navy:#061a38;--drtc-navy2:#0b2d59;--drtc-red:#c72228;--drtc-gold:#f1c75b;--drtc-ink:#142033;--drtc-muted:#5f6875;--drtc-bg:#f5f7fa;--drtc-white:#fff;--drtc-max:1200px;--drtc-radius:14px;--drtc-shadow:0 10px 30px rgba(6,26,56,.10)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--drtc-ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;background:#fff;line-height:1.55}a{color:var(--drtc-navy2);text-decoration-thickness:1px;text-underline-offset:3px}img{max-width:100%;height:auto}.drtc-container{width:min(calc(100% - 32px),var(--drtc-max));margin-inline:auto}.screen-reader-text{position:absolute;left:-9999px}.skip-link:focus{left:16px;top:16px;z-index:9999;background:#fff;padding:10px}
.site-header{position:sticky;top:0;z-index:1000;background:rgba(4,20,45,.97);color:#fff;box-shadow:0 3px 20px rgba(0,0,0,.18)}.header-inner{min-height:78px;display:flex;align-items:center;gap:28px}.site-branding{display:flex;align-items:center;gap:12px;min-width:250px}.custom-logo{max-height:56px;width:auto}.site-title{font-weight:900;letter-spacing:.04em;color:#fff;text-decoration:none;font-size:1.15rem}.site-tagline{display:block;color:#ff5d62;font-size:.72rem;font-weight:700}.primary-nav{margin-left:auto}.primary-nav ul{display:flex;align-items:center;gap:4px;list-style:none;margin:0;padding:0}.primary-nav a{display:block;color:#fff;text-decoration:none;padding:28px 11px 24px;font-size:.78rem;font-weight:800;text-transform:uppercase}.primary-nav a:hover,.primary-nav .current-menu-item>a{color:var(--drtc-gold)}.header-donate{background:var(--drtc-red);color:#fff!important;border-radius:6px;padding:12px 18px!important;margin-left:12px}.menu-toggle{display:none;margin-left:auto;background:transparent;border:1px solid rgba(255,255,255,.4);color:#fff;padding:9px 12px;border-radius:6px;font-weight:700}
.drtc-hero{min-height:530px;display:grid;align-items:center;color:#fff;background:linear-gradient(90deg,rgba(0,0,0,.78) 0%,rgba(0,0,0,.55) 42%,rgba(0,0,0,.08) 75%),var(--hero-image,linear-gradient(135deg,#0b2d59,#061a38));background-size:cover;background-position:center}.drtc-hero-inner{padding:70px 0;max-width:620px}.drtc-kicker{font-weight:800;color:var(--drtc-gold);text-transform:uppercase;letter-spacing:.08em}.drtc-hero h1{font-size:clamp(2.7rem,6vw,5rem);line-height:.93;margin:0 0 20px;text-transform:uppercase;letter-spacing:-.03em}.drtc-hero h1 em{font-style:normal;color:var(--drtc-gold)}.drtc-hero p{font-size:1.15rem;max-width:560px}.drtc-buttons{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.drtc-btn{display:inline-flex;justify-content:center;align-items:center;gap:8px;border-radius:7px;padding:13px 20px;text-decoration:none;font-weight:850;text-transform:uppercase;font-size:.82rem;border:2px solid transparent}.drtc-btn-primary{background:var(--drtc-red);color:#fff}.drtc-btn-secondary{border-color:#fff;color:#fff;background:rgba(6,26,56,.72)}.drtc-btn-outline{border-color:var(--drtc-navy2);color:var(--drtc-navy2);background:#fff}.drtc-btn:hover{transform:translateY(-1px);filter:brightness(1.06)}
.drtc-section{padding:58px 0}.drtc-section:nth-child(even){background:var(--drtc-bg)}.drtc-section-title{text-align:center;margin:0 0 30px;color:var(--drtc-navy);font-size:clamp(1.75rem,3vw,2.55rem);text-transform:uppercase;letter-spacing:-.02em}.drtc-section-intro{text-align:center;max-width:760px;margin:-18px auto 32px;color:var(--drtc-muted)}.drtc-grid{display:grid;gap:22px}.drtc-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.drtc-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.drtc-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.drtc-card{background:#fff;border:1px solid #e3e8ef;border-radius:var(--drtc-radius);box-shadow:var(--drtc-shadow);overflow:hidden}.drtc-card-body{padding:24px}.drtc-card h3{margin-top:0;color:var(--drtc-navy)}.drtc-card-image{aspect-ratio:16/9;object-fit:cover;width:100%}.drtc-meta{font-size:.84rem;color:var(--drtc-muted);font-weight:700}.drtc-link{font-weight:850;color:var(--drtc-red);text-transform:uppercase;font-size:.78rem;text-decoration:none}.drtc-icon-circle{width:74px;height:74px;border-radius:50%;display:grid;place-items:center;background:var(--drtc-navy);color:#fff;font-size:2rem;margin-bottom:15px}.drtc-list{padding-left:20px}.drtc-list li{margin:7px 0}.drtc-empty{padding:28px;border:2px dashed #cad3df;border-radius:12px;text-align:center;color:var(--drtc-muted)}
.page-hero{background:linear-gradient(115deg,var(--drtc-navy),var(--drtc-navy2));color:#fff;padding:72px 0}.page-hero h1{margin:0;font-size:clamp(2.4rem,5vw,4rem);text-transform:uppercase}.page-hero p{max-width:780px;font-size:1.1rem}.site-main article .entry-content{width:min(calc(100% - 32px),900px);margin:48px auto}.entry-content h2,.entry-content h3{color:var(--drtc-navy)}.entry-content table{border-collapse:collapse;width:100%}.entry-content th,.entry-content td{padding:12px;border:1px solid #dce2ea;text-align:left}
.site-footer{background:var(--drtc-navy);color:#dfe9f6}.newsletter-band{background:#0b2d59;padding:28px 0}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:35px;padding:50px 0}.site-footer h3{color:#fff}.site-footer a{color:#fff}.footer-bottom{border-top:1px solid rgba(255,255,255,.18);padding:18px 0;font-size:.8rem}.footer-menu{list-style:none;padding:0;margin:0}.footer-menu li{margin:8px 0}
@media(max-width:960px){.menu-toggle{display:block}.primary-nav{display:none;position:absolute;top:78px;left:0;right:0;background:var(--drtc-navy);padding:12px 16px}.primary-nav.is-open{display:block}.primary-nav ul{display:block}.primary-nav a{padding:12px}.header-donate{margin-left:0}.drtc-grid-4{grid-template-columns:repeat(2,1fr)}.drtc-grid-3{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr 1fr}}@media(max-width:640px){.site-branding{min-width:0}.site-tagline{display:none}.drtc-hero{min-height:500px}.drtc-grid-2,.drtc-grid-4{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}.drtc-buttons{display:grid}.drtc-btn{width:100%}}

/* Mission Statement page — approved local civic design */
.mission-page{--mission-serif:Georgia,"Times New Roman",serif;background:#fff}.mission-hero{min-height:350px;display:flex;align-items:stretch;color:#fff;background-image:linear-gradient(90deg,rgba(5,29,62,.97) 0%,rgba(5,29,62,.88) 42%,rgba(5,29,62,.20) 70%),var(--mission-hero-image,linear-gradient(135deg,#0b2d59,#244d73));background-size:cover;background-position:center}.mission-hero-inner{display:flex;align-items:center;min-height:350px}.mission-hero-copy{width:min(560px,100%);padding:58px 0}.mission-hero h1{font-family:var(--mission-serif);font-weight:700;font-size:clamp(2.65rem,5vw,4.5rem);line-height:1.02;margin:0 0 15px;text-transform:none;letter-spacing:-.025em}.mission-hero p{font-size:clamp(1.05rem,2vw,1.35rem);max-width:520px;margin:18px 0 0;line-height:1.55}.mission-star{display:none}.mission-title-rule{display:flex;align-items:center;gap:12px;width:190px;color:var(--drtc-gold);font-size:.9rem}.mission-title-rule:before,.mission-title-rule:after{content:"";height:2px;background:var(--drtc-gold);flex:1}.mission-title-rule span{line-height:1}.mission-reading-width{width:min(calc(100% - 32px),1080px)}.mission-section{padding:54px 0}.mission-purpose-section{background:#fff}.mission-principles-section{background:#fff;padding-top:12px}.mission-today-section{background:#faf9f6;padding-top:24px}.mission-heading{font-family:var(--mission-serif);color:var(--drtc-navy);font-size:clamp(1.75rem,3vw,2.35rem);font-weight:500;margin:0 0 28px;position:relative;display:inline-block}.mission-heading:after{content:"";display:block;width:72px;height:3px;background:var(--drtc-red);margin-top:8px}.mission-purpose-layout{display:grid;grid-template-columns:70px 1fr;gap:24px;align-items:start;max-width:720px}.mission-round-icon{width:64px;height:64px;display:grid;place-items:center;border-radius:50%;background:var(--drtc-navy2);color:#fff;box-shadow:0 8px 22px rgba(6,26,56,.16)}.mission-round-icon svg{width:34px;height:34px}.mission-round-icon-small{width:52px;height:52px;box-shadow:none;flex:0 0 52px}.mission-round-icon-small svg{width:28px;height:28px}.mission-lead{margin:2px 0 12px;color:var(--drtc-navy)}.mission-purpose-list{margin:0;padding-left:25px}.mission-purpose-list li{margin:8px 0;padding-left:8px}.mission-purpose-list li::marker{color:var(--drtc-red);font-weight:800}.mission-vision{display:grid;grid-template-columns:110px 1fr;align-items:center;gap:24px;margin:48px 0 10px;padding:30px 34px;border:1px solid #bfd2e8;border-radius:7px;background:linear-gradient(100deg,#fff,#f2f7fd);box-shadow:0 8px 28px rgba(6,26,56,.05)}.mission-vision-seal{width:78px;height:78px;border-radius:50%;display:grid;place-items:center;border:1px solid #c9d8ea;color:#c99a2e;font-size:2rem;background:#fff}.mission-vision h2{font-family:var(--mission-serif);font-size:2rem;font-weight:500;color:var(--drtc-navy);margin:0 0 8px}.mission-vision p{font-family:var(--mission-serif);font-size:clamp(1.35rem,2.4vw,1.75rem);font-weight:700;font-style:italic;line-height:1.42;color:var(--drtc-navy);margin:0}.mission-principles-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:58px;row-gap:22px}.mission-principle{display:flex;gap:18px;align-items:flex-start}.mission-principle h3{color:var(--drtc-red);font-size:1.05rem;margin:0 0 5px}.mission-principle p{font-size:.94rem;line-height:1.48;margin:0;color:#283447}.mission-today-card{display:grid;grid-template-columns:330px 1fr;gap:36px;padding:28px;border:1px solid #e9d9b4;border-radius:8px;background:#fffdf8;box-shadow:0 8px 26px rgba(66,48,16,.06)}.mission-today-image{min-height:220px;border-radius:6px;background-image:linear-gradient(rgba(6,26,56,.06),rgba(6,26,56,.06)),var(--mission-today-image,var(--mission-hero-image,linear-gradient(135deg,#d9e2ec,#8da6bd)));background-size:cover;background-position:center}.mission-today-copy h2{font-family:var(--mission-serif);font-size:2rem;font-weight:500;color:var(--drtc-navy);margin:0 0 12px}.mission-today-intro{font-family:var(--mission-serif);font-size:1.08rem}.mission-today-copy ul{list-style:none;padding:0;margin:18px 0}.mission-today-copy li{position:relative;padding-left:28px;margin:10px 0}.mission-today-copy li:before{content:"✓";position:absolute;left:0;color:#d4a432;font-weight:900}.mission-cta{background:linear-gradient(100deg,#123b69,#082448);color:#fff;border-top:2px solid var(--drtc-gold);padding:31px 0}.mission-cta-inner{display:flex;align-items:center;justify-content:space-between;gap:28px}.mission-cta h2{font-family:var(--mission-serif);font-size:2rem;margin:0 0 3px}.mission-cta p{margin:0;color:#e6edf6}.mission-cta .drtc-btn{white-space:nowrap;padding-inline:28px}
@media(max-width:820px){.mission-hero{min-height:300px;background-position:64% center}.mission-hero-inner{min-height:300px}.mission-hero-copy{padding:46px 0}.mission-principles-grid{grid-template-columns:1fr}.mission-today-card{grid-template-columns:1fr}.mission-today-image{min-height:250px}.mission-cta-inner{align-items:flex-start;flex-direction:column}.mission-vision{grid-template-columns:1fr}.mission-vision-seal{width:64px;height:64px}.mission-purpose-layout{grid-template-columns:1fr}.mission-round-icon{width:58px;height:58px}}@media(max-width:560px){.mission-hero{min-height:270px}.mission-hero-inner{min-height:270px}.mission-hero-copy{padding:38px 0}.mission-section{padding:40px 0}.mission-vision{padding:24px 20px}.mission-vision p{font-size:1.22rem}.mission-today-card{padding:18px}.mission-today-image{min-height:190px}.mission-principle{gap:13px}.mission-round-icon-small{width:46px;height:46px;flex-basis:46px}.mission-round-icon-small svg{width:24px;height:24px}}

/* Interior hero with optional right-side module, used by Events. */
.page-hero.page-hero-has-aside{padding:46px 0}
.page-hero-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,390px);gap:55px;align-items:center}
.page-hero-copy h1{margin-top:0}
.page-hero-aside{min-width:0}
@media(max-width:900px){.page-hero-layout{grid-template-columns:1fr;gap:18px}.page-hero.page-hero-has-aside{padding:42px 0}}
