/* =========================================================
   GMES — Global Medical Education and Support LLP
   Design tokens
   Colors: Navy #0B1B3D · Blue #1D6FE0 · Teal #0BA5A0 ·
           Emerald #10B77F · Ice #F5F8FC · Slate #5C6B84
   Type: Poppins (display) / Inter (body)
   Signature: animated ECG "pulse line" motif used as a
   recurring wayfinding + decorative device across sections.
   ========================================================= */

   :root{
    --navy:#0B1B3D;
    --navy-2:#132a54;
    --blue:#1D6FE0;
    --blue-dark:#1557b3;
    --teal:#0BA5A0;
    --emerald:#10B77F;
    --ice:#F5F8FC;
    --ice-2:#EAF1FA;
    --white:#FFFFFF;
    --slate:#5C6B84;
    --slate-light:#8695AC;
    --line:#E3EAF3;
  
    --grad-primary: linear-gradient(120deg, var(--blue), var(--teal));
    --grad-hero: linear-gradient(135deg, #eef5ff 0%, #eafaf6 55%, #f5f8fc 100%);
    --grad-dark: linear-gradient(160deg, var(--navy) 0%, #0e2a52 100%);
  
    --shadow-sm: 0 2px 10px rgba(11,27,61,0.06);
    --shadow-md: 0 12px 32px rgba(11,27,61,0.10);
    --shadow-lg: 0 24px 60px rgba(11,27,61,0.16);
    --shadow-glow: 0 8px 30px rgba(29,111,224,0.25);
  
    --radius-sm: 12px;
    --radius-md: 20px;
    --radius-lg: 28px;
    --radius-pill: 999px;
  
    --font-display:'Poppins', sans-serif;
    --font-body:'Inter', sans-serif;
  
    --container: 1240px;
    --nav-h: 78px;
  
    --ease: cubic-bezier(.22,.9,.32,1);
  }
  
  [data-theme="dark"]{
    --ice:#0B1626;
    --ice-2:#0F1E33;
    --white:#101E33;
    --navy:#050D1D;
    --slate:#A9B7CC;
    --slate-light:#7C8CA6;
    --line:#1D2C45;
    --grad-hero: linear-gradient(135deg, #0c1d33 0%, #0a2620 55%, #0b1626 100%);
  }
  
  /* ---------- Reset ---------- */
  *,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth; scroll-padding-top: 90px;}
  body{
    font-family: var(--font-body);
    color: var(--navy);
    background: var(--ice);
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
    transition: background .4s var(--ease), color .4s var(--ease);
  }
  [data-theme="dark"] body{ color:#EAF1FA; }
  img{max-width:100%; display:block;}
  a{color:inherit; text-decoration:none;}
  ul,ol{list-style:none;}
  button{font:inherit; cursor:pointer; border:none; background:none;}
  input,select,textarea{font:inherit;}
  h1,h2,h3,h4{font-family:var(--font-display); color:var(--navy); font-weight:700; line-height:1.15;}
  [data-theme="dark"] h1,[data-theme="dark"] h2,[data-theme="dark"] h3,[data-theme="dark"] h4{color:#F4F8FD;}
  .container{max-width:var(--container); margin:0 auto; padding:0 24px;}
  
  @media (prefers-reduced-motion: reduce){
    *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important;}
  }
  
  :focus-visible{outline:3px solid var(--blue); outline-offset:3px; border-radius:6px;}
  
  /* ---------- Utility ---------- */
  .eyebrow{
    display:inline-flex; align-items:center; gap:8px;
    font-family:var(--font-display); font-weight:600; font-size:.8rem;
    letter-spacing:.14em; text-transform:uppercase; color:var(--blue);
    margin-bottom:14px;
  }
  .eyebrow::before{content:"";width:22px;height:2px;background:var(--grad-primary);border-radius:2px;}
  .grad-text{
    background:var(--grad-primary); -webkit-background-clip:text; background-clip:text; color:transparent;
  }
  .section-head{max-width:680px; margin:0 auto 56px; text-align:center;}
  .section-head h2{font-size:clamp(1.8rem,3.2vw,2.6rem); margin-bottom:14px;}
  .section-sub{color:var(--slate); font-size:1.02rem;}
  .section-head.light .eyebrow{color:#8FD8D3;}
  .section-head.light h2{color:#fff;}
  .section-head.light .section-sub{color:#C4D2E8;}
  
  /* ---------- Buttons ---------- */
  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    padding:13px 26px; border-radius:var(--radius-pill); font-weight:600; font-size:.95rem;
    transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease), color .25s var(--ease);
    white-space:nowrap;
  }
  .btn-primary{ background:var(--grad-primary); color:#fff; box-shadow:var(--shadow-glow);}
  .btn-primary:hover{ transform:translateY(-2px); box-shadow:0 14px 34px rgba(29,111,224,.35);}
  .btn-ghost{ background:rgba(29,111,224,0.08); color:var(--blue); }
  [data-theme="dark"] .btn-ghost{ background:rgba(255,255,255,.08); color:#fff;}
  .btn-ghost:hover{ background:rgba(29,111,224,0.16); transform:translateY(-2px);}
  .btn-outline{ border:1.5px solid var(--line); color:var(--navy); background:transparent;}
  [data-theme="dark"] .btn-outline{color:#EAF1FA;}
  .btn-outline:hover{ border-color:var(--blue); color:var(--blue); }
  .btn-lg{ padding:16px 32px; font-size:1rem; }
  .btn-block{ width:100%; }
  .btn-nav{ padding:10px 22px; font-size:.88rem; }
  
  /* =========================================================
     Loader
     ========================================================= */
  .loader{
    position:fixed; inset:0; z-index:9999; background:var(--navy);
    display:flex; align-items:center; justify-content:center;
    transition:opacity .6s var(--ease), visibility .6s var(--ease);
  }
  .loader.hide{opacity:0; visibility:hidden;}
  .loader-mark{width:180px;}
  .loader-pulse{width:100%; overflow:visible;}
  .loader-pulse polyline{
    fill:none; stroke:url(#g); stroke:#3FD6C9; stroke-width:3;
    stroke-linecap:round; stroke-linejoin:round;
    stroke-dasharray:300; stroke-dashoffset:300;
    animation:draw 1.4s var(--ease) infinite;
  }
  @keyframes draw{ to{ stroke-dashoffset:-300; } }
  
  /* Cursor glow */
  .cursor-glow{
    position:fixed; width:340px; height:340px; border-radius:50%; pointer-events:none; z-index:2;
    background:radial-gradient(circle, rgba(29,111,224,.10), transparent 70%);
    transform:translate(-50%,-50%); left:-400px; top:-400px;
    transition:left .18s linear, top .18s linear; display:none;
  }
  @media (hover:hover) and (pointer:fine){ .cursor-glow{display:block;} }
  
  /* =========================================================
     Navbar
     ========================================================= */
  .navbar{
    position:fixed; top:0; left:0; right:0; z-index:1000; height:var(--nav-h);
    display:flex; align-items:center;
    background:rgba(245,248,252,0.7); backdrop-filter:blur(16px) saturate(160%);
    -webkit-backdrop-filter:blur(16px) saturate(160%);
    border-bottom:1px solid transparent;
    transition:background .35s var(--ease), border-color .35s var(--ease), box-shadow .35s var(--ease);
  }
  [data-theme="dark"] .navbar{ background:rgba(11,22,38,0.7); }
  .navbar.scrolled{ border-color:var(--line); box-shadow:var(--shadow-sm); }
  .navbar-inner{ display:flex; align-items:center; justify-content:space-between; width:100%; }
  .brand{ display:flex; align-items:center; gap:10px; font-family:var(--font-display); font-weight:700; font-size:1.3rem; color:var(--navy); }
  [data-theme="dark"] .brand{ color:#fff; }
  .brand-mark{ width:34px; height:34px; border-radius:10px; background:var(--grad-primary); display:flex; align-items:center; justify-content:center; color:#fff; padding:6px; }
  .brand-mark svg{width:100%;height:100%;}
  .nav-links{ display:flex; align-items:center; gap:30px; }
  .nav-links a{ font-size:.92rem; font-weight:500; color:var(--slate); position:relative; padding:6px 0; }
  .nav-links a::after{ content:""; position:absolute; left:0; bottom:0; height:2px; width:0; background:var(--grad-primary); transition:width .25s var(--ease); }
  .nav-links a:hover{ color:var(--navy); }
  [data-theme="dark"] .nav-links a:hover{ color:#fff; }
  .nav-links a:hover::after{ width:100%; }
  .navbar-actions{ display:flex; align-items:center; gap:14px; }
  .theme-toggle{ width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--navy); background:rgba(29,111,224,.08); }
  [data-theme="dark"] .theme-toggle{ color:#fff; }
  .theme-toggle svg{ width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
  .theme-toggle .icon-moon{ display:none; }
  [data-theme="dark"] .theme-toggle .icon-sun{ display:none; }
  [data-theme="dark"] .theme-toggle .icon-moon{ display:block; }
  
  .nav-toggle{ display:none; flex-direction:column; gap:5px; width:24px; }
  .nav-toggle span{ height:2px; background:var(--navy); border-radius:2px; transition:transform .3s var(--ease), opacity .3s var(--ease); }
  [data-theme="dark"] .nav-toggle span{ background:#fff; }
  /* ==========================================
   Language Switcher
========================================== */

.language-switcher{
  display:flex;
  align-items:center;
}

.language-toggle{

  display:flex;
  align-items:center;
  gap:8px;

  padding:10px 16px;

  border:1px solid var(--line);

  border-radius:999px;

  background:rgba(255,255,255,.7);

  backdrop-filter:blur(12px);

  color:var(--navy);

  font-size:.9rem;

  font-weight:600;

  transition:all .3s var(--ease);

}

.language-toggle:hover{

  border-color:var(--blue);

  color:var(--blue);

  transform:translateY(-2px);

  box-shadow:var(--shadow-sm);

}

[data-theme="dark"] .language-toggle{

  background:rgba(255,255,255,.08);

  color:#fff;

}

@media(max-width:768px){

.language-toggle{

  padding:8px 12px;

  font-size:.82rem;

}

.language-toggle span{

  display:none;

}

}
  /* Dropdown */

.language-switcher{
  position:relative;
}

.language-menu{

  position:absolute;

  top:115%;

  right:0;

  width:180px;

  background:var(--white);

  border:1px solid var(--line);

  border-radius:16px;

  box-shadow:var(--shadow-lg);

  overflow:hidden;

  opacity:0;

  visibility:hidden;

  transform:translateY(10px);

  transition:all .25s var(--ease);

  z-index:999;

}

[data-theme="dark"] .language-menu{

  background:var(--navy);

}

.language-menu.show{

  opacity:1;

  visibility:visible;

  transform:translateY(0);

}

.language-item{

  width:100%;

  padding:14px 18px;

  border:none;

  background:none;

  text-align:left;

  font-size:.9rem;

  color:inherit;

  transition:.25s;

}

.language-item:hover{

  background:rgba(29,111,224,.08);

}
  /* =========================================================
     Hero
     ========================================================= */
  .hero{
    position:relative; padding:calc(var(--nav-h) + 64px) 0 90px; overflow:hidden;
    background:var(--grad-hero);
  }
  .hero-bg{ position:absolute; inset:0; z-index:0; }
  .blob{ position:absolute; border-radius:50%; filter:blur(70px); opacity:.55; }
  .blob-a{ width:520px; height:520px; background:radial-gradient(circle, rgba(29,111,224,.35), transparent 70%); top:-160px; right:-120px; animation:float1 14s ease-in-out infinite; }
  .blob-b{ width:420px; height:420px; background:radial-gradient(circle, rgba(16,183,127,.30), transparent 70%); bottom:-140px; left:-100px; animation:float2 16s ease-in-out infinite; }
  @keyframes float1{ 0%,100%{transform:translate(0,0);} 50%{transform:translate(-30px,30px);} }
  @keyframes float2{ 0%,100%{transform:translate(0,0);} 50%{transform:translate(30px,-24px);} }
  
  .hero-pulse{ position:absolute; left:0; right:0; top:52%; width:100%; height:70px; opacity:.35; }
  .hero-pulse polyline{ fill:none; stroke:var(--blue); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:1400; stroke-dashoffset:1400; animation:pulseLine 5s var(--ease) infinite; }
  @keyframes pulseLine{ to{ stroke-dashoffset:0; } }
  
  .hero-grid{ position:relative; z-index:1; display:grid; grid-template-columns:1.05fr .95fr; gap:60px; align-items:center; }
  .hero-copy h1{ font-size:clamp(2.2rem, 4.2vw, 3.4rem); margin:0 0 20px; letter-spacing:-.01em; }
  .hero-sub{ color:var(--slate); font-size:1.08rem; max-width:520px; margin-bottom:32px; }
  .hero-cta{ display:flex; gap:16px; flex-wrap:wrap; margin-bottom:26px; }
  .hero-trust{ font-size:.85rem; color:var(--slate-light); font-weight:500; }
  
  .hero-visual{ position:relative; }
  .hero-frame{
    border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-lg);
    border:6px solid var(--white); aspect-ratio:4/4.3;
  }
  .hero-frame img{ width:100%; height:100%; object-fit:cover; }
  
  .float-card{
    position:absolute; background:rgba(255,255,255,0.85); backdrop-filter:blur(14px);
    border:1px solid rgba(255,255,255,.6); border-radius:var(--radius-md); box-shadow:var(--shadow-md);
    padding:16px 20px; display:flex; align-items:baseline; flex-wrap:wrap; gap:2px 6px; animation:bob 5s ease-in-out infinite;
  }
  [data-theme="dark"] .float-card{ background:rgba(19,42,84,0.85); border-color:rgba(255,255,255,.08); }
  .fc-num,.fc-plus{ font-family:var(--font-display); font-weight:700; font-size:1.5rem; color:var(--navy); }
  [data-theme="dark"] .fc-num,[data-theme="dark"] .fc-plus{ color:#fff; }
  .fc-label{ width:100%; font-size:.76rem; color:var(--slate); font-weight:600; }
  .card-1{ top:6%; left:-8%; animation-delay:0s;}
  .card-2{ bottom:20%; right:-10%; animation-delay:1.2s;}
  .card-3{ bottom:-4%; left:12%; animation-delay:2.4s;}
  @keyframes bob{ 0%,100%{transform:translateY(0);} 50%{transform:translateY(-10px);} }
  
  .scroll-cue{
    position:absolute; bottom:20px; left:50%; transform:translateX(-50%); z-index:1;
    width:38px; height:38px; border-radius:50%; border:1.5px solid var(--line); color:var(--slate);
    display:flex; align-items:center; justify-content:center; animation:cueBounce 2.2s ease-in-out infinite;
  }
  .scroll-cue svg{width:16px;height:16px;}
  @keyframes cueBounce{ 0%,100%{transform:translate(-50%,0);} 50%{transform:translate(-50%,6px);} }
  
  /* =========================================================
     Trusted by
     ========================================================= */
  .trusted{ padding:44px 0; border-bottom:1px solid var(--line); }
  .trusted-label{ text-align:center; font-size:.82rem; color:var(--slate-light); font-weight:600; letter-spacing:.02em; margin-bottom:22px; }
  .trusted-row{ display:flex; flex-wrap:wrap; justify-content:center; gap:14px; }
  .logo-chip{
    padding:10px 18px; border-radius:var(--radius-pill); background:var(--ice-2); color:var(--slate);
    font-size:.82rem; font-weight:600; border:1px solid var(--line);
  }
  
  /* =========================================================
     About
     ========================================================= */
  .about{ padding:110px 0; }
  .about-grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:70px; align-items:center; }
  .about-visual{ position:relative; }
  .about-visual img{ border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); }
  .about-badge{
    position:absolute; bottom:-26px; right:-16px; background:var(--grad-dark); color:#fff;
    border-radius:var(--radius-md); padding:18px 22px; box-shadow:var(--shadow-lg); width:200px;
  }
  .about-badge strong{ font-family:var(--font-display); font-size:1.6rem; display:block; }
  .about-badge span{ font-size:.78rem; color:#B9C9E5; }
  .about-copy h2{ font-size:clamp(1.8rem,3vw,2.5rem); margin-bottom:18px; }
  .about-copy > p{ color:var(--slate); margin-bottom:28px; }
  .about-cols{ display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-bottom:28px; }
  .about-col h3{ font-size:1.05rem; margin-bottom:8px; color:var(--blue); }
  .about-col p{ color:var(--slate); font-size:.94rem; }
  .values-list li{ padding:10px 0 10px 26px; position:relative; color:var(--slate); border-top:1px solid var(--line); font-size:.94rem; }
  .values-list li:first-child{ border-top:none; }
  .values-list li::before{ content:"✓"; position:absolute; left:0; color:var(--emerald); font-weight:700; }
  .values-list strong{ color:var(--navy); }
  [data-theme="dark"] .values-list strong{ color:#fff; }
  
  /* =========================================================
     Programs
     ========================================================= */
  .programs{ padding:110px 0; background:var(--ice-2); }
  .program-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
  .program-card{
    background:var(--white); border-radius:var(--radius-lg); padding:32px 28px; border:1px solid var(--line);
    box-shadow:var(--shadow-sm); transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
    display:flex; flex-direction:column;
  }
  .program-card:hover{ transform:translateY(-8px); box-shadow:var(--shadow-lg); border-color:transparent; }
  .pc-icon{ font-size:1.8rem; width:54px; height:54px; border-radius:16px; background:var(--grad-primary); display:flex; align-items:center; justify-content:center; margin-bottom:18px; }
  .program-card h3{ font-size:1.15rem; margin-bottom:10px; }
  .program-card > p{ color:var(--slate); font-size:.92rem; margin-bottom:18px; }
  .pc-meta{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:16px; padding:14px; background:var(--ice-2); border-radius:12px; }
  [data-theme="dark"] .pc-meta{ background:var(--ice); }
  .pc-meta dt{ font-size:.68rem; text-transform:uppercase; letter-spacing:.06em; color:var(--slate-light); font-weight:700; margin-bottom:2px; }
  .pc-meta dd{ font-size:.82rem; font-weight:600; color:var(--navy); }
  [data-theme="dark"] .pc-meta dd{ color:#EAF1FA; }
  .pc-benefit{ font-size:.78rem; color:var(--teal); font-weight:600; margin-bottom:20px; }
  
  /* =========================================================
     Why GMES
     ========================================================= */
  .why{ padding:110px 0; background:var(--grad-dark); color:#fff; }
  .why-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:20px; }
  .why-card{
    background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.1); border-radius:var(--radius-md);
    padding:26px 20px; text-align:center; transition:transform .3s var(--ease), background .3s var(--ease);
  }
  .why-card:hover{ transform:translateY(-6px); background:rgba(255,255,255,0.1); }
  .wc-icon{ font-size:1.8rem; display:block; margin-bottom:12px; }
  .why-card h3{ color:#fff; font-size:1rem; margin-bottom:8px; }
  .why-card p{ color:#B9C9E5; font-size:.84rem; }
  
  /* =========================================================
     Learning journey (timeline)
     ========================================================= */
  .journey{ padding:110px 0; }
  .timeline{ position:relative; display:grid; grid-template-columns:repeat(4,1fr); gap:36px 26px; }
  .timeline::before{ content:""; position:absolute; top:9px; left:0; right:0; height:2px; background:var(--line); display:none; }
  .timeline-item{ position:relative; padding-left:28px; border-left:2px solid var(--line); padding-bottom:6px; }
  .timeline-item:nth-child(4n){ }
  .ti-dot{ position:absolute; left:-7px; top:2px; width:12px; height:12px; border-radius:50%; background:var(--grad-primary); box-shadow:0 0 0 4px var(--ice); }
  .timeline-item h3{ font-size:1rem; margin-bottom:6px; }
  .timeline-item p{ color:var(--slate); font-size:.86rem; }
  
  /* =========================================================
     Impact numbers
     ========================================================= */
  .impact{ padding:70px 0; background:var(--grad-primary); }
  .impact-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:20px; text-align:center; }
  .impact-item{ color:#fff; }
  .imp-num,.imp-plus{ font-family:var(--font-display); font-weight:800; font-size:clamp(1.8rem,3vw,2.6rem); }
  .impact-item p{ font-size:.84rem; opacity:.9; margin-top:6px; font-weight:500; }
  
  /* =========================================================
     Benefits
     ========================================================= */
  .benefits{ padding:110px 0; background:var(--ice-2); }
  .benefits-grid{ display:grid; grid-template-columns:.9fr 1.1fr; gap:70px; align-items:center; }
  .benefits-visual img{ border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); }
  .benefits-copy h2{ font-size:clamp(1.8rem,3vw,2.4rem); margin-bottom:22px; }
  .check-list{ display:grid; gap:12px; }
  .check-list li{ position:relative; padding-left:30px; color:var(--slate); font-size:.95rem; }
  .check-list li::before{ content:"✓"; position:absolute; left:0; top:0; width:20px; height:20px; border-radius:50%; background:var(--emerald); color:#fff; font-size:.7rem; display:flex; align-items:center; justify-content:center; }
  
  /* =========================================================
     Gallery
     ========================================================= */
  .gallery{ padding:110px 0; }
  .masonry{ columns:4 260px; column-gap:18px; }
  .masonry img{ width:100%; border-radius:var(--radius-md); margin-bottom:18px; break-inside:avoid; box-shadow:var(--shadow-sm); transition:transform .4s var(--ease); }
  .masonry img:hover{ transform:scale(1.02); }
  
  /* =========================================================
     Testimonials
     ========================================================= */
  .testimonials{ padding:110px 0; background:var(--grad-dark); }
  .carousel{ position:relative; max-width:720px; margin:0 auto; }
  .carousel-track{ display:flex; transition:transform .5s var(--ease); }
  .testimonial-card{
    flex:0 0 100%; background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,.1);
    border-radius:var(--radius-lg); padding:44px; text-align:center;
  }
  .stars{ color:#F4C443; letter-spacing:3px; margin-bottom:18px; }
  .testimonial-card p{ color:#EAF1FA; font-size:1.1rem; line-height:1.7; margin-bottom:26px; font-style:italic; }
  .testimonial-card footer{ display:flex; align-items:center; justify-content:center; gap:12px; }
  .testimonial-card footer img{ width:48px; height:48px; border-radius:50%; object-fit:cover; }
  .testimonial-card footer strong{ display:block; color:#fff; font-size:.92rem; }
  .testimonial-card footer span{ color:#9FB2CE; font-size:.8rem; }
  .carousel-controls{ display:flex; align-items:center; justify-content:center; gap:20px; margin-top:30px; }
  .car-btn{ width:42px; height:42px; border-radius:50%; background:rgba(255,255,255,.08); color:#fff; font-size:1.4rem; display:flex; align-items:center; justify-content:center; transition:background .2s; }
  .car-btn:hover{ background:rgba(255,255,255,.18); }
  .carousel-dots{ display:flex; gap:8px; }
  .carousel-dots button{ width:8px; height:8px; border-radius:50%; background:rgba(255,255,255,.25); }
  .carousel-dots button.active{ background:var(--teal); width:22px; border-radius:5px; transition:width .3s var(--ease); }
  
  /* =========================================================
     FAQ
     ========================================================= */
  .faq{ padding:110px 0; }
  .faq-grid{ display:grid; grid-template-columns:.8fr 1.2fr; gap:60px; }
  .faq-intro h2{ font-size:clamp(1.7rem,2.6vw,2.2rem); margin-bottom:14px; }
  .acc-item{ border-bottom:1px solid var(--line); }
  .acc-trigger{
    width:100%; display:flex; align-items:center; justify-content:space-between; text-align:left;
    padding:22px 4px; font-family:var(--font-display); font-weight:600; font-size:1rem; color:var(--navy);
  }
  [data-theme="dark"] .acc-trigger{ color:#EAF1FA; }
  .acc-icon{ font-size:1.3rem; color:var(--blue); transition:transform .3s var(--ease); flex-shrink:0; margin-left:16px; }
  .acc-trigger[aria-expanded="true"] .acc-icon{ transform:rotate(45deg); }
  .acc-panel{ max-height:0; overflow:hidden; transition:max-height .35s var(--ease), padding .35s var(--ease); }
  .acc-panel p{ color:var(--slate); padding-bottom:22px; font-size:.94rem; max-width:560px; }
  
  /* =========================================================
     Apply form
     ========================================================= */
  .apply{ padding:110px 0; background:var(--ice-2); }
  .apply-grid{ display:grid; grid-template-columns:.8fr 1.2fr; gap:60px; align-items:start; }
  .apply-intro h2{ font-size:clamp(1.8rem,3vw,2.4rem); margin-bottom:14px; }
  .apply-points{ margin-top:24px; display:grid; gap:10px; }
  .apply-points li{ font-size:.92rem; color:var(--navy); font-weight:600; }
  [data-theme="dark"] .apply-points li{ color:#EAF1FA; }
  .apply-form{ background:var(--white); border-radius:var(--radius-lg); padding:40px; box-shadow:var(--shadow-md); border:1px solid var(--line); }
  .form-row{ display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-bottom:20px; }
  .form-field{ display:flex; flex-direction:column; gap:8px; margin-bottom:20px; }
  .form-row .form-field{ margin-bottom:0; }
  .form-field label{ font-size:.82rem; font-weight:600; color:var(--navy); }
  [data-theme="dark"] .form-field label{ color:#EAF1FA; }
  .form-field input,.form-field select,.form-field textarea{
    padding:13px 16px; border-radius:12px; border:1.5px solid var(--line); background:var(--ice);
    color:var(--navy); transition:border-color .2s, box-shadow .2s;
  }
  [data-theme="dark"] .form-field input,[data-theme="dark"] .form-field select,[data-theme="dark"] .form-field textarea{ color:#EAF1FA; }
  .form-field input:focus,.form-field select:focus,.form-field textarea:focus{ border-color:var(--blue); box-shadow:0 0 0 4px rgba(29,111,224,.12); outline:none; }
  .form-field.invalid input,.form-field.invalid select{ border-color:#E4584B; }
  .file-field input{ padding:10px 14px; font-size:.84rem; }
  .form-status{ margin-top:16px; font-size:.88rem; font-weight:600; min-height:1.2em; }
  .form-status.success{ color:var(--emerald); }
  .form-status.error{ color:#E4584B; }
  
  /* =========================================================
     Contact
     ========================================================= */
  .contact{ padding:110px 0; }
  .contact-grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:60px; }
  .contact-info h2{ font-size:clamp(1.8rem,3vw,2.4rem); margin-bottom:30px; }
  .contact-item{ display:flex; gap:16px; padding:16px 0; border-top:1px solid var(--line); }
  .contact-item:first-of-type{ border-top:none; }
  .ci-icon{ font-size:1.3rem; }
  .contact-item strong{ display:block; margin-bottom:4px; font-family:var(--font-display); font-size:.95rem; }
  .contact-item p{ color:var(--slate); font-size:.92rem; }
  .contact-item a:hover{ color:var(--blue); }
  .contact-map{ border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-md); min-height:380px; }
  .contact-map iframe{ width:100%; height:100%; min-height:380px; border:0; }
  
  /* =========================================================
     Footer
     ========================================================= */
  .footer{ background:var(--grad-dark); color:#EAF1FA; padding:80px 0 0; }
  .footer-grid{ display:grid; grid-template-columns:1.4fr .8fr .8fr .8fr 1.1fr; gap:40px; padding-bottom:60px; }
  .footer-brand .brand{ color:#fff; margin-bottom:16px; }
  .footer-brand p{ color:#9FB2CE; font-size:.88rem; margin-bottom:20px; }
  .footer-social{ display:flex; gap:10px; }
  .footer-social a{ width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center; font-size:.78rem; text-transform:uppercase; transition:background .2s; }
  .footer-social a:hover{ background:var(--teal); }
  .footer-col h4{ color:#fff; font-size:.9rem; margin-bottom:18px; }
  .footer-col a{ display:block; color:#9FB2CE; font-size:.86rem; padding:6px 0; transition:color .2s; }
  .footer-col a:hover{ color:#fff; }
  .footer-newsletter p{ color:#9FB2CE; font-size:.84rem; margin-bottom:14px; }
  .newsletter-form{ display:flex; gap:8px; }
  .newsletter-form input{ flex:1; min-width:0; padding:11px 14px; border-radius:var(--radius-pill); border:1px solid rgba(255,255,255,.15); background:rgba(255,255,255,.06); color:#fff; }
  .newsletter-form input::placeholder{ color:#7C8CA6; }
  .newsletter-form .btn{ padding:11px 18px; font-size:.82rem; }
  .footer-bottom{ border-top:1px solid rgba(255,255,255,.08); padding:22px 0; }
  .footer-bottom-inner{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; }
  .footer-bottom p{ color:#7C8CA6; font-size:.8rem; }
  .footer-legal{ display:flex; gap:18px; }
  .footer-legal a{ color:#7C8CA6; font-size:.8rem; }
  .footer-legal a:hover{ color:#fff; }
  
  /* =========================================================
     Floating widgets
     ========================================================= */
  .whatsapp-float{
    position:fixed; bottom:26px; left:26px; width:56px; height:56px; border-radius:50%; background:#25D366; color:#fff;
    display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-lg); z-index:900;
    animation:pulseGlow 2.4s ease-in-out infinite;
  }
  .whatsapp-float svg{ width:28px; height:28px; }
  @keyframes pulseGlow{ 0%,100%{ box-shadow:0 0 0 0 rgba(37,211,102,.4), var(--shadow-lg);} 50%{ box-shadow:0 0 0 10px rgba(37,211,102,0), var(--shadow-lg);} }
  
  .back-top{
    position:fixed; bottom:26px; right:26px; width:48px; height:48px; border-radius:50%;
    background:var(--white); color:var(--navy); box-shadow:var(--shadow-md); display:flex; align-items:center; justify-content:center;
    opacity:0; visibility:hidden; transform:translateY(10px); transition:all .3s var(--ease); z-index:900; border:1px solid var(--line);
  }
  .back-top.show{ opacity:1; visibility:visible; transform:translateY(0); }
  .back-top svg{ width:18px; height:18px; }
  
  /* =========================================================
     Scroll reveal
     ========================================================= */
  .reveal{ opacity:0; transform:translateY(28px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
  .reveal.in{ opacity:1; transform:translateY(0); }
  
  /* =========================================================
     Responsive
     ========================================================= */
  @media (max-width:1080px){
    .program-grid{ grid-template-columns:repeat(2,1fr); }
    .why-grid{ grid-template-columns:repeat(3,1fr); }
    .timeline{ grid-template-columns:repeat(2,1fr); }
    .impact-grid{ grid-template-columns:repeat(3,1fr); row-gap:36px; }
    .masonry{ columns:3 220px; }
  }
  
  @media (max-width:900px){
    .nav-links{
      position:fixed; top:var(--nav-h); left:0; right:0; bottom:0; background:var(--white); flex-direction:column;
      padding:32px 24px; gap:6px; transform:translateX(100%); transition:transform .35s var(--ease); overflow-y:auto;
    }
    .nav-links.open{ transform:translateX(0); }
    .nav-links a{ padding:14px 6px; width:100%; border-bottom:1px solid var(--line); font-size:1rem; }
    .nav-toggle{ display:flex; }
    .nav-toggle.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
    .nav-toggle.open span:nth-child(2){ opacity:0; }
    .nav-toggle.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
    .btn-nav{ display:none; }
  
    .hero-grid,.about-grid,.benefits-grid,.contact-grid,.faq-grid,.apply-grid{ grid-template-columns:1fr; }
    .hero-visual{ order:-1; max-width:420px; margin:0 auto 40px; }
    .about-badge{ right:0; }
    .why-grid{ grid-template-columns:repeat(2,1fr); }
    .program-grid{ grid-template-columns:1fr; }
    .footer-grid{ grid-template-columns:1fr 1fr; }
  }
  
  @media (max-width:640px){
    .impact-grid{ grid-template-columns:repeat(2,1fr); }
    .timeline{ grid-template-columns:1fr; }
    .masonry{ columns:2 160px; }
    .form-row{ grid-template-columns:1fr; }
    .footer-grid{ grid-template-columns:1fr; }
    .float-card{ position:static; margin-top:12px; animation:none; display:inline-flex; margin-right:10px; }
    .hero-visual{ display:flex; flex-direction:column; }
    .why-grid{ grid-template-columns:1fr 1fr; }
  }