/* ==========================================================================
   LAKSHMI FOUNDATION — "Rooted in Jharkhand. Built for Opportunity."
   Design system v3
   ========================================================================== */

:root{
  /* ---- colour ---- */
  --forest:      #0E5C46;   /* primary */
  --forest-700:  #0A4534;
  --forest-900:  #05271E;
  --forest-400:  #1A8563;
  --terra:       #EE8322;   /* secondary */
  --terra-700:   #C4650F;
  --terra-050:   #FEF3E7;
  --gold:        #DCA94E;   /* accent, sparing */
  --gold-050:    #FBF3E3;
  --emerald:     #16A97C;   /* the bright leaf of the emblem, accents only */
  --blue:        #2F84C8;   /* the blue figure: the employment pathway */
  --blue-700:    #1C5E97;
  --blue-900:    #123F68;
  --blue-050:    #EAF3FB;
  --indigo:      #3B3670;   /* the violet figure: the enterprise pathway */
  --indigo-700:  #2A2653;
  --indigo-050:  #EFEEF7;
  --navy:        #22399A;   /* the Ashoka Chakra */

  --ink:         #131C19;
  --ink-2:       #414E49;
  --ink-3:       #68766F;
  --ink-4:       #95A09A;

  --cream:       #F9F7F1;   /* warm off-white — dominant */
  --sage:        #E4EFE9;   /* soft sage */
  --sage-2:      #F0F7F3;
  --white:       #FFFFFF;

  --line:        rgba(19,28,25,.14);
  --line-soft:   rgba(19,28,25,.08);
  --line-dark:   rgba(255,255,255,.16);

  /* ---- type ---- */
  --lf-display: "Plus Jakarta Sans", "Segoe UI", system-ui, sans-serif;
  --body:    "Manrope", "Segoe UI", system-ui, sans-serif;
  --deva:    "Noto Sans Devanagari", var(--body);

  /* ---- radius ---- */
  --r-xs: 6px;
  --r-sm: 10px;
  --r-md: 16px;
  --r-lg: 22px;

  /* ---- shadow (used sparingly) ---- */
  --sh-1: 0 1px 2px rgba(19,28,25,.04), 0 6px 20px rgba(19,28,25,.05);
  --sh-2: 0 18px 44px rgba(19,28,25,.10);

  /* ---- layout ---- */
  --wrap: 1320px;
  --wrap-tight: 1120px;
  --read: 700px;
  --gutter: 28px;
  --header-h: 78px;

  /* ---- motion ---- */
  --ease: cubic-bezier(.22,.61,.36,1);
  --dur: .32s;
}

/* ==========================================================================
   BASE
   ========================================================================== */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body.lf{
  margin:0; background:var(--cream); color:var(--ink);
  font-family:var(--body); font-size:17px; line-height:1.65; font-weight:400;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
body.lf img,body.lf svg{ max-width:100%; }
body.lf img{ height:auto; display:block; }
body.lf h1,body.lf h2,body.lf h3,body.lf h4,body.lf h5{
  font-family:var(--lf-display); font-weight:700; color:var(--ink);
  margin:0 0 .5em; line-height:1.12; letter-spacing:-.022em; text-wrap:balance;
}
body.lf p{ margin:0 0 1.15em; }
body.lf a{ text-decoration:none; }
body.lf a:not(.lf-btn){ color:var(--forest); }
body.lf a:hover{ text-decoration:underline; }
body.lf ul,body.lf ol{ margin:0 0 1.2em; padding-left:1.2em; }
body.lf li{ margin-bottom:.45em; }
body.lf hr{ border:0; border-top:1px solid var(--line-soft); margin:0; }
body.lf strong{ font-weight:700; color:var(--ink); }

body.lf :focus-visible{
  outline:3px solid var(--terra); outline-offset:3px; border-radius:4px;
}

.lf-container{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:var(--gutter); }
.lf-container--tight{ max-width:var(--wrap-tight); }
.lf-read{ max-width:var(--read); }

/* ---- type scale ---- */
.lf-d1{ font-size:clamp(2.5rem, 1.6rem + 3.8vw, 4.5rem); line-height:1.03; letter-spacing:-.032em; }
.lf-h1{ font-size:clamp(2.1rem, 1.5rem + 2.6vw, 3.5rem); line-height:1.06; letter-spacing:-.028em; }
.lf-h2{ font-size:clamp(1.75rem, 1.35rem + 1.9vw, 3rem); line-height:1.1; letter-spacing:-.026em; }
.lf-h3{ font-size:clamp(1.28rem, 1.14rem + .62vw, 1.75rem); line-height:1.2; letter-spacing:-.018em; }
.lf-h4{ font-size:clamp(1.08rem, 1.02rem + .3vw, 1.28rem); line-height:1.28; letter-spacing:-.012em; }
.lf-lead{ font-size:clamp(1.06rem, 1rem + .38vw, 1.28rem); line-height:1.62; color:var(--ink-2); }
.lf-small{ font-size:.875rem; line-height:1.55; color:var(--ink-3); }
.lf-tiny{ font-size:.78rem; line-height:1.5; color:var(--ink-3); }

.lf-eyebrow{
  display:inline-flex; flex-direction:row/*fdrow*/; align-items:center; gap:9px;
  font-family:var(--body); font-weight:700; font-size:.75rem;
  letter-spacing:.15em; text-transform:uppercase; color:var(--terra-700);
  margin:0 0 18px;
}
.lf-eyebrow::before{
  content:""; width:22px; height:2px; background:var(--terra); border-radius:2px; flex-shrink:0;
}
.lf-eyebrow--plain::before{ display:none; }
.on-dark .lf-eyebrow,.lf-eyebrow.on-dark{ color:var(--gold); }
.on-dark .lf-eyebrow::before,.lf-eyebrow.on-dark::before{ background:var(--gold); }

.lf-muted{ color:var(--ink-3); }
.lf-mb0{ margin-bottom:0 !important; }
.lf-center{ text-align:center; }

/* ==========================================================================
   BUTTONS
   ========================================================================== */
.lf-btn{
  display:inline-flex; flex-direction:row/*fdrow*/; align-items:center; justify-content:center; gap:.55em;
  min-height:48px; padding:13px 26px; border-radius:var(--r-sm);
  font-family:var(--lf-display); font-weight:700; font-size:.95rem; letter-spacing:-.005em;
  border:1.5px solid transparent; cursor:pointer; text-align:center; line-height:1.25;
  background:var(--forest); color:var(--white);
  transition:background var(--dur) var(--ease), color var(--dur) var(--ease),
             border-color var(--dur) var(--ease), transform var(--dur) var(--ease);
  text-decoration:none !important;
}
.lf-btn:hover{ background:var(--forest-700); color:var(--white); transform:translateY(-1px); }
.lf-btn:active{ transform:translateY(0); }
.lf-btn svg{ width:17px; height:17px; flex-shrink:0; transition:transform var(--dur) var(--ease); }
.lf-btn:hover svg{ transform:translateX(4px); }

.lf-btn--accent{ background:var(--terra); color:var(--white); }
.lf-btn--accent:hover{ background:var(--terra-700); }

.lf-btn--line{ background:transparent; color:var(--forest); border-color:var(--line); }
.lf-btn--line:hover{ background:var(--forest); border-color:var(--forest); color:var(--white); }

.lf-btn--ondark{ background:transparent; color:var(--white); border-color:rgba(255,255,255,.34); }
.lf-btn--ondark:hover{ background:var(--white); border-color:var(--white); color:var(--forest); }

.lf-btn--solid-light{ background:var(--white); color:var(--forest); }
.lf-btn--solid-light:hover{ background:var(--cream); color:var(--forest-700); }

.lf-btn--sm{ min-height:42px; padding:10px 18px; font-size:.86rem; }
.lf-btn--lg{ min-height:54px; padding:16px 32px; font-size:1rem; }
.lf-btn--block{ width:100%; }

.lf-link{
  display:inline-flex; flex-direction:row/*fdrow*/; align-items:center; gap:.45em;
  font-family:var(--lf-display); font-weight:700; font-size:.92rem; color:var(--forest);
  border-bottom:1.5px solid transparent; padding-bottom:2px;
  transition:color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.lf-link svg{ width:15px; height:15px; transition:transform var(--dur) var(--ease); }
.lf-link:hover{ color:var(--terra-700); border-bottom-color:var(--terra); text-decoration:none; }
.lf-link:hover svg{ transform:translateX(4px); }
.lf-link--light{ color:var(--white); }
.lf-link--light:hover{ color:var(--gold); border-bottom-color:var(--gold); }

/* ==========================================================================
   SIGNATURE DEVICE — the opportunity path
   ========================================================================== */
.lf-path{ display:block; width:100%; height:auto; overflow:visible; }
.lf-path path{
  fill:none; stroke:var(--terra); stroke-width:2; stroke-linecap:round;
  stroke-dasharray:var(--len,1200); stroke-dashoffset:var(--len,1200);
  transition:stroke-dashoffset 1.6s var(--ease);
}
.lf-path.is-in path{ stroke-dashoffset:0; }
.lf-path--soft path{ stroke:var(--line); stroke-dasharray:6 8; stroke-dashoffset:0; }
.lf-path--gold path{ stroke:var(--gold); }
.lf-path circle{ fill:var(--terra); opacity:0; transition:opacity .5s var(--ease) 1s; }
.lf-path.is-in circle{ opacity:1; }

.lf-rule{
  height:1px; background:var(--line-soft); border:0; margin:0;
}
.lf-divider{
  height:2px; width:56px; background:var(--terra); border-radius:2px; margin:0 0 26px;
}

/* ==========================================================================
   SECTIONS
   ========================================================================== */
.lf-sec{ padding:clamp(64px,8.4vw,132px) 0; position:relative; }
.lf-sec--sm{ padding:clamp(48px,5.6vw,84px) 0; }
.lf-sec--xs{ padding:clamp(34px,4vw,56px) 0; }
.lf-cream{ background:var(--cream); }
.lf-white{ background:var(--white); }
.lf-sage{ background:var(--sage); }
.lf-sage-2{ background:var(--sage-2); }
.lf-forest{ background:var(--forest); color:rgba(255,255,255,.78); }
.lf-forest h1,.lf-forest h2,.lf-forest h3,.lf-forest h4{ color:var(--white); }
.lf-forest-900{ background:var(--forest-900); color:rgba(255,255,255,.76); }
.lf-forest-900 h1,.lf-forest-900 h2,.lf-forest-900 h3,.lf-forest-900 h4{ color:var(--white); }

/* editorial section head — asymmetric by default */
.lf-head{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,4vw,72px); align-items:end; margin-bottom:clamp(38px,4.6vw,64px); }
.lf-head__t h2{ margin-bottom:0; }
.lf-head__d{ padding-bottom:6px; }
.lf-head__d p{ margin-bottom:0; color:var(--ink-2); }
.lf-forest .lf-head__d p,.lf-forest-900 .lf-head__d p{ color:rgba(255,255,255,.72); }
.lf-head--stack{ grid-template-columns:1fr; gap:18px; align-items:start; max-width:820px; }
.lf-head--centre{ grid-template-columns:1fr; text-align:center; max-width:760px; margin-inline:auto; gap:16px; }
.lf-head--centre .lf-eyebrow{ justify-content:center; }
.lf-head__actions{ display:flex; flex-direction:row/*fdrow*/; gap:12px; flex-wrap:wrap; justify-self:end; align-self:end; }

/* ==========================================================================
   HEADER
   ========================================================================== */
.lf-bar{
  background:var(--forest-900); color:rgba(255,255,255,.6); font-size:.78rem; letter-spacing:.01em;
}
.lf-bar .lf-container{ display:flex; flex-direction:row/*fdrow*/; justify-content:space-between; align-items:center; gap:20px; min-height:38px; flex-wrap:wrap; }
.lf-bar a{ color:rgba(255,255,255,.72); }
.lf-bar a:hover{ color:var(--white); text-decoration:none; }
.lf-bar__l{ display:flex; flex-direction:row/*fdrow*/; align-items:center; gap:8px; }
.lf-bar__l svg{ width:14px; height:14px; opacity:.7; }
.lf-bar__r{ display:flex; flex-direction:row/*fdrow*/; align-items:center; gap:22px; }

.lf-head-wrap{ position:sticky; top:0; z-index:900; }
.lf-hd{
  background:rgba(249,247,241,.92);
  backdrop-filter:saturate(180%) blur(16px); -webkit-backdrop-filter:saturate(180%) blur(16px);
  border-bottom:1px solid var(--line-soft);
  transition:min-height var(--dur) var(--ease), background var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.lf-hd__in{ display:flex; flex-direction:row/*fdrow*/; align-items:center; gap:20px; min-height:var(--header-h); transition:min-height var(--dur) var(--ease); }
.lf-hd.is-stuck{ background:rgba(249,247,241,.97); border-bottom-color:var(--line); }
.lf-hd.is-stuck .lf-hd__in{ min-height:64px; }

.lf-logo{ display:flex; flex-direction:row/*fdrow*/; align-items:center; gap:12px; flex-shrink:0; text-decoration:none !important; }
.lf-logo__m{
  width:54px; height:54px; border-radius:50%; flex-shrink:0; display:block;
  transition:width var(--dur) var(--ease), height var(--dur) var(--ease);
}
.lf-logo__m img{ width:100%; height:100%; display:block; border-radius:50%; }
.lf-hd.is-stuck .lf-logo__m{ width:44px; height:44px; }
@media (prefers-reduced-motion: reduce){ .lf-logo__m{ transition:none; } }
.lf-logo__t{ display:flex; flex-direction:column; line-height:1.08; }
.lf-logo__n{ font-family:var(--lf-display); font-weight:800; font-size:1.06rem; color:var(--ink); letter-spacing:-.026em; }
.lf-logo__s{ font-size:.64rem; letter-spacing:.13em; text-transform:uppercase; color:var(--ink-3); font-weight:600; margin-top:3px; }

.lf-nav{ display:flex; flex-direction:row/*fdrow*/; align-items:center; gap:2px; margin-left:auto; }
.lf-nav__i{ position:relative; }
.lf-nav__l{
  display:flex; flex-direction:row/*fdrow*/; align-items:center; gap:5px; white-space:nowrap;
  font-family:var(--body); font-weight:600; font-size:.925rem; color:var(--ink);
  padding:10px 14px; border-radius:var(--r-xs); position:relative;
  transition:color .2s linear;
}
.lf-nav__l::after{
  content:""; position:absolute; left:14px; right:14px; bottom:4px; height:2px;
  background:var(--terra); border-radius:2px; transform:scaleX(0); transform-origin:left;
  transition:transform var(--dur) var(--ease);
}
.lf-nav__l:hover,.lf-nav__i:focus-within > .lf-nav__l{ color:var(--forest); text-decoration:none; }
.lf-nav__l:hover::after,.lf-nav__i:hover > .lf-nav__l::after{ transform:scaleX(1); }
.lf-nav__l.is-on{ color:var(--forest); }
.lf-nav__l.is-on::after{ transform:scaleX(1); }
.lf-nav__c{ width:9px; height:9px; opacity:.45; transition:transform var(--dur) var(--ease); }
.lf-nav__i:hover .lf-nav__c{ transform:rotate(180deg); }

.lf-mega{
  position:absolute; top:calc(100% + 4px); left:50%; transform:translateX(-50%) translateY(8px);
  background:var(--white); border:1px solid var(--line-soft); border-radius:var(--r-md);
  box-shadow:var(--sh-2); padding:10px; min-width:288px;
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .2s var(--ease), transform var(--dur) var(--ease), visibility .2s;
}
.lf-nav__i:hover .lf-mega,.lf-nav__i:focus-within .lf-mega{ opacity:1; visibility:visible; pointer-events:auto; transform:translateX(-50%) translateY(0); }
.lf-mega::before{ content:""; position:absolute; top:-8px; left:0; right:0; height:8px; }
.lf-mega a{
  display:flex; flex-direction:row/*fdrow*/; gap:12px; align-items:flex-start; padding:11px 13px; border-radius:var(--r-xs);
  transition:background .18s linear;
}
.lf-mega a:hover{ background:var(--sage-2); text-decoration:none; }
.lf-mega__ic{ width:32px; height:32px; border-radius:8px; background:var(--sage); color:var(--forest); display:grid; place-items:center; flex-shrink:0; margin-top:1px; }
.lf-mega__ic svg{ width:16px; height:16px; }
.lf-mega a:hover .lf-mega__ic{ background:var(--forest); color:var(--gold); }
.lf-mega b{ display:block; font-family:var(--lf-display); font-weight:700; font-size:.92rem; color:var(--ink); line-height:1.3; }
.lf-mega small{ display:block; font-size:.78rem; color:var(--ink-3); margin-top:2px; line-height:1.4; }

.lf-hd__cta{ display:flex; flex-direction:row/*fdrow*/; align-items:center; gap:10px; flex-shrink:0; }

.lf-burger{
  display:none; width:46px; height:46px; border:1px solid var(--line); background:var(--white);
  border-radius:var(--r-sm); cursor:pointer; padding:0; place-items:center; flex-shrink:0;
}
.lf-burger span{ display:block; width:19px; height:2px; background:var(--ink); border-radius:2px; transition:transform var(--dur) var(--ease), opacity .18s linear; }
.lf-burger span + span{ margin-top:5px; }
.lf-burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.lf-burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.lf-burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* mobile drawer */
.lf-mob{
  position:fixed; inset:0; z-index:899; background:var(--cream);
  padding:calc(var(--header-h) + 24px) 0 72px; overflow-y:auto; -webkit-overflow-scrolling:touch;
  opacity:0; visibility:hidden; transform:translateY(-10px);
  transition:opacity var(--dur) var(--ease), transform var(--dur) var(--ease), visibility var(--dur);
}
.lf-mob.is-open{ opacity:1; visibility:visible; transform:none; }
body.lf-locked{ overflow:hidden; }
.lf-mob__g{ border-bottom:1px solid var(--line-soft); }
.lf-mob__t{
  width:100%; display:flex; flex-direction:row/*fdrow*/; align-items:center; justify-content:space-between; gap:12px;
  background:none; border:0; padding:18px 2px; cursor:pointer; text-align:left;
  font-family:var(--lf-display); font-weight:700; font-size:1.08rem; color:var(--ink);
}
.lf-mob__t svg{ width:14px; height:14px; opacity:.5; transition:transform var(--dur) var(--ease); }
.lf-mob__t[aria-expanded="true"] svg{ transform:rotate(180deg); }
.lf-mob__s{ display:none; padding:0 2px 16px; }
.lf-mob__s.is-open{ display:block; }
.lf-mob__s a{ display:block; padding:11px 0 11px 16px; border-left:2px solid var(--line); color:var(--ink-2); font-size:.96rem; }
.lf-mob__s a:hover{ border-left-color:var(--terra); color:var(--forest); text-decoration:none; }
.lf-mob__solo{ display:block; padding:18px 2px; font-family:var(--lf-display); font-weight:700; font-size:1.08rem; color:var(--ink); }
.lf-mob__f{ padding-top:28px; display:grid; gap:12px; }
.lf-mob__c{ margin-top:28px; font-size:.9rem; color:var(--ink-3); line-height:1.9; }

.lf-skip{
  position:absolute; left:-9999px; top:0; z-index:1000; background:var(--forest); color:var(--white);
  padding:13px 22px; border-radius:0 0 var(--r-sm) 0; font-family:var(--lf-display); font-weight:700; font-size:.9rem;
}
.lf-skip:focus{ left:0; }

/* ==========================================================================
   HERO — editorial split
   ========================================================================== */
.lf-hero{ background:var(--cream); position:relative; overflow:hidden; }
.lf-hero::after{
  content:""; position:absolute; right:-6%; top:-10%; width:52%; height:78%;
  background:var(--sage); border-radius:0 0 0 50%; opacity:.5; z-index:0;
}
.lf-hero__in{
  position:relative; z-index:1;
  display:grid; grid-template-columns:1.02fr .98fr; gap:clamp(32px,4.6vw,76px);
  align-items:center; padding:clamp(48px,5.6vw,84px) 0 clamp(56px,6.4vw,96px);
}
.lf-hero__t{ max-width:600px; }
.lf-hero__t h1{ margin-bottom:22px; }
.lf-hero__t h1 em{ font-style:normal; color:var(--terra); }
.lf-hero__sub{ font-size:clamp(1.04rem,.99rem + .34vw,1.22rem); color:var(--ink-2); line-height:1.62; margin-bottom:30px; max-width:520px; }
.lf-hero__acts{ display:flex; flex-direction:row/*fdrow*/; gap:13px; flex-wrap:wrap; margin-bottom:34px; }
.lf-hero__trust{ display:flex; flex-direction:row/*fdrow*/; align-items:center; gap:16px; flex-wrap:wrap; padding-top:26px; border-top:1px solid var(--line-soft); }
.lf-hero__trust b{ font-family:var(--lf-display); font-size:1.5rem; color:var(--forest); line-height:1; letter-spacing:-.03em; }
.lf-hero__trust span{ font-size:.82rem; color:var(--ink-3); line-height:1.4; display:block; max-width:150px; }
.lf-hero__trust > div{ display:flex; flex-direction:row/*fdrow*/; align-items:center; gap:11px; }
.lf-hero__trust .lf-vr{ width:1px; height:34px; background:var(--line); }

/* image composition */
.lf-hero__v{ position:relative; }
.lf-hero__v-main{
  border-radius:var(--r-lg); overflow:hidden; aspect-ratio:4/5; background:var(--sage);
  box-shadow:var(--sh-2);
}
.lf-hero__v-main img{ width:100%; height:100%; object-fit:cover; object-position:center 28%; }
.lf-hero__v-sub{
  position:absolute; left:-34px; bottom:52px; width:44%; aspect-ratio:4/3;
  border-radius:var(--r-md); overflow:hidden; border:5px solid var(--cream); background:var(--sage);
}
.lf-hero__v-sub img{ width:100%; height:100%; object-fit:cover; }
.lf-hero__chip{
  position:absolute; top:26px; left:-22px;
  background:var(--white); border-radius:var(--r-sm); padding:9px 15px;
  font-family:var(--lf-display); font-weight:700; font-size:.8rem; color:var(--forest);
  border:1px solid var(--line-soft); display:flex; flex-direction:row/*fdrow*/; align-items:center; gap:8px;
}
.lf-hero__chip svg{ width:15px; height:15px; color:var(--terra); }
.lf-hero__card{
  position:absolute; right:-18px; bottom:-14px; background:var(--forest); color:var(--white);
  border-radius:var(--r-md); padding:20px 22px; max-width:216px;
}
.lf-hero__card b{ display:block; font-family:var(--lf-display); font-size:1.85rem; line-height:1; margin-bottom:7px; letter-spacing:-.03em; color:var(--gold); }
.lf-hero__card span{ font-size:.8rem; line-height:1.45; color:rgba(255,255,255,.8); display:block; }

/* ==========================================================================
   PURPOSE — big editorial statement
   ========================================================================== */
.lf-purpose{ max-width:1000px; }
.lf-purpose p{
  font-family:var(--lf-display); font-weight:600;
  font-size:clamp(1.4rem,1.05rem + 1.6vw,2.5rem); line-height:1.28; letter-spacing:-.024em;
  color:var(--ink); margin-bottom:0;
}
.lf-purpose p em{ font-style:normal; color:var(--terra); }
.lf-purpose__meta{ display:flex; flex-direction:row/*fdrow*/; gap:clamp(20px,3vw,48px); flex-wrap:wrap; margin-top:44px; padding-top:32px; border-top:1px solid var(--line); }
.lf-purpose__meta div{ max-width:250px; }
.lf-purpose__meta b{ display:block; font-family:var(--lf-display); font-size:.95rem; color:var(--ink); margin-bottom:5px; }
.lf-purpose__meta span{ font-size:.9rem; color:var(--ink-3); line-height:1.55; }

/* ==========================================================================
   PROGRAMME EDITORIAL GRID
   ========================================================================== */
.lf-progs{ display:grid; grid-template-columns:repeat(6,1fr); gap:clamp(14px,1.6vw,22px); }
.lf-pc{
  position:relative; border-radius:var(--r-md); overflow:hidden; background:var(--white);
  border:1px solid var(--line-soft); display:flex; flex-direction:column;
  transition:border-color var(--dur) var(--ease), transform var(--dur) var(--ease);
  text-decoration:none !important;
}
.lf-pc:hover{ border-color:var(--forest-400); transform:translateY(-3px); }
.lf-pc__img{ position:relative; overflow:hidden; background:var(--sage); aspect-ratio:4/3; }
.lf-pc__img img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.lf-pc:hover .lf-pc__img img{ transform:scale(1.045); }
.lf-pc__b{ padding:24px 24px 26px; display:flex; flex-direction:column; flex:1; }
.lf-pc__cat{ font-size:.7rem; letter-spacing:.13em; text-transform:uppercase; font-weight:700; color:var(--terra-700); margin-bottom:11px; }
.lf-pc h3{ font-size:1.22rem; margin-bottom:9px; }
.lf-pc p{ font-size:.93rem; color:var(--ink-2); line-height:1.6; margin-bottom:16px; }
.lf-pc__out{
  display:inline-flex; flex-direction:row/*fdrow*/; align-items:center; gap:8px; font-size:.82rem; color:var(--forest);
  background:var(--sage-2); border-radius:99px; padding:6px 13px; margin-bottom:18px; align-self:flex-start;
  font-weight:600;
}
.lf-pc__out svg{ width:14px; height:14px; }
.lf-pc__go{ margin-top:auto; display:flex; flex-direction:row/*fdrow*/; align-items:center; justify-content:space-between; gap:10px;
  font-family:var(--lf-display); font-weight:700; font-size:.9rem; color:var(--forest); }
.lf-pc__go svg{ width:16px; height:16px; transition:transform var(--dur) var(--ease); }
.lf-pc:hover .lf-pc__go svg{ transform:translateX(4px); }

/* sizes within the 6-col editorial grid */
.lf-pc--xl{ grid-column:span 3; }
.lf-pc--xl .lf-pc__img{ aspect-ratio:16/10; }
.lf-pc--xl h3{ font-size:clamp(1.35rem,1.2rem + .6vw,1.7rem); }
.lf-pc--md{ grid-column:span 3; }
.lf-pc--sm{ grid-column:span 2; }
.lf-pc--sm .lf-pc__img{ aspect-ratio:3/2; }
.lf-pc--sm h3{ font-size:1.1rem; }
.lf-pc--sm p{ font-size:.88rem; }

/* text-only variant (avoids card monotony) */
.lf-pc--plain{ background:transparent; border-color:transparent; border-top:2px solid var(--ink); border-radius:0; }
.lf-pc--plain:hover{ border-color:transparent; border-top-color:var(--terra); transform:none; }
.lf-pc--plain .lf-pc__b{ padding:22px 0 0; }

/* ==========================================================================
   TWO PATHWAYS
   ========================================================================== */
.lf-ways{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(16px,2vw,28px); }
.lf-way{
  border-radius:var(--r-lg); padding:clamp(28px,3vw,44px); position:relative; overflow:hidden;
  display:flex; flex-direction:column;
}
.lf-way--job{ background:var(--blue-700); color:rgba(255,255,255,.82); }
.lf-way--biz{ background:var(--indigo-050); color:var(--ink-2); border:1px solid rgba(59,54,112,.20); }
.lf-way__k{
  display:inline-flex; flex-direction:row/*fdrow*/; align-items:center; gap:9px; font-size:.72rem; letter-spacing:.14em;
  text-transform:uppercase; font-weight:700; margin-bottom:18px;
}
.lf-way--job .lf-way__k{ color:var(--gold); }
.lf-way--biz .lf-way__k{ color:var(--indigo); }
.lf-way__k svg{ width:16px; height:16px; }
.lf-way h3{ font-size:clamp(1.4rem,1.2rem + .8vw,1.95rem); margin-bottom:12px; }
.lf-way--job h3{ color:var(--white); }
.lf-way > p{ font-size:.98rem; line-height:1.62; margin-bottom:28px; max-width:420px; }
.lf-way__steps{ list-style:none; padding:0; margin:0 0 30px; display:flex; flex-direction:column; gap:0; }
.lf-way__steps li{
  display:flex; flex-direction:row/*fdrow*/; align-items:center; gap:14px; padding:13px 0; margin:0;
  font-family:var(--lf-display); font-weight:600; font-size:.98rem; position:relative;
}
.lf-way--job .lf-way__steps li{ color:var(--white); border-bottom:1px solid rgba(255,255,255,.12); }
.lf-way--biz .lf-way__steps li{ color:var(--ink); border-bottom:1px solid rgba(59,54,112,.16); }
.lf-way__steps li:last-child{ border-bottom:0; }
.lf-way__n{
  width:28px; height:28px; border-radius:50%; display:grid; place-items:center; flex-shrink:0;
  font-family:var(--body); font-size:.72rem; font-weight:700;
}
.lf-way--job .lf-way__n{ background:rgba(220,169,78,.16); color:var(--gold); }
.lf-way--biz .lf-way__n{ background:var(--white); color:var(--indigo); }
.lf-way__foot{ margin-top:auto; }

/* ==========================================================================
   JOURNEY — the opportunity path
   ========================================================================== */
.lf-journey{ position:relative; }
.lf-journey__line{ position:absolute; left:0; right:0; top:34px; z-index:0; pointer-events:none; }
.lf-jsteps{ display:grid; grid-template-columns:repeat(6,1fr); gap:16px; position:relative; z-index:1; }
.lf-jstep{ text-align:left; }
.lf-jstep__n{
  width:68px; height:68px; border-radius:50%; background:var(--cream); border:2px solid var(--line);
  display:grid; place-items:center; margin-bottom:20px; color:var(--forest);
  transition:border-color var(--dur) var(--ease), background var(--dur) var(--ease), color var(--dur) var(--ease);
}
.lf-jstep__n svg{ width:26px; height:26px; }
.lf-jstep:hover .lf-jstep__n{ border-color:var(--terra); background:var(--terra); color:var(--white); }
.lf-white .lf-jstep__n{ background:var(--white); }
.lf-jstep__i{ font-size:.7rem; letter-spacing:.15em; font-weight:700; color:var(--terra-700); display:block; margin-bottom:7px; }
.lf-jstep h3{ font-size:1.02rem; margin-bottom:7px; }
.lf-jstep p{ font-size:.87rem; color:var(--ink-2); line-height:1.55; margin-bottom:0; }

/* ==========================================================================
   IMPACT
   ========================================================================== */
.lf-figs{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; border-top:1px solid var(--line-dark); }
.lf-fig{ padding:34px clamp(16px,2vw,30px) 30px; border-right:1px solid var(--line-dark); }
.lf-fig:last-child{ border-right:0; }
.lf-fig b{
  display:block; font-family:var(--lf-display); font-weight:700; color:var(--white);
  font-size:clamp(2.1rem,1.5rem + 2.4vw,3.4rem); line-height:1; letter-spacing:-.038em; margin-bottom:12px;
}
.lf-fig span{ font-size:.9rem; color:rgba(255,255,255,.68); line-height:1.5; display:block; }
.lf-fig em{ display:block; font-style:normal; font-size:.74rem; color:rgba(255,255,255,.45); margin-top:9px; letter-spacing:.04em; }
.lf-figs--light{ border-top-color:var(--line); }
.lf-figs--light .lf-fig{ border-right-color:var(--line); }
.lf-figs--light .lf-fig b{ color:var(--forest); }
.lf-figs--light .lf-fig span{ color:var(--ink-2); }
.lf-figs--light .lf-fig em{ color:var(--ink-4); }

/* ==========================================================================
   JHARKHAND DISTRICT GRID
   ========================================================================== */
.lf-map{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(30px,4vw,64px); align-items:start; }
.lf-districts{ display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.lf-dist{
  border:1px solid var(--line-dark); border-radius:var(--r-xs); padding:13px 12px;
  background:rgba(255,255,255,.035); text-align:left; cursor:default;
  transition:background var(--dur) var(--ease), border-color var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.lf-dist:hover{ background:rgba(255,255,255,.09); border-color:var(--gold); transform:translateY(-2px); }
.lf-dist b{ display:block; font-family:var(--lf-display); font-weight:600; font-size:.84rem; color:var(--white); line-height:1.25; }
.lf-dist span{ display:block; font-size:.68rem; color:rgba(255,255,255,.42); margin-top:4px; letter-spacing:.03em; }
.lf-dist--on{ background:rgba(220,169,78,.14); border-color:rgba(220,169,78,.4); }
.lf-dist--on span{ color:var(--gold); }
.lf-legend{ display:flex; flex-direction:row/*fdrow*/; gap:20px; flex-wrap:wrap; margin-top:24px; font-size:.78rem; color:rgba(255,255,255,.55); }
.lf-legend div{ display:flex; flex-direction:row/*fdrow*/; align-items:center; gap:8px; }
.lf-legend i{ width:11px; height:11px; border-radius:3px; display:block; border:1px solid var(--line-dark); }
.lf-legend i.on{ background:rgba(220,169,78,.5); border-color:var(--gold); }

/* ==========================================================================
   FEATURED STORY
   ========================================================================== */
.lf-story{ display:grid; grid-template-columns:.86fr 1.14fr; gap:clamp(26px,3.6vw,64px); align-items:center; }
.lf-story__p{ position:relative; }
.lf-story__p img{ width:100%; aspect-ratio:3/4; object-fit:cover; border-radius:var(--r-md); }
.lf-story__tag{
  position:absolute; left:18px; bottom:18px; background:var(--white); border-radius:var(--r-xs);
  padding:8px 14px; font-family:var(--lf-display); font-weight:700; font-size:.78rem; color:var(--forest);
}
.lf-story__q{
  font-family:var(--lf-display); font-weight:600; font-size:clamp(1.25rem,1.05rem + .95vw,1.9rem);
  line-height:1.34; letter-spacing:-.02em; color:var(--ink); margin:0 0 24px;
  padding-left:24px; border-left:3px solid var(--terra);
}
.lf-forest .lf-story__q,.lf-forest-900 .lf-story__q{ color:var(--white); border-left-color:var(--gold); }
.lf-story__arc{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; margin-top:30px; border-top:1px solid var(--line); }
.lf-story__arc div{ padding:18px 16px 0 0; }
.lf-story__arc b{ display:block; font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--terra-700); margin-bottom:7px; }
.lf-story__arc span{ font-size:.86rem; color:var(--ink-2); line-height:1.5; }

/* ==========================================================================
   PHOTO BREAKS
   ========================================================================== */
.lf-break{ position:relative; }
.lf-break img{ width:100%; height:clamp(280px,42vw,540px); object-fit:cover; display:block; }
.lf-break__cap{
  position:absolute; left:0; right:0; bottom:0; padding:clamp(24px,3vw,46px) 0;
  background:linear-gradient(to top, rgba(5,39,30,.86), rgba(5,39,30,0));
}
.lf-break__cap p{
  font-family:var(--lf-display); font-weight:700; color:var(--white); margin:0;
  font-size:clamp(1.15rem,.95rem + 1vw,1.9rem); letter-spacing:-.02em; max-width:640px; line-height:1.24;
}
.lf-break__cap small{ display:block; color:rgba(255,255,255,.6); font-size:.8rem; margin-top:10px; }

.lf-collage{ display:grid; grid-template-columns:1.6fr 1fr; grid-template-rows:1fr 1fr; gap:14px; }
.lf-collage img{ width:100%; height:100%; object-fit:cover; border-radius:var(--r-md); }
.lf-collage__a{ grid-row:span 2; aspect-ratio:auto; }
.lf-collage__a img{ min-height:340px; }
.lf-collage__b img,.lf-collage__c img{ min-height:163px; }

/* ==========================================================================
   REPORT / TRUST CARDS
   ========================================================================== */
.lf-docs{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(14px,1.8vw,22px); }
.lf-doc{
  border:1px solid var(--line); border-radius:var(--r-md); padding:26px 24px; background:var(--white);
  display:flex; flex-direction:column; transition:border-color var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.lf-doc:hover{ border-color:var(--forest-400); transform:translateY(-2px); }
.lf-doc__ic{ width:44px; height:44px; border-radius:11px; background:var(--sage); color:var(--forest); display:grid; place-items:center; margin-bottom:18px; }
.lf-doc__ic svg{ width:21px; height:21px; }
.lf-doc__y{ font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; font-weight:700; color:var(--ink-3); margin-bottom:8px; }
.lf-doc h3{ font-size:1.06rem; margin-bottom:9px; }
.lf-doc p{ font-size:.89rem; color:var(--ink-2); line-height:1.58; margin-bottom:18px; }
.lf-doc .lf-link{ margin-top:auto; align-self:flex-start; }

/* ==========================================================================
   COURSE CARDS + FILTERS
   ========================================================================== */
.lf-filters{ display:flex; flex-direction:row/*fdrow*/; gap:9px; flex-wrap:wrap; margin-bottom:32px; }
.lf-filter{
  border:1px solid var(--line); background:var(--white); border-radius:99px; padding:9px 18px;
  font-family:var(--body); font-weight:600; font-size:.86rem; color:var(--ink-2); cursor:pointer;
  transition:background var(--dur) var(--ease), color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.lf-filter:hover{ border-color:var(--forest-400); color:var(--forest); }
.lf-filter[aria-pressed="true"]{ background:var(--forest); border-color:var(--forest); color:var(--white); }

.lf-courses{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(14px,1.8vw,22px); }
.lf-course{
  border:1px solid var(--line-soft); border-radius:var(--r-md); background:var(--white); overflow:hidden;
  display:flex; flex-direction:column; transition:border-color var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.lf-course:hover{ border-color:var(--forest-400); transform:translateY(-3px); }
.lf-course__img{ aspect-ratio:16/9; overflow:hidden; background:var(--sage); }
.lf-course__img img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.lf-course:hover .lf-course__img img{ transform:scale(1.045); }
.lf-course__b{ padding:22px 22px 24px; display:flex; flex-direction:column; flex:1; }
.lf-course__cat{ font-size:.68rem; letter-spacing:.13em; text-transform:uppercase; font-weight:700; color:var(--terra-700); margin-bottom:10px; }
.lf-course h3{ font-size:1.05rem; margin-bottom:14px; }
.lf-course__meta{ display:flex; flex-direction:row/*fdrow*/; gap:14px; flex-wrap:wrap; margin-bottom:16px; }
.lf-course__meta div{ display:flex; flex-direction:row/*fdrow*/; align-items:center; gap:6px; font-size:.8rem; color:var(--ink-3); }
.lf-course__meta svg{ width:14px; height:14px; opacity:.7; }
.lf-course__out{ font-size:.86rem; color:var(--ink-2); line-height:1.55; margin-bottom:18px; }
.lf-course .lf-link{ margin-top:auto; align-self:flex-start; }

/* ==========================================================================
   GIVING WIDGET
   ========================================================================== */
.lf-give{ background:var(--white); border:1px solid var(--line); border-radius:var(--r-lg); padding:clamp(24px,2.8vw,38px); }
.lf-give__h{ display:flex; flex-direction:row/*fdrow*/; justify-content:space-between; align-items:flex-start; gap:20px; flex-wrap:wrap; margin-bottom:24px; }
.lf-give__h h3{ margin-bottom:6px; }
.lf-give__h p{ margin:0; font-size:.9rem; color:var(--ink-3); max-width:460px; }
.lf-toggle{ display:inline-flex; flex-direction:row/*fdrow*/; background:var(--sage); border-radius:99px; padding:4px; gap:2px; flex-shrink:0; }
.lf-toggle button{
  border:0; background:none; cursor:pointer; border-radius:99px; padding:10px 22px;
  font-family:var(--lf-display); font-weight:700; font-size:.86rem; color:var(--ink-3);
  transition:background var(--dur) var(--ease), color var(--dur) var(--ease);
}
.lf-toggle button[aria-pressed="true"]{ background:var(--white); color:var(--forest); }
.lf-amts{ display:grid; grid-template-columns:repeat(4,1fr); gap:11px; margin-bottom:22px; }
.lf-amt{
  border:1.5px solid var(--line); background:var(--white); border-radius:var(--r-sm);
  padding:16px 15px; text-align:left; cursor:pointer; font-family:var(--body);
  transition:border-color var(--dur) var(--ease), background var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.lf-amt:hover{ border-color:var(--forest-400); transform:translateY(-2px); }
.lf-amt[aria-pressed="true"]{ border-color:var(--forest); background:var(--sage-2); }
.lf-amt b{ display:block; font-family:var(--lf-display); font-size:1.24rem; color:var(--ink); line-height:1; margin-bottom:7px; letter-spacing:-.024em; }
.lf-amt span{ display:block; font-size:.77rem; color:var(--ink-3); line-height:1.42; }
.lf-amt[aria-pressed="true"] b{ color:var(--forest); }
.lf-give__f{ display:flex; flex-direction:row/*fdrow*/; align-items:center; gap:14px; flex-wrap:wrap; }
.lf-give__note{ font-size:.8rem; color:var(--ink-3); line-height:1.5; margin:0; flex:1; min-width:250px; }
.lf-input{
  border:1.5px solid var(--line); border-radius:var(--r-sm); padding:14px 16px; background:var(--white);
  font-family:var(--body); font-size:.95rem; color:var(--ink); min-height:48px; width:100%;
  transition:border-color var(--dur) var(--ease);
}
.lf-input:focus{ border-color:var(--forest); outline:none; }
.lf-input--w{ width:154px; font-family:var(--lf-display); font-weight:700; }

/* ==========================================================================
   FORMS
   ========================================================================== */
.lf-field{ margin-bottom:20px; }
.lf-field label{ display:block; font-family:var(--lf-display); font-weight:700; font-size:.9rem; color:var(--ink); margin-bottom:8px; }
.lf-field .lf-hint{ display:block; font-size:.8rem; color:var(--ink-3); margin-top:7px; }
.lf-hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

/* ==========================================================================
   NEWSLETTER
   ========================================================================== */
.lf-news{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(26px,3.4vw,60px); align-items:center; }
.lf-news h2{ margin-bottom:12px; }
.lf-news > div > p{ color:rgba(255,255,255,.68); font-size:.96rem; margin:0; max-width:430px; }
.lf-news__form{ display:flex; flex-direction:row/*fdrow*/; gap:11px; flex-wrap:wrap; }
.lf-news__form input[type="email"]{
  flex:1; min-width:220px; padding:15px 18px; border-radius:var(--r-sm); min-height:50px;
  border:1px solid rgba(255,255,255,.22); background:rgba(255,255,255,.07); color:var(--white);
  font-family:var(--body); font-size:.95rem;
}
.lf-news__form input::placeholder{ color:rgba(255,255,255,.42); }
.lf-news__form input:focus{ outline:none; border-color:var(--gold); background:rgba(255,255,255,.11); }
.lf-news__msg{ margin-top:13px; font-size:.86rem; color:var(--gold); min-height:1.2em; }
.lf-news__msg.is-ok{ color:#8FD9BE; }

/* ==========================================================================
   FINAL CTA
   ========================================================================== */
.lf-final{ position:relative; isolation:isolate; overflow:hidden; background:var(--forest-900); }
.lf-final__bg{ position:absolute; inset:0; z-index:-2; }
.lf-final__bg img{ width:100%; height:100%; object-fit:cover; }
.lf-final__bg::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(100deg, rgba(5,39,30,.95) 0%, rgba(5,39,30,.82) 46%, rgba(5,39,30,.5) 100%);
}
.lf-final__in{ position:relative; padding:clamp(64px,8vw,124px) 0; max-width:720px; }
.lf-final h2{ color:var(--white); margin-bottom:18px; }
.lf-final h2 em{ font-style:normal; color:var(--gold); }
.lf-final p{ color:rgba(255,255,255,.76); font-size:1.06rem; margin-bottom:32px; max-width:540px; }
.lf-final__acts{ display:flex; flex-direction:row/*fdrow*/; gap:13px; flex-wrap:wrap; }

/* ==========================================================================
   FOOTER
   ========================================================================== */
.lf-ft{ background:var(--forest); color:rgba(255,255,255,.62); position:relative; }
.lf-ft__motif{ height:6px; background:repeating-linear-gradient(90deg, var(--gold) 0 18px, transparent 18px 30px, var(--terra) 30px 44px, transparent 44px 62px); opacity:.6; }
.lf-ft a{ color:rgba(255,255,255,.62); }
.lf-ft a:hover{ color:var(--white); text-decoration:none; }
.lf-ft__top{ padding:clamp(52px,6vw,84px) 0 clamp(34px,4vw,52px); }
.lf-ft__grid{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr 1.25fr; gap:clamp(22px,2.6vw,44px); }
.lf-ft .lf-logo__n{ color:var(--white); }
.lf-ft .lf-logo__s{ color:rgba(255,255,255,.45); }
.lf-ft .lf-logo__m{ width:62px; height:62px; }
.lf-ft__mission{ font-size:.93rem; line-height:1.65; margin:20px 0 22px; color:rgba(255,255,255,.6); max-width:290px; }
.lf-ft h4{ color:var(--white); font-size:.76rem; letter-spacing:.14em; text-transform:uppercase; margin-bottom:18px; font-weight:700; }
.lf-ft ul{ list-style:none; padding:0; margin:0; }
.lf-ft li{ margin-bottom:11px; font-size:.9rem; }
.lf-ft__c{ font-size:.9rem; line-height:1.6; }
.lf-ft__c div{ margin-bottom:15px; }
.lf-ft__c b{ display:block; color:var(--white); font-size:.79rem; letter-spacing:.08em; text-transform:uppercase; margin-bottom:5px; font-weight:700; }
.lf-social{ display:flex; flex-direction:row/*fdrow*/; gap:9px; margin-top:22px; }
.lf-social a{
  width:40px; height:40px; border-radius:10px; border:1px solid rgba(255,255,255,.16);
  display:grid; place-items:center; transition:background var(--dur) var(--ease), border-color var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.lf-social a:hover{ background:var(--gold); border-color:var(--gold); color:var(--forest-900); transform:translateY(-2px); }
.lf-social svg{ width:17px; height:17px; }
.lf-ft__reg{
  border-top:1px solid rgba(255,255,255,.11); padding:22px 0;
  font-size:.8rem; color:rgba(255,255,255,.42); display:flex; flex-direction:row/*fdrow*/; gap:26px; flex-wrap:wrap;
}
.lf-ft__bar{
  border-top:1px solid rgba(255,255,255,.11); padding:20px 0;
  display:flex; flex-direction:row/*fdrow*/; justify-content:space-between; gap:16px; flex-wrap:wrap;
  font-size:.81rem; color:rgba(255,255,255,.42);
}
.lf-ft__bar a{ color:rgba(255,255,255,.42); }
.lf-ft__legal{ display:flex; flex-direction:row/*fdrow*/; gap:22px; flex-wrap:wrap; }

/* ==========================================================================
   PAGE HERO (inner pages)
   ========================================================================== */
.lf-phero{ background:var(--forest); position:relative; overflow:hidden; }
.lf-phero__bg{ position:absolute; inset:0; opacity:.26; }
.lf-phero__bg img{ width:100%; height:100%; object-fit:cover; }
.lf-phero__bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(100deg, rgba(14,92,70,.94), rgba(14,92,70,.6)); }
.lf-phero__in{ position:relative; padding:clamp(52px,6.4vw,96px) 0 clamp(48px,5.6vw,84px); max-width:760px; }
.lf-phero h1{ color:var(--white); margin-bottom:18px; }
.lf-phero p{ color:rgba(255,255,255,.78); font-size:clamp(1rem,.96rem + .32vw,1.18rem); line-height:1.6; margin-bottom:0; max-width:620px; }
.lf-phero__acts{ display:flex; flex-direction:row/*fdrow*/; gap:12px; flex-wrap:wrap; margin-top:30px; }
.lf-crumbs{ display:flex; flex-direction:row/*fdrow*/; gap:9px; align-items:center; flex-wrap:wrap; font-size:.8rem; color:rgba(255,255,255,.5); margin-bottom:20px; }
.lf-crumbs a{ color:rgba(255,255,255,.72); }
.lf-crumbs a:hover{ color:var(--white); }
.lf-crumbs svg{ width:12px; height:12px; opacity:.5; }

/* ==========================================================================
   SPLIT / FEATURE / NOTICE / QUOTE / FAQ / PROSE
   ========================================================================== */
.lf-split{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,4.4vw,76px); align-items:center; }
.lf-split--wl{ grid-template-columns:1.12fr .88fr; }
.lf-split--wr{ grid-template-columns:.88fr 1.12fr; }
.lf-split.is-flip .lf-split__m{ order:2; }
.lf-split__m img{ width:100%; border-radius:var(--r-md); aspect-ratio:4/3; object-fit:cover; }
.lf-split__m.is-tall img{ aspect-ratio:3/4; }
.lf-split__b h2{ margin-bottom:18px; }
.lf-split__b > p{ color:var(--ink-2); }
.lf-forest .lf-split__b > p{ color:rgba(255,255,255,.75); }
.lf-ticks{ list-style:none; padding:0; margin:24px 0 28px; }
.lf-ticks li{ position:relative; padding-left:32px; margin-bottom:13px; color:var(--ink-2); font-size:.96rem; line-height:1.56; }
.lf-ticks li::before{
  content:""; position:absolute; left:0; top:4px; width:19px; height:19px; border-radius:50%;
  background:var(--sage) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E5C46' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/11px no-repeat;
}
.lf-forest .lf-ticks li{ color:rgba(255,255,255,.78); }
.lf-forest .lf-ticks li::before{ background-color:rgba(255,255,255,.12); }

.lf-feats{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(20px,2.6vw,40px); }
.lf-feat__ic{ width:48px; height:48px; border-radius:12px; background:var(--sage); color:var(--forest); display:grid; place-items:center; margin-bottom:18px; }
.lf-feat__ic svg{ width:22px; height:22px; }
.lf-forest .lf-feat__ic{ background:rgba(255,255,255,.1); color:var(--gold); }
.lf-feat h3{ font-size:1.08rem; margin-bottom:9px; }
.lf-feat p{ font-size:.92rem; color:var(--ink-2); line-height:1.6; margin-bottom:0; }
.lf-forest .lf-feat p{ color:rgba(255,255,255,.72); }

.lf-note{
  border:1px solid var(--line); border-left:3px solid var(--terra); border-radius:var(--r-sm);
  background:var(--white); padding:22px 26px; font-size:.92rem; color:var(--ink-2); line-height:1.62;
}
.lf-note p:last-child{ margin-bottom:0; }
.lf-note strong{ color:var(--ink); }
.lf-forest .lf-note,.lf-forest-900 .lf-note{ background:rgba(255,255,255,.055); border-color:rgba(255,255,255,.16); border-left-color:var(--gold); color:rgba(255,255,255,.76); }
.lf-forest .lf-note strong{ color:var(--white); }
.lf-forest .lf-note a{ color:var(--gold); }

.lf-quote{ border-left:3px solid var(--terra); padding:4px 0 4px 28px; max-width:840px; }
.lf-quote p{
  font-family:var(--lf-display); font-weight:600; font-size:clamp(1.25rem,1.05rem + .95vw,1.9rem);
  line-height:1.32; letter-spacing:-.02em; color:var(--ink); margin-bottom:14px;
}
.lf-quote cite{ font-style:normal; font-size:.88rem; color:var(--ink-3); font-family:var(--body); }
.lf-forest .lf-quote{ border-left-color:var(--gold); }
.lf-forest .lf-quote p{ color:var(--white); }
.lf-forest .lf-quote cite{ color:rgba(255,255,255,.55); }

.lf-faq{ max-width:860px; }
.lf-faq details{ border-bottom:1px solid var(--line); }
.lf-faq summary{
  cursor:pointer; padding:22px 52px 22px 0; position:relative; list-style:none;
  font-family:var(--lf-display); font-weight:700; font-size:1.04rem; color:var(--ink); line-height:1.4;
}
.lf-faq summary::-webkit-details-marker{ display:none; }
.lf-faq summary::after{
  content:""; position:absolute; right:8px; top:50%; width:14px; height:14px; margin-top:-7px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23EE8322' stroke-width='2.6' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center/contain no-repeat;
  transition:transform var(--dur) var(--ease);
}
.lf-faq details[open] summary::after{ transform:rotate(135deg); }
.lf-faq summary:hover{ color:var(--forest); }
.lf-faq__a{ padding:0 52px 24px 0; color:var(--ink-2); font-size:.96rem; line-height:1.68; }
.lf-faq__a p:last-child{ margin-bottom:0; }

.lf-prose{ max-width:var(--read); }
.lf-prose > *:first-child{ margin-top:0; }
.lf-prose h2{ font-size:clamp(1.42rem,1.2rem + .85vw,1.95rem); margin:2.3em 0 .55em; }
.lf-prose h3{ font-size:clamp(1.12rem,1.02rem + .4vw,1.3rem); margin:1.9em 0 .5em; }
.lf-prose p{ font-size:1.06rem; line-height:1.78; color:var(--ink-2); margin-bottom:1.3em; }
.lf-prose ul,.lf-prose ol{ margin:0 0 1.6em; padding-left:1.25em; }
.lf-prose li{ font-size:1.03rem; line-height:1.72; color:var(--ink-2); margin-bottom:.55em; }
.lf-prose li::marker{ color:var(--terra); }
.lf-prose blockquote{ margin:2.2em 0; padding:4px 0 4px 26px; border-left:3px solid var(--terra); }
.lf-prose blockquote p{ font-family:var(--lf-display); font-weight:600; font-size:1.24rem; line-height:1.42; color:var(--ink); margin-bottom:0; }
.lf-prose figure{ margin:2.3em 0; }
.lf-prose figure img{ border-radius:var(--r-md); width:100%; }
.lf-prose figcaption{ font-size:.83rem; color:var(--ink-3); margin-top:11px; }
.lf-prose table{ width:100%; border-collapse:collapse; margin:2em 0; font-size:.95rem; }
.lf-prose th,.lf-prose td{ border:1px solid var(--line); padding:12px 15px; text-align:left; vertical-align:top; }
.lf-prose th{ background:var(--sage-2); font-family:var(--lf-display); font-weight:700; font-size:.88rem; color:var(--ink); }
.lf-prose td{ color:var(--ink-2); }
.lf-tablewrap{ overflow-x:auto; -webkit-overflow-scrolling:touch; margin:2em 0; }
.lf-tablewrap table{ margin:0; min-width:520px; }
.lf-prose .lf-note{ margin:2em 0; }

.lf-article{ display:grid; grid-template-columns:minmax(0,var(--read)) 300px; gap:clamp(30px,4.6vw,80px); align-items:start; }
.lf-aside{ position:sticky; top:calc(var(--header-h) + 24px); }
.lf-aside__b{ border:1px solid var(--line); border-radius:var(--r-md); padding:24px; margin-bottom:16px; background:var(--white); }
.lf-aside__b h4{ font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-3); margin-bottom:15px; }
.lf-toc{ list-style:none; padding:0; margin:0; font-size:.89rem; }
.lf-toc li{ margin-bottom:9px; }
.lf-toc a{ color:var(--ink-2); display:block; border-left:2px solid var(--line); padding-left:12px; line-height:1.45; }
.lf-toc a:hover{ color:var(--forest); border-left-color:var(--terra); text-decoration:none; }
.lf-meta{ display:flex; flex-direction:row/*fdrow*/; gap:15px; flex-wrap:wrap; align-items:center; font-size:.84rem; color:rgba(255,255,255,.6); margin-top:22px; }
.lf-meta i{ opacity:.4; font-style:normal; }

/* post cards */
.lf-posts{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,2vw,26px); }
.lf-post{
  border:1px solid var(--line-soft); border-radius:var(--r-md); background:var(--white); overflow:hidden;
  display:flex; flex-direction:column; transition:border-color var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.lf-post:hover{ border-color:var(--forest-400); transform:translateY(-3px); }
.lf-post__img{ aspect-ratio:16/10; overflow:hidden; background:var(--sage); }
.lf-post__img img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.lf-post:hover .lf-post__img img{ transform:scale(1.045); }
.lf-post__b{ padding:22px 22px 24px; display:flex; flex-direction:column; flex:1; }
.lf-post__cat{ font-size:.68rem; letter-spacing:.13em; text-transform:uppercase; font-weight:700; color:var(--terra-700); margin-bottom:11px; }
.lf-post h3{ font-size:1.06rem; line-height:1.32; margin-bottom:10px; }
.lf-post h3 a{ color:var(--ink); }
.lf-post h3 a:hover{ color:var(--forest); text-decoration:none; }
.lf-post p{ font-size:.9rem; color:var(--ink-2); line-height:1.58; margin-bottom:16px; }
.lf-post__f{ margin-top:auto; font-size:.79rem; color:var(--ink-3); display:flex; flex-direction:row/*fdrow*/; gap:9px; align-items:center; }

/* contact */
.lf-contact{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,3.4vw,52px); }
.lf-cbox{ border:1px solid var(--line); border-radius:var(--r-md); padding:32px 30px; background:var(--white); }
.lf-crow{ display:flex; flex-direction:row/*fdrow*/; gap:16px; align-items:flex-start; padding:17px 0; border-bottom:1px solid var(--line-soft); }
.lf-crow:last-child{ border-bottom:0; padding-bottom:0; }
.lf-crow__ic{ width:40px; height:40px; border-radius:10px; background:var(--sage); color:var(--forest); display:grid; place-items:center; flex-shrink:0; }
.lf-crow__ic svg{ width:18px; height:18px; }
.lf-crow h4{ font-size:.97rem; margin-bottom:4px; }
.lf-crow p{ font-size:.9rem; color:var(--ink-2); margin-bottom:0; line-height:1.55; }

/* partner logos */
.lf-logos{ display:grid; grid-template-columns:repeat(6,1fr); gap:14px; }
.lf-logos__s{
  aspect-ratio:16/9; border:1px dashed var(--line); border-radius:var(--r-sm);
  display:grid; place-items:center; color:var(--ink-4); font-size:.72rem; text-align:center; padding:10px;
  background:var(--white);
}

/* utility spacing */
.lf-mt16{ margin-top:16px; } .lf-mt24{ margin-top:24px; } .lf-mt32{ margin-top:32px; } .lf-mt48{ margin-top:48px; }

/* reveal */
.lf-rv{ opacity:0; transform:translateY(18px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.lf-rv.is-in{ opacity:1; transform:none; }

@media (prefers-reduced-motion: reduce){
  .lf-rv{ opacity:1 !important; transform:none !important; transition:none !important; }
  .lf-path path{ stroke-dashoffset:0 !important; transition:none !important; }
  .lf-path circle{ opacity:1 !important; }
  *,*::before,*::after{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:1280px){
  .lf-nav__l{ padding:10px 10px; font-size:.89rem; }
  .lf-ft__grid{ grid-template-columns:1.5fr 1fr 1fr 1.2fr; }
  .lf-ft__grid > div:nth-child(4){ grid-column:span 1; }
}
@media (max-width:1100px){
  :root{ --gutter:24px; }
  .lf-logo__s{ display:none; }
  .lf-jsteps{ grid-template-columns:repeat(3,1fr); row-gap:36px; }
  .lf-journey__line{ display:none; }
  .lf-progs{ grid-template-columns:repeat(4,1fr); }
  .lf-pc--xl,.lf-pc--md{ grid-column:span 2; }
  .lf-pc--sm{ grid-column:span 2; }
  .lf-article{ grid-template-columns:minmax(0,1fr); }
  .lf-aside{ position:static; }
  .lf-courses,.lf-docs,.lf-posts,.lf-feats{ grid-template-columns:repeat(2,1fr); }
  .lf-logos{ grid-template-columns:repeat(4,1fr); }
  .lf-districts{ grid-template-columns:repeat(3,1fr); }
  .lf-map{ grid-template-columns:1fr; gap:36px; }
  .lf-hero__in{ grid-template-columns:1fr; gap:44px; }
  .lf-hero__v{ max-width:520px; }
  .lf-hero::after{ display:none; }
  .lf-ft__grid{ grid-template-columns:1fr 1fr 1fr; row-gap:36px; }
}
@media (max-width:900px){
  :root{ --header-h:66px; }
  .lf-nav{ display:none; }
  .lf-hd__cta .lf-btn{ display:none; }
  .lf-burger{ display:grid; }
  .lf-bar__l{ display:none; }
  .lf-bar .lf-container{ justify-content:center; }
  .lf-head{ grid-template-columns:1fr; gap:18px; align-items:start; }
  .lf-head__actions{ justify-self:start; }
  .lf-ways{ grid-template-columns:1fr; }
  .lf-split,.lf-split--wl,.lf-split--wr{ grid-template-columns:1fr; gap:32px; }
  .lf-split.is-flip .lf-split__m{ order:0; }
  .lf-split__m img,.lf-split__m.is-tall img{ aspect-ratio:16/10; }
  .lf-story{ grid-template-columns:1fr; gap:30px; }
  .lf-story__p img{ aspect-ratio:4/3; }
  .lf-story__arc{ grid-template-columns:repeat(2,1fr); }
  .lf-story__arc div{ padding-right:14px; }
  .lf-figs{ grid-template-columns:repeat(2,1fr); }
  .lf-fig{ border-bottom:1px solid var(--line-dark); }
  .lf-fig:nth-child(2n){ border-right:0; }
  .lf-figs--light .lf-fig{ border-bottom-color:var(--line); }
  .lf-news{ grid-template-columns:1fr; gap:26px; }
  .lf-contact{ grid-template-columns:1fr; }
  .lf-collage{ grid-template-columns:1fr 1fr; grid-template-rows:auto auto; }
  .lf-collage__a{ grid-column:span 2; grid-row:auto; }
  .lf-collage__a img{ min-height:0; aspect-ratio:16/9; }
  .lf-amts{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:640px){
  :root{ --gutter:20px; }
  body.lf{ font-size:16.5px; }
  .lf-progs{ grid-template-columns:1fr; }
  .lf-pc--xl,.lf-pc--md,.lf-pc--sm{ grid-column:span 1; }
  .lf-jsteps{ grid-template-columns:1fr; row-gap:0; }
  .lf-jstep{ display:grid; grid-template-columns:68px 1fr; gap:18px; padding-bottom:26px; position:relative; }
  .lf-jstep::after{ content:""; position:absolute; left:33px; top:74px; bottom:6px; width:2px; background:var(--line); }
  .lf-jstep:last-child::after{ display:none; }
  .lf-jstep__n{ margin-bottom:0; }
  .lf-jstep__tx{ padding-top:6px; }
  .lf-courses,.lf-docs,.lf-posts,.lf-feats{ grid-template-columns:1fr; }
  .lf-logos{ grid-template-columns:repeat(2,1fr); }
  .lf-districts{ grid-template-columns:repeat(2,1fr); }
  .lf-figs{ grid-template-columns:1fr; }
  .lf-fig{ border-right:0; padding:26px 0 22px; }
  .lf-ft__grid{ grid-template-columns:1fr; row-gap:32px; }
  .lf-ft__bar{ flex-direction:column; gap:12px; }
  .lf-amts{ grid-template-columns:1fr; }
  .lf-give__f{ flex-direction:column; align-items:stretch; }
  .lf-input--w{ width:100%; }
  .lf-give__f .lf-btn{ width:100%; }
  .lf-hero__acts .lf-btn,.lf-final__acts .lf-btn,.lf-phero__acts .lf-btn{ width:100%; }
  .lf-hero__v-sub{ left:-14px; bottom:-18px; width:48%; }
  .lf-hero__chip{ left:12px; top:12px; }
  .lf-hero__card{ right:0; bottom:-26px; padding:16px 18px; max-width:180px; }
  .lf-hero__trust{ gap:12px; }
  .lf-hero__trust .lf-vr{ display:none; }
  .lf-story__arc{ grid-template-columns:1fr; }
  .lf-news__form input[type="email"]{ min-width:0; }
  .lf-news__form .lf-btn{ width:100%; }
  .lf-quote{ padding-left:20px; }
  .lf-faq summary{ padding-right:40px; font-size:.99rem; }
  .lf-faq__a{ padding-right:0; }
  .lf-purpose__meta{ gap:22px; }
}

@media print{
  .lf-head-wrap,.lf-bar,.lf-ft,.lf-mob,.lf-final,.lf-burger{ display:none !important; }
  body.lf{ background:#fff; font-size:12pt; }
  .lf-prose{ max-width:none; }
}

/* ==========================================================================
   WHATSAPP — click to chat
   ========================================================================== */
.lf-wa{
  position:fixed; right:20px; bottom:20px; z-index:120;
  display:inline-flex; flex-direction:row/*fdrow*/; align-items:center; height:56px; padding:0 15px;
  border-radius:28px; background:#128C7E; color:#fff !important;
  text-decoration:none !important; font-family:var(--lf-display); font-weight:700; font-size:.94rem;
  box-shadow:0 6px 24px rgba(18,140,126,.34);
  transition:padding var(--dur) var(--ease), background .2s var(--ease);
}
.lf-wa svg{ width:26px; height:26px; flex-shrink:0; }
.lf-wa__l{
  max-width:0; overflow:hidden; white-space:nowrap; opacity:0;
  transition:max-width var(--dur) var(--ease), opacity .2s var(--ease), margin-left var(--dur) var(--ease);
}
.lf-wa:hover,.lf-wa:focus-visible{ background:#0F7A6D; }
.lf-wa:hover .lf-wa__l,.lf-wa:focus-visible .lf-wa__l{ max-width:220px; opacity:1; margin-left:10px; }
.lf-wa:focus-visible{ outline:3px solid var(--gold); outline-offset:3px; }
@media (prefers-reduced-motion: reduce){ .lf-wa,.lf-wa__l{ transition:none; } }
@media (max-width:640px){
  .lf-wa{ right:14px; bottom:14px; height:52px; padding:0 13px; }
  .lf-wa .lf-wa__l{ display:none; }
}

/* inline panel, where a message is genuinely the next step */
.lf-wap{
  border-radius:var(--r-lg); background:var(--white); border:1px solid var(--line-soft);
  padding:clamp(24px,3vw,38px); box-shadow:var(--sh-1);
}
.lf-wap__k{
  display:inline-flex; flex-direction:row/*fdrow*/; align-items:center; gap:8px; font-size:.72rem; letter-spacing:.14em;
  text-transform:uppercase; font-weight:700; color:#0F7A6D; margin-bottom:14px;
}
.lf-wap__k svg{ width:16px; height:16px; }
.lf-wap h3{ font-size:clamp(1.25rem,1.1rem + .6vw,1.6rem); margin-bottom:10px; }
.lf-wap p{ color:var(--ink-2); font-size:.97rem; margin-bottom:22px; }
.lf-wap__btn{
  display:inline-flex; flex-direction:row/*fdrow*/; align-items:center; gap:10px; height:52px; padding:0 24px;
  border-radius:var(--r-sm); background:#128C7E; color:#fff !important;
  font-family:var(--lf-display); font-weight:700; font-size:.97rem; text-decoration:none !important;
}
.lf-wap__btn:hover{ background:#0F7A6D; }
.lf-wap__btn svg{ width:20px; height:20px; }
.lf-wap__alt{ margin:18px 0 0; font-size:.88rem; color:var(--ink-3); }
.lf-wap__alt a{ color:var(--forest); font-weight:600; text-decoration:underline; }

/* ==========================================================================
   REGISTRATION STATUS
   ========================================================================== */
.lf-status{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.lf-status__i{ border:1px solid var(--line-soft); border-radius:var(--r-md); padding:20px 22px; background:var(--white); }
.lf-status__l{ font-family:var(--lf-display); font-weight:700; font-size:1rem; color:var(--ink); margin-bottom:9px; display:block; }
.lf-status__v{ display:inline-flex; flex-direction:row/*fdrow*/; align-items:center; gap:7px; font-size:.76rem; font-weight:700; letter-spacing:.04em; padding:5px 11px; border-radius:100px; }
.lf-status__v svg{ width:14px; height:14px; }
.lf-status__i--done .lf-status__v{ background:rgba(22,169,124,.13); color:#0B6B4E; }
.lf-status__i--wip .lf-status__v{ background:var(--gold-050); color:#8A6212; }
.lf-status__n{ margin:11px 0 0; font-size:.85rem; color:var(--ink-3); line-height:1.5; }
@media (max-width:900px){ .lf-status{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .lf-status{ grid-template-columns:1fr; } }

/* ==========================================================================
   CHAKRA RULE — the emblem's colours as a hairline
   ========================================================================== */
.lf-chakra-rule{
  height:3px; border-radius:2px; border:0; margin:0;
  background:linear-gradient(90deg, var(--forest) 0 22%, var(--emerald) 22% 38%, var(--terra) 38% 58%, var(--blue) 58% 78%, var(--indigo) 78% 92%, var(--gold) 92% 100%);
}

@media print{ .lf-wa{ display:none !important; } }

/* real partner tile */
.lf-logos--real{ display:flex; flex-direction:row/*fdrow*/; justify-content:center; gap:18px; flex-wrap:wrap; }
.lf-logos__i{ display:flex; flex-direction:column; align-items:center; gap:11px; }
.lf-logos__i img{ width:132px; height:auto; border-radius:var(--r-sm); display:block; }
.lf-logos__i span{ font-size:.7rem; letter-spacing:.13em; text-transform:uppercase; font-weight:700; color:var(--ink-3); }


/* ==========================================================================
   CONTRAST AND FIT CORRECTIONS
   `body.lf a` scores (0,1,2) and outranks `.lf-ft a` (0,1,1), so every link
   sitting on a dark ground inherited the forest green and became unreadable.
   These re-assert the intended colours at matching specificity.
   ========================================================================== */

body.lf .lf-bar a{ color:rgba(255,255,255,.74); }
body.lf .lf-bar a:hover{ color:var(--white); }

body.lf .lf-ft a{ color:rgba(255,255,255,.66); }
body.lf .lf-ft a:hover{ color:var(--white); }
body.lf .lf-ft h4{ color:var(--white); }
body.lf .lf-ft__bar a{ color:rgba(255,255,255,.46); }
body.lf .lf-ft__bar a:hover{ color:var(--white); }
body.lf .lf-ft .lf-social a{ color:rgba(255,255,255,.82); }
body.lf .lf-ft .lf-social a:hover{ color:var(--forest-900); }
body.lf .lf-ft .lf-btn,
body.lf .lf-ft .lf-btn:hover{ color:var(--white); }

/* dark sections inside the page body */
body.lf .lf-forest a:not(.lf-btn):not(.lf-wap__btn),
body.lf .lf-forest-900 a:not(.lf-btn):not(.lf-wap__btn),
body.lf .lf-final a:not(.lf-btn),
body.lf .lf-map a:not(.lf-btn),
body.lf .lf-news a:not(.lf-btn),
body.lf .lf-quote a:not(.lf-btn),
body.lf .lf-way--job a:not(.lf-btn){ color:var(--gold); }
body.lf .lf-forest a:not(.lf-btn):hover,
body.lf .lf-forest-900 a:not(.lf-btn):hover,
body.lf .lf-final a:not(.lf-btn):hover,
body.lf .lf-news a:not(.lf-btn):hover{ color:var(--white); }

body.lf .lf-final h1,body.lf .lf-final h2,body.lf .lf-final h3,
body.lf .lf-map h2,body.lf .lf-map h3,
body.lf .lf-news h2,body.lf .lf-news h3,
body.lf .lf-quote,
body.lf .lf-way--job h3{ color:var(--white); }

/* ==========================================================================
   HEADER FIT
   Logo + nav + two calls to action measured 1359px against 1264px of room at
   1440, so the donate button was pushed off the right edge.
   ========================================================================== */

body.lf .lf-hd__in{ gap:14px; }
body.lf .lf-nav{ gap:0; min-width:0; }
body.lf .lf-nav__l{ padding:10px 10px; font-size:.9rem; }
body.lf .lf-nav__l::after{ left:10px; right:10px; }
body.lf .lf-hd__cta{ margin-left:auto; flex-shrink:0; }

@media (max-width:1280px){
  body.lf .lf-hd__learn{ display:none; }
  body.lf .lf-nav__l{ padding:10px 8px; font-size:.875rem; }
}

/* the top bar turns into a cramped two-line block on a phone */
@media (max-width:760px){
  body.lf .lf-bar__r a:not([href*="wa.me"]){ display:none; }
  body.lf .lf-bar .lf-container{ justify-content:center; min-height:34px; }
  body.lf .lf-bar__r{ gap:0; }
}

/* ==========================================================================
   FOOTER AT TABLET
   Five blocks in a three-column grid left a ragged second row. Two columns
   with the brand spanning both reads as a deliberate layout.
   ========================================================================== */
@media (min-width:761px) and (max-width:1060px){
  body.lf .lf-ft__grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:34px 36px; }
  body.lf .lf-ft__grid > *:first-child{ grid-column:1 / -1; }
}

/* ==========================================================================
   ELEMENTOR WIDGET DEFAULTS
   Elementor's heading widget paints `var(--e-global-color-primary)` at
   specificity (0,2,0), which outranked `body.lf h1` (0,1,1) — every converted
   heading came out in Elementor's stock sky blue. Letting headings inherit
   puts them back under the section's own colour, and still loses to anything
   the editor sets per element, so drag-and-drop editing keeps working.
   ========================================================================== */

body.lf .elementor-widget-heading .elementor-heading-title{ color:inherit; }

body.lf .lf-forest .elementor-icon,
body.lf .lf-forest-900 .elementor-icon,
body.lf .lf-final .elementor-icon,
body.lf .lf-news .elementor-icon{ color:var(--gold); }

body.lf .elementor-widget-text-editor{ color:inherit; }

body.lf .elementor-widget-heading .elementor-heading-title{ font-family:var(--lf-display); }
body.lf .elementor-widget-text-editor,
body.lf .elementor-widget-button .elementor-button{ font-family:var(--body); }
body.lf .elementor-widget-button .elementor-button{ font-family:var(--lf-display); }

/* ==========================================================================
   DARK SECTION HEADINGS
   `.elementor-widget-heading .elementor-heading-title` (0,2,0) now inherits, so
   on a dark ground a heading would pick up the section's muted body colour.
   These match that specificity exactly and sit later in the cascade, which
   leaves Elementor's own per-element rules (0,3,0) free to override them.
   ========================================================================== */
.lf-forest .elementor-heading-title,
.lf-forest-900 .elementor-heading-title,
.lf-final .elementor-heading-title,
.lf-map .elementor-heading-title,
.lf-news .elementor-heading-title,
.lf-quote .elementor-heading-title,
.lf-phero .elementor-heading-title,
.lf-break .elementor-heading-title,
.on-dark .elementor-heading-title{ color:var(--white); }

/* ==========================================================================
   THE MEASURE WRAPPER KEEPS ITS GUTTER
   Several inner wrappers carry .lf-container and also set a four-value padding
   shorthand for their vertical rhythm, which zeroed the side gutter. Below the
   site's max width that pinned text to the screen edge on a phone. Re-assert
   the gutter last so the shorthand only governs the vertical padding.
   ========================================================================== */
.lf-container{ padding-inline:var(--gutter); }

/* ==========================================================================
   STACKED HERO FILLS THE COLUMN
   The hero's two halves carry a reading measure for the side-by-side layout.
   Once they stack, that measure left a wide dead margin on a tablet.
   ========================================================================== */
@media (max-width:1024px){
  .lf-hero__t{ max-width:none; }
  .lf-hero__v{ max-width:none; }
  .lf-phero__in{ max-width:none; }
}

/* The learner's two entry points sit as a pair above the campaign buttons,
   so the phone menu does not read as four identical stacked bars. */
.lf-mob__learn{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:10px; }
.lf-mob__learn .lf-btn{ width:100%; padding-inline:12px; font-size:.9rem; }
@media (max-width:379px){ .lf-mob__learn{ grid-template-columns:1fr; } }
