:root{color-scheme:light;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}html{scroll-padding-top:env(safe-area-inset-top,0px)}body{margin:0;padding:0;font:14px -apple-system,BlinkMacSystemFont,sans-serif;background:#faf9f5;color:#141413}img{max-width:100%}[hidden]:not([hidden=until-found i]){display:none!important}
:root{
    --bg:#FAF6EE; --bg-alt:#F2ECDF; --surface:#FFFDF9; --ink:#2B3528; --ink-soft:#5C675866; --ink-soft2:#5A6556;
    --teal:#4E6E4A; --teal-deep:#3A5637; --teal-pale:#E4EBDC; --accent:#4E6E4A; --accent-contrast:#FFFDF9;
    --gold:#A2621A; --gold-soft:#F7E6C4; --marigold:#E3A23B; --line:#E3DCCB;
    --deep:#2F4630; --on-deep:#F1F3EA; --on-deep-soft:#C9D4C2; --deep-accent:#F3D08A;
    --shadow: 0 18px 40px -22px rgba(60,48,24,0.35);
    color-scheme: light;
  }
  @media not all{
    :root:not([data-theme="light"]){
    --bg:#151A13; --bg-alt:#1B2118; --surface:#232B20; --ink:#EDF0E6; --ink-soft2:#B8C0AF;
    --teal:#A3C597; --teal-deep:#C3DCB7; --teal-pale:#2B3627; --accent:#A3C597; --accent-contrast:#151A13;
    --gold:#F0B65A; --gold-soft:#3B2F18; --marigold:#E9A93F; --line:#343F2F;
    --deep:#0E120C; --on-deep:#EDF0E6; --on-deep-soft:#B9C4B1; --deep-accent:#F3D08A;
    --shadow: 0 18px 40px -20px rgba(0,0,0,0.6);
    color-scheme: dark;
    }
  }
  :root[data-theme="never"]{
    --bg:#151A13; --bg-alt:#1B2118; --surface:#232B20; --ink:#EDF0E6; --ink-soft2:#B8C0AF;
    --teal:#A3C597; --teal-deep:#C3DCB7; --teal-pale:#2B3627; --accent:#A3C597; --accent-contrast:#151A13;
    --gold:#F0B65A; --gold-soft:#3B2F18; --marigold:#E9A93F; --line:#343F2F;
    --deep:#0E120C; --on-deep:#EDF0E6; --on-deep-soft:#B9C4B1; --deep-accent:#F3D08A;
    --shadow: 0 18px 40px -20px rgba(0,0,0,0.6);
    color-scheme: dark;
  }
  *{box-sizing:border-box;}
  body{
    background:var(--bg);
    color:var(--ink);
    font-family:'Lato', 'Noto Sans Malayalam', ui-sans-serif, system-ui, sans-serif;
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,h4{
    font-family:'Lora', 'Noto Serif Malayalam', ui-serif, Georgia, serif;
    color:var(--ink);
    text-wrap:balance;
    margin:0;
    font-weight:600;
  }
  p{margin:0;}
  a{color:inherit;}
  .mono{
    font-family:'Lato', ui-monospace, monospace;
    font-variant-numeric: tabular-nums;
  }
  img{max-width:100%; display:block;}

  .wrap{
    max-width:1160px;
    margin-inline:auto;
    padding-inline: clamp(18px, 4vw, 40px);
  }
  section{ padding-block: clamp(52px, 8vw, 96px); }
  .eyebrow{
    font-family:'Lato', sans-serif;
    font-size:0.72rem;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--gold);
    font-weight:600;
  }
  .lede{
    font-size:clamp(1.02rem, 1.4vw, 1.18rem);
    color:var(--ink-soft2);
    max-width:62ch;
  }

  /* ---------- header ---------- */
  header.site{
    position:sticky;
    top: env(safe-area-inset-top, 0px);
    z-index:40;
    background: color-mix(in srgb, var(--bg) 88%, transparent);
    backdrop-filter: blur(10px);
    border-bottom:1px solid var(--line);
  }
  .nav-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding-block:14px;
  }
  .brand{
    display:flex;
    align-items:center;
    gap:10px;
    font-family:'Lora', serif;
    font-weight:600;
    font-size:1.05rem;
    white-space:nowrap;
  }
  .brand-mark{
    width:34px; height:34px; border-radius:50%;
    background: radial-gradient(circle at 32% 28%, var(--gold), var(--teal) 68%);
    flex:0 0 auto;
    position:relative;
  }
  .brand-mark::after{
    content:"";
    position:absolute; inset:9px;
    border-radius:50%;
    background:var(--surface);
    opacity:0.16;
  }
  nav.links{
    display:flex; gap:clamp(10px,2vw,26px);
    font-size:0.9rem;
    font-weight:500;
    flex-wrap:wrap;
  }
  nav.links a{ text-decoration:none; color:var(--ink-soft2); }
  nav.links a:hover{ color:var(--teal); }
  .btn{
    display:inline-flex; align-items:center; gap:8px;
    padding:10px 20px;
    border-radius:999px;
    font-weight:600;
    font-size:0.88rem;
    text-decoration:none;
    border:1px solid transparent;
    cursor:pointer;
    white-space:nowrap;
  }
  .btn-primary{ background:var(--teal); color:var(--accent-contrast); }
  .btn-primary:hover{ background:var(--teal-deep); }
  .btn-ghost{ border-color:var(--line); color:var(--ink); background:transparent; border-width:1.5px; border-style:solid; cursor:pointer; }
  .btn-ghost:hover{ border-color:var(--teal); color:var(--teal); }
  .btn-gold{ background:var(--marigold); color:#2A1B08; }

  /* ---------- hero ---------- */
  .hero{
    position:relative;
    padding-block: 0;
    overflow:hidden;
  }
  .hero-media{
    position:relative;
    min-height: clamp(420px, 62vw, 640px);
    display:flex;
    align-items:flex-end;
  }
  .hero-media img{
    position:absolute; inset:0;
    width:100%; height:100%;
    object-fit:cover;
    object-position: center 30%;
  }
  .hero-slides{ position:absolute; inset:0; }
  .hero-media img.hero-slide{ opacity:0; transition:opacity 1.6s ease, transform 9s ease-out; transform:scale(1.04); }
  .hero-media img.hero-slide.is-active{ opacity:1; transform:scale(1); }
  .hero-dots{ position:absolute; right:clamp(16px,4vw,40px); bottom:clamp(16px,3vw,28px); display:flex; gap:8px; z-index:2; }
  .hero-dots button{ width:9px; height:9px; padding:0; border-radius:50%; border:1px solid rgba(255,255,255,0.8); background:transparent; cursor:pointer; transition:background .3s, width .3s; }
  .hero-dots button[aria-current="true"]{ background:#fff; width:22px; border-radius:6px; }
  @media (max-width:640px){ .hero-scrim{ background:linear-gradient(180deg, rgba(22,28,18,0.55) 0%, rgba(22,28,18,0.6) 50%, rgba(22,28,18,0.9) 100%); } }
  @media (prefers-reduced-motion: reduce){ .hero-media img.hero-slide{ transition:none; transform:none; } }
  .hero-scrim{
    position:absolute; inset:0;
    background: linear-gradient(180deg, rgba(22,28,18,0.15) 0%, rgba(22,28,18,0.55) 62%, rgba(22,28,18,0.88) 100%);
  }
  .hero-inner{
    position:relative;
    color:#FBF8F0;
    padding-block: clamp(40px, 8vw, 72px);
    display:flex; flex-direction:column; gap:20px;
  }
  .hero-inner .eyebrow{ color:var(--gold-soft, #F2DFB8); }
  .hero h1{
    color:#fff;
    font-size:clamp(2.1rem, 5vw, 3.6rem);
    line-height:1.05;
    max-width:16ch;
  }
  .hero .lede{ color:#EEEDE4; max-width:52ch; }
  .hero-ctas{ display:flex; gap:14px; flex-wrap:wrap; margin-top:6px; }

  .stat-strip{
    background:var(--deep);
    color:var(--on-deep);
  }
  .stat-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap: clamp(18px, 3vw, 32px);
    padding-block: clamp(26px, 4vw, 34px);
  }
  .stat-grid div{ border-left:1px solid rgba(255,255,255,0.18); padding-left: clamp(12px,2vw,20px); }
  .stat-grid div:first-child{ border-left:none; padding-left:0; }
  .stat-num{
    font-size:clamp(1.5rem, 3vw, 2.2rem);
    font-weight:600;
    color:var(--deep-accent);
    display:block;
  }
  .stat-label{ font-size:0.82rem; color:var(--on-deep-soft); margin-top:4px; display:block; }

  /* ---------- section heads ---------- */
  .section-head{
    display:flex; flex-direction:column; gap:10px;
    margin-bottom: clamp(28px, 4vw, 44px);
    max-width:68ch;
  }
  .section-head h2{ font-size:clamp(1.6rem, 3.4vw, 2.35rem); }

  /* ---------- story timeline ---------- */
  .story-layout{
    display:grid;
    grid-template-columns: 1.1fr 1fr;
    gap:clamp(28px,4vw,56px);
    align-items:start;
  }
  .story-photo{
    border-radius:18px;
    overflow:hidden;
    box-shadow:var(--shadow);
    position:sticky;
    top:calc(84px + env(safe-area-inset-top,0px));
  }
  .story-photo img{ aspect-ratio: 4/5; object-fit:cover; }
  .timeline{
    position:relative;
    padding-left:28px;
    border-left:2px solid var(--line);
    display:flex; flex-direction:column; gap: clamp(22px,3vw,30px);
  }
  .t-item{ position:relative; }
  .t-item::before{
    content:"";
    position:absolute; left:-33.5px; top:4px;
    width:11px; height:11px; border-radius:50%;
    background:var(--surface);
    border:2.5px solid var(--gold);
  }
  .t-tag{
    font-family:'Lato', sans-serif;
    font-size:0.74rem; font-weight:600;
    color:var(--teal); letter-spacing:0.03em;
    display:block; margin-bottom:4px;
  }
  .t-item h4{ font-size:1.08rem; margin-bottom:6px; }
  .t-item p{ color:var(--ink-soft2); font-size:0.95rem; max-width:56ch; }

  /* ---------- vision / mission ---------- */
  .vm-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:clamp(18px,3vw,26px);
  }
  .vm-card{
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:20px;
    padding:clamp(26px,4vw,38px);
    display:flex; flex-direction:column; gap:14px;
  }
  .vm-card .glyph{
    width:44px; height:44px; border-radius:12px;
    display:flex; align-items:center; justify-content:center;
    background:var(--teal-pale); color:var(--teal);
  }
  .vm-card blockquote{
    margin:0; font-family:'Lora', serif; font-weight:500;
    font-size:1.18rem; line-height:1.42; color:var(--ink);
  }
  .vm-card cite{ font-style:normal; font-size:0.84rem; color:var(--ink-soft2); }

  /* ---------- programs ---------- */
  .prog-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:clamp(16px,2.4vw,22px);
  }
  .prog-card{
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:16px;
    padding:clamp(20px,2.6vw,26px);
    display:flex; flex-direction:column; gap:12px;
    transition: box-shadow .18s ease, transform .18s ease;
  }
  .prog-card:hover{ box-shadow:var(--shadow); transform:translateY(-2px); }
  .prog-icon{
    width:42px; height:42px; border-radius:11px;
    background:var(--teal-pale); color:var(--teal);
    display:flex; align-items:center; justify-content:center;
  }
  .prog-card h3{ font-size:1.08rem; }
  .prog-card .mal{ font-size:0.82rem; color:var(--gold); font-weight:600; font-family:'Lato', sans-serif; }
  .prog-card p{ font-size:0.92rem; color:var(--ink-soft2); }
  .free-tag{
    align-self:flex-start;
    font-size:0.7rem; font-weight:700; letter-spacing:0.04em;
    text-transform:uppercase;
    color:var(--teal);
    background:var(--teal-pale);
    padding:4px 10px; border-radius:999px;
    margin-top:auto;
  }

  /* ---------- expansion ---------- */
  .expand-layout{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:clamp(24px,4vw,48px);
    align-items:center;
    background:var(--bg-alt);
    border-radius:24px;
    padding:clamp(24px,4vw,44px);
  }
  .expand-layout img{ border-radius:16px; box-shadow:var(--shadow); }
  .expand-copy{ display:flex; flex-direction:column; gap:14px; }
  .expand-copy h2{ font-size:clamp(1.5rem,3vw,2rem); }
  .expand-copy p{ color:var(--ink-soft2); }

  /* ---------- impact ---------- */
  .impact-wrap{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:clamp(24px,4vw,40px);
  }
  .impact-card{
    background:var(--deep);
    color:var(--on-deep);
    border-radius:20px;
    padding:clamp(24px,3.4vw,34px);
    display:flex; flex-direction:column; gap:16px;
  }
  .impact-card h3{ color:var(--on-deep); font-size:1.3rem; }
  .impact-card p{ color:var(--on-deep-soft); font-size:0.95rem; }
  .impact-figs{ display:flex; gap:22px; flex-wrap:wrap; }
  .impact-figs div span:first-child{ display:block; font-size:1.8rem; font-weight:600; color:var(--deep-accent); }
  .impact-figs div span:last-child{ font-size:0.78rem; color:var(--on-deep-soft); }

  /* ---------- gallery ---------- */
  .gal-grid{
    display:grid;
    grid-template-columns: repeat(6, 1fr);
    grid-auto-rows:120px;
    gap:10px;
  }
  .gal-grid figure{
    margin:0; overflow:hidden; border-radius:12px; position:relative;
  }
  .gal-grid img{ width:100%; height:100%; object-fit:cover; }
  .gal-grid figcaption{
    position:absolute; left:0; right:0; bottom:0;
    padding:10px 12px 8px;
    font-size:0.74rem; color:#fff;
    background:linear-gradient(0deg, rgba(22,28,18,0.82), rgba(22,28,18,0));
  }
  .g1{ grid-column:span 3; grid-row:span 2; }
  .g2{ grid-column:span 3; grid-row:span 2; }
  .g3{ grid-column:span 2; grid-row:span 2; }
  .g4{ grid-column:span 2; grid-row:span 2; }
  .g5{ grid-column:span 2; grid-row:span 2; }
  .g6{ grid-column:span 3; grid-row:span 2; }
  .g7{ grid-column:span 3; grid-row:span 2; }

  /* ---------- team ---------- */
  .team-grid{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:14px;
  }
  .role-card{
    border:1px solid var(--line);
    border-radius:14px;
    padding:18px;
    background:var(--surface);
    display:flex; flex-direction:column; gap:6px;
  }
  .role-card .n{ font-family:'Lato', sans-serif; font-size:1.6rem; font-weight:600; color:var(--teal); }
  .role-card .r{ font-size:0.88rem; font-weight:600; }
  .role-card .d{ font-size:0.8rem; color:var(--ink-soft2); }
  .team-note{
    margin-top:24px;
    display:grid; grid-template-columns:1fr 1fr; gap:20px;
    background:var(--bg-alt);
    border-radius:16px;
    padding:22px 26px;
  }
  .team-note h4{ font-size:0.98rem; margin-bottom:6px; }
  .team-note p{ font-size:0.88rem; color:var(--ink-soft2); }

  /* ---------- involve ---------- */
  .involve-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:16px;
  }
  .involve-card{
    border:1px solid var(--line);
    border-radius:16px;
    padding:22px;
    background:var(--surface);
    display:flex; flex-direction:column; gap:10px;
  }
  .involve-card .glyph{ width:38px; height:38px; border-radius:10px; background:var(--gold-soft); color:var(--gold); display:flex; align-items:center; justify-content:center; }
  .involve-card h4{ font-size:1rem; }
  .involve-card p{ font-size:0.86rem; color:var(--ink-soft2); }

  /* ---------- footer ---------- */
  footer{
    background:var(--deep);
    color:var(--on-deep);
    padding-block: clamp(40px,6vw,60px) calc(28px + env(safe-area-inset-bottom,0px));
  }
  .foot-grid{
    display:grid;
    grid-template-columns:1.3fr 1fr 1fr;
    gap:32px;
    padding-bottom:28px;
    border-bottom:1px solid rgba(255,255,255,0.14);
  }
  .foot-brand{ display:flex; align-items:center; gap:10px; font-family:'Lora',serif; font-weight:600; color:var(--on-deep); font-size:1.05rem; }
  footer h5{ font-size:0.78rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--deep-accent); margin-bottom:12px; font-weight:700; }
  footer p, footer li{ font-size:0.88rem; color:var(--on-deep-soft); }
  footer a{ color:var(--on-deep); }
  footer ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
  .foot-bottom{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; padding-top:20px; font-size:0.78rem; color:var(--on-deep-soft); }

  @media (max-width: 880px){
    .story-layout, .vm-grid, .expand-layout, .impact-wrap{ grid-template-columns:1fr; }
    .story-photo{ position:static; }
    .prog-grid{ grid-template-columns:repeat(2,1fr); }
    .stat-grid{ grid-template-columns:repeat(2,1fr); row-gap:22px; }
    .stat-grid div:nth-child(3){ border-left:none; padding-left:0; }
    .team-grid{ grid-template-columns:repeat(2,1fr); }
    .team-note{ grid-template-columns:1fr; }
    .involve-grid{ grid-template-columns:repeat(2,1fr); }
    .gal-grid{ grid-template-columns:repeat(2,1fr); grid-auto-rows:150px; }
    .g1,.g2,.g3,.g4,.g5,.g6,.g7{ grid-column:span 1; grid-row:span 2; }
    .foot-grid{ grid-template-columns:1fr; }
    nav.links{ display:none; }
  }
  @media (max-width: 520px){
    .prog-grid{ grid-template-columns:1fr; }
    .stat-grid{ grid-template-columns:repeat(2,1fr); }
    .team-grid{ grid-template-columns:1fr 1fr; }
  }

  /* ---------- donate modal ---------- */

  /* ---------- language toggle ---------- */
  .nav-actions{ display:flex; align-items:center; gap:10px; }
  .lang-toggle{ font:inherit; font-size:0.85rem; font-weight:600; background:transparent; color:var(--teal); border:1.5px solid var(--line); border-radius:999px; padding:8px 14px; cursor:pointer; font-family:'Noto Sans Malayalam','Lato',sans-serif; }
  .lang-toggle:hover{ border-color:var(--teal); }
  html[lang="ml"] .eyebrow, html[lang="ml"] .mal{ letter-spacing:0; text-transform:none; font-family:'Noto Sans Malayalam', sans-serif; }
  html[lang="ml"] h1, html[lang="ml"] h2{ line-height:1.35; }
  html[lang="ml"] .hero h1{ font-size:clamp(1.8rem, 4.2vw, 3rem); max-width:20ch; }
  @media (max-width:520px){ .nav-actions .btn{ display:none; } }

  /* ---------- tax / trust strip ---------- */
  .trust-strip{ display:flex; flex-wrap:wrap; gap:12px 28px; margin-top:22px; padding:16px 20px; border-radius:14px; background:var(--surface); border:1px solid var(--line); font-size:0.88rem; color:var(--ink-soft2); }
  .trust-strip b{ color:var(--ink); }
  .badge-80g{ display:inline-flex; align-items:center; gap:6px; font-size:0.78rem; font-weight:600; color:var(--teal); background:var(--teal-pale); border-radius:999px; padding:4px 10px; align-self:flex-start; }
  .celebrate{ margin-top:22px; display:flex; gap:18px; align-items:center; flex-wrap:wrap; padding:22px; border-radius:16px; background:var(--gold-soft); }
  .celebrate .glyph{ width:44px; height:44px; border-radius:12px; background:var(--surface); color:var(--gold); display:flex; align-items:center; justify-content:center; flex:none; }
  .celebrate div.txt{ flex:1 1 260px; }
  .celebrate h4{ font-size:1.1rem; margin-bottom:4px; }
  .celebrate p{ font-size:0.9rem; color:var(--ink-soft2); }
  :root[data-theme="never"] .celebrate p{ color:var(--ink); }
  @media not all{ :root:not([data-theme="light"]) .celebrate p{ color:var(--ink); } }

  /* ---------- wishlist ---------- */
  .wish-ways{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:28px; }
  .wish-way{ border-radius:16px; padding:20px 22px; background:var(--teal-pale); }
  .wish-way h4{ font-size:1.02rem; margin-bottom:6px; }
  .wish-way p{ font-size:0.9rem; color:var(--ink-soft2); }
  .wish-addr{ grid-column:1 / -1; font-style:normal; font-size:0.92rem; line-height:1.6; padding:14px 20px; border-radius:14px; border:1px dashed var(--teal); background:var(--surface); }
  .wish-cats{ display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
  .wish-cat{ border:1px solid var(--line); border-radius:16px; background:var(--surface); padding:20px 22px; }
  .wish-cat h3{ font-size:1.08rem; display:flex; align-items:center; gap:10px; margin-bottom:12px; }
  .wish-cat h3 .prog-icon{ width:36px; height:36px; }
  .wish-item{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 0; border-top:1px solid var(--line); font-size:0.93rem; }
  .wish-item small{ display:block; color:var(--ink-soft2); font-size:0.8rem; }
  .btn-sm{ padding:7px 14px; font-size:0.8rem; flex:none; border:1.5px solid var(--teal); color:var(--teal); background:transparent; cursor:pointer; }
  .btn-sm:hover{ background:var(--teal); color:var(--accent-contrast); }
  .wish-note{ margin-top:18px; font-size:0.9rem; color:var(--ink-soft2); }
  @media (max-width:760px){ .wish-ways, .wish-cats{ grid-template-columns:1fr; } }

  /* ---------- CSR ---------- */
  .csr-grid{ display:grid; grid-template-columns:1.1fr 1fr; gap:28px; align-items:start; }
  .equip-table{ width:100%; border-collapse:collapse; font-size:0.92rem; background:var(--surface); border-radius:14px; overflow:hidden; }
  .equip-table th, .equip-table td{ text-align:left; padding:11px 14px; border-bottom:1px solid var(--line); }
  .equip-table th{ font-size:0.75rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-soft2); font-weight:600; }
  .equip-table td.amt{ font-family:'Lato', sans-serif; white-space:nowrap; text-align:right; }
  .equip-table th.amt{ text-align:right; }
  .equip-table tfoot td{ font-weight:600; border-bottom:none; }
  .csr-box{ border-radius:18px; padding:24px; background:var(--teal); color:var(--accent-contrast); display:flex; flex-direction:column; gap:12px; }
  .csr-box h3{ color:inherit; font-size:1.3rem; }
  .csr-box ul{ margin:0; padding-left:18px; font-size:0.92rem; line-height:1.7; }
  .csr-box .btn{ align-self:flex-start; background:var(--marigold); color:#2A1B08; border:none; cursor:pointer; }
  .dummy-note{ font-size:0.78rem; color:var(--ink-soft2); margin-top:8px; }
  @media (max-width:860px){ .csr-grid{ grid-template-columns:1fr; } }

  /* ---------- news / instagram ---------- */
  .ig-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:16px; flex-wrap:wrap; margin-bottom:22px; }
  .ig-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
  .ig-tile{ aspect-ratio:1; border-radius:14px; border:1.5px dashed var(--line); background:var(--surface); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; color:var(--ink-soft2); font-size:0.8rem; text-align:center; padding:10px; }
  .ig-tile svg{ color:var(--teal); opacity:.6; }
  .btn-ig{ border:1.5px solid var(--teal); color:var(--teal); }
  @media (max-width:520px){ .ig-grid{ grid-template-columns:repeat(2,1fr); } }

  /* ---------- small modals ---------- */
  .modal-card.narrow{ max-width:560px; }
  .modal-card.narrow .donate-form{ padding:clamp(24px,4vw,34px); }
  .checks{ display:grid; grid-template-columns:1fr 1fr; gap:8px 14px; }
  .donate-form .checks label{ flex-direction:row; align-items:center; gap:8px; font-weight:500; color:var(--ink); }
  .donate-form .checks input{ width:18px; height:18px; padding:0; }
  .radio-row{ display:flex; flex-direction:column; gap:8px; }
  .donate-form .radio-row label{ flex-direction:row; align-items:flex-start; gap:10px; font-weight:500; color:var(--ink); border:1px solid var(--line); border-radius:12px; padding:12px; cursor:pointer; }
  .donate-form .radio-row input{ margin-top:3px; width:18px; height:18px; padding:0; flex:none; }
  .radio-row small{ display:block; font-weight:400; color:var(--ink-soft2); font-size:0.8rem; }
  .ship-box{ font-size:0.86rem; background:var(--teal-pale); border-radius:12px; padding:12px 14px; line-height:1.55; }
  .form-intro{ font-size:0.9rem; color:var(--ink-soft2); }
  .dedicate-box{ display:flex; flex-direction:column; gap:14px; }
  @media (max-width:520px){ .checks{ grid-template-columns:1fr; } }

  /* ---------- readability ---------- */
  html{ font-size:106.25%; }
  body{ font-size:1rem; }
  .btn{ min-height:44px; }
  .btn.btn-sm{ min-height:36px; }

  /* ---------- welcome ---------- */
  section.welcome{ padding-block:clamp(36px,6vw,64px); }
  .welcome-inner{ display:flex; gap:clamp(18px,4vw,36px); align-items:center; max-width:900px; }
  .welcome-photo{ width:clamp(88px,14vw,128px); height:clamp(88px,14vw,128px); border-radius:50%; object-fit:cover; flex:none; border:4px solid var(--surface); box-shadow:var(--shadow); }
  .welcome-text{ font-family:'Lora','Noto Serif Malayalam',Georgia,serif; font-size:clamp(1.05rem,1.8vw,1.28rem); line-height:1.6; color:var(--ink); margin-top:8px; }
  .welcome-sign{ margin-top:10px; font-weight:600; color:var(--gold); }
  @media (max-width:560px){ .welcome-inner{ flex-direction:column; align-items:flex-start; } }

  /* ---------- FAQ ---------- */
  .faq-list{ display:flex; flex-direction:column; gap:10px; max-width:820px; }
  .faq-item{ background:var(--surface); border:1px solid var(--line); border-radius:14px; }
  .faq-item summary{ cursor:pointer; list-style:none; padding:16px 48px 16px 20px; font-weight:600; position:relative; }
  .faq-item summary::-webkit-details-marker{ display:none; }
  .faq-item summary::after{ content:"+"; position:absolute; right:20px; top:50%; transform:translateY(-50%); font-size:1.4rem; color:var(--teal); font-weight:400; }
  .faq-item[open] summary::after{ content:"–"; }
  .faq-item p{ padding:0 20px 18px; color:var(--ink-soft2); line-height:1.6; }

  /* ---------- visit ---------- */
  .visit-grid{ display:grid; grid-template-columns:1fr 1.2fr; gap:clamp(24px,4vw,44px); align-items:center; }
  .visit-info{ display:flex; flex-direction:column; gap:14px; }
  .visit-info h2{ font-size:clamp(1.6rem,3.4vw,2.35rem); }
  .visit-info address{ font-style:normal; line-height:1.6; }
  .visit-btns{ display:flex; gap:10px; flex-wrap:wrap; }
  .map-box{ position:relative; border-radius:18px; overflow:hidden; border:1px solid var(--line); background:var(--teal-pale); aspect-ratio:4/3; }
  .map-box iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
  .map-fallback{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); color:var(--teal); font-weight:600; z-index:0; }
  .map-box iframe{ z-index:1; }
  @media (max-width:820px){ .visit-grid{ grid-template-columns:1fr; } }

  /* ---------- phone menu ---------- */
  .menu-btn{ display:none; width:44px; height:44px; border-radius:12px; border:1.5px solid var(--line); background:transparent; cursor:pointer; flex-direction:column; align-items:center; justify-content:center; gap:4px; }
  .menu-btn span{ display:block; width:18px; height:2px; border-radius:2px; background:var(--ink); transition:transform .2s, opacity .2s; }
  header.site.menu-open .menu-btn span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
  header.site.menu-open .menu-btn span:nth-child(2){ opacity:0; }
  header.site.menu-open .menu-btn span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }
  @media (max-width:880px){
    .menu-btn{ display:inline-flex; }
    header.site.menu-open nav.links{ display:flex; position:absolute; top:100%; left:0; right:0; flex-direction:column; gap:0; background:var(--bg); border-bottom:1px solid var(--line); box-shadow:var(--shadow); padding:6px clamp(18px,4vw,40px) 14px; }
    header.site.menu-open nav.links a{ padding:13px 2px; border-bottom:1px solid var(--line); font-size:1.02rem; color:var(--ink); }
    header.site.menu-open nav.links a:last-child{ border-bottom:none; }
  }

  /* ---------- floating buttons ---------- */
  .fab-stack{ position:fixed; right:clamp(14px,3vw,24px); bottom:calc(16px + env(safe-area-inset-bottom, 0px)); z-index:45; display:flex; flex-direction:column; align-items:flex-end; gap:12px; opacity:0; transform:translateY(16px); pointer-events:none; transition:opacity .3s, transform .3s; }
  .fab-stack.show{ opacity:1; transform:none; pointer-events:auto; }
  .fab-wa{ width:52px; height:52px; border-radius:50%; background:#25D366; color:#fff; display:flex; align-items:center; justify-content:center; box-shadow:0 8px 20px -6px rgba(0,0,0,.35); }
  .fab-donate{ display:inline-flex; align-items:center; gap:8px; font:inherit; font-weight:700; font-size:1rem; padding:14px 22px; border:none; border-radius:999px; background:var(--marigold); color:#2A1B08; cursor:pointer; box-shadow:0 10px 24px -8px rgba(0,0,0,.4); }
  .fab-donate:hover{ filter:brightness(1.05); }
  .to-top{ position:fixed; left:clamp(14px,3vw,24px); bottom:calc(16px + env(safe-area-inset-bottom, 0px)); z-index:45; width:44px; height:44px; border-radius:50%; border:1px solid var(--line); background:var(--surface); color:var(--teal); display:flex; align-items:center; justify-content:center; cursor:pointer; box-shadow:var(--shadow); opacity:0; pointer-events:none; transition:opacity .3s; }
  .to-top.show{ opacity:1; pointer-events:auto; }
  body.modal-open .fab-stack, body.modal-open .to-top{ opacity:0 !important; pointer-events:none !important; }

  /* ---------- trustees ---------- */
  .tr-head{ font-size:clamp(1.2rem,2.2vw,1.45rem); }
  .tr-sub{ color:var(--ink-soft2); margin:4px 0 18px; }
  .tr-grid{ display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:16px; }
  .tr-card{ background:var(--surface); border:1px solid var(--line); border-radius:16px; padding:22px 18px; text-align:center; display:flex; flex-direction:column; align-items:center; gap:6px; }
  .tr-photo{ width:88px; height:88px; border-radius:50%; object-fit:cover; margin-bottom:6px; }
  .tr-ini{ display:flex; align-items:center; justify-content:center; background:var(--gold-soft); color:var(--gold); font-family:'Lora',serif; font-weight:600; font-size:1.5rem; }
  .tr-card h4{ font-size:1.05rem; }
  .tr-role{ font-size:0.82rem; font-weight:600; color:var(--teal); }
  .tr-card p{ font-size:0.86rem; color:var(--ink-soft2); line-height:1.5; }
  .team-grid{ margin-top:16px; }
  @media (max-width:1000px){ .tr-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
  @media (max-width:640px){ .tr-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; } .tr-card{ padding:18px 10px; } .tr-card p, .tr-role{ overflow-wrap:anywhere; } }
  .prog-grid > *, .involve-grid > *, .team-grid > *, .wish-cats > *, .tr-grid > *, .impact-wrap > *, .stat-grid > *, .foot-grid > *, .gal-grid > *, .csr-grid > *, .visit-grid > *, .f-row > *{ min-width:0; }
  html[lang="ml"] body{ overflow-wrap:break-word; }
  .free-tag{ max-width:100%; }
  @media (max-width:640px){ .prog-card[style*="flex-direction:row"]{ flex-direction:column !important; align-items:flex-start !important; } }
  main img:not(.welcome-photo):not(.tr-photo){ filter:sepia(.12) saturate(.96) hue-rotate(-5deg); }
  /* ---------- gallery slider ---------- */
  .gal-slider{ position:relative; border-radius:18px; overflow:hidden; background:var(--deep); touch-action:pan-y; user-select:none; }
  .gal-track{ display:flex; transition:transform .6s cubic-bezier(.4,.0,.2,1); will-change:transform; }
  .gal-slide{ flex:0 0 100%; margin:0; position:relative; aspect-ratio:16/9; max-height:560px; }
  .gal-slide img{ width:100%; height:100%; object-fit:cover; pointer-events:none; }
  .gal-slide figcaption{ position:absolute; left:0; right:0; bottom:0; padding:28px 20px 40px; color:#fff; font-size:0.95rem; font-weight:500; background:linear-gradient(0deg, rgba(22,28,18,0.8), rgba(22,28,18,0)); }
  .gal-nav{ position:absolute; top:50%; transform:translateY(-50%); width:44px; height:44px; border-radius:50%; border:none; background:rgba(255,253,249,.85); color:#2B3528; font-size:1.6rem; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; }
  .gal-nav.prev{ left:12px; } .gal-nav.next{ right:12px; }
  .gal-dots{ position:absolute; left:0; right:0; bottom:12px; display:flex; justify-content:center; gap:7px; }
  .gal-dots button{ width:8px; height:8px; padding:0; border-radius:99px; border:none; background:rgba(255,255,255,.55); cursor:pointer; transition:width .3s, background .3s; }
  .gal-dots button[aria-current="true"]{ width:22px; background:#fff; }
  @media (max-width:640px){ .gal-slide{ aspect-ratio:4/3; } .gal-nav{ display:none; } }
  /* ---------- support sheet ---------- */
  .sheet-overlay{ position:fixed; inset:0; z-index:95; background:rgba(15,18,12,.5); display:flex; align-items:flex-end; justify-content:center; }
  .sheet{ width:100%; max-width:520px; background:var(--surface); border-radius:22px 22px 0 0; padding:10px 18px calc(20px + env(safe-area-inset-bottom,0px)); display:flex; flex-direction:column; gap:8px; animation:sheetUp .28s ease-out; max-height:88vh; overflow:auto; }
  @media (min-width:700px){ .sheet-overlay{ align-items:center; } .sheet{ border-radius:22px; padding-bottom:22px; } }
  @keyframes sheetUp{ from{ transform:translateY(40px); opacity:0; } to{ transform:none; opacity:1; } }
  .sheet-grip{ width:40px; height:4px; border-radius:4px; background:var(--line); align-self:center; margin-bottom:6px; }
  .sheet-head{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:4px; }
  .sheet-head h3{ font-size:1.2rem; }
  .sheet-opt{ display:flex; align-items:center; gap:14px; text-align:left; font:inherit; color:var(--ink); background:var(--bg); border:1px solid var(--line); border-radius:14px; padding:12px 14px; cursor:pointer; }
  .sheet-opt:hover{ border-color:var(--teal); }
  .sheet-opt b{ display:block; font-size:1rem; }
  .sheet-opt small{ display:block; color:var(--ink-soft2); font-size:0.84rem; margin-top:2px; }
  .sheet-opt .prog-icon{ flex:none; }
  /* ---------- pages ---------- */
  .page-overlay{ position:fixed; inset:0; z-index:90; background:var(--bg); overflow-y:auto; -webkit-overflow-scrolling:touch; padding-top:env(safe-area-inset-top,0px); }
  .page-bar{ position:sticky; top:0; z-index:2; display:flex; align-items:center; gap:14px; padding:10px clamp(14px,4vw,40px); background:color-mix(in srgb, var(--bg) 92%, transparent); backdrop-filter:blur(8px); border-bottom:1px solid var(--line); }
  .page-back{ font:inherit; font-weight:600; color:var(--teal); background:transparent; border:1.5px solid var(--line); border-radius:999px; padding:9px 16px; min-height:44px; cursor:pointer; }
  .page-title{ font-family:'Lora','Noto Serif Malayalam',serif; font-weight:600; font-size:1.1rem; }
  .page-section{ padding-top:clamp(28px,5vw,56px); }

  /* ---------- soft buttons ---------- */
  .btn-soft{ background:transparent; color:var(--teal); border:1.5px solid var(--teal); }
  .btn-soft:hover{ background:var(--teal); color:var(--accent-contrast); }
  /* ---------- program cards as links ---------- */
  .prog-link{ cursor:pointer; transition:box-shadow .2s, transform .2s, border-color .2s; }
  .prog-link:hover{ border-color:var(--teal); }
  .prog-link:focus-visible{ outline:3px solid var(--marigold); outline-offset:2px; }
  .prog-more{ font-weight:600; font-size:0.9rem; color:var(--teal); text-decoration:none; margin-top:2px; }
  @media (max-width:640px){ .prog-card p{ display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; } }
  /* ---------- program pages ---------- */
  .pp-hero{ height:clamp(200px,38vw,420px); background:var(--teal-pale); overflow:hidden; }
  .pp-hero img{ width:100%; height:100%; object-fit:cover; filter:sepia(.12) saturate(.96) hue-rotate(-5deg); }
  .pp-hero-empty{ display:flex; align-items:center; justify-content:center; color:var(--teal); }
  .pp-big-icon svg{ width:96px; height:96px; opacity:.7; }
  .pp-body{ padding-block:clamp(24px,4vw,48px) clamp(40px,6vw,72px); display:flex; flex-direction:column; gap:20px; }
  .pp-head{ display:flex; gap:16px; align-items:flex-start; }
  .pp-head .prog-icon{ flex:none; margin-top:4px; }
  .pp-head h2{ font-size:clamp(1.5rem,3.4vw,2.3rem); margin-top:6px; }
  .pp-public{ display:flex; flex-wrap:wrap; gap:6px 14px; align-items:center; background:var(--gold-soft); border-radius:14px; padding:14px 18px; }
  .pp-public b{ color:var(--gold); }
  .pp-grid{ display:grid; grid-template-columns:1.2fr 1fr; gap:18px; }
  .pp-grid > *{ min-width:0; }
  .pp-card{ background:var(--surface); border:1px solid var(--line); border-radius:18px; padding:22px 24px; display:flex; flex-direction:column; gap:12px; }
  .pp-card h3{ font-size:1.15rem; }
  .pp-card p{ color:var(--ink-soft2); }
  .pp-list{ margin:0; padding-left:20px; display:flex; flex-direction:column; gap:8px; }
  .pp-list li::marker{ color:var(--teal); }
  .pp-extra{ background:var(--teal-pale); border-radius:12px; padding:12px 14px; color:var(--ink) !important; }
  .pp-actions{ display:flex; flex-wrap:wrap; gap:10px; margin-top:auto; }
  .pp-photos{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:12px; }
  .pp-photos img{ width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:14px; filter:sepia(.12) saturate(.96) hue-rotate(-5deg); }
  .pp-empty{ border:1.5px dashed var(--line); border-radius:14px; padding:28px; text-align:center; color:var(--ink-soft2); }
  .pp-chips{ display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
  .pp-chip{ text-decoration:none; font-size:0.9rem; font-weight:600; color:var(--teal); border:1.5px solid var(--line); border-radius:999px; padding:8px 14px; }
  .pp-chip:hover{ border-color:var(--teal); }
  @media (max-width:760px){ .pp-grid{ grid-template-columns:1fr; } }

  /* ---------- responsive polish ---------- */
  @media (max-width:640px){ section{ padding-block:44px; } }
  .welcome-inner{ margin-inline:auto; }
  @media (min-width:900px){
    .welcome-inner{ max-width:1000px; }
    .welcome-text{ font-size:1.35rem; }
    .faq-list{ display:grid; grid-template-columns:1fr 1fr; max-width:none; align-items:start; gap:12px; }
    .vm-card blockquote{ font-size:1.45rem; }
    .vm-card{ padding:40px; }
  }

  /* ======== colour + motion refresh ======== */
  :root{ --tint-peach:#FBEEE3; --tint-sage:#EEF3E7; --tint-sky:#EAF2F5; --tint-gold:#FBF2DE; }
  .eyebrow::before{ content:""; display:inline-block; width:14px; height:14px; margin-right:8px; vertical-align:-2px; background:currentColor; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 4C10 4 4 9 4 18c0 1 .2 1.8.4 2.4C6 12 12 8 20 6c-6 3-10 7-12 13 8 1 12-6 12-15z'/%3E%3C/svg%3E") center/contain no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 4C10 4 4 9 4 18c0 1 .2 1.8.4 2.4C6 12 12 8 20 6c-6 3-10 7-12 13 8 1 12-6 12-15z'/%3E%3C/svg%3E") center/contain no-repeat; }
  section.tint{ position:relative; }
  section.tint::before, section.tint::after{ content:""; position:absolute; left:0; right:0; height:36px; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 36' preserveAspectRatio='none'%3E%3Cpath d='M0 0h1440v14c-120 14-240 22-360 16S840 6 720 10 480 30 360 30 120 18 0 12z' fill='%23FAF6EE'/%3E%3C/svg%3E") center/100% 100% no-repeat; pointer-events:none; }
  section.tint::before{ top:-1px; }
  section.tint::after{ bottom:-1px; transform:scaleY(-1); }
  .t-peach{ background:var(--tint-peach) !important; } .t-sage{ background:var(--tint-sage) !important; } .t-sky{ background:var(--tint-sky) !important; } .t-gold{ background:var(--tint-gold) !important; }

  /* program photo cards */
  .pc-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(16px,2vw,22px); }
  .prog-card.pc{ padding:0; overflow:hidden; gap:0; background:color-mix(in srgb, var(--pc) 45%, #FFFDF9); border:1px solid color-mix(in srgb, var(--pc) 70%, #d9d2c2); cursor:pointer; }
  .pc-media{ position:relative; height:190px; overflow:hidden; background:var(--pc); }
  .pc-media img, .pc-media .pc-illus{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s ease; }
  .pc-media::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0) 45%, color-mix(in srgb, var(--pc) 45%, #FFFDF9) 100%); }
  .prog-card.pc:hover .pc-media img, .prog-card.pc:hover .pc-illus{ transform:scale(1.05); }
  .pc-icon{ position:absolute; left:16px; bottom:10px; z-index:1; width:40px; height:40px; border-radius:12px; background:#FFFDF9; color:var(--teal); display:flex; align-items:center; justify-content:center; box-shadow:0 6px 14px -6px rgba(0,0,0,.3); }
  .pc-body{ padding:14px 20px 18px; display:flex; flex-direction:column; gap:8px; flex:1; }
  .pc-body h3{ font-size:1.12rem; }
  .pc-body p{ font-size:0.92rem; color:var(--ink-soft2); }
  .pc-foot{ margin-top:auto; display:flex; align-items:center; justify-content:space-between; gap:10px; padding-top:6px; }
  .pc-foot .prog-more{ margin:0; }
  .pc-grid .pc:last-child{ grid-column:1 / -1; flex-direction:row; }
  .pc-grid .pc:last-child .pc-media{ height:auto; min-height:200px; flex:0 0 42%; }
  .pc-grid .pc:last-child .pc-media::after{ background:linear-gradient(90deg, rgba(0,0,0,0) 55%, color-mix(in srgb, var(--pc) 45%, #FFFDF9) 100%); }
  .pc-grid .pc:last-child .pc-body{ justify-content:center; padding:24px 28px; }
  .pc-grid .pc:last-child .pc-foot{ margin-top:12px; }
  @media (max-width:980px){ .pc-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
  @media (max-width:640px){
    .pc-grid{ grid-template-columns:1fr; }
    .pc-media{ height:160px; }
    .pc-grid .pc:last-child{ flex-direction:column; }
    .pc-grid .pc:last-child .pc-media{ min-height:0; height:160px; flex:none; }
    .pc-grid .pc:last-child .pc-media::after{ background:linear-gradient(180deg, rgba(0,0,0,0) 45%, color-mix(in srgb, var(--pc) 45%, #FFFDF9) 100%); }
    .pc-grid .pc:last-child .pc-body{ padding:14px 20px 18px; }
  }

  /* reveal on scroll */
  html.js-anim .reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); transition-delay:var(--d,0s); }
  html.js-anim .reveal.in{ opacity:1; transform:none; }
  .timeline{ border-left-color:transparent; }
  .timeline::before{ content:""; position:absolute; left:-2px; top:0; bottom:0; width:2px; background:var(--line); }
  .timeline::after{ content:""; position:absolute; left:-2px; top:0; width:2px; height:calc(var(--tl,0) * 100%); background:var(--marigold); transition:height .2s linear; }
  .btn, .sheet-opt, .fab-donate{ transition:transform .15s ease, box-shadow .2s ease, background .2s, color .2s; }
  .btn:active, .sheet-opt:active, .fab-donate:active{ transform:scale(.97); }
  .btn-soft:hover{ background:var(--teal); color:var(--accent-contrast); }
  .involve-card, .vm-card, .tr-card, .role-card, .impact-card{ transition:transform .2s ease, box-shadow .2s ease; }
  .involve-card:hover, .vm-card:hover, .tr-card:hover{ transform:translateY(-3px); box-shadow:var(--shadow); }
  .vm-card:first-child{ background:linear-gradient(160deg, #FFFDF9 0%, var(--tint-peach) 100%); }
  .vm-card:last-child{ background:linear-gradient(160deg, #FFFDF9 0%, var(--tint-sky) 100%); }
  .involve-card:nth-child(1) .glyph{ background:#F8E1CF; color:#A2562A; } .involve-card:nth-child(2) .glyph{ background:#DCE8D2; color:#4E6E4A; }
  .involve-card:nth-child(3) .glyph{ background:#F7E6BE; color:#8A5F12; } .involve-card:nth-child(4) .glyph{ background:#D9E8EF; color:#2F6178; }
  .fab-donate{ animation:fabPulse 3.2s ease-in-out 2s infinite; }
  @keyframes fabPulse{ 0%,100%{ box-shadow:0 10px 24px -8px rgba(0,0,0,.4), 0 0 0 0 rgba(227,162,59,.45); } 50%{ box-shadow:0 10px 24px -8px rgba(0,0,0,.4), 0 0 0 10px rgba(227,162,59,0); } }
  @media (prefers-reduced-motion: reduce){ html.js-anim .reveal{ opacity:1; transform:none; transition:none; } .fab-donate{ animation:none; } .timeline::after{ transition:none; } }

  /* ======== timeline v2 ======== */
  .timeline{ padding-left:0 !important; border-left:none !important; gap:0 !important; }
  .timeline::before, .timeline::after, .t-item::before{ content:none !important; display:none !important; }
  .t-item{ display:grid; grid-template-columns:30px minmax(0,1fr); column-gap:18px; position:relative; padding-bottom:30px; }
  .t-item:last-child{ padding-bottom:0; }
  .t-body{ grid-column:2; padding-top:3px; }
  .t-dot{ grid-column:1; grid-row:1; position:relative; width:30px; height:30px; border-radius:50%; border:2px solid var(--marigold); background:var(--surface); overflow:hidden; z-index:1; }
  .t-fill{ position:absolute; inset:0; background:var(--marigold); transform:scaleY(0); transform-origin:bottom; transition:transform .55s cubic-bezier(.3,.7,.3,1); }
  .t-num{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-family:'Lato',sans-serif; font-size:.8rem; font-weight:600; color:var(--gold); transition:color .3s .15s; }
  .t-item.on .t-fill{ transform:scaleY(1); }
  .t-item.on .t-num{ color:#2A1B08; }
  .t-line{ position:absolute; left:14px; top:30px; bottom:0; width:2px; background:var(--line); }
  .t-line-fill{ position:absolute; left:0; top:0; width:100%; height:var(--lf,0%); background:var(--marigold); }
  html.js-anim .t-body{ opacity:.45; transition:opacity .5s ease; }
  html.js-anim .t-item.on .t-body{ opacity:1; }
  @media (prefers-reduced-motion: reduce){ .t-fill{ transition:none; } html.js-anim .t-body{ opacity:1; } }

  /* ======== footer v2 ======== */
  footer.fz{ background:transparent; padding:0; color:var(--ink); }
  .fz-progs{ background:var(--bg-alt); padding:clamp(26px,4vw,40px) 0; border-top:1px solid var(--line); }
  .fz-prog-row{ display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); }
  .fz-prog{ display:flex; flex-direction:column; align-items:center; text-align:center; gap:6px; padding:4px 10px; color:var(--ink); text-decoration:none; position:relative; }
  .fz-prog + .fz-prog::before{ content:""; position:absolute; left:0; top:14%; bottom:14%; width:1px; background:var(--line); }
  .fz-bubble{ width:60px; height:60px; border-radius:50%; background:var(--teal-pale); color:var(--teal); display:flex; align-items:center; justify-content:center; margin-bottom:4px; transition:transform .2s ease, background .2s; }
  .fz-bubble svg{ width:26px; height:26px; }
  .fz-prog:hover .fz-bubble{ transform:translateY(-3px); background:var(--gold-soft); color:var(--gold); }
  .fz-prog b{ font-family:'Lora','Noto Serif Malayalam',serif; font-weight:600; font-size:0.98rem; line-height:1.25; }
  .fz-prog small{ font-size:0.8rem; color:var(--ink-soft2); }
  @media (max-width:900px){
    .fz-prog-row{ display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:0; padding-bottom:6px; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
    .fz-prog-row::-webkit-scrollbar{ display:none; }
    .fz-prog{ flex:0 0 36%; scroll-snap-align:start; }
  }
  .fz-main{ position:relative; overflow:hidden; background:var(--deep); color:var(--on-deep); padding:clamp(40px,6vw,64px) 0 clamp(60px,8vw,90px); }
  .fz-leafart{ position:absolute; right:-10px; top:10px; width:clamp(140px,18vw,230px); color:rgba(255,255,255,.07); pointer-events:none; }
  .fz-grid{ position:relative; display:grid; grid-template-columns:1.1fr 1fr 1fr; gap:0; }
  .fz-col{ padding:0 clamp(18px,3vw,40px); }
  .fz-col:first-child{ padding-left:0; }
  .fz-col + .fz-col{ border-left:1px solid rgba(243,208,138,.35); }
  .fz-h{ display:flex; align-items:center; gap:12px; font-size:1.05rem !important; letter-spacing:.14em; text-transform:uppercase; color:var(--deep-accent) !important; margin:0 0 16px; font-weight:600; }
  .fz-h svg{ width:34px; height:34px; padding:6px; border:1.5px solid var(--deep-accent); border-radius:50%; }
  html[lang="ml"] .fz-h{ letter-spacing:0; }
  footer.fz address{ font-style:normal; font-size:1rem; line-height:1.6; color:var(--on-deep); }
  .fz-contact{ margin:10px 0 18px; font-size:.95rem; }
  footer.fz .fz-contact a{ color:var(--on-deep-soft); }
  .fz-pill{ display:inline-flex; align-items:center; gap:10px; padding:11px 20px; border:1.5px solid var(--on-deep-soft); border-radius:999px; color:var(--on-deep) !important; text-decoration:none; font-weight:500; transition:background .2s; }
  .fz-pill:hover{ background:rgba(255,255,255,.08); }
  .fz-pill svg:first-child{ width:18px; height:18px; }
  .fz-links{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
  .fz-links a{ display:inline-flex; align-items:center; gap:8px; color:var(--on-deep) !important; text-decoration:none; font-size:1.02rem; transition:gap .2s, color .2s; }
  .fz-links a:hover{ gap:12px; color:var(--deep-accent) !important; }
  .fz-quote{ display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; }
  .fz-script{ font-family:'Caveat','Noto Sans Malayalam',cursive; font-weight:500; }
  .fz-quote .fz-script{ font-size:clamp(1.7rem,2.6vw,2.2rem); line-height:1.25; transform:rotate(-6deg); color:var(--on-deep); max-width:12ch; }
  html[lang="ml"] .fz-quote .fz-script{ font-size:1.25rem; transform:none; max-width:18ch; }
  .fz-heartline{ display:flex; align-items:center; gap:8px; margin-top:18px; color:var(--on-deep); }
  .fz-heartline i{ display:block; width:40px; height:1.5px; background:currentColor; }
  .fz-band{ position:relative; background:var(--bg-alt); color:var(--deep); }
  .fz-wave{ position:absolute; left:0; top:-1px; width:100%; height:clamp(26px,4vw,46px); color:var(--deep); }
  .fz-band-in{ position:relative; display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap; padding-top:clamp(46px,6vw,70px); padding-bottom:clamp(22px,3vw,30px); }
  .fz-brand{ display:flex; align-items:center; gap:14px; color:var(--teal); }
  .fz-leaf svg{ width:42px; height:42px; }
  .fz-brand b{ display:block; font-size:.86rem; letter-spacing:.14em; text-transform:uppercase; color:var(--teal); font-weight:600; max-width:30ch; line-height:1.5; }
  html[lang="ml"] .fz-brand b{ letter-spacing:0; }
  .fz-brand small{ display:block; margin-top:4px; color:var(--ink-soft2); font-size:.88rem; }
  .fz-support{ display:inline-flex; align-items:center; gap:10px; font:inherit; font-weight:600; font-size:1.02rem; padding:14px 26px; border:none; border-radius:999px; background:var(--marigold); color:#2A1B08; cursor:pointer; box-shadow:0 10px 22px -12px rgba(0,0,0,.4); transition:transform .15s, filter .2s; }
  .fz-support:hover{ filter:brightness(1.05); } .fz-support:active{ transform:scale(.97); }
  .fz-end{ background:var(--deep); color:var(--on-deep); padding:22px 0 calc(22px + env(safe-area-inset-bottom,0px)); text-align:center; }
  .fz-thanks{ display:flex; align-items:center; justify-content:center; gap:12px; margin:0; color:var(--on-deep); }
  .fz-thanks .fz-script{ font-size:clamp(1.3rem,2.2vw,1.6rem); }
  html[lang="ml"] .fz-thanks .fz-script{ font-size:1.05rem; }
  .fz-thanks i{ display:block; flex:0 1 110px; height:1px; background:var(--on-deep-soft); opacity:.6; }
  .fz-legal{ margin:10px 0 0; font-size:.76rem; color:var(--on-deep-soft); opacity:.85; }
  @media (max-width:820px){
    .fz-grid{ grid-template-columns:1fr; gap:30px; }
    .fz-col{ padding:0 !important; }
    .fz-col + .fz-col{ border-left:none; border-top:1px solid rgba(243,208,138,.3); padding-top:26px !important; }
    .fz-links{ display:grid; grid-template-columns:1fr 1fr; gap:12px 18px; }
    .fz-band-in{ flex-direction:column; align-items:flex-start; }
    .fz-support{ width:100%; justify-content:center; }
    .fz-thanks i{ flex-basis:30px; }
  }

  /* ======== fonts (Lora + Lato) ======== */
  .eyebrow, .t-tag, .mal{ font-family:'Lato','Noto Sans Malayalam',sans-serif !important; font-weight:700; letter-spacing:.1em; }
  .mono, .stat-num, .impact-figs span{ font-family:'Lato',sans-serif !important; font-weight:900; letter-spacing:0; }
  h1,h2,h3,h4{ letter-spacing:-0.005em; }

  /* ======== org structure ======== */
  .org{ display:flex; flex-direction:column; align-items:center; margin-top:10px; }
  .org-node{ background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:12px 18px; text-align:center; box-shadow:0 8px 20px -16px rgba(60,48,24,.4); }
  .org-node b{ display:block; font-family:'Lora','Noto Serif Malayalam',serif; font-size:1.02rem; }
  .org-node small{ display:block; color:var(--ink-soft2); font-size:.84rem; margin-top:2px; }
  .org-board{ background:var(--deep); border-color:var(--deep); min-width:260px; } .org-board b, .org-board small{ color:var(--on-deep); } .org-board small{ color:var(--on-deep-soft); }
  .org-chair{ background:var(--gold-soft); border-color:#EBCB8B; min-width:260px; }
  .org-v{ width:2px; height:22px; background:var(--line); }
  .org-depts{ display:grid; grid-template-columns:2.1fr 1fr 1fr; gap:20px; width:100%; }
  .org-dept{ position:relative; padding-top:24px; display:flex; flex-direction:column; gap:12px; }
  .org-dept::before{ content:""; position:absolute; top:0; left:-10px; right:-10px; border-top:2px solid var(--line); }
  .org-dept:first-child::before{ left:50%; } .org-dept:last-child::before{ right:50%; }
  .org-dept::after{ content:""; position:absolute; top:0; left:50%; width:2px; height:24px; background:var(--line); }
  .org-head{ display:flex; align-items:center; gap:12px; text-align:left; }
  .org-ic{ flex:none; width:40px; height:40px; border-radius:12px; display:flex; align-items:center; justify-content:center; }
  .d-med .org-head{ background:#E4EBDC; border-color:#CCDABF; } .d-med .org-ic{ background:#fff; color:#4E6E4A; }
  .d-phy .org-head{ background:#EAF2F5; border-color:#C9DCE4; } .d-phy .org-ic{ background:#fff; color:#2F6178; }
  .d-kit .org-head{ background:#FBF0D8; border-color:#EED7A3; } .d-kit .org-ic{ background:#fff; color:#8A5F12; }
  .org-sub{ display:grid; grid-template-columns:1.3fr 1fr; gap:16px; }
  .org-subcol{ display:flex; flex-direction:column; gap:10px; }
  .org-lead{ padding:10px 14px; }
  .org-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px; }
  .org-list li{ display:flex; justify-content:space-between; gap:10px; align-items:center; background:var(--surface); border:1px solid var(--line); border-radius:10px; padding:8px 12px; font-size:.9rem; }
  .org-list li b{ font-weight:900; color:var(--teal); min-width:26px; height:26px; border-radius:99px; background:var(--teal-pale); display:inline-flex; align-items:center; justify-content:center; font-size:.82rem; }
  .org-note{ font-size:.84rem; color:var(--ink-soft2); margin:0; }
  .org-shared{ margin-top:22px; width:100%; display:flex; align-items:center; justify-content:center; gap:16px; flex-wrap:wrap; padding:14px 18px; border:1.5px dashed var(--line); border-radius:14px; }
  .org-shared-t{ font-weight:700; font-size:.9rem; color:var(--ink-soft2); }
  .org-inline{ flex-direction:row; flex-wrap:wrap; }
  @media (max-width:860px){
    .org{ align-items:stretch; }
    .org-v{ margin-left:22px; }
    .org-board, .org-chair{ text-align:left; min-width:0; }
    .org-depts{ grid-template-columns:1fr; gap:14px; border-left:2px solid var(--line); margin-left:22px; padding-left:16px; width:auto; }
    .org-dept{ padding-top:0; }
    .org-dept::before{ left:-16px; right:auto; width:16px; top:28px; }
    .org-dept:first-child::before, .org-dept:last-child::before{ left:-16px; right:auto; }
    .org-dept::after{ display:none; }
    .org-sub{ grid-template-columns:1fr; }
    .org-shared{ justify-content:flex-start; }
  }

  /* ======== phone layout ======== */
  .vm-tabs{ display:none; }
  .wl-more{ display:none; }
  @media (max-width:640px){
    section{ padding-block:44px; }
    .section-head{ margin-bottom:22px !important; }
    .section-head h2{ font-size:1.55rem !important; }
    .section-head .lede{ font-size:.98rem; }
    /* hero */
    .hero{ min-height:72svh !important; }
    .hero-inner{ justify-content:flex-end !important; padding-bottom:26px !important; }
    .hero-inner .eyebrow{ display:none; }
    .hero h1{ font-size:1.95rem !important; line-height:1.15; margin-bottom:10px; }
    html[lang="ml"] .hero h1{ font-size:1.5rem !important; }
    .hero .lede{ font-size:.95rem; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
    .hero .btn{ padding:10px 16px; font-size:.92rem; }
    .stat-strip .stat-grid{ display:flex !important; overflow-x:auto; scroll-snap-type:x mandatory; gap:0 !important; scrollbar-width:none; }
    .stat-strip .stat-grid::-webkit-scrollbar{ display:none; }
    .stat-strip .stat-grid > *{ flex:0 0 44%; scroll-snap-align:start; padding:14px 12px !important; }
    /* welcome */
    section.welcome{ padding-block:30px; }
    .welcome-inner{ display:grid !important; grid-template-columns:56px 1fr; gap:4px 14px; align-items:start; }
    .welcome-photo{ width:56px !important; height:56px !important; border-width:2px; grid-row:1 / span 2; }
    .welcome-inner > div{ display:contents; }
    .welcome-inner .eyebrow{ grid-column:2; align-self:center; }
    .welcome-text{ grid-column:1 / -1; font-size:1rem !important; margin-top:10px; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
    .welcome-inner.open .welcome-text{ -webkit-line-clamp:unset; display:block; }
    .wl-more{ display:inline-block; grid-column:1 / -1; justify-self:start; background:none; border:none; padding:4px 0; font:inherit; font-weight:700; color:var(--teal); cursor:pointer; }
    .welcome-sign{ grid-column:1 / -1; font-size:.9rem; margin-top:2px; }
    /* vision tabs */
    .vm-tabs{ display:flex; gap:8px; margin-bottom:14px; }
    .vm-tab{ flex:1; font:inherit; font-weight:700; padding:10px; border-radius:999px; border:1.5px solid var(--line); background:transparent; color:var(--ink-soft2); cursor:pointer; }
    .vm-tab.on{ background:var(--teal); border-color:var(--teal); color:var(--accent-contrast); }
    .vm-grid .vm-card{ display:none; } .vm-grid .vm-card.on{ display:flex; }
    .vm-card blockquote{ font-size:1.12rem !important; }
    /* programs swipe */
    .pc-grid{ display:flex !important; overflow-x:auto; scroll-snap-type:x mandatory; gap:14px !important; margin-inline:calc(-1 * clamp(18px,4vw,40px)); padding:4px clamp(18px,4vw,40px) 10px; scrollbar-width:none; }
    .pc-grid::-webkit-scrollbar{ display:none; }
    .pc-grid .pc, .pc-grid .pc:last-child{ flex:0 0 80% !important; scroll-snap-align:center; flex-direction:column; }
    /* involve 2x2 */
    .involve-grid{ grid-template-columns:1fr 1fr !important; gap:10px !important; }
    .involve-card{ padding:16px 14px !important; gap:8px !important; }
    .involve-card p{ font-size:.84rem; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
    .involve-card .btn{ padding:8px 12px; font-size:.82rem; min-height:38px; }
    .involve-card .badge-80g{ display:none; }
    /* trustees swipe */
    .tr-grid{ display:flex !important; overflow-x:auto; scroll-snap-type:x mandatory; gap:12px !important; scrollbar-width:none; margin-inline:calc(-1 * clamp(18px,4vw,40px)); padding:4px clamp(18px,4vw,40px) 10px; }
    .tr-grid::-webkit-scrollbar{ display:none; }
    .tr-card{ flex:0 0 58%; scroll-snap-align:start; }
    .impact-card{ padding:22px 18px !important; }
  }
  /* ======== big screens ======== */
  @media (min-width:1200px){
    section{ padding-block:110px; }
    .section-head h2{ font-size:2.6rem !important; }
    .hero h1{ font-size:4.2rem; }
  }

  /* ======== leadership ======== */
  .ld-grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
  .ld-card{ background:var(--surface); border:1px solid var(--line); border-radius:16px; padding:20px 18px; display:flex; flex-direction:column; gap:6px; transition:transform .2s, box-shadow .2s; }
  .ld-card:hover{ transform:translateY(-3px); box-shadow:var(--shadow); }
  .ld-ic{ width:48px; height:48px; border-radius:50%; background:var(--teal-pale); color:var(--teal); display:flex; align-items:center; justify-content:center; margin-bottom:6px; }
  .ld-card h4{ font-size:1.05rem; } .ld-card p{ font-size:.88rem; color:var(--ink-soft2); line-height:1.5; }
  .team-sum{ margin-top:18px; padding:16px 20px; border-radius:14px; background:var(--tint-sage); display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
  .team-sum p{ margin:0; } .team-sum ul{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:8px; }
  .team-sum li{ background:var(--surface); border:1px solid var(--line); border-radius:999px; padding:6px 12px; font-size:.86rem; }
  .team-sum li b{ color:var(--teal); margin-left:4px; }
  @media (max-width:980px){ .ld-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
  @media (max-width:640px){ .ld-grid{ gap:10px; } .ld-card{ padding:14px 12px; } .ld-card p{ font-size:.82rem; } }
  .hl-short{ display:none; }
  @media (max-width:640px){ .hero .lede{ display:block !important; -webkit-line-clamp:unset !important; overflow:visible !important; } .hl-long{ display:none; } .hl-short{ display:inline; } }
  #faqPage .faq-list{ max-width:900px; }
  .modal-overlay{
    position:fixed; inset:0; z-index:100;
    background:rgba(8,20,23,0.55);
    display:flex; align-items:center; justify-content:center;
    padding:18px;
    padding-top: calc(18px + env(safe-area-inset-top,0px));
    padding-bottom: calc(18px + env(safe-area-inset-bottom,0px));
    overflow-y:auto;
  }
  .modal-card{
    position:relative;
    background:var(--surface);
    border-radius:22px;
    max-width:880px; width:100%;
    box-shadow:var(--shadow);
    margin:auto;
  }
  .modal-close{
    position:absolute; top:14px; right:14px;
    width:34px; height:34px; border-radius:50%;
    border:1px solid var(--line); background:var(--surface); color:var(--ink);
    font-size:1.1rem; line-height:1; cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    z-index:2;
  }
  .modal-close:hover{ border-color:var(--teal); color:var(--teal); }
  .donate-grid{
    display:grid;
    grid-template-columns: 0.85fr 1.15fr;
  }
  .donate-pay{
    background:var(--teal-pale);
    border-radius:22px 0 0 22px;
    padding:clamp(26px,3.6vw,36px);
    display:flex; flex-direction:column; gap:12px;
  }
  .donate-pay h3{ font-size:1.4rem; }
  .donate-pay .lede{ font-size:0.92rem; }
  .qr-box{
    background:var(--surface);
    border-radius:16px;
    padding:16px;
    display:flex; align-items:center; justify-content:center;
    align-self:flex-start;
  }
  .pay-note{ font-size:0.86rem; line-height:1.5; color:var(--ink); background:var(--surface); border-left:3px solid var(--gold); border-radius:0 10px 10px 0; padding:10px 14px; }
  .fine-print{ font-size:0.8rem; color:var(--ink-soft2); }
  .fine-print a{ color:var(--teal); text-decoration:underline; }
  .donate-form{
    padding:clamp(26px,3.6vw,36px);
    display:flex; flex-direction:column; gap:14px;
  }
  .donate-form h4{ font-size:1.02rem; }
  .f-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
  .donate-form label{
    display:flex; flex-direction:column; gap:6px;
    font-size:0.84rem; font-weight:600; color:var(--ink-soft2);
  }
  .donate-form input, .donate-form select, .donate-form textarea{
    font:inherit; font-size:0.92rem; color:var(--ink);
    background:var(--bg);
    border:1px solid var(--line); border-radius:10px;
    padding:10px 12px;
    font-family:'Lato', sans-serif;
  }
  .donate-form textarea{ resize:vertical; }
  .donate-form input:focus, .donate-form select:focus, .donate-form textarea:focus{
    outline:2px solid var(--teal); outline-offset:1px;
  }
  #panRow{ background:var(--gold-soft); padding:10px 12px; border-radius:10px; }
  #panRow .fine-print{ font-weight:400; }
  .id-wrap{ position:relative; display:block; }
  .id-wrap input{ width:100%; box-sizing:border-box; padding-right:34px; }
  .id-tick{ position:absolute; right:12px; top:50%; transform:translateY(-50%); color:#1E7A4C; font-weight:700; font-size:1.05rem; pointer-events:none; }
  :root[data-theme="never"] .id-tick{ color:#7FD6A6; }
  @media not all{ :root:not([data-theme="light"]) .id-tick{ color:#7FD6A6; } }
  .id-hint:empty{ display:none; }
  .id-hint{ font-size:0.8rem; margin-top:-6px; color:var(--ink-soft2); }
  .id-hint.ok{ color:#1E7A4C; font-weight:600; }
  .id-hint.bad{ color:#B3261E; font-weight:600; }
  :root[data-theme="never"] .id-hint.ok{ color:#7FD6A6; }
  @media not all{ :root:not([data-theme="light"]) .id-hint.ok{ color:#7FD6A6; } :root:not([data-theme="light"]) .id-hint.bad{ color:#FF9A8F; } }
  :root[data-theme="never"] .id-hint.bad{ color:#FF9A8F; }
  .donate-form input.invalid{ border-color:#B3261E; }
  .form-error{ color:#B3261E; font-size:0.85rem; font-weight:600; }
  .donate-thanks{ justify-content:center; text-align:left; }
  .thanks-mark{ width:48px; height:48px; border-radius:50%; background:var(--teal); color:#fff; display:flex; align-items:center; justify-content:center; font-size:1.5rem; font-weight:700; }
  .donate-actions{ display:flex; gap:12px; flex-wrap:wrap; margin-top:4px; }
  .donate-actions .btn{ border:none; }
  @media (max-width:760px){
    .donate-grid{ grid-template-columns:1fr; }
    .donate-pay{ border-radius:22px 22px 0 0; }
    .f-row{ grid-template-columns:1fr; }
  }

/* ---- multi-page additions ---- */
a.brand{ text-decoration:none; color:inherit; }
.pp-head h1{ font-size:clamp(1.6rem,3.6vw,2.5rem); margin:6px 0 0; }
.crumbs{ font-size:.9rem; color:var(--ink-soft2); display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.crumbs a{ color:var(--teal); text-decoration:none; font-weight:600; }
.crumbs a:hover{ text-decoration:underline; }
.prog-standalone .pp-body{ padding-top:clamp(18px,3vw,32px); }
.back-home{ margin-top:8px; }

/* ---- left-align hero and welcome with the page edge ---- */
.hero-media > .hero-inner{ width:100%; }
.welcome-inner{ max-width:1160px !important; margin-inline:auto; }
@media (min-width:900px){ .welcome-inner{ max-width:1160px !important; } .welcome-text{ max-width:62ch; } }

/* ---- taller program card photos ---- */
.pc-media{ height:228px; }
.pc-grid .pc:last-child .pc-media{ min-height:240px; }
@media (max-width:640px){ .pc-media, .pc-grid .pc:last-child .pc-media{ height:192px; } }
.impact-asof{ margin-top:18px; font-size:.85rem; color:var(--ink-soft2); }

/* ---- Malayalam switch hidden until the trust's own translation is ready ---- */
.lang-toggle{ display:none !important; }

/* ---- animated program banners (drawn illustrations) ---- */
.pp-anim{ background:#EAF1F4; position:relative; }
.pp-anim svg{ width:100%; height:100%; display:block; }
.pp-anim .anim-tag{ position:absolute; right:12px; bottom:10px; font-size:.72rem; color:#5A6556; background:rgba(255,253,249,.8); padding:3px 9px; border-radius:99px; }
.ab-move, .ab-leg, .ab-light, .ab-heart, .ab-wave, .ab-wheel, .ab-cloud, .ab-sun{ transform-box:fill-box; }
.ab-leg{ transform-origin:50% 0; }
.ab-wave{ transform-origin:0% 100%; }
.ab-wheel{ transform-origin:50% 50%; }
.ab-sun{ transform-origin:50% 50%; }
/* resting state = the finished scene (shown when motion is reduced) */
.sp-move{ transform:translateX(560px); }
.op-move{ transform:translateX(170px); }
.ab-light{ opacity:1; }
.ab-heart{ opacity:1; transform:translateY(-30px); }
@media (prefers-reduced-motion: no-preference){
  .sp-move{ animation:spMove 11s ease-in-out infinite; }
  .op-move{ animation:opMove 11s ease-in-out infinite; }
  .ab-leg.l1{ animation:legA 11s linear infinite; }
  .ab-leg.l2{ animation:legB 11s linear infinite; }
  .ab-light{ animation:abLight 11s ease infinite; }
  .ab-heart{ animation:abHeart 11s ease-out infinite; }
  .ab-wave{ animation:abWave 11s ease-in-out infinite; }
  .ab-wheel{ animation:abWheel 11s ease-in-out infinite; }
  .ab-cloud{ animation:abCloud 60s linear infinite; }
  .ab-cloud.c2{ animation-duration:85s; animation-delay:-30s; }
  .ab-sun{ animation:abSun 6s ease-in-out infinite; }
}
@keyframes spMove{ 0%{transform:translateX(0);opacity:0} 4%{opacity:1} 55%{transform:translateX(560px)} 92%{transform:translateX(560px);opacity:1} 97%,100%{transform:translateX(560px);opacity:0} }
@keyframes opMove{ 0%{transform:translateX(0);opacity:0} 4%{opacity:1} 55%{transform:translateX(170px)} 92%{transform:translateX(170px);opacity:1} 97%,100%{transform:translateX(170px);opacity:0} }
@keyframes abLight{ 0%,57%{opacity:0} 63%,90%{opacity:1} 97%,100%{opacity:0} }
@keyframes abHeart{ 0%,60%{opacity:0;transform:translateY(0) scale(.6)} 68%{opacity:1;transform:translateY(-14px) scale(1)} 88%{opacity:1;transform:translateY(-34px) scale(1)} 95%,100%{opacity:0;transform:translateY(-44px) scale(1)} }
@keyframes abWave{ 0%,57%{transform:rotate(0)} 61%{transform:rotate(-28deg)} 65%{transform:rotate(-8deg)} 69%{transform:rotate(-28deg)} 73%,100%{transform:rotate(0)} }
@keyframes abWheel{ 0%{transform:rotate(0)} 55%,100%{transform:rotate(720deg)} }
@keyframes abCloud{ from{transform:translateX(-300px)} to{transform:translateX(1500px)} }
@keyframes abSun{ 0%,100%{transform:scale(1)} 50%{transform:scale(1.06)} }
@keyframes legA{0.0%{transform:rotate(16deg)}2.5%{transform:rotate(-16deg)}5.0%{transform:rotate(16deg)}7.5%{transform:rotate(-16deg)}10.0%{transform:rotate(16deg)}12.5%{transform:rotate(-16deg)}15.0%{transform:rotate(16deg)}17.5%{transform:rotate(-16deg)}20.0%{transform:rotate(16deg)}22.5%{transform:rotate(-16deg)}25.0%{transform:rotate(16deg)}27.5%{transform:rotate(-16deg)}30.0%{transform:rotate(16deg)}32.5%{transform:rotate(-16deg)}35.0%{transform:rotate(16deg)}37.5%{transform:rotate(-16deg)}40.0%{transform:rotate(16deg)}42.5%{transform:rotate(-16deg)}45.0%{transform:rotate(16deg)}47.5%{transform:rotate(-16deg)}50.0%{transform:rotate(16deg)}52.5%{transform:rotate(-16deg)}55%,100%{transform:rotate(0deg)}}
@keyframes legB{0.0%{transform:rotate(-16deg)}2.5%{transform:rotate(16deg)}5.0%{transform:rotate(-16deg)}7.5%{transform:rotate(16deg)}10.0%{transform:rotate(-16deg)}12.5%{transform:rotate(16deg)}15.0%{transform:rotate(-16deg)}17.5%{transform:rotate(16deg)}20.0%{transform:rotate(-16deg)}22.5%{transform:rotate(16deg)}25.0%{transform:rotate(-16deg)}27.5%{transform:rotate(16deg)}30.0%{transform:rotate(-16deg)}32.5%{transform:rotate(16deg)}35.0%{transform:rotate(-16deg)}37.5%{transform:rotate(16deg)}40.0%{transform:rotate(-16deg)}42.5%{transform:rotate(16deg)}45.0%{transform:rotate(-16deg)}47.5%{transform:rotate(16deg)}50.0%{transform:rotate(-16deg)}52.5%{transform:rotate(16deg)}55%,100%{transform:rotate(0deg)}}

/* ======== program page layout v2 ======== */
.pg2 section{ padding-block:clamp(30px,5vw,56px); }
.pg-intro{ padding-top:clamp(18px,3vw,30px) !important; }
.pg-intro .wrap{ display:flex; flex-direction:column; gap:14px; }
.pg-intro h1{ font-size:clamp(1.9rem,4.4vw,3rem); line-height:1.1; max-width:22ch; }
.pg-intro .lede{ max-width:60ch; }
.pg-free{ align-self:flex-start; display:inline-flex; align-items:center; gap:8px; font-weight:700; font-size:.9rem; color:var(--teal); background:var(--teal-pale); border-radius:999px; padding:7px 14px; }
.pg-btns{ display:flex; flex-wrap:wrap; gap:10px; margin-top:4px; }
.pg-story .wrap{ display:grid; grid-template-columns:1.35fr 1fr; gap:clamp(22px,4vw,48px); align-items:start; }
.pg-story .wrap > *{ min-width:0; }
.pg-story h2, .pg-tiles h2, .pg-photos h2{ font-size:clamp(1.4rem,2.8vw,1.9rem); margin-bottom:14px; }
.pg-story-text p{ font-size:1.06rem; line-height:1.75; color:var(--ink); max-width:62ch; }
.pg-story-text p + p{ margin-top:14px; }
.pg-credit{ margin-top:16px; padding:12px 16px; border-left:3px solid var(--marigold); background:var(--gold-soft); border-radius:0 12px 12px 0; font-size:.95rem; color:var(--ink); }
.pg-aside{ background:var(--surface); border:1px solid var(--line); border-radius:18px; padding:22px 24px; display:flex; flex-direction:column; gap:12px; }
.pg-aside h3{ font-size:1.15rem; }
.pg-aside p{ color:var(--ink-soft2); }
.pg-hours{ display:grid; grid-template-columns:auto 1fr; gap:6px 14px; font-size:.97rem; }
.pg-hours dt{ font-weight:700; color:var(--ink); } .pg-hours dd{ margin:0; color:var(--ink-soft2); }
.pg-note{ font-weight:600; color:var(--teal); }
.pg-tile-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.pg-tile{ background:var(--surface); border:1px solid var(--line); border-radius:16px; padding:18px; display:flex; gap:14px; align-items:center; font-weight:600; line-height:1.35; }
.pg-tile .ti{ flex:none; width:48px; height:48px; border-radius:14px; background:var(--teal-pale); color:var(--teal); display:flex; align-items:center; justify-content:center; }
.pg-tile:nth-child(3n+2) .ti{ background:#F8E1CF; color:#A2562A; } .pg-tile:nth-child(3n) .ti{ background:#F7E6BE; color:#8A5F12; }
.pg-nums{ background:var(--deep); color:var(--on-deep); }
.pg-num-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.pg-num-grid div{ border-left:1px solid rgba(255,255,255,.18); padding-left:18px; }
.pg-num-grid div:first-child{ border-left:none; padding-left:0; }
.pg-num-grid b{ display:block; font-family:'Lato',sans-serif; font-size:clamp(1.9rem,4vw,2.6rem); color:var(--deep-accent); }
.pg-num-grid span{ color:var(--on-deep-soft); font-size:.95rem; }
.pg-asof{ margin-top:16px; font-size:.82rem; color:var(--on-deep-soft); }
.pg-photo-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:12px; }
.pg-photo-grid img{ width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:14px; }
.pg-cta{ background:var(--gold-soft); border-radius:22px; padding:clamp(22px,4vw,36px); display:flex; flex-wrap:wrap; gap:18px; align-items:center; justify-content:space-between; }
.pg-cta h2{ font-size:clamp(1.3rem,2.6vw,1.7rem); max-width:28ch; }
.pg-cta .pg-btns{ margin:0; }
.pg-end .pp-others{ margin-top:28px; }
@media (max-width:860px){ .pg-story .wrap{ grid-template-columns:1fr; } .pg-tile-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px){ .pg-tile-grid{ grid-template-columns:1fr; } .pg-num-grid{ grid-template-columns:1fr; gap:16px; } .pg-num-grid div{ border-left:none; padding-left:0; } }

/* banner animations for Jeramiah's Home + Anjali Diagnostics */
.jh-move{ transform:translateX(170px); }
.ab-blanket{ transform-box:fill-box; transform-origin:50% 100%; }
.dx-tube{ opacity:0; transform:translate(250px,-70px); }
.dx-report{ transform:translateY(40px); }
.pg-dx .ab-heart{ transform:none; transform-origin:50% 50%; }
@media (prefers-reduced-motion: no-preference){
  .jh-move{ animation:jhMove 11s ease-in-out infinite; }
  .ab-blanket{ animation:jhTuck 11s ease-in-out infinite; }
  .dx-tube{ animation:dxTube 9s ease-in-out infinite; }
  .dx-report{ animation:dxReport 9s ease-in-out infinite; }
  .pg-dx .ab-light{ animation:dxLight 9s ease infinite; }
  .pg-dx .ab-heart{ animation:dxCheck 9s ease-out infinite; }
}
@keyframes jhMove{ 0%{transform:translateX(0);opacity:0} 4%{opacity:1} 55%{transform:translateX(170px)} 92%{transform:translateX(170px);opacity:1} 97%,100%{transform:translateX(170px);opacity:0} }
@keyframes jhTuck{ 0%,58%{transform:scaleY(.72)} 66%,100%{transform:scaleY(1)} }
@keyframes dxTube{ 0%,8%{opacity:1;transform:translate(0,0)} 22%{transform:translate(0,-80px)} 38%{opacity:1;transform:translate(250px,-80px)} 44%,100%{opacity:0;transform:translate(250px,-70px)} }
@keyframes dxReport{ 0%,55%{transform:translateY(-40px);opacity:0} 58%{opacity:1} 70%,92%{transform:translateY(40px);opacity:1} 98%,100%{transform:translateY(40px);opacity:0} }
@keyframes dxLight{ 0%,44%{opacity:0} 48%{opacity:1} 51%{opacity:.3} 54%,92%{opacity:1} 98%,100%{opacity:0} }
@keyframes dxCheck{ 0%,70%{opacity:0;transform:scale(.6)} 76%,92%{opacity:1;transform:scale(1)} 98%,100%{opacity:0} }

/* smart floating donate button: hidden while another support button is on screen */
.fab-donate{ transition:opacity .3s, transform .3s; }
.fab-stack.fab-quiet .fab-donate{ opacity:0; transform:translateY(12px); pointer-events:none; }
.pc-foot .prog-more{ margin-left:auto; }
.catch{ color:var(--teal); font-weight:700; }

/* Oottupura banner */
.ot-move{ transform:translateX(200px); }
.ot-steam{ transform-box:fill-box; transform-origin:50% 100%; }
@media (prefers-reduced-motion: no-preference){
  .ot-move{ animation:otMove 11s ease-in-out infinite; }
  .ot-steam{ animation:otSteam 2.4s ease-in-out infinite; }
  .ot-steam.s2{ animation-delay:.8s; } .ot-steam.s3{ animation-delay:1.6s; }
}
@keyframes otMove{ 0%{transform:translateX(0);opacity:0} 4%{opacity:1} 55%{transform:translateX(200px)} 92%{transform:translateX(200px);opacity:1} 97%,100%{transform:translateX(200px);opacity:0} }
@keyframes otSteam{ 0%{opacity:0;transform:translateY(8px)} 40%{opacity:.9} 100%{opacity:0;transform:translateY(-14px)} }

/* Anjali Home banner */
.ph-move{ transform:translateX(200px); }
@media (prefers-reduced-motion: no-preference){ .ph-move{ animation:phMove 11s ease-in-out infinite; } }
@keyframes phMove{ 0%{transform:translateX(0);opacity:0} 4%{opacity:1} 55%{transform:translateX(200px)} 92%{transform:translateX(200px);opacity:1} 97%,100%{transform:translateX(200px);opacity:0} }

/* Jeramiah's Home: nurse visits both beds */
.jh2-move{ transform:translateX(420px); }
.jh2-h1, .jh2-h2{ transform-box:fill-box; transform-origin:50% 50%; opacity:1; transform:translateY(-24px); }
.jh2-b1, .jh2-b2{ transform-box:fill-box; transform-origin:50% 100%; }
@media (prefers-reduced-motion: no-preference){
  .jh2-move{ animation:jh2Move 15s ease-in-out infinite; }
  .pg-jh .ab-leg.l1{ animation:jhLegA 15s linear infinite; }
  .pg-jh .ab-leg.l2{ animation:jhLegB 15s linear infinite; }
  .jh2-b1{ animation:jh2B1 15s ease-in-out infinite; } .jh2-b2{ animation:jh2B2 15s ease-in-out infinite; }
  .jh2-h1{ animation:jh2H1 15s ease-out infinite; } .jh2-h2{ animation:jh2H2 15s ease-out infinite; }
}
@keyframes jh2Move{ 0%{transform:translateX(0);opacity:0} 3%{opacity:1} 18%,36%{transform:translateX(170px)} 50%,68%{transform:translateX(670px)} 85%{transform:translateX(1230px);opacity:1} 86%,100%{transform:translateX(1230px);opacity:0} }
@keyframes jh2B1{ 0%,19%{transform:scaleY(.72)} 25%,100%{transform:scaleY(1)} }
@keyframes jh2B2{ 0%,51%{transform:scaleY(.72)} 57%,100%{transform:scaleY(1)} }
@keyframes jh2H1{ 0%,22%{opacity:0;transform:translateY(0) scale(.6)} 27%{opacity:1;transform:translateY(-12px) scale(1)} 36%{opacity:1;transform:translateY(-30px) scale(1)} 42%,100%{opacity:0;transform:translateY(-40px) scale(1)} }
@keyframes jh2H2{ 0%,54%{opacity:0;transform:translateY(0) scale(.6)} 59%{opacity:1;transform:translateY(-12px) scale(1)} 68%{opacity:1;transform:translateY(-30px) scale(1)} 74%,100%{opacity:0;transform:translateY(-40px) scale(1)} }
@keyframes jhLegA{0%{transform:rotate(0deg)}3.0%{transform:rotate(16deg)}5.0%{transform:rotate(-16deg)}7.0%{transform:rotate(16deg)}9.0%{transform:rotate(-16deg)}11.0%{transform:rotate(16deg)}13.0%{transform:rotate(-16deg)}15.0%{transform:rotate(16deg)}17.0%{transform:rotate(-16deg)}18.0%{transform:rotate(0deg)}36.0%{transform:rotate(16deg)}38.0%{transform:rotate(-16deg)}40.0%{transform:rotate(16deg)}42.0%{transform:rotate(-16deg)}44.0%{transform:rotate(16deg)}46.0%{transform:rotate(-16deg)}48.0%{transform:rotate(16deg)}50.0%{transform:rotate(0deg)}68.0%{transform:rotate(16deg)}70.0%{transform:rotate(-16deg)}72.0%{transform:rotate(16deg)}74.0%{transform:rotate(-16deg)}76.0%{transform:rotate(16deg)}78.0%{transform:rotate(-16deg)}80.0%{transform:rotate(16deg)}82.0%{transform:rotate(-16deg)}84.0%{transform:rotate(16deg)}85.0%{transform:rotate(0deg)}100%{transform:rotate(0deg)}}
@keyframes jhLegB{0%{transform:rotate(0deg)}3.0%{transform:rotate(-16deg)}5.0%{transform:rotate(16deg)}7.0%{transform:rotate(-16deg)}9.0%{transform:rotate(16deg)}11.0%{transform:rotate(-16deg)}13.0%{transform:rotate(16deg)}15.0%{transform:rotate(-16deg)}17.0%{transform:rotate(16deg)}18.0%{transform:rotate(0deg)}36.0%{transform:rotate(-16deg)}38.0%{transform:rotate(16deg)}40.0%{transform:rotate(-16deg)}42.0%{transform:rotate(16deg)}44.0%{transform:rotate(-16deg)}46.0%{transform:rotate(16deg)}48.0%{transform:rotate(-16deg)}50.0%{transform:rotate(0deg)}68.0%{transform:rotate(-16deg)}70.0%{transform:rotate(16deg)}72.0%{transform:rotate(-16deg)}74.0%{transform:rotate(16deg)}76.0%{transform:rotate(-16deg)}78.0%{transform:rotate(16deg)}80.0%{transform:rotate(-16deg)}82.0%{transform:rotate(16deg)}84.0%{transform:rotate(-16deg)}85.0%{transform:rotate(0deg)}100%{transform:rotate(0deg)}}

/* Anjali Lifecare banner */
.lc-move{ transform:translateX(-300px); }
.lc-pulse{ stroke-dasharray:12 260; }
@media (prefers-reduced-motion: no-preference){
  .lc-move{ animation:lcMove 11s ease-in-out infinite; }
  .pg-lc .ab-leg.l1{ animation:legA 11s linear infinite; } .pg-lc .ab-leg.l2{ animation:legB 11s linear infinite; }
  .lc-pulse{ stroke-dasharray:60 212; animation:lcPulse 2.2s linear infinite; }
}
@keyframes lcMove{ 0%{transform:translateX(0);opacity:0} 4%{opacity:1} 55%{transform:translateX(-300px)} 92%{transform:translateX(-300px);opacity:1} 97%,100%{transform:translateX(-300px);opacity:0} }
@keyframes lcPulse{ from{stroke-dashoffset:272} to{stroke-dashoffset:0} }

/* program pages: the footer's program strip repeats "Other programs", so hide it there */
main.prog-standalone ~ footer .fz-progs{ display:none; }

.pg-phones a{ white-space:nowrap; color:var(--ink); } .fz-contact a, .wish-addr a{ white-space:nowrap; }

/* ======== Our Story page + timeline link ======== */
.story-more{ margin-top:28px; }
.st-welcome{ padding-block:8px clamp(24px,4vw,40px) !important; }
.st-quote{ margin:0; display:flex; gap:clamp(16px,3vw,28px); align-items:center; background:var(--tint-peach); border-radius:22px; padding:clamp(20px,3vw,32px); }
.st-quote img{ width:clamp(80px,12vw,120px); height:clamp(80px,12vw,120px); border-radius:50%; object-fit:cover; flex:none; border:4px solid var(--surface); }
.st-quote blockquote{ margin:0; }
.st-quote p{ font-family:'Lora',serif; font-size:clamp(1.05rem,1.8vw,1.25rem); line-height:1.6; color:var(--ink); }
.st-sign{ display:block; margin-top:10px; font-style:normal; font-weight:600; color:var(--gold); }
.st-ch{ padding-block:clamp(26px,4vw,48px) !important; }
.st-ch:nth-of-type(even){ background:var(--bg-alt); }
.st-grid{ display:grid; grid-template-columns:1.2fr 1fr; gap:clamp(22px,4vw,48px); align-items:center; }
.st-grid > *{ min-width:0; }
.st-flip .st-text{ order:2; }
.st-noimg .st-grid{ grid-template-columns:1fr; max-width:760px; }
.st-text h2{ font-size:clamp(1.4rem,3vw,2rem); margin:6px 0 12px; }
.st-text p{ font-size:1.05rem; line-height:1.75; color:var(--ink); max-width:62ch; }
.st-text p + p{ margin-top:12px; }
.st-link{ color:var(--teal); font-weight:700; text-decoration:none; }
.st-link:hover{ text-decoration:underline; }
.st-fig{ margin:0; }
.st-fig img{ width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:18px; box-shadow:var(--shadow); }
@media (max-width:760px){ .st-grid{ grid-template-columns:1fr; } .st-flip .st-text{ order:0; } .st-quote{ flex-direction:column; align-items:flex-start; } }

/* ---------- Photo mosaic (program pages) ---------- */
.pg-mosaic{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); grid-auto-rows:200px; gap:12px; grid-auto-flow:dense; }
.pg-mosaic figure{ position:relative; margin:0; border-radius:14px; overflow:hidden; background:var(--bg-alt); }
.pg-mosaic img{ width:100%; height:100%; object-fit:cover; display:block; }
.pg-mosaic .big{ grid-column:span 2; grid-row:span 2; }
.pg-mosaic .wide{ grid-column:span 2; }
.pg-mosaic .tall{ grid-row:span 2; }
.pg-mosaic figcaption, .pg-single figcaption{ position:absolute; left:0; right:0; bottom:0; padding:28px 14px 11px; font-size:.86rem; line-height:1.4; color:#fff; background:linear-gradient(to top, rgba(20,24,18,.72), rgba(20,24,18,0)); }
.pg-single{ position:relative; margin:0; max-width:820px; border-radius:16px; overflow:hidden; }
.pg-single img{ width:100%; aspect-ratio:3/2; object-fit:cover; display:block; }
@media (max-width:760px){
  .pg-mosaic{ grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:150px; gap:8px; }
  .pg-mosaic .big{ grid-column:span 2; grid-row:span 2; }
}

/* ---------- Press: quiet proof lines, full clipping, story cards ---------- */
.press-line{ display:inline-flex; gap:6px; align-items:baseline; margin-top:14px; font-size:.88rem; color:var(--ink-soft2); text-decoration:none; border-bottom:1px dotted currentColor; line-height:1.45; }
.press-line:hover{ color:var(--gold); }
.press-lines{ display:flex; flex-direction:column; align-items:flex-start; gap:2px; margin-top:6px; }
.press-full{ margin:22px 0 0; max-width:520px; }
.press-full img{ width:100%; border-radius:6px; border:1px solid var(--line); box-shadow:0 6px 22px rgba(40,35,20,.10); display:block; }
.press-full figcaption{ margin-top:8px; font-size:.84rem; color:var(--ink-soft2); }
.press-note{ margin-top:6px; font-size:.86rem; color:var(--ink-soft2); }
.pg-voice{ padding:clamp(28px,5vw,56px) 0 0; }
.story-card{ display:grid; grid-template-columns:150px 1fr; gap:clamp(18px,3vw,32px); align-items:start; background:var(--surface); border:1px solid var(--line); border-radius:20px; padding:clamp(18px,3vw,28px); max-width:900px; scroll-margin-top:90px; }
.sc-clip{ display:block; border-radius:6px; overflow:hidden; border:1px solid var(--line); box-shadow:0 4px 14px rgba(40,35,20,.10); }
.sc-clip img{ width:100%; display:block; aspect-ratio:3/4; object-fit:cover; object-position:top; }
.sc-tags{ display:flex; flex-wrap:wrap; gap:6px; margin-bottom:10px; }
.sc-tags span{ font-size:.74rem; letter-spacing:.04em; text-transform:uppercase; padding:3px 9px; border-radius:99px; background:var(--gold-soft); color:var(--gold); }
.story-card blockquote{ margin:0 0 10px; font-family:'Lora', 'Noto Serif Malayalam', Georgia, serif; font-style:italic; font-size:clamp(1.12rem,2.2vw,1.35rem); line-height:1.45; color:var(--ink); }
.story-card p{ color:var(--ink-soft2); line-height:1.7; max-width:62ch; }
.sc-more{ display:inline-block; margin-top:10px; font-size:.92rem; }
@media (max-width:600px){ .story-card{ grid-template-columns:1fr; } .sc-clip{ max-width:150px; } }

/* lightbox */
.press-box{ border:none; padding:0; background:transparent; max-width:min(94vw,900px); max-height:92vh; }
.press-box::backdrop{ background:rgba(15,18,13,.82); }
.press-box img{ display:block; max-width:100%; max-height:82vh; margin:0 auto; border-radius:6px; background:#fff; }
.press-box p{ color:#f2efe6; font-size:.88rem; text-align:center; margin-top:10px; }
.press-box button{ position:fixed; top:14px; right:16px; width:42px; height:42px; border-radius:50%; border:none; background:rgba(255,255,255,.92); color:#222; font-size:1.4rem; cursor:pointer; }
.st-fig figcaption{ margin-top:8px; font-size:.88rem; color:var(--ink-soft2); }

/* Pre-launch additions */
.wish-ways{ grid-template-columns:repeat(3,1fr); }
@media (max-width:860px){ .wish-ways{ grid-template-columns:1fr; } }
.wish-else{ display:flex; flex-direction:column; align-items:flex-start; gap:10px; background:var(--gold-soft); border-style:dashed; }
.wish-else h3{ margin-bottom:0; }
.wish-else p{ color:var(--ink-soft2); font-size:.93rem; }
.pledge-steps{ margin:4px 0 14px 18px; padding:0; display:grid; gap:6px; font-size:.93rem; color:var(--ink); }
.st-lab{ display:inline-flex; align-items:center; gap:8px; }
.st-ic{ display:inline-grid; place-items:center; width:30px; height:30px; border-radius:50%; background:var(--gold-soft); color:var(--gold); }
.st-yr{ letter-spacing:.08em; }
.st-lab::before{ display:none !important; }
.st-fig-tall{ max-width:380px; justify-self:center; } .st-fig-tall img{ aspect-ratio:3/4; object-position:center 30%; }

/* Volunteer form: clearer tick boxes */
.donate-form .checks input[type="checkbox"]{ -webkit-appearance:none; appearance:none; width:20px; height:20px; flex:0 0 20px; margin:0; border:2px solid var(--line); border-radius:6px; background:var(--surface); display:inline-grid; place-content:center; cursor:pointer; transition:background .15s, border-color .15s; }
.donate-form .checks input[type="checkbox"]::after{ content:""; width:10px; height:6px; border-left:2.5px solid #fff; border-bottom:2.5px solid #fff; transform:rotate(-45deg) translate(1px,-1px); opacity:0; }
.donate-form .checks input[type="checkbox"]:checked{ background:var(--teal); border-color:var(--teal); }
.donate-form .checks input[type="checkbox"]:checked::after{ opacity:1; }
.donate-form .checks input[type="checkbox"]:focus-visible{ outline:2px solid var(--marigold); outline-offset:2px; }
/* Sponsor link under Donate */
.link-btn{ background:none; border:none; padding:6px 0 0; font:inherit; font-weight:700; font-size:.92rem; color:var(--teal); cursor:pointer; text-align:left; align-self:flex-start; }
.link-btn:hover{ text-decoration:underline; }

/* ---------- Program support form ---------- */
.prog-cost{ background:var(--gold-soft); border-radius:12px; padding:12px 14px; }
.prog-cost .pc-h{ font-weight:700; font-size:.9rem; margin:0 0 6px; color:var(--ink); }
.prog-cost ul{ list-style:none; margin:0; padding:0; display:grid; gap:4px; }
.prog-cost li{ display:flex; justify-content:space-between; gap:12px; font-size:.9rem; color:var(--ink); }
.prog-cost li b{ white-space:nowrap; font-variant-numeric:tabular-nums; }
.prog-cost .pc-n{ margin:6px 0 0; font-size:.84rem; color:var(--ink-soft2); }
.prog-rows{ display:grid; gap:12px; }
.prog-row .pr-l{ margin:0 0 6px; font-weight:600; font-size:.92rem; color:var(--ink); }
.pr-chips, .amount-chips, .freq-row{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.chip-btn{ font:inherit; font-size:.9rem; padding:7px 14px; border-radius:99px; border:1.5px solid var(--line); background:var(--surface); color:var(--ink); cursor:pointer; }
.chip-btn.on{ background:var(--teal); border-color:var(--teal); color:var(--accent-contrast); }
.chip-btn:focus-visible{ outline:2px solid var(--marigold); outline-offset:2px; }
.pr-other{ width:110px; }
.prog-total{ margin:0; font-weight:700; color:var(--teal); font-variant-numeric:tabular-nums; min-height:1.2em; }
.prog-other{ margin:4px 0 0; font-size:.86rem; color:var(--ink-soft2); }
.link-inline{ background:none; border:none; padding:0; font:inherit; color:var(--teal); font-weight:700; cursor:pointer; text-decoration:underline; text-underline-offset:2px; }
.freq-row .chip{ position:relative; }
.freq-row .chip input{ position:absolute; opacity:0; pointer-events:none; }
.freq-row .chip span{ display:inline-block; padding:8px 16px; border-radius:99px; border:1.5px solid var(--line); background:var(--surface); font-weight:600; cursor:pointer; }
.freq-row .chip input:checked + span{ background:var(--teal); border-color:var(--teal); color:var(--accent-contrast); }
.freq-row .chip input:focus-visible + span{ outline:2px solid var(--marigold); outline-offset:2px; }
.fund-slot{ display:grid; gap:8px; margin:6px 0 10px; }
/* ---------- Seasonal campaign strip ---------- */
.camp-strip{ padding:22px 0; }
.camp-in{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px 28px; background:var(--gold-soft); border-radius:18px; padding:18px 22px; }
.camp-text{ min-width:0; flex:1 1 320px; }
.camp-text h3{ margin:4px 0 4px; font-size:1.2rem; }
.camp-text p{ margin:0; color:var(--ink-soft2); max-width:62ch; }
.camp-goal{ margin-top:8px !important; font-size:.88rem; display:flex; align-items:center; gap:10px; font-variant-numeric:tabular-nums; }
.cg-bar{ display:inline-block; width:140px; height:8px; border-radius:99px; background:var(--surface); overflow:hidden; }
.cg-bar i{ display:block; height:100%; background:var(--teal); border-radius:99px; }
