/* ==========================================================================
   Limitless Education — site styles
   Brand tokens carried over from the original site.
   ========================================================================== */

:root{
  --infinity:#382166;
  --beyond:#06114f;
  --leap:#ef6103;
  --light:#faf9f6;
  --warm-white:#f5f3ef;
  --gold:#df9e5c;
  --charcoal:#1a1a2e;

  --ink:var(--beyond);
  --ink-soft:#53566f;
  --rule:rgba(6,17,79,.12);

  --font-display:"DM Serif Display",Georgia,serif;
  --font-serif:"Crimson Pro",Georgia,serif;
  --font-sans:"Source Sans 3",system-ui,-apple-system,Segoe UI,sans-serif;

  --wrap:1200px;
  --gutter:clamp(20px,5vw,48px);
  --section:clamp(64px,9vw,112px);
  --radius:4px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--light);
  color:var(--ink);
  font-family:var(--font-serif);
  font-size:clamp(17px,1.05vw,19px);
  line-height:1.65;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit}

/* ---------- layout helpers ---------- */
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
.wrap--wide{max-width:none;padding-inline:clamp(20px,4.2vw,90px)}
.wrap--narrow{max-width:860px}
.section{padding-block:var(--section)}
.section--warm{background:var(--warm-white)}
.section--light{background:var(--light)}
.section--dark{background:var(--beyond);color:#fff}
.section--dark .lede,.section--dark p{color:rgba(255,255,255,.82)}

/* ---------- type ---------- */
h1,h2,h3{font-family:var(--font-display);font-weight:400;line-height:1.12;margin:0 0 .5em}
h1{font-size:clamp(38px,5.2vw,58px);letter-spacing:-.01em}
h2{font-size:clamp(30px,3.6vw,46px)}
h3{font-size:clamp(21px,1.9vw,26px);line-height:1.25}
p{margin:0 0 1.15em}
p:last-child{margin-bottom:0}
em{font-style:italic}

.eyebrow{
  font-family:var(--font-sans);
  font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--leap);margin:0 0 1.5rem;display:block;
}
.section--dark .eyebrow{color:var(--gold)}
.lede{font-size:clamp(19px,1.4vw,23px);line-height:1.55;color:var(--ink-soft);max-width:62ch}
.section--dark .lede{color:rgba(255,255,255,.82)}
.rule{border:0;border-top:1px solid var(--rule);margin:0}

/* ---------- buttons ---------- */
.btn{
  display:inline-block;font-family:var(--font-sans);font-size:13px;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;text-decoration:none;
  padding:15px 30px;border-radius:var(--radius);border:1px solid transparent;
  transition:background-color .18s ease,color .18s ease,border-color .18s ease;
}
.btn--primary{background:var(--leap);color:#fff}
.btn--primary:hover{background:#d15503}
.btn--ghost{border-color:currentColor;color:inherit;background:transparent}
.btn--ghost:hover{background:rgba(255,255,255,.1)}
.section--light .btn--ghost:hover,.section--warm .btn--ghost:hover{background:rgba(6,17,79,.06)}
.btn-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:2rem}

.arrow-link{
  font-family:var(--font-sans);font-size:12px;font-weight:600;letter-spacing:.12em;
  text-transform:uppercase;text-decoration:none;color:var(--leap);
  display:inline-flex;align-items:center;gap:.5em;
}
.arrow-link:hover{text-decoration:underline;text-underline-offset:4px}
.arrow-link[aria-disabled="true"]{color:var(--ink-soft);pointer-events:none}
.tag{
  font-family:var(--font-sans);font-size:11px;font-weight:600;letter-spacing:.12em;
  text-transform:uppercase;color:var(--ink-soft);border:1px solid var(--rule);
  padding:4px 10px;border-radius:999px;display:inline-block;
}

/* ---------- skip link ---------- */
.skip{
  position:absolute;left:-9999px;top:0;background:#fff;color:var(--beyond);
  padding:12px 20px;z-index:200;font-family:var(--font-sans);font-size:14px;
}
.skip:focus{left:12px;top:12px}
:focus-visible{outline:2px solid var(--leap);outline-offset:3px}

/* ---------- header ---------- */
.site-header{
  position:absolute;top:0;left:0;right:0;z-index:50;
  padding-block:clamp(16px,1.9vw,26px);
}
.site-header--solid{position:sticky;background:var(--beyond)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px}
.logo{display:block;flex:none}
.logo img{height:clamp(44px,3.9vw,74px);width:auto}
.nav{display:flex;align-items:center;gap:clamp(18px,2.4vw,34px)}
.nav a{
  font-family:var(--font-sans);font-size:14px;font-weight:500;letter-spacing:.02em;
  text-decoration:none;color:rgba(255,255,255,.85);
}
.nav a:hover{color:#fff}
.nav a[aria-current="page"]{color:#fff;box-shadow:inset 0 -1px 0 0 var(--leap);padding-bottom:3px}
.nav .btn{font-size:11px;padding:11px 20px;color:#fff}
.nav-toggle{
  display:none;background:none;border:0;padding:8px;cursor:pointer;color:#fff;
}
.nav-toggle svg{display:block}

@media (max-width:860px){
  .nav-toggle{display:block}
  .nav{
    position:absolute;top:100%;right:var(--gutter);left:var(--gutter);
    flex-direction:column;align-items:stretch;gap:0;
    background:var(--beyond);border:1px solid rgba(255,255,255,.14);
    border-radius:var(--radius);padding:8px;
  }
  .nav[hidden]{display:none}
  .nav a{padding:13px 14px;border-radius:var(--radius)}
  .nav a:hover{background:rgba(255,255,255,.08)}
  .nav .btn{margin:6px;text-align:center}
}

/* ---------- hero ---------- */
.hero{position:relative;display:flex;align-items:center;min-height:min(90vh,880px);overflow:hidden}
.hero__media{position:absolute;inset:0}
.hero__media img{width:100%;height:100%;object-fit:cover}
.hero__media::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(to bottom,rgba(6,17,79,.55) 0%,rgba(6,17,79,0) 18%),
    linear-gradient(100deg,
      rgba(6,17,79,.95) 0%,
      rgba(6,17,79,.84) 20%,
      rgba(6,17,79,.52) 42%,
      rgba(6,17,79,.18) 66%,
      rgba(6,17,79,.08) 100%);
}
@media (max-width:820px){
  .hero__media::after{background:linear-gradient(to top,rgba(6,17,79,.94) 0%,rgba(6,17,79,.78) 55%,rgba(6,17,79,.5) 100%)}
}
.hero>.wrap{width:100%}
.hero__inner{position:relative;padding-block:clamp(56px,9vw,96px);color:#fff;max-width:820px}
.hero h1{color:#fff;margin-bottom:.5em;font-size:clamp(38px,3.9vw,68px)}
.hero h1 .break{display:block;margin-top:.34em}
.hero .lede{color:rgba(255,255,255,.88);max-width:44ch}

/* page header for interior pages */
.page-head{background:var(--beyond);color:#fff;padding-top:clamp(120px,14vw,170px);padding-bottom:var(--section)}
.page-head h1{color:#fff}
.page-head .lede{color:rgba(255,255,255,.8)}
.page-head .eyebrow{color:var(--gold)}

/* ---------- stats ---------- */
.stats{display:grid;gap:clamp(28px,4vw,56px);grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.stat__figure{font-family:var(--font-display);font-size:clamp(34px,3.4vw,44px);line-height:1.1;color:var(--infinity);margin:0 0 .35em}
.stat__body{margin:0 0 .8em;color:var(--ink)}
.stat__source{font-family:var(--font-sans);font-size:12.5px;letter-spacing:.04em;color:var(--ink-soft);margin:0}

/* ---------- pillars ---------- */
.pillar{display:grid;grid-template-columns:auto 1fr;gap:clamp(20px,3vw,44px);padding-block:clamp(36px,4.5vw,56px)}
.pillar+.pillar{border-top:1px solid var(--rule)}
.pillar__num{font-family:var(--font-display);font-size:clamp(28px,3vw,38px);color:var(--leap);line-height:1;opacity:.85}
.pillar h3{margin-bottom:.4em}
@media (max-width:620px){.pillar{grid-template-columns:1fr;gap:12px}}

/* ---------- cards ---------- */
.cards{display:grid;gap:clamp(18px,2.4vw,28px);grid-template-columns:repeat(auto-fit,minmax(270px,1fr))}
.card{background:#fff;border:1px solid var(--rule);border-radius:var(--radius);padding:clamp(24px,2.6vw,34px)}
.card h3{font-family:var(--font-sans);font-size:19px;font-weight:600;line-height:1.3;margin-bottom:.6em}
.card p{font-size:.97em;color:var(--ink-soft);margin:0}

/* ---------- figure / case study ---------- */
.figure{margin:0}
.figure img{border-radius:var(--radius);width:100%}
.figure figcaption{
  font-family:var(--font-sans);font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--ink-soft);margin-top:.9rem;
}
.section--dark .figure figcaption{color:rgba(255,255,255,.6)}
.quotes{display:grid;gap:clamp(20px,3vw,36px);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-top:clamp(32px,4vw,52px)}
.quote{margin:0;border-left:2px solid var(--gold);padding-left:clamp(18px,2vw,26px)}
.quote p{font-size:clamp(19px,1.5vw,23px);line-height:1.5;font-style:italic;margin-bottom:.7em}
.quote cite{
  font-family:var(--font-sans);font-style:normal;font-size:12px;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;color:var(--gold);
}

/* ---------- logo strip ---------- */
.logos{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(30px,5vw,64px)}
.logos img{height:clamp(30px,3.4vw,42px);width:auto;opacity:.75}

/* ---------- split ---------- */
.split{display:grid;gap:clamp(30px,5vw,70px);grid-template-columns:1.05fr .95fr;align-items:center}
.split--form{grid-template-columns:.82fr 1.18fr;align-items:start}
@media (max-width:820px){.split{grid-template-columns:1fr}}

/* ---------- forms (Bloomerang embeds) ---------- */
.form-shell{background:#fff;border:1px solid var(--rule);border-radius:var(--radius);padding:clamp(24px,3vw,40px)}

/* Bloomerang's form markup wraps its fields in <div class="section">, which
   collides with this site's own .section page spacing. Reset it inside the
   form only — this is what was leaving big empty bands in the box. */
.form-shell .section{padding:0!important;margin:0!important}
.form-shell .section + .section{margin-top:20px!important}
.form-shell .btn-group{margin-top:24px}

/* Bloomerang injects its own <style> after this stylesheet, so its rules win
   on equal specificity. These few need !important to land. */
.form-shell .field input[type=text],
.form-shell .field input[type=email]{
  width:100%!important;max-width:none!important;box-sizing:border-box!important;
  padding:12px 14px!important;font-size:16px!important;
}
.form-shell input.btn-submit{
  width:auto!important;height:auto!important;
  padding:15px 30px!important;font-size:13px!important;line-height:1.2!important;
}
.form-shell .consent{padding-top:2px}
.form-shell h3{display:none}
.form-shell .field{margin-bottom:18px}
.form-shell label{display:block;font-family:var(--font-sans);font-size:13px;font-weight:600;letter-spacing:.04em;margin-bottom:6px;color:var(--ink)}
.form-shell .required-star{color:var(--leap);margin-left:2px}
.form-shell input[type=text],.form-shell input[type=email]{
  width:100%;font-family:var(--font-sans);font-size:16px;padding:12px 14px;
  border:1px solid rgba(6,17,79,.22);border-radius:var(--radius);background:#fff;color:var(--ink);
}
.form-shell input[type=text]:focus,.form-shell input[type=email]:focus{border-color:var(--infinity);outline:2px solid rgba(56,33,102,.18);outline-offset:0}
.form-shell .consent{font-family:var(--font-sans);font-size:14px;color:var(--ink-soft);margin-bottom:18px}
.form-shell .btn-submit{
  font-family:var(--font-sans);font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  background:var(--leap);color:#fff;border:0;border-radius:var(--radius);padding:15px 30px;cursor:pointer;
}
.form-shell .btn-submit:hover{background:#d15503}
.form-shell .errors{color:#b3261e;font-family:var(--font-sans);font-size:14px;margin-bottom:14px}
.form-shell .errors.hidden{display:none}
.form-fallback{font-family:var(--font-sans);font-size:15px;color:var(--ink-soft)}

/* ---------- footer ---------- */
.site-footer{background:var(--beyond);color:rgba(255,255,255,.72);padding-block:clamp(52px,6vw,76px) 0}
.site-footer a{color:rgba(255,255,255,.75);text-decoration:none}
.site-footer a:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}
.footer-top{display:grid;grid-template-columns:minmax(260px,1.6fr) repeat(2,minmax(130px,.7fr)) auto;gap:clamp(28px,4vw,52px)}
@media (max-width:860px){.footer-top{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}}
.footer-brand img{height:32px;margin-bottom:20px}
.footer-brand p{font-size:16.5px;max-width:42ch;color:rgba(255,255,255,.72)}
.footer-brand .tag{color:rgba(255,255,255,.55);border-color:rgba(255,255,255,.22);margin-top:16px}
.site-footer h2{
  font-family:var(--font-sans);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(255,255,255,.45);margin:0 0 16px;
}
.site-footer ul{list-style:none;margin:0;padding:0;font-family:var(--font-sans);font-size:15px}
.site-footer li+li{margin-top:11px}
.footer-seal img{height:82px;width:auto}
.footer-bottom{
  margin-top:clamp(40px,5vw,60px);border-top:1px solid rgba(255,255,255,.14);
  padding-block:24px 30px;display:flex;flex-wrap:wrap;gap:10px 28px;justify-content:space-between;
  font-family:var(--font-sans);font-size:13.5px;color:rgba(255,255,255,.5);
}

@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* ==========================================================================
   Donation form — Bloomerang embedded widget (widget 71680)
   Only the wrapper, labels and buttons are styled; Bloomerang and Stripe
   render and own the payment fields themselves.
   ========================================================================== */
.donate-shell{
  background:#fff;border:1px solid var(--rule);border-radius:var(--radius);
  padding:clamp(24px,3vw,44px);font-family:var(--font-sans);
}
.donate-shell h1,.donate-shell h2,.donate-shell h3{
  font-family:var(--font-sans);font-size:15px;font-weight:600;letter-spacing:.06em;
  text-transform:uppercase;color:var(--ink-soft);margin:0 0 18px;
}
.donate-shell .field,.donate-shell .form-group{margin-bottom:18px}
.donate-shell label{
  display:block;font-size:13.5px;font-weight:600;letter-spacing:.03em;
  color:var(--ink);margin-bottom:6px;
}
.donate-shell label input[type=radio],
.donate-shell label input[type=checkbox]{margin-right:8px}
.donate-shell input[type=text],.donate-shell input[type=email],
.donate-shell input[type=tel],.donate-shell input[type=number],
.donate-shell select,.donate-shell textarea{
  width:100%;font-family:var(--font-sans);font-size:16px;padding:12px 14px;
  border:1px solid rgba(6,17,79,.22);border-radius:var(--radius);
  background:#fff;color:var(--ink);
}
.donate-shell input:focus,.donate-shell select:focus,.donate-shell textarea:focus{
  border-color:var(--infinity);outline:2px solid rgba(56,33,102,.18);outline-offset:0;
}
.donate-shell input[type=button],.donate-shell input[type=submit],
.donate-shell button,.donate-shell .btn{
  font-family:var(--font-sans);font-size:13px;font-weight:600;letter-spacing:.12em;
  text-transform:uppercase;background:var(--leap);color:#fff;border:0;
  border-radius:var(--radius);padding:15px 30px;cursor:pointer;
}
.donate-shell input[type=button]:hover,.donate-shell input[type=submit]:hover,
.donate-shell button:hover,.donate-shell .btn:hover{background:#d15503}
.donate-shell .amount-buttons input[type=button],
.donate-shell .suggested-amounts input[type=button]{
  background:#fff;color:var(--ink);border:1px solid rgba(6,17,79,.22);
  letter-spacing:.04em;padding:13px 20px;margin:0 8px 8px 0;
}
.donate-shell .amount-buttons input[type=button]:hover,
.donate-shell .suggested-amounts input[type=button]:hover{
  border-color:var(--infinity);background:var(--warm-white);color:var(--ink);
}
.donate-shell table{width:100%;border-collapse:collapse}
.donate-shell .errors,.donate-shell .error{color:#b3261e;font-size:14px;margin-bottom:14px}
.donate-shell .errors.hidden{display:none}
.donate-note{font-family:var(--font-sans);font-size:14.5px;color:var(--ink-soft);margin-top:1.5rem}

/* Bloomerang's hosted giving page, embedded. The payment fields are still
   served and handled by Bloomerang inside this frame — this site never
   touches them. Height is set generously because the page does not
   reliably report its own size; the script on /donate shrinks it if
   Bloomerang does send a height. */
.give-frame-wrap{
  background:#fff;border:1px solid var(--rule);border-radius:var(--radius);
  overflow:hidden;max-width:860px;
}
.give-frame{display:block;width:100%;height:2080px;border:0;background:#fff}
@media (max-width:700px){.give-frame{height:2320px}}
.give-fallback{
  font-family:var(--font-sans);font-size:14.5px;color:var(--ink-soft);
  margin-top:1.1rem;max-width:860px;
}
.give-fallback a{color:var(--infinity)}
