@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;0,9..144,700;1,9..144,500&family=Work+Sans:wght@400;500;600;700;800&display=swap');

/* ============================================================
   RCRM — design tokens
   Black / blue / white system: black for structure and depth,
   blue for signal and motion, white/near-white for content
   surfaces and type. Same variable names as before are kept so
   the whole markup re-themes from one place.
   ============================================================ */
:root{
  --paper:#F4F7FC;          /* page background (near-white, cool) */
  --paper-dim:#E9EFFA;      /* alt light band */
  --ink:#04070C;            /* primary "black" — text + solid buttons */
  --ink-deep:#000000;       /* deepest black — hero/footer/CTA bands */
  --ink-soft:#586171;
  --emerald:#2F6BFF;        /* primary blue */
  --emerald-light:#E3ECFF;  /* light blue tint (chips, icon bg) */
  --emerald-deep:#0E1E4A;   /* deep navy-blue, paired with black in gradients */
  --coral:#63B3FF;          /* secondary "signal" blue — dots, glow, highlights */
  --coral-dark:#2F6BFF;
  --line:#E1E7F5;
  --line-dark:rgba(255,255,255,.14);
  --white:#FFFFFF;
  --r-sm:8px;
  --r-md:16px;
  --r-lg:24px;
  --shadow:0 24px 48px -30px rgba(4,7,12,.35);
  --glow:0 0 0 1px rgba(47,107,255,.18), 0 18px 40px -18px rgba(47,107,255,.35);
  --maxw:1200px;
  --font-display:'Fraunces', ui-serif, Georgia, serif;
  --font-body:'Work Sans', system-ui, sans-serif;
  --ease:cubic-bezier(.22,.9,.32,1);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth; overflow-x:hidden;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important;}
  .reveal, .stagger > *{opacity:1 !important; transform:none !important;}
}
body{margin:0; background:var(--paper); color:var(--ink); font-family:var(--font-body); line-height:1.6; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; overflow-x:hidden;}
img{max-width:100%; display:block;}
a{color:inherit;}
h1,h2,h3,h4{font-family:var(--font-display); margin:0 0 .5em; line-height:1.14; font-weight:600; color:var(--ink); letter-spacing:-.01em;}
h1{font-weight:500;}
::selection{background:var(--emerald); color:#fff;}
.wrap{width:100%; max-width:var(--maxw); margin:0 auto; padding:0 clamp(16px,4vw,24px); position:relative;}

/* ---------------- Motion system ---------------- */
@keyframes fadeUp{ from{opacity:0; transform:translateY(26px);} to{opacity:1; transform:none;} }
@keyframes fadeIn{ from{opacity:0;} to{opacity:1;} }
@keyframes floatY{ 0%,100%{transform:translateY(0) translateX(0);} 50%{transform:translateY(-22px) translateX(10px);} }
@keyframes floatY2{ 0%,100%{transform:translateY(0);} 50%{transform:translateY(18px);} }
@keyframes pulseGlow{ 0%,100%{opacity:.55; transform:scale(1);} 50%{opacity:1; transform:scale(1.08);} }
@keyframes spin-slow{ to{transform:rotate(360deg);} }
@keyframes shimmer{ 0%{background-position:-200% 0;} 100%{background-position:200% 0;} }
@keyframes marquee{ from{transform:translateX(0);} to{transform:translateX(-50%);} }
@keyframes dash{ to{ stroke-dashoffset:0; } }
@keyframes ping{ 0%{box-shadow:0 0 0 0 rgba(47,107,255,.55);} 100%{box-shadow:0 0 0 14px rgba(47,107,255,0);} }

.reveal{opacity:0; transform:translateY(24px); transition:opacity .7s var(--ease), transform .7s var(--ease);}
.reveal.is-visible{opacity:1; transform:none;}

/* Stagger: JS adds .in to children with incremental delay when the
   parent .stagger container enters the viewport. */
.stagger > *{opacity:0; transform:translateY(22px); transition:opacity .55s var(--ease), transform .55s var(--ease);}
.stagger > *.in{opacity:1; transform:none;}

/* Decorative glow orbs — pure CSS, used on dark bands */
.orb{position:absolute; border-radius:50%; filter:blur(70px); pointer-events:none; z-index:0;}
.orb-blue{background:radial-gradient(circle, rgba(47,107,255,.55), transparent 70%); animation:floatY 11s ease-in-out infinite;}
.orb-cyan{background:radial-gradient(circle, rgba(99,179,255,.4), transparent 70%); animation:floatY2 9s ease-in-out infinite;}
.orb-white{background:radial-gradient(circle, rgba(255,255,255,.12), transparent 70%); animation:floatY 14s ease-in-out infinite;}

/* Kicker / eyebrow */
.eyebrow{
  display:inline-flex; align-items:center; gap:12px;
  font-family:var(--font-body); font-weight:600; font-size:.86rem;
  letter-spacing:.01em; color:var(--emerald);
  background:none; padding:0; border-radius:0;
}
.eyebrow::before{content:''; width:26px; height:1.5px; background:var(--coral); display:inline-block; flex-shrink:0; animation:shimmer 2.4s linear infinite; background-image:linear-gradient(90deg, var(--coral) 0%, #fff 50%, var(--coral) 100%); background-size:200% 100%;}

/* ---------------- Buttons ---------------- */
.btn{display:inline-flex; align-items:center; gap:8px; padding:14px 28px; border-radius:999px; font-weight:600; font-size:.96rem; text-decoration:none; border:1.5px solid transparent; cursor:pointer; transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease), color .25s var(--ease); font-family:var(--font-body); position:relative; overflow:hidden; isolation:isolate;}
.btn::before{content:''; position:absolute; inset:0; background:linear-gradient(120deg, transparent 30%, rgba(255,255,255,.35) 50%, transparent 70%); background-size:220% 100%; background-position:150% 0; transition:background-position .7s ease; z-index:-1;}
.btn:hover::before{background-position:-50% 0;}
.btn:focus-visible{outline:3px solid var(--emerald); outline-offset:3px;}
.btn-coral{background:var(--ink); color:var(--white); border-color:var(--ink);}
.btn-coral:hover{background:var(--emerald); border-color:var(--emerald); transform:translateY(-3px); box-shadow:var(--glow);}
.btn-line{border-color:var(--white); color:var(--white);}
.btn-line:hover{background: green; color:var(--paper); transform:translateY(-3px);}
.btn-line-light{border-color:rgba(255,255,255,.5); color:#fff;}
.btn-line-light:hover{background:rgba(255,255,255,.15); transform:translateY(-3px); box-shadow:0 0 0 1px rgba(255,255,255,.4);}
.btn-sm{padding:10px 18px; font-size:.86rem;}
.btn-block{width:100%; justify-content:center;}

.skip-link{position:absolute; left:-999px; top:0; background:var(--emerald); color:#fff; padding:10px 18px; z-index:200; border-radius:0 0 8px 0; font-weight:700; text-decoration:none;}
.skip-link:focus{left:0;}

/* ---------------- Header ---------------- */
header{
  position:absolute;
  top:0;
  left:0;
  right:0;
  width:100%;
  z-index:100;
  padding-top:18px;
  background:transparent;
  border-bottom:none;
  box-shadow:none;
}
/* .nav-row{display:flex; align-items:center; justify-content:space-between; gap:24px; padding:14px 0; margin:0 auto; background:none; border:none; border-radius:0; box-shadow:none; backdrop-filter:none;} */
.nav-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:5px 22px 5px 5px;
  margin:0 auto;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.18);
  border-radius:18px;
  box-shadow:0 10px 24px -20px rgba(16,32,26,.45);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.brand{display:flex; align-items:center; gap:10px; text-decoration:none;}
.brand-mark{width:36px; height:36px; border-radius:10px; background:var(--emerald); display:flex; align-items:center; justify-content:center; color:#fff; font-family:var(--font-display); font-weight:700; font-size:1rem; flex-shrink:0; box-shadow:0 0 22px -4px rgba(47,107,255,.75);}
.brand span{font-family:var(--font-display); font-weight:600; font-size:1.2rem; color:#fff;}
/* header .brand img{ filter:brightness(0) invert(1); } */
nav.main-nav ul{list-style:none; display:flex; gap:4px; margin:0; padding:0;}
nav.main-nav a{text-decoration:none; color:#DCE3F2; font-weight:500; font-size:.95rem; padding:9px 14px; border-radius:3px; position:relative;}
nav.main-nav a::after{content:''; position:absolute; left:14px; right:14px; bottom:5px; height:2px; background:var(--emerald); transform:scaleX(0); transform-origin:left; transition:transform .3s var(--ease);}
nav.main-nav a:hover, nav.main-nav a.active{color:#fff;}
nav.main-nav a:hover::after, nav.main-nav a.active::after{transform:scaleX(1);}
nav.main-nav a.active{font-weight:700;}
.has-dropdown{position:relative;}
.dropdown{display:none; position:absolute; left:0; top:100%; padding-top:8px;}
.has-dropdown:hover .dropdown, .has-dropdown:focus-within .dropdown{display:block; animation:fadeUp .25s var(--ease);}
.dropdown-inner{background:#0A0E17; border:1px solid var(--line-dark); border-radius:var(--r-sm); box-shadow:var(--shadow); padding:8px; min-width:190px;}
.dropdown-inner a{display:block; border-radius:3px; color:#DCE3F2;}
.dropdown-inner a::after{display:none;}
.dropdown-inner a:hover{background:rgba(47,107,255,.14); color:#fff;}
.nav-actions{display:flex; align-items:center; gap:14px;}
.menu-toggle{display:none; background:none; border:none; cursor:pointer; padding:8px; color:#fff;}
.menu-toggle svg{width:24px; height:24px;}
header .footer-social svg{fill:#DCE3F2;}
header .footer-social a{background:#000;}
header .footer-social a:hover{background:var(--emerald);}
.mobile-nav{display:none; position:fixed; inset:0; z-index:190; background:var(--ink-deep); color:#fff; padding:20px 24px; overflow-y:auto;}
.mobile-nav.open{display:block; animation:fadeIn .25s ease;}
.mobile-nav-top{display:flex; justify-content:space-between; align-items:center; margin-bottom:24px;}
.mobile-nav ul{list-style:none; padding:0; margin:0; display:grid; gap:2px;}
.mobile-nav a{display:block; padding:16px 4px; color:#fff; text-decoration:none; font-size:1.1rem; border-bottom:1px solid rgba(255,255,255,.12); font-weight:500; font-family:var(--font-display); transition:padding-left .25s ease, color .25s ease;}
.mobile-nav a:hover{padding-left:12px; color:var(--coral);}
.mobile-nav .close-btn{background:none; border:none; color:#fff; cursor:pointer;}
.mobile-nav .close-btn svg{width:26px; height:26px;}

section{padding:60px 0; position:relative;}
#about h2, #about p, #courses h2 { color:var(--white); }
#about .checklist li, #about .btn-line { color:var(--white); border-color:var(--white); }
.section-head{max-width:600px; margin:0 auto 48px;}
.section-head.center{text-align:center; margin-left:auto; margin-right:auto;}
.section-head p{color:var(--ink-soft); font-size:1.05rem;}

/* Photo utility */
.has-photo{
  background-color:var(--emerald-deep);
  background-image:
    linear-gradient(140deg, rgba(0,0,0,.86), rgba(14,30,74,.6)),
    var(--photo, linear-gradient(140deg,var(--ink-deep),var(--emerald-deep)));
  background-size:cover; background-position:center;
}
.has-photo-light{
  background-color:var(--paper-dim);
  background-image:
    linear-gradient(180deg, rgba(244,247,252,.15), rgba(244,247,252,.85)),
    var(--photo, linear-gradient(150deg,var(--emerald-light),var(--paper-dim)));
  background-size:cover; background-position:center;
}

/* Page header banner */
.page-header{padding:56px 0 48px; border-bottom:1px solid var(--line); position:relative; color:var(--ink); overflow:hidden;}
.page-header.has-photo{
  padding:64px 0 84px; border-bottom:none; color:#fff; margin-top:0;
  background-image:
    linear-gradient(45deg, rgb(0 0 0 / 90%), rgb(14 30 74 / 55%)),
    var(--photo, linear-gradient(140deg, var(--ink-deep), var(--emerald-deep)));
  background-size:cover; background-position:center top; background-repeat:no-repeat;
}
.page-header.has-photo .eyebrow{color:#BBD1FF;}
.page-header.has-photo h1{color:#fff;}
.page-header.has-photo .breadcrumb, .page-header.has-photo .breadcrumb a{color:rgba(255,255,255,.75);}
.page-header.has-photo p.lede{color:rgba(255,255,255,.85);}
.page-header.has-photo .jump-nav a{background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.3); color:#fff;}
.page-header.has-photo .jump-nav a:hover{background:#fff; color:var(--ink);}
.breadcrumb{display:flex; align-items:center; gap:8px; font-size:.85rem; color:var(--ink-soft); margin-bottom:18px; font-weight:500;}
.breadcrumb a{color:var(--ink-soft); text-decoration:none;}
.breadcrumb a:hover{color:var(--emerald);}
.page-header h1{font-size:clamp(2rem,3.6vw,2.9rem); margin-bottom:12px; animation:fadeUp .8s var(--ease) both;}
.page-header p.lede{color:var(--ink-soft); font-size:1.08rem; max-width:60ch; margin:0;}

/* ---------------- HERO ---------------- */
.hero{padding:120px 0 40px; position:relative; overflow:hidden; margin-top:0; background:var(--ink-deep);}
.hero::before, .hero::after{content:''; position:absolute; width:460px; height:460px; z-index:0;}
.hero::before{top:-160px; left:-120px; background:radial-gradient(circle, rgba(47,107,255,.5), transparent 70%); filter:blur(80px); animation:floatY 12s ease-in-out infinite;}
.hero::after{bottom:-200px; right:-140px; width:520px; height:520px; background:radial-gradient(circle, rgba(99,179,255,.35), transparent 70%); filter:blur(90px); animation:floatY2 15s ease-in-out infinite;}
/* .hero.has-photo-side::after{
  bottom:-200px; right:-140px; width:520px; height:520px;
  background:radial-gradient(circle, rgba(99,179,255,.35), transparent 70%); filter:blur(90px);
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 35%);
  mask-image:linear-gradient(90deg, transparent, #000 35%); opacity:1;
} */
.hero.has-photo-side::after{
  content:''; position:absolute; top:0; right:0; width:50%; height:100%;
  background-image:var(--photo, none); background-size:cover; background-position:center;
  filter: blur(2px); /* slight blur to avoid pixelation on large screens */
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 35%);
  mask-image:linear-gradient(90deg, transparent, #000 35%);
  opacity:.9; z-index:0; pointer-events:none;
}
.hero .wrap{z-index:1;}
.hero-grid{display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:clamp(28px,5vw,60px); align-items:center; position:relative; z-index:1;}
.hero-grid > *, .about-grid > *, .timeline-with-photo > *, .cd-grid > *, .contact-grid > *, .footer-grid > *{min-width:0;}
.hero h1{font-size:clamp(2.3rem,4.4vw,3.6rem); margin:16px 0 20px; color:#fff; animation:fadeUp .8s var(--ease) both .05s;}
.hero h1 .hl{font-style:italic; font-weight:500; background:linear-gradient(90deg,var(--coral),var(--emerald),var(--coral)); background-size:200% auto; -webkit-background-clip:text; background-clip:text; color:transparent; animation:shimmer 5s linear infinite;}
.hero p.lede{color:#B9C4DA; font-size:1.12rem; max-width:50ch; margin:0 0 30px; animation:fadeUp .8s var(--ease) both .15s;}
.hero-cta{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:25px; animation:fadeUp .8s var(--ease) both .25s;}
.hero .eyebrow{color:#BBD1FF; animation:fadeUp .8s var(--ease) both;}
.tag-row{display:flex; gap:0; flex-wrap:wrap; border-top:1px solid var(--line-dark); animation:fadeUp .8s var(--ease) both .3s;}
.tag{font-size:.86rem; font-weight:600; color:#AEB9CC; background:none; border:none; border-right:1px solid var(--line-dark); padding:14px 18px 0 0; margin-right:18px;}
.tag:last-child{border-right:none; margin-right:0;}

.stat-strip{display:flex; flex-wrap:wrap; gap:0; margin:18px 0 0; border-top:1px solid var(--line-dark); animation:fadeUp .8s var(--ease) both .38s;}
.stat-strip .stat{padding:20px 28px 0 0; margin-right:28px; border-right:1px solid var(--line-dark);}
.stat-strip .stat:last-child{border-right:none; margin-right:0;}
.stat-strip .stat-num{font-family:var(--font-display); font-weight:600; font-size:1.9rem; color:#fff; display:block;}
.stat-strip .stat-lbl{font-size:.82rem; color:#9FADC4; font-weight:500;}

/* Career ascent illustration */
.ascent-wrap{position:relative; padding-top:20px; animation:fadeUp .9s var(--ease) both .2s;}
.ascent-card{background:#0A0F1C; border-radius:var(--r-lg); border:1px solid var(--line-dark); box-shadow:var(--shadow); padding:34px 30px 26px; transition:transform .4s var(--ease), box-shadow .4s var(--ease); will-change:transform;}
.ascent-card:hover{transform:translateY(-6px); box-shadow:var(--glow);}
.ascent-title{font-family:var(--font-display); font-weight:600; font-size:1.1rem; margin-bottom:4px; color:#fff;}
.ascent-sub{color:#9FADC4; font-size:.88rem; margin-bottom:28px;}
.ascent-bars{display:flex; align-items:flex-end; gap:14px; height:200px;}
.ascent-col{flex:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; height:100%;}
.ascent-bar{width:100%; border-radius:6px 6px 3px 3px; position:relative; transform:scaleY(0); transform-origin:bottom; animation:growBar 1s var(--ease) forwards;}
@keyframes growBar{ to{transform:scaleY(1);} }
.ascent-col:nth-child(1) .ascent-bar{height:32%; background:#1B2A4D; animation-delay:.1s;}
.ascent-col:nth-child(2) .ascent-bar{height:54%; background:#274A9E; animation-delay:.25s;}
.ascent-col:nth-child(3) .ascent-bar{height:76%; background:var(--emerald); animation-delay:.4s;}
.ascent-col:nth-child(4) .ascent-bar{height:100%; background:linear-gradient(180deg,var(--coral),var(--emerald)); animation-delay:.55s;}
.ascent-col:nth-child(4) .ascent-bar::before{content:''; position:absolute; top:-9px; left:50%; transform:translateX(-50%); width:14px; height:14px; border-radius:50%; background:var(--coral); animation:ping 1.8s ease-out infinite;}
.ascent-label{margin-top:12px; font-size:.78rem; font-weight:600; color:#9FADC4; text-align:center;}
.ascent-col:nth-child(4) .ascent-label{color:var(--coral);}
.floating-badge{position:absolute; top:-18px; right:-14px; background:var(--emerald); color:#fff; padding:14px 18px; border-radius:var(--r-sm); box-shadow:0 18px 40px -14px rgba(47,107,255,.65); text-align:center; animation:floatY2 5s ease-in-out infinite; z-index:1;}
.floating-badge .num{font-family:var(--font-display); font-weight:700; font-size:1.5rem; color:#fff;}
.floating-badge .lbl{font-size:.72rem; color:#DCE7FF; font-weight:600;}
@media (max-width:520px){ .floating-badge{ width:max-content; transform:none; animation:none;} }

/* ---------------- Bento ---------------- */
.bento, .bento-about, .bento-service{display:grid; gap:16px; background:none; border:none;}
.bento{grid-template-columns:repeat(4,1fr); grid-auto-rows:minmax(150px,auto);}
.bento-about{grid-template-columns:repeat(3,1fr); grid-auto-rows:minmax(150px,auto);}
.bento-tile.big-about{grid-column:span 1; grid-row:span 2;}
.bento-service{grid-template-columns:repeat(2,1fr); grid-auto-rows:minmax(190px,auto);}
.bento-tile.big-service{grid-column:span 1; grid-row:span 1;}
.bento-tile.big-smo{grid-column:span 2; grid-row:span 1;}
.bento-tile{background:var(--white); border:1px solid var(--line); border-radius:var(--r-md); padding:30px; display:flex; flex-direction:column; justify-content:space-between; transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);}
.bento-tile:hover{transform:translateY(-6px); box-shadow:var(--glow); border-color:rgba(47,107,255,.35);}
.bento-tile.big{grid-column:span 2; grid-row:span 1;}
.bento-tile.accent{background:var(--ink); color:#fff; border-color:var(--ink);}
.bento-tile.accent h3, .bento-tile.accent p{color:#fff;}
.bento-tile.accent p{color:#B9C4DA;}
.bento-tile.has-photo, .bento-tile.accent.has-photo{
  background-image:
    linear-gradient(140deg, rgba(0,0,0,.82), rgba(14,30,74,.55)),
    var(--photo, linear-gradient(140deg,var(--ink-deep),var(--emerald-deep)));
  background-size:cover; background-position:center; border-color:transparent;
}
.bento-icon{width:40px; height:40px; border-radius:10px; background:var(--emerald-light); color:var(--emerald); display:flex; align-items:center; justify-content:center; margin-bottom:16px; transition:transform .35s var(--ease), background .35s var(--ease), color .35s var(--ease);}
.bento-tile:hover .bento-icon{transform:rotate(-8deg) scale(1.08); background:var(--emerald); color:#fff;}
.bento-tile.accent .bento-icon{background:rgba(255,255,255,.12); color:#fff;}
.bento-icon svg{width:20px; height:20px;}
.bento-tile h3{color:var(--ink); font-size:1.12rem; margin-bottom:6px; font-weight:600;}
.bento-tile.big h3{font-size:1.5rem;}
.bento-tile p{color:var(--ink); font-size:.9rem; margin:0;}

/* About */
.about-grid{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center;}
.about-copy p{color:var(--ink-soft); font-size:1.05rem;}
.checklist{list-style:none; margin:22px 0 0; padding:0; display:grid; gap:12px;}
.checklist li{display:flex; gap:12px; align-items:flex-start; font-size:.98rem; color:var(--ink); transition:transform .3s var(--ease);}
.checklist li:hover{transform:translateX(6px);}
.checklist svg{width:18px; height:18px; fill:var(--emerald); flex-shrink:0; margin-top:3px;}

.programs-section{background:linear-gradient(180deg,var(--paper-dim) 0%,var(--paper) 100%); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.programs-panel{width:100%; margin:0; padding:0; background:transparent; border:0; border-radius:0; box-shadow:none;}
.programs-heading{padding:clamp(24px,4vw,42px) clamp(18px,4vw,42px); border-radius:var(--r-lg); background:var(--ink); color:#fff; text-align:center; position:relative; overflow:hidden;}
.programs-heading::before{content:''; position:absolute; width:280px; height:280px; background:radial-gradient(circle, rgba(47,107,255,.5), transparent 70%); top:-100px; left:-60px; filter:blur(50px); animation:floatY 10s ease-in-out infinite;}
.programs-heading .eyebrow{color:#BBD1FF; position:relative;}
.programs-heading h2{margin:14px 0 0; color:#fff; font-size:clamp(1.7rem,3.6vw,2.8rem); position:relative;}
.program-list{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 28px; margin:22px auto 0; max-width:none;}
.program-item{display:grid; grid-template-columns:56px 1fr; gap:14px; align-items:center; min-width:0; padding:16px 0; border-bottom:1px solid var(--line); transition:padding-left .3s var(--ease);}
.program-item:hover{padding-left:8px;}
.program-icon{width:52px; height:52px; border:1.5px solid var(--emerald); border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--emerald); flex-shrink:0; transition:background .3s ease, color .3s ease;}
.program-item:hover .program-icon{background:var(--emerald); color:#fff;}
.program-icon svg{width:26px; height:26px;}
.program-item h3{margin:0 0 2px; color:var(--emerald); font-size:clamp(1.02rem,1.8vw,1.2rem); font-weight:600;}
.program-item p{margin:0; color:var(--ink-soft); font-size:.9rem; line-height:1.35;}
.program-tags{display:flex; flex-wrap:wrap; justify-content:center; gap:14px 20px; padding-top:22px; color:var(--ink); font-size:.88rem; font-weight:600;}
.program-tags span::before{content:'—'; color:var(--coral); margin-right:6px;}
.why-rainbow-section{background:var(--ink-deep); border-top:1px solid var(--line-dark); border-bottom:1px solid var(--line-dark);}
.why-rainbow-heading{text-align:center; max-width:680px; margin:0 auto 42px; position:relative;}
.why-rainbow-heading h2{font-size:clamp(1.9rem,3.6vw,2.7rem); color:#fff; margin:14px 0 18px;}
.why-rainbow-heading .eyebrow{color:#BBD1FF;}
.commitment-ribbon{display:inline-block; padding:9px 30px; color:#fff; background:linear-gradient(90deg,var(--emerald-deep),var(--emerald)); font-family:var(--font-display); font-weight:600; border-radius:999px;}
.why-rainbow-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 38px; max-width:1050px; margin:0 auto; position:relative;}
.why-rainbow-grid article{display:grid; grid-template-columns:40px 1fr; gap:12px; padding:16px 0; border-bottom:1px solid var(--line-dark); transition:padding-left .3s var(--ease);}
.why-rainbow-grid article:hover{padding-left:8px;}
.why-number{width:32px; height:32px; display:flex; align-items:center; justify-content:center; border-radius:50%; background:var(--emerald); color:#fff; font-family:var(--font-display); font-weight:700; font-size:.82rem; box-shadow:0 0 0 4px rgba(47,107,255,.18);}
.why-rainbow-grid h3{margin:0 0 2px; color:#fff; font-size:1.02rem; font-weight:600;}
.why-rainbow-grid p{margin:0; color:#9FADC4; font-size:.85rem; line-height:1.32;}

.service-modern-section{position:relative; background:var(--paper); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.section-intro{max-width:700px; margin:16px auto 0; color:var(--ink-soft); font-size:1.02rem;}
.service-modern-grid{display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:16px; max-width:1060px; margin:32px auto 0; background:none; border:none;}
.service-modern-item{display:flex; align-items:flex-start; gap:16px; background:linear-gradient(140deg,var(--ink-deep),var(--emerald-deep)); border:1px solid var(--line); border-radius:var(--r-md); padding:20px 22px; box-shadow:none; transition:transform .3s var(--ease), box-shadow .3s var(--ease);}
.service-modern-item:hover{transform:translateY(-4px); box-shadow:var(--glow); border-color:rgba(47,107,255,.3);}
.service-modern-icon{width:38px; height:38px; border-radius:10px; display:flex; align-items:center; justify-content:center; background:var(--emerald-light); color:var(--emerald); box-shadow:none; flex-shrink:0; transition:transform .3s ease;}
.service-modern-item:hover .service-modern-icon{transform:scale(1.12) rotate(6deg);}
.service-modern-icon svg{width:18px; height:18px; fill:currentColor;}
.service-modern-item p{margin:0; color:var(--white); font-weight:500; line-height:1.55; font-size:.98rem;}

@media (max-width: 768px){
  .service-modern-grid{grid-template-columns:1fr;}
  .service-modern-item{padding:16px 18px;}
}

.course-count-card{background:linear-gradient(150deg,var(--ink-deep),var(--emerald-deep)); border-radius:var(--r-lg); padding:40px; color:#fff; position:relative; overflow:hidden;}
.course-count-card::after{content:''; position:absolute; width:220px; height:220px; background:rgba(47,107,255,.35); border-radius:50%; filter:blur(60px); top:-60px; right:-60px; animation:pulseGlow 5s ease-in-out infinite;}
.course-count-card .big-num{font-family:var(--font-display); font-weight:600; font-size:5.5rem; line-height:1; position:relative;}
.course-count-card .cap{font-size:1.1rem; font-weight:500; margin-top:6px; position:relative;}
.course-count-card ul{list-style:none; margin:22px 0 0; padding:0; display:grid; gap:8px; position:relative;}
.course-count-card li{font-size:.92rem; color:#B9C4DA; display:flex; gap:8px; align-items:center;}
.course-count-card li::before{content:''; width:6px; height:6px; background:var(--coral); border-radius:50%;}

.about-photo-card{border-radius:var(--r-lg); overflow:hidden; min-height:420px; box-shadow:var(--shadow); position:relative; background-image: linear-gradient(45deg, rgb(0 0 0 / 70%), rgb(14 30 74 / 0%)), var(--photo, linear-gradient(140deg, var(--ink-deep), var(--emerald-deep))); transition:transform .5s var(--ease);}
.about-photo-card:hover{transform:scale(1.015);}
.about-photo-card .caption{position:absolute; left:0; right:0; bottom:0; padding:22px 26px; background:linear-gradient(0deg, rgba(0,0,0,.9), transparent); color:#fff; font-weight:500; font-family:var(--font-display);}

.timeline-with-photo{display:grid; grid-template-columns:1fr 1.4fr; gap:48px; align-items:center; max-width:none;}
.timeline-photo{border-radius:var(--r-lg); min-height:380px; box-shadow:var(--shadow);}
.timeline-with-photo .timeline{max-width:none;}
@media (max-width:900px){ .timeline-with-photo{grid-template-columns:1fr;} .timeline-photo{min-height:220px; order:-1;} }

.info-card{background:var(--white); border:1px solid var(--line-dark); border-radius:var(--r-lg); padding:38px; box-shadow:none; transition:transform .35s var(--ease), box-shadow .35s var(--ease);}
.info-card:hover{transform:translateY(-6px); box-shadow:var(--glow);}
.info-card .bento-icon{margin-bottom:18px;}
.info-card h3{font-size:1.4rem;}
.info-card p{color:var(--ink-soft); font-size:1rem;}
.two-col-cards{display:grid; grid-template-columns:1fr 1fr; gap:24px;}
.mission-card{background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.24); box-shadow:0 18px 45px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.14); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);}
.mission-card:hover{background:rgba(255,255,255,.14); box-shadow:0 24px 52px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.2);}
.mission-card .bento-icon{background:rgba(255,255,255,.14); color:#fff; border:1px solid rgba(255,255,255,.22);}
.mission-card h3{color:#fff;}
.mission-card p{color:rgba(255,255,255,.78);}

.pill-row{display:flex; flex-wrap:wrap; gap:10px; justify-content:center;}
.pill{background:radial-gradient(900px 400px at 15% 0%, rgba(184,132,47,.28), transparent 60%), linear-gradient(140deg,var(--ink-deep),var(--emerald-deep)); border:1px solid var(--line); padding:10px 20px; border-radius:999px; font-weight:600; font-size:.96rem; color:var(--white); display:flex; align-items:center; gap:8px; transition:transform .3s ease, box-shadow .3s ease;}
.pill:hover{transform:translateY(-3px); box-shadow:var(--glow);}
.pill::before{content:''; width:6px; height:6px; background:var(--coral); border-radius:50%; animation:pulseGlow 2.2s ease-in-out infinite;}

/* Timeline */
.timeline{position:relative; max-width:820px; margin:0 auto;}
.timeline::before{content:''; position:absolute; left:24px; top:6px; bottom:6px; width:1px; background:linear-gradient(180deg, var(--emerald), var(--line));}
.t-item{position:relative; padding-left:66px; margin-bottom:36px;}
.t-item:last-child{margin-bottom:0;}
.t-dot{position:absolute; left:0; top:0; width:48px; height:48px; border-radius:50%; background:var(--white); border:1.5px solid var(--emerald); color:var(--emerald); display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-weight:700; font-size:1.05rem; transition:transform .3s ease;}
.t-item:hover .t-dot{transform:scale(1.12);}
.t-item:last-child .t-dot{background:var(--coral); border-color:var(--coral); color:#fff;}
.t-item h3{font-size:1.18rem; margin-bottom:4px; font-weight:600;}
.t-item p{color:var(--ink-soft); margin:0; font-size:.98rem;}

/* Ladder */
.ladder{list-style:none; margin:0; padding:0; display:grid; gap:10px;}
.ladder li{display:flex; align-items:center; gap:14px; background:var(--white); border:1px solid var(--line); padding:13px 16px; font-weight:500; font-size:.92rem; border-radius:var(--r-sm); transition:transform .3s var(--ease), border-color .3s ease;}
.ladder li:hover{transform:translateX(6px); border-color:rgba(47,107,255,.35);}
.ladder li .lstep{width:26px; height:26px; border-radius:50%; background:var(--paper); border:1.5px solid var(--emerald); color:var(--emerald); display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-weight:700; font-size:.78rem; flex-shrink:0;}
.ladder li:last-child .lstep{background:var(--coral); border-color:var(--coral); color:#fff;}
.ladder li:last-child{background:var(--emerald-light); border-color:var(--emerald-light);}

/* Courses scroller (home) */
.courses-head{display:flex; justify-content:center; text-align:center; align-items:flex-end; gap:20px; margin-bottom:36px; flex-wrap:wrap;}
.scroller-controls{display:flex; gap:10px;}
.scroller-btn{width:44px; height:44px; border-radius:50%; border:1px solid var(--line-dark); background:rgba(255,255,255,.05); color:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:background .25s ease, transform .25s ease;}
.scroller-btn:hover{background:var(--emerald); transform:scale(1.06);}
.scroller-btn svg{width:18px; height:18px;}
.course-scroller{display:grid; gap:20px; grid-template-columns:repeat(3, 1fr); padding-bottom:12px; scrollbar-width:none; background:none; border:none;}
.course-scroller::-webkit-scrollbar{display:none;}
.course-card{scroll-snap-align:start; flex:0 0 350px; background:#0B0F1B; border:1px solid var(--line-dark); border-radius:var(--r-md); padding:0; overflow:hidden; display:flex; flex-direction:column; transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s var(--ease);}
.course-card:hover{transform:translateY(-8px); box-shadow:var(--glow); border-color:rgba(47,107,255,.5);}
.course-top{height:6px; background-color:var(--emerald);}
.course-card:nth-child(2) .course-top{background-color:var(--coral);}
.course-card:nth-child(3) .course-top{background-color:#5B7FD6;}
.course-card:nth-child(4) .course-top{background-color:#fff;}
.course-card:nth-child(5) .course-top{background-color:var(--emerald-deep);}
.course-top.has-photo{
  height:180px; background-color:var(--emerald);
  background-image:linear-gradient(140deg, rgb(0 0 0 / 30%), rgb(14 30 74 / 0%)), var(--photo, linear-gradient(140deg, var(--ink-deep), var(--emerald-deep)));
  background-size:cover; background-position:center;
}
.course-body{padding:26px; display:flex; flex-direction:column; gap:14px; flex-grow:1;}
.course-tag{font-size:.72rem; font-weight:700; letter-spacing:.04em; color:var(--coral);}
.course-card h3{font-size:1.12rem; margin:0; font-weight:600; color:#fff;}
.course-duration{font-size:.86rem; color:#B9C4DA; background:rgba(255,255,255,.06); border-radius:var(--r-sm); padding:9px 12px;}
.course-card .btn{margin-top:auto; align-self:flex-start;}
.course-card .btn-coral{background:var(--emerald); border-color:var(--emerald);}
.course-card .btn-coral:hover{background:var(--coral); border-color:var(--coral);}
.course-card .btn-line{border-color:rgba(255,255,255,.4); color:#fff;}
.course-card .btn-line:hover{background:#fff; color:var(--ink); border-color:#fff;}

/* Course jump nav (courses page) */
.jump-nav{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:8px;}
.jump-nav a{background:var(--white); border:1px solid var(--line); padding:9px 16px; border-radius:999px; font-size:.86rem; font-weight:600; color:var(--ink-soft); text-decoration:none; transition:transform .25s ease, background .25s ease, color .25s ease;}
.jump-nav a:hover{background:var(--emerald); color:#fff; border-color:var(--emerald); transform:translateY(-2px);}

/* Full course detail block */
.course-detail{scroll-margin-top:88px; padding:48px 0; border-bottom:1px solid var(--line);}
.course-detail:last-of-type{border-bottom:none;}
.cd-grid{display:grid; grid-template-columns:1fr 1.4fr; gap:40px; align-items:start;}
.cd-meta{background:var(--white); border:1px solid var(--line); border-radius:var(--r-md); padding:26px; display:grid; gap:18px; align-self:start; overflow:hidden; box-shadow:var(--shadow);}
.cd-meta-photo{margin:-26px -26px 0; height:150px;}
.cd-meta-photo.has-photo{background-color:var(--emerald);}
.cd-meta .m-label{font-size:.74rem; font-weight:700; letter-spacing:.02em; color:var(--emerald); margin-bottom:4px;}
.cd-meta .m-value{font-weight:500; font-size:.95rem;}
.cd-meta .cd-actions{display:grid; gap:10px; margin-top:4px;}
.cd-title-row{display:flex; align-items:center; gap:12px; margin-bottom:14px;}
.cd-num{width:38px; height:38px; border-radius:10px; background:var(--emerald-light); color:var(--emerald); font-family:var(--font-display); font-weight:700; display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.chip-grid{display:flex; flex-wrap:wrap; gap:10px; margin-top:6px;}
.chip{background:var(--emerald-light); border-radius:999px; padding:9px 15px; font-size:.86rem; font-weight:500; color:var(--emerald-deep); transition:transform .25s ease;}
.chip:hover{transform:translateY(-2px);}

/* Accordion */
.accordion{border:1px solid var(--line); border-radius:var(--r-md); overflow:hidden; margin-top:18px;}
.acc-item + .acc-item{border-top:1px solid var(--line);}
.acc-trigger{width:100%; text-align:left; background:var(--white); border:none; padding:18px 20px; display:flex; justify-content:space-between; align-items:center; cursor:pointer; font-family:var(--font-display); font-weight:600; font-size:1rem; color:var(--ink); transition:background .25s ease;}
.acc-trigger:hover{background:var(--emerald-light);}
.acc-trigger svg{width:18px; height:18px; transition:transform .35s var(--ease); flex-shrink:0; color:var(--emerald);}
.acc-trigger[aria-expanded="true"] svg{transform:rotate(180deg);}
.acc-panel{max-height:0; overflow:hidden; transition:max-height .35s var(--ease); background:var(--paper-dim);}
.acc-panel-inner{padding:6px 20px 20px;}
.acc-panel ul{margin:0; padding-left:20px; color:var(--ink-soft); font-size:.94rem; display:grid; gap:8px;}

/* Alumni marquee */
.alumni-strip{padding:56px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); overflow:hidden;}
.alumni-row{display:flex; flex-wrap:nowrap; gap:60px; width:max-content; animation:marquee 26s linear infinite;}
.alumni-row span{font-family:var(--font-display); font-weight:600; font-size:1.9rem; color:var(--ink-soft); opacity:.5; transition:opacity .2s ease; white-space:nowrap;}
.alumni-row span:hover{opacity:1; color:var(--emerald);}
.alumni-strip:hover .alumni-row{animation-play-state:paused;}

/* Testimonials (fallback grid) */
.testi-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; background:none; border:none;}
.testi-card{background:var(--white); border:1px solid var(--line); border-radius:var(--r-md); padding:28px; display:flex; flex-direction:column; gap:16px; transition:transform .3s var(--ease), box-shadow .3s var(--ease);}
.testi-card:hover{transform:translateY(-6px); box-shadow:var(--glow);}
.testi-quote{font-size:1rem; color:var(--ink); font-family:var(--font-display); font-style:italic;}
.testi-person{display:flex; align-items:center; gap:12px; padding-top:14px; border-top:1px solid var(--line);}
.avatar{width:40px; height:40px; border-radius:50%; flex-shrink:0; background:var(--emerald); color:#fff; display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-weight:700; font-size:.9rem;}
.testi-person strong{display:block; font-size:.92rem;}
.testi-person span{display:block; font-size:.8rem; color:var(--ink-soft);}

/* CTA */
.cta-section{padding:0;}
.cta-band{background:radial-gradient(900px 400px at 15% 0%, rgba(47,107,255,.35), transparent 60%), linear-gradient(140deg,var(--ink-deep),var(--emerald-deep)); color:#fff; text-align:center; padding:84px 24px; position:relative; overflow:hidden;}
.cta-band::before{content:''; position:absolute; width:340px; height:340px; border-radius:50%; background:radial-gradient(circle, rgba(99,179,255,.4), transparent 70%); filter:blur(70px); bottom:-160px; right:-100px; animation:floatY2 10s ease-in-out infinite;}
.cta-band h2{color:#fff; font-size:clamp(1.8rem,3.4vw,2.7rem); position:relative;}
.cta-band p{color:#B9C4DA; max-width:56ch; margin:0 auto 30px; font-size:1.06rem; position:relative;}
.cta-actions{display:flex; gap:14px; justify-content:center; flex-wrap:wrap; position:relative;}

/* Contact page */
.contact-grid{display:grid; grid-template-columns:.9fr 1.1fr; gap:40px; align-items:start;}
.contact-info-card{background:var(--white); border:1px solid var(--line); border-radius:var(--r-md); padding:22px; display:flex; gap:16px; align-items:flex-start; transition:transform .3s var(--ease), box-shadow .3s var(--ease);}
.contact-info-card:hover{transform:translateX(6px); box-shadow:var(--glow);}
.contact-info-card + .contact-info-card{margin-top:16px;}
.contact-info-card .bento-icon{margin-bottom:0; flex-shrink:0;}
.contact-info-card h4{margin:0 0 4px; font-size:1rem; font-weight:600;}
.contact-info-card p, .contact-info-card a{color:var(--ink-soft); font-size:.92rem; margin:0; text-decoration:none;}
.contact-info-card a:hover{color:var(--emerald);}
.map-frame{border-radius:var(--r-md); overflow:hidden; border:1px solid var(--line); margin-top:16px;}
.map-frame iframe{width:100%; height:260px; border:0; display:block; filter:grayscale(.15);}

.contact-form{background:var(--white); border:1px solid var(--line); border-radius:var(--r-lg); padding:36px; box-shadow:var(--shadow);}
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
.form-field{display:flex; flex-direction:column; gap:7px;}
.form-field.full{grid-column:1 / -1;}
.form-field label{font-size:.85rem; font-weight:600; color:var(--ink);}
.form-field input, .form-field select, .form-field textarea{
  width:100%; border:1.5px solid var(--line); border-radius:var(--r-sm); padding:12px 14px; font-family:var(--font-body);
  font-size:.95rem; color:var(--ink); background:var(--paper); resize:vertical; transition:border-color .25s ease, box-shadow .25s ease;
}
.form-field input:focus, .form-field select:focus, .form-field textarea:focus{outline:none; border-color:var(--emerald); box-shadow:0 0 0 4px rgba(47,107,255,.14);}
.form-note{font-size:.82rem; color:var(--ink-soft); margin-top:14px;}
.form-success{display:none; background:var(--emerald-light); color:var(--emerald-deep); border-radius:var(--r-sm); padding:14px 16px; font-weight:600; font-size:.92rem; margin-top:16px;}
.form-success.show{display:block; animation:fadeUp .4s var(--ease);}

/* Footer */
footer{background:var(--ink-deep); color:#9FADC4; padding:64px 0 0; font-size:.92rem; position:relative; overflow:hidden;}
.footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:36px; padding-bottom:44px; border-bottom:1px solid var(--line-dark); position:relative;}
footer h4{color:#fff; font-family:var(--font-display); font-size:.98rem; font-weight:600; margin-bottom:16px;}
footer ul{list-style:none; margin:0; padding:0; display:grid; gap:10px;}
footer a{text-decoration:none; color:#9FADC4; transition:color .25s ease, padding-left .25s ease;}
footer a:hover{color:#fff; padding-left:4px;}
.footer-brand p{color:#7C8AA3; max-width:38ch;}
.footer-social{display:flex; gap:12px; margin-top:16px;}
.footer-social a{width:34px; height:34px; border-radius:50%; background:rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center; transition:background .25s ease, transform .25s ease;}
.footer-social a:hover{background:var(--emerald); transform:translateY(-3px);}
.footer-social svg{width:15px; height:15px; fill:#BBD1FF;}
.bottom-bar{display:flex; justify-content:space-between; align-items:center; padding:22px 0; flex-wrap:wrap; gap:10px; color:#5E6C85; font-size:.82rem; position:relative;}

.whatsapp-float{position:fixed; bottom:44px; right:22px; z-index:150; width:54px; height:54px; border-radius:50%; background:#25D366; display:flex; align-items:center; justify-content:center; box-shadow:0 10px 24px rgba(0,0,0,.4); text-decoration:none; animation:floatY2 4s ease-in-out infinite;}
.whatsapp-float svg{width:26px; height:26px; fill:#fff;}
.whatsapp-float:hover{animation-play-state:paused; transform:scale(1.08);}
.whatsapp-float:focus-visible{outline:3px solid var(--emerald); outline-offset:3px;}

/* ---------------- Responsive ---------------- */
@media (max-width:980px){
  .hero h1{width: 80%;}
  nav.main-nav{display:none;}
  .menu-toggle{display:inline-flex;}
  header .footer-social{display:none;}
  /* .nav-row{padding:12px 0;} */
  .brand img{height:44px !important; max-width:min(58vw,220px); object-fit:contain;}
  .hero-grid{grid-template-columns:1fr;}
  .about-grid{grid-template-columns:1fr;}
  .bento, .bento-service, .bento-about{grid-template-columns:repeat(2,1fr);}
  .bento-tile.big, .bento-tile.big-about{grid-column:span 2; grid-row:span 1;}
  .testi-grid{grid-template-columns:1fr 1fr;}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .two-col-cards{grid-template-columns:1fr;}
  .cd-grid{grid-template-columns:1fr;}
  .contact-grid{grid-template-columns:1fr;}
  .course-scroller{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:640px){
  section{padding:56px 0;}
  .hero{padding:74px 0 24px;}
  .hero h1{font-size:clamp(2rem,9vw,2.7rem);}
  .hero p.lede{font-size:1rem;}
  .hero-cta{align-items:stretch;}
  .hero-cta .btn, .cta-actions .btn{justify-content:center; width:100%;}
  .hero.has-photo-side::after{display:none;}
  .hero .eyebrow{font-size:.88rem; letter-spacing:.02em;}
  .hero .btn{font-size:.92rem; padding:12px 20px;}
  .hero h1{margin:0 0 12px; line-height:1.2; font-weight:600; font-size:clamp(1.9rem,8vw,2.6rem);}
  .hero p.lede{margin:0 0 20px; line-height:1.5; font-size:clamp(.92rem,4vw,1.1rem);}
  .hero .tag-row{gap:8px; font-size:.82rem;}
  .hero .tag{ font-size:.78rem;}
  .hero-grid{gap:54px;}
  .ascent-card{padding:26px 18px 20px;}
  .ascent-bars{gap:8px; height:160px;}
  .ascent-label{font-size:.68rem;}
  .floating-badge{margin:-28px auto 0;}
  .bento, .bento-about, .bento-service{grid-template-columns:1fr;}
  .bento-tile.big, .bento-tile.big-service, .bento-tile.big-about, .bento-tile.big-smo{grid-column:span 1;}
  .testi-grid{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr; gap:28px;}
  .course-count-card .big-num{font-size:4rem;}
  .form-grid{grid-template-columns:1fr;}
  .contact-form, .info-card{padding:24px 18px;}
  .course-scroller{grid-template-columns:1fr;}
  .course-card{flex-basis:min(350px,calc(100vw - 48px));}
  .course-body{padding:22px 18px;}
  .pt-track{padding-inline:16px;}
  .pt-card{width:calc(100vw - 32px);}
  .pt-footer{align-items:flex-start; flex-direction:column;}
  .alumni-row{gap:36px;}
  .alumni-row span{font-size:clamp(1.1rem,5vw,1.5rem);}
  .cta-band{padding:56px 18px;}
  .bottom-bar{padding-inline:16px;}
  .whatsapp-float{right:16px; bottom:16px; width:52px; height:52px;}
  .page-header{padding:40px 0 32px;}
  .page-header.has-photo{padding:48px 0 56px !important;}
  .programs-panel{padding:18px;}
  .program-list, .why-rainbow-grid{grid-template-columns:1fr;}
  .program-item{grid-template-columns:52px 1fr; gap:10px; padding:13px 0;}
  .program-icon{width:48px; height:48px;}
  .program-icon svg{width:27px; height:27px;}
  .program-item p{font-size:.86rem;}
  .program-tags{gap:8px 14px; font-size:.82rem;}
  .commitment-ribbon{font-size:.78rem; padding-inline:26px;}
  .stat-strip .stat{padding-right:0; margin-right:18px; padding-left:0;}
  .orb{display:none;}
}

@media (max-width:400px){
  .hero p.lede{font-size:.92rem;}
  .hero .tag-row{gap:6px; font-size:.78rem;}
  .hero .tag{font-size:.54rem;}
  .hero h1{font-size:clamp(1.8rem,7vw,2.4rem);}
  .ascent-card{padding:22px 16px 18px;}
  .ascent-bars{height:140px;}
  .ascent-label{font-size:.64rem;}
  .floating-badge{margin:-24px auto 0;}
  .course-count-card{padding:32px;}
  .course-count-card .big-num{font-size:3.5rem;}
  .course-count-card ul{gap:6px;}
  .stat-strip .stat{padding-right:5px; margin-right:12px; padding-left:5px;}
  .stat-strip .stat-num{font-size:1.6rem;}
  .stat-strip .stat-lbl{font-size:.59rem;}
}