/*
Theme Name: Southern Maine Republic
Template: twentytwentyfive
Version: 1.1.3
Description: SMR child theme of Twenty Twenty-Five. Common Sense Conservatives.
Text Domain: somerepublic
*/
@font-face{font-family:"Barlow Condensed";font-weight:800;font-display:swap;src:url("assets/fonts/BarlowCondensed-ExtraBold.woff2") format("woff2")}
@font-face{font-family:"Barlow Condensed";font-weight:700;font-display:swap;src:url("assets/fonts/BarlowCondensed-Bold.woff2") format("woff2")}
@font-face{font-family:"Inter";font-weight:300 800;font-display:swap;src:url("assets/fonts/Inter-var.woff2") format("woff2")}
:root{--navy:#0A2342;--navy-d:#061a33;--red:#B70329;--gold:#F2D27A;--off:#F7F4EC;--ink:#222;--mute:#5d6470;--line:#e6e1d5;--r:14px;--sh:0 1px 2px rgba(10,35,66,.06),0 8px 28px rgba(10,35,66,.08);--ease:cubic-bezier(.2,.7,.2,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--off);color:var(--ink);font:400 17px/1.65 Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,.cond{font-family:"Barlow Condensed",sans-serif;font-weight:800;line-height:1.02;margin:0;letter-spacing:.005em}
a{color:inherit}img{max-width:100%}
.wrap{max-width:1240px;margin:0 auto;padding:0 32px}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font:700 12px/1 Inter,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:var(--red)}
.eyebrow:before{content:"";width:28px;height:2px;background:currentColor}
.on-dark .eyebrow{color:var(--gold)}
/* announcement + header */
.announce{background:var(--navy-d);color:#cfd6e2;font-size:12.5px;letter-spacing:.04em}
.announce .wrap{display:flex;justify-content:space-between;align-items:center;height:36px}
.announce b{color:var(--gold);font-weight:600}.announce .soc{display:flex;gap:18px}.announce a{text-decoration:none;opacity:.8}.announce a:hover{opacity:1}
.smr-header{position:sticky;top:0;z-index:50;background:rgba(10,35,66,.97);backdrop-filter:saturate(1.4) blur(8px);color:#fff;box-shadow:0 1px 0 rgba(242,210,122,.35)}
.smr-header .wrap{display:flex;align-items:center;gap:28px;height:84px}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none;flex-shrink:0}
.brand img{width:56px;height:56px;border-radius:50%;transition:transform .4s var(--ease)}.brand:hover img{transform:rotate(-8deg) scale(1.04)}
.brand .nm{font:800 26px/1 "Barlow Condensed";letter-spacing:.04em;text-transform:uppercase}
.brand .tg{display:block;font:600 11px/1 Inter;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-top:6px}
.smr-header nav{margin-left:auto}.smr-header nav ul{list-style:none;margin:0;padding:0;display:flex;gap:2px}
.smr-header nav a{position:relative;display:block;padding:10px 12px;text-decoration:none;font:600 13px/1 Inter;letter-spacing:.1em;text-transform:uppercase;color:#e6ebf3;transition:color .2s}
.smr-header nav a:after{content:"";position:absolute;left:12px;right:12px;bottom:2px;height:2px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.smr-header nav a:hover{color:#fff}.smr-header nav a:hover:after,.smr-header nav .on a:after{transform:scaleX(1)}
.pill{display:inline-flex;align-items:center;gap:12px;border-radius:999px;padding:14px 16px 14px 26px;font:700 13px/1 Inter;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;transition:transform .25s var(--ease),box-shadow .25s,background .25s;white-space:nowrap}
.pill i{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;font-style:normal;font-size:14px;transition:transform .25s var(--ease)}
.pill:hover{transform:translateY(-2px)}.pill:hover i{transform:translateX(3px)}
.pill.red{background:var(--red);color:#fff;box-shadow:0 8px 20px rgba(183,3,41,.28)}.pill.red i{background:rgba(255,255,255,.18)}
.pill.ghost{color:#fff;border:1.5px solid rgba(255,255,255,.5);padding-left:22px}.pill.ghost i{background:rgba(255,255,255,.12)}
.pill.navy{background:var(--navy);color:#fff}.pill.navy i{background:rgba(255,255,255,.14)}
.smr-header .pill{padding:11px 12px 11px 20px;font-size:12px}.smr-header .pill i{width:22px;height:22px}
/* hero */
.hero{position:relative;color:#fff;background:var(--navy);overflow:hidden;isolation:isolate}
.hero:before{content:"";position:absolute;inset:0;background:url(assets/hathaway.jpg) 70% 30%/cover;z-index:-2;transform:scale(1.04);animation:kb 18s var(--ease) both}
.hero:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(6,26,51,.97) 0%,rgba(6,26,51,.9) 38%,rgba(6,26,51,.35) 75%,rgba(6,26,51,.15)),linear-gradient(0deg,rgba(6,26,51,.8),transparent 40%)}
@keyframes kb{from{transform:scale(1.12)}to{transform:scale(1.02)}}
.hero .wrap{min-height:640px;display:flex;flex-direction:column;justify-content:center;padding-top:88px;padding-bottom:88px}
.hero .copy{max-width:640px}
.hero h1{font-size:clamp(46px,6.4vw,92px);margin:22px 0 22px;text-transform:uppercase}
.hero h1 span{color:var(--gold)}
.hero .dek{font-size:19px;line-height:1.6;color:#dbe2ec;max-width:560px;margin:0}
.hero .meta{margin-top:26px;font-size:13px;letter-spacing:.06em;color:#aab6c7}
.hero .ctas{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px}
.hero .credit{position:absolute;right:32px;bottom:18px;font-size:11px;color:rgba(255,255,255,.55)}
.hero .quote{position:absolute;right:32px;bottom:64px;max-width:380px;background:rgba(6,26,51,.72);backdrop-filter:blur(6px);border:1px solid rgba(242,210,122,.3);border-radius:var(--r);padding:22px 24px;font:italic 19px/1.45 Georgia,serif}
.hero .quote cite{display:block;margin-top:10px;font:600 11px Inter;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-style:normal}
/* sections */
section{padding:112px 0}
.sec-h{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:48px}
.sec-h h2{font-size:clamp(38px,4.4vw,60px);color:var(--navy);text-transform:uppercase;margin-top:14px}
.sec-h p{margin:0;color:var(--mute);max-width:380px;font-size:15.5px}
.more{font:700 13px Inter;letter-spacing:.12em;text-transform:uppercase;color:var(--red);text-decoration:none;white-space:nowrap}.more:after{content:" →";transition:margin .2s}.more:hover:after{margin-left:4px}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.card{display:flex;flex-direction:column;background:#fff;border-radius:var(--r);overflow:hidden;box-shadow:var(--sh);transition:transform .35s var(--ease),box-shadow .35s}
.card:hover{transform:translateY(-6px);box-shadow:0 2px 4px rgba(10,35,66,.06),0 22px 44px rgba(10,35,66,.14)}
.card .cimg{aspect-ratio:16/10;overflow:hidden}.card .cimg img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s var(--ease)}.card:hover .cimg img{transform:scale(1.05)}
.card .body{padding:26px 28px 28px;display:flex;flex-direction:column;flex:1}
.card h3{font-size:32px;color:var(--navy);margin:14px 0 12px}.card h3 a{text-decoration:none}
.card p{margin:0 0 18px;font-size:15.5px;color:#3d4450}
.card .src{margin-top:auto;padding-top:16px;border-top:1px solid var(--line);font-size:12.5px;color:var(--mute)}
.tag{display:inline-block;align-self:flex-start;font:700 11px/1 Inter;letter-spacing:.14em;text-transform:uppercase;padding:7px 10px;border-radius:999px}
.t-hero{background:#e4efe6;color:#245a33}.t-navy{background:#e3e9f2;color:var(--navy)}.t-red{background:#f9e2e7;color:var(--red)}
.credit{font-size:11px;color:#8a909a;line-height:1.35}
.vote{position:relative;color:#fff;justify-content:flex-end;min-height:100%;background:var(--navy)}
.vote:before{content:"";position:absolute;inset:0;background:url(assets/council-vote.jpg) center/cover;transition:transform .8s var(--ease)}.vote:hover:before{transform:scale(1.05)}
.vote:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,26,51,.1),rgba(6,26,51,.96) 65%)}
.vote .inner{position:relative;z-index:1;padding:28px;margin-top:auto}
.vote .big{font:800 120px/0.9 "Barlow Condensed";color:var(--gold);margin:8px 0}
/* towns */
.towns-sec{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.townbanner{position:relative;height:280px;border-radius:var(--r);overflow:hidden;margin-bottom:36px;display:flex;align-items:flex-end;padding:32px;color:#fff;background:linear-gradient(90deg,rgba(6,26,51,.95),rgba(6,26,51,.55)),url(assets/brunswick-hall.jpg) center 78%/cover}
.townbanner h3{font-size:44px;text-transform:uppercase}.townbanner .credit{color:rgba(255,255,255,.7);margin-top:8px}
.towns{display:grid;grid-template-columns:2fr 1.6fr 1fr;gap:28px}
.region{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#fff}
.region .rimg{height:150px;background-size:cover;background-position:center}
.region h3{font-size:24px;text-transform:uppercase;color:var(--navy);padding:20px 22px 8px}
.region ul{list-style:none;margin:0;padding:6px 10px 14px;display:grid;grid-template-columns:1fr 1fr}
.region.c ul{grid-template-columns:1fr}
.region li a{display:flex;justify-content:space-between;padding:9px 12px;border-radius:8px;text-decoration:none;font-weight:500;font-size:15.5px;transition:background .2s,color .2s}
.region li a:after{content:"→";color:var(--red);opacity:0;transform:translateX(-4px);transition:.2s}
.region li a:hover{background:var(--off);color:var(--navy)}.region li a:hover:after{opacity:1;transform:none}
.region .credit{padding:0 22px 16px}
/* record */
.official{display:grid;grid-template-columns:1fr 1.25fr;border-radius:var(--r);overflow:hidden;box-shadow:var(--sh);background:#fff}
.official .l{background:var(--navy);color:#fff;padding:48px}.official .l h3{font-size:46px;margin:18px 0 16px;text-transform:uppercase}.official .l p{color:#cfd6e2}
.official .r{padding:48px}
.tally{display:flex;flex-wrap:wrap;gap:14px;align-items:baseline;font:800 92px/1 "Barlow Condensed";color:var(--navy)}.tally small{font:500 15px Inter;color:var(--mute)}
.vlist{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:26px 0 30px}
.vlist h4{margin:0 0 8px;font:700 13px Inter;letter-spacing:.14em;text-transform:uppercase}
.vlist ul{margin:0;padding:0;list-style:none}.vlist li{padding:8px 0;border-bottom:1px solid var(--line);font-size:15.5px}
.y li:before{content:"✔  ";color:#2E6B3F}.n li:before{content:"✖  ";color:var(--red)}
.leg{display:grid;grid-template-columns:420px 1fr;gap:40px;align-items:start}
.photo{margin:0}.photo img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r);box-shadow:var(--sh)}.photo figcaption{margin-top:10px}
.table-scroll{border-radius:var(--r);overflow:auto;box-shadow:var(--sh)}
table{width:100%;border-collapse:collapse;background:#fff;font-size:15px}
th{background:var(--navy);color:#fff;font:600 12px Inter;letter-spacing:.12em;text-transform:uppercase;text-align:left;padding:16px}
td{padding:16px;border-bottom:1px solid var(--line)}tr:last-child td{border-bottom:0}
.pl{font-weight:600;padding:5px 10px;border-radius:999px;font-size:12.5px;white-space:nowrap}.for{background:#e4efe6;color:#245a33}.against{background:#f9e2e7;color:var(--red)}
.note{font-size:13px;color:var(--mute);margin:14px 0 26px}
/* action + newsletter */
.action{background:var(--navy);color:#fff;position:relative;overflow:hidden}
.action:before{content:"";position:absolute;right:-120px;top:-120px;width:520px;height:520px;background:url(assets/seal-512.png) center/contain no-repeat;opacity:.06}
.action .grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:44px}
.action h2{font-size:clamp(38px,4.4vw,60px);text-transform:uppercase;margin-top:14px}
.step{border:1px solid rgba(255,255,255,.14);border-radius:var(--r);padding:28px;transition:background .3s,border-color .3s,transform .3s var(--ease)}
.step:hover{background:rgba(255,255,255,.05);border-color:var(--gold);transform:translateY(-4px)}
.step .n{font:800 15px "Barlow Condensed";color:var(--gold);letter-spacing:.1em}.step h3{font-size:30px;margin:10px 0 8px;text-transform:uppercase}.step p{margin:0;color:#cfd6e2;font-size:15px}
.news{padding:96px 0}.news .box{background:linear-gradient(120deg,var(--red),#8e0220);color:#fff;border-radius:22px;padding:56px 60px;display:flex;justify-content:space-between;align-items:center;gap:40px;box-shadow:0 24px 60px rgba(183,3,41,.25)}
.news h2{font-size:clamp(34px,3.6vw,50px);text-transform:uppercase}.news p{margin:8px 0 0;color:#fbe3e8}
.news form{display:flex;background:#fff;border-radius:999px;padding:6px;min-width:440px}
.news input{flex:1;border:0;background:transparent;padding:0 20px;font:15px Inter;outline:0}
.news button{border:0;border-radius:999px;background:var(--navy);color:#fff;font:700 13px Inter;letter-spacing:.12em;text-transform:uppercase;padding:16px 24px;cursor:pointer}
/* footer */
footer{background:var(--navy-d);color:#aab6c7;font-size:14.5px;padding:80px 0 0}
footer .cols{display:grid;grid-template-columns:2.2fr 1fr 1fr 1fr;gap:40px;padding-bottom:56px}
footer .fb{display:flex;gap:16px;align-items:flex-start}footer .fb img{width:72px;height:72px;border-radius:50%}
footer .fb b{display:block;color:#fff;font:800 24px "Barlow Condensed";letter-spacing:.04em;text-transform:uppercase}
footer .fb .tg{color:var(--gold);font:600 11px Inter;letter-spacing:.2em;text-transform:uppercase}
footer h4{color:#fff;font:700 12px Inter;letter-spacing:.16em;text-transform:uppercase;margin:6px 0 16px}
footer ul{list-style:none;padding:0;margin:0;line-height:2.2}footer a{text-decoration:none;transition:color .2s}footer a:hover{color:var(--gold)}
footer .soc{display:flex;gap:10px;margin-top:20px}footer .soc a{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.18);color:#fff;font:700 12px Inter}footer .soc a:hover{border-color:var(--gold)}
.credits{border-top:1px solid rgba(255,255,255,.1);padding:22px 0 26px;font-size:12px;color:#7d8aa0}.credits a{text-decoration:underline}
.legal{display:flex;justify-content:space-between;gap:20px;border-top:1px solid rgba(255,255,255,.1);padding:20px 0 28px;font-size:12.5px}
/* reveal */
@supports (animation-timeline:view()){.rv{animation:rv both var(--ease);animation-timeline:view();animation-range:entry 0% entry 35%}@keyframes rv{from{opacity:0;transform:translateY(28px)}}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* responsive */
@media(max-width:1080px){.smr-header .pill{display:none}.leg{grid-template-columns:1fr}.action .grid{grid-template-columns:1fr 1fr}.news .box{flex-direction:column;align-items:flex-start}.news form{min-width:0;width:100%}}
@media(max-width:820px){body{font-size:16px}.wrap{padding:0 20px}.announce .soc{display:none}
.smr-header .wrap{flex-wrap:wrap;height:auto;padding-top:12px;gap:0}.brand img{width:46px;height:46px}.brand .nm{font-size:22px}
.smr-header nav{margin:10px -20px 0;width:calc(100% + 40px);border-top:1px solid rgba(255,255,255,.1)}
.smr-header nav ul{overflow-x:auto;scrollbar-width:none;padding:0 10px;-webkit-overflow-scrolling:touch}.smr-header nav ul::-webkit-scrollbar{display:none}
.smr-header nav a{padding:14px 12px;white-space:nowrap;font-size:12px}
.hero .wrap{min-height:0;padding-top:72px;padding-bottom:40px}.hero:after{background:linear-gradient(0deg,rgba(6,26,51,.98) 30%,rgba(6,26,51,.55))}
.hero .quote{position:relative;right:auto;bottom:auto;margin:0 20px 48px}.hero .credit{right:20px;bottom:14px}
section{padding:72px 0}.sec-h{flex-direction:column;align-items:flex-start;margin-bottom:32px}
.cards,.towns,.official,.vlist,.action .grid,footer .cols{grid-template-columns:1fr}.vote{min-height:360px}
.official .l,.official .r{padding:30px}.tally{font-size:72px}.townbanner{height:200px;padding:22px}.townbanner h3{font-size:30px}
.news{padding:56px 0}.news .box{padding:36px 26px;border-radius:18px}.news form{flex-direction:column;border-radius:16px;gap:6px}.news input{padding:14px}
.legal{flex-direction:column}}
.leg>*,.official>*,.cards>*,.towns>*{min-width:0}@media(max-width:1080px){.leg{grid-template-columns:minmax(0,1fr)}}@media(max-width:820px){.cards,.towns,.official,.vlist,.action .grid,footer .cols{grid-template-columns:minmax(0,1fr)}}
.smr-header nav a{white-space:nowrap;padding:10px 10px}@media(max-width:1240px){.brand .tg{letter-spacing:.14em}.smr-header .wrap{gap:18px}}

/* WordPress integration */
.wp-site-blocks{padding:0!important}.wp-site-blocks>*,.wp-site-blocks main>*{margin-block-start:0!important}
.smr-hp{display:contents}.smr-header{top:var(--wp-admin--admin-bar--height,0px)}
body .is-layout-constrained>*,body .is-layout-flow>*{max-width:none}
body .wp-site-blocks :is(h1,h2,h3,h4){color:var(--navy)}
body .wp-site-blocks :is(.hero,.townbanner,.official .l,.vote,.action,.news .box,footer,.smr-header,.on-dark) :is(h1,h2,h3,h4){color:#fff}
body .wp-site-blocks .vlist .y h4{color:#2E6B3F}body .wp-site-blocks .vlist .n h4{color:var(--red)}
body .wp-site-blocks .region h3{color:var(--navy)}
.smr-page{max-width:860px;margin:0 auto;padding:72px 24px 96px}
.smr-page h1{font-size:clamp(40px,5vw,64px);text-transform:uppercase;margin:12px 0 18px}
.smr-feat img{border-radius:var(--r);box-shadow:var(--sh)}.smr-terms a{font:700 12px Inter;letter-spacing:.16em;text-transform:uppercase;color:var(--red);text-decoration:none}
.smr-date{color:var(--mute);font-size:14px;margin-bottom:32px}
.smr-content{font-size:18px;line-height:1.75}.smr-content h2{font-size:36px;margin:44px 0 12px;text-transform:uppercase}.smr-content h3{font-size:26px;margin:32px 0 10px}
.smr-content a{color:var(--red);text-underline-offset:3px}.smr-content blockquote{border-left:4px solid var(--red);margin:28px 0;padding:6px 0 6px 22px;font:italic 21px/1.5 Georgia,serif}
.smr-content table{display:block;overflow-x:auto;border-radius:var(--r);box-shadow:var(--sh)}
.smr-loop .wp-block-post{background:#fff;border-radius:var(--r);box-shadow:var(--sh);padding:28px;margin-bottom:24px}
.announce .soc{align-items:center;gap:14px}.announce .soc a{display:inline-flex}.announce .soc svg{display:block}footer .soc{flex-wrap:wrap}
