/* Campaign articles: scoped styles preserve the existing site. */
.campaign-section{padding-block:clamp(48px,7vw,100px)}
.campaign-intro{max-width:760px;margin-bottom:2rem}
.campaign-intro h2{font-size:clamp(2rem,4vw,4rem);line-height:1.05;margin-bottom:1rem}
.campaign-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,4vw,64px)}
.campaign-card{min-width:0}.campaign-card img{width:100%;max-width:480px;height:auto;display:block;object-fit:contain;background:#fff;margin:0 0 1.5rem}
.campaign-card h3{font-size:clamp(1.5rem,2.4vw,2.3rem);line-height:1.15;margin:.7rem 0}
.campaign-card p{max-width:60ch;margin:0 0 1.1rem;line-height:1.65}
.campaign-card a,.campaign-intro a{font-size:1.05rem;text-decoration:underline;text-underline-offset:5px}.campaign-card{margin:0}
.campaign-note h2{font-size:clamp(1.7rem,3vw,2.7rem)}.campaign-note p{max-width:75ch;line-height:1.7}
.campaign-article{max-width:1160px;margin:auto;padding:calc(var(--header,90px) + 48px) clamp(22px,5vw,70px) 80px}
.campaign-article h1{font-size:clamp(2.3rem,5vw,4.5rem);line-height:1.05;max-width:20ch;margin:1rem 0 1.5rem}
.campaign-article .article-summary{font-size:clamp(1.15rem,2vw,1.4rem);max-width:65ch;line-height:1.6}
.campaign-article .article-body{max-width:75ch}.campaign-article h2{font-size:clamp(1.7rem,3vw,2.5rem);line-height:1.2;margin:2.5rem 0 1rem}
.campaign-article p{font-size:1.1rem;line-height:1.8;margin:1rem 0}.campaign-article figure{margin:2rem 0}
.campaign-article figure img{display:block;width:min(100%,480px);height:auto}.campaign-article figcaption{font-size:.95rem;line-height:1.5;margin-top:.7rem}
.campaign-article .article-links{border-top:1px solid #7c8589;margin-top:3rem;padding-top:1.4rem;display:flex;gap:1rem;flex-wrap:wrap}
.campaign-article .article-links a{font-size:1.05rem;text-underline-offset:4px}
@media(min-width:850px){.campaign-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:650px){.campaign-grid{grid-template-columns:1fr}.campaign-card img{max-width:100%}}
@media(prefers-reduced-motion:no-preference){@supports(animation-timeline:view()){.campaign-card{animation:campaign-enter linear both;animation-timeline:view();animation-range:entry 0% entry 50%}@keyframes campaign-enter{from{opacity:.6;transform:translateY(18px)}to{opacity:1;transform:none}}}}
