/* =====================================================================
   NEST TRUST — shared stylesheet
   Color theory: split-complementary scheme.
   Base hue  : Teal      ~175°  (--teal)
   Complement: Red       ~355°  (not used directly — too harsh vs photos)
   Split 1   : Pink/Rose ~340°  (--magenta)  -> 15° off complement
   Split 2   : Amber     ~40°   (--marigold) -> 45° off complement
   Result: two warm accents that both contrast the cool teal without
   clashing with each other. Leaf green is a low-use tertiary tie-in
   to the rural/agrarian setting.
   ===================================================================== */
:root{
  --teal: #00A99D;
  --teal-deep: #00695E;
  --marigold: #FFB100;
  --magenta: #F0286D;
  --leaf: #3FAE49;
  --ink: #1E2A4F;
  --cream: #FFFBF2;
  --paper: #FFFFFF;
  --line: rgba(30,42,79,0.12);
  --shadow: 0 14px 34px rgba(30,42,79,0.12);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:'Mukta', sans-serif;
  background:var(--cream);
  color:var(--ink);
  line-height:1.6;
  overflow-x:hidden;
}
h1,h2,h3,h4{font-family:'Baloo 2', sans-serif; line-height:1.15; letter-spacing:0.2px;}
.mono{font-family:'JetBrains Mono', monospace;}
a{color:inherit; text-decoration:none;}
img{display:block; max-width:100%;}
.wrap{max-width:1180px; margin:0 auto; padding:0 28px;}
::selection{background:var(--marigold); color:var(--ink);}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important;}
}

/* ---------- Kolam dot-grid signature pattern ---------- */
.kolam-band{
  height:40px;
  background:
    radial-gradient(circle, var(--marigold) 2.6px, transparent 2.7px) 0 0/28px 28px,
    radial-gradient(circle, var(--magenta) 2.6px, transparent 2.7px) 14px 14px/28px 28px;
  opacity:0.9;
}
.kolam-divider{height:64px; width:100%; display:flex; align-items:center; justify-content:center;}
.kolam-divider svg{width:220px; height:40px;}

/* ---------- Nav ---------- */
header.nav{position:sticky; top:0; z-index:100; background:rgba(255,251,242,0.92); backdrop-filter:blur(8px); border-bottom:1px solid var(--line);}
.nav-inner{max-width:1180px; margin:0 auto; padding:14px 28px; display:flex; align-items:center; justify-content:space-between; gap:20px;}
.brand{display:flex; align-items:center; gap:12px;}
.brand-mark{width:42px; height:42px; flex-shrink:0;}
.brand-text .name{font-family:'Baloo 2'; font-weight:800; font-size:1.28rem; color:var(--teal-deep);}
.brand-text .sub{font-size:0.66rem; letter-spacing:1.6px; text-transform:uppercase; color:var(--magenta); font-weight:600;}
nav.links{display:flex; gap:26px; font-weight:600; font-size:0.95rem;}
nav.links a{position:relative; padding:4px 0; color:var(--ink); transition:color 0.2s;}
nav.links a:after{content:""; position:absolute; left:0; bottom:-2px; width:0; height:3px; background:var(--marigold); border-radius:3px; transition:width 0.25s;}
nav.links a:hover, nav.links a.active{color:var(--teal-deep);}
nav.links a:hover:after, nav.links a.active:after{width:100%;}
.nav-cta{background:var(--magenta); color:#fff; padding:10px 20px; border-radius:30px; font-weight:700; font-size:0.9rem; white-space:nowrap; box-shadow:0 8px 18px rgba(240,40,109,0.32);}
.menu-btn{display:none; background:none; border:none; font-size:1.6rem; color:var(--teal-deep); cursor:pointer;}
@media(max-width:880px){
  nav.links{position:fixed; top:70px; left:0; right:0; background:var(--paper); flex-direction:column; padding:20px 28px; gap:16px; box-shadow:var(--shadow); transform:translateY(-130%); transition:transform 0.3s ease;}
  nav.links.open{transform:translateY(0);}
  .menu-btn{display:block;}
  .nav-cta{display:none;}
}

/* ---------- Page header (used on inner pages) ---------- */
.page-header{
  position:relative; padding:70px 0 56px; overflow:hidden;
  background:
    radial-gradient(900px 460px at 88% -10%, rgba(255,177,0,0.20), transparent 60%),
    radial-gradient(700px 460px at -10% 110%, rgba(240,40,109,0.14), transparent 60%),
    var(--cream);
}
.page-header .wrap{position:relative; z-index:2;}
.page-header .eyebrow{margin-bottom:16px;}
.page-header h1{font-size:clamp(2rem,4.4vw,3rem); color:var(--ink);}
.page-header h1 .accent{color:var(--magenta);}
.page-header p{margin-top:16px; color:#3d4a6b; max-width:600px; font-size:1.05rem;}
.crumbs{font-family:'JetBrains Mono'; font-size:0.78rem; color:var(--teal-deep); margin-bottom:14px;}
.crumbs a{color:var(--magenta); font-weight:600;}

/* ---------- Hero (home page only) ---------- */
.hero{position:relative; padding:90px 0 70px; overflow:hidden;
  background:
    radial-gradient(1000px 500px at 85% -10%, rgba(255,177,0,0.22), transparent 60%),
    radial-gradient(800px 500px at -10% 110%, rgba(240,40,109,0.18), transparent 60%),
    var(--cream);
}
.hero-kolam-bg{position:absolute; inset:0; opacity:0.5; pointer-events:none;}
.hero-grid{position:relative; z-index:2; display:grid; grid-template-columns:1.1fr 0.9fr; gap:50px; align-items:center;}
.eyebrow{display:inline-flex; align-items:center; gap:8px; font-family:'JetBrains Mono'; font-size:0.72rem; letter-spacing:2px; text-transform:uppercase; color:var(--teal-deep); font-weight:600; background:rgba(0,169,157,0.10); padding:7px 14px; border-radius:20px; margin-bottom:22px;}
.eyebrow .dot{width:7px; height:7px; border-radius:50%; background:var(--marigold);}
.hero h1{font-size:clamp(2.3rem, 5vw, 3.6rem); font-weight:800; color:var(--ink);}
.hero h1 .accent{color:var(--magenta);}
.hero h1 .accent2{color:var(--teal-deep);}
.hero p.lede{font-size:1.12rem; color:#3d4a6b; max-width:560px; margin:22px 0 32px;}
.hero-ctas{display:flex; gap:16px; flex-wrap:wrap;}
.btn{display:inline-flex; align-items:center; gap:8px; padding:14px 26px; border-radius:12px; font-weight:700; font-size:0.98rem; transition:transform 0.2s ease, box-shadow 0.2s ease;}
.btn-primary{background:var(--magenta); color:#fff; box-shadow:0 10px 24px rgba(240,40,109,0.34);}
.btn-primary:hover{transform:translateY(-3px); box-shadow:0 14px 30px rgba(240,40,109,0.42);}
.btn-ghost{background:transparent; color:var(--teal-deep); border:2px solid var(--teal-deep);}
.btn-ghost:hover{background:var(--teal-deep); color:#fff; transform:translateY(-3px);}
.hero-photo-frame{position:relative; border-radius:26px; overflow:hidden; box-shadow:var(--shadow); border:6px solid var(--paper); transform:rotate(-1.4deg);}
.hero-photo-frame img{width:100%; height:420px; object-fit:cover; object-position:center 30%;}
.hero-photo-tag{position:absolute; bottom:16px; left:16px; background:rgba(30,42,79,0.72); color:#fff; padding:8px 14px; border-radius:10px; font-size:0.78rem; font-weight:600; backdrop-filter:blur(4px);}
.hero-badge{position:absolute; top:-18px; right:-18px; background:var(--marigold); color:var(--ink); width:98px; height:98px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex-direction:column; font-family:'Baloo 2'; font-weight:800; text-align:center; box-shadow:var(--shadow); transform:rotate(8deg); font-size:0.72rem; line-height:1.1;}
.hero-badge b{font-size:1.5rem; display:block;}
@media(max-width:880px){.hero-grid{grid-template-columns:1fr;} .hero-photo-frame{transform:none; order:-1;}}

/* ---------- Section shells ---------- */
section{padding:86px 0;}
.section-head{max-width:640px; margin:0 auto 50px; text-align:center;}
.section-head.left{margin:0 0 46px; text-align:left; max-width:100%;}
.tag{font-family:'JetBrains Mono'; font-size:0.72rem; letter-spacing:2.4px; text-transform:uppercase; color:var(--magenta); font-weight:700; margin-bottom:12px; display:block;}
.section-head h2{font-size:clamp(1.8rem,3.4vw,2.5rem); color:var(--ink);}
.section-head p{color:#556; margin-top:14px; font-size:1.02rem;}
.reveal{opacity:0; transform:translateY(28px); transition:opacity 0.7s ease, transform 0.7s ease;}
.reveal.in{opacity:1; transform:translateY(0);}

/* ---------- About cards ---------- */
.about-bg{background:var(--paper);}
.about-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
.about-card{background:var(--cream); border-radius:20px; padding:32px 26px; position:relative; border:1px solid var(--line);}
.about-card .num{position:absolute; top:22px; right:24px; font-family:'JetBrains Mono'; font-size:0.75rem; color:var(--teal); opacity:0.6; font-weight:600;}
.about-card .ic{width:52px; height:52px; border-radius:14px; display:flex; align-items:center; justify-content:center; margin-bottom:18px; font-size:1.5rem;}
.ic-1{background:rgba(255,177,0,0.22);}
.ic-2{background:rgba(240,40,109,0.16);}
.ic-3{background:rgba(0,169,157,0.18);}
.about-card h3{font-size:1.24rem; margin-bottom:10px; color:var(--teal-deep);}
.about-card p{color:#4a5570; font-size:0.97rem;}
.about-meta{margin-top:44px; display:flex; flex-wrap:wrap; gap:14px 34px; justify-content:center; font-family:'JetBrains Mono'; font-size:0.85rem; color:var(--ink);}
.about-meta span b{color:var(--magenta);}
@media(max-width:880px){.about-grid{grid-template-columns:1fr;}}

/* ---------- Impact stats ---------- */
.stats-section{background:var(--teal-deep); color:#fff; position:relative; overflow:hidden;}
.stats-section .kolam-strip{position:absolute; inset:0; opacity:0.10;}
.stats-grid{position:relative; z-index:2; display:grid; grid-template-columns:repeat(4,1fr); gap:0; border-radius:24px; overflow:hidden; border:1px solid rgba(255,255,255,0.18);}
.stat-cell{padding:38px 20px; text-align:center; border-right:1px solid rgba(255,255,255,0.18);}
.stat-cell:last-child{border-right:none;}
.stat-cell .val{font-family:'Baloo 2'; font-weight:800; font-size:2.4rem; color:var(--marigold);}
.stat-cell .lbl{margin-top:8px; font-size:0.85rem; letter-spacing:0.4px; color:#d8f2ef;}
@media(max-width:760px){.stats-grid{grid-template-columns:repeat(2,1fr);} .stat-cell{border-bottom:1px solid rgba(255,255,255,0.18);}}

/* ---------- Programs ---------- */
.programs-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
.prog-card{background:var(--paper); border-radius:20px; overflow:hidden; box-shadow:var(--shadow); border:1px solid var(--line); transition:transform 0.3s ease;}
.prog-card:hover{transform:translateY(-8px);}
.prog-photo{height:190px; overflow:hidden; position:relative;}
.prog-photo img{width:100%; height:100%; object-fit:cover; transition:transform 0.5s ease;}
.prog-card:hover .prog-photo img{transform:scale(1.07);}
.prog-photo .ribbon{position:absolute; top:14px; left:14px; background:var(--marigold); color:var(--ink); padding:5px 12px; border-radius:8px; font-size:0.72rem; font-weight:700; font-family:'JetBrains Mono';}
.prog-body{padding:22px 24px 26px;}
.prog-body h3{font-size:1.16rem; color:var(--teal-deep); margin-bottom:8px;}
.prog-body p{font-size:0.93rem; color:#4a5570;}
@media(max-width:880px){.programs-grid{grid-template-columns:1fr;}}

/* ---------- Reach / district ---------- */
.reach-section{background:var(--paper);}
.reach-grid{display:grid; grid-template-columns:1fr 1fr; gap:44px; align-items:start;}
.district-card{background:linear-gradient(135deg, rgba(0,169,157,0.08), rgba(255,177,0,0.10)); border-radius:22px; padding:30px; border:1px solid var(--line);}
.district-card h3{color:var(--teal-deep); font-size:1.3rem; margin-bottom:16px;}
.block-chip-row{display:flex; flex-wrap:wrap; gap:10px; margin-top:16px;}
.block-chip{padding:9px 16px; border-radius:30px; font-size:0.85rem; font-weight:600; background:#fff; border:1.5px solid var(--teal); color:var(--teal-deep);}
.block-chip:nth-child(2n){border-color:var(--magenta); color:var(--magenta);}
.block-chip:nth-child(3n){border-color:var(--marigold); color:#8a6112;}
table.reach-table{width:100%; border-collapse:collapse; margin-top:6px; font-size:0.92rem;}
table.reach-table th{text-align:left; padding:12px 14px; background:var(--teal-deep); color:#fff; font-family:'JetBrains Mono'; font-size:0.72rem; letter-spacing:1px; text-transform:uppercase;}
table.reach-table th:first-child{border-radius:10px 0 0 0;}
table.reach-table th:last-child{border-radius:0 10px 0 0;}
table.reach-table td{padding:13px 14px; border-bottom:1px solid var(--line);}
table.reach-table tr:nth-child(even) td{background:rgba(255,177,0,0.07);}
table.reach-table tr:last-child td{font-weight:700; color:var(--magenta); border-bottom:none;}
@media(max-width:880px){.reach-grid{grid-template-columns:1fr;}}

/* ---------- Gallery ---------- */
.gallery-section{background:var(--cream);}
.gallery-grid{display:grid; grid-template-columns:repeat(4, 1fr); grid-auto-rows:170px; gap:14px;}
.g-item{position:relative; border-radius:16px; overflow:hidden; cursor:pointer;}
.g-item img{width:100%; height:100%; object-fit:cover; transition:transform 0.5s ease;}
.g-item:hover img{transform:scale(1.08);}
.g-item .cap{position:absolute; left:0; right:0; bottom:0; padding:10px 12px; background:linear-gradient(to top, rgba(20,20,30,0.82), transparent); color:#fff; font-size:0.78rem; font-weight:600; opacity:0; transform:translateY(10px); transition:opacity 0.3s ease, transform 0.3s ease;}
.g-item:hover .cap{opacity:1; transform:translateY(0);}
.g-tall{grid-row:span 2;}
.g-wide{grid-column:span 2;}
@media(max-width:880px){.gallery-grid{grid-template-columns:repeat(2,1fr); grid-auto-rows:150px;} .g-wide{grid-column:span 2;}}

/* ---------- Team ---------- */
.team-section{background:var(--paper);}
.team-grid{display:grid; grid-template-columns:1fr 1fr; gap:40px;}
.team-table-wrap h3{color:var(--teal-deep); font-size:1.1rem; margin-bottom:14px; font-family:'Baloo 2';}
table.team-table{width:100%; border-collapse:collapse; font-size:0.88rem;}
table.team-table th{text-align:left; padding:10px 12px; font-family:'JetBrains Mono'; font-size:0.68rem; letter-spacing:1px; text-transform:uppercase; color:var(--magenta); border-bottom:2px solid var(--magenta);}
table.team-table td{padding:11px 12px; border-bottom:1px solid var(--line); color:#3d4a6b;}
table.team-table td.role{font-weight:700; color:var(--teal-deep); white-space:nowrap;}
@media(max-width:880px){.team-grid{grid-template-columns:1fr;}}

/* ---------- Contact / Footer ---------- */
.contact-section{background:var(--ink); color:#f2f0ea; position:relative; overflow:hidden;}
.contact-grid{display:grid; grid-template-columns:1.1fr 0.9fr; gap:50px;}
.contact-section h2{color:#fff;}
.contact-section .section-head p{color:#c7cbe0;}
.info-block{margin-bottom:26px;}
.info-block .lbl{font-family:'JetBrains Mono'; font-size:0.7rem; letter-spacing:1.6px; text-transform:uppercase; color:var(--marigold); margin-bottom:8px; display:block;}
.info-block p, .info-block a{color:#dfe1f0; font-size:0.95rem;}
.contact-card{background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.16); border-radius:20px; padding:28px;}
.contact-card .row{display:flex; justify-content:space-between; padding:11px 0; border-bottom:1px dashed rgba(255,255,255,0.16); font-size:0.9rem;}
.contact-card .row:last-child{border-bottom:none;}
.contact-card .row .k{color:#a7ade0;}
.contact-card .row .v{font-weight:600; color:#fff; font-family:'JetBrains Mono'; font-size:0.84rem; text-align:right;}
@media(max-width:880px){.contact-grid{grid-template-columns:1fr;}}

/* ---------- Contact form (contact.html) ---------- */
.form-card{background:var(--paper); border-radius:20px; padding:30px; box-shadow:var(--shadow); border:1px solid var(--line);}
.form-card h3{color:var(--teal-deep); margin-bottom:18px; font-size:1.2rem;}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px;}
.form-field{display:flex; flex-direction:column; gap:6px;}
.form-field.full{grid-column:1/-1;}
.form-field label{font-size:0.8rem; font-weight:700; color:var(--ink);}
.form-field input, .form-field textarea{
  padding:12px 14px; border-radius:10px; border:1.6px solid var(--line); font-family:'Mukta'; font-size:0.95rem; background:var(--cream);
}
.form-field input:focus, .form-field textarea:focus{outline:none; border-color:var(--teal);}
.form-note{margin-top:14px; font-size:0.82rem; color:#6a7290;}
@media(max-width:600px){.form-row{grid-template-columns:1fr;}}

/* ---------- Map / office cards (contact.html) ---------- */
.office-grid{display:grid; grid-template-columns:1fr 1fr; gap:26px; margin-bottom:50px;}
.office-card{background:var(--cream); border:1px solid var(--line); border-radius:20px; padding:26px;}
.office-card .tagsm{font-family:'JetBrains Mono'; font-size:0.7rem; letter-spacing:1.4px; text-transform:uppercase; color:var(--teal-deep); font-weight:700;}
.office-card h4{margin:10px 0 8px; color:var(--ink); font-size:1.1rem;}
.office-card p{color:#4a5570; font-size:0.93rem;}
@media(max-width:760px){.office-grid{grid-template-columns:1fr;}}

footer.bottom{background:#141b30; color:#8f97b8; padding:26px 0; text-align:center; font-size:0.82rem;}
footer.bottom .kolam-band{margin-bottom:20px;}

/* ---------- Page nav / pagination footer links ---------- */
.page-links{display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; margin-top:60px; padding-top:30px; border-top:1px dashed var(--line);}
.page-links a{font-weight:700; color:var(--teal-deep); font-size:0.95rem;}
.page-links a:hover{color:var(--magenta);}
