﻿/* ===== Design Tokens ===== */
@font-face { font-family:"Expo Arabic"; src:url("../../Expo Arabic Light/Expo Arabic Light.ttf") format("truetype"); font-weight:300; font-style:normal; font-display:swap; }
@font-face { font-family:"Expo Arabic"; src:url("../../Expo Arabic Book/Expo Arabic Book.ttf") format("truetype"); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:"Expo Arabic"; src:url("../../Expo Arabic Medium/Expo Arabic Medium.ttf") format("truetype"); font-weight:500; font-style:normal; font-display:swap; }
@font-face { font-family:"Expo Arabic"; src:url("../../Expo Arabic Bold/Expo Arabic Bold.ttf") format("truetype"); font-weight:600 900; font-style:normal; font-display:swap; }

:root {
  --purple-900: #2e1140;
  --purple-800: #451e63;
  --purple-700: #5b2b82;
  --purple-500: #7c3fa8;
  --gold: #c8912f;
  --gold-soft: #e2b457;
  --bg: #f7f5fb;
  --surface: #ffffff;
  --ink: #1e1327;
  --muted: #6b6478;
  --line: #ece7f3;
  --radius: 16px;
  --shadow-sm: 0 2px 8px rgba(46, 17, 64, 0.06);
  --shadow-md: 0 10px 30px rgba(46, 17, 64, 0.1);
  --shadow-lg: 0 24px 60px rgba(46, 17, 64, 0.18);
  --container: 1200px;
  --font-sans: "Expo Arabic", system-ui, sans-serif;
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--bg); }
body {
  font-family: var(--font-sans);
  color: var(--ink);
  background: var(--bg);
  line-height: 1.6;
  overflow-x: hidden;
}
a { text-decoration: none; color: inherit; }
ul { list-style: none; }
img { max-width: 100%; display: block; }
svg { width: 1em; height: 1em; fill: currentColor; }

/* ===== Progressive scroll reveal ===== */
.scroll-reveal {
  opacity: 0;
  transform: translate3d(0, 28px, 0);
  transition: opacity .7s ease var(--reveal-delay, 0ms), transform .7s cubic-bezier(.2,.75,.25,1) var(--reveal-delay, 0ms);
  will-change: opacity, transform;
}
.scroll-reveal.scroll-reveal-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  will-change: auto;
}
.footer-bottom.scroll-reveal {
  opacity: 1;
  transform: none;
  transition: none;
}
@media (prefers-reduced-motion: reduce) {
  .scroll-reveal { opacity: 1; transform: none; transition: none; }
}

.container { width: 100%; max-width: var(--container); margin: 0 auto; padding: 0 24px; }

/* ===== Buttons ===== */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font-family: inherit; font-weight: 700; font-size: 15px;
  padding: 11px 24px; border-radius: 12px; cursor: pointer; border: 1.5px solid transparent;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
  white-space: nowrap;
}
.btn .ico { font-size: 18px; }
.btn:hover { transform: translateY(-2px); }
.btn-lg { padding: 14px 30px; font-size: 16px; }
.btn-block { width: 100%; }
.btn-primary { background: var(--purple-700); color: #fff; box-shadow: var(--shadow-sm); }
.btn-primary:hover { background: var(--purple-800); box-shadow: var(--shadow-md); }
.btn-gold { background: var(--gold); color: var(--purple-900); box-shadow: var(--shadow-sm); }
.btn-gold:hover { background: var(--gold-soft); }
.btn-outline { background: transparent; border-color: var(--purple-700); color: var(--purple-900); }
.btn-outline:hover { background: var(--purple-700); color: #fff; }
.btn-ghost { background: rgba(255,255,255,.12); color: #fff; border-color: rgba(255,255,255,.35); }
.btn-ghost:hover { background: rgba(255,255,255,.22); }

/* ===== Top Bar ===== */
.topbar { background: var(--purple-900); color: #cdd8ee; font-size: 13px; }
.topbar-inner { display: flex; align-items: center; justify-content: space-between; height: 42px; }
.topbar-contact { display: flex; gap: 22px; }
.tb-item { display: inline-flex; align-items: center; gap: 7px; }
.tb-item .ico { font-size: 15px; color: var(--gold-soft); }
.topbar-social { display: flex; align-items: center; gap: 12px; }
.tb-note { color: #8ea0c4; }
.soc { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 8px; background: rgba(255,255,255,.08); transition: background .2s, color .2s; }
.soc svg { width: 15px; height: 15px; }
.soc:hover { background: var(--gold); color: var(--purple-900); }

/* ===== Navbar ===== */
.navbar { position: sticky; top: 0; z-index: 100; background: rgba(255,255,255,.9); backdrop-filter: blur(12px); border-bottom: 1px solid var(--line); transition: box-shadow .25s; }
.navbar.scrolled { box-shadow: var(--shadow-md); }
.nav-inner { display: flex; align-items: center; justify-content: space-between; height: 74px; gap: 20px; }
.brand { display: flex; align-items: center; gap: 12px; }
.brand-logo { height: 42px; width: auto; display: block; }
.brand-name .ksa { font-size: .48em; font-weight: 800; vertical-align: baseline; }
.nav-links { display: flex; align-items: center; gap: 6px; }
.nav-links a { padding: 9px 14px; border-radius: 10px; font-weight: 600; font-size: 15px; color: #33405c; transition: color .2s, background .2s; position: relative; }
.nav-links a:hover { color: var(--purple-700); background: #eef2fb; }
.nav-links a.active { color: var(--purple-700); }
.nav-links a.active::after { content: ""; position: absolute; bottom: 2px; right: 14px; left: 14px; height: 3px; border-radius: 3px; background: var(--gold); }
.nav-actions { display: flex; align-items: center; gap: 12px; }
.nav-toggle { display: none; flex-direction: column; gap: 5px; background: none; border: none; cursor: pointer; padding: 6px; }
.nav-toggle span { width: 24px; height: 2.5px; background: var(--purple-900); border-radius: 3px; transition: .3s; }
.nav-toggle.open span:nth-child(1) { transform: translateY(7.5px) rotate(45deg); }
.nav-toggle.open span:nth-child(2) { opacity: 0; }
.nav-toggle.open span:nth-child(3) { transform: translateY(-7.5px) rotate(-45deg); }

/* ===== Hero ===== */
.hero { position: relative; color: #fff; overflow: hidden; }
.hero-bg { position: absolute; inset: 0; background-size: cover; background-position: center; transform: scale(1.05); }
  .hero-overlay { position: absolute; inset: 0; background: linear-gradient(100deg, rgba(46,17,64,.96) 30%, rgba(69,30,99,.8) 65%, rgba(46,17,64,.55) 100%); }
.hero-inner { position: relative; padding: 72px 24px 76px; }
.hero-content { max-width: 820px; }
.pill { display: inline-block; padding: 7px 16px; border-radius: 999px; background: rgba(212,160,23,.16); border: 1px solid rgba(240,193,75,.4); color: var(--gold-soft); font-weight: 700; font-size: 13px; margin-bottom: 22px; }
  .pill-gold { background: rgba(46,17,64,.1); border-color: rgba(46,17,64,.2); color: var(--purple-900); }
.hero h1 { font-size: clamp(32px, 5vw, 54px); font-weight: 900; line-height: 1.2; margin-bottom: 18px; text-wrap: balance; }
.hero h1 .hl { color: var(--gold-soft); }
.hero p { font-size: 19px; color: #e2e8f5; margin-bottom: 22px; max-width: 760px; text-wrap: pretty; line-height: 1.9; }
.hero-highlights { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 30px; max-width: 780px; }
.hero-highlights span { display: inline-flex; align-items: center; min-height: 38px; padding: 8px 14px; border-radius: 999px; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.2); color: #f3f6fb; font-size: 14px; font-weight: 700; }
.hero-cta { display: flex; flex-wrap: wrap; gap: 14px; margin-bottom: 0; }
.hero-stats { display: grid; grid-template-columns: repeat(4, auto); gap: 34px; }
.stat strong { display: block; font-size: 34px; font-weight: 900; color: #fff; }
.stat span { font-size: 14px; color: #b8c5e0; }

.hero-marquee { position: relative; background: var(--gold); color: var(--purple-900); overflow: hidden; }
.marquee-track { display: flex; gap: 60px; white-space: nowrap; padding: 12px 0; width: max-content; animation: marquee 24s linear infinite; }
.marquee-track span { font-weight: 800; font-size: 15px; position: relative; padding-right: 60px; }
.marquee-track span::before { content: ""; position: absolute; right: 24px; top: 50%; width: 6px; height: 6px; border-radius: 50%; background: currentColor; opacity: .65; transform: translateY(-50%); }
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(50%); } }

/* ===== Inner Pages ===== */
.page-hero { position: relative; color: #fff; overflow: hidden; }
.page-hero-inner { position: relative; padding: 92px 24px 104px; max-width: var(--container); }
.page-hero h1 { max-width: 780px; font-size: clamp(34px, 5vw, 58px); font-weight: 900; line-height: 1.2; margin-bottom: 18px; text-wrap: balance; }
.page-hero p { max-width: 740px; color: #e2e8f5; font-size: 19px; line-height: 1.9; text-wrap: pretty; }
.about-page-hero .hero-overlay { background: linear-gradient(100deg, rgba(46,17,64,.98) 26%, rgba(69,30,99,.84) 68%, rgba(124,63,168,.56) 100%); }
.about-intro { align-items: stretch; }
.about-logo-panel { min-height: 100%; background: linear-gradient(145deg, var(--purple-900), var(--purple-700)); border-radius: 20px; padding: 40px; color: #fff; display: flex; flex-direction: column; justify-content: center; gap: 34px; box-shadow: var(--shadow-lg); overflow: hidden; }
.about-logo-panel img { width: min(100%, 360px); margin: 0 auto; }
.about-white-logo { width: min(100%, 360px); height: 140px; margin: 0 auto; overflow: hidden; }
.about-logo-panel .about-white-logo img { width: 360px; max-width: none; height: auto; margin: 0; transform: translateY(-145px); }
.about-panel-stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.about-panel-stats div { background: rgba(255,255,255,.09); border: 1px solid rgba(255,255,255,.16); border-radius: 14px; padding: 18px; }
.about-panel-stats strong { display: block; color: var(--gold-soft); font-size: 34px; font-weight: 900; line-height: 1; margin-bottom: 8px; }
.about-panel-stats span { color: #d7e0f2; font-size: 14px; }
.value-card { padding: 28px 24px; }
.value-card strong { display: block; color: var(--purple-900); font-size: 21px; font-weight: 900; margin-bottom: 10px; }
.value-card p { color: var(--muted); font-size: 15px; }

/* ===== Trust ===== */
.trust { padding: 40px 0; background: var(--surface); border-bottom: 1px solid var(--line); }
.trust-title { text-align: center; color: var(--muted); font-size: 14px; font-weight: 600; margin-bottom: 22px; }
.trust-logos { display: flex; flex-wrap: wrap; justify-content: center; gap: 44px; }
.trust-logos span { font-weight: 900; letter-spacing: 1px; color: #9aa8c2; font-size: 18px; opacity: .8; transition: color .2s; }
.trust-logos span:hover { color: var(--purple-700); }

/* ===== Sections ===== */
.section { padding: 84px 0; }
.section.alt { background: var(--surface); }
.section-head { max-width: 720px; margin: 0 auto 52px; text-align: center; }
.eyebrow { display: inline-block; color: var(--gold); font-weight: 800; font-size: 14px; letter-spacing: 1px; margin-bottom: 12px; }
.section-head h2, .split-text h2, .cta-inner h2, .promo-text h2 { font-size: clamp(26px, 3.5vw, 38px); font-weight: 900; color: var(--purple-900); line-height: 1.25; text-wrap: balance; }
.section-head h2 { margin-bottom: 14px; }
.section-head p { color: var(--muted); font-size: 17px; }

.grid { display: grid; gap: 24px; }
.grid-2 { grid-template-columns: repeat(2, 1fr); }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-4 { grid-template-columns: repeat(4, 1fr); }

.card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-sm); transition: transform .25s, box-shadow .25s; }
.card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }

/* Feature cards */
.feature { padding: 34px 28px; }
.feat-ico { width: 62px; height: 62px; border-radius: 16px; display: grid; place-items: center; background: color-mix(in srgb, var(--c) 14%, white); color: var(--c); margin-bottom: 20px; }
.feat-ico svg { width: 30px; height: 30px; }
.feature h3 { font-size: 21px; color: var(--purple-900); margin-bottom: 10px; }
.feature p { color: var(--muted); }

/* Promo */
.promo { background: linear-gradient(120deg, var(--gold) 0%, var(--gold-soft) 100%); color: var(--purple-900); padding: 56px 0; overflow: hidden; }
.promo-inner { display: flex; align-items: center; justify-content: space-between; gap: 40px; flex-wrap: wrap; }
.promo-text { max-width: 640px; }
.promo-text h2 { margin: 12px 0; }
.promo-text p { font-size: 17px; margin-bottom: 24px; color: #22335c; }
.promo-cta { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; }
.promo-subscribe { background: var(--purple-900); color: #fff; box-shadow: 0 10px 24px rgba(46,17,64,.24); }
.promo-subscribe:hover { background: var(--purple-700); color: #fff; transform: translateY(-2px); box-shadow: 0 14px 30px rgba(46,17,64,.3); }
.countdown { display: flex; gap: 12px; }
.cd { background: var(--purple-900); color: #fff; border-radius: 12px; padding: 10px 14px; text-align: center; min-width: 62px; }
.cd strong { display: block; font-size: 24px; font-weight: 900; }
.cd span { font-size: 12px; color: var(--gold-soft); }
.promo-badge { flex-shrink: 0; }
.badge-circle { width: 150px; height: 150px; border-radius: 50%; background: var(--purple-900); color: #fff; display: grid; place-items: center; box-shadow: var(--shadow-lg); border: 6px dashed var(--gold-soft); }
.badge-off { font-size: 52px; font-weight: 900; color: var(--gold-soft); line-height: 1; }
.badge-label { font-size: 16px; font-weight: 700; }

/* Split */
.split { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.split.reverse .split-media { order: 2; }
.split-text h2 { margin-bottom: 16px; }
.split-text > p { color: var(--muted); font-size: 17px; margin-bottom: 24px; }
.split-media { position: relative; }
.split-media > img { border-radius: 20px; box-shadow: var(--shadow-lg); width: 100%; }
.float-card { position: absolute; bottom: -22px; right: -18px; background: #fff; border-radius: 14px; padding: 14px 18px; display: flex; align-items: center; gap: 12px; box-shadow: var(--shadow-lg); }
.float-card .ico { width: 40px; height: 40px; border-radius: 10px; background: #e6f4ea; color: #1a9d52; display: grid; place-items: center; font-size: 22px; }
.float-card.gold .ico { background: rgba(212,160,23,.16); color: var(--gold); }
.float-card strong { display: block; font-size: 17px; color: var(--purple-900); }
.float-card small { color: var(--muted); font-size: 13px; }

.check-list { display: grid; gap: 12px; margin-bottom: 26px; }
.check-list li { position: relative; padding-right: 34px; color: #33405c; font-weight: 500; }
.check-list li::before { content: "âœ“"; position: absolute; right: 0; top: 0; width: 24px; height: 24px; background: var(--purple-700); color: #fff; border-radius: 50%; display: grid; place-items: center; font-size: 13px; font-weight: 900; }
.numbered-list { counter-reset: exam-feature; }
.numbered-list li { counter-increment: exam-feature; }
.numbered-list li::before { content: counter(exam-feature); }

.mini { margin-bottom: 26px; }
.mini-card { background: var(--bg); border: 1px solid var(--line); border-radius: 12px; padding: 16px 18px; }
.mini-card strong { display: block; color: var(--purple-900); font-size: 16px; }
.mini-card span { color: var(--muted); font-size: 14px; }

/* Teachers */
.teacher { padding: 20px; text-align: center; }
.teacher-photo { width: 100%; aspect-ratio: 1/1; border-radius: 14px; overflow: hidden; margin-bottom: 16px; }
.teacher-photo img { width: 100%; height: 100%; object-fit: cover; }
.teacher h3 { font-size: 18px; color: var(--purple-900); }
.teacher-role { color: var(--muted); font-size: 14px; }
.teacher-meta { display: flex; justify-content: center; gap: 18px; margin-top: 12px; font-size: 14px; font-weight: 700; color: var(--gold); }
.teacher-meta span:last-child { color: var(--muted); font-weight: 500; }
.staff-page { background: linear-gradient(180deg, #fbf9ff 0%, var(--bg) 42%, #fff 100%); min-height: 70vh; }
.staff-hero-strip { padding: 28px 0 8px; }
.staff-hero-card {
  position: relative;
  overflow: hidden;
  min-height: 128px;
  border-radius: 18px;
  padding: 22px 26px;
  color: #fff;
  background: linear-gradient(135deg, var(--purple-900) 0%, var(--purple-700) 58%, #8a62a4 100%);
  box-shadow: var(--shadow-lg);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}
.staff-hero-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 18% 18%, rgba(226,180,87,.22), transparent 32%), linear-gradient(90deg, rgba(255,255,255,.08), transparent 46%);
}
.staff-hero-card > * { position: relative; }
.staff-hero-card .eyebrow { color: var(--gold-soft); }
.staff-hero-card h1 { font-size: clamp(20px, 2.4vw, 28px); font-weight: 900; line-height: 1.15; margin-bottom: 8px; }
.staff-hero-card p { max-width: 460px; color: #e3e8f6; font-size: 14px; line-height: 1.8; }
.staff-hero-mark { flex: 0 0 148px; display: grid; place-items: center; }
.staff-hero-mark img { width: 138px; }
.teacher-search {
  width: min(100%, 520px);
  height: 46px;
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 14px auto 0;
  padding: 0 14px;
  border-radius: 14px;
  background: #fff;
  border: 1px solid var(--line);
  color: var(--purple-900);
  box-shadow: var(--shadow-sm);
}
.teacher-search svg { width: 20px; height: 20px; flex: 0 0 auto; color: var(--gold); }
.teacher-search input {
  width: 100%;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--purple-900);
  font-family: inherit;
  font-size: 14px;
  font-weight: 700;
}
.teacher-search input::placeholder { color: #8d839b; }
.staff-directory-section { padding-top: 34px; }
.teacher-directory { align-items: stretch; position: relative; }
.teacher-card {
  --mx: 50%;
  --my: 50%;
  --rx: 0deg;
  --ry: 0deg;
  position: relative;
  padding: 12px;
  border-radius: 20px;
  min-height: 100%;
  overflow: hidden;
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(236,231,243,.9);
  box-shadow: 0 12px 34px rgba(46,17,64,.08);
  transform: perspective(900px) rotateX(var(--rx)) rotateY(var(--ry)) translateY(0);
  transform-style: preserve-3d;
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.teacher-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at var(--mx) var(--my), rgba(226,180,87,.24), transparent 34%);
  opacity: 0;
  transition: opacity .22s ease;
  pointer-events: none;
}
.teacher-card::after {
  content: "";
  position: absolute;
  inset: 1px;
  border-radius: 19px;
  border: 1px solid rgba(200,145,47,.18);
  pointer-events: none;
}
.teacher-card.is-hovered {
  border-color: rgba(200,145,47,.38);
  box-shadow: 0 28px 70px rgba(46,17,64,.2);
}
.teacher-card.is-hidden {
  display: none;
}
.teacher-card.is-hovered::before { opacity: 1; }
.teacher-card .teacher-photo {
  position: relative;
  aspect-ratio: 16/10;
  background: linear-gradient(145deg, #fff, #f1ebf7);
  border: 1px solid var(--line);
  border-radius: 16px;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.5);
  transform: translateZ(28px);
  transition: transform .22s ease, box-shadow .22s ease;
}
.teacher-card .teacher-photo img { transition: transform .26s ease; }
.teacher-content { position: relative; padding: 14px 4px 2px; transform: translateZ(20px); }
.teacher-card h3 {
  position: relative;
  margin-top: 0;
  font-size: 18px;
  font-weight: 900;
}
.teacher-card .teacher-role {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  margin-top: 6px;
  padding: 4px 11px;
  border-radius: 999px;
  background: rgba(200,145,47,.12);
  color: var(--gold);
  font-size: 13px;
  font-weight: 800;
}
.teacher-tags { display: flex; justify-content: center; gap: 7px; margin-top: 12px; min-height: 26px; }
.teacher-tags span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 54px;
  padding: 4px 9px;
  border-radius: 999px;
  background: #f4eff9;
  color: #5f4a70;
  font-size: 12px;
  font-weight: 800;
  direction: ltr;
}
.teacher-select {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 40px;
  margin-top: 14px;
  border-radius: 12px;
  background: linear-gradient(135deg, var(--purple-700), var(--purple-800));
  color: #fff;
  font-size: 14px;
  font-weight: 800;
  transform: translateZ(24px);
  transition: background .2s ease, color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.teacher-select:hover {
  background: var(--gold);
  color: var(--purple-900);
  box-shadow: 0 12px 26px rgba(200,145,47,.28);
}
.teacher-card.is-hovered .teacher-photo { transform: translateZ(42px); box-shadow: 0 18px 34px rgba(46,17,64,.16); }
.teacher-card.is-hovered .teacher-photo img { transform: scale(1.055); }
.teacher-hover-frame {
  position: fixed;
  inset: 0 auto auto 0;
  width: 0;
  height: 0;
  border-radius: 20px;
  pointer-events: none;
  opacity: 0;
  z-index: 120;
  background:
    linear-gradient(rgba(255,255,255,.06), rgba(255,255,255,.06)) padding-box,
    linear-gradient(135deg, rgba(226,180,87,.95), rgba(124,63,168,.75), rgba(226,180,87,.55)) border-box;
  border: 1.5px solid transparent;
  box-shadow: 0 22px 55px rgba(46,17,64,.18), 0 0 0 6px rgba(226,180,87,.08);
  transform: translate3d(var(--frame-x, 0), var(--frame-y, 0), 0);
  transition: opacity .18s ease;
}
.teacher-hover-frame::after {
  content: "";
  position: absolute;
  inset: -18px;
  border-radius: inherit;
  background: radial-gradient(circle at 50% 50%, rgba(226,180,87,.22), transparent 62%);
  filter: blur(14px);
  opacity: .72;
}

/* Quotes */
.quote { padding: 30px 28px; }
.quote p { color: #33405c; font-size: 16px; margin-bottom: 20px; }
.quote footer { display: flex; flex-direction: column; border-top: 1px solid var(--line); padding-top: 14px; }
.quote strong { color: var(--purple-900); }
.quote span { color: var(--muted); font-size: 14px; }

/* CTA band */
.cta-band { background: var(--purple-900); color: #fff; padding: 64px 0; }
.cta-inner { display: flex; align-items: center; justify-content: space-between; gap: 30px; flex-wrap: wrap; }
.cta-inner h2 { color: #fff; margin-bottom: 8px; }
.cta-inner p { color: #b8c5e0; font-size: 17px; }

/* Contact */
.contact-list { display: grid; gap: 16px; margin-top: 10px; }
.contact-list li { display: flex; align-items: center; gap: 12px; color: #33405c; font-weight: 600; }
.contact-list .ico { width: 42px; height: 42px; border-radius: 12px; background: #eef2fb; color: var(--purple-700); display: grid; place-items: center; font-size: 20px; }
.contact-form { padding: 30px; }
.field { margin-bottom: 18px; }
.field label { display: block; font-weight: 700; font-size: 14px; margin-bottom: 8px; color: var(--purple-900); }
.field input, .field textarea, .field select { width: 100%; padding: 13px 15px; border: 1.5px solid var(--line); border-radius: 12px; font-family: inherit; font-size: 15px; background: var(--bg); transition: border .2s, box-shadow .2s; resize: vertical; }
  .field input:focus, .field textarea:focus, .field select:focus { outline: none; border-color: var(--purple-500); box-shadow: 0 0 0 3px rgba(124,63,168,.16); background: #fff; }
.form-note { margin-top: 14px; color: #1a9d52; font-weight: 700; text-align: center; }

/* Contact page */
.contact-page { background: linear-gradient(180deg, var(--bg) 0%, #fff 54%, var(--bg) 100%); }
.contact-page-hero .hero-overlay { background: linear-gradient(100deg, rgba(46,17,64,.98) 28%, rgba(69,30,99,.84) 68%, rgba(124,63,168,.48) 100%); }
.contact-main-section { padding-top: 72px; }
.contact-methods { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-bottom: 34px; }
.contact-method {
  --mx: 50%;
  --my: 50%;
  position: relative;
  overflow: hidden;
  min-height: 154px;
  padding: 24px;
  border-radius: 18px;
  background: rgba(255,255,255,.88);
  border: 1px solid var(--line);
  box-shadow: var(--shadow-sm);
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.contact-method::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at var(--mx) var(--my), rgba(226,180,87,.24), transparent 38%);
  opacity: 0;
  transition: opacity .25s ease;
}
.contact-method:hover { transform: translateY(-6px); border-color: rgba(200,145,47,.36); box-shadow: var(--shadow-lg); }
.contact-method:hover::before { opacity: 1; }
.method-ico { position: relative; width: 48px; height: 48px; border-radius: 14px; background: rgba(200,145,47,.13); color: var(--gold); display: grid; place-items: center; font-size: 24px; }
.contact-method strong { position: relative; color: var(--purple-900); font-size: 18px; font-weight: 900; }
.contact-method span:last-child { position: relative; color: var(--muted); font-size: 15px; font-weight: 700; direction: ltr; text-align: right; }
.contact-layout { display: grid; grid-template-columns: .9fr 1.35fr; gap: 26px; align-items: stretch; }
.contact-panel {
  position: relative;
  overflow: hidden;
  min-height: 100%;
  padding: 34px;
  border-radius: 22px;
  color: #fff;
  background: linear-gradient(145deg, var(--purple-900), var(--purple-700));
  box-shadow: var(--shadow-lg);
}
.contact-panel::before {
  content: "";
  position: absolute;
  inset: auto -80px -120px auto;
  width: 260px;
  height: 260px;
  border-radius: 50%;
  background: rgba(226,180,87,.18);
  filter: blur(6px);
}
.contact-panel-logo { width: 210px; height: 82px; margin-bottom: 28px; overflow: hidden; }
.contact-panel-logo img { width: 100%; max-width: none; height: auto; transform: translateY(-30%); }
.contact-panel h2 { position: relative; font-size: clamp(24px, 3vw, 34px); line-height: 1.25; margin-bottom: 14px; }
.contact-panel p { position: relative; color: #d7e0f2; line-height: 1.9; font-size: 16px; margin-bottom: 28px; }
.response-steps { position: relative; display: grid; gap: 12px; }
.response-steps div { display: flex; align-items: center; gap: 12px; padding: 13px 14px; border-radius: 14px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14); }
.response-steps span { width: 38px; height: 38px; border-radius: 11px; display: grid; place-items: center; background: var(--gold); color: var(--purple-900); font-weight: 900; direction: ltr; }
.response-steps strong { font-size: 15px; }
.contact-page-form {
  position: relative;
  padding: 34px;
  border-radius: 22px;
  border: 1px solid var(--line);
  box-shadow: var(--shadow-md);
}
.form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.contact-submit { min-height: 50px; margin-top: 4px; }
.contact-animate { opacity: 0; transform: translateY(36px) scale(.985); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.8,.2,1); transition-delay: var(--delay, 0ms); }
.contact-animate.in-view { opacity: 1; transform: none; }

/* Auth page */
.auth-navbar { position: relative; }
.auth-page {
  min-height: calc(100vh - 74px);
  padding: 42px 24px;
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at 18% 18%, rgba(226,180,87,.18), transparent 30%),
    radial-gradient(circle at 82% 68%, rgba(124,63,168,.18), transparent 34%),
    linear-gradient(145deg, #fbf9ff 0%, var(--bg) 46%, #fff 100%);
}
.auth-shell {
  width: min(100%, 1120px);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px;
  align-items: stretch;
}
.auth-visual {
  position: relative;
  overflow: hidden;
  min-height: 620px;
  padding: 42px;
  border-radius: 26px;
  color: #fff;
  background: linear-gradient(145deg, var(--purple-900), var(--purple-700));
  box-shadow: var(--shadow-lg);
}
.auth-visual::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 22% 18%, rgba(226,180,87,.24), transparent 32%), linear-gradient(90deg, rgba(255,255,255,.08), transparent 50%);
}
.auth-visual > * { position: relative; }
.auth-logo-wrap { width: 230px; height: 90px; margin-bottom: 34px; overflow: hidden; }
.auth-logo-wrap img { width: 100%; max-width: none; height: auto; transform: translateY(-30%); }
.auth-visual h1 { max-width: 520px; font-size: clamp(32px, 4vw, 48px); font-weight: 900; line-height: 1.18; margin-bottom: 18px; }
.auth-visual p { max-width: 520px; color: #e2e8f5; font-size: 17px; line-height: 1.9; margin-bottom: 34px; }
.auth-points { display: grid; gap: 12px; max-width: 460px; }
.auth-points div { display: flex; align-items: center; gap: 12px; padding: 13px 14px; border-radius: 14px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14); }
.auth-points span { width: 38px; height: 38px; border-radius: 11px; display: grid; place-items: center; background: var(--gold); color: var(--purple-900); font-weight: 900; direction: ltr; }
.auth-points strong { font-size: 15px; }
.auth-card {
  position: relative;
  overflow: hidden;
  padding: 28px;
  display: flex;
  flex-direction: column;
  align-self: stretch;
  border-radius: 26px;
  background: rgba(255,255,255,.94);
  border: 1px solid var(--line);
  box-shadow: var(--shadow-lg);
}
.auth-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at var(--mx, 50%) var(--my, 10%), rgba(226,180,87,.16), transparent 36%);
  pointer-events: none;
}
.auth-card > * { position: relative; }
.auth-tabs {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0;
  padding: 6px;
  border-radius: 16px;
  background: var(--bg);
  border: 1px solid var(--line);
  margin-bottom: 28px;
}
.auth-tab {
  position: relative;
  z-index: 2;
  border: 0;
  background: transparent;
  min-height: 46px;
  border-radius: 12px;
  font-family: inherit;
  font-size: 15px;
  font-weight: 900;
  color: var(--muted);
  cursor: pointer;
}
.auth-tab.active { color: #fff; }
.auth-tab-indicator {
  position: absolute;
  z-index: 1;
  top: 6px;
  bottom: 6px;
  right: 6px;
  width: calc(50% - 6px);
  border-radius: 12px;
  background: linear-gradient(135deg, var(--purple-700), var(--purple-800));
  box-shadow: 0 12px 28px rgba(91,43,130,.24);
  transition: transform .28s cubic-bezier(.2,.8,.2,1);
}
.auth-tabs.register-active .auth-tab-indicator { transform: translateX(-100%); }
.auth-form { display: none; animation: authPanel .34s ease both; }
.auth-form.active { display: flex; flex: 1; flex-direction: column; }
@keyframes authPanel { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
.auth-form-head { margin-bottom: 22px; }
.auth-form-head h2 { color: var(--purple-900); font-size: 28px; font-weight: 900; margin-bottom: 8px; }
.auth-form-head p { color: var(--muted); font-size: 15px; }
.auth-card .field input {
  min-height: 56px;
  padding-block: 12px;
}
.password-field { position: relative; }
.password-field input { padding-left: 58px; }
.password-toggle {
  position: absolute;
  left: 9px;
  bottom: 8px;
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 11px;
  background: rgba(91,43,130,.1);
  color: var(--purple-700);
  cursor: pointer;
  transition: color .18s ease, background .18s ease, transform .18s ease;
}
.password-toggle:hover { color: #fff; background: var(--purple-700); transform: scale(1.04); }
.password-toggle:focus-visible { outline: 3px solid rgba(226,180,87,.45); outline-offset: 2px; }
.password-toggle svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.password-toggle .eye-closed { display: none; }
.password-toggle.is-visible .eye-open { display: none; }
.password-toggle.is-visible .eye-closed { display: block; }
.auth-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 4px 0 22px; font-size: 14px; }
.remember-me { display: inline-flex; align-items: center; gap: 8px; color: var(--muted); font-weight: 700; }
.auth-row a { color: var(--purple-700); font-weight: 800; }
.auth-submit { min-height: 50px; }
.auth-note { margin-top: 14px; color: #1a9d52; font-weight: 800; text-align: center; }
.auth-assistance {
  position: relative;
  overflow: hidden;
  min-height: 210px;
  margin-top: 26px;
  padding: 20px 22px;
  border: 1px solid rgba(91,43,130,.14);
  border-radius: 20px;
  background: linear-gradient(145deg, #faf7ff 0%, #f5effb 62%, #fff8e9 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 10px 28px rgba(46,17,64,.07);
}
.auth-assistance::before {
  content: "";
  position: absolute;
  width: 150px;
  height: 150px;
  top: -92px;
  left: -48px;
  border-radius: 50%;
  background: rgba(226,180,87,.18);
}
.auth-assistance::after {
  content: "";
  position: absolute;
  width: 110px;
  height: 110px;
  right: -68px;
  bottom: -70px;
  border-radius: 50%;
  background: rgba(91,43,130,.09);
}
.auth-assistance > * { position: relative; z-index: 1; }
.auth-assistance-head { display: flex; align-items: center; gap: 13px; }
.auth-assistance-icon {
  width: 52px;
  height: 52px;
  flex: 0 0 52px;
  display: grid;
  place-items: center;
  border-radius: 16px;
  color: #fff;
  background: linear-gradient(145deg, var(--purple-700), var(--purple-900));
  box-shadow: 0 10px 22px rgba(91,43,130,.24);
}
.auth-assistance-icon svg { width: 28px; height: 28px; }
.auth-assistance-label { display: block; margin-bottom: 1px; color: var(--gold); font-size: 11px; font-weight: 900; }
.auth-assistance h3 { color: var(--purple-900); font-size: 17px; font-weight: 900; }
.auth-assistance-text { margin: 13px 0; color: var(--muted); font-size: 12px; line-height: 1.75; }
.auth-trust-list { display: flex; flex-wrap: wrap; gap: 8px; }
.auth-trust-list span { display: inline-flex; align-items: center; gap: 6px; padding: 5px 9px; border-radius: 999px; color: var(--purple-800); background: rgba(255,255,255,.78); border: 1px solid rgba(91,43,130,.1); font-size: 11px; font-weight: 800; }
.auth-trust-list i { width: 17px; height: 17px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--gold); font-size: 10px; font-style: normal; }
.auth-assistance-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 14px; padding-top: 12px; border-top: 1px solid rgba(91,43,130,.1); font-size: 12px; }
.auth-assistance-footer > span { color: var(--muted); font-weight: 700; }
.auth-assistance-footer a,
.auth-assistance-footer button { display: inline-flex; align-items: center; gap: 7px; padding: 7px 12px; border: 0; border-radius: 10px; color: #fff; background: var(--purple-700); font-family: inherit; font-size: 11px; font-weight: 900; cursor: pointer; box-shadow: var(--shadow-sm); transition: transform .18s ease, background .18s ease; }
.auth-assistance-footer a:hover,
.auth-assistance-footer button:hover { color: #fff; background: var(--purple-800); transform: translateX(-2px); }
.auth-register-guide { min-height: 0; margin-top: 22px; padding: 18px 20px; display: flex; flex: 1; flex-direction: column; justify-content: center; }
.auth-register-icon { background: linear-gradient(145deg, var(--gold-soft), var(--gold)); color: var(--purple-900); box-shadow: 0 10px 22px rgba(200,145,47,.22); }
.auth-register-benefits { margin-top: 15px; }
.auth-animate { opacity: 0; transform: translateY(26px); animation: authIn .72s cubic-bezier(.2,.8,.2,1) forwards; }
.auth-card.auth-animate { animation-delay: .12s; }
@keyframes authIn { to { opacity: 1; transform: none; } }

/* Footer */
.footer { background: var(--purple-900); color: #b8c5e0; padding-top: 60px; }
.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 40px; padding-bottom: 44px; }
.footer-brand .brand { width: min(200px, 100%); height: 78px; align-items: flex-start; overflow: hidden; }
.footer-brand .brand-logo { width: 200px; max-width: none; height: auto; transform: translateY(-78px); }
.footer-brand p { margin-top: 16px; font-size: 15px; line-height: 1.7; }
.footer-col h4 { color: #fff; font-size: 17px; margin-bottom: 18px; }
.footer-col a { display: block; padding: 6px 0; font-size: 15px; transition: color .2s; }
.footer-col a:hover { color: var(--gold-soft); }
.footer-col p { font-size: 14px; margin-bottom: 14px; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.1); }
.footer-bottom-inner { display: flex; align-items: center; justify-content: space-between; padding: 20px 24px; font-size: 14px; flex-wrap: wrap; gap: 12px; }
.footer-legal { display: flex; gap: 22px; }
.footer-legal a:hover { color: var(--gold-soft); }

/* To top */
.to-top { position: fixed; bottom: 26px; left: 26px; width: 48px; height: 48px; border-radius: 50%; background: var(--purple-700); color: #fff; display: grid; place-items: center; box-shadow: var(--shadow-md); opacity: 0; visibility: hidden; transform: translateY(12px); transition: .3s; z-index: 90; }
.to-top svg { width: 26px; height: 26px; }
.to-top.show { opacity: 1; visibility: visible; transform: translateY(0); }
.to-top:hover { background: var(--gold); color: var(--purple-900); }

/* Reveal animation */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity .7s ease, transform .7s ease; }
.reveal.in { opacity: 1; transform: none; }

/* ===== Responsive ===== */
@media (max-width: 980px) {
  .grid-4 { grid-template-columns: repeat(2, 1fr); }
  .split { grid-template-columns: 1fr; gap: 40px; }
  .split.reverse .split-media { order: 0; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .contact-layout { grid-template-columns: 1fr; }
  .contact-methods { grid-template-columns: 1fr; }
  .staff-hero-card { flex-direction: column; align-items: flex-start; }
  .staff-hero-mark { display: none; }
  .auth-shell { grid-template-columns: 1fr; align-items: start; }
  .auth-visual { min-height: auto; }
  .auth-card { align-self: start; width: 100%; }
}
@media (max-width: 820px) {
  .topbar { display: none; }
  .nav-links { position: fixed; inset: 74px 0 auto 0; flex-direction: column; align-items: stretch; background: #fff; padding: 16px; gap: 4px; border-bottom: 1px solid var(--line); box-shadow: var(--shadow-md); transform: translateY(-140%); transition: transform .32s ease; }
  .nav-links.open { transform: translateY(0); }
  .nav-links a { padding: 13px 16px; }
  .nav-links a.active::after { display: none; }
  .nav-toggle { display: flex; }
  .nav-actions .btn-outline { display: none; }
  .hero-stats { grid-template-columns: repeat(2, 1fr); gap: 24px; }
  .badge-circle { width: 120px; height: 120px; }
}
@media (max-width: 560px) {
  .grid-3, .grid-4, .grid-2 { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr; }
  .hero-inner { padding: 48px 24px 58px; }
  .page-hero-inner { padding: 64px 24px 78px; }
  .section { padding: 60px 0; }
  .float-card { right: 50%; transform: translateX(50%); }
  .about-logo-panel { padding: 28px 22px; }
  .about-panel-stats { grid-template-columns: 1fr; }
  .staff-hero-strip { padding: 30px 0 0; }
  .staff-hero-card { padding: 28px 22px; border-radius: 18px; min-height: auto; }
  .staff-directory-section { padding-top: 34px; }
  .contact-panel, .contact-page-form { padding: 24px 20px; border-radius: 18px; }
  .form-grid { grid-template-columns: 1fr; gap: 0; }
  .contact-panel-logo { width: 170px; height: 66px; }
  .auth-page { padding: 24px 16px; }
  .auth-visual, .auth-card { padding: 24px 20px; border-radius: 20px; }
  .auth-logo-wrap { width: 180px; height: 70px; margin-bottom: 24px; }
  .auth-visual h1 { font-size: 30px; }
  .auth-row { align-items: flex-start; flex-direction: column; }
  .auth-assistance { padding: 18px; }
  .auth-assistance-footer { align-items: stretch; flex-direction: column; }
  .auth-assistance-footer a, .auth-assistance-footer button { justify-content: center; }
}

/* ===== Staff directory: clean four-column edition ===== */
.staff-page { background:#f8f7fa; }
.staff-hero-strip { position:relative; padding:0 0 42px; background:linear-gradient(135deg,#2e1140 0%,#51236e 55%,#754394 100%); }
.staff-hero-strip::after { content:""; position:absolute; inset:0; pointer-events:none; opacity:.18; background:radial-gradient(circle at 15% 25%,var(--gold-soft),transparent 24%),radial-gradient(circle at 85% 5%,#fff,transparent 18%); }
.staff-hero-card { position:relative; z-index:1; min-height:auto; padding:70px 24px 58px; border:0; border-radius:0; background:none; box-shadow:none; display:block; text-align:center; }
.staff-hero-card::before,.staff-hero-card::after { display:none; }
.staff-hero-card > div { max-width:760px; margin-inline:auto; }
.staff-hero-card .eyebrow { display:inline-flex; padding:7px 15px; border:1px solid rgba(255,255,255,.18); border-radius:999px; background:rgba(255,255,255,.08); color:var(--gold-soft); }
.staff-hero-card h1 { margin:12px 0 10px; color:#fff; font-size:28px !important; }
.staff-hero-card p { max-width:720px; margin-inline:auto; color:#e8dfee; font-size:16px !important; }
.teacher-search { position:relative; z-index:2; width:min(90%,620px); height:56px; margin:-28px auto 0; border:1px solid rgba(255,255,255,.24); border-radius:14px; box-shadow:0 16px 38px rgba(27,8,39,.25); }
.staff-directory-section { padding:72px 0 100px; }
.staff-directory-head { align-items:center; margin-bottom:30px; padding-bottom:22px; border-bottom:1px solid var(--line); }
.staff-directory-head .eyebrow { margin-bottom:7px; }
.staff-directory-head h2 { font-size:22px !important; }
.staff-directory-head p { max-width:620px; }
.staff-count { background:#fff; box-shadow:var(--shadow-sm); }
.staff-page .teacher-directory { width:min(100%,1080px); margin-inline:auto; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.staff-page .teacher-card { min-height:0; padding:0; overflow:hidden; border:1px solid #e9e3ed; border-radius:18px; background:#fff; box-shadow:0 8px 26px rgba(46,17,64,.07); transform:none !important; transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease; }
.staff-page .teacher-card::before,.staff-page .teacher-card::after { display:none; }
.staff-page .teacher-card:hover { transform:translateY(-6px) !important; border-color:rgba(200,145,47,.45); box-shadow:0 18px 40px rgba(46,17,64,.13); }
.staff-page .teacher-card .teacher-photo { width:100%; aspect-ratio:1/1; margin:0; border:0; border-radius:0; background:#eee9f2; box-shadow:none; transform:none !important; }
.staff-page .teacher-card .teacher-photo img { transform:none !important; transition:transform .35s ease; }
.staff-page .teacher-card:hover .teacher-photo img { transform:scale(1.035) !important; }
.staff-page .teacher-content { padding:18px 14px 20px; transform:none; text-align:center; }
.staff-page .teacher-card h3 { margin:0 0 5px; color:var(--purple-900); font-size:18px !important; }
.staff-page .teacher-card .teacher-role { min-height:0; margin:0; padding:0; border-radius:0; background:none; color:var(--muted); font-size:14px !important; font-weight:600; }
.staff-page .teacher-tags,.staff-page .teacher-select { display:none; }
.teacher-hover-frame { display:none !important; }
@media(max-width:1050px){.staff-page .teacher-directory{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:800px){.staff-page .teacher-directory{grid-template-columns:repeat(2,minmax(0,1fr))}.staff-directory-head{align-items:flex-start;flex-direction:column}}
@media(max-width:520px){.staff-hero-card{padding:52px 20px 48px}.staff-directory-section{padding:58px 0 75px}.staff-page .teacher-directory{grid-template-columns:1fr;gap:18px}.staff-page .teacher-card{max-width:340px;margin-inline:auto}.staff-count{align-self:flex-start}}

@media (prefers-reduced-motion: reduce) {
  .teacher-card,
  .teacher-card .teacher-photo,
  .teacher-card .teacher-photo img,
  .teacher-hover-frame,
  .contact-animate {
    transition: none;
    transform: none !important;
  }
  .teacher-hover-frame { display: none; }
  .contact-animate { opacity: 1; }
}

/* ===== Refined teaching staff page ===== */
.staff-page { background: linear-gradient(180deg,#f8f5fb 0,#fff 62%); }
.staff-hero-strip { padding: 42px 0 20px; }
.staff-hero-card { min-height: 300px; padding: 48px 54px; border-radius: 28px; }
.staff-hero-card::after { content:""; position:absolute; width:360px; height:360px; left:-100px; bottom:-240px; border:1px solid rgba(255,255,255,.13); border-radius:50%; box-shadow:0 0 0 58px rgba(255,255,255,.035),0 0 0 116px rgba(255,255,255,.025); }
.staff-hero-card h1 { font-size:clamp(34px,4vw,52px); margin-bottom:14px; }
.staff-hero-card p { max-width:660px; font-size:17px; line-height:1.9; }
.staff-hero-mark { flex-basis:260px; }
.staff-hero-mark img { width:240px; filter:drop-shadow(0 18px 35px rgba(20,5,30,.28)); }
.staff-hero-stats { display:flex; flex-wrap:wrap; gap:12px; margin-top:25px; }
.staff-hero-stats span { display:inline-flex; align-items:center; gap:7px; padding:9px 13px; border:1px solid rgba(255,255,255,.16); border-radius:12px; background:rgba(255,255,255,.09); color:#eee7f4; font-size:13px; font-weight:700; backdrop-filter:blur(8px); }
.staff-hero-stats strong { color:var(--gold-soft); font-size:17px; font-weight:900; }
.teacher-search { position:relative; z-index:3; width:min(92%,680px); height:60px; margin:-30px auto 0; padding:0 21px; border:0; border-radius:18px; box-shadow:0 18px 42px rgba(46,17,64,.16); }
.teacher-search svg { width:24px; height:24px; }
.teacher-search input { font-size:16px; }
.staff-directory-section { padding:70px 0 100px; }
.staff-directory-head { display:flex; justify-content:space-between; align-items:flex-end; gap:28px; margin-bottom:35px; }
.staff-directory-head h2 { color:var(--purple-900); font-size:clamp(28px,3vw,40px); line-height:1.25; }
.staff-directory-head p { max-width:680px; margin-top:10px; color:var(--muted); font-size:15px; line-height:1.85; }
.staff-count { flex:0 0 auto; padding:10px 16px; border:1px solid rgba(91,43,130,.12); border-radius:999px; background:#f3edf7; color:var(--purple-700); font-size:13px; font-weight:900; }
.staff-page .teacher-directory { grid-template-columns:repeat(3,1fr); gap:26px; }
.staff-page .teacher-card { padding:15px; border-radius:24px; box-shadow:0 14px 38px rgba(46,17,64,.09); }
.staff-page .teacher-card::after { border-radius:23px; }
.staff-page .teacher-card .teacher-photo { aspect-ratio:4/3; margin-bottom:0; border-radius:19px; }
.staff-page .teacher-content { padding:20px 8px 7px; }
.staff-page .teacher-card h3 { font-size:21px; }
.staff-page .teacher-card .teacher-role { min-height:30px; font-size:14px; }
.staff-page .teacher-tags span { min-width:62px; padding:5px 11px; font-size:12px; }
.staff-page .teacher-select { min-height:46px; margin-top:18px; border-radius:13px; font-size:15px; }
@media(max-width:980px){.staff-hero-card{padding:40px}.staff-page .teacher-directory{grid-template-columns:repeat(2,1fr)}.staff-hero-mark{flex-basis:190px}.staff-hero-mark img{width:180px}}
@media(max-width:680px){.staff-hero-strip{padding-top:20px}.staff-hero-card{min-height:auto;padding:34px 24px 56px;border-radius:22px}.staff-hero-card h1{font-size:34px}.staff-hero-card p{font-size:15px}.staff-hero-mark{display:none}.staff-hero-stats{gap:8px}.staff-hero-stats span{font-size:12px}.teacher-search{height:54px}.staff-directory-section{padding-top:55px}.staff-directory-head{align-items:flex-start;flex-direction:column}.staff-page .teacher-directory{grid-template-columns:1fr}.staff-count{align-self:flex-start}.staff-page .teacher-card{max-width:460px;width:100%;margin-inline:auto}}
 
/* ===== Unified typography scale ===== */
:root {
  --type-h1: 28px;
  --type-h2: 22px;
  --type-h3: 18px;
  --type-body: 16px;
  --type-button: 15px;
  --type-secondary: 14px;
  --type-caption: 12px;
}
body { font-size: var(--type-body); }
h1 { font-size: var(--type-h1) !important; line-height: 1.35 !important; }
h2 { font-size: var(--type-h2) !important; line-height: 1.4 !important; }
h3 { font-size: var(--type-h3) !important; line-height: 1.45 !important; }
p { font-size: var(--type-body) !important; }
.btn, button, input[type="button"], input[type="submit"], .teacher-select, .program-content > a, .learning-button { font-size: var(--type-button) !important; }
.eyebrow, .pill, .teacher-role, .teacher-tags span, .program-code, .program-tags span, .program-image > span, .member-kicker, .apps-kicker, .trust-title, .field label, .footer-col p, .footer-bottom-inner, .auth-form-head p, .auth-row, .member-account button small, .member-dropdown a, .member-dropdown button { font-size: var(--type-secondary) !important; }
.card p, .value-card p, .feature p, .program-content p, .apps-copy > p, .quote span, .teacher-meta, .footer-brand p, .footer-col a, .staff-directory-head p, .staff-count { font-size: var(--type-secondary) !important; }
small, .learning-card-label, .learning-subject small, .learning-details, .next-exam small, .store-button small, .social-rail span { font-size: var(--type-caption) !important; }
.nav-links a { font-size: 15px !important; }
@media (max-width: 560px) {
  h1 { font-size: 28px !important; }
  h2 { font-size: 22px !important; }
  h3 { font-size: 18px !important; }
  p { font-size: 16px !important; }
}

/* Final staff-page layout overrides */
.staff-page { background:#f8f7fa; }
.staff-page .staff-hero-strip { padding:0 0 42px; background:linear-gradient(135deg,#2e1140,#51236e 55%,#754394); }
.staff-page .staff-hero-card { min-height:auto; padding:70px 24px 58px; border-radius:0; background:none; box-shadow:none; display:block; text-align:center; }
.staff-page .staff-hero-card > div { max-width:760px; margin-inline:auto; }
.staff-page .staff-hero-card h1 { margin:12px 0 10px; }
.staff-page .staff-hero-card p { max-width:720px; margin-inline:auto; }
.staff-page .teacher-search { width:min(90%,620px); height:56px; margin:-28px auto 0; border-radius:14px; }
.staff-page .staff-directory-section { padding:72px 0 100px; }
.staff-page .staff-directory-head { align-items:center; margin-bottom:30px; padding-bottom:22px; border-bottom:1px solid var(--line); }
.staff-page .teacher-directory { grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.staff-page .teacher-card { min-height:0; padding:0; border-radius:18px; transform:none !important; }
.staff-page .teacher-card .teacher-photo { aspect-ratio:16/10; margin:0; border:0; border-radius:0; transform:none !important; }
.staff-page .teacher-content { padding:12px 11px 13px; transform:none; }
.staff-page .teacher-card h3 { margin:0 0 5px; font-size:18px !important; }
.staff-page .teacher-card .teacher-role { min-height:0; margin:0; padding:0; background:none; font-size:14px !important; }
.staff-page .teacher-tags { display:none; }
.staff-page .teacher-select { display:inline-flex; min-height:36px; margin-top:10px; border-radius:9px; font-size:14px !important; }
@media(max-width:1050px){.staff-page .teacher-directory{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:800px){.staff-page .teacher-directory{grid-template-columns:repeat(2,minmax(0,1fr))}.staff-page .staff-directory-head{align-items:flex-start;flex-direction:column}}
@media(max-width:520px){.staff-page .staff-hero-card{padding:52px 20px 48px}.staff-page .staff-directory-section{padding:58px 0 75px}.staff-page .teacher-directory{grid-template-columns:1fr}.staff-page .teacher-card{max-width:340px;margin-inline:auto}}

/* ===== Compact, equal authentication panels ===== */
.auth-page { padding:42px 20px; }
.auth-shell { width:min(100%,1000px); gap:22px; align-items:stretch; }
.auth-visual { min-height:580px; padding:32px; border-radius:22px; }
.auth-card { min-height:580px; padding:22px; border-radius:22px; }
.auth-tabs { min-height:50px; margin-bottom:20px; padding:5px; border-radius:14px; }
.auth-tab { min-height:40px; }
.auth-tab-indicator { top:5px; bottom:5px; right:5px; width:calc(50% - 5px); }
.auth-form-head { margin-bottom:16px; }
.auth-form-head h2 { margin-bottom:5px; }
.auth-card .field { margin-bottom:14px; }
.auth-card .field input { min-height:50px; padding-block:9px; }
.phone-input { min-height:50px; display:flex; align-items:center; overflow:hidden; border:1.5px solid var(--line); border-radius:12px; background:var(--bg); transition:border .2s,box-shadow .2s; }
.phone-input:focus-within { border-color:var(--purple-700); box-shadow:0 0 0 3px rgba(91,43,130,.1); }
.phone-input > span { align-self:stretch; display:flex; align-items:center; padding:0 14px; border-right:1px solid var(--line); color:var(--purple-900); background:#eee8f4; font-size:15px; font-weight:800; }
.auth-card .field .phone-input input { min-width:0; min-height:48px; padding:9px 14px; border:0; border-radius:0; box-shadow:none; background:transparent; direction:ltr; text-align:left; }
.auth-card .field .phone-input input:focus { border:0; box-shadow:none; outline:0; }
.password-toggle { bottom:6px; width:38px; height:38px; }
.auth-row { margin:2px 0 16px; }
.auth-submit { min-height:45px; }
.auth-assistance { min-height:180px; margin-top:18px; padding:16px 18px; border-radius:17px; }
.auth-assistance-icon { width:46px; height:46px; flex-basis:46px; border-radius:13px; }
.auth-assistance-icon svg { width:24px; height:24px; }
.auth-assistance-text { margin:10px 0; }
.auth-assistance-footer { margin-top:10px; padding-top:9px; }
.auth-visual p { margin-bottom:25px; }
.auth-points { gap:10px; }
.auth-points div { padding:10px 12px; border-radius:12px; }
.auth-points span { width:34px; height:34px; border-radius:9px; }
.auth-promo-visual { position:relative; min-height:145px; margin-top:22px; overflow:hidden; border:1px solid rgba(255,255,255,.16); border-radius:16px; background:linear-gradient(90deg,rgba(46,17,64,.9),rgba(46,17,64,.3)),url("../images/hero.png") center 42%/cover no-repeat; box-shadow:0 16px 34px rgba(18,4,27,.22); }
.auth-promo-visual::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(20,5,30,.72),transparent 70%); }
.auth-promo-visual div { position:absolute; z-index:1; right:18px; left:18px; bottom:15px; display:flex; flex-direction:column; gap:3px; }
.auth-promo-visual strong { color:#fff; font-size:16px; font-weight:900; }
.auth-promo-visual span { color:#e3d9e9; font-size:13px; font-weight:600; }
@media(max-width:980px){.auth-shell{grid-template-columns:1fr;max-width:620px}.auth-visual,.auth-card{min-height:auto}}
@media(max-width:560px){.auth-page{padding:24px 14px}.auth-visual,.auth-card{padding:20px 17px;border-radius:18px}.auth-assistance{padding:15px}.auth-promo-visual{min-height:125px}}

/* ===== Floating social media rail ===== */
.social-rail { position:fixed; z-index:140; top:45%; left:0; display:flex; flex-direction:column; align-items:flex-start; direction:ltr; gap:7px; transform:translateY(-50%); }
.social-rail a { position:relative; width:42px; height:42px; display:flex; align-items:center; justify-content:center; border-radius:0 9px 9px 0; color:#fff; box-shadow:0 10px 25px rgba(25,15,35,.18); transition:width .28s,transform .28s,box-shadow .28s; }
.social-rail a svg { width:20px; height:20px; fill:currentColor; }
.social-rail .instagram svg { fill:none; stroke:currentColor; stroke-width:2; }
.social-rail .instagram svg circle:last-child { fill:currentColor; stroke:none; }
.social-rail .youtube svg .play { fill:#e91e63; stroke:none; }
.social-rail span { position:absolute; left:43px; opacity:0; white-space:nowrap; font-size:12px !important; font-weight:800; transition:opacity .18s; }
.social-rail a:hover { width:115px; justify-content:flex-start; padding-left:12px; box-shadow:0 14px 32px rgba(25,15,35,.28); }
.social-rail a:hover span { opacity:1; }
.social-rail .facebook { background:#4267b2; }
.social-rail .instagram { background:linear-gradient(135deg,#5851db,#c13584,#fd1d1d,#fcb045); }
.social-rail .youtube { background:#e91e63; }
@media(max-width:820px){.social-rail{top:auto;bottom:18px;left:10px;transform:none}.social-rail a:hover{width:42px;padding:0;justify-content:center}.social-rail a:hover span{display:none}}
@media(max-width:560px){.social-rail a{width:38px;height:38px}.social-rail a svg{width:18px;height:18px}}

/* ===== International programs page ===== */
.international-programs-page { background:#fbfafc; }
.programs-hero { position:relative; overflow:hidden; color:#fff; background:radial-gradient(circle at 12% 25%,rgba(226,180,87,.2),transparent 26%),linear-gradient(125deg,#240c34 0%,#42195c 52%,#652b87 100%); }
.programs-hero::before { content:""; position:absolute; width:520px; height:520px; left:-250px; bottom:-350px; border:1px solid rgba(226,180,87,.22); border-radius:50%; box-shadow:0 0 0 75px rgba(226,180,87,.035),0 0 0 150px rgba(226,180,87,.022); }
.programs-world-grid { position:absolute; inset:0; opacity:.055; background-image:linear-gradient(rgba(255,255,255,.9) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.9) 1px,transparent 1px); background-size:46px 46px; mask-image:linear-gradient(90deg,transparent,#000 30%,#000); }
.programs-hero-inner { position:relative; z-index:1; min-height:480px; display:flex; align-items:center; flex-direction:column; justify-content:center; padding:75px 24px 85px; text-align:center; }
.programs-kicker { display:inline-flex; align-items:center; gap:12px; color:var(--gold-soft); font-size:13px; font-weight:800; letter-spacing:.5px; direction:ltr; }
.programs-kicker i { width:35px; height:1px; background:currentColor; }
.programs-hero h1 { margin:20px 0 15px; color:#fff; font-size:clamp(40px,5vw,66px) !important; line-height:1.25 !important; font-weight:900; }
.programs-hero h1 span { color:var(--gold-soft); }
.programs-hero p { max-width:800px; color:#ded4e5; font-size:17px !important; line-height:1.95; }
.programs-standards { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:27px; }
.programs-standards span { padding:8px 14px; border:1px solid rgba(255,255,255,.16); border-radius:999px; background:rgba(255,255,255,.08); color:#f2edf5; font-size:13px; font-weight:700; backdrop-filter:blur(8px); }
.intl-programs-section { padding:95px 0 110px; }
.intl-section-head { display:flex; align-items:flex-end; justify-content:space-between; gap:45px; margin-bottom:42px; }
.intl-section-head h2 { color:var(--purple-900); font-size:32px !important; }
.intl-section-head > p { max-width:570px; color:var(--muted); font-size:15px !important; line-height:1.9; }
.intl-programs-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; align-items:stretch; }
.intl-program-card { --program:#6a328e; position:relative; overflow:hidden; padding:0; border:1px solid var(--line); border-radius:25px; background:#fff; box-shadow:0 16px 42px rgba(46,17,64,.09); transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s,border-color .35s; }
.intl-program-card::after { content:""; position:absolute; inset:auto -80px -105px auto; width:190px; height:190px; border-radius:50%; background:var(--program); opacity:.055; pointer-events:none; }
.intl-program-card:hover { transform:translateY(-10px); border-color:color-mix(in srgb,var(--program) 45%,#fff); box-shadow:0 30px 70px rgba(46,17,64,.17); }
.program-sat { --program:#227797; }
.program-ib { --program:#23826f; }
.intl-program-media { position:relative; height:220px; overflow:hidden; background:#eee; }
.intl-program-media::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(20,7,29,.48),transparent 55%); }
.intl-program-media img { width:100%; height:100%; object-fit:cover; transition:transform .65s cubic-bezier(.2,.8,.2,1); }
.intl-program-card:hover .intl-program-media img { transform:scale(1.06); }
.intl-program-number { position:absolute; z-index:2; top:16px; left:16px; width:38px; height:38px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.25); border-radius:50%; background:rgba(22,8,31,.48); color:#fff; font-size:12px; font-weight:900; backdrop-filter:blur(8px); }
.intl-program-label { position:absolute; z-index:2; right:17px; bottom:16px; color:#fff; font-size:12px; font-weight:800; direction:ltr; }
.intl-program-body { position:relative; padding:25px 24px 24px; }
.intl-program-code { color:var(--program); font-size:12px; font-weight:900; letter-spacing:1px; }
.intl-program-body h3 { margin:4px 0 11px; color:var(--purple-900); font-size:21px !important; direction:ltr; text-align:right; }
.intl-program-body > p { min-height:78px; color:var(--muted); font-size:14px !important; line-height:1.85; }
.intl-program-body ul { display:grid; gap:8px; margin:18px 0 22px; }
.intl-program-body li { position:relative; padding-right:20px; color:#483b52; font-size:13px; font-weight:700; }
.intl-program-body li::before { content:""; position:absolute; right:0; top:.65em; width:7px; height:7px; border-radius:50%; background:var(--program); box-shadow:0 0 0 4px color-mix(in srgb,var(--program) 13%,#fff); }
.intl-program-body > a { display:flex; align-items:center; justify-content:space-between; min-height:46px; padding:0 15px; border-radius:12px; background:color-mix(in srgb,var(--program) 9%,#fff); color:var(--program); font-size:14px; font-weight:900; transition:background .25s,color .25s,transform .25s; }
.intl-program-body > a:hover { background:var(--program); color:#fff; transform:translateX(-3px); }
.programs-cta { padding:0 0 100px; }
.programs-cta-inner { position:relative; overflow:hidden; min-height:160px; display:flex; align-items:center; justify-content:space-between; gap:30px; padding:35px 42px; border-radius:24px; color:#fff; background:linear-gradient(120deg,var(--purple-900),var(--purple-700)); box-shadow:var(--shadow-lg); }
.programs-cta-inner::after { content:""; position:absolute; width:260px; height:260px; left:-80px; top:-150px; border:1px solid rgba(226,180,87,.22); border-radius:50%; box-shadow:0 0 0 45px rgba(226,180,87,.04); }
.programs-cta-inner > * { position:relative; z-index:1; }
.programs-cta-inner span { color:var(--gold-soft); font-size:13px; font-weight:800; }
.programs-cta-inner h2 { margin-top:4px; color:#fff; font-size:24px !important; }
.programs-cta-inner .btn-gold { background:var(--gold-soft); white-space:nowrap; }
@media(max-width:980px){.intl-programs-grid{grid-template-columns:repeat(2,1fr)}.intl-program-card:last-child{grid-column:1/-1;width:min(100%,520px);justify-self:center}.intl-section-head{align-items:flex-start;flex-direction:column;gap:14px}}
@media(max-width:680px){.programs-hero-inner{min-height:420px;padding:60px 20px 70px}.programs-hero h1{font-size:36px !important}.programs-hero p{font-size:16px !important}.intl-programs-section{padding:70px 0 80px}.intl-programs-grid{grid-template-columns:1fr}.intl-program-card:last-child{grid-column:auto;width:100%}.intl-program-media{height:205px}.programs-cta{padding-bottom:75px}.programs-cta-inner{align-items:flex-start;flex-direction:column;padding:30px 24px}.programs-cta-inner .btn{width:100%}}
 
/* ===== Final mandatory typography system ===== */
html body h1 { font-size:28px !important; line-height:1.35 !important; }
html body h2 { font-size:22px !important; line-height:1.4 !important; }
html body h3 { font-size:18px !important; line-height:1.45 !important; }
html body p { font-size:16px !important; line-height:1.8; }
html body .btn,
html body button,
html body input[type="button"],
html body input[type="submit"],
html body .teacher-select,
html body .intl-program-body > a,
html body .program-content > a,
html body .learning-button { font-size:15px !important; }
html body .nav-links a { font-size:15px !important; }
html body .card p,
html body .feature p,
html body .value-card p,
html body .program-content p,
html body .intl-program-body > p,
html body .apps-copy > p,
html body .footer-brand p,
html body .footer-col a,
html body .staff-directory-head p,
html body .quote span { font-size:14px !important; }
html body .eyebrow,
html body .pill,
html body .teacher-role,
html body .teacher-tags span,
html body .program-code,
html body .program-tags span,
html body .program-image > span,
html body .intl-program-code,
html body .intl-program-label,
html body .intl-program-body li,
html body .member-kicker,
html body .apps-kicker,
html body .field label,
html body .footer-bottom-inner,
html body .auth-row,
html body .member-dropdown a,
html body .member-dropdown button,
html body .programs-standards span { font-size:14px !important; }
html body small,
html body .learning-card-label,
html body .learning-subject small,
html body .learning-details,
html body .next-exam small,
html body .store-button small,
html body .social-rail span { font-size:12px !important; }

/* ===== Programs page premium refinement ===== */
.programs-hero-inner { min-height:500px; display:grid; grid-template-columns:minmax(0,1.08fr) minmax(360px,.72fr); gap:70px; align-items:center; padding-block:65px; text-align:right; }
.programs-hero-copy { position:relative; z-index:2; }
.programs-hero-copy .programs-kicker { justify-content:flex-start; }
.programs-hero-copy .programs-kicker i:last-child { display:none; }
.programs-hero-copy p { margin:0; }
.programs-hero-copy .programs-standards { justify-content:flex-start; }
.programs-hero-showcase { position:relative; min-height:360px; display:grid; place-items:center; isolation:isolate; }
.programs-hero-showcase::before { content:""; position:absolute; inset:42px; border-radius:50%; background:radial-gradient(circle,rgba(226,180,87,.13),rgba(255,255,255,.025) 48%,transparent 70%); filter:blur(2px); }
.showcase-orbit { position:absolute; border:1px solid rgba(226,180,87,.28); border-radius:50%; }
.orbit-a { width:270px; height:270px; }
.orbit-b { width:340px; height:340px; border-style:dashed; opacity:.55; animation:programOrbit 28s linear infinite; }
.showcase-core { position:relative; z-index:2; width:128px; height:128px; display:flex; align-items:center; justify-content:center; flex-direction:column; border:1px solid rgba(255,255,255,.22); border-radius:50%; color:var(--gold-soft); background:linear-gradient(145deg,rgba(255,255,255,.14),rgba(255,255,255,.04)); box-shadow:0 25px 60px rgba(14,3,21,.32),inset 0 0 30px rgba(255,255,255,.06); font-size:28px; font-weight:900; backdrop-filter:blur(12px); }
.showcase-core small { margin-top:4px; color:#d9cfe0; font-size:8px !important; letter-spacing:1px; }
.showcase-program { position:absolute; z-index:3; min-width:98px; display:flex; align-items:center; flex-direction:column; gap:1px; padding:11px 13px; border:1px solid rgba(255,255,255,.2); border-radius:14px; color:#fff; background:rgba(255,255,255,.1); box-shadow:0 14px 35px rgba(12,3,18,.24); backdrop-filter:blur(10px); animation:programFloat 4s ease-in-out infinite; }
.showcase-program b { color:#fff; font-size:17px; font-weight:900; direction:ltr; }
.showcase-program small { color:var(--gold-soft); font-size:9px !important; direction:ltr; }
.showcase-igcse { top:31px; right:17px; }
.showcase-sat { left:0; top:145px; animation-delay:-1.4s; }
.showcase-ib { right:34px; bottom:18px; animation-delay:-2.8s; }
@keyframes programOrbit { to { transform:rotate(360deg); } }
@keyframes programFloat { 50% { transform:translateY(-7px); } }
.intl-programs-section { position:relative; overflow:hidden; background:radial-gradient(circle at 5% 15%,rgba(91,43,130,.055),transparent 24%),#fbfafc; }
.intl-programs-section::before { content:"PROGRAMS"; position:absolute; left:-15px; top:45px; color:rgba(46,17,64,.025); font-family:Arial,sans-serif; font-size:110px; font-weight:900; letter-spacing:5px; pointer-events:none; }
.intl-section-head { position:relative; z-index:1; padding:0 0 24px; border-bottom:1px solid var(--line); }
.intl-programs-grid { position:relative; z-index:1; padding-top:8px; }
.intl-program-card { overflow:visible; }
.intl-program-card::before { content:""; position:absolute; z-index:3; top:-1px; right:28px; left:28px; height:4px; border-radius:0 0 5px 5px; background:linear-gradient(90deg,transparent,var(--program),transparent); }
.intl-program-card .intl-program-media,.intl-program-card .intl-program-body { overflow:hidden; }
.intl-program-card .intl-program-media { border-radius:24px 24px 0 0; }
.intl-program-card.is-featured { border-color:rgba(34,119,151,.3); box-shadow:0 20px 55px rgba(34,119,151,.14); }
.featured-ribbon { position:absolute; z-index:6; top:17px; right:-8px; padding:7px 14px 7px 18px; border-radius:7px 0 0 7px; color:#fff; background:var(--program); box-shadow:0 8px 20px rgba(20,50,67,.25); font-size:12px; font-weight:900; }
.featured-ribbon::after { content:""; position:absolute; right:0; bottom:-7px; border-top:7px solid #174e65; border-right:8px solid transparent; }
.intl-program-body > a span { transition:transform .25s; }
.intl-program-body > a:hover span { transform:translateX(-4px); }
.programs-cta-inner { border:1px solid rgba(255,255,255,.08); }
@media(max-width:980px){.programs-hero-inner{grid-template-columns:1fr;gap:20px;text-align:center}.programs-hero-copy .programs-kicker,.programs-hero-copy .programs-standards{justify-content:center}.programs-hero-showcase{min-height:330px;max-width:430px;width:100%;margin-inline:auto}}
@media(max-width:560px){.programs-hero-inner{padding-block:52px}.programs-hero-showcase{min-height:290px;transform:scale(.88);margin-block:-15px}.orbit-a{width:235px;height:235px}.orbit-b{width:290px;height:290px}.showcase-igcse{right:0}.showcase-sat{left:-8px;top:120px}.showcase-ib{right:15px}.intl-programs-section::before{font-size:70px}}
@media(prefers-reduced-motion:reduce){.orbit-b,.showcase-program{animation:none}}

/* ===== Programs page finishing touches ===== */
.programs-hero h1 { font-size:26px !important; letter-spacing:.1px; white-space:nowrap; }
.programs-hero-copy { padding:28px 30px; border:1px solid rgba(255,255,255,.1); border-radius:24px; background:linear-gradient(135deg,rgba(255,255,255,.075),rgba(255,255,255,.025)); box-shadow:inset 0 1px 0 rgba(255,255,255,.08); backdrop-filter:blur(7px); }
.programs-hero-copy::before { content:""; position:absolute; top:28px; right:0; width:3px; height:58px; border-radius:3px 0 0 3px; background:linear-gradient(var(--gold-soft),transparent); }
.intl-section-head > div { position:relative; padding-left:125px; }
.intl-programs-count { position:absolute; left:0; bottom:2px; padding:6px 11px; border:1px solid rgba(91,43,130,.12); border-radius:999px; color:var(--purple-700); background:#f3edf7; font-size:12px; font-weight:900; }
.intl-program-card { display:flex; flex-direction:column; }
.intl-program-body { flex:1; display:flex; flex-direction:column; }
.intl-program-body ul { flex:1; }
.intl-program-body > a { margin-top:auto; }
.intl-program-media::before { content:""; position:absolute; z-index:2; inset:-80% auto -80% -45%; width:26%; opacity:0; transform:rotate(18deg); background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent); transition:left .7s ease,opacity .35s; }
.intl-program-card:hover .intl-program-media::before { left:125%; opacity:1; }
.intl-program-card:hover .intl-program-code { letter-spacing:1.7px; }
.intl-program-code { transition:letter-spacing .25s; }
.programs-cta-inner .btn { border:1px solid rgba(255,255,255,.2); box-shadow:0 12px 28px rgba(12,3,18,.2); }
@media(max-width:980px){.programs-hero-copy{padding:26px}.intl-section-head > div{padding-left:0}.intl-programs-count{position:static;display:inline-block;margin-top:10px}}
@media(max-width:560px){.programs-hero h1{font-size:22px !important;white-space:normal}.programs-hero-copy{padding:23px 19px;border-radius:19px}.programs-hero-copy::before{top:23px}.intl-section-head{margin-bottom:30px}}


