:root{
  --mg-bg: #faf8f5;
  --mg-bg-alt: #f2effa;
  --mg-bg-dark: #14132a;
  --mg-bg-dark-alt: #1c1a38;
  --mg-text: #1e1d2f;
  --mg-text-soft: #5f5d75;
  --mg-text-inverse: #f5f3fb;
  --mg-primary: #6153e0;
  --mg-primary-dark: #4a3fc0;
  --mg-secondary: #0f8a80;
  --mg-secondary-bright: #1fb8ac;
  --mg-accent: #ff8a5c;
  --mg-accent-2: #ffc857;
  --mg-border: rgba(30,29,47,0.09);
  --mg-border-inverse: rgba(245,243,251,0.18);

  --radius-sm: 10px;
  --radius-md: 18px;
  --radius-lg: 28px;
  --radius-xl: 44px;

  --shadow-sm: 0 2px 6px rgba(20,19,40,0.06), 0 1px 2px rgba(20,19,40,0.05);
  --shadow-md: 0 10px 26px rgba(20,19,40,0.09), 0 3px 8px rgba(20,19,40,0.06);
  --shadow-lg: 0 26px 64px rgba(20,19,40,0.16), 0 10px 24px rgba(20,19,40,0.09);
  --shadow-glow-primary: 0 14px 34px rgba(97,83,224,0.28);
  --shadow-glow-accent: 0 14px 34px rgba(255,138,92,0.26);

  --ease: cubic-bezier(.4,0,.2,1);
  --ease-out: cubic-bezier(.16,1,.3,1);

  --container-max: 1240px;
}

*, *::before, *::after{ box-sizing: border-box; }
html{
  scroll-behavior: smooth;
  scroll-snap-type: y proximity;
}
body{
  margin:0;
  background: var(--mg-bg);
  color: var(--mg-text);
  font-family: 'Urbanist', sans-serif;
  font-weight: 400;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img{ max-width:100%; display:block; }
a{ color: inherit; text-decoration:none; }
h1,h2,h3,h4{ font-family:'Urbanist', sans-serif; margin:0 0 .5em; font-weight:700; letter-spacing:-0.01em; }
p{ margin:0 0 1em; color: var(--mg-text-soft); }
ul,ol{ padding:0; margin:0; list-style:none; }
button{ font-family: inherit; cursor:pointer; }
input, textarea{ font-family: inherit; }

.global-eyebrow{
  display:inline-block;
  font-size:.85rem;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color: var(--mg-primary);
  margin-bottom:1rem;
}
.global-eyebrow-light{ color: var(--mg-accent-2); }


.global-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  padding: .9rem 1.9rem;
  border-radius: var(--radius-lg);
  font-weight:600;
  font-size:1rem;
  border:2px solid transparent;
  transition: transform .3s var(--ease), box-shadow .3s var(--ease), background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);
  min-height:48px;
  white-space: nowrap;
}
.global-btn-primary{
  background: linear-gradient(135deg, var(--mg-primary), var(--mg-primary-dark));
  color:#fff;
  box-shadow: var(--shadow-glow-primary);
}
.global-btn-primary:hover{ transform: translateY(-3px); box-shadow: 0 20px 40px rgba(97,83,224,0.34); }
.global-btn-ghost{
  background: rgba(97,83,224,0.06);
  color: var(--mg-primary-dark);
  border-color: rgba(97,83,224,0.25);
}
.global-btn-ghost:hover{ background: rgba(97,83,224,0.12); border-color: var(--mg-primary); transform: translateY(-3px); }
.global-btn-outline{
  background: transparent;
  color:#fff;
  border-color: rgba(255,255,255,0.7);
}
.global-btn-outline:hover{ background: rgba(255,255,255,0.15); border-color:#fff; transform: translateY(-3px); }
.global-btn-large{ padding: 1.1rem 2.4rem; font-size:1.05rem; }


.global-cookie-bar{
  background: linear-gradient(90deg, var(--mg-bg-dark), #21205c);
  color: var(--mg-text-inverse);
  overflow:hidden;
  max-height: 200px;
  transition: max-height .5s var(--ease), padding .5s var(--ease), opacity .4s var(--ease);
}
.global-cookie-bar.global-cookie-hidden{
  max-height:0;
  padding:0;
  opacity:0;
  pointer-events:none;
}
.global-cookie-content{
  max-width: var(--container-max);
  margin:0 auto;
  padding: .7rem 1.5rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.5rem;
  flex-wrap:wrap;
}
.global-cookie-content p{
  margin:0;
  font-size:.85rem;
  color: rgba(245,243,251,0.85);
  max-width: 720px;
}
.global-cookie-content a{ color: var(--mg-accent-2); text-decoration:underline; }
.global-cookie-actions{ display:flex; gap:.6rem; flex-shrink:0; }
.global-cookie-btn{
  padding:.5rem 1.1rem;
  border-radius: var(--radius-sm);
  font-size:.82rem;
  font-weight:600;
  border:1px solid rgba(245,243,251,0.3);
  background:transparent;
  color:#fff;
  transition: background .3s var(--ease), border-color .3s var(--ease), transform .2s var(--ease);
  min-height:38px;
}
.global-cookie-accept{ background: var(--mg-accent); border-color: var(--mg-accent); color:#20120a; }
.global-cookie-btn:hover{ transform: translateY(-2px); }
.global-cookie-accept:hover{ background: var(--mg-accent-2); border-color: var(--mg-accent-2); }
.global-cookie-decline:hover{ background: rgba(245,243,251,0.12); }


.global-header{
  position: sticky;
  top:0;
  z-index:100;
  background: transparent;
  transition: background .4s var(--ease), box-shadow .4s var(--ease), backdrop-filter .4s var(--ease);
}
.global-header.global-header-scrolled{
  background: rgba(250,248,245,0.92);
  backdrop-filter: blur(14px);
  box-shadow: var(--shadow-md);
}
.global-header-inner{
  max-width: var(--container-max);
  margin:0 auto;
  padding: 1.1rem 1.5rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.5rem;
}
.global-logo{ display:flex; align-items:center; gap:.6rem; }
.global-logo-img{ width:38px; height:38px; }
.global-logo-text{ font-weight:800; font-size:1.15rem; letter-spacing:-0.01em; }
.global-nav{ display:flex; gap:2rem; }
.global-nav-link{
  font-weight:600;
  font-size:.95rem;
  color: var(--mg-text-soft);
  position:relative;
  padding:.3rem 0;
  transition: color .3s var(--ease);
}
.global-nav-link::after{
  content:'';
  position:absolute;
  left:0; bottom:-2px;
  height:2px; width:0;
  background: var(--mg-primary);
  transition: width .3s var(--ease);
}
.global-nav-link:hover, .global-nav-active{ color: var(--mg-text); }
.global-nav-link:hover::after, .global-nav-active::after{ width:100%; }
.global-nav-cta{
  background: var(--mg-primary);
  color:#fff;
  padding:.65rem 1.4rem;
  border-radius: var(--radius-md);
  font-weight:600;
  font-size:.92rem;
  box-shadow: var(--shadow-glow-primary);
  transition: transform .3s var(--ease), box-shadow .3s var(--ease);
  flex-shrink:0;
}
.global-nav-cta:hover{ transform: translateY(-2px); box-shadow: 0 18px 34px rgba(97,83,224,0.32); }
.global-menu-toggle{
  display:none;
  flex-direction:column;
  gap:5px;
  background:none;
  border:none;
  width:44px; height:44px;
  align-items:center;
  justify-content:center;
}
.global-menu-toggle span{
  width:24px; height:2px;
  background: var(--mg-text);
  border-radius:2px;
  transition: all .3s var(--ease);
}
.global-progress-track{
  height:3px;
  background: rgba(97,83,224,0.08);
  width:100%;
}
.global-progress-bar{
  height:100%;
  width:0%;
  background: linear-gradient(90deg, var(--mg-primary), var(--mg-accent));
  transition: width .1s linear;
}


.global-mobile-overlay{
  position:fixed;
  inset:0;
  z-index:200;
  background: linear-gradient(155deg, var(--mg-bg-dark), var(--mg-primary-dark) 70%);
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:0;
  visibility:hidden;
  transition: opacity .4s var(--ease), visibility .4s var(--ease);
}
.global-mobile-overlay.global-mobile-open{
  opacity:1;
  visibility:visible;
}
.global-mobile-close{
  position:absolute;
  top:1.5rem; right:1.5rem;
  width:48px; height:48px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,0.3);
  background: rgba(255,255,255,0.08);
  color:#fff;
  font-size:1.3rem;
  display:flex; align-items:center; justify-content:center;
  transition: background .3s var(--ease), transform .3s var(--ease);
}
.global-mobile-close:hover{ background: rgba(255,255,255,0.2); transform: rotate(90deg); }
.global-mobile-nav{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:1.6rem;
}
.global-mobile-nav a{
  font-size: clamp(1.6rem, 5vw, 2.4rem);
  font-weight:700;
  color:#fff;
  opacity:.9;
  transition: opacity .3s var(--ease), transform .3s var(--ease);
}
.global-mobile-nav a:hover{ opacity:1; transform: translateX(6px); }


.global-reveal{ opacity:0; transform: translateY(24px); }
.global-reveal.global-revealed{
  animation: reveal .7s var(--ease-out) forwards;
}
@keyframes reveal{ to{ opacity:1; transform:translateY(0); } }

.global-fade-in{ opacity:0; transform: translateY(30px); transition: opacity .7s var(--ease-out), transform .7s var(--ease-out); }
.global-fade-in.global-fade-visible{ opacity:1; transform:translateY(0); }


.home-hero{
  position:relative;
  min-height: 100svh;
  display:flex;
  align-items:center;
  padding: 6rem 1.5rem 4rem;
  overflow:hidden;
  scroll-snap-align:start;
}
.home-hero-blob{
  position:absolute;
  border-radius:50%;
  filter: blur(110px);
  opacity:.55;
  z-index:0;
}
.home-hero-blob-1{ width:520px; height:520px; background: var(--mg-primary); top:-140px; left:-120px; }
.home-hero-blob-2{ width:460px; height:460px; background: var(--mg-secondary-bright); bottom:-160px; right:-100px; opacity:.4; }
.home-hero-blob-3{ width:380px; height:380px; background: var(--mg-accent); top:30%; right:15%; opacity:.28; }
.home-hero-shape{ position:absolute; z-index:0; opacity:.5; }
.home-hero-shape-circle{ width:90px; height:90px; border-radius:50%; border:2px solid var(--mg-accent-2); top:18%; left:8%; }
.home-hero-shape-ring{ width:140px; height:140px; border-radius:50%; border:2px dashed var(--mg-primary); bottom:12%; left:12%; }
.home-hero-shape-square{ width:60px; height:60px; border-radius:16px; background: rgba(31,184,172,0.2); top:65%; right:8%; transform: rotate(20deg); }
.home-hero-inner{
  position:relative; z-index:1;
  max-width: var(--container-max);
  margin:0 auto;
  width:100%;
  text-align:center;
}
.home-hero-eyebrow{ font-size:.9rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color: var(--mg-primary-dark); margin-bottom:1.2rem; }
.home-hero-title{
  font-size: clamp(2.6rem, 6vw + 1rem, 6.2rem);
  font-weight:800;
  line-height:1.03;
  letter-spacing:-0.02em;
  margin:0 auto 1.5rem;
  max-width: 18ch;
  color: var(--mg-text);
}
.home-hero-highlight{
  background: linear-gradient(120deg, var(--mg-primary), var(--mg-accent));
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.home-hero-sub{
  font-size: clamp(1.05rem, .5vw + 1rem, 1.3rem);
  max-width:640px;
  margin:0 auto 2.2rem;
  color: var(--mg-text-soft);
}
.home-hero-actions{ display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; margin-bottom:3rem; }
.home-hero-image-wrap{
  max-width:900px;
  margin:0 auto;
  border-radius: var(--radius-xl);
  overflow:hidden;
  box-shadow: var(--shadow-lg);
  border:1px solid var(--mg-border);
}
.home-hero-image{ width:100%; aspect-ratio: 16/9; object-fit:cover; }

.home-intro{ position:relative; padding: 6rem 1.5rem; scroll-snap-align:start; overflow:hidden; }
.home-intro-blob{ position:absolute; width:600px; height:600px; background: var(--mg-secondary-bright); opacity:.16; filter: blur(130px); top:-100px; right:-200px; border-radius:50%; }
.home-intro-inner{ position:relative; z-index:1; max-width: var(--container-max); margin:0 auto; }
.home-intro-title{ font-size: clamp(2rem, 3.2vw + 1rem, 3.2rem); max-width:16ch; }
.home-intro-text{ max-width:760px; font-size:1.08rem; }
.home-intro-grid{
  container-type: inline-size;
  container-name: introgrid;
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(240px,1fr));
  gap:1.5rem;
  margin-top:2.5rem;
}
.home-intro-point{
  background:#fff;
  border-radius: var(--radius-md);
  padding:1.8rem;
  box-shadow: var(--shadow-sm);
  border:1px solid var(--mg-border);
  transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}
.home-intro-point:hover{ transform: translateY(-6px); box-shadow: var(--shadow-md); }
.home-intro-point i{ font-size:1.5rem; color: var(--mg-primary); margin-bottom:.8rem; }
.home-intro-point h3{ font-size:1.1rem; }
.home-intro-point p{ font-size:.95rem; margin:0; }

.home-topics{ position:relative; background: var(--mg-bg-dark); padding:6rem 1.5rem; scroll-snap-align:start; overflow:hidden;}
.home-topics::before{ content:''; position:absolute; width:500px; height:500px; background: var(--mg-primary); opacity:.35; filter: blur(120px); top:-100px; left:20%; border-radius:50%; }
.home-topics::after{ content:''; position:absolute; width:420px; height:420px; background: var(--mg-secondary-bright); opacity:.3; filter: blur(120px); bottom:-140px; right:5%; border-radius:50%; }
.home-topics-inner{ position:relative; z-index:1; max-width: var(--container-max); margin:0 auto; text-align:center; }
.home-topics-title{ color:#fff; font-size: clamp(2rem, 3.2vw + 1rem, 3.2rem); max-width:18ch; margin-left:auto; margin-right:auto; }
.home-topics-lead{ color: rgba(245,243,251,0.75); max-width:680px; margin:0 auto 3rem; font-size:1.05rem; }
.home-topics-grid{
  container-type: inline-size;
  container-name: topics;
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap:1.5rem;
  text-align:left;
}
.home-topic-card{
  background: rgba(255,255,255,0.06);
  border:1px solid rgba(255,255,255,0.12);
  border-radius: var(--radius-lg);
  padding:2rem;
  display:flex;
  flex-direction:column;
  gap:1rem;
  transition: transform .3s var(--ease), background .3s var(--ease), box-shadow .3s var(--ease);
}
.home-topic-card:hover{ transform: translateY(-6px); background: rgba(255,255,255,0.1); box-shadow: var(--shadow-lg); }
.home-topic-icon{
  width:56px; height:56px;
  border-radius: var(--radius-md);
  background: linear-gradient(135deg, var(--mg-primary), var(--mg-secondary-bright));
  display:flex; align-items:center; justify-content:center;
  font-size:1.3rem; color:#fff;
  flex-shrink:0;
}
.home-topic-body h3{ color:#fff; font-size:1.2rem; }
.home-topic-body p{ color: rgba(245,243,251,0.72); font-size:.95rem; margin:0; }
@container topics (min-width: 620px){
  .home-topic-card{ flex-direction:row; align-items:flex-start; }
}

.home-approach{ position:relative; padding:6rem 1.5rem; scroll-snap-align:start; overflow:hidden; }
.home-approach-blob{ position:absolute; width:540px; height:540px; background: var(--mg-accent); opacity:.16; filter: blur(120px); bottom:-160px; left:-160px; border-radius:50%; }
.home-approach-inner{
  position:relative; z-index:1;
  max-width: var(--container-max); margin:0 auto;
  display:grid; grid-template-columns: 1.1fr .9fr; gap:3.5rem; align-items:center;
}
.home-approach-title{ font-size: clamp(2rem, 3vw + 1rem, 2.8rem); max-width:14ch; }
.home-approach-lead{ font-size:1.05rem; max-width:52ch; }
.home-approach-steps{ display:flex; flex-direction:column; gap:1.6rem; margin-top:2rem; counter-reset:none; }
.home-approach-steps li{ display:flex; gap:1.2rem; align-items:flex-start; }
.home-approach-num{
  font-weight:800; font-size:1.1rem; color: var(--mg-primary);
  background: rgba(97,83,224,0.1);
  border-radius:50%;
  width:44px; height:44px;
  flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
}
.home-approach-steps h3{ font-size:1.05rem; margin-bottom:.3rem; }
.home-approach-steps p{ font-size:.95rem; margin:0; }
.home-approach-image-wrap{ border-radius: var(--radius-xl); overflow:hidden; box-shadow: var(--shadow-lg); border:1px solid var(--mg-border); }
.home-approach-image{ width:100%; aspect-ratio: 4/5; object-fit:cover; }

.home-audience{ position:relative; background: var(--mg-bg-alt); padding:6rem 1.5rem; scroll-snap-align:start; }
.home-audience-inner{ max-width: var(--container-max); margin:0 auto; text-align:center; }
.home-audience-title{ font-size: clamp(2rem, 3.2vw + 1rem, 3rem); max-width:20ch; margin-left:auto; margin-right:auto; }
.home-audience-grid{
  container-type: inline-size;
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap:1.4rem;
  margin-top:2.5rem;
  text-align:left;
}
.home-audience-card{
  background:#fff;
  border-radius: var(--radius-md);
  padding:1.6rem;
  border:1px solid var(--mg-border);
  box-shadow: var(--shadow-sm);
  transition: transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
}
.home-audience-card:hover{ transform: translateY(-5px); box-shadow: var(--shadow-md); border-color: rgba(97,83,224,0.25); }
.home-audience-card h3{ font-size:1.05rem; color: var(--mg-primary-dark); }
.home-audience-card p{ font-size:.92rem; margin:0; }

.home-curriculum{ position:relative; padding:6rem 1.5rem; scroll-snap-align:start; overflow:hidden; }
.home-curriculum-blob{ position:absolute; width:480px; height:480px; background: var(--mg-secondary-bright); opacity:.14; filter: blur(120px); top:-100px; right:-140px; border-radius:50%; }
.home-curriculum-inner{
  position:relative; z-index:1;
  max-width: var(--container-max); margin:0 auto;
  display:grid; grid-template-columns: .85fr 1.15fr; gap:3.5rem; align-items:center;
}
.home-curriculum-image-wrap{ border-radius: var(--radius-xl); overflow:hidden; box-shadow: var(--shadow-lg); border:1px solid var(--mg-border); }
.home-curriculum-image{ width:100%; aspect-ratio: 3/4; object-fit:cover; }
.home-curriculum-title{ font-size: clamp(2rem, 3vw + 1rem, 2.8rem); max-width:14ch; }
.home-curriculum-lead{ font-size:1.02rem; max-width:52ch; }
.home-curriculum-list{ display:flex; flex-direction:column; gap:1.1rem; margin-top:1.6rem; }
.home-curriculum-item{
  background: var(--mg-bg-alt);
  border-radius: var(--radius-md);
  padding:1.3rem 1.5rem;
  border:1px solid var(--mg-border);
  transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}
.home-curriculum-item:hover{ transform: translateX(6px); box-shadow: var(--shadow-sm); }
.home-curriculum-tag{ font-size:.75rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color: var(--mg-secondary); }
.home-curriculum-item h3{ font-size:1.05rem; margin:.3rem 0; }
.home-curriculum-item p{ font-size:.9rem; margin:0; }

.home-faq{ position:relative; background: var(--mg-bg-dark); padding:6rem 1.5rem; scroll-snap-align:start; overflow:hidden; }
.home-faq::before{ content:''; position:absolute; width:460px; height:460px; background: var(--mg-primary); opacity:.3; filter: blur(120px); bottom:-140px; left:10%; border-radius:50%; }
.home-faq-inner{ position:relative; z-index:1; max-width:840px; margin:0 auto; }
.home-faq-title{ color:#fff; text-align:center; font-size: clamp(2rem, 3vw + 1rem, 2.8rem); }

.home-cta{ position:relative; padding:6rem 1.5rem; scroll-snap-align:start; overflow:hidden; display:flex; align-items:center; min-height:60vh; }
.home-cta-blob{ position:absolute; width:640px; height:640px; background: linear-gradient(135deg, var(--mg-primary), var(--mg-accent)); opacity:.2; filter: blur(130px); top:50%; left:50%; transform: translate(-50%,-50%); border-radius:50%; }
.home-cta-inner{ position:relative; z-index:1; max-width:760px; margin:0 auto; text-align:center; }
.home-cta-title{ font-size: clamp(2rem, 3.6vw + 1rem, 3.4rem); }
.home-cta-text{ font-size:1.1rem; margin-bottom:2rem; }


.global-accordion{ display:flex; flex-direction:column; gap:1rem; }
.global-accordion-item{
  background:#fff;
  border-radius: var(--radius-md);
  border:1px solid var(--mg-border);
  overflow:hidden;
  box-shadow: var(--shadow-sm);
  transition: box-shadow .3s var(--ease);
}
.home-faq .global-accordion-item{ background: rgba(255,255,255,0.06); border-color: rgba(255,255,255,0.14); }
.global-accordion-item:hover{ box-shadow: var(--shadow-md); }
.global-accordion-trigger{
  width:100%;
  display:flex; align-items:center; justify-content:space-between;
  gap:1rem;
  background:none; border:none;
  padding:1.3rem 1.6rem;
  font-weight:700; font-size:1rem;
  color: var(--mg-text);
  text-align:left;
  min-height:44px;
}
.home-faq .global-accordion-trigger{ color:#fff; }
.global-accordion-trigger i{ transition: transform .35s var(--ease); color: var(--mg-primary); flex-shrink:0; }
.home-faq .global-accordion-trigger i{ color: var(--mg-accent-2); }
.global-accordion-item.global-accordion-open .global-accordion-trigger i{ transform: rotate(45deg); }
.global-accordion-panel{
  max-height:0;
  overflow:hidden;
  transition: max-height .5s var(--ease);
  padding: 0 1.6rem;
}
.global-accordion-panel p{ margin:0 0 1.4rem; font-size:.95rem; }
.home-faq .global-accordion-panel p{ color: rgba(245,243,251,0.75); }
.global-accordion-compact .global-accordion-trigger{ padding:1rem 1.2rem; font-size:.95rem; }
.global-accordion-compact .global-accordion-panel{ padding: 0 1.2rem; }


.wiw-hero{ position:relative; padding: 9rem 1.5rem 5rem; overflow:hidden; }
.wiw-hero-blob{ position:absolute; border-radius:50%; filter: blur(120px); }
.wiw-hero-blob-1{ width:520px; height:520px; background: var(--mg-primary); opacity:.25; top:-160px; left:-100px; }
.wiw-hero-blob-2{ width:440px; height:440px; background: var(--mg-secondary-bright); opacity:.22; bottom:-160px; right:-80px; }
.wiw-hero-inner{ position:relative; z-index:1; max-width:900px; margin:0 auto; text-align:center; }
.wiw-hero-title{ font-size: clamp(2.4rem, 5vw + 1rem, 4.4rem); line-height:1.08; }
.wiw-hero-sub{ font-size:1.15rem; max-width:640px; margin:0 auto; }

.wiw-block{ padding:5rem 1.5rem; background: var(--mg-bg); }
.wiw-block:nth-of-type(even){ background: var(--mg-bg-alt); }
.wiw-block-inner{
  max-width: var(--container-max); margin:0 auto;
  display:grid; grid-template-columns: 1.1fr .9fr; gap:3rem; align-items:center;
}
.wiw-block-reverse .wiw-block-inner{ grid-template-columns: .9fr 1.1fr; }
.wiw-block-reverse .wiw-block-image-wrap{ order:1; }
.wiw-block-reverse .wiw-block-text{ order:2; }
.wiw-block-num{ font-size:.85rem; font-weight:800; color: var(--mg-primary); letter-spacing:.12em; }
.wiw-block-text h2{ font-size: clamp(1.6rem, 2.4vw + 1rem, 2.2rem); margin-top:.3rem; }
.wiw-block-text p{ font-size:1rem; }
.wiw-block-quote{
  display:flex; gap:.8rem; align-items:flex-start;
  background: rgba(97,83,224,0.07);
  border-left:3px solid var(--mg-primary);
  border-radius: var(--radius-sm);
  padding:1.1rem 1.3rem;
  margin-top:1rem;
}
.wiw-block-quote i{ color: var(--mg-primary); margin-top:.2rem; }
.wiw-block-quote p{ margin:0; font-size:.95rem; font-style:italic; }
.wiw-block-image-wrap{ border-radius: var(--radius-lg); overflow:hidden; box-shadow: var(--shadow-lg); border:1px solid var(--mg-border); }
.wiw-block-image{ width:100%; aspect-ratio: 4/3; object-fit:cover; }

.wiw-table{ padding:6rem 1.5rem; background: var(--mg-bg-dark); }
.wiw-table-inner{ max-width: var(--container-max); margin:0 auto; text-align:center; }
.wiw-table-title{ color:#fff; font-size: clamp(1.8rem, 3vw + 1rem, 2.6rem); margin-bottom:2rem; }
.wiw-table-wrap{ overflow-x:auto; border-radius: var(--radius-lg); border:1px solid rgba(255,255,255,0.14); }
table{ width:100%; border-collapse:collapse; min-width:560px; }
th,td{ padding:1rem 1.4rem; text-align:left; font-size:.92rem; color: rgba(245,243,251,0.85); border-bottom:1px solid rgba(255,255,255,0.1); }
th{ color: var(--mg-accent-2); font-weight:700; text-transform:uppercase; font-size:.78rem; letter-spacing:.08em; }
tr:last-child td{ border-bottom:none; }

.wiw-cta{ position:relative; padding:6rem 1.5rem; text-align:center; overflow:hidden; }
.wiw-cta-blob{ position:absolute; width:560px; height:560px; background: var(--mg-accent); opacity:.16; filter: blur(120px); top:50%; left:50%; transform: translate(-50%,-50%); border-radius:50%; }
.wiw-cta-inner{ position:relative; z-index:1; max-width:660px; margin:0 auto; }
.wiw-cta-inner h2{ font-size: clamp(1.8rem, 3vw + 1rem, 2.6rem); }
.wiw-cta-inner p{ font-size:1.05rem; margin-bottom:2rem; }


.web-hero{ position:relative; padding:9rem 1.5rem 5rem; overflow:hidden; }
.web-hero-blob{ position:absolute; border-radius:50%; filter: blur(120px); }
.web-hero-blob-1{ width:480px; height:480px; background: var(--mg-primary); opacity:.22; top:-140px; right:-80px; }
.web-hero-blob-2{ width:420px; height:420px; background: var(--mg-accent); opacity:.2; bottom:-160px; left:-100px; }
.web-hero-inner{ position:relative; z-index:1; max-width: var(--container-max); margin:0 auto; display:grid; grid-template-columns: 1.1fr .9fr; gap:3rem; align-items:center; }
.web-hero-title{ font-size: clamp(2.3rem, 4.6vw + 1rem, 4rem); line-height:1.08; max-width:14ch; }
.web-hero-sub{ font-size:1.1rem; max-width:52ch; }
.web-hero-image-wrap{ border-radius: var(--radius-xl); overflow:hidden; box-shadow: var(--shadow-lg); border:1px solid var(--mg-border); }
.web-hero-image{ width:100%; aspect-ratio:4/5; object-fit:cover; }

.web-format{ padding:5rem 1.5rem; background: var(--mg-bg-alt); }
.web-format-inner{ max-width: var(--container-max); margin:0 auto; text-align:center; }
.web-format-title{ font-size: clamp(1.8rem, 3vw + 1rem, 2.6rem); max-width:22ch; margin:0 auto 2.5rem; }
.web-format-grid{ container-type: inline-size; display:grid; grid-template-columns: repeat(auto-fit, minmax(240px,1fr)); gap:1.5rem; text-align:left; }
.web-format-card{ background:#fff; border-radius: var(--radius-md); padding:1.8rem; border:1px solid var(--mg-border); box-shadow: var(--shadow-sm); transition: transform .3s var(--ease), box-shadow .3s var(--ease); }
.web-format-card:hover{ transform: translateY(-6px); box-shadow: var(--shadow-md); }
.web-format-time{ font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color: var(--mg-secondary); }
.web-format-card h3{ font-size:1.1rem; margin:.4rem 0; }
.web-format-card p{ font-size:.92rem; margin:0; }

.web-topics{ position:relative; padding:6rem 1.5rem; overflow:hidden; }
.web-topics-blob{ position:absolute; width:520px; height:520px; background: var(--mg-secondary-bright); opacity:.15; filter: blur(120px); top:-140px; right:-140px; border-radius:50%; }
.web-topics-inner{ position:relative; z-index:1; max-width: var(--container-max); margin:0 auto; }
.web-topics-title{ font-size: clamp(1.9rem, 3.2vw + 1rem, 2.8rem); max-width:20ch; }
.web-topics-lead{ max-width:640px; font-size:1.02rem; }
.web-topics-list{ container-type: inline-size; display:flex; flex-direction:column; gap:1.1rem; margin-top:2rem; }
.web-topics-item{
  display:flex; gap:1.2rem; align-items:flex-start;
  background: var(--mg-bg-alt);
  border-radius: var(--radius-md);
  padding:1.4rem 1.6rem;
  border:1px solid var(--mg-border);
  transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}
.web-topics-item:hover{ transform: translateX(6px); box-shadow: var(--shadow-sm); }
.web-topics-icon{ width:48px; height:48px; border-radius: var(--radius-sm); background: linear-gradient(135deg, var(--mg-primary), var(--mg-secondary-bright)); display:flex; align-items:center; justify-content:center; color:#fff; flex-shrink:0; }
.web-topics-item h3{ font-size:1.05rem; margin-bottom:.3rem; }
.web-topics-item p{ font-size:.92rem; margin:0; }

.web-image-block{ padding:5rem 1.5rem; background: var(--mg-bg-dark); }
.web-image-block-inner{ max-width: var(--container-max); margin:0 auto; display:grid; grid-template-columns: .9fr 1.1fr; gap:3rem; align-items:center; }
.web-image-block-img{ border-radius: var(--radius-lg); width:100%; aspect-ratio:4/3; object-fit:cover; box-shadow: var(--shadow-lg); }
.web-image-block-text h2{ color:#fff; font-size: clamp(1.6rem, 2.6vw + 1rem, 2.3rem); }
.web-image-block-text p{ color: rgba(245,243,251,0.75); }

.web-cta{ position:relative; padding:6rem 1.5rem; text-align:center; overflow:hidden; }
.web-cta-blob{ position:absolute; width:560px; height:560px; background: var(--mg-primary); opacity:.15; filter: blur(120px); top:50%; left:50%; transform: translate(-50%,-50%); border-radius:50%; }
.web-cta-inner{ position:relative; z-index:1; max-width:640px; margin:0 auto; }
.web-cta-inner h2{ font-size: clamp(1.8rem, 3vw + 1rem, 2.6rem); }
.web-cta-inner p{ margin-bottom:2rem; }


.cs-hero{ position:relative; padding:9rem 1.5rem 4rem; overflow:hidden; }
.cs-hero-blob{ position:absolute; width:560px; height:560px; background: var(--mg-accent); opacity:.2; filter: blur(130px); top:-160px; left:20%; border-radius:50%; }
.cs-hero-inner{ position:relative; z-index:1; max-width:820px; margin:0 auto; text-align:center; }
.cs-hero-title{ font-size: clamp(2.3rem, 4.6vw + 1rem, 4rem); line-height:1.08; }
.cs-hero-sub{ font-size:1.1rem; max-width:640px; margin:0 auto; }

.cs-scenarios{ padding:2rem 1.5rem 5rem; }
.cs-scenarios-inner{ max-width:920px; margin:0 auto; display:flex; flex-direction:column; gap:2.5rem; }
.cs-scenario{ display:flex; gap:1.6rem; align-items:flex-start; }
.cs-scenario-mark{
  font-size:1.6rem; font-weight:800; color: var(--mg-primary);
  background: rgba(97,83,224,0.09);
  width:56px; height:56px; border-radius:50%;
  flex-shrink:0; display:flex; align-items:center; justify-content:center;
}
.cs-scenario-body h2{ font-size: clamp(1.3rem, 1.8vw + 1rem, 1.6rem); }
.cs-scenario-body p{ font-size:1rem; }

.cs-imagery{ background: var(--mg-bg-alt); padding:5rem 1.5rem; }
.cs-imagery-inner{ container-type: inline-size; max-width: var(--container-max); margin:0 auto; display:grid; grid-template-columns: repeat(auto-fit, minmax(320px,1fr)); gap:1.8rem; }
.cs-imagery-card{ background:#fff; border-radius: var(--radius-lg); overflow:hidden; box-shadow: var(--shadow-md); border:1px solid var(--mg-border); }
.cs-imagery-img{ width:100%; aspect-ratio:16/10; object-fit:cover; }
.cs-imagery-card p{ padding:1.4rem 1.6rem; margin:0; font-size:.95rem; }

.cs-analytics{ position:relative; padding:5rem 1.5rem; overflow:hidden; }
.cs-analytics-blob{ position:absolute; width:480px; height:480px; background: var(--mg-secondary-bright); opacity:.14; filter: blur(120px); bottom:-140px; right:-100px; border-radius:50%; }
.cs-analytics-inner{ position:relative; z-index:1; max-width: var(--container-max); margin:0 auto; display:grid; grid-template-columns: 1fr 1fr; gap:3rem; align-items:center; }
.cs-analytics-text h2{ font-size: clamp(1.5rem, 2.4vw + 1rem, 2.1rem); }
.cs-analytics-image-wrap{ border-radius: var(--radius-lg); overflow:hidden; box-shadow: var(--shadow-lg); border:1px solid var(--mg-border); }
.cs-analytics-image{ width:100%; aspect-ratio:4/3; object-fit:cover; }

.cs-cta{ background: var(--mg-bg-dark); padding:6rem 1.5rem; text-align:center; }
.cs-cta-inner{ max-width:640px; margin:0 auto; }
.cs-cta-inner h2{ color:#fff; font-size: clamp(1.8rem, 3vw + 1rem, 2.6rem); }
.cs-cta-inner p{ color: rgba(245,243,251,0.75); margin-bottom:2rem; }


.contact-form-section{
  position:relative;
  max-width: var(--container-max);
  margin:0 auto;
  padding: 8rem 1.5rem 5rem;
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap:3rem;
  align-items:start;
  overflow:hidden;
}
.contact-form-blob{ position:absolute; border-radius:50%; filter: blur(120px); z-index:0; }
.contact-form-blob-1{ width:480px; height:480px; background: var(--mg-primary); opacity:.16; top:-100px; left:-140px; }
.contact-form-blob-2{ width:420px; height:420px; background: var(--mg-accent); opacity:.14; bottom:-140px; right:-100px; }
.contact-form-wrap{ position:relative; z-index:1; }
.contact-form-title{ font-size: clamp(2rem, 3.4vw + 1rem, 3rem); max-width:16ch; }
.contact-form-sub{ font-size:1.02rem; max-width:52ch; margin-bottom:2rem; }
.contact-form{ display:flex; flex-direction:column; gap:1.6rem; background:#fff; padding:2.4rem; border-radius: var(--radius-xl); box-shadow: var(--shadow-lg); border:1px solid var(--mg-border); }
.contact-form-field{ display:flex; flex-direction:column; gap:.5rem; }
.contact-form-field label{ font-weight:700; font-size:.95rem; }
.contact-form-field input[type="text"], .contact-form-field input[type="email"], .contact-form-field input[type="tel"], .contact-form-field textarea{
  padding: .9rem 1.1rem;
  border-radius: var(--radius-sm);
  border:1.5px solid var(--mg-border);
  font-size:1rem;
  color: var(--mg-text);
  background: var(--mg-bg);
  transition: border-color .3s var(--ease), box-shadow .3s var(--ease);
  min-height:48px;
}
.contact-form-field textarea{ min-height:140px; resize:vertical; }
.contact-form-field input:focus, .contact-form-field textarea:focus{
  outline:none;
  border-color: var(--mg-primary);
  box-shadow: 0 0 0 4px rgba(97,83,224,0.14);
}
.contact-form-help{ font-size:.82rem; color: var(--mg-text-soft); }
.contact-form-field-checkbox{ flex-direction:row; align-items:flex-start; gap:.8rem; }
.contact-form-checkbox-label{ display:flex; gap:.7rem; align-items:flex-start; font-size:.92rem; font-weight:400; color: var(--mg-text-soft); }
.contact-form-checkbox-label input{ width:20px; height:20px; margin-top:.15rem; flex-shrink:0; accent-color: var(--mg-primary); }
.contact-form-checkbox-label a{ color: var(--mg-primary); text-decoration:underline; }
.contact-form-submit{ align-self:flex-start; margin-top:.5rem; }

.contact-info-wrap{ position:relative; z-index:1; display:flex; flex-direction:column; gap:1.6rem; }
.contact-info-card{ background: var(--mg-bg-dark); border-radius: var(--radius-lg); padding:2rem; color:#fff; box-shadow: var(--shadow-lg); }
.contact-info-card h2{ font-size:1.3rem; color:#fff; }
.contact-info-list{ display:flex; flex-direction:column; gap:.9rem; margin-bottom:1.4rem; }
.contact-info-list li{ display:flex; gap:.7rem; align-items:center; font-size:.95rem; color: rgba(245,243,251,0.85); }
.contact-info-list i{ color: var(--mg-accent-2); width:20px; }
.contact-info-list a:hover{ color: var(--mg-accent-2); }
.contact-info-image-wrap{ border-radius: var(--radius-md); overflow:hidden; }
.contact-info-image{ width:100%; aspect-ratio:4/3; object-fit:cover; }
.contact-map-card{ border-radius: var(--radius-lg); overflow:hidden; box-shadow: var(--shadow-md); border:1px solid var(--mg-border); }
.contact-map-card iframe{ display:block; }
.contact-faq-card{ background:#fff; border-radius: var(--radius-lg); padding:1.8rem; box-shadow: var(--shadow-sm); border:1px solid var(--mg-border); }
.contact-faq-card h2{ font-size:1.2rem; }


.thanks-hero{
  position:relative;
  min-height: calc(100svh - 90px);
  background: linear-gradient(150deg, var(--mg-primary-dark), var(--mg-bg-dark) 65%);
  display:flex; align-items:center; justify-content:center;
  padding: 5rem 1.5rem;
  overflow:hidden;
}
.thanks-hero-blob{ position:absolute; border-radius:50%; filter: blur(130px); }
.thanks-hero-blob-1{ width:560px; height:560px; background: var(--mg-accent); opacity:.35; top:-140px; right:-100px; }
.thanks-hero-blob-2{ width:460px; height:460px; background: var(--mg-secondary-bright); opacity:.3; bottom:-160px; left:-100px; }
.thanks-hero-inner{ position:relative; z-index:1; max-width:720px; margin:0 auto; text-align:center; color:#fff; }
.thanks-hero-eyebrow{ font-weight:700; letter-spacing:.14em; text-transform:uppercase; color: var(--mg-accent-2); margin-bottom:1rem; }
.thanks-hero-title{ font-size: clamp(2.2rem, 4.6vw + 1rem, 3.8rem); color:#fff; }
.thanks-hero-text{ font-size:1.1rem; color: rgba(245,243,251,0.85); margin-bottom:2.4rem; }
.global-footer-on-accent{ background: var(--mg-bg-dark); }


.legal-page{ max-width: var(--container-max); margin:0 auto; padding: 8rem 1.5rem 5rem; }
.legal-hero{ text-align:center; margin-bottom:3rem; }
.legal-hero h1{ font-size: clamp(2rem, 3.6vw + 1rem, 3.2rem); }
.legal-hero p{ color: var(--mg-text-soft); font-size:.95rem; }
.legal-hero-terms h1{ background: linear-gradient(120deg, var(--mg-primary), var(--mg-secondary-bright)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.legal-hero-cookies h1{ background: linear-gradient(120deg, var(--mg-accent), var(--mg-accent-2)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.legal-layout{ display:grid; grid-template-columns: 260px 1fr; gap:3rem; align-items:start; }
.legal-toc{
  position:sticky; top:110px;
  display:flex; flex-direction:column; gap:.6rem;
  padding:1.5rem;
  background:#fff;
  border-radius: var(--radius-md);
  border:1px solid var(--mg-border);
  box-shadow: var(--shadow-sm);
  max-height: calc(100vh - 140px);
  overflow-y:auto;
}
.legal-toc-label{ font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color: var(--mg-text-soft); margin-bottom:.4rem; }
.legal-toc-link{ font-size:.9rem; padding:.4rem .6rem; border-radius: var(--radius-sm); color: var(--mg-text-soft); transition: background .3s var(--ease), color .3s var(--ease); }
.legal-toc-link:hover{ background: rgba(97,83,224,0.08); color: var(--mg-text); }
.legal-toc-link.legal-toc-active{ background: rgba(97,83,224,0.12); color: var(--mg-primary-dark); font-weight:700; }
.legal-content{ min-width:0; }
.legal-content section{ margin-bottom:2.6rem; scroll-margin-top:110px; }
.legal-content h2{ font-size:1.4rem; }
.legal-content p{ font-size:1rem; }
.legal-toc-mobile-select{ display:none; }


.global-footer{ background: var(--mg-bg-dark); padding: 4rem 1.5rem 2.5rem; margin-top:auto; }
.global-footer-inner{ max-width:700px; margin:0 auto; display:flex; flex-direction:column; align-items:center; text-align:center; gap:1.2rem; }
.global-footer-logo{ display:flex; align-items:center; gap:.6rem; }
.global-footer-logo img{ width:34px; height:34px; }
.global-footer-logo span{ font-weight:800; font-size:1.1rem; color:#fff; }
.global-footer-tagline{ color: rgba(245,243,251,0.65); font-size:.95rem; margin:0; }
.global-footer-links{ display:flex; flex-wrap:wrap; justify-content:center; gap:1.2rem; }
.global-footer-links a{ font-size:.88rem; color: rgba(245,243,251,0.7); transition: color .3s var(--ease); }
.global-footer-links a:hover{ color: var(--mg-accent-2); }
.global-footer-contact{ display:flex; flex-wrap:wrap; justify-content:center; gap:1.4rem; font-size:.88rem; color: rgba(245,243,251,0.7); }
.global-footer-contact a{ display:flex; align-items:center; gap:.4rem; transition: color .3s var(--ease); }
.global-footer-contact a:hover{ color: var(--mg-accent-2); }
.global-footer-contact span{ display:flex; align-items:center; gap:.4rem; }
.global-footer-access{ font-size:.78rem; color: rgba(245,243,251,0.5); max-width:600px; margin:.5rem 0 0; }
.global-footer-copy{ font-size:.8rem; color: rgba(245,243,251,0.45); margin:0; }


@media (max-width: 1080px){
  .home-approach-inner, .home-curriculum-inner, .web-hero-inner, .web-image-block-inner, .cs-analytics-inner{ grid-template-columns:1fr; }
  .home-approach-image-wrap, .home-curriculum-image-wrap{ order:-1; }
  .contact-form-section{ grid-template-columns:1fr; }
  .legal-layout{ grid-template-columns:1fr; }
  .legal-toc{ position:static; max-height:none; display:none; }
  .legal-toc-mobile-select{ display:block; width:100%; padding:1rem 1.2rem; border-radius: var(--radius-md); border:1px solid var(--mg-border); font-weight:700; font-size:.95rem; background:#fff; margin-bottom:2rem; }
}
@media (max-width: 860px){
  .global-nav{ display:none; }
  .global-nav-cta{ display:none; }
  .global-menu-toggle{ display:flex; }
  .wiw-block-inner{ grid-template-columns:1fr; }
  .wiw-block-reverse .wiw-block-inner{ grid-template-columns:1fr; }
  .wiw-block-reverse .wiw-block-image-wrap{ order:0; }
  .wiw-block-reverse .wiw-block-text{ order:1; }
}
@media (max-width: 640px){
  .home-hero{ padding: 5.5rem 1.2rem 3rem; }
  .home-hero-actions{ flex-direction:column; align-items:stretch; }
  .home-hero-actions .global-btn{ width:100%; }
  .cs-scenario{ flex-direction:column; }
  .contact-form{ padding:1.6rem; }
  .global-cookie-content{ flex-direction:column; align-items:flex-start; }
}