/* Joe Sweeney for New Hampshire. Navy, white, one gold. Flat color, square corners, no shadows.
   Display = Sweeney Slab (Alfa Slab One drawn 1.5x tall).
   Its capitals stand about 1.17em tall, so display sizes look bigger than the number says. */
@font-face{font-family:'Sweeney Slab';src:url(assets/fonts/SweeneySlab.woff2) format('woff2');font-display:swap}
@font-face{font-family:'League Gothic';src:url(assets/fonts/LeagueGothic.woff2) format('woff2');font-display:swap}
:root{
  --navy:#002855;--deep:#001C3D;--gold:#FFC72C;--white:#FFFFFF;--paper:#F2F4F7;--ink:#14233A;--muted:#46566E;
  --slab:'Sweeney Slab','Rockwell Extra Bold',Georgia,serif;--cond:'League Gothic','Arial Narrow',sans-serif;--body:'Libre Franklin',system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{overflow-x:clip;font-family:var(--body);color:var(--ink);background:var(--white);line-height:1.6;-webkit-font-smoothing:antialiased;font-size:17px}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
.wrap{width:min(1200px,92vw);margin:0 auto}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* the state: ends a headline, same height as the capitals, always gold */
.st::after{content:"";display:inline-block;height:1.167em;aspect-ratio:.5115;margin-left:.14em;background:var(--gold);-webkit-mask:url(assets/nh.svg) center/contain no-repeat;mask:url(assets/nh.svg) center/contain no-repeat}

/* type */
h1,h2{font-family:var(--slab);font-weight:400;text-transform:uppercase;letter-spacing:.005em;line-height:1.3}
h1{font-size:clamp(36px,4.1vw,56px);color:var(--white)}
h2{font-size:clamp(30px,3.5vw,46px);color:var(--navy)}
h2 em{font-style:normal;text-decoration:underline;text-decoration-color:var(--gold);text-decoration-thickness:.13em;text-underline-offset:.1em;text-decoration-skip-ink:none}
.donate-card h2,.resources h2{color:var(--white)}
.donate-card h2 em,.resources h2 em{text-decoration:none;color:var(--gold)}
h3{font-family:var(--cond);font-weight:400;text-transform:uppercase;letter-spacing:.015em;line-height:1.05;font-size:34px;color:var(--navy)}
.h1-line{display:block}
.label{display:block;font:400 25px/1 var(--cond);letter-spacing:.06em;text-transform:uppercase;color:var(--navy);margin-bottom:16px}
.label.light{color:var(--gold)}
.sub{font-size:19px;color:var(--muted);margin-top:18px;max-width:680px}
.resources .sub{color:var(--white)}
section{position:relative}
.section-head{max-width:820px;margin-bottom:52px}

/* buttons */
.btn{white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;font:400 25px/1 var(--cond);letter-spacing:.05em;text-transform:uppercase;text-decoration:none;padding:16px 28px;border:0;cursor:pointer;transition:background .12s,color .12s}
.btn-gold{background:var(--gold);color:var(--navy)}
.btn-gold:hover{background:var(--white)}
.join .btn-gold:hover{background:var(--navy);color:var(--white)}
.btn-navy{background:var(--navy);color:var(--white)}
.btn-white{background:var(--white);color:var(--navy)}
.btn-white:hover{background:var(--gold)}
.btn-block{width:100%}

/* nav */
.nav{position:sticky;top:0;z-index:50;background:var(--navy)}
.nav-inner{display:flex;align-items:center;gap:28px;height:78px}

.nav-links{display:flex;gap:26px;margin-left:auto}
.nav-links a{color:var(--white);text-decoration:none;font:400 23px/1 var(--cond);letter-spacing:.04em;text-transform:uppercase;padding:6px 0}
.nav-links a:hover{color:var(--gold)}
.nav-donate{padding:12px 22px;font-size:23px}
.nav-toggle{display:none;background:none;border:0;width:40px;height:40px;cursor:pointer;flex-direction:column;justify-content:center;gap:6px;margin-left:8px}
.nav-toggle span{display:block;height:3px;background:var(--white);width:26px;margin:0 auto}

/* hero */
.hero{position:relative;background:var(--navy);color:var(--white);overflow:clip;padding:44px 0 0}
.hero-grid{display:grid;grid-template-columns:1.12fr .88fr;align-items:end;gap:24px;min-height:640px}
.hero-copy{padding-bottom:52px;align-self:center}
.hero-logo{width:min(600px,100%);margin-bottom:36px}
.kicker{font:400 26px/1 var(--cond);letter-spacing:.06em;text-transform:uppercase;color:var(--gold);margin-bottom:12px;display:flex;align-items:center;gap:12px}
.kicker .dot{width:6px;height:6px;background:var(--gold)}
.lede{font-size:clamp(17px,1.4vw,19px);max-width:590px;margin:18px 0 28px}
.hero-form{display:grid;grid-template-columns:minmax(0,1fr) 90px auto;gap:8px;max-width:620px}
.hero-form input{font:500 16px var(--body);padding:15px 16px;border:0;background:var(--white);color:var(--ink);outline:none;border-radius:0}
.hero-form input:focus{outline:3px solid var(--gold)}
.hero-form .form-ok{grid-column:1/-1}
.form-ok{font-weight:600;color:var(--white);margin-top:6px}
.join .form-ok{color:var(--navy)}
.hero-sig{margin-top:24px;font:400 30px/1.05 var(--cond);text-transform:uppercase;letter-spacing:.03em}
.hero-sig span{display:block;font:500 14px/1.4 var(--body);text-transform:none;letter-spacing:0;margin-top:4px}
.hero-photo{position:absolute;align-self:stretch;top:0;right:0;bottom:0;width:44vw;overflow:hidden;background:var(--gold)}
.hero-photo img{position:absolute;bottom:0;left:50%;transform:translateX(-50%);height:86%;width:auto;max-width:none;margin:0}

/* stats */
.stats{background:var(--deep);color:var(--white);padding:36px 0 38px}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.stat{text-align:center}
.stat b{display:block;font:400 clamp(42px,4.4vw,64px)/1.25 var(--slab);color:var(--gold);font-variant-numeric:tabular-nums;white-space:nowrap}
.stat>span{display:block;font:500 14px/1.35 var(--body);margin:10px auto 0;max-width:220px}

/* job */
.job{padding:104px 0;background:var(--white)}
.job-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.job-card{background:var(--paper);padding:30px 24px 32px}
.job-ico svg{width:50px;height:50px;fill:none;stroke:var(--navy);stroke-width:3;stroke-linecap:square;margin-bottom:18px}
.job-card h3{margin-bottom:12px}
.job-card p{color:var(--muted);font-size:16px}

/* pledge */
.pledge{padding:104px 0;background:var(--white);overflow:hidden}
.pledge .label.light{color:var(--navy)}
.pledge .sub{color:var(--muted)}
.pledge-list{list-style:none;display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.pledge-list li{background:var(--navy);color:var(--white);padding:26px 22px 30px}
.pledge-list .num{display:block;font:400 42px/1 var(--slab);color:var(--gold);margin-bottom:18px}
.pledge-list h3{color:var(--white);font-size:31px;margin-bottom:12px}
.pledge-list p{font-size:15.5px}

/* service */
.service{padding:104px 0;background:var(--paper)}
.service-top{display:grid;grid-template-columns:1.4fr .8fr;gap:50px;align-items:end;margin-bottom:46px}
.service-top .section-head{margin-bottom:0}
.service-cta{display:block;background:var(--navy);color:var(--white);padding:28px 30px}
.cta-kicker{display:block;font:400 24px/1 var(--cond);letter-spacing:.05em;text-transform:uppercase;color:var(--gold)}
.cta-big{display:block;white-space:nowrap;font:400 54px/1.2 var(--slab);text-transform:uppercase;margin:8px 0 6px;color:var(--white);text-decoration:none}
.cta-phone{display:block;font:400 50px/1.05 var(--cond);color:var(--gold);text-decoration:none;margin-bottom:10px}
.cta-mail{display:block;font-size:15px}
.service-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.svc{padding:26px 20px 28px;background:var(--white)}
.svc h3{font-size:31px;margin-bottom:12px}
.svc p{font-size:15.5px}
.service-proof{margin-top:16px;display:flex;gap:18px;align-items:center;background:var(--gold);color:var(--navy);padding:22px 28px}
.service-proof b{font:400 31px/1 var(--cond);text-transform:uppercase;white-space:nowrap}

/* about */
.about{padding:104px 0;background:var(--white);overflow:hidden}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.about-photo{position:relative}
.about-panel{width:100%;aspect-ratio:4/3;background:var(--gold)}
.about-joe{position:absolute;left:50%;transform:translateX(-50%);bottom:0;width:86%}
.about-copy p:not(.label){font-size:18px;margin-top:18px}
.about-copy h2{margin-bottom:10px}
.sig{display:inline-block;margin-top:24px;font:400 38px/1 var(--cond);text-transform:uppercase;letter-spacing:.03em;color:var(--navy)}

/* join */
.join{padding:104px 0;background:var(--white)}
.join-grid{display:grid;grid-template-columns:1.25fr .9fr;gap:20px;align-items:stretch}
.join-form-card{background:var(--paper);padding:44px 42px}
.join-form-card h2{font-size:clamp(28px,3vw,40px);white-space:nowrap}
.join-form-card h2.st::after{background:var(--navy)}
.join-form{display:grid;gap:18px;margin-top:26px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.join-form label{display:block;font:400 21px/1 var(--cond);letter-spacing:.05em;text-transform:uppercase;color:var(--navy);margin-bottom:7px}
.join-form label small{text-transform:none;letter-spacing:0;color:var(--muted);font:400 13px var(--body)}
.join-form input,.join-form select{width:100%;font:500 16px var(--body);padding:14px;border:2px solid var(--navy);background:var(--white);outline:none;color:var(--ink);border-radius:0;appearance:none}
.join-form select{background:var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9'%3E%3Cpath d='M1 1l6 6 6-6' stroke='%23002855' stroke-width='2.5' fill='none'/%3E%3C/svg%3E") no-repeat right 14px center}
.join-form input:focus,.join-form select:focus{outline:3px solid var(--gold);outline-offset:-1px}
.chips{border:0;display:flex;flex-wrap:wrap;gap:10px}
.chips legend{font:400 21px/1 var(--cond);letter-spacing:.05em;text-transform:uppercase;color:var(--navy);margin-bottom:10px}
.chips label{margin:0;cursor:pointer;position:relative;font:inherit}
.chips input{position:absolute;opacity:0;width:auto}
.chips span{display:inline-block;font:500 14px var(--body);color:var(--ink);background:var(--white);border:2px solid var(--navy);padding:10px 14px;transition:.12s}
.chips input:checked+span{background:var(--navy);color:var(--white)}
.chips input:focus-visible+span{outline:3px solid var(--gold)}
.consent{display:flex!important;gap:10px;align-items:flex-start;font:400 13px/1.45 var(--body)!important;letter-spacing:0!important;text-transform:none!important;color:var(--muted)!important}
.consent input{width:auto;margin-top:3px;appearance:auto}
.join-form .btn-gold{background:var(--navy);color:var(--white)}
.join-form .btn-gold:hover{background:var(--gold);color:var(--navy)}
.donate-card{background:var(--navy);color:var(--white);padding:44px 38px}
.donate-card p{margin-top:16px}
.amounts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:26px 0 20px}
.amounts button{font:400 34px var(--cond);background:transparent;color:var(--white);border:2px solid var(--white);padding:12px 0;cursor:pointer;transition:.12s;border-radius:0}
.amounts button.on,.amounts button:hover{background:var(--gold);border-color:var(--gold);color:var(--navy)}
.fine{font-size:12.5px!important}

/* footer */
.footer{background:var(--deep);color:var(--white);padding-top:64px}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;padding-bottom:46px}
.foot-slogan{font:400 30px/1.2 var(--cond);text-transform:uppercase;letter-spacing:.03em;margin-top:18px}
.foot-slogan.st::after{height:.74em}
.footer h4{font:400 24px/1 var(--cond);letter-spacing:.05em;text-transform:uppercase;color:var(--gold);font-weight:400;margin-bottom:14px}
.footer a{text-decoration:none}.footer a:hover{text-decoration:underline}
.paid{background:var(--navy)}
.paid .wrap{padding:16px 0;font-size:13.5px}
.mobile-bar{display:none}

/* reveal */
.js .reveal{opacity:0;transform:translateY(20px);transition:opacity .5s ease,transform .5s ease}
.js .reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none;transition:none}}

/* responsive */
@media (max-width:1180px){
  .nav-links{gap:16px}.nav-links a{font-size:20px}
  .job-grid{grid-template-columns:repeat(2,1fr)}
  .pledge-list{grid-template-columns:repeat(2,1fr)}
  .pledge-list li:last-child{grid-column:1/-1}
  .service-grid{grid-template-columns:repeat(2,1fr)}.service-grid .svc:last-child{grid-column:1/-1}
}
@media (max-width:900px){
  body{font-size:16px}
  .nav-inner{height:68px}
  .nav-links{display:none;position:absolute;top:100%;left:0;right:0;background:var(--navy);flex-direction:column;padding:20px 6vw 28px;gap:18px}
  .nav-links.open{display:flex}
  .nav-links a{font-size:26px}
  .nav-toggle{display:flex}
  .nav-donate{margin-left:auto}
  .hero{padding-top:32px}
  .hero-grid{grid-template-columns:1fr;min-height:0}
  .hero-copy{padding-bottom:10px}
  .hero-photo{position:relative;width:auto;margin:14px calc(50% - 50vw) 0;padding-top:28px}
  .hero-photo img{position:static;transform:none;width:100%;height:auto;max-width:400px;margin:0 auto}
  .hero-form{grid-template-columns:1fr 100px}
  .hero-form .btn{grid-column:1/-1}
  .stats-grid{grid-template-columns:repeat(2,1fr);row-gap:28px}
  .stat b{font-size:48px}
  .job,.pledge,.service,.about,.resources,.ask,.join{padding:76px 0}
  .about-grid,.join-grid,.ask-grid,.footer-grid{grid-template-columns:1fr}
  .about-grid{gap:44px}
  .service-top{grid-template-columns:1fr;gap:30px}
  .service-proof{flex-direction:column;align-items:flex-start;gap:6px}.service-proof b{white-space:normal}
  .mobile-bar{display:grid;grid-template-columns:1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:60}
  .mobile-bar .btn{padding:17px}
  .footer{padding-bottom:60px}
}
@media (max-width:560px){
  .stat b{font-size:36px}
  .job-grid,.pledge-list,.service-grid{grid-template-columns:1fr}
  .pledge-list li:last-child,.service-grid .svc:last-child{grid-column:auto}
  .row{grid-template-columns:1fr}
  .join-form-card,.donate-card{padding:32px 22px}
  .nav-donate{display:none}
  .nav-toggle{margin-left:auto}
  .kicker{font-size:23px}
  .join-form-card h2{font-size:clamp(20px,6.2vw,24px)}
  .join-grid{grid-template-columns:minmax(0,1fr)}
  .cta-big{font-size:46px}
  .cta-phone{font-size:44px}
}

/* logos (Joe Sweeney for New Hampshire lockup, 11/9/26) */
.brand{display:block;line-height:0}.brand img{height:62px;width:auto}
.foot-logo{width:320px}
.hero-ctas{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.btn-outline{background:transparent;color:var(--white);box-shadow:inset 0 0 0 2px var(--white)}
.btn-outline:hover{background:var(--white);color:var(--navy)}

/* how it works */
.steps{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:16px;counter-reset:s}
.steps li{background:var(--navy);color:var(--white);padding:24px 22px 26px;counter-increment:s}
.steps li::before{content:counter(s);display:block;font:400 42px/1 var(--slab);color:var(--gold);margin-bottom:14px}
.steps h3{color:var(--white);font-size:30px;margin-bottom:8px}
.steps p{font-size:15.5px}
.svc a{color:var(--navy);font-weight:600}

/* ask form */
.ask{padding:104px 0;background:var(--paper)}
.ask-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:56px;align-items:start}
.ask-side p:not(.label){font-size:18px;margin-top:16px}
.ask-side .note{font-size:15px;color:var(--muted);border-left:4px solid var(--gold);padding-left:14px;margin-top:26px}
.ask-form textarea{width:100%;min-height:150px;font:500 16px/1.5 var(--body);padding:14px;border:2px solid var(--navy);border-radius:0;outline:none;resize:vertical;color:var(--ink)}
.ask-form textarea:focus{outline:3px solid var(--gold);outline-offset:-1px}
.form-ok.dark{color:var(--navy)}

/* resources */
.resources{padding:104px 0;background:var(--navy);color:var(--white)}
.res-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.res{display:block;background:var(--deep);padding:22px 22px 24px;text-decoration:none;border-top:4px solid var(--gold);transition:background .12s}
.res:hover{background:#0B3768}
.res b{display:block;font:400 28px/1.05 var(--cond);text-transform:uppercase;letter-spacing:.02em;color:var(--white)}
.res span{display:block;font-size:15px;margin-top:8px;color:#D7DEE8}
.res i{display:block;font-style:normal;font-size:13px;margin-top:10px;color:var(--gold)}
.res-note{margin-top:22px;font-size:14px;color:#D7DEE8}
@media (max-width:1180px){.steps{grid-template-columns:repeat(2,1fr)}.res-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:900px){.brand img{height:52px}.ask-grid{gap:34px}}
@media (max-width:560px){.steps,.res-grid{grid-template-columns:1fr}.hero-ctas .btn{width:100%}}
.form-err{font-weight:600;color:#B3261E;margin-top:6px}

/* ===== Calmer look (11/10/26, after Chris Maidment: "too much contrast", "needs more white space").
   White page, navy type, gold only as thin accents, smaller display type, more air. ===== */
:root{--paper:#F6F7F9;--line:#E3E7ED}
body{line-height:1.7}
h1{font-size:clamp(32px,3.4vw,46px);color:var(--navy);line-height:1.35}
h2{font-size:clamp(26px,2.7vw,36px);line-height:1.38}
h2 em{text-decoration-thickness:.08em;text-underline-offset:.16em}
.label{font-size:20px;color:var(--muted)}
.label.light{color:var(--muted)}
.sub{font-size:18px;line-height:1.75}
.section-head{margin-bottom:64px}
.service,.pledge,.ask,.resources,.about,.join{padding:136px 0}
/* nav: white bar */
.nav{background:var(--white);border-bottom:1px solid var(--line)}
.nav-links a{color:var(--navy)}
.nav-links a:hover{color:var(--muted)}
.nav-toggle span{background:var(--navy)}
.btn{font-size:22px;padding:15px 26px}
.btn-gold{background:var(--navy);color:var(--white)}
.btn-gold:hover{background:#0B3A75;color:var(--white)}
.nav-donate{font-size:21px}
/* hero: light, photo on a soft panel */
.hero{background:var(--white);color:var(--ink);padding:72px 0 0;border-bottom:1px solid var(--line)}
.hero-grid{min-height:600px;gap:48px}
.hero-copy{padding-bottom:88px}
.hero-logo{width:min(380px,80%);margin-bottom:44px}
.lede{color:var(--muted);font-size:18px;line-height:1.75;margin:22px 0 34px}
.btn-outline{color:var(--navy);box-shadow:inset 0 0 0 2px var(--navy)}
.btn-outline:hover{background:var(--navy);color:var(--white)}
.hero-sig{color:var(--navy);font-size:26px;margin-top:34px}
.hero-sig span{color:var(--muted)}
.hero-photo{background:#E8EDF4}
/* service */
.service{background:var(--paper)}
.service-cta{background:var(--white);color:var(--ink);border:1px solid var(--line);border-top:4px solid var(--gold)}
.cta-kicker{color:var(--muted);font-size:20px}
.cta-big{color:var(--navy);font-size:44px}
.cta-phone{color:var(--navy);font-size:40px}
.service-grid{gap:20px}
.svc{border:1px solid var(--line);padding:30px 24px 32px}
.svc h3{font-size:27px}
.svc p{color:var(--muted);line-height:1.7}
.service-proof{background:var(--white);border:1px solid var(--line);border-left:4px solid var(--gold);margin-top:20px}
.service-proof b{font-size:26px}
/* steps */
.steps{gap:20px}
.steps li{background:var(--white);color:var(--ink);border:1px solid var(--line);padding:30px 24px 32px}
.steps li::before{color:var(--navy);font-size:34px}
.steps h3{color:var(--navy);font-size:27px}
.steps p{color:var(--muted);line-height:1.7}
/* ask */
.ask-grid{gap:80px}
.join-form input,.join-form select,.ask-form textarea{border:1px solid #C9D1DC;background:var(--white)}
.join-form label,.chips legend{font-size:19px}
/* resources: light instead of navy */
.resources{background:var(--paper);color:var(--ink)}
.resources h2{color:var(--navy)}
.resources h2 em{color:var(--navy);text-decoration:underline;text-decoration-color:var(--gold)}
.resources .sub{color:var(--muted)}
.res-grid{gap:20px}
.res{background:var(--white);border:1px solid var(--line);border-top:3px solid var(--gold)}
.res:hover{background:var(--white);border-color:#C9D1DC}
.res b{color:var(--navy);font-size:25px}
.res span{color:var(--muted)}
.res i{color:var(--navy);opacity:.7}
.res-note{color:var(--muted)}
/* about */
.about-panel{background:#E8EDF4}
.about-copy p:not(.label){color:var(--ink);line-height:1.8}
.sig{font-size:30px}
/* join + donate */
.join-grid{gap:28px}
.join-form-card{background:var(--paper);padding:52px 48px}
.donate-card{background:var(--white);color:var(--ink);border:1px solid var(--line);border-top:4px solid var(--gold);padding:52px 44px}
.donate-card h2{color:var(--navy)}
.donate-card h2 em{color:var(--navy);text-decoration:underline;text-decoration-color:var(--gold)}
.donate-card .label.light{color:var(--muted)}
.amounts button{color:var(--navy);border:1px solid #C9D1DC;font-size:30px}
.amounts button.on,.amounts button:hover{background:var(--navy);border-color:var(--navy);color:var(--white)}
.btn-white{background:var(--navy);color:var(--white)}
.btn-white:hover{background:#0B3A75;color:var(--white)}
.fine{color:var(--muted)}
.mobile-bar .btn-navy{background:var(--white);color:var(--navy);border-top:1px solid var(--line)}
@media (max-width:900px){
  .nav-links{background:var(--white);border-bottom:1px solid var(--line)}
  .hero{padding-top:44px}
  .hero-photo{padding-top:24px}
  .service,.pledge,.ask,.resources,.about,.join{padding:88px 0}
}
@media (max-width:900px){.hero-logo{display:none}}
/* Joe 11/10/26: "maybe keep the navbar as navy" */
.nav{background:var(--navy);border-bottom:0}
.nav-links a{color:var(--white)}
.nav-links a:hover{color:var(--gold)}
.nav-toggle span{background:var(--white)}
.nav-donate{background:var(--white);color:var(--navy)}
.nav-donate:hover{background:var(--gold);color:var(--navy)}
@media (max-width:900px){.nav-links{background:var(--navy);border-bottom:0}}
/* ===== Airy pass (11/10/26, Chris Maidment: "needs more white space", "overstimulating still",
   "padding and margins are your friend"). Fewer boxes, fewer per row, much more space. ===== */
.wrap{width:min(1080px,88vw)}
body{font-size:18px;line-height:1.8}
h1{font-size:clamp(30px,3vw,42px);line-height:1.4}
h2{font-size:clamp(24px,2.3vw,32px);line-height:1.45}
h2 em{text-decoration:none}
h3{font-size:24px !important;line-height:1.2}
.st::after{display:none}
.label{font-size:17px;letter-spacing:.12em;margin-bottom:20px}
.sub{font-size:18px;margin-top:24px;max-width:620px}
.section-head{margin-bottom:88px;max-width:700px}
.service,.pledge,.ask,.resources,.about,.join{padding:176px 0}
/* hero */
.hero{padding:96px 0 0}
.hero-grid{min-height:620px;gap:96px;grid-template-columns:1fr .9fr}
.hero-copy{padding-bottom:120px;max-width:520px}
.lede{margin:30px 0 44px}
.hero-sig{margin-top:56px;font-size:22px}
/* what Joe can do: plain items, 3 per row */
.service-top{grid-template-columns:1fr;gap:56px;margin-bottom:96px}
.service-cta{max-width:460px;padding:36px 40px;border:1px solid var(--line);border-top:3px solid var(--gold)}
.cta-big{font-size:36px}
.cta-phone{font-size:34px}
.service-grid{grid-template-columns:repeat(3,1fr);gap:72px 72px}
.svc{background:transparent;border:0;padding:0}
.svc h3{margin-bottom:14px}
.service-proof{margin-top:96px;padding:32px 36px;gap:28px;border:0;border-left:3px solid var(--gold);background:var(--white)}
.service-proof b{font-size:22px}
/* steps: plain, numbered */
.steps{gap:64px;margin-top:0}
.steps li{background:transparent;border:0;padding:0}
.steps li::before{font-size:28px;margin-bottom:18px}
/* ask */
.ask-grid{gap:120px}
.join-form{gap:26px}
/* resources: plain three-column list */
.res-grid{gap:56px 72px}
.res{background:transparent;border:0;border-top:1px solid var(--line);padding:28px 0 0}
.res:hover{background:transparent}
.res:hover b{text-decoration:underline}
.res b{font-size:22px}
.res-note{margin-top:72px}
/* about */
.about-grid{gap:120px}
.about-copy p:not(.label){margin-top:24px}
/* join + donate */
.join-grid{gap:64px;grid-template-columns:1.2fr .8fr}
.join-form-card{background:transparent;padding:0}
.donate-card{padding:48px 44px;align-self:start}
.amounts{margin:32px 0 24px}
.footer{padding-top:96px}
.footer-grid{padding-bottom:72px}
@media (max-width:1180px){.service-grid,.res-grid{grid-template-columns:repeat(2,1fr)}.service-grid .svc:last-child{grid-column:auto}.steps{grid-template-columns:repeat(2,1fr)}}
@media (max-width:900px){
  .service,.pledge,.ask,.resources,.about,.join{padding:104px 0}
  .section-head{margin-bottom:56px}
  .hero{padding-top:56px}.hero-copy{padding-bottom:40px}
  .service-top{margin-bottom:64px}
  .service-grid,.steps,.res-grid{gap:48px}
  .ask-grid,.about-grid,.join-grid{gap:64px}
}
@media (max-width:560px){.service-grid,.res-grid,.steps{grid-template-columns:1fr}}
.donate-card h2 em,.resources h2 em{text-decoration:none}
.join-form-card h2{font-size:clamp(24px,2.3vw,32px)}
/* press */
.press{padding:176px 0;background:var(--paper)}
.press .sub a{color:var(--navy);font-weight:600}
.press-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:120px}
.press-col h3{color:var(--navy);margin-bottom:28px}
.press-list{list-style:none;display:grid;gap:36px}
.press-list li{border-top:1px solid var(--line);padding-top:24px}
.press-list .date{display:block;font:400 15px/1 var(--cond);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.press-list a{color:var(--navy);font-weight:600;text-decoration:none;font-size:18px;line-height:1.5}
.press-list a:hover{text-decoration:underline}
.press-list .src{display:block;font-size:14px;color:var(--muted);margin-top:6px}
.press-list.kit{gap:22px}
.press-list.kit li{padding-top:18px}
.bio-h{margin-top:64px}
.bio{color:var(--muted);line-height:1.8}
@media (max-width:900px){.press{padding:104px 0}.press-grid{grid-template-columns:1fr;gap:72px}}
