/* ============================================================
   CC Academy — Homepage styles (redesign)
   Dark theme · Montserrat · pink accent
   ============================================================ */

:root{
  --bg:            #0e0e0e;
  --card:          #131313;
  --card-2:        #1b1b1b;
  --border:        #313235;
  --border-soft:   #1b1b1b;
  --footer:        #0c0c0c;
  --footer-bar:    #0a0a0a;
  --white:         #ffffff;
  --muted:         #dedede;
  --grey:          #505764;
  --pink:          #ec008c;
  --pink-2:        #fc6767;
  --grad:          linear-gradient(90deg,#ec008c 0%,#fc6767 100%);
  --dot-off:       #ce1b3a;
  --dot-on:        #60e01f;
  --radius:        20px;
  --container:     1440px;
  --pad:           64px;
  --font:          "Montserrat","Noto Sans Armenian",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}

*{ box-sizing:border-box; margin:0; padding:0; }

html{ scroll-behavior:smooth; }

body{
  background:var(--bg);
  color:var(--white);
  font-family:var(--font);
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

a{ color:inherit; text-decoration:none; }
img{ display:block; max-width:100%; }
ul{ list-style:none; }

.container{
  max-width:var(--container);
  margin:0 auto;
  padding-left:var(--pad);
  padding-right:var(--pad);
}

.section-title{
  font-size:40px;
  font-weight:500;
  line-height:1.1;
  color:var(--white);
}
.eyebrow{
  display:block;
  text-align:center;
  font-size:19px;
  font-weight:300;
  letter-spacing:.14em;
  color:var(--white);
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  height:49px;
  padding:0 24px;
  border-radius:12px;
  font-family:var(--font);
  font-size:14px;
  font-weight:600;
  color:var(--white);
  cursor:pointer;
  border:none;
  white-space:nowrap;
  transition:transform .2s ease, filter .2s ease, background .2s ease;
}
.btn--primary{ background:var(--grad); }
.btn--primary:hover{ filter:brightness(1.08); transform:translateY(-1px); }
.btn--ghost{
  background:transparent;
  box-shadow:inset 0 0 0 1px var(--border);
  height:52px;
}
.btn--ghost:hover{ box-shadow:inset 0 0 0 1px var(--grey); background:rgba(255,255,255,.02); }
.btn svg{ width:20px; height:20px; flex-shrink:0; }

/* ============================================================
   NAV
   ============================================================ */
.site-nav{
  position:fixed;
  top:36px; left:0; right:0;
  z-index:40;
}
.site-nav .container{
  display:flex;
  align-items:center;
  gap:20px;
}
.nav-pill{
  background:rgba(255,255,255,.02);
  -webkit-backdrop-filter:blur(60px);
  backdrop-filter:blur(60px);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.1);
  border-radius:20px;
  height:64px;
}
.nav-main{
  flex:1;
  display:flex;
  align-items:center;
  gap:57px;
  padding:14px 25px;
}
.nav-logo{ display:flex; align-items:center; flex-shrink:0; }
.nav-logo img{ height:30px; width:auto; }
.nav-links{
  flex:1;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:57px;
}
.nav-links a, .nav-links .nav-item{
  font-size:14px; font-weight:400; color:#fff;
  display:inline-flex; align-items:center; gap:8px;
  cursor:pointer; white-space:nowrap;
  transition:color .2s ease;
}
.nav-links a:hover, .nav-links .nav-item:hover{ color:var(--pink); }
.pro-badge{
  height:16px; width:34px; color:#fff;
}
.pro-badge svg{ width:34px; height:16px; display:block; }
.chev{ width:10px; height:6px; transition:transform .25s ease; }
.chev path{ stroke:var(--grey); stroke-width:1.5; fill:none; }

/* ---- Dropdowns (nav "Այլ" + language) ---- */
.nav-right{
  flex-shrink:0;
  width:313px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:12px;
}
.lang{
  flex:1;
  display:flex; align-items:center; justify-content:center;
  height:100%;
  cursor:pointer;
}
.has-dropdown{ position:relative; }
.nav-item.has-dropdown{ flex-direction:column; align-items:flex-start; }
.nav-item__label{ display:inline-flex; align-items:center; gap:8px; }
.dropdown{
  position:absolute;
  top:100%; left:0;
  padding-top:16px;                 /* transparent bridge — keeps hover alive */
  opacity:0; visibility:hidden;
  transform:translateY(6px);
  transition:opacity .22s ease, transform .22s ease, visibility .22s;
  z-index:20;
}
.dropdown--lang{ left:auto; right:0; transform:translateY(6px); }
.nav-item.has-dropdown .dropdown{ left:auto; right:0; }
.dropdown__inner{
  background:#151515;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.1), 0 20px 40px rgba(0,0,0,.5);
  border-radius:12px;
  padding:6px;
  min-width:190px;
}
.dropdown--lang .dropdown__inner{ min-width:150px; }
.dropdown__inner a{
  display:flex; align-items:center; gap:10px;
  padding:9px 12px; border-radius:8px; font-size:14px; color:#fff;
  white-space:nowrap;
  transition:background .18s ease, color .18s ease;
}
.dropdown__inner a:hover{ background:rgba(255,255,255,.06); color:var(--pink); }
.dropdown__inner a.active{ color:var(--pink); }
.dropdown__inner img{ width:22px; height:15px; border-radius:2px; object-fit:cover; flex-shrink:0; }
.has-dropdown:hover .dropdown,
.has-dropdown.is-open .dropdown{ opacity:1; visibility:visible; transform:translateY(0); }
.has-dropdown:hover .chev,
.has-dropdown.is-open .chev{ transform:rotate(180deg); }

.lang__current{ display:flex; align-items:center; gap:8px; }
.lang__current img{ width:20px; height:14px; border-radius:2px; object-fit:cover; }
.lang__current span{ font-size:14px; }

.hamburger{ display:none; width:28px; height:20px; flex-direction:column; justify-content:space-between; cursor:pointer; }
.hamburger span{ height:2px; background:#fff; border-radius:2px; transition:.3s; transform-origin:center; }
.hamburger.is-active span:nth-child(1){ transform:translateY(9px) rotate(45deg); }
.hamburger.is-active span:nth-child(2){ opacity:0; }
.hamburger.is-active span:nth-child(3){ transform:translateY(-9px) rotate(-45deg); }

/* ============================================================
   HERO
   ============================================================ */
.hero{ padding-top:130px; }
.hero-card{
  position:relative;
  height:720px;
  border-radius:30px;
  overflow:hidden;
  background:#fff;
}
.hero-card__bg{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  background:url(../../img/hero.png) center/cover no-repeat;
}
.hero-card__overlay{
  position:absolute; inset:0;
  background:rgba(0,0,0,.8);
}
.hero-content{
  position:relative; z-index:2;
  height:100%;
  display:flex; flex-direction:column; justify-content:center;
  gap:14px;
  padding:0 64px;
  max-width:760px;
}
.hero-welcome{
  font-size:20px; font-weight:700; letter-spacing:.02em;
  text-transform:uppercase;
}
.hero-title{
  font-size:52px; font-weight:700; line-height:1.05;
  color:var(--pink);
  letter-spacing:.01em;
  text-transform:uppercase;
}
.hero-sub{
  font-size:40px; font-weight:300; line-height:1.18; color:#fff;
  text-transform:uppercase;
}
.hero-sub b{ color:#fff; font-weight:700; font-size:48px; }
.hero-scroll{
  position:absolute; left:52px; bottom:38px; z-index:2;
  width:30px; height:48px;
  border:2px solid rgba(255,255,255,.65);
  border-radius:16px;
  display:flex; justify-content:center;
  padding-top:9px;
  box-sizing:border-box;
}
.hero-scroll .wheel{
  width:4px; height:9px; border-radius:2px;
  background:#fff;
  animation:wheel 1.7s cubic-bezier(.4,0,.2,1) infinite;
}
@keyframes wheel{
  0%{ opacity:0; transform:translateY(0); }
  15%{ opacity:1; }
  55%{ opacity:1; transform:translateY(14px); }
  60%,100%{ opacity:0; transform:translateY(14px); }
}

/* ============================================================
   MARQUEE
   ============================================================ */
.marquee{
  overflow:hidden;
  padding:30px 0;
  display:flex;
}
.marquee__track{
  display:flex; align-items:center; gap:40px;
  white-space:nowrap;
  animation:marquee 30s linear infinite;
  flex-shrink:0;
  padding-right:40px;
}
.marquee__track span{
  font-size:24px; font-weight:600; letter-spacing:.02em; color:#fff;
}
.marquee__track .star{ width:16px; height:16px; flex-shrink:0; color:var(--pink); }
@keyframes marquee{ to{ transform:translateX(-100%); } }

/* ============================================================
   COURSES
   ============================================================ */
.courses{ padding-top:36px; }
.courses .eyebrow{ margin-bottom:44px; }
.courses-page{ padding-top:160px; padding-bottom:100px; }
.courses-page__title{ font-size:52px; font-weight:600; color:#fff; margin-bottom:12px; }
.courses-page__sub{ font-size:16px; font-weight:300; color:#b7b8bd; line-height:1.5; max-width:640px; margin-bottom:44px; }
.courses-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:20px;
}
.course-card{
  position:relative;
  height:396px;
  border-radius:30px;
  background:var(--card);
  box-shadow:inset 0 0 0 1px var(--border);
  padding:24px;
  display:flex; flex-direction:column; justify-content:space-between;
  overflow:hidden;
  transition:box-shadow .4s ease;
}
.course-card::before{
  content:"";
  position:absolute; inset:0;
  border-radius:30px;
  padding:1.5px;
  background:linear-gradient(90deg, #ec008c 0%, #fc6767 30%, rgba(0,0,0,0) 72%);
  background-size:220% 100%;
  background-position:135% 0;
  background-repeat:no-repeat;
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
          mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude;
  opacity:0;
  transition:opacity .5s ease, background-position 1.1s cubic-bezier(.16,.84,.34,1);
  pointer-events:none;
  z-index:3;
}
.course-card:hover{ box-shadow:inset 0 0 0 1px transparent; }
.course-card:hover::before{ opacity:1; background-position:-12% 0; }
.course-card__shape{
  position:absolute; right:16px; bottom:24px;
  width:128px; height:128px;
  opacity:.9;
  pointer-events:none;
  transform:rotate(0deg);
  transform-origin:50% 50%;
  transition:transform 1s cubic-bezier(.16,.84,.34,1);
}
.course-card:hover .course-card__shape{ transform:rotate(45deg); }
.status-row{ display:flex; align-items:center; gap:15px; }
.status{ display:flex; align-items:center; gap:6px; font-size:11px; font-weight:500; letter-spacing:.02em; }
.status .dot{ width:8px; height:8px; border-radius:50%; }
.status.off .dot{ background:var(--dot-off); }
.status.on  .dot{ background:var(--dot-on); }
.status-sep{ width:1px; height:15px; background:var(--border); }
.course-card__body{ display:flex; flex-direction:column; gap:16px; }
.course-card__name{ font-size:24px; font-weight:500; line-height:1.25; }
.chip{
  align-self:flex-start;
  background:var(--card-2);
  border-radius:4px;
  padding:4px 8px;
  font-size:14px; font-weight:300;
}
.course-card__more{ display:inline-flex; align-items:center; gap:4px; font-size:13px; font-weight:300; }
.course-card__more svg{ width:6px; height:10px; }
.course-card__more svg path{ stroke:#fff; stroke-width:1.5; fill:none; }
.course-card:hover .course-card__more{ color:var(--pink); }
.course-card:hover .course-card__more svg path{ stroke:var(--pink); }

/* ============================================================
   WHY / FEATURES
   ============================================================ */
.why{ padding-top:100px; }
.why .section-title{ margin-bottom:40px; }
.why-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}
.feature-card{
  background:var(--card);
  box-shadow:inset 0 0 0 1px var(--border-soft);
  border-radius:24px;
  padding:24px;
  display:flex; flex-direction:column; gap:16px;
}
.feature-card__icon{
  width:44px; height:44px; border-radius:50%;
  background:rgba(236,0,140,.12);
  display:flex; align-items:center; justify-content:center;
  color:var(--pink);
  flex-shrink:0;
}
.feature-card__icon svg{ width:22px; height:22px; }
.feature-card h3{ font-size:20px; font-weight:600; }
.feature-card p{ font-size:14px; font-weight:400; line-height:1.6; color:var(--muted); }
.feature-card.tall{ grid-row:span 2; height:100%; }
.feature-card.tall p{ color:var(--muted); }
.feature-card--accent{
  background:
    linear-gradient(#181118,#131015) padding-box,
    var(--grad) border-box;
  border:1.5px solid transparent; box-shadow:none;
}
.feature-card--accent .feature-card__icon{
  width:52px; height:52px; border-radius:14px;
  background:var(--grad); color:#fff;
}
.feature-card--accent .feature-card__icon svg{ width:26px; height:26px; }

/* ============================================================
   PORTFOLIO
   ============================================================ */
.portfolio{ padding-top:100px; }
.portfolio-box{
  position:relative;
  height:490px;
  border-radius:20px;
  overflow:hidden;
  box-shadow:inset 0 0 0 1px var(--border-soft);
}
.portfolio-box__text{
  position:absolute; left:64px; top:92px;
  width:538px;
  display:flex; flex-direction:column; gap:34px; align-items:flex-start;
}
.portfolio-box__text h2{ font-size:40px; font-weight:500; line-height:1.05; }
.portfolio-box__text p{ font-size:14px; line-height:1.6; color:var(--muted); }
.portfolio-box__img{
  position:absolute; right:0; top:0; bottom:0;
  width:646px;
  background:url(../../img/portfolio.png) center/cover no-repeat;
}

/* ============================================================
   STORIES
   ============================================================ */
.stories{ padding-top:100px; }
.stories .section-title{ margin-bottom:40px; }
.stories-scroller{
  overflow-x:auto;
  overflow-y:hidden;
  scroll-snap-type:x mandatory;
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  padding-top:6px;
  cursor:grab;
}
.stories-scroller.is-dragging{ cursor:grabbing; scroll-snap-type:none; }
.stories-scroller::-webkit-scrollbar{ display:none; }
.stories-track{
  display:flex; gap:20px;
  padding-bottom:10px;
}
.story-card{
  position:relative;
  flex:0 0 313px;
  scroll-snap-align:start;
  height:448px;
  border-radius:20px;
  overflow:hidden;
  scroll-snap-align:start;
  background:#111;
  border:none; padding:0; margin:0;
  cursor:pointer;
  font-family:inherit; text-align:left; color:#fff;
  transition:transform .3s ease;
}
.story-card:hover{ transform:translateY(-4px); }
.story-card__play{
  position:absolute; top:50%; left:50%; z-index:3;
  transform:translate(-50%,-50%);
  width:60px; height:60px; border-radius:50%;
  background:rgba(0,0,0,.45);
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.4);
  display:flex; align-items:center; justify-content:center;
  color:#fff;
  transition:transform .3s ease, background .3s ease;
}
.story-card__play svg{ width:26px; height:26px; margin-left:3px; }
.story-card:hover .story-card__play{ transform:translate(-50%,-50%) scale(1.1); background:var(--pink); box-shadow:none; }
.story-card img{ width:100%; height:100%; object-fit:cover; }
.story-card::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,0) 50%,rgba(0,0,0,.6) 100%);
}
.story-card__name{
  position:absolute; left:20px; top:369px; z-index:2;
  font-size:20px; font-weight:300; color:#fff;
}
.story-card__role{
  position:absolute; left:20px; top:403px; z-index:2;
  background:var(--card-2);
  border-radius:4px; padding:4px 8px;
  font-size:14px; font-weight:300;
}

/* ---------- Story video modal ---------- */
.story-modal{
  position:fixed; inset:0; z-index:100;
  display:none; align-items:center; justify-content:center;
  padding:24px;
}
.story-modal.is-open{ display:flex; }
.story-modal__backdrop{ position:absolute; inset:0; background:rgba(0,0,0,.8); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); }
.story-modal__box{
  position:relative; z-index:2;
  width:min(420px,90vw);
  aspect-ratio:9/16; max-height:88vh;
  border-radius:20px; overflow:hidden;
  background:#000;
  box-shadow:0 30px 80px rgba(0,0,0,.6), inset 0 0 0 1px rgba(255,255,255,.1);
}
.story-modal__box video{ width:100%; height:100%; object-fit:cover; display:block; }
.story-modal__close{
  position:absolute; top:12px; right:12px; z-index:3;
  width:40px; height:40px; border-radius:50%;
  border:none; cursor:pointer;
  background:rgba(0,0,0,.5); color:#fff;
  font-size:24px; line-height:1;
  display:flex; align-items:center; justify-content:center;
  transition:background .2s;
}
.story-modal__close:hover{ background:var(--pink); }

/* ============================================================
   TRAINERS
   ============================================================ */
.trainers{ padding-top:100px; }
.trainers .section-title{ margin-bottom:40px; }
.trainers-track{
  display:flex; gap:20px;
  width:max-content;
  padding-bottom:10px;
}
.trainer-card{
  position:relative;
  flex:0 0 424px;
  height:461px;
  border-radius:20px;
  overflow:hidden;
  box-shadow:inset 0 0 0 1px var(--border-soft);
}
.trainer-card__img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.trainer-card__grad{
  position:absolute; left:0; right:0; bottom:0; height:171px;
  background:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.95) 80%);
}
.trainer-badge{
  position:absolute; left:24px; top:24px; z-index:2;
  display:flex; align-items:center; gap:8px;
}
.trainer-badge svg{ width:24px; height:24px; color:var(--pink); flex-shrink:0; }
.trainer-badge .yr{ font-family:"Montserrat",sans-serif; }
.trainer-badge .yr b{ display:block; font-size:16px; font-weight:700; letter-spacing:.05em; }
.trainer-badge .yr span{ display:block; font-size:14px; font-weight:200; letter-spacing:.05em; }
.trainer-card__name{
  position:absolute; left:24px; bottom:44px; z-index:2;
  font-family:"Montserrat",sans-serif;
  font-size:24px; font-weight:700; letter-spacing:.05em; color:#fdfdfd;
}
.trainer-card__role{
  position:absolute; left:24px; bottom:20px; z-index:2;
  font-family:"Montserrat",sans-serif;
  font-size:16px; font-weight:300; letter-spacing:.05em; color:#fff;
}

/* ============================================================
   PARTNERS
   ============================================================ */
.partners{ padding-top:100px; }
.partners + .site-footer{ margin-top:100px; }
.partners-title{ text-align:center; margin-bottom:10px; }
.partners-text{
  text-align:center; color:var(--faint,#9a9aa5); max-width:640px;
  margin:0 auto 40px; font-size:15px; line-height:1.6;
}
.partners-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:20px;
}
.partners-marquee{ display:flex; overflow:hidden; gap:20px; }
.partners-track{
  display:flex; align-items:center; gap:20px;
  width:max-content;
  animation:marquee 26s linear infinite;
}
.partners-marquee:hover .partners-track{ animation-play-state:paused; }
.partners-track .partner-card{ width:220px; flex-shrink:0; }
.partner-card{
  height:80px;
  border-radius:20px;
  background:var(--card);
  box-shadow:inset 0 0 0 1px var(--border-soft);
  display:flex; align-items:center; justify-content:center;
}
.partner-card img{ max-height:40px; width:auto; }
.partner-card .txt{ font-size:22px; font-weight:700; letter-spacing:.02em; }
.partner-card .txt span{ color:var(--pink); }

/* ============================================================
   CTA
   ============================================================ */
.cta{ padding:120px 0; }
.cta-inner{
  max-width:906px; margin:0 auto;
  display:flex; flex-direction:column; align-items:center; gap:28px;
  text-align:center;
}
.cta-inner h2{ font-size:40px; font-weight:500; line-height:1.1; }
.cta-inner p{ font-size:16px; font-weight:400; line-height:1.5; }

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{ background:var(--footer); }
.footer-top{
  display:flex; gap:134px;
  padding:40px 64px;
}
.footer-brand{ width:314px; flex-shrink:0; display:flex; flex-direction:column; gap:24px; }
.footer-brand .flogo{ display:flex; align-items:center; }
.footer-brand .flogo img{ height:40px; width:auto; }
.footer-brand p{ font-size:14px; line-height:1.45; color:#fff; }
.footer-col{ display:flex; flex-direction:column; gap:14px; }
.footer-col .title{ font-size:14px; font-weight:600; margin-bottom:4px; color:#fff; }
.footer-col a, .footer-col span{ font-size:14px; font-weight:300; color:#cfcfcf; line-height:1.5; }
.footer-col a{ transition:color .2s; }
.footer-col a:hover{ color:var(--pink); }
.footer-bar{
  background:var(--footer-bar);
  padding:10px 64px;
}
.footer-bar__inner{
  display:flex; align-items:center; justify-content:space-between; gap:24px;
  min-height:48px;
}
.footer-bar__left{ display:flex; align-items:center; gap:24px; }
.footer-bar__left .copy{ font-size:14px; }
.footer-bar__left .bullet{ width:4px; height:4px; border-radius:50%; background:#d9d9d9; }
.footer-bar__socials{ display:flex; align-items:center; gap:24px; }
.footer-bar__socials a{ font-size:14px; transition:color .2s; }
.footer-bar__socials a:hover{ color:var(--pink); }
.footer-bar__right{ display:flex; align-items:center; gap:7px; font-size:14px; white-space:nowrap; }
.footer-bar__right b{ color:var(--pink); font-weight:600; }

/* ============================================================
   COURSE SINGLE PAGE
   ============================================================ */
.course-hero{ padding-top:130px; }
.course-hero__card{
  position:relative;
  height:720px;
  border-radius:30px;
  overflow:hidden;
  background:var(--card);
  box-shadow:inset 0 0 0 1px var(--border-soft);
  padding:157px 80px 0;
}
.course-hero__grid{
  position:absolute; inset:0;
  opacity:.10;
  background-image:
    linear-gradient(to right, #8a8a8a .5px, transparent .5px),
    linear-gradient(to bottom, #8a8a8a .5px, transparent .5px);
  background-size:120px 120px;
  pointer-events:none;
}
.course-hero__badges{
  position:absolute; top:48px; right:64px;
  display:flex; align-items:center; gap:15px; z-index:2;
}
.course-hero__title{
  position:relative; z-index:2;
  font-size:96px; font-weight:700; line-height:1; letter-spacing:.02em;
  color:#fff;
  max-width:720px;
}
.course-hero__lead{
  position:relative; z-index:2;
  max-width:600px;
  margin-top:24px;
  font-size:16px; font-weight:300; line-height:1.6;
  color:#dcdcdc;
}
.course-hero__cta{ position:relative; z-index:2; margin-top:34px; }
.course-hero__cta .btn{ height:45px; }
.course-hero__schedule{ position:relative; z-index:2; margin-top:28px; max-width:640px; }
.schedule__label{
  display:block; font-size:13px; font-weight:600; letter-spacing:.02em;
  color:#b7b8bd; margin-bottom:12px;
}
.schedule-chips{ display:flex; flex-wrap:wrap; gap:10px; }
.schedule-chip{ position:relative; cursor:pointer; }
.schedule-chip input{ position:absolute; opacity:0; pointer-events:none; }
.schedule-chip span{
  display:inline-flex; align-items:center;
  height:44px; padding:0 18px;
  border-radius:12px;
  font-size:14px; font-weight:500; color:#fff;
  background:rgba(255,255,255,.03);
  box-shadow:inset 0 0 0 1px var(--border);
  transition:box-shadow .2s, background .2s, color .2s;
  white-space:nowrap;
}
.schedule-chip:hover span{ box-shadow:inset 0 0 0 1px var(--grey); }
.schedule-chip input:checked + span{
  background:
    linear-gradient(#141013,#120e11) padding-box,
    var(--grad) border-box;
  box-shadow:none; border:1.5px solid transparent;
  color:#fff;
}
.course-scroll{
  position:absolute; left:52px; bottom:38px; z-index:2;
  width:30px; height:48px;
  border:2px solid rgba(255,255,255,.65);
  border-radius:16px;
  display:flex; justify-content:center;
  padding-top:9px;
  box-sizing:border-box;
}
.course-scroll .wheel{
  width:4px; height:9px; border-radius:2px; background:#fff;
  animation:scrollWheel 1.8s ease-in-out infinite;
}
.course-hero__stats{
  position:absolute; right:64px; bottom:40px; z-index:2;
  display:flex; align-items:center; gap:48px;
  height:64px; padding:14px 25px;
  border-radius:20px;
  background:rgba(255,255,255,.02);
  -webkit-backdrop-filter:blur(60px); backdrop-filter:blur(60px);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);
}
.stat{ display:flex; align-items:center; gap:13px; }
.stat svg{ width:24px; height:24px; color:var(--pink); flex-shrink:0; }
.stat__label{ font-size:16px; font-weight:500; color:#fff; line-height:1; }
.stat__value{ font-size:16px; font-weight:200; color:#fff; line-height:1; margin-top:3px; }

/* --- two-column body --- */
.course-body{ padding-top:52px; }
.course-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) 400px;
  gap:20px;
  align-items:start;
}
.course-col-left{ display:flex; flex-direction:column; gap:38px; min-width:0; }
.panel{
  border-radius:20px;
  box-shadow:inset 0 0 0 1px var(--border);
  padding:32px;
  min-width:0;
}
.panel__title{ font-size:20px; font-weight:600; color:var(--white); margin-bottom:16px; }
.panel__text{ font-size:14px; font-weight:400; line-height:30px; color:#e3e9fe; }

.topics-list{ display:flex; flex-direction:column; gap:12px; margin-top:0; max-height:396px; overflow-y:auto; padding-right:12px; }
.topics-list::-webkit-scrollbar{ width:8px; }
.topics-list::-webkit-scrollbar-track{ background:transparent; }
.topics-list::-webkit-scrollbar-thumb{ background:var(--border); border-radius:40px; }
.topics-list::-webkit-scrollbar-thumb:hover{ background:var(--grey); }
.topics-list{ scrollbar-width:thin; scrollbar-color:var(--border) transparent; }
.topic-row{
  display:flex; align-items:center; gap:16px;
  border-radius:26px;
  box-shadow:inset 0 0 0 1px var(--border);
  padding:16px;
}
.topic-row__num{ font-size:14px; font-weight:700; color:#e3e9fe; white-space:nowrap; }
.topic-row__text{ font-size:14px; font-weight:400; line-height:1.4; color:#e3e9fe; }

/* --- trainer detail card --- */
.trainer-detail{
  border-radius:20px;
  box-shadow:inset 0 0 0 1px var(--border);
  padding:40px 20px;
  display:flex; flex-direction:column; align-items:center; gap:24px;
  position:relative;
}
.trainer-detail__badge{
  position:absolute; left:20px; top:20px;
  display:flex; align-items:center; gap:8px;
}
.trainer-detail__badge svg{ width:24px; height:24px; color:var(--pink); }
.trainer-detail__badge b{ display:block; font-size:16px; font-weight:700; letter-spacing:.05em; }
.trainer-detail__badge span{ display:block; font-size:12px; font-weight:200; letter-spacing:.05em; }
.trainer-detail__avatar{ width:128px; height:128px; border-radius:50%; object-fit:cover; }
.trainer-detail__name{ font-size:24px; font-weight:400; letter-spacing:.05em; color:#fdfdfd; text-align:center; }
.trainer-detail__role{ font-size:16px; font-weight:300; letter-spacing:.05em; color:#fff; text-align:center; margin-top:6px; }
.trainer-detail__bio{ font-size:14px; font-weight:400; line-height:30px; color:#e3e9fe; text-align:center; }
.trainer-detail__exp{ width:100%; display:flex; flex-direction:column; gap:13px; }
.exp-item{ display:flex; flex-direction:column; }
.exp-item .company{ font-size:16px; line-height:30px; color:#e3e9fe; }
.exp-item .position{ font-size:16px; line-height:30px; color:#6a6b6e; }
.exp-divider{ height:1px; background:var(--border); width:100%; }
.trainer-detail__socials{ display:flex; gap:19px; }
.trainer-detail__socials a{
  width:56px; height:56px; border-radius:50%;
  box-shadow:inset 0 0 0 1px var(--border);
  display:flex; align-items:center; justify-content:center;
  font-size:20px; font-weight:500; color:#fff;
  transition:background .2s, box-shadow .2s;
}
.trainer-detail__socials a:hover{ background:var(--pink); box-shadow:none; }

/* --- admissions (open groups with progress) --- */
.admissions{ padding-top:100px; }
.admissions .section-title{ margin-bottom:8px; }
.admissions__sub{ font-size:14px; color:#b7b8bd; margin-bottom:40px; }
.admissions-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.admission-card{
  border-radius:20px;
  box-shadow:inset 0 0 0 1px var(--border);
  background:var(--card);
  padding:28px;
  display:flex; flex-direction:column; gap:20px;
}
.admission-card__top{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
.admission-card__title{ font-size:20px; font-weight:600; color:#fff; }
.admission-card__badge{
  font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase;
  color:#fff; background:rgba(236,0,140,.18);
  padding:5px 10px; border-radius:20px; white-space:nowrap;
}
.admission-card__meta{ display:flex; flex-direction:column; gap:9px; }
.admission-meta{ display:flex; align-items:center; gap:9px; font-size:14px; color:#dedede; }
.admission-meta svg{ width:16px; height:16px; color:var(--pink); flex-shrink:0; }
.admission-progress{ display:flex; flex-direction:column; gap:9px; }
.admission-progress__track{
  height:8px; border-radius:40px;
  background:rgba(255,255,255,.06); overflow:hidden;
}
.admission-progress__track span{
  display:block; height:100%; border-radius:40px;
  background:var(--grad); transition:width .6s ease;
}
.admission-progress__label{ font-size:13px; color:#b7b8bd; }
.admission-progress__label b{ color:#fff; font-weight:600; }
.admission-card.is-full .admission-progress__track span{ background:var(--grey); }
.admission-card .btn{ margin-top:auto; }
.admission-card .btn[disabled]{ opacity:.5; cursor:not-allowed; }

/* --- register modal --- */
.reg-modal{ position:fixed; inset:0; z-index:120; display:none; align-items:center; justify-content:center; padding:24px; }
.reg-modal.is-open{ display:flex; }
.reg-modal__backdrop{ position:absolute; inset:0; background:rgba(0,0,0,.8); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); }
.reg-modal__box{
  position:relative; z-index:2;
  width:min(520px,100%); max-height:92vh; overflow-y:auto;
  border-radius:24px;
  background:
    linear-gradient(#141013,#111013) padding-box,
    var(--grad) border-box;
  border:1.5px solid transparent;
  box-shadow:0 30px 80px rgba(0,0,0,.6);
  padding:36px;
  scrollbar-width:thin; scrollbar-color:var(--border) transparent;
}
.reg-modal__box::-webkit-scrollbar{ width:8px; }
.reg-modal__box::-webkit-scrollbar-track{ background:transparent; }
.reg-modal__box::-webkit-scrollbar-thumb{ background:var(--border); border-radius:40px; }
.reg-modal__box::-webkit-scrollbar-thumb:hover{ background:var(--grey); }
.reg-modal__close{
  position:absolute; top:18px; right:18px;
  width:38px; height:38px; border-radius:50%;
  border:none; cursor:pointer; background:rgba(255,255,255,.06); color:#fff;
  font-size:22px; line-height:1; display:flex; align-items:center; justify-content:center;
  transition:background .2s;
}
.reg-modal__close:hover{ background:var(--pink); }
.reg-modal__title{ font-size:26px; font-weight:700; color:#fff; margin-bottom:8px; }
.reg-modal__sub{ font-size:14px; font-weight:300; line-height:1.5; color:#b7b8bd; margin-bottom:26px; }
.reg-field{ margin-bottom:18px; }
.reg-field__label{ display:block; font-size:13px; font-weight:500; color:#c9cacf; margin-bottom:8px; }
.reg-field input, .reg-field select{
  width:100%; height:50px; padding:0 16px;
  border-radius:12px; border:none;
  background:rgba(255,255,255,.04);
  box-shadow:inset 0 0 0 1px var(--border);
  color:#fff; font-family:inherit; font-size:15px;
  transition:box-shadow .2s;
  -webkit-appearance:none; appearance:none;
}
.reg-field select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23888' stroke-width='1.6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 16px center; padding-right:40px; cursor:pointer;
}
.reg-field select option{ color:#111; background:#fff; }
.reg-field input::placeholder{ color:#6b6c72; }
.reg-field input:focus, .reg-field select:focus{ outline:none; box-shadow:inset 0 0 0 1.5px var(--pink); }
.reg-field.has-error input, .reg-field.has-error select{ box-shadow:inset 0 0 0 1.5px #ff4d67; }
.reg-field__err{ display:none; font-size:12px; color:#ff6b7f; margin-top:6px; }
.reg-field.has-error .reg-field__err{ display:block; }
.reg-times{ display:flex; flex-wrap:wrap; gap:10px; }
.reg-times:empty::before{ content:attr(data-empty); font-size:13px; color:#6b6c72; }
/* package segmented control */
.reg-pkg{ display:flex; gap:10px; }
.reg-pkg-opt{ position:relative; cursor:pointer; flex:1; }
.reg-pkg-opt input{ position:absolute; opacity:0; width:0; height:0; }
.reg-pkg-opt span{
  display:flex; align-items:center; justify-content:center;
  height:48px; border-radius:12px;
  font-size:15px; font-weight:600; color:#fff;
  background:rgba(255,255,255,.04); box-shadow:inset 0 0 0 1px var(--border);
  transition:box-shadow .2s, background .2s;
}
.reg-pkg-opt input:checked + span{
  background:linear-gradient(#161016,#131015) padding-box, var(--grad) border-box;
  border:1.5px solid transparent; box-shadow:none;
}
.reg-time-chip{ position:relative; cursor:pointer; }
.reg-time-chip input{ position:absolute; opacity:0; width:0; height:0; }
.reg-time-chip span{
  display:inline-flex; align-items:center; height:42px; padding:0 18px; border-radius:10px;
  font-size:14px; font-weight:500; color:#fff;
  background:rgba(255,255,255,.04); box-shadow:inset 0 0 0 1px var(--border);
  transition:box-shadow .2s, background .2s;
}
.reg-time-chip input:checked + span{
  background:linear-gradient(#161016,#131015) padding-box, var(--grad) border-box;
  border:1.5px solid transparent; box-shadow:none;
}
.reg-modal__submit{ width:100%; height:52px; margin-top:6px; }
.reg-modal__msg, .reg-modal .ok, .reg-modal .err{
  font-size:14px; font-weight:500; line-height:1.5;
  border-radius:12px; padding:12px 16px; margin-top:14px;
}
.reg-modal .ok, .reg-modal__msg.ok{ color:#7ee0a0; background:rgba(96,224,31,.10); box-shadow:inset 0 0 0 1px rgba(96,224,31,.28); }
.reg-modal .err, .reg-modal__msg.err{ color:#ff8595; background:rgba(255,77,103,.10); box-shadow:inset 0 0 0 1px rgba(255,77,103,.30); }
.reg-modal__privacy{ font-size:12px; color:#8a8b90; text-align:center; margin-top:14px; line-height:1.5; }
.reg-modal__success{
  display:none; flex-direction:column; align-items:center; text-align:center; gap:16px; padding:20px 0;
}
.reg-modal.is-success .reg-modal__form, .reg-modal.is-success .reg-modal__title, .reg-modal.is-success .reg-modal__sub{ display:none; }
.reg-modal.is-success .reg-modal__success{ display:flex; }
.reg-modal__success-ic{ width:64px; height:64px; border-radius:50%; background:var(--grad); display:flex; align-items:center; justify-content:center; }
.reg-modal__success-ic svg{ width:32px; height:32px; color:#fff; }
.reg-modal__success p{ font-size:16px; font-weight:500; color:#fff; line-height:1.5; }

/* --- trainer carousel --- */
/* ============================================================
   CORPORATE PAGE
   ============================================================ */
.corp-hero{ padding-top:180px; padding-bottom:20px; }
.corp-hero__inner{ max-width:780px; }
.corp-hero__badge{
  display:inline-block; font-size:13px; font-weight:600; letter-spacing:.06em; text-transform:uppercase;
  color:#fff; background:rgba(236,0,140,.16); padding:7px 16px; border-radius:20px; margin-bottom:24px;
}
.corp-hero__title{ font-size:56px; font-weight:700; line-height:1.08; color:#fff; margin-bottom:20px; }
.corp-hero__sub{ font-size:17px; font-weight:300; line-height:1.6; color:#c9cacf; margin-bottom:32px; }
.corp-hero__cta{ text-decoration:none; }
.corp-features{ padding-top:90px; }
.corp-features .section-title{ margin-bottom:40px; }
.corp-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.corp-card{
  border-radius:20px; box-shadow:inset 0 0 0 1px var(--border); background:var(--card);
  padding:28px; display:flex; flex-direction:column; gap:14px;
}
.corp-card__ic{
  width:52px; height:52px; border-radius:14px; background:rgba(236,0,140,.12); color:var(--pink);
  display:flex; align-items:center; justify-content:center;
}
.corp-card__ic svg{ width:26px; height:26px; }
.corp-card h3{ font-size:18px; font-weight:600; color:#fff; }
.corp-card p{ font-size:14px; font-weight:300; line-height:1.6; color:#c9cacf; }
.corp-gallery{ padding-top:90px; }
.corp-gallery .section-title{ margin-bottom:40px; }
.corp-gallery__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.corp-photo{
  position:relative; aspect-ratio:4/3; border-radius:20px; overflow:hidden;
  background:var(--card); box-shadow:inset 0 0 0 1px var(--border);
}
.corp-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.corp-photo.is-empty::after{
  content:""; position:absolute; inset:0;
  background:repeating-linear-gradient(45deg, rgba(255,255,255,.03) 0 12px, transparent 12px 24px);
}
.corp-photo.is-empty img{ opacity:0; }
.corp-contact{ padding:100px 0; }
.corp-contact__box{
  border-radius:24px; padding:56px 48px; text-align:center;
  background:linear-gradient(#141013,#111013) padding-box, var(--grad) border-box;
  border:1.5px solid transparent;
  display:flex; flex-direction:column; align-items:center;
}
.corp-contact__box h2{ font-size:36px; font-weight:700; color:#fff; margin-bottom:12px; }
.corp-contact__box p{ font-size:16px; font-weight:300; line-height:1.6; color:#c9cacf; max-width:560px; margin-bottom:36px; }
.corp-contact__actions{ display:flex; gap:20px; flex-wrap:wrap; justify-content:center; }
.corp-contact__item{
  display:flex; align-items:center; gap:16px; text-decoration:none;
  padding:18px 26px; border-radius:16px;
  background:rgba(255,255,255,.03); box-shadow:inset 0 0 0 1px var(--border);
  transition:box-shadow .2s, background .2s;
}
.corp-contact__item:hover{ box-shadow:inset 0 0 0 1px var(--pink); background:rgba(236,0,140,.06); }
.corp-contact__ic{
  width:48px; height:48px; border-radius:50%; flex-shrink:0;
  background:var(--grad); color:#fff; display:flex; align-items:center; justify-content:center;
}
.corp-contact__ic svg{ width:24px; height:24px; }
.corp-contact__item > span{ display:flex; flex-direction:column; text-align:left; }
.corp-contact__lbl{ font-size:12px; font-weight:400; color:#b7b8bd; }
.corp-contact__item b{ font-size:18px; font-weight:600; color:#fff; }
@media (max-width:900px){
  .corp-hero__title{ font-size:40px; }
  .corp-grid{ grid-template-columns:repeat(2,1fr); }
  .corp-gallery__grid{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:680px){
  .corp-hero{ padding-top:140px; }
  .corp-hero__title{ font-size:30px; }
  .corp-grid{ grid-template-columns:1fr; }
  .corp-gallery__grid{ grid-template-columns:1fr; }
  .corp-contact__box{ padding:36px 22px; }
  .corp-contact__box h2{ font-size:26px; }
  .corp-contact__actions{ flex-direction:column; width:100%; }
  .corp-contact__item{ width:100%; }
}

/* ============================================================
   ACADEMY PRO PAGE
   ============================================================ */
.pro-hero{ padding-top:180px; padding-bottom:10px; }
.pro-hero__inner{ max-width:820px; }
.pro-hero__badge{
  display:inline-flex; align-items:center; gap:6px;
  font-size:14px; font-weight:500; letter-spacing:.04em;
  color:#fff; background:rgba(236,0,140,.14); padding:8px 18px; border-radius:30px; margin-bottom:24px;
}
.pro-hero__badge b{ font-weight:800; background:var(--grad); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.pro-hero__title{ font-size:52px; font-weight:700; line-height:1.1; color:#fff; margin-bottom:20px; }
.pro-hero__sub{ font-size:17px; font-weight:300; line-height:1.6; color:#c9cacf; margin-bottom:32px; }

.pro-adv{ padding-top:90px; }
.pro-adv .section-title{ margin-bottom:40px; }
.pro-adv__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.pro-adv__card{
  border-radius:20px; box-shadow:inset 0 0 0 1px var(--border); background:var(--card);
  padding:28px; display:flex; flex-direction:column; gap:14px;
}
.pro-adv__ic{ width:52px; height:52px; border-radius:14px; background:rgba(236,0,140,.12); color:var(--pink); display:flex; align-items:center; justify-content:center; }
.pro-adv__ic svg{ width:26px; height:26px; }
.pro-adv__card h3{ font-size:18px; font-weight:600; color:#fff; }
.pro-adv__card p{ font-size:14px; font-weight:300; line-height:1.6; color:#c9cacf; }

.pro-cmp{ padding-top:90px; }
.pro-cmp .section-title{ margin-bottom:40px; }
.cmp-table{ border-radius:20px; overflow:hidden; box-shadow:inset 0 0 0 1px var(--border); }
.cmp-row{ display:grid; grid-template-columns:var(--cmp-cols, 1fr 140px 140px 140px); align-items:center; }
.cmp-row + .cmp-row{ border-top:1px solid var(--border); }
.cmp-row--head{ background:rgba(255,255,255,.02); }
.cmp-row--head .cmp-c{ font-size:15px; font-weight:600; color:#fff; padding-top:20px; padding-bottom:20px; }
.cmp-c{ padding:18px 20px; display:flex; align-items:center; justify-content:center; text-align:center; }
.cmp-c--feat{ justify-content:flex-start; text-align:left; font-size:14px; font-weight:400; color:#e3e9fe; }
.cmp-c--pro{ background:rgba(236,0,140,.06); font-weight:700; }
.cmp-course-pick{ margin-bottom:24px; }
.select{
  min-width:280px; height:50px; padding:0 40px 0 18px;
  border-radius:12px; border:none;
  background:rgba(255,255,255,.05); box-shadow:inset 0 0 0 1px var(--border);
  color:#fff; font-family:inherit; font-size:15px; font-weight:500;
  -webkit-appearance:none; appearance:none; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23888' stroke-width='1.6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 16px center;
  transition:box-shadow .2s;
}
.select:focus{ outline:none; box-shadow:inset 0 0 0 1.5px var(--pink); }
.select option{ background:#fff; color:#111; }

/* --- searchable-select (JS-enhanced native <select data-search-select>) --- */
.ss-wrap{ position:relative; }
.ss-btn{
  width:100%; height:50px; padding:0 40px 0 16px;
  border-radius:12px; border:none;
  background:rgba(255,255,255,.04); box-shadow:inset 0 0 0 1px var(--border);
  color:#fff; font-family:inherit; font-size:15px; text-align:left; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23888' stroke-width='1.6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 16px center;
  transition:box-shadow .2s;
}
.ss-btn:focus{ outline:none; box-shadow:inset 0 0 0 1.5px var(--pink); }
.ss-btn.placeholder{ color:#6b6c72; }
.ss-panel{
  position:absolute; z-index:60; left:0; right:0; top:calc(100% + 6px);
  background:#171317; border:1px solid var(--border); border-radius:12px;
  box-shadow:0 16px 40px rgba(0,0,0,.5); padding:8px; display:none; max-height:280px; overflow:auto;
}
.ss-panel.open{ display:block; }
.ss-search{
  width:100%; height:42px; padding:0 14px; margin-bottom:6px;
  border-radius:9px; border:none; background:rgba(255,255,255,.05); box-shadow:inset 0 0 0 1px var(--border);
  color:#fff; font-family:inherit; font-size:14px;
}
.ss-search:focus{ outline:none; box-shadow:inset 0 0 0 1.5px var(--pink); }
.ss-item{ padding:10px 12px; border-radius:8px; cursor:pointer; font-size:14.5px; color:#e8e8ea; }
.ss-item:hover{ background:rgba(255,255,255,.06); }
.ss-item.selected{ color:var(--pink); }
.ss-empty{ padding:12px; color:#6b6c72; font-size:13px; text-align:center; }
.cmp-row--head .cmp-c--pro{ color:#fff; background:rgba(236,0,140,.12); }
.cmp-yes{ width:22px; height:22px; color:#60e01f; }
.cmp-no{ width:20px; height:20px; color:#5a5b60; }

.pro-tag{ display:inline-flex; align-items:center; font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:#fff; background:var(--grad); padding:5px 12px; border-radius:20px; }

@media (max-width:900px){
  .pro-hero__title{ font-size:38px; }
  .pro-adv__grid{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:680px){
  .pro-hero{ padding-top:140px; }
  .pro-hero__title{ font-size:28px; }
  .pro-adv__grid{ grid-template-columns:1fr; }
  .cmp-c{ padding:14px 10px; }
  .cmp-c--feat{ font-size:13px; }
}

/* --- rich hero + landing extras --- */
.pro-hero--rich{ position:relative; overflow:hidden; padding-top:190px; padding-bottom:60px;
  background:radial-gradient(120% 90% at 50% -10%, rgba(236,0,140,.06), transparent 62%); }
.pro-hero__glow{ position:absolute; z-index:0; width:520px; height:520px; border-radius:50%;
  background:radial-gradient(circle at center, rgba(236,0,140,.12), transparent 72%);
  top:-180px; left:-140px; filter:blur(30px); pointer-events:none; }
.pro-hero__glow--2{ background:radial-gradient(circle at center, rgba(252,103,103,.09), transparent 72%);
  left:auto; right:-160px; top:20px; width:460px; height:460px; }
.pro-hero--rich .container{ position:relative; z-index:1; }
.pro-hero__stats{ display:flex; gap:40px; margin-top:44px; flex-wrap:wrap; }
.pro-hstat b{ display:block; font-size:38px; font-weight:800; line-height:1;
  background:var(--grad); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; margin-bottom:6px; }
.pro-hstat span{ font-size:13px; font-weight:300; color:#c9cacf; max-width:190px; display:block; line-height:1.4; }

.pro-how{ padding-top:100px; }
.pro-how .section-title{ margin-bottom:40px; }
.pro-how__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.pro-step{ border-radius:20px; box-shadow:inset 0 0 0 1px var(--border); background:var(--card); padding:28px; display:flex; flex-direction:column; gap:12px; }
.pro-step__n{ width:44px; height:44px; border-radius:50%; background:var(--grad); color:#fff; font-size:18px; font-weight:700; display:flex; align-items:center; justify-content:center; }
.pro-step h3{ font-size:17px; font-weight:600; color:#fff; }
.pro-step p{ font-size:14px; font-weight:300; line-height:1.6; color:#c9cacf; }

.pro-guarantee{ padding-top:100px; }
.pro-guarantee__box{ border-radius:24px; padding:52px 48px; text-align:center; display:flex; flex-direction:column; align-items:center;
  background:linear-gradient(#141013,#111013) padding-box, var(--grad) border-box; border:1.5px solid transparent; }
.pro-guarantee__ic{ width:64px; height:64px; border-radius:16px; background:rgba(236,0,140,.14); color:var(--pink); display:flex; align-items:center; justify-content:center; margin-bottom:20px; }
.pro-guarantee__ic svg{ width:34px; height:34px; }
.pro-guarantee__box h2{ font-size:32px; font-weight:700; color:#fff; margin-bottom:12px; }
.pro-guarantee__box p{ font-size:16px; font-weight:300; line-height:1.65; color:#c9cacf; max-width:640px; }

.pro-final{ padding:100px 0; }
.pro-final__box{ position:relative; overflow:hidden; border-radius:28px; padding:64px 48px; text-align:center;
  display:flex; flex-direction:column; align-items:center;
  background:linear-gradient(135deg, rgba(236,0,140,.18), rgba(252,103,103,.10)) padding-box, var(--grad) border-box; border:1.5px solid transparent; }
.pro-final__glow{ position:absolute; inset:0; background:radial-gradient(80% 120% at 50% 0%, rgba(236,0,140,.22), transparent 60%); pointer-events:none; }
.pro-final__box > *{ position:relative; z-index:1; }
.pro-final__box h2{ font-size:40px; font-weight:800; color:#fff; margin-bottom:14px; }
.pro-final__box p{ font-size:16px; font-weight:300; line-height:1.6; color:#e3e9fe; max-width:560px; margin-bottom:32px; }

@media (max-width:900px){
  .pro-how__grid{ grid-template-columns:repeat(2,1fr); }
  .pro-hero__stats{ gap:24px; }
}
@media (max-width:680px){
  .pro-how__grid{ grid-template-columns:1fr; }
  .pro-guarantee__box{ padding:36px 22px; }
  .pro-final__box{ padding:40px 22px; }
  .pro-final__box h2{ font-size:28px; }
  .pro-hstat b{ font-size:30px; }
}

.trainer-carousel{ display:flex; flex-direction:column; gap:20px; min-width:0; }
/* ============================================================
   ABOUT PAGE
   ============================================================ */
.about-hero{ padding-top:170px; }
.about-hero__title{ font-size:44px; font-weight:600; line-height:1.15; color:#fff; max-width:960px; margin-bottom:32px; }
.about-hero__text{ display:grid; grid-template-columns:repeat(2,1fr); gap:20px 40px; }
.about-hero__text p{ font-size:15px; font-weight:300; line-height:1.7; color:#c9cacf; }
.about-stats{ padding-top:80px; }
.about-stats__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.about-stat{
  border-radius:20px; box-shadow:inset 0 0 0 1px var(--border); background:var(--card);
  padding:32px; text-align:center;
}
.about-stat b{ display:block; font-size:44px; font-weight:700; line-height:1;
  background:var(--grad); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; margin-bottom:8px; }
.about-stat span{ font-size:14px; font-weight:300; color:#c9cacf; }
.about-video{ padding-top:90px; }
.about-video .section-title{ margin-bottom:40px; }
.about-video__frame{
  position:relative; display:block; width:100%; border:none; padding:0; cursor:pointer;
  aspect-ratio:16/9; border-radius:24px; overflow:hidden; background:#111;
}
.about-video__frame img{ width:100%; height:100%; object-fit:cover; display:block; opacity:.7; }
.about-video__play{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:84px; height:84px; border-radius:50%; background:var(--grad); color:#fff;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 20px 50px rgba(236,0,140,.4); transition:transform .3s ease;
}
.about-video__play svg{ width:36px; height:36px; margin-left:4px; }
.about-video__frame:hover .about-video__play{ transform:translate(-50%,-50%) scale(1.08); }
.about-events{ padding-top:90px; padding-bottom:20px; }
.about-events .section-title{ margin-bottom:40px; }
.about-events__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
@media (max-width:900px){
  .about-hero__title{ font-size:32px; }
  .about-stats__grid{ grid-template-columns:repeat(2,1fr); }
  .about-events__grid{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:680px){
  .about-hero{ padding-top:140px; }
  .about-hero__title{ font-size:26px; }
  .about-hero__text{ grid-template-columns:1fr; }
  .about-stats__grid{ grid-template-columns:1fr; }
  .about-events__grid{ grid-template-columns:1fr; }
}
.trainer-carousel__viewport{ overflow:hidden; border-radius:20px; cursor:grab; max-width:100%; }
.trainer-carousel__viewport:active{ cursor:grabbing; }
.trainer-carousel__track{ display:flex; transition:transform .45s cubic-bezier(.4,0,.2,1); }
.trainer-carousel .trainer-detail{ flex:0 0 100%; width:100%; }
.tc-nav{ display:flex; align-items:center; justify-content:center; gap:16px; }
.tc-arrow{
  width:44px; height:44px; border-radius:50%;
  background:transparent; box-shadow:inset 0 0 0 1px var(--border);
  color:#fff; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:background .2s, box-shadow .2s;
}
.tc-arrow svg{ width:20px; height:20px; }
.tc-arrow:hover{ background:var(--pink); box-shadow:none; }
.tc-dots{ display:flex; align-items:center; gap:8px; }
.tc-dot{ width:8px; height:8px; border-radius:50%; background:var(--border); cursor:pointer; transition:width .25s, background .25s; }
.tc-dot.active{ background:var(--pink); width:22px; border-radius:4px; }

/* --- career & salary --- */
.career{ padding-top:100px; }
.career-box{
  border-radius:24px;
  box-shadow:inset 0 0 0 1px var(--border);
  background:var(--card);
  padding:48px;
  display:grid; grid-template-columns:1fr 1.1fr; gap:48px; align-items:center;
}
.career-box__left h2{ font-size:34px; font-weight:600; color:#fff; line-height:1.15; margin-bottom:16px; }
.career-box__left p{ font-size:15px; font-weight:300; line-height:1.6; color:#c9cacf; margin-bottom:28px; }
.career-demand{ display:flex; align-items:center; gap:16px; }
.career-demand__value{ font-size:44px; font-weight:700; line-height:1;
  background:var(--grad); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.career-demand__label{ font-size:14px; font-weight:300; color:#c9cacf; max-width:180px; line-height:1.4; }
.salary-tiers__label{ font-size:13px; font-weight:600; letter-spacing:.02em; color:#b7b8bd; margin-bottom:16px; }
.salary-tier{ display:flex; align-items:center; gap:16px; padding:16px 0; border-bottom:1px solid var(--border); }
.salary-tier:last-child{ border-bottom:none; }
.salary-tier__bar{ flex:1; height:8px; border-radius:40px; background:rgba(255,255,255,.06); overflow:hidden; }
.salary-tier__bar span{ display:block; height:100%; border-radius:40px; background:var(--grad); }
.salary-tier__name{ width:150px; font-size:14px; font-weight:500; color:#fff; }
.salary-tier__amount{ width:160px; text-align:right; font-size:15px; font-weight:600; color:#fff; white-space:nowrap; }
.salary-tier__amount span{ font-size:12px; font-weight:300; color:#9a9ba0; }

/* --- benefits grid --- */
.benefits{ padding-top:100px; }
.benefits__title{ font-size:40px; font-weight:600; text-align:center; color:#fff; margin-bottom:44px; }
.benefits-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.benefit-card{
  border-radius:20px;
  box-shadow:inset 0 0 0 1px var(--border);
  background:var(--card);
  padding:30px;
  display:flex; flex-direction:column; gap:16px;
}
.benefit-card__ic{
  width:52px; height:52px; border-radius:14px;
  background:rgba(236,0,140,.12); color:var(--pink);
  display:flex; align-items:center; justify-content:center;
}
.benefit-card__ic svg{ width:26px; height:26px; }
.benefit-card h3{ font-size:18px; font-weight:600; color:#fff; line-height:1.3; }
.benefit-card p{ font-size:14px; font-weight:300; line-height:1.6; color:#c9cacf; }
.benefit-card--accent{
  background:
    linear-gradient(#161016,#131015) padding-box,
    var(--grad) border-box;
  border:1.5px solid transparent; box-shadow:none;
}
.benefit-card--accent .benefit-card__ic{ background:var(--grad); color:#fff; }

/* --- faq --- */
.faq{ padding-top:100px; }
.faq__title{ font-size:40px; font-weight:600; text-align:center; color:#fff; margin-bottom:44px; }
.faq-list{ max-width:900px; margin:0 auto; display:flex; flex-direction:column; gap:14px; }
.faq-item{
  border-radius:16px;
  box-shadow:inset 0 0 0 1px var(--border);
  background:var(--card);
  overflow:hidden;
}
.faq-item__q{
  width:100%; text-align:left; cursor:pointer; border:none; background:transparent;
  color:#fff; font-family:inherit; font-size:16px; font-weight:500;
  padding:22px 26px; display:flex; align-items:center; justify-content:space-between; gap:16px;
}
.faq-item__q svg{ width:20px; height:20px; color:var(--pink); flex-shrink:0; transition:transform .3s ease; }
.faq-item.is-open .faq-item__q svg{ transform:rotate(45deg); }
.faq-item__a{ max-height:0; overflow:hidden; transition:max-height .35s ease; }
.faq-item__a p{ padding:0 26px 22px; font-size:14px; font-weight:300; line-height:1.65; color:#c9cacf; }

/* --- special advantage --- */
.advantage{ padding-top:100px; }
.advantage__title{ font-size:40px; font-weight:600; text-align:center; color:#fff; margin-bottom:42px; }
.advantage__title b{ color:var(--pink); font-weight:600; }
.advantage-card{
  max-width:1092px; margin:0 auto;
  display:flex; align-items:flex-start; gap:24px;
  border-radius:20px;
  box-shadow:inset 0 0 0 1px var(--border);
  padding:32px 80px;
}
.advantage-card__icon{ flex-shrink:0; width:40px; height:40px; color:var(--pink); }
.advantage-card__icon svg{ width:40px; height:40px; }
.advantage-card h3{ font-size:24px; font-weight:600; color:#fff; margin-bottom:16px; }
.advantage-card p{ font-size:14px; font-weight:400; line-height:26px; color:#e3e9fe; }

/* --- pricing --- */
.pricing{ padding-top:100px; }
.pricing__title{ font-size:40px; font-weight:600; text-align:center; color:#fff; }
.pricing__title b{ color:var(--pink); font-weight:600; }
.pricing__sub{ max-width:749px; margin:16px auto 0; font-size:14px; line-height:26px; text-align:center; color:#e3e9fe; }
.pricing-row{
  display:flex; justify-content:center; align-items:stretch;
  gap:24px;
  margin-top:44px;
}
.price-card{
  width:400px;
  border-radius:24px;
  box-shadow:inset 0 0 0 1px var(--border);
  padding:40px;
  display:flex; flex-direction:column;
  background:var(--card);
}
.price-card__head{ display:flex; flex-direction:column; gap:8px; }
.price-card__tag{
  align-self:flex-start;
  font-size:12px; font-weight:600; letter-spacing:.08em; text-transform:uppercase;
  color:#9a9ba0;
  background:rgba(255,255,255,.05);
  padding:5px 12px; border-radius:20px;
}
.price-card__tag--pro{ color:#fff; background:rgba(236,0,140,.18); }
.price-card__name{ font-size:26px; font-weight:700; color:#fff; }
.price-card__tagline{ font-size:13px; font-weight:300; line-height:1.45; color:#b7b8bd; }
.price-card__price{ display:flex; align-items:flex-end; gap:6px; margin:22px 0 20px; }
.price-card__price b{ font-size:40px; font-weight:700; color:#fff; line-height:1; }
.price-card__price span{ font-size:14px; font-weight:400; color:#b7b8bd; padding-bottom:4px; }
.price-card__cta{ display:block; }
.price-card__inst{ font-size:13px; font-weight:300; color:#b7b8bd; margin:-8px 0 18px; }
.price-card__inst b{ color:#fff; font-weight:600; }

/* --- free consultation --- */
.consult{ padding-top:100px; }
.consult-box{
  position:relative; overflow:hidden;
  border-radius:24px;
  background:linear-gradient(#141013,#111013) padding-box, var(--grad) border-box;
  border:1.5px solid transparent;
  padding:48px;
  display:grid; grid-template-columns:1fr 460px; gap:40px; align-items:center;
}
.consult-box::before{
  content:""; position:absolute; right:-80px; top:-80px; width:320px; height:320px;
  background:radial-gradient(circle at center, rgba(236,0,140,.16), transparent 70%);
  pointer-events:none;
}
.consult-box__left{ position:relative; z-index:1; }
.consult-box__left h2{ font-size:34px; font-weight:700; color:#fff; line-height:1.15; margin-bottom:14px; }
.consult-box__left p{ font-size:15px; font-weight:300; line-height:1.6; color:#c9cacf; max-width:460px; }
.consult-form{ position:relative; z-index:1; display:flex; flex-direction:column; gap:12px; }
.consult-form .row{ display:flex; gap:12px; }
.consult-form input{
  width:100%; height:52px; padding:0 16px; border-radius:12px; border:none;
  background:rgba(255,255,255,.05); box-shadow:inset 0 0 0 1px var(--border);
  color:#fff; font-family:inherit; font-size:15px; transition:box-shadow .2s;
}
.consult-form input::placeholder{ color:#7a7b80; }
.consult-form input:focus{ outline:none; box-shadow:inset 0 0 0 1.5px var(--pink); }
.consult-form .btn{ height:52px; }
.consult-form__note{ font-size:12px; color:#8a8b90; text-align:center; }
.consult-form .err, .consult-form .ok{ font-size:13px; font-weight:500; border-radius:10px; padding:10px 14px; }
.consult-form .ok{ color:#7ee0a0; background:rgba(96,224,31,.10); box-shadow:inset 0 0 0 1px rgba(96,224,31,.28); }
.consult-form .err{ color:#ff8595; background:rgba(255,77,103,.10); box-shadow:inset 0 0 0 1px rgba(255,77,103,.30); }
.price-divider{ height:1px; background:var(--border); margin:26px 0 22px; }
.price-features{ display:flex; flex-direction:column; gap:14px; }
.price-features__head{ font-size:13px; font-weight:600; color:#fff; letter-spacing:.02em; margin-bottom:2px; }
.price-feature{ display:flex; align-items:flex-start; gap:11px; font-size:14px; line-height:1.4; color:#e8e8ea; }
.price-feature__ic{
  flex-shrink:0; width:22px; height:22px; border-radius:50%;
  background:rgba(255,255,255,.06); color:#9a9ba0;
  display:flex; align-items:center; justify-content:center;
  margin-top:1px;
}
.price-feature__ic svg{ width:13px; height:13px; }
.price-feature__ic--pro{ background:var(--grad); color:#fff; }

.price-card--solo{
  background:
    linear-gradient(#141013,#120e11) padding-box,
    var(--grad) border-box;
  border:1.5px solid transparent; box-shadow:0 16px 44px rgba(236,0,140,.10);
}
.price-card--pro{
  position:relative;
  width:430px;
  padding:40px;
  box-shadow:none;
  background:
    linear-gradient(#141013,#120e11) padding-box,
    var(--grad) border-box;
  border:1.5px solid transparent;
  box-shadow:0 16px 44px rgba(236,0,140,.10);
}
.price-card--pro::before{
  content:"";
  position:absolute; left:50%; top:-8%; transform:translateX(-50%);
  width:78%; height:200px;
  background:radial-gradient(ellipse at center, rgba(236,0,140,.13), transparent 70%);
  pointer-events:none; z-index:0;
}
.price-card--pro > *{ position:relative; z-index:1; }
.price-card--pro-plus{
  position:relative;
  width:430px;
  padding:40px;
  background:
    linear-gradient(#141013,#120e11) padding-box,
    var(--grad) border-box;
  border:1.5px solid transparent;
  box-shadow:0 16px 44px rgba(236,0,140,.10);
}
.price-card__tag--pro-plus{ color:#fff; background:rgba(236,0,140,.18); }
.price-card__ribbon{
  position:absolute; top:0; left:50%; transform:translate(-50%,-50%);
  z-index:2;
  background:var(--grad); color:#fff;
  font-size:12px; font-weight:600; letter-spacing:.04em;
  padding:7px 18px; border-radius:20px;
  white-space:nowrap;
  box-shadow:0 6px 16px rgba(236,0,140,.22);
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1200px){
  :root{ --pad:40px; }
  .courses-grid{ grid-template-columns:repeat(2,1fr); }
  .partners-grid{ grid-template-columns:repeat(2,1fr); }
  .why-grid{ grid-template-columns:repeat(2,1fr); }
  .feature-card.tall{ grid-row:auto; }
  .portfolio-box{ height:auto; }
  .portfolio-box__text{ position:static; width:auto; padding:40px 40px 0; }
  .portfolio-box__img{ position:static; width:100%; height:320px; margin-top:32px; }
  .course-grid{ grid-template-columns:1fr; }
  .course-hero__title{ font-size:72px; }
  .course-hero__stats{
    position:static; margin-top:36px;
    display:grid; grid-template-columns:1fr 1fr;
    gap:20px 32px;
    height:auto; width:100%;
    padding:22px 28px;
  }
  .course-hero__card{ height:auto; min-height:560px; padding:120px 40px 40px; }
  .course-scroll{ display:none; }
  .advantage-card{ padding:32px 40px; }
  .admissions-grid{ grid-template-columns:repeat(2,1fr); }
  .career-box{ grid-template-columns:1fr; gap:36px; padding:40px; }
  .benefits-grid{ grid-template-columns:repeat(2,1fr); }
  .consult-box{ grid-template-columns:1fr; gap:32px; padding:40px; }
}
@media (max-width:900px){
  .site-nav .container{ position:relative; flex-wrap:nowrap; }
  .nav-main{ flex:1; }
  .nav-links{
    position:absolute;
    top:calc(100% + 12px); left:0; right:0;
    flex-direction:column;
    align-items:stretch;
    gap:2px;
    padding:16px 20px;
    background:#151515;
    border-radius:20px;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.1), 0 20px 40px rgba(0,0,0,.5);
    z-index:60;
    display:none;
  }
  .nav-links a, .nav-links .nav-item{ padding:12px 4px; width:100%; }
  .site-nav.is-open .nav-links{ display:flex; }
  .hamburger{ display:flex; }
  .nav-cta{ display:none; }
  .nav-right{ width:auto; margin-left:auto; gap:14px; padding:12px 16px; }
  .lang{ flex:none; }
  /* mobile: dropdowns expand inline instead of floating */
  .nav-item.has-dropdown{ width:100%; align-items:stretch; }
  .nav-item.has-dropdown .dropdown{
    position:static; padding-top:8px; right:auto; left:auto;
    opacity:1; visibility:visible; transform:none;
    display:none;
  }
  .nav-item.has-dropdown.is-open .dropdown{ display:block; }
  .dropdown__inner{ box-shadow:none; background:rgba(255,255,255,.03); min-width:0; }
  .hero-title{ font-size:40px; }
  .hero-sub{ font-size:30px; }
  .hero-sub b{ font-size:34px; }
  .footer-top{ flex-wrap:wrap; gap:40px; }
  .course-hero__title{ font-size:52px; }
  .course-hero__stats{ grid-template-columns:1fr; gap:18px; padding:22px 24px; }
  .course-hero__badges{ top:32px; right:auto; left:40px; }
  .pricing-row{ flex-direction:column; align-items:center; }
  .price-card,.price-card--pro,.price-card--pro-plus{ width:100%; max-width:425px; }
  .admissions-grid{ grid-template-columns:1fr; }
  .benefits-grid{ grid-template-columns:1fr; }
  .career-box{ padding:28px; }
  .consult-box{ padding:28px; }
  .consult-form .row{ flex-direction:column; }
  .consult-box__left h2{ font-size:26px; }
  .salary-tier{ flex-wrap:wrap; gap:8px 16px; }
  .salary-tier__name{ width:auto; }
  .salary-tier__bar{ order:3; flex-basis:100%; }
  .salary-tier__amount{ width:auto; margin-left:auto; }
  .career-box__left h2,.benefits__title,.faq__title{ font-size:28px; }
}
@media (max-width:680px){
  :root{ --pad:20px; }
  .courses-grid{ grid-template-columns:1fr; }
  .partners-grid{ grid-template-columns:1fr; }
  .why-grid{ grid-template-columns:1fr; }
  .hero-card{ height:560px; }
  .hero-content{ padding:0 28px; }
  .hero-title{ font-size:32px; }
  .hero-sub{ font-size:24px; }
  .section-title,.portfolio-box__text h2,.cta-inner h2{ font-size:28px; }
  .course-hero__title{ font-size:38px; }
  .panel{ padding:22px; }
  .panel__text{ line-height:1.8; }
  .topic-row{ padding:14px; gap:12px; align-items:flex-start; }
  .trainer-detail{ padding:36px 18px; }
  .trainer-detail__bio{ line-height:1.7; }
  .exp-item .company,.exp-item .position{ font-size:14px; line-height:1.6; }
  .portfolio-box__text{ padding:28px 28px 0; }
  .portfolio-box__img{ height:240px; }
  .footer-top{ padding:32px 20px; }
  .footer-bar{ padding:14px 20px; }
  .footer-bar__inner{ flex-direction:column; align-items:flex-start; gap:14px; }
  .footer-bar__left{ flex-direction:column; align-items:flex-start; gap:12px; }
  .footer-bar__left .bullet{ display:none; }
  .footer-bar__socials{ flex-wrap:wrap; gap:16px; row-gap:8px; }
  .footer-bar__right{ white-space:normal; }
}
