
:root{
  --orange:#F1562A; --orange-text:#da3b0e;--orange-d:#D8451D;--gold:#F89825;--gold-d:#E5851A;
  --blue:#7EB7E4;--blue-d:#5C9BD4;--ink:#1A1A1A;--ink-2:#232323;
  --paper:#ffffff;--muted:#6b6b6b;--line:#e6e6e6;
  --fh:'Montserrat', system-ui, -apple-system, sans-serif;--fb:'Open Sans', system-ui, sans-serif;
  --max:1240px;--pad:clamp(18px,4vw,44px);
}
*, *::before, *::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font-family:var(--fb);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
h1, h2, h3, h4{font-family:var(--fh);line-height:1.02}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--pad)}

/* nav */
nav.top{position:sticky;top:0;z-index:60;background:#fff;border-bottom:1px solid var(--line)}
nav.top .bar{display:flex;justify-content:space-between;align-items:stretch;min-height:66px}
.brand-link{display:flex;align-items:center;gap:12px;padding:10px var(--pad);color:var(--ink)}
.brand-link img{height:40px;width:auto}
.brand-link .name{font-family:var(--fh);font-weight:800;font-size:clamp(13px,1.5vw,17px);letter-spacing:.02em;text-transform:uppercase;line-height:1.05}
.nav-actions{display:flex;align-items:stretch}
.nav-actions a, .nav-actions button{display:flex;align-items:center;padding:0 clamp(16px,2vw,28px);font-family:var(--fh);font-weight:700;font-size:16px;letter-spacing:.03em;text-transform:uppercase;color:#fff;transition:filter .2s}
.nav-actions a:hover{filter:brightness(1.08)}
.act-donate{background:var(--orange)}
.act-take{background:var(--gold)}
.act-menu{background:var(--ink);gap:10px}
.act-menu .bars{display:inline-flex;flex-direction:column;gap:4px}
.act-menu .bars span{display:block;width:20px;height:2px;background:#fff;transition:transform .25s, opacity .25s}
.act-menu[aria-expanded="true"] .bars span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.act-menu[aria-expanded="true"] .bars span:nth-child(2){opacity:0}
.act-menu[aria-expanded="true"] .bars span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.mobile-drawer{position:fixed;inset:66px 0 0 0;background:var(--ink);z-index:55;transform:translateX(100%);transition:transform .35s;display:flex;flex-direction:column;padding:30px var(--pad);gap:4px}
.mobile-drawer.open{transform:translateX(0)}
.mobile-drawer a{font-family:var(--fh);font-weight:700;font-size:26px;text-transform:uppercase;color:#fff;padding:14px 0;border-bottom:1px solid rgba(255,255,255, .12)}
.mobile-drawer a:hover{color:var(--gold)}
body.drawer-open{overflow:hidden}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--fh);font-weight:700;font-size:16px;letter-spacing:.03em;text-transform:uppercase;padding:14px 28px;transition:transform .2s, background .2s, color .2s, border-color .2s}
.btn-dark{background:var(--ink);color:#fff}.btn-dark:hover{transform:translateY(-2px)}
/* Ink, not white. White on the brand orange is 3.44:1 and fails AA; ink is
   5.06:1. The orange itself is untouched. This matches .blk-gold, which
   already puts dark text on the brand gold for the same reason. */
.btn-orange{background:var(--orange);color:var(--ink)}.btn-orange:hover{background:var(--orange-d)}
.btn-outline{border:2px solid rgba(255,255,255, .7);color:#fff}.btn-outline:hover{background:#fff;color:var(--ink)}
.btn-sm{padding:11px 22px;font-size:12.5px}

/* hero (home + sub-pages) */
.hero{position:relative;min-height:clamp(560px,82vh,760px);display:flex;align-items:center;color:#fff;overflow:hidden}
.hero-bg{position:absolute;inset:0;z-index:0}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg, rgba(20,20,20, .72) 0%, rgba(20,20,20, .5) 45%, rgba(20,20,20, .34) 100%)}
.hero .wrap{position:relative;z-index:1;width:100%}
.hero-inner{max-width:760px;padding:60px 0}
.hero .bar{width:96px;height:14px;background:var(--orange);margin-bottom:26px}
.hero h1{font-family:var(--fh);font-weight:900;font-size:clamp(44px,8vw,104px);line-height:.94;letter-spacing:-.01em;text-transform:uppercase;margin-bottom:24px;text-shadow:0 2px 30px rgba(0,0,0, .35)}
.hero p{font-size:clamp(15px,1.6vw,18px);max-width:52ch;margin-bottom:32px;color:rgba(255,255,255, .94);line-height:1.6}
.hero .cta{display:flex;gap:14px;flex-wrap:wrap}
/* sub-page hero variants: shorter + colored tint */
.page-hero{min-height:clamp(340px,46vh,460px)}
.page-hero h1{font-size:clamp(40px,7vw,86px)}
.page-hero.tint-brown .hero-bg::after{background:linear-gradient(90deg, rgba(94,66,41,.82) 0%, rgba(120,86,55,.7) 60%, rgba(120,86,55,.62) 100%)}
.page-hero.tint-gray .hero-bg::after{background:linear-gradient(90deg, rgba(74,68,60,.86) 0%, rgba(90,84,74,.74) 60%, rgba(90,84,74,.66) 100%)}
.page-hero.tint-blue .hero-bg::after{background:linear-gradient(90deg, rgba(30,58,92,.82) 0%, rgba(38,74,116,.66) 60%, rgba(38,74,116,.55) 100%)}
.page-hero.tint-dark .hero-bg::after{background:linear-gradient(90deg, rgba(14,14,20,.86) 0%, rgba(20,20,28,.72) 55%, rgba(20,20,28,.6) 100%)}
.page-hero.tint-purple .hero-bg::after{background:linear-gradient(90deg, rgba(70,62,104,.8) 0%, rgba(96,90,132,.66) 55%, rgba(110,104,146,.6) 100%)}
.page-hero .hero-inner{padding:44px 0}

/* generic section */
.section{padding:clamp(52px,7vw,96px) 0}
.eyebrow-bar{width:96px;height:14px;background:var(--orange);margin-bottom:26px}
.h-accent{color:var(--orange)}

/* two-column heading/body (mission, programs intro) */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,70px);align-items:start}
.split h2{font-family:var(--fh);font-weight:900;font-size:clamp(30px,4vw,50px);text-transform:uppercase;line-height:1.02}
.split .body p{font-size:16px;color:#333;margin-bottom:16px;line-height:1.7}

/* saddle-up strip */
.strip-title{font-family:var(--fh);font-weight:900;font-size:clamp(30px,4vw,52px);text-transform:uppercase;text-align:center;margin:clamp(40px,5vw,66px) 0 clamp(22px,3vw,34px)}
.strip-title b{color:var(--orange)}
.saddle{display:grid;grid-template-columns:repeat(5,1fr);gap:0}
.saddle img{width:100%;height:clamp(220px,22vw,300px);object-fit:cover}

/* mission (home): the second paragraph carries the who-and-where */
.mission .body .lede{font-weight:600;color:var(--ink)}

/* family testimonials (home) */
.tst{background:#faf8f5}
.tst .split{margin-bottom:clamp(34px,5vw,60px)}
.tst-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(22px,3vw,36px)}
.tq{margin:0;background:#fff;border:1px solid var(--line);border-top:5px solid var(--orange);padding:clamp(26px,3vw,38px)}
.tq>svg{width:34px;height:34px;color:var(--gold);margin-bottom:14px}
.tq blockquote{margin:0}
.tq blockquote p{font-size:16px;line-height:1.75;color:#333;margin:0 0 14px}
.tq blockquote p:last-child{margin-bottom:0}
.tq figcaption{margin-top:20px;padding-top:16px;border-top:1px solid var(--line);font-family:var(--fh);font-weight:800;text-transform:uppercase;font-size:16px}
.tq figcaption span{display:block;font-family:var(--fb);font-weight:400;text-transform:none;color:var(--muted);font-size:16px;margin-top:4px}

/* program cards (about) */
.prog .split{margin-bottom:clamp(34px,5vw,60px)}
.prog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,32px)}
.pg{background:#fff;border:1px solid var(--line);padding:clamp(24px,3vw,34px)}
.pg svg{width:36px;height:36px;color:var(--orange);margin-bottom:16px}
.pg h3{font-family:var(--fh);font-weight:900;text-transform:uppercase;font-size:20px;margin:0 0 10px;line-height:1.15}
.pg p{font-size:16px;line-height:1.7;color:#333;margin:0}

/* sponsors */
.sponsors .split{margin-bottom:clamp(34px,5vw,60px)}
.sponsor-row{display:flex;flex-wrap:wrap;gap:clamp(20px,4vw,54px);align-items:center;justify-content:center}
.sponsor-row img{height:clamp(58px,7vw,92px);width:auto;object-fit:contain}

/* stats */
.stats{background:#fff;padding:clamp(46px,6vw,74px) 0}
.stats .grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.stats .s{text-align:center}
.stats .n{font-family:var(--fh);font-weight:900;font-size:clamp(42px,5.5vw,72px);color:var(--orange);line-height:1;letter-spacing:-.02em}
.stats .l{font-family:var(--fh);font-weight:700;font-size:clamp(14px,1.5vw,18px);color:var(--ink);margin-top:8px;line-height:1.2}

/* color-block collage (home) */
.blocks-a{display:grid;grid-template-columns:1fr 1fr 1fr}
.blocks-b{display:grid;grid-template-columns:1fr 1.2fr}
.blocks-c{display:grid;grid-template-columns:1fr 1fr 1fr}
.blk{display:flex;flex-direction:column;justify-content:center;padding:clamp(34px,3.6vw,58px);min-height:clamp(360px,34vw,470px)}
.blk h2{font-family:var(--fh);font-weight:800;font-size:clamp(24px,2.7vw,38px);line-height:1.06;text-transform:uppercase;margin-bottom:16px}
.blk h2.big{font-size:clamp(38px,5vw,74px);font-weight:900}
.blk p{font-size:16px;line-height:1.6;margin-bottom:24px;max-width:42ch}
.blk .btn{align-self:flex-start}
.blk-ink{background:var(--ink);color:#fff}.blk-ink p{color:rgba(255,255,255, .8)}
.blk-blue{background:var(--blue);color:#12314a}.blk-blue p{color:#194057}
.blk-blue .btn-outline{border-color:rgba(18,49,74, .55);color:#12314a}.blk-blue .btn-outline:hover{background:#12314a;color:#fff}
.blk-orange{background:var(--orange);color:#fff}.blk-orange p{color:rgba(255,255,255, .92)}
.blk-gold{background:var(--gold);color:#2a1c05}.blk-gold p{color:#3d2c0a}
.blk-gold .btn-outline{border-color:rgba(42,28,5, .5);color:#2a1c05}.blk-gold .btn-outline:hover{background:#2a1c05;color:#fff}
.blk-photo{padding:0;min-height:clamp(360px,34vw,470px)}
.blk-photo img{width:100%;height:100%;object-fit:cover}

/* programs cards */
.cards6{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(28px,3.4vw,52px) clamp(26px,3vw,46px)}
.pc h3{font-family:var(--fh);font-weight:800;font-size:clamp(20px,2vw,26px);color:var(--orange);text-transform:none;line-height:1.12;margin-bottom:14px}
.pc p{font-size:14.5px;color:#333;line-height:1.65}

/* meet the team */
.meet{text-align:center;max-width:820px;margin:0 auto}
.meet h2{font-family:var(--fh);font-weight:800;font-size:clamp(30px,3.6vw,46px);color:var(--orange);margin-bottom:14px}
.meet .rule{width:44px;height:3px;background:var(--ink);margin:0 auto 26px}
.meet p{font-size:15.5px;color:#333;margin-bottom:16px;line-height:1.75}

/* save your spot */
.spot{padding:clamp(64px,8vw,110px) 0;text-align:center}
.spot h2{font-family:var(--fh);font-weight:900;font-size:clamp(32px,4.4vw,56px);text-transform:uppercase;color:var(--orange);margin-bottom:44px}
.event-row{border-top:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink);padding:30px 4px;display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;text-align:left;max-width:1000px;margin:0 auto}
.event-row .date{font-family:var(--fh);font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:6px}
.event-row h3{font-family:var(--fh);font-weight:800;font-size:clamp(20px,2.4vw,30px);line-height:1.1}
.event-row h3 .who{color:var(--muted);font-weight:600}
.event-row .loc{font-size:14px;color:var(--muted);margin-top:8px}

/* gallery grid */
.gal{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.gal a{display:block;overflow:hidden}
.gal img{width:100%;height:clamp(220px,24vw,340px);object-fit:cover;transition:transform .5s}
.gal a:hover img{transform:scale(1.05)}

/* donate */
.donate-hero{padding:clamp(46px,6vw,86px) 0 clamp(30px,4vw,50px)}
.donate-hero h1{font-family:var(--fh);font-weight:900;font-size:clamp(46px,8vw,100px);text-transform:uppercase;line-height:.94;letter-spacing:-.01em;margin-bottom:34px}
.donate-cols{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,70px)}
.donate-cols p{font-size:15.5px;color:#333;line-height:1.7}
.support-list{font-size:15.5px;color:#333;line-height:1.9}
.support-list b{font-weight:700}
.donate-sub{display:grid;grid-template-columns:1fr 1.4fr;gap:clamp(30px,5vw,70px);align-items:start;padding-bottom:clamp(30px,4vw,54px)}
.donate-sub h3{font-family:var(--fh);font-weight:800;font-size:clamp(22px,2.6vw,32px);color:var(--orange);margin-bottom:18px}
.donate-sub .addr{font-size:16px;color:#333}
.pay-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.pay{border:1px solid var(--line);border-radius:8px;padding:20px 12px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--ink)}
.pay .ic{width:46px;height:46px;display:grid;place-items:center;border-radius:10px;font-family:var(--fh);font-weight:800;font-size:20px;color:#fff}
.pay .lbl{font-size:13.5px;color:#333}
.pay-pp{background:#003087}.pay-ca{background:#00d64f}.pay-ze{background:#6d1ed4}.pay-ck{background:#eef1f5;color:#333;border:1px solid var(--line)}

/* take-action / volunteer */
.vol-areas ul{list-style:none;color:var(--orange);font-size:15.5px}
.vol-areas li{position:relative;padding-left:20px;margin-bottom:8px;line-height:1.5}
.vol-areas li::before{content:"";position:absolute;left:0;top:9px;width:7px;height:7px;border-radius:50%;background:var(--orange)}
.vol-areas li span{color:#333}
.don-spon{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,64px)}
.don-spon h3{font-family:var(--fh);font-weight:800;font-size:clamp(22px,2.4vw,30px);color:var(--orange);margin-bottom:16px}
.don-spon p{font-size:14.5px;color:#333;margin-bottom:14px;line-height:1.7}
.vol-box{border:1px solid var(--ink);padding:clamp(28px,4vw,52px);margin-top:clamp(34px,5vw,60px)}
.vol-box .split{margin-bottom:clamp(26px,4vw,44px)}
.vol-box h2{font-family:var(--fh);font-weight:900;font-size:clamp(28px,3.6vw,44px);text-transform:uppercase}
.vol-box .intro{font-size:15px;color:#333;line-height:1.7}
.vform .frow{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.vform .field{margin-bottom:20px}
.vform label{display:block;font-family:var(--fh);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.vform input{width:100%;padding:11px 2px;border:0;border-bottom:1px solid #cfcfcf;background:transparent;font-family:var(--fb);font-size:15px}
.vform input:focus{outline:0;border-color:var(--orange)}
.vform .checks{display:flex;flex-direction:column;gap:9px;margin-top:4px}
.vform .checks label{display:flex;align-items:center;gap:9px;text-transform:none;letter-spacing:0;font-family:var(--fb);font-weight:400;font-size:14.5px;color:#333;margin:0}
.vform .checks input{width:auto}

/* team grid (who we are) */
.team{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(30px,3.4vw,52px) clamp(24px,2.6vw,40px);margin-top:clamp(40px,5vw,66px);text-align:left}
.tm .ph{width:100%;aspect-ratio:403/381;object-fit:cover;object-position:50% 22%;background:#eee;border-radius:14px}
.tm .role{font-size:14px;color:var(--muted);margin:16px 0 4px}
.tm h3{font-family:var(--fh);font-weight:800;font-size:clamp(19px,2vw,23px);margin-bottom:12px}
.tm p{font-size:14px;color:#333;line-height:1.66;margin-bottom:11px}
.tm .bio{max-height:9.2em;overflow:hidden;position:relative;transition:max-height .45s ease}
.tm .bio.open{max-height:240em}
.tm .bio:not(.open)::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3.4em;background:linear-gradient(to bottom, rgba(255,255,255,0), #fff 78%)}
.tm .more{font-family:var(--fh);font-weight:700;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--orange-text);margin-top:10px;cursor:pointer}
.tm .more:hover{text-decoration:underline}

/* events placeholder */
.spot .soon{border-top:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink);padding:44px 20px;max-width:1000px;margin:0 auto}
.spot .soon .t{font-family:var(--fh);font-weight:800;font-size:clamp(20px,2.2vw,27px);margin-bottom:8px}
.spot .soon .s{font-size:15px;color:var(--muted)}

/* news */
.newsgrid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(18px,2vw,26px)}
.nc{position:relative;display:block;overflow:hidden;background:var(--ink);min-height:clamp(300px,30vw,380px)}
.nc img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s}
.nc:hover img{transform:scale(1.05)}
.nc::after{content:"";position:absolute;inset:0;background:linear-gradient(to top, rgba(10,10,10,.86) 0%, rgba(10,10,10,.35) 52%, rgba(10,10,10,.12) 100%)}
.nc .inner{position:relative;z-index:2;height:100%;min-height:inherit;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(18px,2vw,26px)}
.nc .read{align-self:flex-start;background:rgba(0,0,0,.42);color:#fff;font-size:12px;padding:6px 11px;border-radius:3px}
.nc h3{font-family:var(--fh);font-weight:800;font-size:clamp(19px,2vw,25px);color:#fff;line-height:1.18}
.nc .meta{margin-top:12px;padding-top:11px;border-top:1px solid rgba(255,255,255,.3);font-size:12.5px;color:rgba(255,255,255,.85)}

/* post page */
.post{padding:clamp(40px,5vw,72px) 0 clamp(30px,4vw,50px);max-width:820px}
.post .back{font-family:var(--fh);font-weight:700;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--orange)}
.post h1{font-family:var(--fh);font-weight:900;font-size:clamp(30px,4.4vw,54px);line-height:1.04;margin:18px 0 16px}
.post .pmeta{font-size:14px;color:var(--muted);padding-bottom:26px;border-bottom:1px solid var(--line);margin-bottom:30px}
.post .cover{width:100%;aspect-ratio:16/9;object-fit:cover;margin-bottom:32px}
.post p{font-size:16.5px;color:#282828;line-height:1.78;margin-bottom:19px}
.post p.lead{font-size:19px;color:#111;font-weight:600}
.post .sub{font-family:var(--fh);font-weight:800;font-size:clamp(19px,2vw,24px);color:var(--ink);margin:30px 0 12px}
.post-nav{border-top:1px solid var(--line);padding-top:26px;margin-top:36px}

/* legal */
.legal{padding:clamp(46px,6vw,90px) 0 clamp(40px,5vw,70px);max-width:840px}
.legal h1{font-family:var(--fh);font-weight:900;font-size:clamp(40px,6vw,74px);text-transform:uppercase;line-height:.98;margin-bottom:30px}
.legal h1 b{color:var(--orange)}
.legal .eff{font-family:var(--fh);font-weight:800;font-size:clamp(20px,2.4vw,28px);color:var(--orange);margin-bottom:22px}
.legal h2{font-family:var(--fh);font-weight:800;font-size:clamp(20px,2.3vw,27px);color:var(--orange);margin:26px 0 10px}
.legal p{font-size:15px;color:#333;margin-bottom:12px;line-height:1.7}
.legal ul{margin:0 0 12px 20px}
.legal li{font-size:15px;color:#333;margin-bottom:7px;line-height:1.6}
.legal ul ul{margin-top:7px}

/* contact */
.contact-banner{background:var(--gold);text-align:center;padding:clamp(40px,5vw,66px) 0}
/* White on the brand gold is 2.21:1, the worst pairing on the site. #2a1c05 is
   7.51:1 and is the shade .blk-gold already uses on the same background. */
.contact-banner h2{font-family:var(--fh);font-weight:900;font-size:clamp(34px,5vw,64px);text-transform:uppercase;color:#2a1c05;letter-spacing:.01em}
.contact-body{padding:clamp(56px,7vw,92px) 0 clamp(30px,4vw,44px)}
.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(40px,6vw,80px);align-items:start}
.contact-form .frow{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.contact-form .field{margin-bottom:20px}
.contact-form label{display:block;font-family:var(--fh);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.contact-form input, .contact-form textarea{width:100%;padding:13px 15px;border:1px solid var(--line);background:#fafafa;color:var(--ink);font-family:var(--fb);font-size:15px;border-radius:8px;transition:border-color .2s}
.contact-form input:focus, .contact-form textarea:focus{outline:0;border-color:var(--orange);background:#fff}
.contact-form textarea{min-height:140px;resize:vertical}
.contact-form .honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.contact-submit{background:var(--orange);color:#fff;font-family:var(--fh);font-weight:700;font-size:14px;letter-spacing:.03em;text-transform:uppercase;padding:15px 34px;border-radius:8px;transition:background .2s}
.contact-submit:hover{background:var(--orange-d)}
.contact-submit[data-state="sending"]{opacity:.6;pointer-events:none}
.contact-status{margin-top:14px;font-size:14px;font-weight:600}
.contact-status[data-state="ok"]{color:#1c7a45}.contact-status[data-state="err"]{color:#c0392b}
.contact-info .ci{margin-bottom:26px}
/* Fixed at source rather than by out-specifying it: this rule is (0,2,0) and beat
   the generic .k every time. 12px was under the floor and the fill orange was
   3.43:1 as text. */
.contact-info .k{font-family:var(--fh);font-size:16px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--orange-text);margin-bottom:6px}
.contact-info .v{font-size:16px;color:var(--ink);font-weight:600}
.contact-info .v a:hover{color:var(--orange)}
.socials{display:flex;gap:12px;margin-top:30px}
.socials a{width:56px;height:56px;border:1.5px solid var(--line);border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:var(--ink);font-size:10px;transition:all .2s}
.socials a:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.socials a svg{width:20px;height:20px}
.foot-legal{display:flex;gap:34px;flex-wrap:wrap;padding-top:clamp(30px,4vw,50px);font-size:14px}
.foot-legal a{color:#333}.foot-legal a:hover{color:var(--orange)}
.foot-copy{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:22px;font-size:13px;color:var(--muted)}
.foot-copy a{color:var(--ink);text-decoration:underline}

@media(max-width:900px){
  .brand-link .name{font-size:12px;max-width:150px}
  .act-take{display:none}
  .split, .donate-cols, .donate-sub, .don-spon, .vform .frow{grid-template-columns:1fr;gap:26px}
  .cards6, .team{grid-template-columns:1fr 1fr}
  .newsgrid{grid-template-columns:1fr}
  .stats .grid{grid-template-columns:1fr 1fr;gap:32px 16px}
  .blocks-a, .blocks-b, .blocks-c{grid-template-columns:1fr}
  .blk, .blk-photo{min-height:auto}
  .blk-photo{min-height:260px}
  .blk-photo img{min-height:260px}
  .saddle{grid-template-columns:1fr 1fr 1fr}
  .gal{grid-template-columns:1fr 1fr}
  .pay-row{grid-template-columns:1fr 1fr}
  .contact-grid{grid-template-columns:1fr;gap:40px}
  .event-row{grid-template-columns:1fr;gap:18px}
  .tst-grid, .prog-grid{grid-template-columns:1fr}
}
@media(max-width:560px){.cards6, .team{grid-template-columns:1fr}.saddle{grid-template-columns:1fr 1fr}.gal{grid-template-columns:1fr}.pay-row{grid-template-columns:1fr 1fr}.contact-form .frow{grid-template-columns:1fr}}


/* Save the Date. The flyer is an image, so every fact on it is repeated as real
   text beside it: an image alone is invisible to search engines and to anyone
   using a screen reader, and the date is the whole point of the section. */
.std{background:var(--ink);color:#fff;padding:clamp(48px,6vw,84px) 0}
.std .wrap{display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr);
  gap:clamp(28px,4vw,60px);align-items:center}
.std-poster{width:100%;height:auto;display:block;border-radius:6px;
  box-shadow:0 24px 60px -20px rgba(0,0,0,.7)}
.std-kicker{font-family:var(--fh,inherit);font-size:16px;font-weight:800;
  letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin:0 0 12px}
.std h2{font-size:clamp(32px,4.6vw,54px);line-height:1.02;margin:0 0 8px;color:#fff}
.std .std-sub{font-size:18px;color:#d9d4cc;margin:0 0 26px;max-width:46ch}
.std dl{display:grid;grid-template-columns:auto 1fr;gap:10px 20px;margin:0 0 28px;
  font-size:17px}
.std dt{font-weight:800;color:var(--gold);letter-spacing:.06em;
  text-transform:uppercase;font-size:16px}
.std dd{margin:0;color:#f2efe9}
.std dd a{color:#fff}
@media(max-width:820px){
  .std .wrap{grid-template-columns:1fr}
  .std-poster{max-width:420px;margin:0 auto}
}


/* The header action buttons ran 41px past a 390px viewport, so every page
   scrolled sideways on a phone. Pre-existing, found while adding the Save the
   Date section. The row is allowed to shrink and the labels step down to icons
   plus the burger on the narrowest screens, rather than forcing the page wider
   than the device. */
@media(max-width:520px){
  .nav-actions{flex:0 1 auto;min-width:0}
  .nav-actions a, .nav-actions button{padding:0 12px;letter-spacing:0}
  .nav-actions .act-donate{display:none}
}
@media(max-width:390px){
  .nav-actions .act-take{display:none}
}

/* Header action buttons sit on the brand orange and gold, where white text is
   3.44:1 and 2.21:1. Ink is 5.06:1 and 7.88:1. Backgrounds unchanged. */
/* Scoped through .nav-actions on purpose. The base rule is `.nav-actions a`,
   specificity (0,1,1), which outranks a bare `.act-donate` at (0,1,0) no
   matter how late it appears. The first attempt lost that fight silently. */
.nav-actions .act-donate, .nav-actions .act-take{color:var(--ink)}

/* The orange content block ran white body copy at 3.44:1. .blk-gold already
   solves this by putting dark text on the brand gold, so the orange block now
   matches its sibling rather than inventing a new treatment. Background kept. */
.blk-orange{color:#2a1205}
.blk-orange p{color:#2a1205}  /* #3d1c08 measured 4.46:1, a near miss */
.blk-orange .btn-outline{border-color:rgba(42,18,5,.5);color:#2a1205}
.blk-orange .btn-outline:hover{background:#2a1205;color:#fff}

/* Three root causes, from a site-wide axe pass.
   1. The brand orange as TEXT on white is 3.43:1. --orange-text is the same
      hue darkened to pass; the fill orange is untouched.
   2. White on the brand orange is also 3.43:1, so the submit button takes ink.
   3. The closed drawer kept its links in the tab order while aria-hidden, so a
      keyboard user could tab into an invisible menu. visibility removes it. */
.k{color:var(--orange-text)}
.more{color:var(--orange-text)}
.contact-body a[target="_blank"], .news-body a[target="_blank"]{color:var(--orange-text)}
.contact-submit{color:var(--ink)}
.mobile-drawer{visibility:hidden}
.mobile-drawer.open{visibility:visible}

/* Body links carrying the brand orange as text. Same 3.43:1 problem, fixed with
   the text-safe shade rather than by restyling the link. */
.donate-cols p a, .tm .more, .prose a[target="_blank"], p > a[target="_blank"]{color:var(--orange-text)}

/* The PayPal link on the donate page sits in body copy and inherited the fill
   orange at 3.43:1. Scoped tightly so only that link changes. */
.donate-cols a[href*="paypal"], .donate-cols a[target="_blank"]{color:var(--orange-text)}

.donate-cols .pay{color:var(--orange-text)}
