/* =====================
   Eduvate v2 — Styles
   Professional, friendly, dynamic UI
===================== */
:root{
  --bg:#0A0F1A;
  --panel:#0E1626;
  --card:#101B2F;
  --card-2:#0C1424;
  --ink:#EAF1FF;
  --muted:#9FB0CC;
  --line:rgba(255,255,255,0.08);
  --blue:#0B4FD9;
  --blue-2:#2E7BFF;
  --yellow:#FFC928;
  --grad: linear-gradient(135deg, var(--blue), var(--blue-2));
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Inter', system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, 'Helvetica Neue', Arial, sans-serif;
  color:var(--ink); background:var(--bg); line-height:1.65;
}

/* A11y helpers */
.sr{position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden}
.skip-link{position:absolute; left:-999px; top:auto; background:#000; color:#fff; padding:8px 12px; border-radius:8px}
.skip-link:focus{left:12px; top:12px; z-index:1000}

/* Layout */
.container{width:min(1160px,92%); margin:0 auto}
.section{padding:96px 0}
.section--alt{background:#0C1322}
.section--accent{background: radial-gradient(1000px 400px at 0% 0%, rgba(11,79,217,0.25), transparent 50%), var(--panel)}
.section--tight{padding-top:72px}
.center{text-align:center}
.muted{color:var(--muted)}
.grad{background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent}

/* Nav */
.nav{position:sticky; top:0; z-index:50; background:rgba(10,15,26,.7); border-bottom:1px solid var(--line); backdrop-filter: blur(10px)}
.nav__wrap{display:flex; align-items:center; justify-content:space-between; padding:14px 0}
.nav__brand{display:flex; align-items:center; gap:10px; text-decoration:none; color:#fff}
.nav__logo{height: 50px} /* keep old logo feel */
.nav__links{display:flex; gap:18px; align-items:center}
.nav__links a{color:#DDE6FF; text-decoration:none; opacity:.9}
.nav__links a:hover{opacity:1}
.nav__actions{display:flex; align-items:center; gap:8px}
.btn-icon{background:transparent; border:1px solid var(--line); color:#fff; border-radius:10px; padding:8px; cursor:pointer}
.nav__burger{display:none; background:none; border:none; cursor:pointer}
.nav__burger span{display:block; width:22px; height:2px; background:#fff; margin:4px 0}

/* Hero */
.hero{position:relative; overflow:hidden}
.hero__bg{position:absolute; inset:0; z-index:-1}
.bg-blob{position:absolute; filter:blur(60px); opacity:.7}
.blob-1{width:480px; height:480px; background:#0b4fd955; left:-120px; top:-80px; border-radius:50%}
.blob-2{width:400px; height:400px; background:#ffc92833; right:-120px; bottom:-100px; border-radius:50%}
#heroCanvas{position:absolute; inset:0; width:100%; height:100%; opacity:.35}
.hero__inner{display:grid; grid-template-columns: 1.2fr .8fr; gap:28px; align-items:center}
.eyebrow{color:#BBD0FF; letter-spacing:.15em; text-transform:uppercase; font-size:13px; margin:0 0 8px}
.display{font-family:'Manrope', sans-serif; font-weight:800; font-size: clamp(34px, 4.6vw, 56px); line-height:1.12; margin:0 0 10px}
.lede{font-size: clamp(16px, 2.2vw, 18px); color:#C7D4EE; margin:0 0 22px}
.hero__cta{display:flex; gap:12px; flex-wrap:wrap}
.card{background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02)); border:1px solid var(--line); border-radius:16px; padding:18px}
.elevate{box-shadow: 0 10px 30px rgba(0,0,0,.25)}
.checklist{list-style:none; padding:0; margin:12px 0 0}
.checklist li{position:relative; padding-left:22px; margin:8px 0}
.checklist li::before{content:"✓"; position:absolute; left:0; color:#FFC928; font-weight:700}

/* Journeys */
.journeys{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:18px}
.journey .badge{display:inline-block; padding:6px 10px; border-radius:999px; background:#0F1C33; border:1px solid var(--line); font-size:12px; color:#B7C8E9}
.micro-list{list-style:none; padding:0; margin:10px 0 12px; color:#C7D4EE; font-size:14px}
.btn--block{width:100%}

/* Split grids & cards */
.split{display:grid; grid-template-columns:1.05fr .95fr; gap:28px; align-items:center}
.grid-4{display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:18px}
.hover-raise{transition: transform .2s ease}
.hover-raise:hover{transform: translateY(-4px)}

/* Stats */
.about__stats{display:grid; grid-template-columns:repeat(3,1fr); gap:12px}
.stat{background:var(--card); border:1px solid var(--line); border-radius:16px; padding:14px; text-align:center}
.stat__num{font-family:'Manrope', sans-serif; font-weight:800; font-size:36px}

/* AI */
.ai{background:
  radial-gradient(850px 350px at 10% -10%, rgba(11,79,217,0.28), transparent 60%),
  radial-gradient(1000px 400px at 90% 110%, rgba(255,201,40,0.22), transparent 60%),
  #0A0F1A;
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
.ai__head{max-width:760px; margin:0 auto 18px; text-align:center}
.ai__grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:14px}
.ai__card{background:#0B1222; border:1px solid var(--line); border-radius:16px; padding:18px}

/* Impact */
.impact__grid{display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-top:12px}
.impact__item{background:var(--card); border:1px solid var(--line); border-radius:16px; padding:18px; text-align:center}

/* Accordion */
.accordion{display:grid; gap:10px; margin-top:16px}
.acc__trigger{
  width:100%; text-align:left; background:#0C1424; color:#fff; border:1px solid var(--line); border-radius:14px; padding:14px 16px; cursor:pointer;
  display:flex; align-items:center; justify-content:space-between;
}
.acc__trigger span{display:inline-block; transform:rotate(0deg); transition:transform .2s ease}
.acc__trigger[aria-expanded="true"] span{transform:rotate(180deg)}
.acc__panel{display:none; padding:12px 16px; background:#0B1222; border:1px solid var(--line); border-radius:14px}
.acc__item.open .acc__panel{display:block}

/* Forms */
.form{display:grid; grid-template-columns:1fr 1fr; gap:12px; background:#0B1222; border:1px solid var(--line); border-radius:16px; padding:18px}
.form label{display:grid; gap:6px; font-size:14px}
.form input, .form textarea{
  background:#0A1428; border:1px solid #1C2940; color:#E9F0FF; border-radius:12px; padding:12px; outline:none;
}
.form input:focus, .form textarea:focus{border-color:var(--blue)}
.form button{grid-column:span 2; justify-self:start}
.form__note{grid-column:span 2; color:#99A8C2; font-size:12px}
.form__status{grid-column:span 2; font-size:14px; min-height:20px}
@media (max-width:780px){ .form{grid-template-columns:1fr} .form button,.form__note,.form__status{grid-column:span 1} }

/* Buttons */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  background:var(--grad); color:#fff; border:none; border-radius:12px; padding:12px 18px; font-weight:700; cursor:pointer; text-decoration:none;
  box-shadow: 0 6px 20px rgba(11,79,217,.3);
}
.btn--ghost{background:transparent; border:1px solid var(--line)}
.btn--lg{padding:14px 22px}
.btn--sm{padding:8px 12px; border-radius:10px; font-size:14px}
/* Compact soft buttons used for inline CTAs */
.btn--soft{background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12)}
.btn--soft:hover{background:rgba(255,255,255,.1)}

/* Slider — contained so it never overlaps */
.slider{position:relative}
.slider__viewport{overflow:hidden; width:100%; position:relative; isolation:isolate}
.slides{display:flex; gap:0; overflow:visible; will-change:transform}
.slide{min-width:100%; flex:0 0 100%}
.slider__btn{
  position:absolute; top:50%; transform:translateY(-50%);
  background:#0B1222; border:1px solid var(--line); color:#fff; border-radius:12px; padding:6px 10px; cursor:pointer; z-index:2; box-shadow:0 6px 18px rgba(0,0,0,.25)
}
.slider__btn.prev{left:8px}
.slider__btn.next{right:8px}
.dots{display:flex; gap:6px; margin-top:8px; justify-content:center}
.dots button{width:8px; height:8px; border-radius:50%; border:1px solid var(--line); background:transparent; cursor:pointer}
.dots button.active{background:#fff}

/* Footer */
.footer{background:#0A0F1A; border-top:1px solid var(--line); margin-top:48px}
.footer__wrap{display:grid; grid-template-columns:1.1fr .9fr .9fr; gap:16px; padding:30px 0}
.footer__logo{height:22px}
.footer__btm{padding:12px 0 24px; color:#8EA0BF; border-top:1px solid var(--line)}

/* Sticky mobile action bar */
.stickybar{
  position:fixed; bottom:12px; left:0; right:0; z-index:40; display:flex; justify-content:center; pointer-events:none;
}
.stickybar a{
  pointer-events:auto; display:inline-flex; align-items:center; gap:8px; margin:0 6px; padding:12px 14px; border-radius:999px; background:#0F1C33; border:1px solid var(--line); color:#fff; text-decoration:none;
}

/* Back to top */
.to-top{position:fixed; right:16px; bottom:76px; z-index:45; background:#0F1C33; color:#fff; border:1px solid var(--line); border-radius:12px; padding:10px; cursor:pointer; display:none}

/* Reveal on scroll */
.reveal{opacity:0; transform: translateY(18px); transition: opacity .5s ease, transform .5s ease}
.reveal.visible{opacity:1; transform:none}

/* Responsive */
@media (max-width:1024px){
  .hero__inner{grid-template-columns:1fr}
  .journeys{grid-template-columns:1fr 1fr}
  .grid-4{grid-template-columns:1fr 1fr}
}
@media (max-width:780px){
  .nav__burger{display:block}
  .nav__links{
    position:absolute; top:64px; right:16px; width:280px; background:#0B1222; border:1px solid var(--line);
    border-radius:12px; padding:12px; display:none; flex-direction:column; gap:10px
  }
  .nav__links.show{display:flex}
  .journeys{grid-template-columns:1fr}
  .grid-4{grid-template-columns:1fr}
}

/* ===== Mobile layout fixes for split sections ===== */
@media (max-width: 768px) {
  .split {
    display: flex;
    flex-direction: column;
    gap: 2rem; /* space between stacked items */
  }

  .split > div,
  .split > section {
    width: 100% !important;
    max-width: 100%;
  }

  /* Ensure impact grid and contact form stack properly */
  .impact__grid,
  .contact__badges,
  form.form {
    width: 100%;
  }

  /* Stats align nicely under text */
  .about__stats,
  .impact__grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1rem;
  }

  .impact__item,
  .stat {
    flex: 1 1 calc(50% - 1rem);
    max-width: calc(50% - 1rem);
  }
}
