/* ============================================================
   ASCENT ACADEMY — Premium Coaching Institute Template
   Built by VAM Studio
   ============================================================ */

/* ---------- Design Tokens ---------- */
:root{
  --primary:#2563EB;
  --primary-rgb:37,99,235;
  --secondary:#1D4ED8;
  --accent:#F59E0B;
  --accent-rgb:245,158,11;
  --bg:#F8FAFC;
  --surface:#FFFFFF;
  --text:#111827;
  --text-muted:#5B6472;
  --border:#E2E8F0;
  --success:#0EA972;

  --font-display:'Sora', sans-serif;
  --font-body:'Inter', sans-serif;
  --font-mono:'IBM Plex Mono', monospace;

  --radius-sm:10px;
  --radius-md:16px;
  --radius-lg:26px;
  --shadow-sm:0 2px 8px rgba(17,24,39,.06);
  --shadow-md:0 12px 32px rgba(17,24,39,.09);
  --shadow-lg:0 24px 60px rgba(17,24,39,.14);

  --container:1240px;
  --nav-h:76px;
  --ease:cubic-bezier(.22,1,.36,1);
}

[data-theme="dark"]{
  --bg:#0B1120;
  --surface:#131B2E;
  --text:#F1F5F9;
  --text-muted:#93A0B4;
  --border:#243049;
  --shadow-sm:0 2px 8px rgba(0,0,0,.3);
  --shadow-md:0 12px 32px rgba(0,0,0,.35);
  --shadow-lg:0 24px 60px rgba(0,0,0,.45);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important;}
}

body{
  margin:0;
  font-family:var(--font-body);
  background:var(--bg);
  color:var(--text);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  transition:background .4s var(--ease), color .4s var(--ease);
}

h1,h2,h3,h4{
  font-family:var(--font-display);
  color:var(--text);
  margin:0;
  line-height:1.15;
  letter-spacing:-0.02em;
}
p{margin:0; color:var(--text-muted); line-height:1.7;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
button{font-family:inherit; cursor:pointer; border:none; background:none; color:inherit;}
ul,ol{margin:0; padding:0; list-style:none;}
svg{width:22px; height:22px;}

.container{
  max-width:var(--container);
  margin:0 auto;
  padding:0 28px;
}
.section{padding:120px 0;}
@media (max-width:768px){.section{padding:80px 0;}}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family:var(--font-mono);
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--primary);
  background:rgba(var(--primary-rgb),.08);
  padding:7px 14px;
  border-radius:999px;
  margin-bottom:18px;
}
.text-accent{color:var(--accent);}

.section__head{max-width:640px; margin-bottom:64px;}
.section__head h2{font-size:clamp(1.8rem,3.4vw,2.6rem); margin-bottom:14px;}
.section__head p{font-size:1.05rem; margin-top:14px;}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-weight:600;
  font-size:.95rem;
  padding:14px 26px;
  border-radius:12px;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease);
  position:relative;
  overflow:hidden;
  white-space:nowrap;
}
.btn--lg{padding:16px 32px; font-size:1rem;}
.btn--sm{padding:10px 18px; font-size:.85rem;}
.btn--primary{background:var(--primary); color:#fff; box-shadow:0 8px 20px rgba(var(--primary-rgb),.28);}
.btn--primary:hover{transform:translateY(-2px); box-shadow:0 14px 28px rgba(var(--primary-rgb),.36); background:var(--secondary);}
.btn--outline{border:1.5px solid var(--border); color:var(--text); background:var(--surface);}
.btn--outline:hover{border-color:var(--primary); color:var(--primary); transform:translateY(-2px);}
.btn--ghost{background:transparent; color:var(--text-muted);}
.btn--ghost:hover{color:var(--text);}
.btn .ripple{
  position:absolute; border-radius:50%; background:rgba(255,255,255,.5);
  transform:scale(0); animation:ripple .6s linear; pointer-events:none;
}
@keyframes ripple{to{transform:scale(3); opacity:0;}}

/* ---------- Loader ---------- */
.loader{
  position:fixed; inset:0; z-index:9999;
  background:var(--bg);
  display:flex; align-items:center; justify-content:center;
  transition:opacity .6s var(--ease), visibility .6s var(--ease);
}
.loader.is-hidden{opacity:0; visibility:hidden; pointer-events:none;}
.loader__mark{position:relative; width:88px; height:88px; display:flex; align-items:center; justify-content:center;}
.loader__ring{
  position:absolute; inset:0; border-radius:50%;
  border:3px solid var(--border); border-top-color:var(--primary);
  animation:spin 1s linear infinite;
}
.loader__text{font-family:var(--font-display); font-weight:700; color:var(--primary); font-size:1.1rem;}
@keyframes spin{to{transform:rotate(360deg);}}

/* ---------- Scroll progress ---------- */
.scroll-progress{
  position:fixed; top:0; left:0; height:3px; width:0%;
  background:linear-gradient(90deg,var(--primary),var(--accent));
  z-index:1001;
}

/* ---------- Cookie banner ---------- */
.cookie-banner{
  position:fixed; bottom:24px; left:24px; right:24px; max-width:520px;
  background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-md);
  box-shadow:var(--shadow-lg); padding:20px 22px; z-index:900;
  transform:translateY(140%); transition:transform .5s var(--ease);
}
.cookie-banner.is-visible{transform:translateY(0);}
.cookie-banner p{font-size:.88rem; margin-bottom:14px;}
.cookie-banner a{color:var(--primary); text-decoration:underline;}
.cookie-banner__actions{display:flex; gap:10px;}

/* ---------- Newsletter popup ---------- */
.popup-overlay{
  position:fixed; inset:0; background:rgba(10,14,26,.55); backdrop-filter:blur(4px);
  z-index:1200; display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden; transition:opacity .4s var(--ease), visibility .4s var(--ease);
}
.popup-overlay.is-visible{opacity:1; visibility:visible;}
.popup{
  background:var(--surface); border-radius:var(--radius-lg); padding:40px; max-width:420px; width:90%;
  box-shadow:var(--shadow-lg); position:relative; transform:scale(.9); transition:transform .4s var(--ease);
}
.popup-overlay.is-visible .popup{transform:scale(1);}
.popup__close{position:absolute; top:16px; right:18px; font-size:1.4rem; color:var(--text-muted);}
.popup__eyebrow{font-family:var(--font-mono); font-size:.7rem; color:var(--accent); text-transform:uppercase; letter-spacing:.1em; font-weight:600;}
.popup h3{margin:12px 0 10px; font-size:1.3rem;}
.popup__form{display:flex; gap:8px; margin-top:20px;}
.popup__form input{flex:1; padding:12px 14px; border-radius:10px; border:1px solid var(--border); background:var(--bg); color:var(--text); font-family:inherit;}

/* ---------- Navigation ---------- */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:1000; height:var(--nav-h);
  display:flex; align-items:center;
  background:transparent;
  transition:background .35s var(--ease), box-shadow .35s var(--ease), height .35s var(--ease), backdrop-filter .35s var(--ease);
}
.nav.is-scrolled{
  background:rgba(248,250,252,.82); backdrop-filter:blur(14px);
  box-shadow:0 1px 0 var(--border); height:68px;
}
[data-theme="dark"] .nav.is-scrolled{background:rgba(11,17,32,.82);}
.nav__inner{display:flex; align-items:center; justify-content:space-between; width:100%;}
.nav__logo{display:flex; align-items:center; gap:10px; font-family:var(--font-display); font-weight:700; font-size:1.05rem;}
.nav__logo-mark{
  width:38px; height:38px; border-radius:10px; background:linear-gradient(135deg,var(--primary),var(--secondary));
  color:#fff; display:flex; align-items:center; justify-content:center; font-size:.85rem; font-weight:800;
}
.nav__logo-text em{color:var(--primary); font-style:normal;}
.nav__links{display:flex; align-items:center; gap:34px;}
.nav__link{position:relative; font-size:.92rem; font-weight:500; color:var(--text-muted); padding:6px 0;}
.nav__link::after{
  content:''; position:absolute; left:0; bottom:-2px; width:0; height:2px; background:var(--primary);
  transition:width .3s var(--ease);
}
.nav__link:hover, .nav__link.active{color:var(--text);}
.nav__link:hover::after, .nav__link.active::after{width:100%;}
.nav__actions{display:flex; align-items:center; gap:16px;}
.theme-toggle{width:38px; height:38px; border-radius:10px; display:flex; align-items:center; justify-content:center; color:var(--text-muted); border:1px solid var(--border);}
.theme-toggle:hover{color:var(--primary); border-color:var(--primary);}
.theme-toggle svg{width:18px; height:18px;}
.icon-moon{display:none;}
[data-theme="dark"] .icon-sun{display:none;}
[data-theme="dark"] .icon-moon{display:block;}
.nav__burger{display:none; flex-direction:column; gap:5px; width:24px;}
.nav__burger span{height:2px; width:100%; background:var(--text); border-radius:2px; transition:transform .3s var(--ease), opacity .3s var(--ease);}

@media (max-width:960px){
  .nav__links{
    position:fixed; top:var(--nav-h); left:0; right:0; bottom:0;
    background:var(--surface); flex-direction:column; justify-content:flex-start;
    padding:40px 32px; gap:26px; transform:translateX(100%); transition:transform .4s var(--ease);
  }
  .nav__links.is-open{transform:translateX(0);}
  .nav__link{font-size:1.1rem;}
  .nav__cta{display:none;}
  .nav__burger{display:flex;}
}

/* ---------- Hero ---------- */
.hero{
  position:relative; min-height:100vh; display:flex; align-items:center;
  padding-top:var(--nav-h); overflow:hidden;
}
.hero__grid-bg{
  position:absolute; inset:0; z-index:0;
  background-image:
    linear-gradient(rgba(var(--primary-rgb),.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(var(--primary-rgb),.06) 1px, transparent 1px);
  background-size:44px 44px;
  mask-image:radial-gradient(ellipse 80% 60% at 60% 30%, #000 40%, transparent 100%);
}
.hero__inner{
  position:relative; z-index:1; display:grid; grid-template-columns:1.05fr .95fr; gap:60px; align-items:center;
  padding-top:40px; padding-bottom:60px;
}
.hero__title{font-size:clamp(2.4rem,4.6vw,3.6rem); margin-bottom:22px;}
.hero__subtitle{font-size:1.1rem; max-width:520px; margin-bottom:34px;}
.hero__actions{display:flex; gap:16px; flex-wrap:wrap; margin-bottom:40px;}
.hero__trust{display:flex; align-items:center; gap:14px;}
.hero__trust p{font-size:.88rem; color:var(--text-muted);}
.hero__avatars{display:flex;}
.hero__avatars span{
  width:34px; height:34px; border-radius:50%; background-size:cover; background-position:center;
  border:2px solid var(--bg); margin-left:-10px; box-shadow:var(--shadow-sm);
}
.hero__avatars span:first-child{margin-left:0;}

.hero__visual{position:relative; height:520px;}
.admit-stack{position:relative; width:100%; height:100%;}
.admit-card{
  position:absolute; background:var(--surface); border-radius:18px; box-shadow:var(--shadow-lg);
  border:1px solid var(--border); padding:20px;
}
.admit-card--main{
  width:260px; left:50%; top:50%; transform:translate(-50%,-50%) rotate(-3deg);
  z-index:2;
}
.admit-card--float{
  padding:16px 20px; display:flex; flex-direction:column; gap:2px; z-index:3;
}
.admit-card--top{top:6%; right:2%; transform:rotate(4deg);}
.admit-card--bottom{bottom:8%; left:0%; transform:rotate(-5deg);}
.admit-card__row{display:flex; justify-content:space-between; align-items:center; gap:10px; padding:8px 0; border-bottom:1px dashed var(--border);}
.admit-card__row:last-of-type{border-bottom:none;}
.admit-card__label{font-family:var(--font-mono); font-size:.62rem; letter-spacing:.08em; color:var(--text-muted); text-transform:uppercase;}
.admit-card__value{font-family:var(--font-mono); font-size:.8rem; font-weight:600; color:var(--text);}
.admit-card__value--lg{font-family:var(--font-display); font-size:1.9rem; font-weight:700; color:var(--primary);}
.admit-card__caption{font-family:var(--font-mono); font-size:.65rem; color:var(--text-muted); text-transform:uppercase; letter-spacing:.06em;}
.admit-card__photo{
  width:56px; height:56px; border-radius:10px; background-size:cover; background-position:center;
  margin:6px 0 10px; border:1px solid var(--border);
}
.admit-card__perf{
  position:absolute; left:-6px; top:50%; width:12px; height:12px; border-radius:50%;
  background:var(--bg); transform:translateY(-50%); box-shadow:246px 0 0 var(--bg);
}
.float-card{animation:floaty 6s var(--ease) infinite; animation-delay:var(--delay,0s);}
@keyframes floaty{
  0%,100%{transform:translate(-50%,-50%) rotate(-3deg) translateY(0);}
  50%{transform:translate(-50%,-50%) rotate(-3deg) translateY(-14px);}
}
.admit-card--top.float-card{animation-name:floatyAlt;}
.admit-card--bottom.float-card{animation-name:floatyAlt2;}
@keyframes floatyAlt{0%,100%{transform:rotate(4deg) translateY(0);}50%{transform:rotate(4deg) translateY(-16px);}}
@keyframes floatyAlt2{0%,100%{transform:rotate(-5deg) translateY(0);}50%{transform:rotate(-5deg) translateY(12px);}}

.scroll-indicator{
  position:absolute; bottom:28px; left:50%; transform:translateX(-50%);
  width:26px; height:42px; border:2px solid var(--border); border-radius:20px;
  display:flex; justify-content:center; padding-top:8px; z-index:2;
}
.scroll-indicator span{width:4px; height:8px; border-radius:2px; background:var(--primary); animation:scrollDot 1.6s infinite;}
@keyframes scrollDot{0%{opacity:1; transform:translateY(0);}100%{opacity:0; transform:translateY(14px);}}

@media (max-width:960px){
  .hero__inner{grid-template-columns:1fr; text-align:left;}
  .hero__visual{height:400px; margin-top:20px;}
}

/* ---------- Stats ---------- */
.stats{padding:70px 0; background:var(--surface); border-bottom:1px solid var(--border); border-top:1px solid var(--border);}
.stats__grid{display:grid; grid-template-columns:repeat(5,1fr); gap:24px; text-align:center;}
.stat-card__num{display:block; font-family:var(--font-display); font-size:clamp(1.8rem,3vw,2.6rem); font-weight:700; color:var(--primary);}
.stat-card__label{font-size:.85rem; color:var(--text-muted); font-weight:500;}
@media (max-width:860px){.stats__grid{grid-template-columns:repeat(2,1fr); gap:36px 20px;}}

/* ---------- About ---------- */
.about__grid{display:grid; grid-template-columns:.85fr 1.15fr; gap:70px; align-items:center;}
.about__media{position:relative;}
.about__media img{border-radius:var(--radius-lg); box-shadow:var(--shadow-md);}
.about__media-badge{
  position:absolute; bottom:-24px; right:-24px; background:var(--surface); border:1px solid var(--border);
  border-radius:var(--radius-md); padding:18px 22px; box-shadow:var(--shadow-lg); text-align:center;
}
.about__copy h2{font-size:clamp(1.8rem,3.2vw,2.4rem); margin-bottom:20px;}
.about__copy > p{margin-bottom:28px; font-size:1.02rem;}
.about__pillars{display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-bottom:32px;}
.about__pillar{padding:20px; border-left:2px solid var(--accent); background:rgba(var(--accent-rgb),.05); border-radius:0 12px 12px 0;}
.about__pillar h3{font-size:1rem; margin-bottom:8px;}
.about__pillar p{font-size:.9rem;}
@media (max-width:860px){
  .about__grid{grid-template-columns:1fr; gap:70px;}
  .about__pillars{grid-template-columns:1fr;}
  .about__media-badge{right:8px;}
}

/* ---------- Why choose us ---------- */
.why{background:var(--surface);}
.why__grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
.why-card{
  background:var(--bg); border:1px solid var(--border); border-radius:var(--radius-md); padding:32px 28px;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);
}
.why-card:hover{transform:translateY(-6px); box-shadow:var(--shadow-md); border-color:rgba(var(--primary-rgb),.3);}
.why-card__icon{
  width:52px; height:52px; border-radius:14px; background:rgba(var(--primary-rgb),.1); color:var(--primary);
  display:flex; align-items:center; justify-content:center; margin-bottom:20px;
}
.why-card h3{font-size:1.15rem; margin-bottom:10px;}
.why-card p{font-size:.92rem;}
@media (max-width:860px){.why__grid{grid-template-columns:1fr;}}

/* ---------- Courses ---------- */
.courses__grid{display:grid; grid-template-columns:repeat(4,1fr); gap:26px;}
.course-card{
  background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-md); overflow:hidden;
  transition:transform .4s var(--ease), box-shadow .4s var(--ease);
}
.course-card:hover{transform:translateY(-8px); box-shadow:var(--shadow-md);}
.course-card__img{
  height:150px; background-size:cover; background-position:center; position:relative;
  transition:transform .5s var(--ease);
}
.course-card:hover .course-card__img{transform:scale(1.04);}
.course-card__tag{
  position:absolute; top:14px; left:14px; background:rgba(17,24,39,.72); color:#fff;
  font-size:.68rem; font-weight:600; text-transform:uppercase; letter-spacing:.06em;
  padding:5px 11px; border-radius:999px; backdrop-filter:blur(4px);
}
.course-card__body{padding:22px 22px 24px;}
.course-card__body h3{font-size:1.08rem; margin-bottom:6px;}
.course-card__meta{font-family:var(--font-mono); font-size:.68rem; color:var(--primary); letter-spacing:.02em; display:block; margin-bottom:10px;}
.course-card__body p{font-size:.87rem; margin-bottom:16px; min-height:44px;}
.course-card__cta{font-weight:600; font-size:.88rem; color:var(--primary); display:inline-flex; gap:6px; align-items:center;}
.course-card__cta span{transition:transform .3s var(--ease);}
.course-card:hover .course-card__cta span{transform:translateX(4px);}
@media (max-width:1100px){.courses__grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.courses__grid{grid-template-columns:1fr;}}

/* ---------- Faculty ---------- */
.faculty{background:var(--surface);}
.faculty__grid{display:grid; grid-template-columns:repeat(4,1fr); gap:26px;}
.faculty-card{
  text-align:center; padding:32px 22px; border-radius:var(--radius-md); border:1px solid var(--border);
  transition:transform .35s var(--ease), box-shadow .35s var(--ease);
}
.faculty-card:hover{transform:translateY(-6px); box-shadow:var(--shadow-md);}
.faculty-card__photo{
  width:96px; height:96px; border-radius:50%; background-size:cover; background-position:center;
  margin:0 auto 18px; border:3px solid var(--bg); box-shadow:0 0 0 2px var(--border);
}
.faculty-card h3{font-size:1.05rem; margin-bottom:4px;}
.faculty-card__role{font-size:.78rem; color:var(--primary); font-weight:600; display:block; margin-bottom:12px;}
.faculty-card p{font-size:.85rem; margin-bottom:16px;}
.faculty-card__social{display:flex; justify-content:center; gap:12px;}
.faculty-card__social a{width:32px; height:32px; border-radius:50%; background:rgba(var(--primary-rgb),.08); color:var(--primary); display:flex; align-items:center; justify-content:center;}
.faculty-card__social svg{width:15px; height:15px;}
@media (max-width:1100px){.faculty__grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.faculty__grid{grid-template-columns:1fr;}}

/* ---------- Success stories ---------- */
.success__track-wrap{overflow:hidden; padding:10px 0; -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent); mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);}
.success__track{display:flex; gap:22px; width:max-content; animation:marquee 32s linear infinite;}
.success__track:hover{animation-play-state:paused;}
@keyframes marquee{from{transform:translateX(0);} to{transform:translateX(-50%);}}
.success-card{
  min-width:260px; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-md);
  padding:26px; border-top:3px solid var(--accent);
}
.success-card__exam{font-family:var(--font-mono); font-size:.68rem; text-transform:uppercase; letter-spacing:.06em; color:var(--text-muted); display:block; margin-bottom:8px;}
.success-card__rank{font-family:var(--font-display); font-size:1.5rem; font-weight:700; color:var(--primary); display:block; margin-bottom:10px;}
.success-card p{font-size:.86rem;}

/* ---------- Testimonials ---------- */
.testimonial-slider{position:relative; max-width:720px; margin:0 auto; overflow:hidden;}
.testimonial-track{display:flex; transition:transform .6s var(--ease);}
.testimonial-card{
  min-width:100%; background:rgba(var(--primary-rgb),.04); backdrop-filter:blur(10px);
  border:1px solid rgba(var(--primary-rgb),.15); border-radius:var(--radius-lg);
  padding:40px; text-align:center;
}
.testimonial-card__stars{color:var(--accent); letter-spacing:3px; margin-bottom:18px; font-size:1rem;}
.testimonial-card p{font-size:1.1rem; color:var(--text); font-style:italic; margin-bottom:26px; line-height:1.6;}
.testimonial-card__who{display:flex; align-items:center; justify-content:center; gap:12px;}
.testimonial-card__who img{width:48px; height:48px; border-radius:50%; object-fit:cover;}
.testimonial-card__who div{text-align:left; font-size:.85rem;}
.testimonial-card__who strong{display:block; font-size:.92rem;}
.testimonial-card__who span{color:var(--text-muted);}
.testimonial-dots{display:flex; justify-content:center; gap:8px; margin-top:28px;}
.testimonial-dots button{width:8px; height:8px; border-radius:50%; background:var(--border); transition:all .3s var(--ease);}
.testimonial-dots button.active{width:24px; border-radius:4px; background:var(--primary);}

/* ---------- Process ---------- */
.process__timeline{position:relative; display:grid; grid-template-columns:repeat(5,1fr); gap:26px;}
.process__timeline::before{
  content:''; position:absolute; top:26px; left:5%; right:5%; height:2px; background:var(--border); z-index:0;
}
.process__step{position:relative; z-index:1; background:var(--bg); padding-right:10px;}
.process__num{
  display:flex; align-items:center; justify-content:center; width:52px; height:52px; border-radius:50%;
  background:var(--primary); color:#fff; font-family:var(--font-mono); font-weight:600; font-size:.95rem;
  margin-bottom:20px; box-shadow:0 6px 16px rgba(var(--primary-rgb),.3);
}
.process__step h3{font-size:1.02rem; margin-bottom:8px;}
.process__step p{font-size:.86rem;}
@media (max-width:960px){
  .process__timeline{grid-template-columns:1fr; gap:36px;}
  .process__timeline::before{display:none;}
}

/* ---------- Batches ---------- */
.batches{background:var(--surface);}
.batches__grid{display:grid; grid-template-columns:repeat(4,1fr); gap:24px;}
.batch-card{
  position:relative; background:var(--bg); border:1px solid var(--border); border-radius:var(--radius-md);
  padding:26px; transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.batch-card:hover{transform:translateY(-5px); box-shadow:var(--shadow-md);}
.batch-card__perf{
  position:absolute; top:0; left:24px; right:24px; height:0; border-top:2px dashed var(--border);
}
.batch-card h3{font-size:1rem; margin-bottom:18px; min-height:44px;}
.batch-card__row{display:flex; justify-content:space-between; font-size:.85rem; padding:8px 0; border-bottom:1px solid var(--border);}
.batch-card__row span{color:var(--text-muted);}
.batch-card .btn{margin-top:18px; width:100%;}
@media (max-width:1100px){.batches__grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.batches__grid{grid-template-columns:1fr;}}

/* ---------- Gallery ---------- */
.gallery__grid{
  display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:160px; gap:16px;
}
.gallery__item{
  background-size:cover; background-position:center; border-radius:var(--radius-md);
  position:relative; overflow:hidden; transition:transform .4s var(--ease);
}
.gallery__item::after{
  content:attr(data-caption); position:absolute; inset:auto 0 0 0; padding:14px;
  background:linear-gradient(0deg, rgba(0,0,0,.65), transparent); color:#fff; font-size:.82rem; font-weight:600;
  opacity:0; transition:opacity .3s var(--ease);
}
.gallery__item:hover{transform:scale(1.02);}
.gallery__item:hover::after{opacity:1;}
.gallery__item--tall{grid-row:span 2;}
.gallery__item--wide{grid-column:span 2;}
@media (max-width:860px){
  .gallery__grid{grid-template-columns:repeat(2,1fr); grid-auto-rows:130px;}
  .gallery__item--wide{grid-column:span 2;}
}

/* ---------- FAQ ---------- */
.faq__grid{display:grid; grid-template-columns:.8fr 1.2fr; gap:60px;}
.faq__head p a{color:var(--primary); font-weight:600; text-decoration:underline;}
.accordion__item{border-bottom:1px solid var(--border);}
.accordion__trigger{
  width:100%; display:flex; justify-content:space-between; align-items:center; text-align:left;
  padding:20px 0; font-weight:600; font-size:.98rem; color:var(--text);
}
.accordion__icon{font-size:1.3rem; color:var(--primary); transition:transform .3s var(--ease); flex-shrink:0; margin-left:12px;}
.accordion__trigger[aria-expanded="true"] .accordion__icon{transform:rotate(45deg);}
.accordion__panel{max-height:0; overflow:hidden; transition:max-height .4s var(--ease), padding .4s var(--ease);}
.accordion__panel p{padding-bottom:20px; font-size:.9rem;}
@media (max-width:960px){.faq__grid{grid-template-columns:1fr; gap:36px;}}

/* ---------- Contact ---------- */
.contact{background:var(--surface);}
.contact__grid{display:grid; grid-template-columns:.85fr 1.15fr; gap:60px;}
.contact__list{margin:28px 0 24px; display:flex; flex-direction:column; gap:16px;}
.contact__list li{display:flex; gap:14px; align-items:flex-start; font-size:.92rem; color:var(--text-muted);}
.contact__list svg{width:20px; height:20px; color:var(--primary); flex-shrink:0; margin-top:2px;}
.contact__map{
  height:200px; border-radius:var(--radius-md); background:repeating-linear-gradient(45deg, var(--bg), var(--bg) 10px, var(--border) 10px, var(--border) 11px);
  display:flex; align-items:center; justify-content:center; color:var(--text-muted); font-size:.85rem; font-weight:600;
  border:1px solid var(--border);
}
.contact__form{background:var(--bg); border:1px solid var(--border); border-radius:var(--radius-lg); padding:36px;}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
.form-field{margin-bottom:18px;}
.form-field label{display:block; font-size:.82rem; font-weight:600; margin-bottom:8px;}
.form-field input, .form-field select, .form-field textarea{
  width:100%; padding:13px 14px; border-radius:10px; border:1.5px solid var(--border);
  background:var(--surface); color:var(--text); font-family:inherit; font-size:.92rem;
  transition:border-color .25s var(--ease), box-shadow .25s var(--ease);
}
.form-field input:focus, .form-field select:focus, .form-field textarea:focus{
  outline:none; border-color:var(--primary); box-shadow:0 0 0 4px rgba(var(--primary-rgb),.12);
}
.form-submit{width:100%;}
.form-success{
  margin-top:16px; text-align:center; font-size:.88rem; color:var(--success); font-weight:600;
  opacity:0; height:0; overflow:hidden; transition:opacity .3s var(--ease);
}
.form-success.is-visible{opacity:1; height:auto; margin-top:16px;}
@media (max-width:860px){
  .contact__grid{grid-template-columns:1fr;}
  .form-row{grid-template-columns:1fr;}
}

/* ---------- Footer ---------- */
.footer{background:var(--text); color:#CBD5E1; padding-top:80px;}
[data-theme="dark"] .footer{background:#070B14;}
.footer__grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr 1.2fr; gap:40px; padding-bottom:50px; border-bottom:1px solid rgba(255,255,255,.1);}
.footer__brand p{color:#8894A6; font-size:.88rem; margin:16px 0 20px;}
.footer .nav__logo-text{color:#fff;}
.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; color:#fff;}
.footer__social svg{width:15px; height:15px;}
.footer__col h4{color:#fff; font-size:.9rem; margin-bottom:20px;}
.footer__col{display:flex; flex-direction:column; gap:12px;}
.footer__col a{color:#8894A6; font-size:.88rem; transition:color .25s var(--ease);}
.footer__col a:hover{color:#fff;}
.footer__col--newsletter p{color:#8894A6; font-size:.85rem; margin-bottom:16px;}
.footer__newsletter{display:flex; gap:8px;}
.footer__newsletter input{flex:1; padding:11px 12px; border-radius:8px; border:1px solid rgba(255,255,255,.15); background:rgba(255,255,255,.05); color:#fff; font-family:inherit;}
.footer__newsletter button{width:40px; border-radius:8px; background:var(--primary); color:#fff; font-size:1.1rem;}
.footer__bottom-inner{display:flex; justify-content:space-between; align-items:center; padding:26px 28px; font-size:.82rem; color:#8894A6; flex-wrap:wrap; gap:10px;}
.footer__bottom-inner a{color:#8894A6;}
.footer__legal{display:flex; gap:20px;}
@media (max-width:960px){.footer__grid{grid-template-columns:1fr 1fr; gap:36px;}}
@media (max-width:560px){.footer__grid{grid-template-columns:1fr;}}

/* ---------- Floating action buttons ---------- */
.fab{position:fixed; z-index:800; display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-md); transition:transform .3s var(--ease);}
.fab:hover{transform:translateY(-3px);}
.fab--whatsapp{bottom:24px; left:24px; width:56px; height:56px; border-radius:50%; background:#25D366; color:#fff;}
.fab--whatsapp svg{width:28px; height:28px;}
.fab--enroll{
  bottom:24px; right:96px; background:var(--primary); color:#fff; font-weight:600; font-size:.88rem;
  padding:14px 22px; border-radius:999px; display:none;
}
.fab--enroll.is-visible{display:flex;}
.fab--top{
  bottom:24px; right:24px; width:48px; height:48px; border-radius:50%; background:var(--surface);
  border:1px solid var(--border); color:var(--text); opacity:0; visibility:hidden; transform:translateY(10px);
}
.fab--top.is-visible{opacity:1; visibility:visible; transform:translateY(0);}
@media (max-width:640px){
  .fab--enroll{right:24px; bottom:90px;}
  .fab--top{bottom:90px; right:24px;}
  .fab--whatsapp{bottom:24px;}
}

/* ---------- Lightbox ---------- */
.lightbox{
  position:fixed; inset:0; background:rgba(5,8,16,.92); z-index:1300; display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden; transition:opacity .35s var(--ease), visibility .35s var(--ease);
}
.lightbox.is-visible{opacity:1; visibility:visible;}
.lightbox img{max-width:82vw; max-height:74vh; border-radius:12px; box-shadow:var(--shadow-lg);}
.lightbox__caption{color:#fff; margin-top:16px; font-size:.9rem;}
.lightbox__close{position:absolute; top:28px; right:32px; color:#fff; font-size:2rem;}
.lightbox__nav{position:absolute; top:50%; transform:translateY(-50%); color:#fff; font-size:2.6rem; width:56px; height:56px; display:flex; align-items:center; justify-content:center;}
.lightbox__nav--prev{left:16px;}
.lightbox__nav--next{right:16px;}

/* ---------- Scroll reveal ---------- */
.reveal-up, .reveal-left, .reveal-right{opacity:0; transition:opacity .8s var(--ease), transform .8s var(--ease); transition-delay:var(--delay,0s);}
.reveal-up{transform:translateY(36px);}
.reveal-left{transform:translateX(-36px);}
.reveal-right{transform:translateX(36px);}
.reveal-up.is-visible, .reveal-left.is-visible, .reveal-right.is-visible{opacity:1; transform:none;}

/* ---------- Custom scrollbar ---------- */
::-webkit-scrollbar{width:10px;}
::-webkit-scrollbar-track{background:var(--bg);}
::-webkit-scrollbar-thumb{background:var(--border); border-radius:10px;}
::-webkit-scrollbar-thumb:hover{background:var(--primary);}

/* ---------- Cursor (desktop only) ---------- */
.cursor-dot, .cursor-ring{
  position:fixed; top:0; left:0; pointer-events:none; z-index:1400; border-radius:50%;
  transform:translate(-50%,-50%); mix-blend-mode:difference;
}
.cursor-dot{width:6px; height:6px; background:#fff;}
.cursor-ring{width:34px; height:34px; border:1.5px solid #fff; transition:width .2s var(--ease), height .2s var(--ease), opacity .2s var(--ease);}
@media (hover:none), (max-width:960px){.cursor-dot, .cursor-ring{display:none;}}
