/* ============================================================
   WisdomWorks Ministries — shared styles
   Built on the Wisdom Works (Claude) Design System.
   Tokens + type ported from design-system/project/colors_and_type.css;
   components ported from design-system/project/ui_kits/marketing-site/kit.css.
   Visual decisions = design system. Copy + structure = this repo.
   ============================================================ */

/* ---------- FONT FACES (self-hosted licensed fonts) ---------- */
/* Montserrat — display / headers / pull quotes */
@font-face{font-family:"Montserrat";src:url("../assets/fonts/Montserrat-Light.ttf") format("truetype");font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:"Montserrat";src:url("../assets/fonts/Montserrat-Regular.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Montserrat";src:url("../assets/fonts/Montserrat-Medium.ttf") format("truetype");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Montserrat";src:url("../assets/fonts/Montserrat-SemiBold.ttf") format("truetype");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Montserrat";src:url("../assets/fonts/Montserrat-Bold.ttf") format("truetype");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Montserrat";src:url("../assets/fonts/Montserrat-ExtraBold.ttf") format("truetype");font-weight:800;font-style:normal;font-display:swap}
@font-face{font-family:"Montserrat";src:url("../assets/fonts/Montserrat-ExtraBoldItalic.ttf") format("truetype");font-weight:800;font-style:italic;font-display:swap}
@font-face{font-family:"Montserrat";src:url("../assets/fonts/Montserrat-Black.ttf") format("truetype");font-weight:900;font-style:normal;font-display:swap}

/* Proxima Nova — body / callouts / eyebrows / attributions */
@font-face{font-family:"Proxima Nova";src:url("../assets/fonts/ProximaNova-Light.otf") format("opentype");font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:"Proxima Nova";src:url("../assets/fonts/ProximaNova-Regular.otf") format("opentype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Proxima Nova";src:url("../assets/fonts/ProximaNova-RegularItalic.otf") format("opentype");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Proxima Nova";src:url("../assets/fonts/ProximaNova-Semibold.otf") format("opentype");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Proxima Nova";src:url("../assets/fonts/ProximaNova-Bold.otf") format("opentype");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Proxima Nova";src:url("../assets/fonts/ProximaNova-Black.otf") format("opentype");font-weight:900;font-style:normal;font-display:swap}

:root{
  /* ---------- BRAND PALETTE ---------- */
  --soft-black:#050606;
  --cobalt:#3A4F99;
  --warm-red:#EA5A3D;
  --forest:#266347;
  --light-blue:#B9CBDB;
  --light-gray:#E4E4E3;
  --white:#FFFFFF;
  --cobalt-header:#34477A;   /* cobalt + 10% black for headers/legibility */

  /* sanctioned tints */
  --warm-red-30:#F7C7BC;
  --soft-black-60:#686969;
  --forest-75:#5C8A75;
  --light-blue-40:#E3EAF1;
  --cobalt-10:#EBEDF4;

  /* ---------- SEMANTIC ROLES ---------- */
  --fg1:var(--soft-black);
  --fg2:var(--soft-black-60);
  --fg-invert:var(--white);
  --bg1:var(--white);
  --bg2:var(--light-gray);
  --bg3:var(--light-blue);
  --brand:var(--cobalt);
  --accent:var(--warm-red);
  --ground:var(--forest);
  --line:#D2D2D1;
  --line-strong:var(--soft-black);

  /* ---------- TYPE ---------- */
  --font-display:"Montserrat",system-ui,sans-serif;
  --font-body:"Proxima Nova",system-ui,sans-serif;

  /* ---------- RADII ---------- */
  --r-sm:4px; --r-md:8px; --r-lg:16px; --r-pill:999px;

  /* ---------- SPACING (8pt base) ---------- */
  --sp-1:4px; --sp-2:8px; --sp-3:16px; --sp-4:24px;
  --sp-5:32px; --sp-6:48px; --sp-7:64px; --sp-8:96px;

  /* ---------- SHADOWS ---------- */
  --shadow-sm:0 1px 2px rgba(5,6,6,.06);
  --shadow-md:0 6px 20px rgba(5,6,6,.08);
  --shadow-lg:0 20px 48px rgba(5,6,6,.12);
}

/* ============================================================
   BASE
   ============================================================ */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--font-body);
  color:var(--fg1);
  background:var(--white);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none}

.wrap{max-width:1180px;margin:0 auto;padding:0 32px}
.section{padding:96px 0}
.section.gray{background:var(--light-gray)}
.section.blue{background:var(--light-blue)}
.section.dark{background:var(--soft-black);color:var(--fg-invert)}

/* ---------- type helpers ---------- */
.eyebrow{
  font-family:var(--font-body);font-weight:700;font-size:12px;
  text-transform:uppercase;letter-spacing:.14em;color:var(--accent);margin:0;
}
.eyebrow.cobalt{color:var(--brand)}
.eyebrow.on-dark{color:var(--light-blue)}

.section-head{max-width:680px;margin-bottom:52px}
.section-head h2{
  font-family:var(--font-display);font-weight:800;
  font-size:clamp(30px,3.4vw,40px);line-height:1.04;letter-spacing:-.01em;margin:12px 0 0;
}
.section-head p{
  font-family:var(--font-body);font-size:17px;line-height:1.55;
  color:var(--fg2);margin:16px 0 0;
}
.period,.accent-dot{color:var(--accent)}

/* ============================================================
   BRAND SHAPE ICONS (the four shapes, recolored via CSS mask)
   ============================================================ */
.ico{
  width:42px;height:42px;background:var(--cobalt);display:block;
  -webkit-mask:var(--shape) center/contain no-repeat;
  mask:var(--shape) center/contain no-repeat;
}
.ico-circle{--shape:url(../assets/brand/shape-circle-black.svg)}
.ico-d{--shape:url(../assets/brand/shape-pointed-circle-black.svg)}
.ico-rsq{--shape:url(../assets/brand/shape-quarter-circle-black.svg)}
.ico-sq{--shape:url(../assets/brand/shape-square-black.svg)}

/* totem stack (shapes top-to-bottom: circle → D → quarter → square) */
.stack{display:flex;flex-direction:column;align-items:center;gap:6px}
.stack .sh{width:20px;height:20px;background:var(--cobalt);display:block;
  -webkit-mask:var(--shape) center/contain no-repeat;mask:var(--shape) center/contain no-repeat}
.stack .s-circle{--shape:url(../assets/brand/shape-circle-black.svg)}
.stack .s-d{--shape:url(../assets/brand/shape-pointed-circle-black.svg)}
.stack .s-rsq{--shape:url(../assets/brand/shape-quarter-circle-black.svg)}
.stack .s-sq{--shape:url(../assets/brand/shape-square-black.svg)}

/* ============================================================
   BUTTONS (pill, from design system)
   ============================================================ */
.btn{
  font-family:var(--font-body);font-weight:700;font-size:13px;
  letter-spacing:.06em;text-transform:uppercase;padding:14px 28px;
  border-radius:var(--r-pill);transition:.18s ease;
  display:inline-flex;align-items:center;gap:8px;white-space:nowrap;border:none;cursor:pointer;
}
.btn:active{transform:scale(.98)}
.btn-primary{background:var(--cobalt);color:#fff}
.btn-primary:hover{background:var(--cobalt-header)}
.btn-accent{background:var(--warm-red);color:#fff}
.btn-accent:hover{filter:brightness(.94)}
.btn-outline{background:transparent;border:1.5px solid currentColor;color:var(--soft-black)}
.btn-outline:hover{background:var(--soft-black);color:#fff}
.btn-outline.on-dark{color:#fff;border-color:#fff}
.btn-outline.on-dark:hover{background:#fff;color:var(--soft-black)}
.btn-text{color:var(--brand);padding:14px 4px}
.btn-text:hover{color:var(--cobalt-header)}

/* ============================================================
   NAV
   ============================================================ */
.nav{
  position:sticky;top:0;z-index:50;background:rgba(255,255,255,.82);
  -webkit-backdrop-filter:saturate(180%) blur(14px);
  backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid var(--line);
}
.nav-in{display:flex;align-items:center;justify-content:space-between;height:74px;gap:24px}
.brand{display:flex;align-items:center;gap:12px}
.brand .word{height:22px;width:auto}
.nav-links{display:flex;align-items:center;gap:30px}
.nav-link{
  font-family:var(--font-body);font-weight:600;font-size:14px;color:var(--fg1);
  position:relative;padding:6px 0;
}
.nav-link:hover{color:var(--brand)}
.nav-link.active{color:var(--brand)}
.nav-link.active::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--brand)}
.nav-cta{display:flex;align-items:center;gap:8px}
.nav-cta .btn{padding:11px 22px}
.hamburger{display:none;font-size:22px;color:var(--soft-black);padding:6px 10px}

/* mobile drawer */
.mobile-menu{display:none}
@media(max-width:880px){
  .nav-links{display:none}
  .nav-cta .btn-primary{display:none}
  .hamburger{display:inline-flex}
  .mobile-menu{
    display:block;position:fixed;inset:74px 0 auto 0;background:#fff;
    border-bottom:1px solid var(--line);box-shadow:var(--shadow-md);
    transform:translateY(-120%);transition:transform .22s ease;z-index:45;
  }
  .mobile-menu.open{transform:none}
  .mobile-menu a{
    display:block;padding:16px 32px;font-weight:600;font-size:16px;
    border-bottom:1px solid var(--line);color:var(--fg1);
  }
  .mobile-menu a.active{color:var(--brand)}
}

/* ============================================================
   HERO (home)
   ============================================================ */
.hero{padding:96px 0 88px;background:var(--white);position:relative;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.hero h1{
  font-family:var(--font-display);font-weight:800;
  font-size:clamp(40px,5.4vw,68px);line-height:1.0;letter-spacing:-.02em;margin:18px 0 0;
}
.hero h1 .gap{color:var(--accent)}
.hero-lead{
  font-family:var(--font-body);font-weight:600;font-size:20px;line-height:1.5;
  color:var(--soft-black-60);margin:22px 0 0;max-width:38ch;
}
.hero-actions{display:flex;gap:14px;margin-top:34px;flex-wrap:wrap}

/* shape-masked photo block on the right (placeholder fills until real photos) */
.hero-photo{position:relative;height:440px;display:flex;align-items:center;justify-content:center}
.shape-photo{background:linear-gradient(155deg,var(--forest-75) 0%,var(--forest) 70%);position:relative}
.shape-photo .tag{position:absolute;left:18px;bottom:16px;color:rgba(255,255,255,.85);font-size:11px;font-weight:600;letter-spacing:.04em}
.sp-circle{width:300px;height:300px;border-radius:50%}
.sp-rsq{position:absolute;width:180px;height:180px;border-radius:34px;right:0;bottom:6px;background:linear-gradient(155deg,#5b73c4,var(--cobalt))}

/* ---------- generic sub-page hero ---------- */
.page-hero{padding:84px 0 24px;background:var(--white)}
.page-hero .stack{align-items:flex-start;flex-direction:row;gap:8px;margin-bottom:28px}
.page-hero h1{
  font-family:var(--font-display);font-weight:800;
  font-size:clamp(34px,4.6vw,56px);line-height:1.02;letter-spacing:-.02em;
  max-width:18ch;margin:14px 0 0;
}
.page-hero h1 .accent{color:var(--warm-red)}
.page-hero p.lede{font-family:var(--font-body);font-weight:600;font-size:20px;line-height:1.5;color:var(--soft-black-60);max-width:52ch;margin:22px 0 0}

/* ============================================================
   PROBLEM (dark moment)
   ============================================================ */
.problem{background:var(--soft-black);color:var(--fg-invert)}
.problem h2{font-family:var(--font-display);font-weight:800;font-size:clamp(28px,4vw,44px);line-height:1.05;max-width:20ch;color:#fff;margin:14px 0 0}
.ineq{font-family:var(--font-display);font-weight:800;font-size:clamp(2rem,5vw,3.4rem);color:var(--warm-red);margin:40px 0 16px;letter-spacing:-.02em}
.problem p.body{max-width:54ch;color:rgba(255,255,255,.78);font-size:17px;line-height:1.6}
.checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:48px}
.check{border:1px solid rgba(255,255,255,.16);border-radius:var(--r-md);padding:22px;background:rgba(255,255,255,.03)}
.check b{display:block;font-family:var(--font-display);font-weight:800;font-size:1.05rem;color:var(--light-blue);margin-bottom:4px}
.check span{font-size:.96rem;color:rgba(255,255,255,.7)}
.still{margin-top:46px;font-family:var(--font-display);font-weight:700;font-size:clamp(1.4rem,3vw,1.9rem);color:#fff;max-width:24ch}

/* ============================================================
   GAP SPLIT
   ============================================================ */
.gap-split{background:var(--light-gray)}
.gap-split h2{font-family:var(--font-display);font-weight:800;font-size:clamp(28px,3.6vw,40px);line-height:1.04;max-width:18ch;margin:12px 0 14px}
.gap-split .sub{color:var(--fg2);font-size:17px;max-width:50ch;margin-bottom:48px}
.cols{display:grid;grid-template-columns:1fr auto 1fr;gap:24px;align-items:stretch}
.col{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:32px;box-shadow:var(--shadow-sm)}
.col h3{font-family:var(--font-display);font-weight:800;font-size:1.2rem;margin-bottom:18px}
.col.info h3{color:var(--soft-black-60)}
.col.form h3{color:var(--forest)}
.col ul{list-style:none}
.col li{padding:10px 0;border-bottom:1px solid var(--line);font-size:15px}
.col li:last-child{border:none}
.divider{display:flex;align-items:center;justify-content:center}
.divider .gapword{
  writing-mode:vertical-rl;font-family:var(--font-display);font-weight:800;
  color:var(--warm-red);letter-spacing:.1em;font-size:1rem;text-transform:uppercase;
}
@media(max-width:760px){.cols{grid-template-columns:1fr}.divider .gapword{writing-mode:horizontal-tb;margin:6px 0}}

/* ============================================================
   FRAMEWORK / OFFER CARDS
   ============================================================ */
.cards-3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.feature{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:30px;box-shadow:var(--shadow-md);transition:.2s ease}
.feature:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.feature .ico{margin-bottom:20px}
.feature .num{font-family:var(--font-body);font-weight:700;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--soft-black-60)}
.feature h3{font-family:var(--font-display);font-weight:800;font-size:21px;margin:8px 0 10px}
.feature p{font-family:var(--font-body);font-size:14.5px;line-height:1.55;color:var(--soft-black-60);margin:0}

/* ============================================================
   7 MARKS (cobalt field)
   ============================================================ */
.marks{background:var(--cobalt);color:#fff}
.marks .section-head h2{color:#fff}
.mark-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.18);border-radius:var(--r-md);overflow:hidden}
.mark{background:var(--cobalt);padding:26px 24px}
.mark .ico{width:30px;height:30px;background:var(--light-blue);margin-bottom:16px}
.mark h4{font-family:var(--font-display);font-weight:800;font-size:1.05rem;margin-bottom:5px}
.mark span{color:var(--light-blue);font-size:.94rem}
.mark.cta{display:flex;align-items:center}
.mark.cta a{font-family:var(--font-display);font-weight:800;color:#fff;font-size:1.02rem}
.mark.cta a:hover{color:var(--light-blue)}

/* ============================================================
   PATH (process steps)
   ============================================================ */
.path .step-row{display:grid;grid-template-columns:120px 1fr;gap:28px;padding:34px 0;border-bottom:1px solid var(--line)}
.path .step-row:last-child{border:none}
.path .shapecol{display:flex;justify-content:flex-start;align-items:flex-start}
.path .lbl{font-family:var(--font-body);font-weight:700;text-transform:uppercase;letter-spacing:.16em;font-size:11px;color:var(--warm-red);margin-bottom:6px}
.path h3{font-family:var(--font-display);font-weight:800;font-size:1.4rem;margin-bottom:8px}
.path .step-row p{color:var(--fg2);max-width:60ch;font-size:16px}

/* ============================================================
   EVENTS (forest ground — Class 41 specimen)
   ============================================================ */
.events{background:var(--forest);color:#fff}
.events .section-head h2{color:#fff}
.events .section-head p{color:rgba(255,255,255,.82)}
.event-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px;margin-bottom:42px}
.event{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.2);border-radius:var(--r-md);padding:26px}
.event h4{font-family:var(--font-display);font-weight:800;font-size:1.15rem;margin-bottom:10px}
.event p{color:rgba(255,255,255,.82);font-size:.97rem;line-height:1.5}

/* ============================================================
   BOOKS (Class 41 specimen)
   ============================================================ */
.book-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px}
.book{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:26px;display:flex;flex-direction:column;box-shadow:var(--shadow-sm);transition:.2s ease}
.book:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.book .spine{height:6px;width:54px;border-radius:3px;background:var(--warm-red);margin-bottom:20px}
.book h4{font-family:var(--font-display);font-weight:800;font-size:1.12rem;margin-bottom:6px}
.book .byline{font-family:var(--font-body);font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--soft-black-60);margin-bottom:12px}
.book p{color:var(--fg2);font-size:.96rem;flex:1;margin-bottom:18px;line-height:1.5}
.book a.buy{font-family:var(--font-body);font-weight:700;color:var(--brand);font-size:.9rem;text-transform:uppercase;letter-spacing:.06em}
.book a.buy:hover{color:var(--warm-red)}
.book a.buy::after{content:" →"}

/* ============================================================
   GIVE (Class 36 specimen)
   ============================================================ */
.give{background:var(--light-blue)}
.give .grid{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center}
.give h2{font-family:var(--font-display);font-weight:800;font-size:clamp(28px,3.6vw,40px);line-height:1.04;max-width:16ch;margin:12px 0 16px}
.give p{color:#243042;font-size:17px;max-width:46ch;margin-bottom:28px;line-height:1.6}
.give-card{background:#fff;border-radius:var(--r-lg);padding:36px;box-shadow:var(--shadow-lg)}
.give-card h3{font-family:var(--font-display);font-weight:800;font-size:1.35rem;margin-bottom:8px}
.give-card .amounts{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}
.give-card .amt{flex:1;min-width:70px;text-align:center;border:1.5px solid rgba(58,79,153,.35);border-radius:var(--r-sm);padding:13px 0;font-family:var(--font-body);font-weight:700;color:var(--cobalt-header);transition:.15s}
.give-card .amt:hover{border-color:var(--cobalt);background:var(--cobalt-10)}
.give-card .btn{width:100%;justify-content:center}
.give-card small{display:block;margin-top:14px;color:var(--soft-black-60);font-size:.82rem;line-height:1.5}
@media(max-width:760px){.give .grid{grid-template-columns:1fr}}

/* impact strip */
.impact{background:var(--white)}
.impact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:28px}
.impact .item{border-top:3px solid var(--warm-red);padding-top:18px}
.impact .item h3{font-family:var(--font-display);font-weight:800;font-size:1.18rem;margin-bottom:8px;color:var(--cobalt-header)}
.impact .item p{color:var(--fg2);font-size:15px;line-height:1.55}

/* ============================================================
   CONTACT FORM (Class 41 specimen)
   ============================================================ */
.contact{background:var(--light-gray)}
.form-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:40px;box-shadow:var(--shadow-md)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form-field{display:flex;flex-direction:column;margin-bottom:18px}
.form-field.full{grid-column:1 / -1}
.form-field label{font-family:var(--font-body);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--soft-black-60);margin-bottom:8px}
.form-field .req{color:var(--warm-red)}
.form-field input,.form-field select,.form-field textarea{
  font-family:var(--font-body);font-size:15px;padding:13px 15px;border:1px solid var(--line);
  border-radius:var(--r-sm);background:#fff;color:var(--fg1);width:100%;transition:.15s;
}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:none;border-color:var(--cobalt);box-shadow:0 0 0 3px rgba(58,79,153,.12)}
.form-field textarea{resize:vertical;min-height:140px}
form .btn{margin-top:6px}
.form-note{color:var(--soft-black-60);font-size:.86rem;margin-top:14px}
@media(max-width:640px){.form-grid{grid-template-columns:1fr}}

/* ============================================================
   FINAL CTA — Wisdom Wheel (cobalt card, design-system CTA)
   ============================================================ */
.final{padding:96px 0}
.cta-card{
  background:var(--cobalt);color:#fff;border-radius:var(--r-lg);padding:64px;
  display:flex;align-items:center;justify-content:space-between;gap:40px;flex-wrap:wrap;
}
.cta-card .stack{align-items:flex-start;flex-direction:row;gap:8px;margin-bottom:20px}
.cta-card .stack .sh{background:rgba(255,255,255,.9)}
.cta-card h2{font-family:var(--font-display);font-weight:800;font-size:clamp(28px,3.4vw,40px);line-height:1.05;margin:0;max-width:18ch}
.cta-card h2 .period{color:var(--warm-red)}
.cta-card p{color:rgba(255,255,255,.85);max-width:44ch;margin:16px 0 0;font-size:16px;line-height:1.55}

/* pull-quote / dark statement (reusable) */
.quote-sec{background:var(--soft-black);color:#fff;padding:110px 0}
.quote-sec blockquote{font-family:var(--font-display);font-weight:700;font-size:clamp(28px,3.6vw,44px);line-height:1.06;margin:0;max-width:20ch;text-wrap:balance}
.quote-sec .accent{color:var(--warm-red)}
.quote-sec .attr{font-family:var(--font-body);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.28em;color:rgba(255,255,255,.6);margin-top:32px}

/* ============================================================
   FOOTER (bottom-aligned totem, per brand placement rule)
   ============================================================ */
.footer{background:var(--soft-black);color:rgba(255,255,255,.7);padding:72px 0 40px}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:32px;margin-bottom:56px}
.footer .word{height:24px;width:auto;margin-bottom:16px}
.footer .tagline{font-size:14px;line-height:1.6;max-width:34ch;margin:0;color:rgba(255,255,255,.7)}
.footer h5{font-family:var(--font-body);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.16em;color:rgba(255,255,255,.45);margin:0 0 16px}
.footer a.f-link{display:block;font-size:14px;color:rgba(255,255,255,.78);padding:5px 0}
.footer a.f-link:hover{color:#fff}
.footer-foot{display:flex;align-items:flex-end;justify-content:space-between;border-top:1px solid rgba(255,255,255,.14);padding-top:28px;gap:20px;flex-wrap:wrap}
.footer-foot .totem{height:64px;width:auto}
.footer-foot .copy{font-size:12px;color:rgba(255,255,255,.5);line-height:1.6}

/* ============================================================
   REVEAL ANIMATION
   ============================================================ */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  html{scroll-behavior:auto}
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:880px){
  .hero-grid{grid-template-columns:1fr;gap:32px}
  .hero-photo{height:300px}
  .cards-3,.stats,.footer-grid{grid-template-columns:1fr;gap:18px}
  .give .grid{grid-template-columns:1fr;gap:32px}
  .path .step-row{grid-template-columns:1fr;gap:14px}
  .cta-card{padding:40px}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){
  .wrap{padding:0 22px}
  .section{padding:64px 0}
  .form-card{padding:26px}
  .footer-grid{grid-template-columns:1fr}
}
