/* Campaign typography follows the main site's Caslon / DM Sans system. */
.campaign-page .campaign-hero{padding:76px 0 62px;max-width:1020px}
.campaign-page .campaign-hero .eyebrow{margin-bottom:24px}
.campaign-page h1{font:400 clamp(48px,5.7vw,80px)/1.06 var(--serif);letter-spacing:-1.4px;max-width:18ch;margin:0 0 24px;text-wrap:balance}
.campaign-page .campaign-deck{font:450 clamp(20px,1.8vw,24px)/1.48 var(--sans);letter-spacing:-.25px;max-width:45ch;margin:0 0 24px;text-wrap:pretty}
.campaign-page .campaign-intro{font-size:17px;line-height:1.8;max-width:70ch;margin:0;color:var(--muted);text-wrap:pretty}
.campaign-page .hero-actions{margin-top:30px;gap:24px}
.campaign-page .campaign-section{border-top:1px solid var(--line);padding:64px 0}
.campaign-page .campaign-section:first-of-type{border-top:0}
.campaign-page .campaign-section h2{font:400 clamp(36px,3.6vw,48px)/1.14 var(--serif);letter-spacing:-.55px;margin:0 0 24px;max-width:21ch;text-wrap:balance}
.campaign-page .campaign-section .eyebrow{margin:0 0 18px}
.campaign-page .campaign-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;margin-top:36px}
.campaign-page .campaign-card{border-top:2px solid var(--red);padding-top:20px;min-width:0}
.campaign-page .campaign-card .eyebrow{font-size:11px}
.campaign-page .campaign-card h3{font:400 30px/1.18 var(--serif);letter-spacing:-.2px;margin:12px 0 16px;max-width:22ch;text-wrap:balance}
.campaign-page .campaign-card p{font-size:15px;line-height:1.8;color:var(--muted);margin:0;text-wrap:pretty}
.campaign-page .campaign-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:80px;align-items:start}
.campaign-page .campaign-split p{font-size:16px;line-height:1.8;color:var(--muted);margin:0 0 22px;max-width:62ch;text-wrap:pretty}
.campaign-page .campaign-services{margin:0;padding:0;list-style:none;border-top:1px solid var(--line)}
.campaign-page .campaign-services li{border-bottom:1px solid var(--line);padding:17px 0;font-size:15px;line-height:1.6}
.campaign-page .campaign-contact{padding:60px 0;background:#28372f;color:#fffdf6}
.campaign-page .campaign-contact h2{font:400 clamp(36px,3.6vw,48px)/1.14 var(--serif);letter-spacing:-.4px;margin:0 0 20px;text-wrap:balance}
.campaign-page .campaign-contact p{font-size:16px;line-height:1.8;max-width:70ch;color:#d7ddd4;margin:0 0 20px}
.campaign-page .campaign-contact a{color:#fffdf6}
.campaign-page .campaign-contact .text-link{border-color:#b3bdb1}
.campaign-page .campaign-contact .campaign-notice{font-size:12px;line-height:1.75;max-width:95ch;margin:30px 0 0;padding-top:22px;border-top:1px solid #657166;color:#cdd2c9}
.campaign-page .button{min-height:48px}
.campaign-page .text-link{min-height:35px;align-items:center}
@media(max-width:1050px){.campaign-page .campaign-cards{gap:25px}.campaign-page .campaign-split{gap:44px}.campaign-page .campaign-card h3{font-size:28px}}
@media(max-width:760px){
 .campaign-page .campaign-hero{padding:42px 0 38px}
 .campaign-page h1{font-size:clamp(43px,10.5vw,62px);line-height:1.06;letter-spacing:-.8px;margin-bottom:22px}
 .campaign-page .campaign-deck{font-size:20px;line-height:1.45;max-width:35ch;margin-bottom:20px}
 .campaign-page .campaign-intro{font-size:16px;line-height:1.75}
 .campaign-page .campaign-section{padding:42px 0}
 .campaign-page .campaign-section h2{font-size:38px;letter-spacing:-.4px}
 .campaign-page .campaign-section h2 br{display:none}
 .campaign-page .campaign-cards,.campaign-page .campaign-split{grid-template-columns:minmax(0,1fr);gap:30px}
 .campaign-page .campaign-cards{margin-top:28px}
 .campaign-page .campaign-card h3{font-size:29px;max-width:none;margin:10px 0 12px}
 .campaign-page .campaign-split p{font-size:15px}
 .campaign-page .campaign-contact{padding:42px 0}
 .campaign-page .campaign-contact h2{font-size:38px}
 .campaign-page .campaign-contact p{font-size:15px}
 .campaign-page .hero-actions{gap:20px}
}
@media(max-width:380px){.campaign-page .hero-actions{align-items:flex-start;flex-direction:column}.campaign-page h1{font-size:43px}.campaign-page .campaign-section h2,.campaign-page .campaign-contact h2{font-size:35px}}

.campaign-page .headline-line{display:block}
