:root{
  --ranepa-red:#CA0F3E;--ranepa-burgundy:#A00F33;--ranepa-blue:#29345B;
  --bg:#05080e;--card:rgba(17,24,39,.72);--glass:rgba(17,24,39,.88);
  --text:#F8FAFC;--muted:#94A3B8;--border:rgba(255,255,255,.09);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  min-height:100vh;background:
  radial-gradient(circle at 15% 10%,rgba(202,15,62,.12),transparent 28rem),
  radial-gradient(circle at 85% 16%,rgba(41,52,91,.17),transparent 32rem),
  var(--bg);color:var(--text);font-family:Manrope,Arial,sans-serif;
}
a{color:inherit}
.page-header{
  position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:24px;
  min-height:104px;padding:15px 32px;background:rgba(5,8,14,.95);
  border-bottom:1px solid var(--border);backdrop-filter:blur(18px)
}
.page-logo img{height:94px;width:auto;max-width:345px;object-fit:contain}
.page-nav{margin-left:auto;display:flex;align-items:center;gap:15px;flex-wrap:wrap;justify-content:flex-end}
.page-nav a{
  text-decoration:none;color:#94A3B8;font:800 .76rem Montserrat,Arial,sans-serif;
  text-transform:uppercase;white-space:nowrap;transition:.2s
}
.page-nav a:hover,.page-nav a.active{color:#fff}
.page-nav a.active{border-bottom:2px solid var(--ranepa-red);padding-bottom:7px}
.page-main{max-width:1280px;margin:0 auto;padding:62px 24px 80px}
.page-kicker{
  display:inline-flex;padding:7px 12px;border-radius:999px;background:rgba(202,15,62,.11);
  border:1px solid rgba(202,15,62,.3);color:#ffdbe4;
  font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em
}
.page-title{font:900 clamp(2.4rem,5vw,4.6rem)/1.02 Montserrat,Arial,sans-serif;letter-spacing:-.045em;margin:16px 0}
.page-lead{max-width:820px;color:var(--muted);font-size:1.06rem;line-height:1.7;margin-bottom:34px}
.back-link{display:inline-flex;margin-bottom:22px;text-decoration:none;color:#cbd5e1;font-weight:800;font-size:.88rem}
.toolbar{
  display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:0 0 26px;
  padding:16px;border:1px solid var(--border);border-radius:16px;background:rgba(255,255,255,.035)
}
.toolbar input,.toolbar select{
  min-height:44px;border-radius:10px;border:1px solid var(--border);
  background:rgba(255,255,255,.055);color:var(--text);padding:10px 12px;outline:none;
  font:650 .9rem Manrope,Arial,sans-serif
}
.toolbar input{flex:1 1 280px}.toolbar select{flex:0 1 280px}
.toolbar input:focus,.toolbar select:focus{border-color:rgba(202,15,62,.65);box-shadow:0 0 0 3px rgba(202,15,62,.1)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:20px}
.panel{
  background:linear-gradient(180deg,rgba(20,29,44,.82),rgba(12,19,31,.78));
  border:1px solid var(--border);border-radius:20px;padding:24px;
  box-shadow:0 18px 40px rgba(0,0,0,.2)
}
.card{transition:.25s ease}.card:hover{transform:translateY(-4px);border-color:rgba(202,15,62,.45)}
.card h2,.panel h2,.panel h3{font-family:Montserrat,Arial,sans-serif}
.card h2{font-size:1.16rem;line-height:1.3;margin:10px 0}
.meta{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.badge{padding:6px 9px;border-radius:999px;background:rgba(202,15,62,.1);border:1px solid rgba(202,15,62,.22);color:#ffd8e1;font-size:.72rem;font-weight:800}
.muted{color:var(--muted);line-height:1.62}
.button{
  display:inline-flex;margin-top:18px;text-decoration:none;border:0;cursor:pointer;
  border-radius:10px;padding:10px 14px;background:var(--ranepa-red);color:#fff;font-weight:800
}
.empty{padding:30px;text-align:center;color:var(--muted);border:1px dashed var(--border);border-radius:16px}
.schedule-list{display:flex;flex-direction:column;gap:14px}
.schedule-day{margin-top:12px;font:900 1.25rem Montserrat,Arial,sans-serif}
.lesson{
  display:grid;grid-template-columns:130px 1fr;gap:18px;padding:20px;
  border:1px solid var(--border);border-radius:16px;background:rgba(255,255,255,.035)
}
.lesson-time{font:900 1rem Montserrat,Arial,sans-serif;color:#fff}
.lesson-program{color:#ffb8c8;font-size:.8rem;font-weight:800;text-transform:uppercase;margin-bottom:6px}
.lesson-subject{font-weight:750;line-height:1.48;margin-bottom:8px}
.lesson-meta{color:var(--muted);font-size:.88rem;line-height:1.55}
.faq-list{display:flex;flex-direction:column;gap:14px;max-width:950px}
.faq-item{border:1px solid var(--border);border-radius:16px;background:rgba(255,255,255,.035);overflow:hidden}
.faq-item summary{cursor:pointer;padding:20px 22px;font:800 1rem Montserrat,Arial,sans-serif}
.faq-answer{padding:0 22px 22px;color:var(--muted);line-height:1.7}
.contact-highlight{border-left:4px solid var(--ranepa-red)}
.contact-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;margin-top:24px}
.contact-card h3{font-size:1.05rem;margin-bottom:6px}.position{color:#ff9db5;font-size:.78rem;text-transform:uppercase;font-weight:800;margin-bottom:14px}
.contact-card p{color:var(--muted);line-height:1.7}.contact-card a{color:#fff;text-decoration:none}.contact-card a:hover{color:#ff7596}
@media(max-width:760px){
  .page-header{position:relative;align-items:flex-start;flex-direction:column;padding:15px 18px}
  .page-nav{margin-left:0;justify-content:flex-start}.page-main{padding:40px 16px 60px}
  .lesson{grid-template-columns:1fr;gap:8px}.page-logo img{height:81px}
}

/* ===== Premium motion + liquid glass pass ===== */
body::before,
body::after{
  content:"";position:fixed;z-index:-1;pointer-events:none;border-radius:50%;
  filter:blur(90px);opacity:.22;
  animation:ambientDrift 18s ease-in-out infinite alternate;
}
body::before{
  width:34vw;height:34vw;min-width:320px;min-height:320px;
  left:-8vw;top:10vh;background:radial-gradient(circle,rgba(202,15,62,.58),rgba(202,15,62,0) 68%);
}
body::after{
  width:38vw;height:38vw;min-width:360px;min-height:360px;
  right:-10vw;top:22vh;background:radial-gradient(circle,rgba(77,86,188,.48),rgba(77,86,188,0) 70%);
  animation-delay:-6s;
}
@keyframes ambientDrift{
  0%{transform:translate3d(0,0,0) scale(1)}
  50%{transform:translate3d(2vw,-2vh,0) scale(1.05)}
  100%{transform:translate3d(-1vw,2vh,0) scale(.98)}
}

.page-header{
  background:linear-gradient(180deg,rgba(7,12,22,.82),rgba(5,8,14,.68)) !important;
  border:1px solid rgba(255,255,255,.08);
  border-left:0;border-right:0;
  box-shadow:0 14px 50px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.035);
  backdrop-filter:blur(26px) saturate(145%);
  -webkit-backdrop-filter:blur(26px) saturate(145%);
}

.page-main{
  animation:pageReveal .72s cubic-bezier(.2,.8,.2,1) both;
}
@keyframes pageReveal{
  from{opacity:0;transform:translateY(14px)}
  to{opacity:1;transform:translateY(0)}
}

.toolbar,
.panel,
.lesson,
.faq-item{
  position:relative;
  overflow:hidden;
  background:
    linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.025) 38%,rgba(9,16,29,.62) 100%) !important;
  border:1px solid rgba(255,255,255,.11) !important;
  box-shadow:
    0 22px 65px rgba(0,0,0,.24),
    inset 0 1px 0 rgba(255,255,255,.06),
    inset 0 -1px 0 rgba(255,255,255,.018);
  backdrop-filter:blur(22px) saturate(140%);
  -webkit-backdrop-filter:blur(22px) saturate(140%);
}

.toolbar::before,
.panel::before,
.lesson::before,
.faq-item::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(115deg,rgba(255,255,255,.09),transparent 22%,transparent 72%,rgba(202,15,62,.045));
  opacity:.65;
}

.card,
.lesson,
.faq-item{
  transition:
    transform .32s cubic-bezier(.2,.8,.2,1),
    border-color .32s ease,
    box-shadow .32s ease,
    background .32s ease;
}

.card:hover,
.lesson:hover{
  transform:translateY(-6px);
  border-color:rgba(202,15,62,.42) !important;
  box-shadow:
    0 30px 80px rgba(0,0,0,.32),
    0 0 0 1px rgba(202,15,62,.08),
    0 0 30px rgba(202,15,62,.08),
    inset 0 1px 0 rgba(255,255,255,.08);
}

.card:nth-child(3n+2){animation-delay:.05s}
.card:nth-child(3n+3){animation-delay:.1s}
.card,.lesson,.faq-item,.contact-card{
  animation:glassEnter .58s cubic-bezier(.2,.8,.2,1) both;
}
@keyframes glassEnter{
  from{opacity:0;transform:translateY(16px) scale(.992)}
  to{opacity:1;transform:translateY(0) scale(1)}
}

/* Select readability fix */
.toolbar select{
  color-scheme:dark;
  background-color:#111827 !important;
  color:#F8FAFC !important;
  border-color:rgba(255,255,255,.14) !important;
}
.toolbar select option{
  background:#111827 !important;
  color:#F8FAFC !important;
}
.toolbar select option:checked{
  background:#29345B !important;
  color:#fff !important;
}
.toolbar input::placeholder{
  color:#78879a;
  opacity:1;
}
.toolbar input{
  color:#fff !important;
  background:rgba(17,24,39,.78) !important;
}

.page-title{
  text-shadow:0 10px 36px rgba(0,0,0,.28);
}
.page-kicker{
  box-shadow:0 8px 24px rgba(202,15,62,.08),inset 0 1px 0 rgba(255,255,255,.05);
}
.badge{
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.button{
  transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s ease,filter .25s ease;
  box-shadow:0 12px 28px rgba(202,15,62,.22);
}
.button:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 36px rgba(202,15,62,.3);
  filter:brightness(1.06);
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
}

/* ===== Compact readability pass ===== */
.page-main{
  max-width:1180px;
  padding:42px 22px 64px;
}
.page-title{
  font-size:clamp(2.15rem,4.3vw,4rem);
  margin:12px 0 10px;
}
.page-lead{
  max-width:760px;
  color:#B7C2D0;
  font-size:.98rem;
  line-height:1.58;
  margin-bottom:24px;
}
.back-link{margin-bottom:14px;font-size:.82rem}
.page-kicker{font-size:.69rem;padding:6px 10px}

.toolbar{
  gap:10px;
  margin-bottom:18px;
  padding:11px 12px;
  border-radius:14px;
}
.toolbar input,.toolbar select{
  min-height:40px;
  padding:8px 11px;
  font-size:.84rem;
}
.toolbar input{flex-basis:240px}
.toolbar select{flex-basis:220px}

.grid{
  grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
  gap:14px;
}
.panel{
  padding:18px;
  border-radius:16px;
}
.card{
  display:flex;
  flex-direction:column;
  min-height:0;
}
.card h2{
  font-size:1.02rem;
  line-height:1.25;
  margin:7px 0 8px;
}
.card .muted{
  color:#B3C0CF;
  font-size:.88rem;
  line-height:1.5;
}
.card-desc{
  display:-webkit-box;
  -webkit-line-clamp:4;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.meta{
  gap:6px;
  margin-bottom:5px;
}
.badge{
  padding:5px 8px;
  font-size:.66rem;
  line-height:1.2;
}
.card-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:auto;
  padding-top:16px;
}
.card-actions .button{
  margin-top:0;
  flex:1 1 120px;
  justify-content:center;
  text-align:center;
  min-height:40px;
  align-items:center;
  font-size:.82rem;
}
.button-secondary{
  background:rgba(255,255,255,.055);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:none;
}
.button-secondary:hover{
  background:rgba(255,255,255,.09);
  box-shadow:0 12px 28px rgba(0,0,0,.2);
}
.enroll-button{
  background:linear-gradient(135deg,#e51d4c,#CA0F3E);
}

.schedule-list{gap:10px}
.schedule-day{
  margin-top:8px;
  font-size:1.05rem;
}
.lesson{
  grid-template-columns:112px 1fr;
  gap:14px;
  padding:15px 16px;
  border-radius:14px;
}
.lesson-time{
  font-size:.9rem;
}
.lesson-program{
  font-size:.7rem;
  margin-bottom:4px;
}
.lesson-subject{
  font-size:.93rem;
  line-height:1.38;
  margin-bottom:6px;
}
.lesson-meta{
  color:#AEBBCD;
  font-size:.81rem;
  line-height:1.45;
}

.faq-list{gap:10px}
.faq-item{border-radius:14px}
.faq-item summary{
  padding:16px 18px;
  font-size:.93rem;
}
.faq-answer{
  padding:0 18px 18px;
  color:#B3C0CF;
  font-size:.9rem;
  line-height:1.58;
}

.contact-list{
  gap:14px;
  margin-top:18px;
}
.contact-card p{
  color:#B3C0CF;
  font-size:.87rem;
  line-height:1.55;
}

@media(max-width:760px){
  .page-main{padding:30px 14px 50px}
  .grid{grid-template-columns:1fr}
  .lesson{grid-template-columns:1fr}
}

.page-nav .nav-enroll{
  color:#fff !important;
  background:linear-gradient(135deg,#e51d4c,#CA0F3E);
  border:1px solid rgba(255,255,255,.08);
  border-radius:9px;
  padding:9px 12px !important;
  box-shadow:0 10px 24px rgba(202,15,62,.2);
}
.page-nav .nav-enroll:hover{
  transform:translateY(-1px);
  box-shadow:0 14px 30px rgba(202,15,62,.3);
}

/* ===== Readability correction: neutral glass, restrained brand accents ===== */
body::before{opacity:.10 !important}
body::after{opacity:.12 !important}

.toolbar,
.panel,
.lesson,
.faq-item{
  background:
    linear-gradient(180deg,rgba(17,24,39,.88),rgba(10,16,27,.88)) !important;
  border-color:rgba(255,255,255,.10) !important;
  box-shadow:
    0 18px 48px rgba(0,0,0,.24),
    inset 0 1px 0 rgba(255,255,255,.035) !important;
  backdrop-filter:blur(18px) saturate(118%) !important;
  -webkit-backdrop-filter:blur(18px) saturate(118%) !important;
}

.toolbar::before,
.panel::before,
.lesson::before,
.faq-item::before{
  background:linear-gradient(110deg,rgba(255,255,255,.035),transparent 28%,transparent 78%) !important;
  opacity:.55 !important;
}

.card:hover,
.lesson:hover{
  border-color:rgba(255,255,255,.18) !important;
  box-shadow:
    0 24px 58px rgba(0,0,0,.30),
    inset 0 1px 0 rgba(255,255,255,.05) !important;
}

.badge{
  background:rgba(255,255,255,.055) !important;
  border-color:rgba(255,255,255,.10) !important;
  color:#DCE5EF !important;
  box-shadow:none !important;
}

.meta .badge:first-child{
  border-color:rgba(202,15,62,.30) !important;
  color:#FFD9E2 !important;
  background:rgba(202,15,62,.08) !important;
}

.page-kicker{
  background:rgba(202,15,62,.08) !important;
  border-color:rgba(202,15,62,.24) !important;
  color:#F7DCE3 !important;
}

.card h2,
.lesson-subject,
.schedule-day,
.panel h2,
.panel h3{
  color:#FFFFFF !important;
}

.card .muted,
.lesson-meta,
.page-lead,
.faq-answer,
.contact-card p{
  color:#C3CDDA !important;
}

.lesson-program,
.position{
  color:#E8A7B7 !important;
}

.enroll-button,
.page-nav .nav-enroll{
  background:linear-gradient(135deg,#D81B48,#B90F38) !important;
}

.button-secondary{
  background:#111827 !important;
  border-color:rgba(255,255,255,.12) !important;
  color:#F8FAFC !important;
}

.button-secondary:hover{
  border-color:rgba(255,255,255,.22) !important;
}

.toolbar input,
.toolbar select{
  background:#111827 !important;
  border-color:rgba(255,255,255,.12) !important;
  color:#FFFFFF !important;
}

.toolbar input::placeholder{
  color:#8E9AA9 !important;
}

/* ===== Select layout fix ===== */
.toolbar{
  align-items:center !important;
}
.toolbar input{
  flex:1 1 360px !important;
  min-width:220px;
}
.toolbar select{
  flex:0 0 260px !important;
  width:260px !important;
  max-width:100%;
  min-width:200px;
  height:40px;
  line-height:1.2;
  padding:8px 34px 8px 12px !important;
  appearance:auto;
  -webkit-appearance:menulist;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
@media(max-width:720px){
  .toolbar input,
  .toolbar select{
    flex:1 1 100% !important;
    width:100% !important;
    min-width:0;
  }
}

/* ===== Contacts: brand red + main-site motion ===== */
.position,
.lesson-program,
.meta .badge:first-child{
  color:#CA0F3E !important;
}

.contact-card{
  opacity:0;
  transform:translateY(50px) rotateX(12deg) scale(.96);
  transform-origin:50% 100%;
  transition:
    opacity .9s cubic-bezier(.2,.8,.2,1),
    transform .9s cubic-bezier(.2,.8,.2,1),
    border-color .3s ease,
    box-shadow .3s ease;
  will-change:transform,opacity;
}
.contact-card.in-view{
  opacity:1;
  transform:translateY(0) rotateX(0) scale(1);
}
.contact-card:hover{
  transform:translateY(-8px) scale(1.01);
  border-color:rgba(202,15,62,.48) !important;
  box-shadow:
    0 30px 68px rgba(0,0,0,.30),
    0 0 30px rgba(202,15,62,.10),
    inset 0 1px 0 rgba(255,255,255,.05) !important;
}

.contact-highlight{
  border-left-color:#CA0F3E !important;
}

.contact-card a,
.contact-highlight a{
  color:#F8FAFC !important;
  text-decoration:none;
  text-underline-offset:3px;
  font-weight:700;
  transition:color .2s ease,text-decoration-color .2s ease;
}
.contact-card a:hover,
.contact-highlight a:hover{
  color:#FFFFFF !important;
  text-decoration:underline;
  text-decoration-color:#CA0F3E;
}

.contact-card a[href^="tel:"],
.contact-card a[href^="mailto:"],
.contact-highlight a[href^="tel:"],
.contact-highlight a[href^="mailto:"]{
  cursor:pointer;
}

@media(max-width:760px){
  .contact-card{
    transform:translateY(22px);
    transition:opacity .6s ease,transform .6s ease,border-color .25s ease,box-shadow .25s ease;
  }
  .contact-card.in-view{transform:translateY(0)}
}

/* ===== Consent + leaving-site modals ===== */
.section-modal{
  position:fixed;inset:0;z-index:40000;display:none;
  align-items:center;justify-content:center;padding:22px;
  background:rgba(2,6,15,.76);backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.section-modal.active{display:flex}
.section-modal-box{
  width:min(620px,100%);max-height:min(82vh,760px);overflow:auto;
  position:relative;padding:26px;border-radius:20px;
  background:linear-gradient(180deg,rgba(17,24,39,.98),rgba(8,13,23,.98));
  border:1px solid rgba(255,255,255,.11);
  box-shadow:0 34px 100px rgba(0,0,0,.56),inset 0 1px 0 rgba(255,255,255,.04);
}
.section-modal-box h2{
  font:900 1.45rem/1.2 Montserrat,Arial,sans-serif;
  margin:0 42px 10px 0;color:#fff;
}
.section-modal-lead{color:#C3CDDA;line-height:1.62;margin-bottom:18px}
.section-modal-x{
  position:absolute;right:16px;top:16px;width:36px;height:36px;border-radius:10px;
  border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.05);
  color:#fff;cursor:pointer
}
.section-consent-row{
  display:flex;gap:12px;align-items:flex-start;padding:15px;border-radius:14px;
  background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.08);
  color:#fff;line-height:1.45;cursor:pointer
}
.section-consent-row input{margin-top:3px;accent-color:#CA0F3E}
.section-consent-row b{color:#CA0F3E}
.section-consent-details{margin-top:14px;border:1px solid rgba(255,255,255,.08);border-radius:14px}
.section-consent-details summary{
  cursor:pointer;padding:13px 15px;color:#DCE5EF;font-weight:800;font-size:.86rem
}
.section-consent-copy{
  padding:0 15px 15px;color:#AEBBCD;font-size:.84rem;line-height:1.58
}
.section-consent-copy a{color:#fff;text-decoration:underline;text-decoration-color:#CA0F3E}
.section-modal-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
.section-primary-btn,.section-secondary-btn{
  flex:1 1 170px;min-height:44px;border-radius:11px;padding:10px 14px;
  font-weight:800;cursor:pointer;border:0
}
.section-primary-btn{background:linear-gradient(135deg,#D81B48,#B90F38);color:#fff}
.section-primary-btn:disabled{opacity:.42;cursor:not-allowed}
.section-secondary-btn{
  background:#111827;color:#fff;border:1px solid rgba(255,255,255,.11)
}
.section-leaving-url{
  margin:14px 0 16px;padding:12px 14px;border-radius:11px;
  background:#0B1220;border:1px solid rgba(255,255,255,.09);
  color:#D7E0EB;font:700 .82rem/1.45 ui-monospace,SFMono-Regular,Consolas,monospace;
  overflow-wrap:anywhere;
}
body.section-modal-open{overflow:hidden}
@media(max-width:600px){
  .section-modal{padding:12px}.section-modal-box{padding:21px 17px;border-radius:16px}
}

/* ===== Enrollment modal: match main-site structure ===== */
.section-enroll-choice{
  width:100%;
  display:block;
  margin:0 0 12px;
  padding:14px 16px;
  border-radius:12px;
  border:0;
  font:800 .92rem/1.25 Manrope,Arial,sans-serif;
  cursor:pointer;
  transition:transform .2s ease,filter .2s ease,opacity .2s ease,box-shadow .2s ease;
}
.section-enroll-choice:hover:not(:disabled){transform:translateY(-2px);filter:brightness(1.04)}
.section-enroll-choice:disabled{opacity:.42;cursor:not-allowed}
.section-trud-choice{
  background:#2962ff;
  color:#fff;
  box-shadow:0 12px 28px rgba(41,98,255,.24);
}
.section-yandex-choice{
  background:#FFCC00;
  color:#000;
  box-shadow:0 12px 28px rgba(255,204,0,.16);
}
.section-consent-block{
  margin-top:18px;
  padding:14px;
  border-radius:14px;
  background:rgba(255,255,255,.035);
  border:1px solid rgba(255,255,255,.08);
}
.section-consent-row{
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
}
.section-consent-toggle{
  margin-top:10px;
  padding:0;
  border:0;
  background:transparent;
  color:#C9D3E0;
  font-weight:800;
  font-size:.82rem;
  cursor:pointer;
  text-align:left;
}
.section-consent-copy{
  display:none;
  padding:14px 0 0 !important;
  color:#AEBBCD;
}
.section-consent-copy.show{display:block}
.section-policy-link{
  padding:0;
  border:0;
  background:transparent;
  color:#fff;
  text-decoration:underline;
  text-decoration-color:#CA0F3E;
  text-underline-offset:3px;
  cursor:pointer;
  font:700 .84rem/1.4 Manrope,Arial,sans-serif;
  text-align:left;
}
.section-close-text{
  display:block;
  width:100%;
  margin-top:18px;
  padding:10px 12px;
  border:0;
  background:transparent;
  color:#94A3B8;
  font-weight:800;
  cursor:pointer;
}

/* ===== Smoothness / performance pass ===== */

/* Keep the atmosphere, stop animating huge blurred layers */
body::before,
body::after{
  animation:none !important;
  filter:blur(72px) !important;
  transform:translateZ(0);
}

/* Lighter glass compositing */
.page-header{
  backdrop-filter:blur(16px) saturate(120%) !important;
  -webkit-backdrop-filter:blur(16px) saturate(120%) !important;
}

.toolbar,
.panel,
.lesson,
.faq-item{
  backdrop-filter:blur(12px) saturate(112%) !important;
  -webkit-backdrop-filter:blur(12px) saturate(112%) !important;
  box-shadow:
    0 14px 34px rgba(0,0,0,.22),
    inset 0 1px 0 rgba(255,255,255,.03) !important;
}

/* One motion language everywhere */
.page-main{
  animation:smoothPageIn .48s cubic-bezier(.22,.7,.2,1) both !important;
  will-change:opacity,transform;
}
@keyframes smoothPageIn{
  from{opacity:0;transform:translate3d(0,10px,0)}
  to{opacity:1;transform:translate3d(0,0,0)}
}

.card,
.lesson,
.faq-item,
.contact-card{
  backface-visibility:hidden;
  transform:translateZ(0);
}

.card,
.lesson,
.faq-item{
  animation:smoothItemIn .42s cubic-bezier(.22,.7,.2,1) both !important;
  transition:
    transform .24s cubic-bezier(.22,.7,.2,1),
    border-color .24s ease,
    box-shadow .24s ease !important;
}
@keyframes smoothItemIn{
  from{opacity:0;transform:translate3d(0,10px,0)}
  to{opacity:1;transform:translate3d(0,0,0)}
}

.card:hover,
.lesson:hover{
  transform:translate3d(0,-3px,0) !important;
  box-shadow:
    0 18px 42px rgba(0,0,0,.27),
    inset 0 1px 0 rgba(255,255,255,.04) !important;
}

/* Contacts: same smooth motion, no 3D rotation */
.contact-card{
  opacity:0;
  transform:translate3d(0,14px,0) !important;
  transition:
    opacity .46s cubic-bezier(.22,.7,.2,1),
    transform .46s cubic-bezier(.22,.7,.2,1),
    border-color .24s ease,
    box-shadow .24s ease !important;
}
.contact-card.in-view{
  opacity:1;
  transform:translate3d(0,0,0) !important;
}
.contact-card:hover{
  transform:translate3d(0,-3px,0) !important;
}

/* Buttons should feel immediate, not springy */
.button,
.page-nav .nav-enroll,
.section-enroll-choice{
  transition:
    transform .18s ease,
    box-shadow .18s ease,
    filter .18s ease,
    opacity .18s ease !important;
}
.button:hover,
.page-nav .nav-enroll:hover,
.section-enroll-choice:hover:not(:disabled){
  transform:translate3d(0,-1px,0) !important;
}

/* Avoid stacked stagger delays */
.card,
.lesson,
.faq-item{
  animation-delay:0s !important;
}

/* ===== Immersive depth motion ===== */
:root{
  --depth-x:0px;
  --depth-y:0px;
  --scroll-shift:0px;
}

/* Animated ambient layers */
body::before,
body::after{
  animation:ambientFloat 18s ease-in-out infinite alternate !important;
  will-change:transform;
}
body::before{
  transform:translate3d(calc(var(--depth-x) * .18),calc(var(--depth-y) * .18),0) scale(1.02);
}
body::after{
  animation-duration:24s !important;
  animation-delay:-7s !important;
  transform:translate3d(calc(var(--depth-x) * -.12),calc(var(--depth-y) * -.12),0) scale(1.04);
}
@keyframes ambientFloat{
  0%{translate:0 0}
  50%{translate:18px -12px}
  100%{translate:-14px 16px}
}

/* Header has its own glass depth */
.page-header{
  transform:translate3d(0,calc(var(--scroll-shift) * -.02),0);
  transition:background .35s ease,border-color .35s ease,box-shadow .35s ease;
}
.page-header::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:-1px;height:1px;
  background:linear-gradient(90deg,transparent,rgba(202,15,62,.45),rgba(77,86,188,.35),transparent);
  opacity:.7;
}

/* Hero / heading layer moves subtly with scroll */
.page-kicker,
.page-title,
.page-lead,
.back-link{
  will-change:transform;
}
.page-kicker{transform:translate3d(calc(var(--depth-x) * .012),calc(var(--depth-y) * .012),0)}
.page-title{transform:translate3d(calc(var(--depth-x) * .022),calc(var(--depth-y) * .022),0)}
.page-lead{transform:translate3d(calc(var(--depth-x) * .014),calc(var(--depth-y) * .014),0)}

/* Cards gain layered entrance */
.card,
.lesson,
.faq-item,
.contact-card{
  transform-style:preserve-3d;
  perspective:900px;
}

.card.depth-item,
.lesson.depth-item,
.faq-item.depth-item,
.contact-card.depth-item{
  opacity:0;
  transform:translate3d(0,28px,0) scale(.975);
  transition:
    opacity .72s cubic-bezier(.16,1,.3,1),
    transform .72s cubic-bezier(.16,1,.3,1),
    border-color .28s ease,
    box-shadow .28s ease;
}

.card.depth-item.in-view,
.lesson.depth-item.in-view,
.faq-item.depth-item.in-view,
.contact-card.depth-item.in-view{
  opacity:1;
  transform:translate3d(0,0,0) scale(1);
}

/* Deeper hover, but still smooth */
.card:hover,
.lesson:hover,
.contact-card:hover{
  transform:
    translate3d(
      calc(var(--depth-x) * .006),
      -7px,
      0
    )
    scale(1.01) !important;
  box-shadow:
    0 34px 78px rgba(0,0,0,.34),
    0 0 0 1px rgba(255,255,255,.035),
    0 0 34px rgba(202,15,62,.07) !important;
}

/* Liquid highlight moving across glass */
.toolbar::after,
.panel::after,
.lesson::after,
.faq-item::after{
  content:"";
  position:absolute;
  inset:-30% -50%;
  pointer-events:none;
  background:linear-gradient(
    115deg,
    transparent 38%,
    rgba(255,255,255,.055) 48%,
    rgba(255,255,255,.018) 54%,
    transparent 62%
  );
  transform:translate3d(-22%,0,0);
  animation:glassSheen 9s ease-in-out infinite;
  opacity:.6;
}
.panel:nth-child(2n)::after{animation-delay:-2.7s}
.panel:nth-child(3n)::after{animation-delay:-5.1s}
@keyframes glassSheen{
  0%,18%{transform:translate3d(-28%,0,0);opacity:0}
  35%{opacity:.6}
  58%{transform:translate3d(28%,0,0);opacity:.28}
  78%,100%{transform:translate3d(28%,0,0);opacity:0}
}

/* Search/filter bar floats slightly above content */
.toolbar{
  transform:translate3d(calc(var(--depth-x) * -.01),calc(var(--depth-y) * -.01),0);
  transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease;
}

/* Keep animations comfortable on touch devices */
@media(max-width:760px){
  .page-title,.page-lead,.page-kicker,.toolbar{
    transform:none !important;
  }
  body::before,body::after{
    animation-duration:28s !important;
  }
  .toolbar::after,.panel::after,.lesson::after,.faq-item::after{
    animation-duration:13s;
  }
}

@media(prefers-reduced-motion:reduce){
  body::before,body::after,
  .toolbar::after,.panel::after,.lesson::after,.faq-item::after{
    animation:none !important;
  }
}

/* ===== Immersive motion v2: clearly visible depth ===== */
body{
  position:relative;
  overflow-x:hidden;
}

/* Bring ambient light ABOVE the body background, but below content */
body::before,
body::after{
  z-index:0 !important;
  opacity:.20 !important;
  filter:blur(62px) !important;
  pointer-events:none;
}

body::before{
  background:
    radial-gradient(circle at 50% 50%,rgba(202,15,62,.72) 0%,rgba(202,15,62,.34) 28%,rgba(202,15,62,0) 70%) !important;
  animation:ambientRed 14s ease-in-out infinite alternate !important;
}
body::after{
  background:
    radial-gradient(circle at 50% 50%,rgba(77,86,188,.70) 0%,rgba(77,86,188,.30) 30%,rgba(77,86,188,0) 72%) !important;
  animation:ambientBlue 18s ease-in-out infinite alternate !important;
}

@keyframes ambientRed{
  0%{transform:translate3d(-3vw,2vh,0) scale(.92)}
  50%{transform:translate3d(8vw,-5vh,0) scale(1.10)}
  100%{transform:translate3d(2vw,8vh,0) scale(1.02)}
}
@keyframes ambientBlue{
  0%{transform:translate3d(3vw,-4vh,0) scale(1)}
  50%{transform:translate3d(-8vw,8vh,0) scale(1.12)}
  100%{transform:translate3d(-2vw,-1vh,0) scale(.96)}
}

.page-header,
.page-main{
  position:relative;
  z-index:2;
}

/* Visible depth plane behind the content */
.page-main::before{
  content:"";
  position:fixed;
  z-index:-1;
  left:5vw;right:5vw;top:120px;bottom:5vh;
  pointer-events:none;
  border-radius:40px;
  background:
    linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);
  background-size:42px 42px;
  mask-image:linear-gradient(to bottom,rgba(0,0,0,.75),rgba(0,0,0,.16));
  -webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,.75),rgba(0,0,0,.16));
  transform:
    perspective(900px)
    rotateX(63deg)
    translate3d(calc(var(--depth-x) * -.35),calc(70px + var(--scroll-shift) * .10),-120px);
  transform-origin:50% 0%;
  opacity:.55;
}

/* Stronger layer separation on pointer movement */
.page-title{
  transform:
    translate3d(calc(var(--depth-x) * .11),calc(var(--depth-y) * .08 - var(--scroll-shift) * .035),0) !important;
  transition:transform .12s linear;
}
.page-kicker{
  transform:
    translate3d(calc(var(--depth-x) * .06),calc(var(--depth-y) * .05 - var(--scroll-shift) * .02),0) !important;
  transition:transform .12s linear;
}
.page-lead{
  transform:
    translate3d(calc(var(--depth-x) * .045),calc(var(--depth-y) * .04 - var(--scroll-shift) * .012),0) !important;
  transition:transform .12s linear;
}
.toolbar{
  transform:
    translate3d(calc(var(--depth-x) * -.055),calc(var(--depth-y) * -.04 + var(--scroll-shift) * .012),0) !important;
  transition:transform .14s linear,border-color .25s ease,box-shadow .25s ease !important;
}

/* Obvious entrance */
.card.depth-item,
.lesson.depth-item,
.faq-item.depth-item,
.contact-card.depth-item{
  opacity:0 !important;
  transform:perspective(900px) translate3d(0,46px,-70px) rotateX(8deg) scale(.94) !important;
  transition:
    opacity .72s cubic-bezier(.16,1,.3,1),
    transform .82s cubic-bezier(.16,1,.3,1),
    border-color .28s ease,
    box-shadow .28s ease !important;
}

.card.depth-item.in-view,
.lesson.depth-item.in-view,
.faq-item.depth-item.in-view,
.contact-card.depth-item.in-view{
  opacity:1 !important;
  transform:perspective(900px) translate3d(0,0,0) rotateX(0) scale(1) !important;
}

/* Cursor tilt */
.card.tilt-active,
.lesson.tilt-active,
.contact-card.tilt-active{
  transform:
    perspective(900px)
    translate3d(0,-6px,18px)
    rotateX(var(--tilt-x,0deg))
    rotateY(var(--tilt-y,0deg))
    scale(1.012) !important;
  box-shadow:
    0 36px 86px rgba(0,0,0,.38),
    0 0 32px rgba(202,15,62,.09),
    inset 0 1px 0 rgba(255,255,255,.06) !important;
  transition:transform .10s linear,box-shadow .22s ease !important;
}

/* More visible moving highlight */
.toolbar::after,
.panel::after,
.lesson::after,
.faq-item::after{
  background:linear-gradient(
    112deg,
    transparent 32%,
    rgba(255,255,255,.00) 39%,
    rgba(255,255,255,.13) 49%,
    rgba(255,255,255,.035) 55%,
    transparent 67%
  ) !important;
  animation-duration:7s !important;
  opacity:.78 !important;
}

@media(max-width:760px){
  .page-main::before{display:none}
  .page-title,.page-lead,.page-kicker,.toolbar{
    transform:none !important;
  }
}

/* ===== Main-site hover sheen: cursor-triggered, seamless ===== */
.toolbar::after,
.panel::after,
.lesson::after,
.faq-item::after{
  content:"" !important;
  position:absolute !important;
  top:0 !important;
  left:-60% !important;
  width:28% !important;
  height:100% !important;
  inset:auto !important;
  pointer-events:none !important;
  opacity:1 !important;
  background:linear-gradient(
    115deg,
    transparent 0%,
    rgba(255,255,255,.07) 45%,
    rgba(255,255,255,.13) 50%,
    rgba(255,255,255,.07) 55%,
    transparent 100%
  ) !important;
  transform:skewX(-18deg) !important;
  transition:left 1.1s cubic-bezier(.2,.8,.2,1) !important;
  animation:none !important;
  will-change:left;
}

.toolbar:hover::after,
.panel:hover::after,
.lesson:hover::after,
.faq-item:hover::after{
  left:130% !important;
}

/* No competing automatic sheen */
.panel:nth-child(2n)::after,
.panel:nth-child(3n)::after{
  animation:none !important;
}

/* Smooth cursor-following depth */
.card.tilt-active,
.lesson.tilt-active,
.contact-card.tilt-active{
  transition:
    box-shadow .28s ease,
    border-color .28s ease !important;
  will-change:transform;
}

/* On exit, settle back softly */
.card.depth-item.in-view,
.lesson.depth-item.in-view,
.contact-card.depth-item.in-view{
  transition:
    opacity .72s cubic-bezier(.16,1,.3,1),
    transform .42s cubic-bezier(.22,.61,.36,1),
    border-color .28s ease,
    box-shadow .28s ease !important;
}

/* ===== Remove hover sheen completely ===== */
.toolbar::after,
.panel::after,
.lesson::after,
.faq-item::after{
  content:none !important;
  display:none !important;
  animation:none !important;
  transition:none !important;
}

/* Programs must appear immediately after data arrives: no reveal delay. */
#programGrid .card{animation:none !important;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease !important;}

/* ===== Performance motion reset: premium-motion.js owns animation ===== */
.section-motion-lite body::before,
.section-motion-lite body::after{
  animation:none!important;
  transform:none!important;
  will-change:auto!important;
}
.section-motion-lite .page-header,
.section-motion-lite .page-kicker,
.section-motion-lite .page-title,
.section-motion-lite .page-lead,
.section-motion-lite .back-link,
.section-motion-lite .toolbar{
  transform:none!important;
  will-change:auto!important;
}
.section-motion-lite .card,
.section-motion-lite .lesson,
.section-motion-lite .faq-item,
.section-motion-lite .contact-card{
  transform-style:flat!important;
  perspective:none!important;
}
.section-motion-lite .card.depth-item,
.section-motion-lite .lesson.depth-item,
.section-motion-lite .faq-item.depth-item,
.section-motion-lite .contact-card.depth-item,
.section-motion-lite .card.tilt-active,
.section-motion-lite .lesson.tilt-active,
.section-motion-lite .contact-card.tilt-active{
  opacity:1!important;
  transform:none!important;
}
.section-motion-lite .toolbar::after,
.section-motion-lite .panel::after,
.section-motion-lite .lesson::after,
.section-motion-lite .faq-item::after{
  display:none!important;
  animation:none!important;
  transition:none!important;
}

/* ===== Static ambient optimization ===== */
.section-motion-lite body::before,
.section-motion-lite body::after{
  filter:none!important;
  opacity:.12!important;
}
.section-motion-lite .page-header{
  backdrop-filter:blur(14px) saturate(125%)!important;
  -webkit-backdrop-filter:blur(14px) saturate(125%)!important;
}
@media(max-width:900px){
  .section-motion-lite .page-header{
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
}
