/* ---------- Tokens: CROP's Elementor kit, unchanged ---------- */
:root{
  --navy:#2F4160;      /* Primary */
  --cream:#EDE8DA;     /* Secondary */
  --grey:#838694;      /* Text */
  --coral:#FD6047;     /* Accent */
  --soft:#F4F4F4;      /* BG Soft */
  --white:#FFFFFF;
  --mint:#00C1A9;      /* Mint */
  --icon:#C7C7C7;
  --grey2:#70737E;     /* Text #2 */
  --line:#DFDFDF;      /* Text #3 */
  --navy-deep:#243350; /* navy, shaded for depth only */
  --font:"Nunito Sans", "Segoe UI", system-ui, -apple-system, Helvetica, Arial, sans-serif;
  --pad:clamp(1.25rem, 4vw, 4rem);
  --max:1360px;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
*,*::before,*::after{box-sizing:inherit}
html{scroll-padding-top:env(safe-area-inset-top,0px);-webkit-text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}
body{margin:0;background:var(--white);color:var(--navy);font-family:var(--font);font-size:1.125rem;line-height:1.6;font-optical-sizing:auto;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3,p{margin:0}
:focus-visible{outline:3px solid var(--mint);outline-offset:3px;border-radius:4px}
.skip{position:absolute;left:1rem;top:-4rem;z-index:100;background:var(--cream);color:var(--navy);padding:.75rem 1rem;border-radius:.5rem;font-weight:800}
.skip:focus{top:1rem}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--pad)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- Type ---------- */
.display{font-weight:900;letter-spacing:-.035em;line-height:.92;font-size:clamp(3rem,9.2vw,9.5rem)}
.h2{font-weight:850;letter-spacing:-.028em;line-height:1;font-size:clamp(2.3rem,5.4vw,5rem)}
.h3{font-weight:800;letter-spacing:-.015em;line-height:1.1;font-size:clamp(1.4rem,2.2vw,1.9rem)}
.lede{font-size:clamp(1.15rem,1.5vw,1.35rem);line-height:1.55;max-width:34em}
.kicker{font-weight:800;font-size:1rem;color:var(--coral);display:flex;align-items:center;gap:.6rem;margin-bottom:1.25rem}
.kicker::before{content:"";width:2.2rem;height:3px;border-radius:3px;background:currentColor}
.split-line{padding-bottom:.08em;margin-bottom:-.08em} /* room for descenders inside masks */

/* ---------- Buttons ---------- */
.btn{--bg:var(--coral);--fg:var(--navy);position:relative;display:inline-flex;align-items:center;gap:.7rem;min-height:3.5rem;padding:0 1.75rem;border-radius:999px;background:var(--bg);color:var(--fg);font-weight:850;font-size:1.2rem;text-decoration:none;border:0;cursor:pointer;isolation:isolate;overflow:hidden;transition:color .45s cubic-bezier(.16,1,.3,1)}
.btn::after{content:"";position:absolute;inset:0;z-index:-1;background:var(--navy);transform:translateY(101%);border-radius:inherit;transition:transform .55s cubic-bezier(.16,1,.3,1)}
.btn:hover::after{transform:translateY(0)}
.btn:hover{color:var(--cream)}
.btn:active{transform:scale(.97)}
.btn--ghost{--bg:transparent;--fg:var(--cream);box-shadow:inset 0 0 0 2px rgba(237,232,218,.45)}
.btn--ghost::after{background:var(--cream)}
.btn--ghost:hover{color:var(--navy)}
.btn--navy{--bg:var(--navy);--fg:var(--cream)}
.btn--navy::after{background:var(--coral)}
.btn--navy:hover{color:var(--navy)}
.btn .btn-label{display:inline-block;pointer-events:none}
.btn svg{width:1.1em;height:1.1em;flex:none}
.magnetic{will-change:transform}

/* ---------- Custom cursor ---------- */
.cursor{position:fixed;left:0;top:0;z-index:90;pointer-events:none;display:none}
html.has-cursor .cursor{display:block}
html.has-cursor,html.has-cursor a,html.has-cursor button{cursor:none}
.cursor-dot{position:fixed;left:-4px;top:-4px;width:8px;height:8px;border-radius:50%;background:var(--coral)}
.cursor-ring{position:fixed;left:-22px;top:-22px;width:44px;height:44px;border-radius:50%;border:1.5px solid var(--coral);display:grid;place-items:center;transition:width .45s cubic-bezier(.16,1,.3,1),height .45s cubic-bezier(.16,1,.3,1),left .45s cubic-bezier(.16,1,.3,1),top .45s cubic-bezier(.16,1,.3,1),background-color .3s,border-color .3s}
.cursor-label{font-size:.8rem;font-weight:900;color:var(--navy);opacity:0;transition:opacity .25s}
.cursor.is-link .cursor-ring{width:64px;height:64px;left:-32px;top:-32px;background:rgba(253,96,71,.12)}
.cursor.is-label .cursor-ring{width:92px;height:92px;left:-46px;top:-46px;background:var(--coral);border-color:var(--coral)}
.cursor.is-label .cursor-label{opacity:1}
.cursor.is-label .cursor-dot,.cursor.is-hidden{opacity:0}

/* ---------- Header ---------- */
.nav{position:fixed;inset:0 0 auto 0;z-index:50;padding-top:env(safe-area-inset-top,0px);transition:transform .6s cubic-bezier(.16,1,.3,1),background-color .4s}
.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;height:5.25rem}
.nav.is-solid{background:rgba(47,65,96,.96)}
.nav.is-hidden{transform:translateY(-110%)}
.logo{display:inline-flex;align-items:center}
.logo img{height:3.4rem;width:auto}
.nav-links{display:flex;gap:.25rem;list-style:none;margin:0;padding:0}
.nav-links a{display:block;color:var(--cream);text-decoration:none;font-weight:700;font-size:1rem;padding:.6rem .8rem;border-radius:.6rem;position:relative}
.nav-links a::after{content:"";position:absolute;left:.8rem;right:.8rem;bottom:.35rem;height:2px;background:var(--coral);transform:scaleX(0);transform-origin:right;transition:transform .5s cubic-bezier(.16,1,.3,1)}
.nav-links a:hover::after{transform:scaleX(1);transform-origin:left}
.nav .btn{min-height:3rem;font-size:1.05rem;padding:0 1.3rem}
.menu-btn{display:none;background:var(--cream);color:var(--navy);border:0;border-radius:999px;height:3rem;padding:0 1.2rem;font:inherit;font-weight:850;font-size:1rem}
.mobile-menu{position:fixed;inset:0;z-index:49;background:var(--navy);padding:7rem var(--pad) 3rem;display:flex;flex-direction:column;justify-content:space-between;visibility:hidden;opacity:0;transition:opacity .4s,visibility .4s}
.mobile-menu.is-open{visibility:visible;opacity:1}
.mobile-menu ul{list-style:none;margin:0;padding:0}
.mobile-menu a{color:var(--cream);text-decoration:none;font-weight:850;font-size:clamp(2rem,9vw,3rem);letter-spacing:-.02em;line-height:1.25;display:block}
.mobile-menu .contact-mini{color:var(--cream);opacity:.85;font-size:1.05rem}

/* ---------- Hero ---------- */
.hero{position:relative;min-height:100vh;min-height:100svh;background:var(--navy);color:var(--cream);overflow:hidden;display:flex;align-items:flex-end}
/* Background video over the shader; lower --hero-video-opacity (0 to 1) to fade it further */
.hero{--hero-video-opacity:.3}
.hero-video{position:absolute;inset:0;z-index:1;width:100%;height:100%;object-fit:cover;opacity:var(--hero-video-opacity);pointer-events:none}
@media (prefers-reduced-motion:reduce){.hero-video{display:none}}
.hero-fallback{position:absolute;inset:0;background:radial-gradient(120% 60% at 50% 22%,rgba(253,96,71,.35),transparent 60%),linear-gradient(var(--navy),var(--navy-deep))}
.hero-content{position:relative;z-index:2;width:100%;padding-bottom:clamp(2rem,6vh,4.5rem);pointer-events:none}
.hero-content a,.hero-content button{pointer-events:auto}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:2rem 4rem;align-items:end}
.hero .display{max-width:11ch}
.hero-side{display:grid;gap:1.75rem;padding-bottom:.6rem}
.hero-side p{font-size:1.2rem;line-height:1.55;color:var(--cream)}
.hero-ctas{display:flex;flex-wrap:wrap;gap:.8rem}
.hero-reel{display:flex;align-items:center;gap:1rem;text-decoration:none;color:var(--cream);background:rgba(36,51,80,.72);border:1px solid rgba(237,232,218,.18);border-radius:1.1rem;padding:.6rem 1.1rem .6rem .6rem;max-width:26rem}
.hero-reel img{width:5.5rem;height:3.6rem;object-fit:cover;border-radius:.65rem}
.hero-reel small{display:block;opacity:.8;font-size:.9rem}
.hero-reel strong{font-weight:800;font-size:1rem;line-height:1.3}
.scroll-cue{position:absolute;right:var(--pad);top:50%;z-index:2;writing-mode:vertical-rl;font-weight:800;font-size:.9rem;color:var(--cream);opacity:.7;display:flex;gap:.8rem;align-items:center}
.scroll-cue::after{content:"";width:2px;height:4rem;background:linear-gradient(var(--coral),transparent)}

/* ---------- Breakthrough ---------- */
.breakthrough{background:var(--cream);padding:clamp(5rem,12vw,10rem) 0}
.bt-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(2.5rem,6vw,6rem);align-items:center}
.bt-media{position:relative}
.bt-media .main{border-radius:1.5rem;overflow:hidden;aspect-ratio:4/3;background:var(--navy)}
.bt-media .main img{width:100%;height:115%;object-fit:cover}
.bt-copy .h2{font-size:clamp(2.2rem,4.1vw,4.2rem);margin-bottom:1.5rem;overflow-wrap:break-word}
.bt-copy .lede{margin-bottom:2.25rem}
.bt-tagline{display:flex;gap:.5rem;flex-wrap:wrap;margin:0 0 2.25rem;padding:0;list-style:none}
.bt-tagline li{font-weight:850;font-size:1.05rem;padding:.4rem 1rem;border-radius:999px;background:var(--white)}
.videos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:clamp(3rem,6vw,5rem)}
.video{position:relative;display:block;text-decoration:none;color:var(--navy)}
.video .thumb{position:relative;aspect-ratio:16/10;border-radius:1rem;overflow:hidden;background:var(--navy)}
.video .thumb img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.16,1,.3,1)}
.video:hover .thumb img{transform:scale(1.05)}
.video .play{position:absolute;left:1rem;bottom:1rem;width:3rem;height:3rem;border-radius:50%;background:var(--coral);display:grid;place-items:center}
.video .play svg{width:1rem;height:1rem;margin-left:3px}
.video p{margin-top:.8rem;font-weight:800;line-height:1.3}
.video p span{display:block;font-weight:600;color:var(--grey2)}

/* ---------- Facts (pinned story) ---------- */
.facts{background:var(--navy);color:var(--cream);position:relative}
.facts-inner{padding:clamp(5rem,10vw,8rem) var(--pad)}
.facts-head{margin-bottom:3rem}
.fact{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:1.5rem 4rem;align-items:end;padding:3rem 0;border-top:1px solid rgba(237,232,218,.18)}
.fact .fact-big{font-weight:950;letter-spacing:-.045em;line-height:.9;font-size:clamp(3.4rem,10vw,10rem);color:var(--cream)}
.fact .fact-big.word{font-size:clamp(2.8rem,7vw,7rem);letter-spacing:-.035em}
.fact .fact-big em{font-style:normal;color:var(--coral)}
.fact p{font-size:clamp(1.15rem,1.6vw,1.45rem);line-height:1.5;max-width:30em}
.fact .src{display:block;margin-top:1rem;font-size:.95rem;opacity:.7}
.rail{display:none}
/* pinned mode (desktop, motion OK) */
.facts.is-pinned .facts-inner{height:100vh;padding:0;display:grid;grid-template-rows:auto 1fr;align-content:center;padding-top:7rem;padding-bottom:4rem;padding-left:var(--pad);padding-right:var(--pad)}
.facts.is-pinned .facts-stage{position:relative;height:100%}
.facts.is-pinned .fact{position:absolute;inset:auto 0 0 0;border-top:0;padding:0}
.facts.is-pinned .rail{display:block;position:absolute;left:calc(var(--pad) * -.55);top:0;bottom:0;width:3px;background:rgba(237,232,218,.15);border-radius:3px}
.facts.is-pinned .rail i{position:absolute;inset:0;background:var(--mint);transform-origin:top;transform:scaleY(.25);border-radius:3px}
.facts-count{font-weight:800;font-size:1rem;opacity:.75;margin-top:.5rem}

/* ---------- Who we are ---------- */
.who{padding:clamp(5rem,12vw,10rem) 0;background:var(--white)}
.who-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(2.5rem,6vw,7rem);align-items:center}
.who-photos{position:relative;aspect-ratio:1/1.05}
.who-photos figure{position:absolute;margin:0;overflow:hidden;border-radius:1.4rem;background:var(--soft)}
.who-photos figure img{width:100%;height:100%;object-fit:cover}
.who-photos .p1{inset:0 18% 22% 0}
.who-photos .p2{inset:45% 0 0 35%;border:.6rem solid var(--white)}
.who-copy .h2{margin-bottom:1.75rem;max-width:14ch}
.who-copy p{color:var(--grey2);margin-bottom:1.25rem;max-width:36em}
.who-copy p.lede{color:var(--navy)}
.funders{display:flex;flex-wrap:wrap;align-items:center;gap:2rem;margin:2.5rem 0;padding-top:2rem;border-top:1px solid var(--line)}
.funders span{font-size:.95rem;font-weight:700;color:var(--grey2);width:100%}
.funders img{height:3.2rem;width:auto}

/* ---------- Mission + stages ---------- */
.mission{background:var(--soft);padding:clamp(5rem,12vw,10rem) 0;overflow:hidden}
.mission-head{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:2rem 4rem;align-items:end;margin-bottom:clamp(3rem,7vw,6rem)}
.mission-head p{color:var(--navy)}
.stages{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.5rem,3vw,3rem)}
.furrow{position:absolute;left:0;right:0;top:calc(var(--stage-img, 16rem) - .25rem - 20px);height:40px;width:100%;overflow:visible;pointer-events:none}
.furrow path{fill:none;stroke:var(--coral);stroke-width:3;stroke-linecap:round}
.stage{position:relative}
.stage figure{margin:0 0 3.5rem;height:var(--stage-img,16rem);border-radius:1.2rem;overflow:hidden;background:var(--navy)}
.stage:nth-child(3) figure{height:calc(var(--stage-img,16rem) * .82);margin-top:calc(var(--stage-img,16rem) * .18)}
.stage figure img{width:100%;height:100%;object-fit:cover}
.stage-n{position:relative;z-index:1;width:2.6rem;height:2.6rem;border-radius:50%;background:var(--navy);color:var(--cream);display:grid;place-items:center;font-weight:900;margin:-5.05rem 0 1.4rem}
.stage h3{margin-bottom:.6rem}
.stage p{color:var(--grey2);max-width:28em}
.mission-close{margin-top:clamp(3.5rem,8vw,6rem);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:2rem 4rem}
.mission-close p{font-size:clamp(1.2rem,1.8vw,1.6rem);line-height:1.5;font-weight:650;color:var(--navy);max-width:38em}

/* ---------- Partners ---------- */
.partners{background:var(--white);padding:clamp(5rem,12vw,10rem) 0}
.partners-head{display:flex;justify-content:space-between;align-items:end;gap:2rem;flex-wrap:wrap;margin-bottom:3rem}
.plist{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.plist li{border-bottom:1px solid var(--line)}
.prow{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) auto;gap:1rem 3rem;align-items:center;padding:clamp(1.6rem,3vw,2.6rem) 0;text-decoration:none;color:var(--navy);position:relative}
.prow::before{content:"";position:absolute;inset:0 calc(var(--pad) * -1);background:var(--cream);transform:scaleY(0);transform-origin:bottom;transition:transform .6s cubic-bezier(.16,1,.3,1);z-index:0}
.prow:hover::before,.prow:focus-visible::before{transform:scaleY(1)}
.prow > *{position:relative;z-index:1}
.prow h3{font-size:clamp(1.7rem,3.4vw,3rem);font-weight:850;letter-spacing:-.025em;line-height:1.05}
.prow p{color:var(--grey2);font-size:1.05rem}
.prow .arrow{width:3.5rem;height:3.5rem;border-radius:50%;border:2px solid var(--navy);display:grid;place-items:center;transition:background-color .4s,border-color .4s}
.prow:hover .arrow{background:var(--coral);border-color:var(--coral)}
.prow .arrow svg{width:1.2rem;height:1.2rem}

/* ---------- Impact (horizontal) ---------- */
.impact{background:var(--navy);color:var(--cream);overflow:hidden}
.impact-inner{padding:clamp(5rem,10vw,8rem) 0}
.impact-head{display:flex;justify-content:space-between;align-items:end;gap:2rem;flex-wrap:wrap;margin-bottom:3rem}
.impact-head p{max-width:26em;opacity:.9}
.track{display:flex;gap:clamp(1rem,2vw,1.75rem);padding:0 var(--pad);overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.track::-webkit-scrollbar{display:none}
.shot{flex:none;width:min(78vw,26rem);margin:0;scroll-snap-align:start}
.shot:nth-child(3n+2){width:min(78vw,34rem)}
.shot .ph{overflow:hidden;border-radius:1.2rem;aspect-ratio:4/5;background:var(--navy-deep)}
.shot:nth-child(3n+2) .ph{aspect-ratio:4/3.4}
.shot img{width:100%;height:100%;object-fit:cover;transform:scale(1.12)}
.shot figcaption{margin-top:.9rem;display:flex;justify-content:space-between;gap:1rem;font-weight:800}
.shot figcaption span{opacity:.7;font-weight:600}
.impact.is-pinned .impact-inner{height:100vh;display:flex;flex-direction:column;justify-content:center;padding:6rem 0 3rem}
.impact.is-pinned .track{overflow:visible;scroll-snap-type:none;width:max-content}
.impact.is-pinned .impact-head{margin-bottom:2.5rem}
.impact.is-pinned .shot .ph{height:52vh;aspect-ratio:auto}
.impact.is-pinned .shot{width:auto}
.impact.is-pinned .shot .ph{width:calc(52vh * .8)}
.impact.is-pinned .shot:nth-child(3n+2) .ph{width:calc(52vh * 1.25)}
.impact .end-card{flex:none;width:min(78vw,24rem);display:flex;flex-direction:column;justify-content:center;gap:1.5rem;padding:2rem;border:1px solid rgba(237,232,218,.2);border-radius:1.2rem;scroll-snap-align:start}
.impact.is-pinned .end-card{height:52vh}
.end-card h3{font-size:clamp(1.6rem,2.4vw,2.2rem);font-weight:850;letter-spacing:-.02em;line-height:1.1}

/* ---------- Voices ---------- */
.voices{background:var(--cream);padding:clamp(5rem,12vw,10rem) 0}
.voices .h2{margin-bottom:clamp(3rem,6vw,5rem);max-width:13ch}
.quotes{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(2rem,4vw,3.5rem) 2rem}
.q{margin:0}
.q blockquote{margin:0;font-weight:750;letter-spacing:-.015em;line-height:1.2;font-size:clamp(1.35rem,2.3vw,2rem)}
.q blockquote::before{content:"\201C";display:block;color:var(--coral);font-weight:950;font-size:4rem;line-height:.6;margin-bottom:.6rem}
.q figcaption{display:flex;align-items:center;gap:.75rem;margin-top:1.2rem;font-weight:700;color:var(--grey2);font-size:1rem}
.q figcaption img{width:2.5rem;height:2.5rem;border-radius:50%;object-fit:contain;padding:.45rem;background:var(--white)}
.q:nth-child(1){grid-column:1 / span 7}
.q:nth-child(1) blockquote{font-size:clamp(1.8rem,3.6vw,3.2rem)}
.q:nth-child(2){grid-column:9 / span 4;align-self:end}
.q:nth-child(3){grid-column:2 / span 5}
.q:nth-child(4){grid-column:7 / span 6}

/* ---------- Footer / Reach out ---------- */
.foot{background:var(--navy);color:var(--cream);padding:clamp(5rem,12vw,9rem) 0 2.5rem;position:relative;overflow:hidden}
.foot-cta{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:2rem 4rem;align-items:end;padding-bottom:clamp(4rem,8vw,7rem);border-bottom:1px solid rgba(237,232,218,.18)}
.foot-cta .display{font-size:clamp(3rem,10vw,10rem)}
.foot-cta p{margin-bottom:1.75rem;font-size:1.2rem}
.foot-grid{display:grid;grid-template-columns:1.1fr 1fr 1fr 1.2fr;gap:2.5rem;padding:3.5rem 0}
.foot h3{font-size:1rem;font-weight:800;color:var(--coral);margin-bottom:1rem}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}
.foot a{text-decoration:none}
.foot a:hover{text-decoration:underline;text-decoration-color:var(--coral);text-underline-offset:4px}
.foot address{font-style:normal;line-height:1.6}
.event-card{display:block;background:rgba(237,232,218,.08);border:1px solid rgba(237,232,218,.15);border-radius:1rem;overflow:hidden}
.event-card img{width:100%;aspect-ratio:16/8;object-fit:cover}
.event-card div{padding:1rem 1.1rem 1.2rem}
.event-card strong{display:block;font-weight:800;line-height:1.3}
.event-card span{font-size:.95rem;opacity:.8}
.socials{display:flex;gap:.6rem;margin-top:1.25rem}
.socials a{width:2.9rem;height:2.9rem;border-radius:50%;border:1.5px solid rgba(237,232,218,.35);display:grid;place-items:center}
.socials a:hover{background:var(--coral);border-color:var(--coral);color:var(--navy)}
.socials svg{width:1.1rem;height:1.1rem}
.foot-base{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-size:.95rem;opacity:.75;padding-top:2rem;border-top:1px solid rgba(237,232,218,.18)}

/* ---------- Responsive: simplified mobile ---------- */
@media (max-width:1100px){
  .nav-links{display:none}
  .menu-btn{display:inline-flex;align-items:center}
  .nav .btn{display:none}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:900px){
  body{font-size:1.0625rem}
  .hero-grid,.bt-grid,.who-grid,.mission-head,.mission-close,.foot-cta,.fact{grid-template-columns:1fr}
  .hero{align-items:flex-end}
  .hero .display{font-size:clamp(3rem,15vw,5.5rem)}
  .scroll-cue{display:none}
  .hero-reel{max-width:none}
  .videos{grid-template-columns:1fr;gap:1.75rem}
  .who-photos{aspect-ratio:1/1.1}
  .stages{grid-template-columns:1fr;gap:3rem}
  .furrow{display:none}
  .stage figure,.stage:nth-child(3) figure{height:14rem;margin:0 0 1.25rem}
  .stage-n{margin:0 0 1rem}
  .prow{grid-template-columns:1fr auto}
  .prow p{grid-column:1 / -1;grid-row:2}
  .quotes{grid-template-columns:1fr}
  .q:nth-child(n){grid-column:auto}
  .foot-grid{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}
  .shot img{transform:none}
  .bt-media .main img{height:100%}
}

/* ---------- Sub-pages: shared hero ---------- */
.page-hero{position:relative;background:var(--navy);color:var(--cream);overflow:hidden;padding:clamp(9rem,20vh,12rem) 0 clamp(3.5rem,8vw,6rem)}
.page-hero .display{font-size:clamp(3rem,8vw,8rem);max-width:12ch;margin-bottom:1.75rem}
.page-hero .lede{color:var(--cream);opacity:.92}
.page-hero-inner{position:relative;z-index:1}
.btn--outline{--bg:transparent;--fg:var(--navy);box-shadow:inset 0 0 0 2px var(--navy)}
.btn--outline::after{background:var(--navy)}
.btn--outline:hover{color:var(--cream)}
.text-link{font-weight:800;color:var(--navy);text-decoration-color:var(--coral);text-decoration-thickness:3px;text-underline-offset:5px}
.text-link:hover{color:var(--coral)}

/* ---------- FAQ ---------- */
.faq{background:var(--cream);padding:clamp(4rem,9vw,8rem) 0}
.faq-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:clamp(2.5rem,6vw,6rem);align-items:start}
.faq-aside{position:sticky;top:7rem;display:grid;gap:1.1rem;background:var(--white);border-radius:1.5rem;padding:2rem}
.faq-aside p{color:var(--grey2)}
.faq-aside .hero-ctas{margin-top:.5rem}
.faq-list{border-top:1px solid rgba(47,65,96,.25)}
.faq-item{border-bottom:1px solid rgba(47,65,96,.25)}
.faq-item summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1.5rem;padding:clamp(1.4rem,2.6vw,2.2rem) 0;cursor:pointer;font-weight:850;letter-spacing:-.02em;line-height:1.1;font-size:clamp(1.5rem,3vw,2.5rem)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary:hover span{color:var(--coral)}
.faq-item summary span{transition:color .3s}
.faq-item summary i{flex:none;position:relative;width:3rem;height:3rem;border-radius:50%;border:2px solid var(--navy);transition:background-color .4s,border-color .4s,transform .5s cubic-bezier(.16,1,.3,1)}
.faq-item summary i::before,.faq-item summary i::after{content:"";position:absolute;left:50%;top:50%;width:1rem;height:2px;background:var(--navy);transform:translate(-50%,-50%);transition:transform .5s cubic-bezier(.16,1,.3,1),background-color .3s}
.faq-item summary i::after{transform:translate(-50%,-50%) rotate(90deg)}
.faq-item[open] summary i{background:var(--coral);border-color:var(--coral);transform:rotate(180deg)}
.faq-item[open] summary i::after{transform:translate(-50%,-50%) rotate(0)}
.faq-a{padding:0 0 clamp(1.6rem,3vw,2.4rem);max-width:40em;color:var(--grey2)}
.faq-a p+p,.faq-a ul+p{margin-top:1rem}
.faq-a ul{margin:0;padding:0;list-style:none;display:grid;gap:1rem}
.faq-a li{padding-left:1.5rem;position:relative}
.faq-a li::before{content:"";position:absolute;left:0;top:.7em;width:.7rem;height:3px;border-radius:3px;background:var(--coral)}
.faq-a strong{color:var(--navy)}

/* ---------- Gallery ---------- */
.gallery{background:var(--white);padding:clamp(3rem,7vw,6rem) 0 clamp(5rem,10vw,8rem)}
.g-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-flow:dense;gap:clamp(.6rem,1.4vw,1.1rem)}
.g-item{aspect-ratio:4/5;border-radius:1.1rem;overflow:hidden;background:var(--soft)}
.g-item:nth-child(7n+2){grid-column:span 2;aspect-ratio:auto}
.g-item button{display:block;width:100%;height:100%;padding:0;border:0;background:none;cursor:pointer}
.g-item img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.16,1,.3,1)}
.g-item:hover img,.g-item button:focus-visible img{transform:scale(1.06)}
.gallery-cta{margin-top:clamp(4rem,8vw,7rem);display:flex;justify-content:space-between;align-items:end;gap:2rem;flex-wrap:wrap}
.gallery-cta .h2{max-width:14ch}
.lightbox{border:0;padding:0;width:100vw;height:100vh;height:100dvh;max-width:none;max-height:none;background:rgba(36,51,80,.97);color:var(--cream)}
.lightbox[open]{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem;padding:4.5rem 1rem 3.5rem}
.lightbox::backdrop{background:rgba(36,51,80,.97)}
.lightbox,.lightbox *{cursor:auto!important}
.lightbox button{cursor:pointer!important}
.lightbox img{max-width:100%;max-height:100%;width:auto;height:auto;justify-self:center;border-radius:.8rem;object-fit:contain;min-height:0}
.lb-nav,.lb-close{width:3.5rem;height:3.5rem;border-radius:50%;border:1.5px solid rgba(237,232,218,.4);background:transparent;color:var(--cream);display:grid;place-items:center;font-size:2rem;line-height:1;padding:0;transition:background-color .3s,color .3s}
.lb-nav:hover,.lb-close:hover{background:var(--coral);border-color:var(--coral);color:var(--navy)}
.lb-nav svg{width:1.2rem;height:1.2rem}
.lb-close{position:absolute;right:1rem;top:1rem}
.lb-count{position:absolute;left:0;right:0;bottom:1rem;text-align:center;font-weight:800;opacity:.75}

@media (max-width:1100px){.g-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:900px){
  .faq-grid{grid-template-columns:1fr}
  .faq-aside{position:static;order:2}
  .g-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lightbox[open]{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;padding:4.5rem .75rem 5.5rem}
  .lb-nav{position:absolute;bottom:.75rem}
  .lb-prev{left:calc(50% - 4.5rem)}.lb-next{right:calc(50% - 4.5rem)}
  .lb-count{display:none}
}

/* ---------- Contact ---------- */
.contact{background:var(--cream);padding:clamp(4rem,9vw,8rem) 0}
.contact-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:clamp(2rem,5vw,5rem);align-items:start}
.cform{background:var(--white);border-radius:1.5rem;padding:clamp(1.5rem,4vw,3rem);display:grid;gap:1.4rem}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}
.field{display:grid;gap:.45rem}
.field label{font-weight:800;font-size:1rem}
.field label span{color:var(--coral)}
.field input,.field textarea{font:inherit;color:var(--navy);background:var(--soft);border:2px solid transparent;border-radius:.9rem;padding:.9rem 1.1rem;width:100%;transition:border-color .3s,background-color .3s}
.field textarea{resize:vertical;min-height:9rem}
.field input:hover,.field textarea:hover{border-color:var(--line)}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--navy);background:var(--white)}
.field [aria-invalid=true]{border-color:var(--coral);background:#fff5f3}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.cform .btn{justify-self:start}
.cform .btn:disabled{opacity:.6;pointer-events:none}
.form-status{min-height:1.6em;font-weight:700}
.form-status[data-kind=error]{color:#c2361f}
.form-status[data-kind=ok]{color:#0a7f6f}
.cinfo{display:grid;gap:1rem}
.ccard{background:var(--navy);color:var(--cream);border-radius:1.2rem;padding:1.5rem 1.75rem;display:grid;gap:.5rem;justify-items:start}
.ccard h3{font-size:1rem;font-weight:800;color:var(--coral)}
.ccard a{text-decoration:none}
.ccard .cbig{font-weight:850;letter-spacing:-.02em;font-size:clamp(1.5rem,2.6vw,2.1rem);line-height:1.15;overflow-wrap:anywhere;background:linear-gradient(var(--coral),var(--coral)) 0 100%/0 3px no-repeat;transition:background-size .5s cubic-bezier(.16,1,.3,1)}
.ccard .cbig:hover{background-size:100% 3px}
.ccard address{font-style:normal;line-height:1.6}
.ccard .text-link{color:var(--cream)}
.ccard .text-link:hover{color:var(--coral)}
.ccard .socials{margin-top:.25rem}
@media (max-width:900px){
  .contact-grid{grid-template-columns:1fr}
}
@media (max-width:560px){.frow{grid-template-columns:1fr}}

/* ---------- Breakthrough page ---------- */
.bundle{background:var(--cream);padding:clamp(4rem,9vw,8rem) 0}
.bundle-media{position:relative;display:block;border-radius:1.5rem;overflow:hidden;background:var(--navy)}
.bundle-media img{width:100%;height:auto;transition:transform 1s cubic-bezier(.16,1,.3,1)}
.bundle-media:hover img{transform:scale(1.04)}
.bundle-media .play{position:absolute;left:1.25rem;bottom:1.25rem;width:3.5rem;height:3.5rem;border-radius:50%;background:var(--coral);display:grid;place-items:center}
.bundle-media .play svg{width:1.1rem;height:1.1rem;margin-left:3px}
.bundle .bt-copy .hero-ctas{align-items:center}
.code-chip{font-weight:700;padding:.55rem 1.1rem;border-radius:999px;background:var(--white)}
.code-chip strong{font-weight:900;color:var(--coral);margin-left:.3rem}
.stat{background:var(--navy);color:var(--cream)}
.stat-inner{padding:clamp(4rem,8vw,7rem) var(--pad)}
.stat .fact{border-top:0;padding:0;align-items:center}
.steps-sec{background:var(--white);padding:clamp(5rem,12vw,10rem) 0}
.steps-head{margin-bottom:clamp(2.5rem,6vw,4.5rem)}
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(1rem,2vw,1.75rem)}
.step{background:var(--soft);border-radius:1.3rem;padding:1.75rem;display:grid;gap:1.25rem;align-content:start}
.step-n{width:2.8rem;height:2.8rem;border-radius:50%;background:var(--navy);color:var(--cream);display:grid;place-items:center;font-weight:900}
.step p{font-weight:650;line-height:1.45}
.note{margin-top:clamp(2rem,4vw,3rem);max-width:44em;color:var(--grey2)}
.experience{background:var(--navy);color:var(--cream);padding:clamp(5rem,12vw,9rem) 0}
.exp-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2.5rem,6vw,6rem);align-items:center}
.exp-grid .h2{margin-bottom:1.5rem}
.exp-grid .lede{opacity:.9}
.modules{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.7rem}
.modules li{font-weight:850;font-size:clamp(1.1rem,1.8vw,1.5rem);padding:.7rem 1.4rem;border-radius:999px;border:1.5px solid rgba(237,232,218,.35);transition:background-color .4s,color .4s,border-color .4s}
.modules li:hover{background:var(--coral);border-color:var(--coral);color:var(--navy)}
.pastors{background:var(--cream);padding:clamp(5rem,12vw,10rem) 0}
.pastors .partners-head .lede{max-width:26em}
.pgrid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(.8rem,1.6vw,1.4rem)}
.pcard img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:1.1rem;background:var(--soft)}
.pcard h3{margin-top:.8rem;font-size:1.05rem;font-weight:800;letter-spacing:-.01em;line-height:1.25}
.bt-cta{background:var(--white);padding:clamp(5rem,12vw,9rem) 0}
.bt-cta-inner{display:grid;gap:2rem;justify-items:start}
.bt-cta .h2{max-width:14ch}
.bt-cta .hero-ctas{align-items:center}
.bt-cta .code-chip{background:var(--cream)}
.cta-logos{display:flex;flex-wrap:wrap;align-items:center;gap:2.5rem;margin-top:1rem;padding-top:2rem;border-top:1px solid var(--line);width:100%}
.cta-logos img{height:3.6rem;width:auto}
@media (max-width:1100px){.steps{grid-template-columns:repeat(2,minmax(0,1fr))}.pgrid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:900px){.exp-grid{grid-template-columns:1fr}.pgrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:560px){.steps{grid-template-columns:1fr}.pgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---------- Partners page ---------- */
.p-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:clamp(2rem,6vw,6rem);align-items:start}
.p-intro .lede{max-width:none}
.churches{background:var(--white);padding:clamp(5rem,12vw,9rem) 0}
.church-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,2vw,1.5rem)}
.church{background:var(--soft);border-radius:1.3rem;padding:clamp(1.5rem,2.5vw,2rem);display:flex;flex-direction:column;gap:.9rem;transition:background-color .5s,transform .5s cubic-bezier(.16,1,.3,1)}
.church:hover{background:var(--cream);transform:translateY(-4px)}
.church h3{font-size:clamp(1.3rem,1.9vw,1.65rem);font-weight:850;letter-spacing:-.02em;line-height:1.15}
.church-desc{color:var(--grey2);font-size:1rem}
.church dl{margin:auto 0 0;display:grid;gap:.6rem;padding-top:1rem;border-top:1px solid var(--line)}
.church dt{font-size:.85rem;font-weight:800;color:var(--coral)}
.church dd{margin:0;font-weight:700;overflow-wrap:anywhere}
.church dd a{text-decoration-color:var(--coral);text-decoration-thickness:2px;text-underline-offset:4px}
.church dd a:hover{color:var(--coral)}
.involve .step h3{font-size:1.25rem;font-weight:850;letter-spacing:-.015em}
.involve .step p{font-weight:500;color:var(--grey2)}
@media (max-width:1100px){.church-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:900px){.p-intro{grid-template-columns:1fr}}
@media (max-width:640px){.church-grid{grid-template-columns:1fr}}

/* ---------- About + Staff pages ---------- */
.about-p{color:var(--grey2);margin-bottom:1.25rem;max-width:36em}
.about-mission{background:var(--navy);color:var(--cream);border-radius:1.5rem;padding:clamp(1.75rem,4vw,3.25rem)}
.about-quote{font-weight:750;letter-spacing:-.015em;line-height:1.25;font-size:clamp(1.4rem,2.4vw,2.1rem)}
.about-churches{margin:1.75rem 0 2.25rem}
.about-churches li{background:var(--cream)}
.steps--5{grid-template-columns:repeat(5,minmax(0,1fr))}
.about-model-lede{margin-top:1.25rem;color:var(--grey2)}
.staff-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,2vw,1.5rem)}
.person{display:flex;flex-direction:column;gap:.5rem}
.person .ph{aspect-ratio:4/5;border-radius:1.2rem;overflow:hidden;background:var(--navy);display:grid;place-items:center;margin-bottom:.6rem}
.person .ph img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.16,1,.3,1)}
.person:hover .ph img{transform:scale(1.04)}
.person .ph span{font-weight:900;font-size:clamp(3rem,7vw,5rem);color:var(--coral);letter-spacing:-.04em}
.person h3{font-size:clamp(1.3rem,1.9vw,1.65rem);font-weight:850;letter-spacing:-.02em;line-height:1.15}
.person .role{font-weight:800;color:var(--coral)}
.person .bio{color:var(--grey2);font-size:1rem}
.person .contact-line{display:grid;gap:.15rem;font-weight:700;margin-top:.3rem}
.person .contact-line a{text-decoration-color:var(--coral);text-decoration-thickness:2px;text-underline-offset:4px}
.person .contact-line a:hover{color:var(--coral)}
.staff-empty{font-size:1.25rem;max-width:34em}
.staff-empty[hidden]{display:none}
@media (max-width:1100px){.steps--5{grid-template-columns:repeat(2,minmax(0,1fr))}.staff-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.steps--5,.staff-grid{grid-template-columns:1fr}}

/* ---------- Know the facts: photo per fact ---------- */
.fact-side{display:grid;gap:.6rem;justify-items:start}
.fact-photo{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:1.2rem;background:var(--navy-deep)}
.facts.is-pinned .fact-side{justify-items:end}
.facts.is-pinned .fact-photo{width:min(100%,calc(44vh * 16 / 9));height:auto}
.facts.is-pinned .facts-count{justify-self:start}
