:root{--ink:#101761;--blue:#101a8a;--deep:#080d4a;--sky:#00a9bb;--sand:#f6f0dc;--coral:#00a9bb;--line:rgba(16,23,97,.16)}
.connect a[href*="facebook.com"]{background:var(--sky);border-color:var(--sky);color:#fff}
.campaign-banner{height:360px;background:#fff;display:flex;align-items:center;justify-content:center;border-bottom:5px solid var(--sky);overflow:hidden;padding:10px}
.campaign-banner img{width:auto;height:100%;max-width:100%;object-fit:contain;object-position:center}
.sign-logo{width:122px;height:64px;object-fit:cover;object-position:center;border-radius:4px}
.site-header{height:92px}
.hero-art{background:linear-gradient(#bfeff0 0 50%,#22aebd 50% 69%,#eee1bc 69%)}
.portrait{position:absolute;width:min(64%,390px);aspect-ratio:3/4;object-fit:cover;object-position:center 20%;left:10%;bottom:2%;border:8px solid #fff;box-shadow:0 18px 50px #080d4a55}
.portrait-reversed{transform:scaleX(-1)}
.credentials{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);margin-top:4rem}
.credentials>div{background:#fff;padding:1.5rem;display:flex;align-items:center;gap:1rem}
.credentials strong{font:600 2.5rem Lora;color:var(--sky)}
.credentials span{font-size:.86rem;line-height:1.35}
.priority-grid{grid-template-columns:repeat(3,1fr)}
.priority-grid article{background:var(--blue)}
.priorities .section-tag.light,.priority-grid article>span{color:var(--sky)}
.priorities .section-heading{display:block}
.priorities .section-heading>p{max-width:none;width:100%;margin-top:1.5rem}
.principles{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:650px;background:var(--sand);overflow:hidden}
.principles-photo img{width:100%;height:100%;object-fit:cover}
.principles>div:last-child{padding:clamp(4rem,8vw,8rem);align-self:center}
.principles h2{font:600 clamp(2.7rem,5vw,5rem)/1.05 Lora;margin:0 0 2rem;color:var(--blue)}
.principles p{max-width:620px}
.local-gallery{background:var(--deep);color:#fff;padding:clamp(5rem,9vw,8rem) clamp(1.5rem,6vw,6rem)}
.local-gallery{display:none}
.campaign-reel{background:var(--deep);color:#fff;padding:.75rem clamp(1.5rem,8vw,8rem) clamp(5rem,9vw,8rem)}
.reel-heading{text-align:center;margin:0 auto 1rem;max-width:900px}
.reel-heading .section-tag{color:var(--sky)}
.reel-heading h2{font:600 clamp(2.7rem,5vw,5rem)/1 Lora;margin:0}
.reel-player{position:relative;width:min(100%,960px);margin:0 auto;background:#000;border:5px solid #fff;box-shadow:0 20px 60px rgba(0,0,0,.35);overflow:hidden}
.campaign-reel video{display:block;width:100%;max-height:78vh;margin:0;background:#000}
.reel-opening-sign{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#fff;pointer-events:none;opacity:1;transition:opacity .35s ease}
.reel-opening-sign.hidden{opacity:0}
.reel-closing-sign{position:absolute;z-index:2;inset:0;width:100%;height:100%;object-fit:contain;background:#fff;pointer-events:none;opacity:1;transition:opacity .35s ease}
.reel-closing-sign.hidden{opacity:0}
.reel-play-button{position:absolute;z-index:3;left:50%;top:50%;transform:translate(-50%,-50%);width:86px;height:86px;border:4px solid #fff;border-radius:50%;background:rgba(8,13,74,.9);color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:0 6px 24px rgba(0,0,0,.35)}
.reel-play-button span{font-size:2.25rem;line-height:1;margin-left:.3rem}
.reel-play-button:hover,.reel-play-button:focus-visible{background:var(--sky);outline:3px solid var(--deep);outline-offset:3px}
.reel-play-button.hidden{display:none}
.local-gallery .section-tag{color:var(--sky)}
.gallery-heading{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:2rem}
.gallery-heading h2{font:600 clamp(2.7rem,5vw,5rem)/1 Lora;margin:0}
.gallery-heading .section-tag{margin:0}
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:260px;gap:.75rem}
.gallery-grid figure{margin:0;position:relative;overflow:hidden;background:var(--blue)}
.gallery-grid figure.wide{grid-column:span 2}
.gallery-grid img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.gallery-grid figure:first-child img{object-fit:contain;background:#fff}
.gallery-grid figure:hover img{transform:scale(1.025)}
.gallery-grid figcaption{position:absolute;left:0;bottom:0;background:var(--blue);padding:.5rem .8rem;font-weight:700}
.waves{background-image:url('assets/lake-huron-sunset.jpeg');background-size:cover;background-position:center}
footer .sign-logo{width:165px;height:auto;object-fit:contain;object-position:center}
.hero,.connect,.principles{background:var(--deep);color:#fff}
.hero h1 em,.principles h2{color:var(--sky)}
.hero .secondary,.connect .secondary{border-color:#fff;color:#fff}
.hero .voting-note{border-color:rgba(255,255,255,.3)}
.hero .voting-note span{color:#7ce7ef}
.vote .section-tag.light,.vote li>span{color:#07394e}
.connect a{color:#fff}
@media(max-width:900px){.site-header nav{top:92px}.credentials{grid-template-columns:1fr}.principles{grid-template-columns:1fr}.principles-photo{height:420px}.priority-grid{grid-template-columns:1fr 1fr}.gallery-grid{grid-template-columns:repeat(2,1fr)}.gallery-heading{align-items:start;flex-direction:column}}
@media(max-width:600px){.campaign-banner{height:275px;padding:8px}.campaign-banner img{width:auto;height:100%;max-width:100%;object-fit:contain}.site-header{height:78px}.site-header nav{top:78px}.sign-logo{width:95px;height:54px}.priority-grid{grid-template-columns:1fr}.principles-photo{height:300px;min-width:0}.principles h2{font-size:2.45rem}.gallery-grid{grid-template-columns:1fr;grid-auto-rows:240px}.gallery-grid figure.wide{grid-column:auto}}
.updates .placeholder{align-items:flex-start}
.updates .placeholder>div{padding-top:.8rem}
.updates .post-grid{align-items:start}
.updates .placeholder{min-height:230px}
.updates .integrity-update{grid-column:1/-1;min-height:0;background:var(--deep);color:#fff;border:3px solid var(--sky)}
.updates .integrity-update .post-copy{padding:clamp(1.5rem,4vw,2.5rem)}
.updates .integrity-update h3{max-width:760px;color:#fff;font-size:clamp(1.75rem,3vw,2.5rem)}
.updates .integrity-update p{max-width:820px;font-size:1.05rem;line-height:1.65}
.updates .integrity-update a{color:#7ce7ef;font-weight:700}
.integrity-badge{display:inline-block;margin-bottom:1rem;padding:.4rem .65rem;background:var(--sky);color:#fff;font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.odette-details{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:2rem}
.odette-details details{border:1px solid rgba(20,50,59,.18);background:#fff}
.odette-details summary{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;color:#fff;background:var(--deep);font-weight:700;cursor:pointer;list-style:none}
.odette-details summary::-webkit-details-marker{display:none}
.odette-details summary span{color:#7ce7ef;font-size:1.3rem}
.odette-details details[open] summary span{transform:rotate(45deg)}
.odette-details details>div{padding:.5rem 1.25rem 1rem}
.odette-details ul{margin-bottom:0;padding-left:1.2rem}
.updates{padding-bottom:3rem}
.candidate-meetings{padding:3rem clamp(1.5rem,8vw,8rem) clamp(5rem,10vw,9rem);background:#eefafa}
.candidate-meetings .section-heading h2{color:var(--deep)}
.meeting-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.meeting-grid article{min-height:210px;padding:1.6rem;border:1px solid rgba(20,50,59,.16);background:#fff}
.meeting-grid span{color:#078d9b;font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em}
.meeting-grid h3{font:600 1.55rem/1.2 Lora;margin:1rem 0 .7rem}
.meeting-grid .meeting-featured{grid-column:span 2;display:grid;grid-template-columns:minmax(150px,214px) 1fr;gap:1.5rem}
.meeting-featured img{width:100%;height:auto;display:block;border:1px solid rgba(20,50,59,.12)}
.meeting-featured a{color:var(--deep);font-weight:700}
.meeting-poster-card img{width:100%;height:auto;display:block;margin-bottom:1.25rem;border:1px solid rgba(20,50,59,.12)}
.meeting-poster-card a{color:var(--deep);font-weight:700}
@media(max-width:900px){.meeting-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.updates{padding-bottom:2rem}.candidate-meetings{padding-top:2rem;padding-bottom:4rem}.meeting-grid{grid-template-columns:1fr}.meeting-grid .meeting-featured{grid-column:auto;grid-template-columns:1fr}.meeting-featured img{max-width:260px;margin:0 auto}}
@media(max-width:600px){.odette-details{grid-template-columns:1fr}}
.integrity-page{background:#f7f5ee;color:var(--ink)}
.integrity-hero{padding:clamp(4rem,8vw,7rem) clamp(1.5rem,12vw,12rem);background:var(--deep);color:#fff;text-align:center}
.integrity-hero .eyebrow{color:#7ce7ef}
.integrity-hero h1{font:600 clamp(2.8rem,6vw,5.5rem)/1.05 Lora;margin:.5rem auto;color:#fff;max-width:1000px}
.integrity-subtitle{font-size:clamp(1.1rem,2vw,1.45rem);margin:1rem 0 0;color:#d8fbfd}
.integrity-content{width:min(100% - 3rem,920px);margin:0 auto;padding:clamp(3rem,7vw,6rem) 0}
.fact-check-callout{padding:1.5rem 1.75rem;background:var(--blue);color:#fff;border-left:10px solid var(--sky);box-shadow:0 12px 30px rgba(8,13,74,.14)}
.fact-check-callout strong{display:block;font-size:1.25rem;letter-spacing:.08em}
.fact-check-callout p{margin:.65rem 0 0;font-size:1.06rem;line-height:1.6}
.outcome-callout{margin:1.5rem 0 3rem;padding:clamp(1.75rem,4vw,2.75rem);background:var(--deep);color:#fff;border:3px solid var(--sky)}
.outcome-callout .section-tag{color:#7ce7ef;margin-top:0}
.outcome-callout p:not(.section-tag){font:500 clamp(1.25rem,2.3vw,1.7rem)/1.45 Lora;margin:1rem 0}
.outcome-callout strong{color:#7ce7ef}
.integrity-section{padding:2rem 0;border-bottom:1px solid var(--line)}
.integrity-section h2,.official-sources h2{font:600 clamp(2rem,4vw,3rem)/1.15 Lora;color:var(--deep);margin:0 0 1.25rem}
.integrity-section h3{font:600 1.25rem/1.3 Lora;color:var(--blue);margin:1.7rem 0 .6rem}
.integrity-section p,.official-sources p,.official-sources li{font-size:1.04rem;line-height:1.75}
.council-outcome{border:0}
.council-outcome strong{color:var(--blue)}
.official-sources{margin-top:1rem;padding:2rem;background:#e8f8f8;border-top:5px solid var(--sky)}
.official-sources ul{padding-left:1.25rem;margin-bottom:0}
.official-sources a{color:var(--deep);font-weight:700}
.back-home{margin:2.5rem 0 0;text-align:center}
@media(max-width:600px){.integrity-content{width:min(100% - 2rem,920px)}.integrity-hero{padding-top:3.5rem;padding-bottom:3.5rem}.fact-check-callout{padding:1.25rem}.outcome-callout{padding:1.5rem}.official-sources{padding:1.5rem}}
@media (min-width:901px){
  .updates .post-grid{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }
}