/* ============================================================
   DigitalEdge Academy — Design Tokens & Base
   ============================================================ */
:root{
  --navy-950:#050914;
  --navy-900:#080f24;
  --navy-800:#0c1638;
  --navy-700:#111d4a;
  --blue-700:#1d4ed8;
  --blue-600:#2563eb;
  --blue-500:#3b82f6;
  --blue-400:#60a5fa;
  --cyan-400:#22d3ee;
  --cyan-300:#67e8f9;
  --gold-400:#fbbf24;
  --ink-900:#0b1120;
  --paper:#f6f8fc;
  --glass-light: rgba(255,255,255,0.65);
  --glass-light-border: rgba(15,23,42,0.08);
  --glass-dark: rgba(255,255,255,0.06);
  --glass-dark-border: rgba(255,255,255,0.14);
  --shadow-soft: 0 20px 60px -15px rgba(15,23,42,0.15);
  --shadow-strong: 0 30px 80px -20px rgba(9,20,54,0.45);
  --ease: cubic-bezier(.16,.84,.44,1);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth; scroll-padding-top:88px;}
body{
  font-family:'Inter',ui-sans-serif,system-ui,sans-serif;
  background:var(--paper);
  color:var(--ink-900);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,h4,.font-display{
  font-family:'Poppins','Manrope',ui-sans-serif,sans-serif;
}
::selection{ background:var(--blue-500); color:#fff; }

/* Scrollbar */
::-webkit-scrollbar{ width:10px; height:10px; }
::-webkit-scrollbar-track{ background:var(--paper); }
::-webkit-scrollbar-thumb{ background:linear-gradient(var(--blue-600),var(--cyan-400)); border-radius:10px; }

/* Focus visibility for accessibility */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible{
  outline:2px solid var(--blue-500);
  outline-offset:3px;
  border-radius:6px;
}

/* Skip link */
.skip-link{
  position:absolute; left:-999px; top:auto;
  background:var(--blue-600); color:#fff; padding:.75rem 1.25rem;
  border-radius:0 0 .5rem 0; z-index:9999; font-weight:600;
}
.skip-link:focus{ left:0; top:0; }

/* ============================================================
   Utility layers
   ============================================================ */
.text-gradient{
  background:linear-gradient(92deg,#5eb1ff 0%, #8bd8ff 45%, #22d3ee 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.text-gradient-dark{
  background:linear-gradient(92deg,var(--blue-700), var(--blue-500) 55%, var(--cyan-400) 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}

.section-eyebrow{
  display:inline-flex; align-items:center; gap:.5rem;
  font-size:.75rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--blue-600);
  background:rgba(37,99,235,.08);
  border:1px solid rgba(37,99,235,.18);
  padding:.4rem .9rem; border-radius:999px;
}
.section-eyebrow.on-dark{
  color:var(--cyan-300);
  background:rgba(34,211,238,.08);
  border-color:rgba(103,232,249,.22);
}

.glass-card{
  background:var(--glass-light);
  border:1px solid var(--glass-light-border);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  box-shadow:var(--shadow-soft);
}
.glass-card-dark{
  background:var(--glass-dark);
  border:1px solid var(--glass-dark-border);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}

.grain-bg{
  background-color:var(--navy-900);
  background-image:
    radial-gradient(circle at 15% 20%, rgba(59,130,246,.25), transparent 40%),
    radial-gradient(circle at 85% 15%, rgba(34,211,238,.18), transparent 45%),
    radial-gradient(circle at 50% 100%, rgba(29,78,216,.25), transparent 50%);
}

.bg-dot-grid{
  background-image:radial-gradient(rgba(15,23,42,0.08) 1px, transparent 1px);
  background-size:22px 22px;
}
.bg-dot-grid-dark{
  background-image:radial-gradient(rgba(255,255,255,0.09) 1px, transparent 1px);
  background-size:22px 22px;
}

/* Buttons */
.btn{
  position:relative;
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  font-weight:600; font-size:.95rem;
  padding:.95rem 1.9rem;
  border-radius:.9rem;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), background .35s var(--ease), color .35s var(--ease);
  white-space:nowrap;
}
.btn:active{ transform:scale(.97); }
.btn-primary{
  color:#fff;
  background:linear-gradient(120deg,var(--blue-600),var(--blue-500) 55%, var(--cyan-400));
  background-size:180% 180%;
  background-position:0% 50%;
  box-shadow:0 14px 34px -10px rgba(37,99,235,.55);
}
.btn-primary:hover{
  background-position:100% 50%;
  box-shadow:0 18px 44px -10px rgba(37,99,235,.7);
  transform:translateY(-2px);
}
.btn-ghost{
  color:#fff;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.35);
  backdrop-filter:blur(10px);
}
.btn-ghost:hover{
  background:rgba(255,255,255,.16);
  transform:translateY(-2px);
  border-color:rgba(255,255,255,.6);
}
.btn-outline-dark{
  color:var(--navy-900);
  border:1.5px solid rgba(15,23,42,.15);
  background:#fff;
}
.btn-outline-dark:hover{
  border-color:var(--blue-500);
  color:var(--blue-600);
  transform:translateY(-2px);
  box-shadow:var(--shadow-soft);
}
.btn-sm{ padding:.65rem 1.2rem; font-size:.85rem; border-radius:.7rem; }

/* Nav */
#site-nav{
  transition:background .4s var(--ease), box-shadow .4s var(--ease), padding .4s var(--ease), border-color .4s var(--ease);
  border-bottom:1px solid transparent;
}
#site-nav.scrolled{
  background:rgba(6, 11, 24, 0.44);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  box-shadow:0 10px 30px -15px rgba(0,0,0,.5);
  border-color:rgba(255,255,255,.08);
}
.nav-link{
  position:relative;
  color:rgba(255,255,255,.82);
  font-weight:500;
  font-size:.92rem;
  padding-bottom:4px;
}
.nav-link::after{
  content:'';
  position:absolute; left:0; bottom:0; height:2px; width:0%;
  background:linear-gradient(90deg,var(--blue-400),var(--cyan-400));
  transition:width .3s var(--ease);
  border-radius:2px;
}
.nav-link:hover{ color:#fff; }
.nav-link:hover::after, .nav-link.active::after{ width:100%; }
.nav-link.active{ color:#fff; }

/* Mobile menu */
#mobile-menu{
  max-height:0;
  overflow:hidden;
  transition:max-height .45s var(--ease);
}
#mobile-menu.open{ max-height:600px; }

/* Hamburger */
.hamburger{ width:26px; height:20px; position:relative; }
.hamburger span{
  position:absolute; left:0; width:100%; height:2px; background:#fff; border-radius:2px;
  transition:transform .35s var(--ease), opacity .3s var(--ease), top .35s var(--ease);
}
.hamburger span:nth-child(1){ top:0; }
.hamburger span:nth-child(2){ top:9px; }
.hamburger span:nth-child(3){ top:18px; }
.hamburger.open span:nth-child(1){ top:9px; transform:rotate(45deg); }
.hamburger.open span:nth-child(2){ opacity:0; }
.hamburger.open span:nth-child(3){ top:9px; transform:rotate(-45deg); }

/* ============================================================
   Hero
   ============================================================ */
#hero{
  position:relative;
  overflow:hidden;
}
.hero-orb{
  position:absolute;
  border-radius:50%;
  filter:blur(70px);
  opacity:.55;
  pointer-events:none;
}
.float-slow{ animation:floatY 7s ease-in-out infinite; }
.float-slower{ animation:floatY 10s ease-in-out infinite; }
.float-med{ animation:floatY 5.5s ease-in-out infinite; }
@keyframes floatY{
  0%,100%{ transform:translateY(0) rotate(0deg); }
  50%{ transform:translateY(-18px) rotate(1.5deg); }
}
@keyframes floatX{
  0%,100%{ transform:translateX(0); }
  50%{ transform:translateX(12px); }
}
.pulse-ring{
  animation:pulseRing 2.6s ease-out infinite;
}
@keyframes pulseRing{
  0%{ box-shadow:0 0 0 0 rgba(34,211,238,.45); }
  70%{ box-shadow:0 0 0 14px rgba(34,211,238,0); }
  100%{ box-shadow:0 0 0 0 rgba(34,211,238,0); }
}

.hero-badge{
  animation:fadeUp .8s var(--ease) both;
}
.hero-h1{ animation:fadeUp .9s .1s var(--ease) both; }
.hero-sub{ animation:fadeUp .9s .22s var(--ease) both; }
.hero-cta{ animation:fadeUp .9s .34s var(--ease) both; }
.hero-trust{ animation:fadeUp .9s .46s var(--ease) both; }
.hero-visual{ animation:fadeUp 1.1s .3s var(--ease) both; }

@keyframes fadeUp{
  from{ opacity:0; transform:translateY(26px); }
  to{ opacity:1; transform:translateY(0); }
}

/* Chart bars in hero mockup */
.bar{
  transform-origin:bottom;
  animation:growBar 1.6s var(--ease) both;
}
@keyframes growBar{ from{ transform:scaleY(0); } to{ transform:scaleY(1); } }

/* Ticker marquee (companies) */
.marquee-track{
  display:flex;
  width:max-content;
  animation:marquee 32s linear infinite;
}
.marquee-track:hover{ animation-play-state:paused; }
@keyframes marquee{
  from{ transform:translateX(0); }
  to{ transform:translateX(-50%); }
}

/* ============================================================
   Reveal-on-scroll (JS toggles .in-view)
   ============================================================ */
.reveal{ opacity:0; transform:translateY(34px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.in-view{ opacity:1; transform:translateY(0); }
.reveal-scale{ opacity:0; transform:scale(.92); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal-scale.in-view{ opacity:1; transform:scale(1); }
.reveal-left{ opacity:0; transform:translateX(-40px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal-left.in-view{ opacity:1; transform:translateX(0); }
.reveal-right{ opacity:0; transform:translateX(40px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal-right.in-view{ opacity:1; transform:translateX(0); }

.stagger > * { transition-delay:calc(var(--i, 0) * 90ms); }

/* ============================================================
   Cards: Why choose us / Courses
   ============================================================ */
.feature-card{
  position:relative;
  border-radius:1.25rem;
  padding:1.9rem 1.6rem;
  background:#fff;
  border:1px solid rgba(15,23,42,.06);
  box-shadow:0 2px 10px -4px rgba(15,23,42,.06);
  transition:transform .45s var(--ease), box-shadow .45s var(--ease), border-color .45s var(--ease);
  overflow:hidden;
}
.feature-card::before{
  content:'';
  position:absolute; inset:0;
  background:linear-gradient(140deg, rgba(37,99,235,.08), rgba(34,211,238,.05));
  opacity:0;
  transition:opacity .45s var(--ease);
}
.feature-card:hover{
  transform:translateY(-8px);
  box-shadow:0 30px 55px -20px rgba(37,99,235,.28);
  border-color:rgba(37,99,235,.25);
}
.feature-card:hover::before{ opacity:1; }
.feature-icon{
  width:3.1rem; height:3.1rem;
  border-radius:.9rem;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,var(--blue-600),var(--cyan-400));
  color:#fff; font-size:1.25rem;
  box-shadow:0 10px 24px -8px rgba(37,99,235,.55);
  transition:transform .45s var(--ease);
  position:relative; z-index:1;
}
.feature-card:hover .feature-icon{ transform:scale(1.08) rotate(-6deg); }

.course-card{
  position:relative;
  border-radius:1.25rem;
  padding:1.8rem 1.5rem;
  background:linear-gradient(180deg,#fff, #f8fbff);
  border:1px solid rgba(15,23,42,.07);
  box-shadow:0 2px 10px -4px rgba(15,23,42,.06);
  transition:transform .5s var(--ease), box-shadow .5s var(--ease);
}
.course-card:hover{
  transform:translateY(-10px) scale(1.015);
  box-shadow:0 34px 60px -20px rgba(15,23,42,.22);
}
.course-tag{
  font-size:.68rem; font-weight:700; letter-spacing:.05em;
  padding:.25rem .6rem; border-radius:999px;
  background:rgba(37,99,235,.09); color:var(--blue-700);
}
.course-icon-wrap{
  width:3.4rem; height:3.4rem; border-radius:1rem;
  display:flex; align-items:center; justify-content:center;
  font-size:1.4rem;
  background:radial-gradient(circle at 30% 30%, #eaf2ff, #dce9ff);
  color:var(--blue-600);
  transition:background .4s var(--ease), color .4s var(--ease), transform .4s var(--ease);
}
.course-card:hover .course-icon-wrap{
  background:linear-gradient(135deg,var(--blue-600),var(--cyan-400));
  color:#fff;
  transform:rotate(-8deg) scale(1.05);
}
.course-card .learn-more{
  color:var(--blue-600); font-weight:600; font-size:.86rem;
  display:inline-flex; align-items:center; gap:.4rem;
}
.course-card .learn-more i{ transition:transform .35s var(--ease); }
.course-card:hover .learn-more i{ transform:translateX(5px); }

/* ============================================================
   Roadmap timeline
   ============================================================ */
.roadmap-line{
  background:linear-gradient(90deg, var(--blue-600), var(--cyan-400));
}
.roadmap-node{
  width:3.6rem; height:3.6rem;
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:var(--navy-900);
  border:2px solid var(--blue-500);
  color:#fff; font-weight:700;
  box-shadow:0 0 0 6px rgba(37,99,235,.14);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease), background .4s var(--ease);
  position:relative; z-index:2;
}
.roadmap-item:hover .roadmap-node{
  transform:scale(1.12);
  background:linear-gradient(135deg,var(--blue-600),var(--cyan-400));
  box-shadow:0 0 0 10px rgba(34,211,238,.18);
}
.roadmap-card{
  background:#fff;
  border:1px solid rgba(15,23,42,.07);
  border-radius:1rem;
  box-shadow:0 2px 10px -4px rgba(15,23,42,.06);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease);
}
.roadmap-item:hover .roadmap-card{
  transform:translateY(-6px);
  box-shadow:0 26px 46px -18px rgba(37,99,235,.25);
}

/* ============================================================
   Testimonials
   ============================================================ */
.testi-card{
  background:#fff;
  border-radius:1.25rem;
  border:1px solid rgba(15,23,42,.07);
  box-shadow:0 4px 16px -6px rgba(15,23,42,.08);
  transition:transform .45s var(--ease), box-shadow .45s var(--ease);
}
.testi-card:hover{
  transform:translateY(-8px);
  box-shadow:0 30px 55px -20px rgba(37,99,235,.22);
}
.testi-avatar{
  width:3.2rem; height:3.2rem; border-radius:50%;
  object-fit:cover;
  border:2px solid #fff;
  box-shadow:0 0 0 3px rgba(37,99,235,.25);
}
.stars i{ color:var(--gold-400); font-size:.85rem; }
.quote-mark{
  font-family:Georgia, serif;
  font-size:3.2rem;
  line-height:1;
  color:rgba(37,99,235,.15);
}

/* ============================================================
   Trainers
   ============================================================ */
.trainer-card{
  position:relative;
  border-radius:1.4rem;
  overflow:hidden;
  background:linear-gradient(160deg,var(--navy-900),var(--navy-700));
  box-shadow:0 20px 45px -18px rgba(9,20,54,.5);
  transition:transform .5s var(--ease), box-shadow .5s var(--ease);
}
.trainer-card:hover{ transform:translateY(-10px); box-shadow:0 34px 70px -18px rgba(9,20,54,.6); }
.trainer-photo{
  width:100%; aspect-ratio:4/3; object-fit:cover;
  filter:grayscale(.1) contrast(1.02);
}
.trainer-badge{
  font-size:.68rem; font-weight:700; letter-spacing:.04em;
  background:rgba(34,211,238,.12); color:var(--cyan-300);
  border:1px solid rgba(34,211,238,.3);
  padding:.2rem .55rem; border-radius:999px;
}

/* ============================================================
   Placement icons
   ============================================================ */
.placement-item{
  display:flex; gap:1rem; align-items:flex-start;
  padding:1.1rem 1.2rem;
  border-radius:1rem;
  transition:background .35s var(--ease), transform .35s var(--ease);
}
.placement-item:hover{ background:rgba(37,99,235,.06); transform:translateX(6px); }
.placement-icon{
  flex:none; width:2.6rem; height:2.6rem; border-radius:.8rem;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,var(--blue-600),var(--cyan-400));
  color:#fff;
}

/* ============================================================
   FAQ accordion
   ============================================================ */
.faq-item{
  border:1px solid rgba(15,23,42,.08);
  border-radius:1rem;
  background:#fff;
  overflow:hidden;
  transition:box-shadow .35s var(--ease), border-color .35s var(--ease);
}
.faq-item.active{ box-shadow:0 18px 40px -18px rgba(37,99,235,.28); border-color:rgba(37,99,235,.25); }
.faq-question{
  width:100%;
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  text-align:left;
  padding:1.25rem 1.4rem;
  font-weight:600;
  color:var(--navy-900);
  background:transparent;
}
.faq-icon{
  flex:none;
  width:2rem; height:2rem; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:rgba(37,99,235,.08); color:var(--blue-600);
  transition:transform .4s var(--ease), background .4s var(--ease), color .4s var(--ease);
}
.faq-item.active .faq-icon{ transform:rotate(135deg); background:var(--blue-600); color:#fff; }
.faq-answer{
  max-height:0;
  overflow:hidden;
  transition:max-height .5s var(--ease);
}
.faq-answer-inner{ padding:0 1.4rem 1.4rem; color:#475569; line-height:1.7; }

/* ============================================================
   Lead form
   ============================================================ */
.form-field{
  width:100%;
  padding:.9rem 1.05rem;
  border-radius:.85rem;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.18);
  color:#fff;
  transition:border-color .3s var(--ease), background .3s var(--ease), box-shadow .3s var(--ease);
}
.form-field::placeholder{ color:rgba(255,255,255,.45); }
.form-field:focus{
  outline:none;
  border-color:var(--cyan-400);
  background:rgba(255,255,255,.1);
  box-shadow:0 0 0 4px rgba(34,211,238,.15);
}
.form-field option{ color:#0b1120; }
.form-label{ font-size:.82rem; font-weight:600; color:rgba(255,255,255,.75); margin-bottom:.4rem; display:block; }
.field-error{ color:#fca5a5; font-size:.78rem; margin-top:.35rem; min-height:1rem; }

/* Success toast */
#form-toast{
  transform:translateY(30px);
  opacity:0;
  pointer-events:none;
  transition:transform .5s var(--ease), opacity .5s var(--ease);
}
#form-toast.show{ transform:translateY(0); opacity:1; pointer-events:auto; }

/* ============================================================
   Misc
   ============================================================ */
.divider-fade{
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(15,23,42,.12), transparent);
}
.divider-fade-dark{
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.14), transparent);
}

#back-to-top{
  opacity:0; visibility:hidden; transform:translateY(12px);
  transition:opacity .35s var(--ease), transform .35s var(--ease), visibility .35s;
}
#back-to-top.show{ opacity:1; visibility:visible; transform:translateY(0); }

.stat-num{ font-variant-numeric:tabular-nums; }

.social-icon{
  width:2.6rem; height:2.6rem; border-radius:.75rem;
  display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.14);
  color:#fff;
  transition:transform .35s var(--ease), background .35s var(--ease), box-shadow .35s var(--ease);
}
.social-icon:hover{
  transform:translateY(-4px);
  background:linear-gradient(135deg,var(--blue-600),var(--cyan-400));
  box-shadow:0 12px 26px -10px rgba(37,99,235,.6);
}

.logo-chip{
  filter:grayscale(1);
  opacity:.6;
  transition:opacity .35s var(--ease), filter .35s var(--ease), transform .35s var(--ease);
}
.logo-chip:hover{ filter:grayscale(0); opacity:1; transform:translateY(-3px); }

/* ============================================================
   Free Demo modal
   ============================================================ */
.modal-overlay{
  position:fixed;
  inset:0;
  z-index:200;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:1.25rem;
  background:rgba(5,9,20,.72);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  opacity:0;
  visibility:hidden;
  transition:opacity .4s var(--ease), visibility .4s;
}
.modal-overlay.open{ opacity:1; visibility:visible; }
.modal-card{
  transform:scale(.94) translateY(14px);
  transition:transform .45s var(--ease);
  box-shadow:var(--shadow-strong);
  max-height:90vh;
  overflow-y:auto;
}
.modal-overlay.open .modal-card{ transform:scale(1) translateY(0); }
.modal-close{
  position:absolute;
  top:1.1rem; right:1.1rem;
  width:2.2rem; height:2.2rem;
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  /*background:rgba(255,255,255,.08);*/
  /*border:1px solid rgba(255,255,255,.16);*/
  color:#fff;
  transition:background .3s var(--ease), transform .3s var(--ease);
}
.modal-close:hover{ background:rgba(255,255,255,.18); transform:rotate(90deg); }
body.modal-open{ overflow:hidden; }

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

@media (max-width:768px){
  .hero-h1{ font-size:2.35rem !important; line-height:1.18 !important; }
  
  .modal-overlay {
  
  align-items: center;
  justify-content: center;
  padding: 0.25rem;
  
  /*margin-right: 30px;*/
}
.modal-close {
  position: absolute;
  top: -5px;
  right: 0px;
  
}
.modal-overlay.open .modal-card {
  transform: scale(1) translateY(0);
  margin-right: 20px;
}
}

