/* Shared inner-page system */
.site-header-inner {
    position: relative;
    background:
        radial-gradient(circle at 10% -30%, rgba(130,70,255,.52), transparent 34%),
        radial-gradient(circle at 88% 145%, rgba(42,157,255,.36), transparent 36%),
        linear-gradient(112deg, #090b14 0%, #18102f 46%, #0a2e4c 100%);
    backdrop-filter: blur(18px);
    border-bottom: 1px solid rgba(255,255,255,.10);
    box-shadow: 0 12px 34px rgba(7,9,23,.18);
}
.site-header-inner + main {}
.page-shell { width: min(92%, 1240px); margin: 0 auto; }
.page-hero { position: relative; overflow: hidden; padding: 92px 0 86px; background: radial-gradient(circle at 88% 10%, rgba(116,71,255,.15), transparent 28%), radial-gradient(circle at 12% 90%, rgba(52,120,255,.10), transparent 30%), linear-gradient(135deg,#fff 0%,#f8f5ff 48%,#f4f8ff 100%); }
.page-hero::before { content:""; position:absolute; inset:0; background-image: linear-gradient(rgba(116,71,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(52,120,255,.04) 1px,transparent 1px); background-size:55px 55px; opacity:.7; }
.page-hero-grid { position:relative; z-index:2; display:grid; grid-template-columns:1.15fr .85fr; gap:70px; align-items:center; }
.eyebrow { display:block; margin-bottom:14px; color:var(--purple); font-size:11px; font-weight:900; letter-spacing:1.5px; text-transform:uppercase; }
.eyebrow.light { color:#c8d5ff; }
.page-hero h1 { font-family:var(--font-display); font-size:clamp(64px,7vw,112px); line-height:.86; letter-spacing:-1px; }
.page-hero h1 em { color:transparent; background:linear-gradient(90deg,var(--purple),var(--blue)); -webkit-background-clip:text; background-clip:text; font-family:var(--font-body); font-size:.55em; font-style:italic; font-weight:900; letter-spacing:-3px; }
.page-hero p { max-width:650px; margin-top:25px; color:var(--gray-700); font-size:16px; line-height:1.8; }
.page-hero-card,.contact-card { padding:34px; border:1px solid rgba(116,71,255,.16); border-radius:26px; background:rgba(255,255,255,.76); backdrop-filter:blur(18px); box-shadow:0 26px 70px rgba(46,42,86,.10); }
.page-hero-card .card-kicker,.page-hero-card > span { display:block; color:var(--purple); font-size:10px; font-weight:900; letter-spacing:1.4px; text-transform:uppercase; }
.page-hero-card strong { display:block; margin-top:10px; font-size:28px; line-height:1.15; }
.page-hero-card p { margin-top:16px; font-size:14px; }
.compact { margin-top:20px; min-height:48px; }
.content-section { padding:92px 0; background:#fff; }
.content-section.alt { background:#f8f9fd; }
.split-heading { display:grid; grid-template-columns:.95fr 1.05fr; gap:70px; align-items:end; margin-bottom:48px; }
.split-heading h2,.content-section h2,.facility-band h2,.info-band h2,.page-cta h2 { font-family:var(--font-display); font-size:clamp(46px,5vw,76px); line-height:.95; }
.split-heading p { color:var(--gray-700); font-size:15px; line-height:1.8; }
.value-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.value-grid article,.feature-cards article,.step-grid article { position:relative; padding:28px; border:1px solid var(--gray-200); border-radius:22px; background:#fff; }
.value-grid article > span,.step-grid article > span { display:inline-flex; width:38px; height:38px; align-items:center; justify-content:center; margin-bottom:36px; border-radius:50%; color:#fff; background:linear-gradient(135deg,var(--purple),var(--blue)); font-size:11px; font-weight:900; }
.value-grid h3,.feature-cards h3,.step-grid h3 { margin-bottom:12px; font-size:20px; }
.value-grid p,.feature-cards p,.step-grid p { color:var(--gray-700); font-size:14px; line-height:1.7; }
.facility-band,.info-band { padding:86px 0; color:#fff; background:radial-gradient(circle at 80% 20%,rgba(95,215,255,.16),transparent 26%),linear-gradient(125deg,#0b0d16,#1b1347 58%,#102856); }
.pill-grid { display:flex; flex-wrap:wrap; gap:12px; margin-top:35px; }
.pill-grid span,.tag-row span { padding:11px 15px; border-radius:999px; font-size:11px; font-weight:800; }
.pill-grid span { border:1px solid rgba(255,255,255,.16); background:rgba(255,255,255,.06); }
.page-cta { padding:70px 0; background:#fbfbfe; }
.page-cta .page-shell { display:flex; align-items:center; justify-content:space-between; gap:35px; }
.cta-actions { display:flex; gap:12px; flex-wrap:wrap; }
/* Programs list */
.programs-intro { padding-bottom: 72px; }
.programs-intro .section-heading { max-width: 780px; margin-bottom: 38px; }
.programs-intro .section-heading h2 { margin-bottom: 16px; }
.programs-intro .section-heading p { color: var(--gray-700); font-size: 15px; line-height: 1.8; }
.programs-list { border-top: 1px solid var(--gray-200); }
.program-list-item { position: relative; display: grid; grid-template-columns: minmax(220px,.85fr) minmax(0,1.6fr) auto; gap: 32px; align-items: start; padding: 32px 0; border-bottom: 1px solid var(--gray-200); outline: none; }
.program-list-item::before { content: ""; position: absolute; inset: 0 -20px; border-radius: 18px; background: linear-gradient(90deg,rgba(116,71,255,.065),rgba(52,120,255,.035)); opacity: 0; transition: opacity .18s ease; pointer-events: none; }
.program-list-item > * { position: relative; z-index: 1; }
.program-list-title .eyebrow { margin-bottom: 8px; }
.program-list-title h2 { margin: 0; font-family: var(--font-body); font-size: clamp(22px,2.3vw,34px); line-height: 1.08; letter-spacing: -.6px; }
.program-list-summary { margin: 2px 0 0; max-width: 760px; color: var(--gray-700); font-size: 15px; line-height: 1.75; }
.program-list-details { grid-column: 2 / 4; display: grid; grid-template-rows: 0fr; margin-top: 0; opacity: 0; transition: grid-template-rows .22s ease,opacity .18s ease,margin-top .22s ease; }
.program-list-details > div { overflow: hidden; }
.program-list-details p { max-width: 830px; margin: 0; color: var(--gray-700); font-size: 15px; line-height: 1.85; }
.program-list-arrow { color: var(--purple); font-size: 25px; line-height: 1; transition: transform .18s ease; }
.program-list-item:focus-visible { outline: 2px solid var(--purple); outline-offset: 8px; border-radius: 10px; }
.tag-row { display:flex; flex-wrap:wrap; gap:9px; margin-top:24px; }
.tag-row span { color:var(--purple); background:var(--purple-soft); }
.muted-note { margin-top:18px; padding-left:18px; border-left:3px solid var(--purple); }
.text-link { display:inline-flex; gap:8px; margin-top:22px; color:var(--purple); font-size:12px; font-weight:900; text-transform:uppercase; letter-spacing:.7px; }
.stat-card strong { font-size:24px; }
.step-grid,.feature-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.step-grid article a { display:inline-block; margin-top:20px; color:var(--purple); font-size:12px; font-weight:900; }
.info-band .page-shell { display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; }
.info-band p { color:rgba(255,255,255,.78); line-height:1.8; }
.info-band a { color:#fff; font-weight:800; }
.feature-cards article > span { display:block; margin-bottom:28px; color:var(--purple); font-size:10px; font-weight:900; letter-spacing:1.2px; text-transform:uppercase; }
.faq-list { max-width:980px; }
.faq-list details { border-bottom:1px solid var(--gray-200); padding:0; }
.faq-list summary { cursor:pointer; list-style:none; padding:28px 4px; font-size:20px; font-weight:800; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary::after { content:"+"; float:right; color:var(--purple); font-size:28px; font-weight:500; }
.faq-list details[open] summary::after { content:"–"; }
.faq-list details p { padding:0 44px 26px 4px; color:var(--gray-700); line-height:1.8; }
.contact-card { display:grid; gap:22px; }
.contact-card > div { padding-bottom:20px; border-bottom:1px solid var(--gray-200); }
.contact-card > div:last-child { border-bottom:0; padding-bottom:0; }
.contact-card span { display:block; margin-bottom:6px; color:var(--purple); font-size:10px; font-weight:900; letter-spacing:1.2px; text-transform:uppercase; }
.contact-card a,.contact-card strong { color:var(--black); font-size:20px; line-height:1.45; }
.contact-grid { display:grid; grid-template-columns:1fr .8fr; gap:80px; align-items:center; }
.check-list { display:grid; gap:15px; margin-top:28px; list-style:none; }
.check-list li { position:relative; padding-left:32px; color:var(--gray-700); }
.check-list li::before { content:"✓"; position:absolute; left:0; top:-2px; width:22px; height:22px; display:grid; place-items:center; border-radius:50%; color:#fff; background:linear-gradient(135deg,var(--purple),var(--blue)); font-size:12px; font-weight:900; }
.map-card { padding:36px; border-radius:26px; background:linear-gradient(145deg,#f7f3ff,#eef5ff); border:1px solid rgba(116,71,255,.12); }
.map-pin { display:grid; width:54px; height:54px; place-items:center; margin-bottom:24px; border-radius:50%; color:#fff; background:linear-gradient(135deg,var(--purple),var(--blue)); font-size:24px; }
.map-card h3 { font-size:28px; }
.map-card p { margin:10px 0 24px; color:var(--gray-700); }
.section-action-row { margin-top:30px; }

@media (hover:hover) and (pointer:fine) {
  .program-list-item:hover::before,.program-list-item:focus-within::before { opacity: 1; }
  .program-list-item:hover .program-list-details,.program-list-item:focus-within .program-list-details { grid-template-rows: 1fr; opacity: 1; margin-top: -6px; }
  .program-list-item:hover .program-list-arrow,.program-list-item:focus-within .program-list-arrow { transform: translateX(5px); }
}
@media(max-width:1000px){.page-hero-grid,.split-heading,.info-band .page-shell,.contact-grid{grid-template-columns:1fr;gap:38px}.value-grid{grid-template-columns:repeat(2,1fr)}.page-cta .page-shell{align-items:flex-start;flex-direction:column}.step-grid,.feature-cards{grid-template-columns:1fr}}
@media(max-width:700px){.page-hero{padding:64px 0}.page-hero h1{font-size:62px}.page-hero h1 em{letter-spacing:-1px}.content-section{padding:68px 0}.value-grid{grid-template-columns:1fr}.page-hero-card,.contact-card,.map-card{padding:25px}.info-band,.facility-band{padding:64px 0}}

@media (max-width:760px), (hover:none) {
  .programs-intro { padding-bottom: 56px; }
  .program-list-item { grid-template-columns: 1fr auto; gap: 12px 16px; padding: 25px 0; }
  .program-list-summary { grid-column: 1 / 3; }
  .program-list-details { grid-column: 1 / 3; grid-template-rows: 1fr; opacity: 1; margin-top: 6px; }
  .program-list-item::before { display: none; }
}

/* Registration page v3 */
.registration-hero-v2 {
  position: relative;
  overflow: hidden;
  padding: 86px 0 88px;
  background:
    radial-gradient(circle at 88% 15%, rgba(92, 76, 255, .22), transparent 27%),
    radial-gradient(circle at 16% 78%, rgba(35, 133, 255, .15), transparent 32%),
    linear-gradient(135deg, #fbfbff 0%, #f3efff 52%, #eef5ff 100%);
}
.registration-hero-layout {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1.08fr .92fr;
  gap: 72px;
  align-items: center;
}
.registration-hero-copy h1 {
  max-width: 760px;
  margin: 0;
  color: var(--black);
  font-family: var(--font-display);
  font-size: clamp(56px, 6vw, 92px);
  line-height: .95;
  letter-spacing: -.5px;
}
.registration-hero-copy h1 em {
  color: transparent;
  background: linear-gradient(90deg, var(--purple), var(--blue));
  -webkit-background-clip: text;
  background-clip: text;
  font-family: var(--font-body);
  font-size: .48em;
  font-style: italic;
  font-weight: 900;
  letter-spacing: -2px;
}
.registration-hero-copy > p {
  max-width: 640px;
  margin: 24px 0 0;
  color: var(--gray-700);
  font-size: 16px;
  line-height: 1.8;
}
.registration-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 22px;
  align-items: center;
  margin-top: 30px;
}
.registration-secondary-link {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  color: var(--black);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .4px;
  text-transform: uppercase;
}
.registration-quick-card {
  position: relative;
  overflow: hidden;
  padding: 38px;
  border: 1px solid rgba(116,71,255,.16);
  border-radius: 28px;
  background: rgba(255,255,255,.88);
  box-shadow: 0 30px 80px rgba(39, 32, 90, .12);
}
.registration-quick-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 5px;
  background: linear-gradient(90deg, var(--purple), var(--blue), #111827);
}
.registration-card-label {
  display: block;
  margin-bottom: 12px;
  color: var(--purple);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 1.3px;
  text-transform: uppercase;
}
.registration-quick-card h2 {
  margin: 0;
  color: var(--black);
  font-family: var(--font-body);
  font-size: clamp(24px, 2.3vw, 34px);
  line-height: 1.12;
}
.registration-quick-card p {
  margin: 18px 0 0;
  color: var(--gray-700);
  font-size: 14px;
  line-height: 1.75;
}
.registration-card-note {
  display: flex;
  gap: 10px;
  align-items: center;
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid var(--gray-200);
  color: var(--gray-700);
  font-size: 12px;
  font-weight: 700;
}
.registration-dot {
  width: 9px;
  height: 9px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--purple), var(--blue));
  box-shadow: 0 0 0 5px rgba(116,71,255,.09);
}

.registration-flow-section {
  padding: 96px 0 104px;
  background:
    radial-gradient(circle at 7% 20%, rgba(116,71,255,.06), transparent 23%),
    radial-gradient(circle at 90% 86%, rgba(52,120,255,.06), transparent 27%),
    #fff;
}
.registration-flow-layout {
  display: grid;
  grid-template-columns: 150px minmax(0,1fr);
  gap: 54px;
  align-items: stretch;
}
.registration-arrow-column {
  position: relative;
  min-height: 650px;
  display: flex;
  justify-content: center;
}
.registration-arrow {
  position: relative;
  width: 88px;
  height: 100%;
  min-height: 650px;
}
.registration-arrow-line {
  position: absolute;
  top: 14px;
  bottom: 82px;
  left: 50%;
  width: 14px;
  transform: translateX(-50%);
  border-radius: 999px;
  background: linear-gradient(180deg, var(--purple) 0%, #6e4cff 34%, var(--blue) 72%, #15172a 100%);
  box-shadow: 0 12px 30px rgba(85,75,205,.22);
}
.registration-arrow-line::before,
.registration-arrow-line::after {
  content: "";
  position: absolute;
  left: 50%;
  width: 38px;
  height: 38px;
  transform: translateX(-50%);
  border: 8px solid rgba(255,255,255,.96);
  border-radius: 50%;
  background: var(--purple);
  box-shadow: 0 8px 20px rgba(68,57,157,.18);
}
.registration-arrow-line::before { top: 76px; }
.registration-arrow-line::after { top: 292px; background: var(--blue); }
.registration-arrow-head {
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 0;
  height: 0;
  transform: translateX(-50%);
  border-left: 48px solid transparent;
  border-right: 48px solid transparent;
  border-top: 72px solid #15172a;
  filter: drop-shadow(0 12px 16px rgba(14,16,30,.18));
}
.registration-arrow-label {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%,-14px);
  padding: 8px 12px;
  border-radius: 999px;
  color: var(--purple);
  background: #fff;
  border: 1px solid rgba(116,71,255,.16);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 1px;
  text-transform: uppercase;
  white-space: nowrap;
}
.registration-flow-content { min-width: 0; }
.registration-section-heading {
  max-width: 760px;
  margin-bottom: 38px;
}
.registration-section-heading h2 {
  margin: 0;
  color: var(--black);
  font-family: var(--font-body);
  font-size: clamp(34px, 4vw, 52px);
  line-height: 1.05;
  letter-spacing: -1.5px;
}
.registration-section-heading p {
  max-width: 700px;
  margin-top: 16px;
  color: var(--gray-700);
  line-height: 1.8;
}
.registration-flow-stack {
  display: grid;
  gap: 18px;
}
.registration-step-card {
  --mouse-x: 50%;
  --mouse-y: 50%;
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: 120px minmax(0,1fr);
  gap: 26px;
  min-height: 164px;
  padding: 28px 30px;
  border: 1px solid var(--gray-200);
  border-radius: 24px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 14px 36px rgba(31,35,61,.055);
  transition: transform .28s ease, border-color .28s ease, box-shadow .28s ease, background .28s ease;
  outline: none;
}
.registration-step-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 6px;
}
.registration-step-card::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0;
  background: radial-gradient(circle 240px at var(--mouse-x) var(--mouse-y), rgba(116,71,255,.10), transparent 72%);
  transition: opacity .25s ease;
}
.registration-step-card.step-purple::before { background: var(--purple); }
.registration-step-card.step-blue::before { background: var(--blue); }
.registration-step-card.step-dark::before { background: linear-gradient(180deg, #121525, #4a2e9a); }
.registration-step-card > * { position: relative; z-index: 2; }
.registration-step-top {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 18px;
  margin: 0;
  padding-right: 22px;
  border-right: 1px solid var(--gray-200);
}
.registration-step-number {
  color: var(--black);
  font-family: var(--font-display);
  font-size: 42px;
  line-height: 1;
}
.registration-step-kicker {
  color: var(--purple);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.step-blue .registration-step-kicker { color: var(--blue); }
.step-dark .registration-step-kicker { color: #47318f; }
.registration-step-content {
  align-self: center;
  padding: 8px 0;
}
.registration-step-card h3 {
  margin: 0 0 10px;
  color: var(--black);
  font-size: clamp(22px,2.1vw,30px);
  line-height: 1.08;
}
.registration-step-card p {
  max-width: 820px;
  margin: 0;
  color: var(--gray-700);
  font-size: 14px;
  line-height: 1.72;
}
.registration-step-card a {
  display: inline-flex;
  gap: 8px;
  margin-top: 18px;
  color: var(--purple);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .5px;
  text-transform: uppercase;
}
.step-blue a { color: var(--blue); }
.step-dark a { color: #392b7b; }

.registration-help-section {
  padding: 76px 0;
  color: #fff;
  background:
    radial-gradient(circle at 84% 10%, rgba(76,123,255,.28), transparent 28%),
    radial-gradient(circle at 22% 100%, rgba(120,72,255,.25), transparent 34%),
    linear-gradient(118deg, #0c0d17 0%, #21134b 52%, #123b71 100%);
}
.registration-help-layout {
  display: grid;
  grid-template-columns: .95fr 1.05fr;
  gap: 80px;
  align-items: center;
}
.registration-help-section h2 {
  max-width: 560px;
  margin: 0;
  color: #fff;
  font-family: var(--font-body);
  font-size: clamp(30px, 4vw, 50px);
  line-height: 1.05;
  letter-spacing: -1.2px;
}
.registration-help-copy p {
  max-width: 650px;
  margin: 0;
  color: rgba(255,255,255,.79);
  font-size: 15px;
  line-height: 1.8;
}
.registration-help-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 18px 28px;
  align-items: center;
  margin-top: 22px;
}
.registration-phone,
.registration-contact-link {
  display: inline-flex;
  gap: 10px;
  align-items: center;
  color: #fff;
  font-weight: 900;
}
.registration-phone { font-size: 18px; }
.registration-contact-link {
  font-size: 12px;
  letter-spacing: .5px;
  text-transform: uppercase;
  color: #d7dcff;
}

@media (hover:hover) and (pointer:fine) {
  .registration-step-card:hover,
  .registration-step-card:focus-within {
    transform: translateX(10px) scale(1.018);
    border-color: rgba(116,71,255,.28);
    box-shadow: 0 24px 58px rgba(31,35,61,.13);
    background: #fff;
  }
  .registration-step-card:hover::after,
  .registration-step-card:focus-within::after { opacity: 1; }
  .registration-step-card:hover .registration-step-number,
  .registration-step-card:focus-within .registration-step-number { color: var(--purple); }
  .registration-step-card.step-blue:hover .registration-step-number,
  .registration-step-card.step-blue:focus-within .registration-step-number { color: var(--blue); }
  .registration-step-card.step-dark:hover .registration-step-number,
  .registration-step-card.step-dark:focus-within .registration-step-number { color: #47318f; }
}

@media (max-width: 1000px) {
  .registration-hero-layout,
  .registration-help-layout { grid-template-columns: 1fr; gap: 42px; }
  .registration-flow-layout { grid-template-columns: 86px minmax(0,1fr); gap: 26px; }
  .registration-arrow-column,
  .registration-arrow { min-height: 670px; }
}
@media (max-width: 760px) {
  .registration-hero-v2 { padding: 62px 0 66px; }
  .registration-hero-copy h1 { font-size: 54px; }
  .registration-quick-card { padding: 28px; }
  .registration-flow-section { padding: 68px 0 74px; }
  .registration-flow-layout { grid-template-columns: 1fr; gap: 30px; }
  .registration-arrow-column {
    min-height: 0;
    height: 76px;
    justify-content: flex-start;
  }
  .registration-arrow {
    width: 100%;
    height: 76px;
    min-height: 0;
  }
  .registration-arrow-line {
    top: 31px;
    bottom: auto;
    left: 0;
    right: 60px;
    width: auto;
    height: 12px;
    transform: none;
    background: linear-gradient(90deg, var(--purple), var(--blue), #15172a);
  }
  .registration-arrow-line::before,
  .registration-arrow-line::after { display: none; }
  .registration-arrow-head {
    top: 10px;
    right: 0;
    bottom: auto;
    left: auto;
    transform: none;
    border-top: 32px solid transparent;
    border-bottom: 32px solid transparent;
    border-left: 52px solid #15172a;
    border-right: 0;
  }
  .registration-arrow-label {
    top: 0;
    left: 0;
    transform: none;
  }
  .registration-step-card {
    grid-template-columns: 72px minmax(0,1fr);
    gap: 18px;
    padding: 24px 22px;
  }
  .registration-step-top { padding-right: 16px; }
  .registration-step-number { font-size: 34px; }
  .registration-help-section { padding: 58px 0; }
}

/* Interactive page motion */
[data-reveal] {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity .6s ease, transform .6s cubic-bezier(.22,.8,.2,1);
}
[data-reveal].is-visible {
  opacity: 1;
  transform: translateY(0);
}
.registration-hero-v2 {
  --pointer-x: 72%;
  --pointer-y: 22%;
}
.registration-hero-v2::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(circle 280px at var(--pointer-x) var(--pointer-y), rgba(116,71,255,.13), transparent 68%);
  opacity: .9;
}
.registration-quick-card {
  --pointer-x: 75%;
  --pointer-y: 20%;
}
.registration-quick-card::after {
  content: "";
  position: absolute;
  width: 230px;
  height: 230px;
  left: calc(var(--pointer-x) - 115px);
  top: calc(var(--pointer-y) - 115px);
  border-radius: 50%;
  pointer-events: none;
  background: radial-gradient(circle, rgba(76,123,255,.12), rgba(116,71,255,.07) 42%, transparent 70%);
}
.registration-quick-card > * { position: relative; z-index: 2; }
.registration-step-card a span,
.registration-secondary-link span,
.registration-phone span,
.registration-contact-link span,
.registration-hero-actions .button span {
  display: inline-block;
  transition: transform .22s ease;
}
.registration-step-card a:hover span,
.registration-secondary-link:hover span,
.registration-phone:hover span,
.registration-contact-link:hover span,
.registration-hero-actions .button:hover span { transform: translateX(4px); }

@media (prefers-reduced-motion: reduce) {
  [data-reveal] { opacity: 1; transform: none; transition: none; }
  .registration-step-card,
  .registration-step-card a span,
  .registration-secondary-link span,
  .registration-phone span,
  .registration-contact-link span,
  .registration-hero-actions .button span { transition: none; }
}


/* Tuition rate modal */
.registration-step-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 22px;
  align-items: center;
  margin-top: 18px;
}
.registration-step-actions > a { margin-top: 0; }

.tuition-modal-trigger {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  padding: 0;
  border: 0;
  color: var(--blue);
  background: transparent;
  font: inherit;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .5px;
  text-transform: uppercase;
  cursor: pointer;
}
.tuition-modal-trigger span {
  display: inline-block;
  transition: transform .2s ease;
}
.tuition-modal-trigger:hover span,
.tuition-modal-trigger:focus-visible span { transform: translateX(4px); }

.tuition-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  padding: 26px;
  opacity: 0;
  visibility: hidden;
  transition: opacity .22s ease, visibility .22s ease;
}
.tuition-modal.is-open {
  opacity: 1;
  visibility: visible;
}
.tuition-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(7, 8, 18, .72);
  backdrop-filter: blur(8px);
}
.tuition-modal-dialog {
  position: relative;
  z-index: 2;
  width: min(100%, 920px);
  max-height: calc(100vh - 52px);
  overflow: auto;
  padding: 42px;
  border: 1px solid rgba(116, 71, 255, .18);
  border-radius: 30px;
  background:
    radial-gradient(circle at 92% 4%, rgba(62, 126, 255, .13), transparent 28%),
    radial-gradient(circle at 10% 100%, rgba(116, 71, 255, .10), transparent 30%),
    #fff;
  box-shadow: 0 34px 100px rgba(6, 8, 25, .32);
  transform: translateY(18px) scale(.985);
  transition: transform .24s cubic-bezier(.22,.8,.2,1);
}
.tuition-modal.is-open .tuition-modal-dialog {
  transform: translateY(0) scale(1);
}
.tuition-modal-close {
  position: absolute;
  top: 18px;
  right: 20px;
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border: 1px solid var(--gray-200);
  border-radius: 50%;
  color: var(--black);
  background: rgba(255,255,255,.88);
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
}
.tuition-modal-heading {
  max-width: 650px;
  margin-bottom: 28px;
}
.tuition-modal-heading h2 {
  margin: 0;
  color: var(--black);
  font-family: var(--font-body);
  font-size: clamp(32px,4vw,48px);
  line-height: 1.02;
  letter-spacing: -1.5px;
}
.tuition-modal-heading p {
  margin-top: 12px;
  color: var(--gray-700);
  line-height: 1.7;
}
.tuition-modal-grid {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 24px;
}
.tuition-rate-panel,
.tuition-example-panel {
  padding: 28px;
  border: 1px solid var(--gray-200);
  border-radius: 24px;
  background: rgba(255,255,255,.88);
}
.tuition-preschool,
.tuition-family-cap {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 2px 18px;
  align-items: end;
  padding: 18px;
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(116,71,255,.10), rgba(52,120,255,.08));
}
.tuition-preschool span,
.tuition-family-cap span {
  color: var(--black);
  font-weight: 800;
}
.tuition-preschool strong,
.tuition-family-cap strong {
  grid-row: 1 / span 2;
  grid-column: 2;
  color: var(--purple);
  font-size: 28px;
}
.tuition-preschool small {
  color: var(--gray-700);
  font-size: 11px;
}
.tuition-rates {
  display: grid;
  margin: 18px 0;
}
.tuition-rates > div {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 10px 4px;
  border-bottom: 1px solid var(--gray-200);
}
.tuition-rates > div:last-child { border-bottom: 0; }
.tuition-rates .tuition-rate-heading {
  padding: 4px 4px 10px;
  color: var(--purple);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .8px;
  text-transform: uppercase;
}
.tuition-rates strong { color: var(--black); }
.tuition-family-cap {
  background: linear-gradient(135deg, #111425, #2a1c58);
}
.tuition-family-cap span { color: rgba(255,255,255,.78); }
.tuition-family-cap strong { color: #fff; }

.tuition-example-label {
  color: var(--blue);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.tuition-example-panel h3 {
  margin: 8px 0 12px;
  color: var(--black);
  font-size: 26px;
  line-height: 1.1;
}
.tuition-example-panel > p {
  color: var(--gray-700);
  font-size: 14px;
  line-height: 1.7;
}
.tuition-example {
  margin-top: 24px;
  padding: 22px;
  border-radius: 20px;
  color: #fff;
  background:
    radial-gradient(circle at 86% 15%, rgba(52,120,255,.34), transparent 34%),
    linear-gradient(125deg, #15172a, #34206f 58%, #174576);
}
.tuition-example > span {
  display: block;
  margin-bottom: 5px;
  color: #cbd5ff;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.tuition-example > strong {
  display: block;
  font-size: 24px;
}
.tuition-equation {
  display: flex;
  flex-wrap: wrap;
  gap: 7px 10px;
  align-items: center;
  margin: 18px 0 10px;
}
.tuition-equation span {
  padding: 7px 9px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 10px;
  background: rgba(255,255,255,.07);
  font-weight: 800;
}
.tuition-equation b { color: #aebcff; }
.tuition-equation strong {
  color: #fff;
  font-size: 20px;
}
.tuition-example small {
  color: rgba(255,255,255,.7);
  line-height: 1.5;
}
.tuition-modal-note {
  margin-top: 20px;
  padding-left: 15px;
  border-left: 3px solid var(--purple);
}
body.tuition-modal-open { overflow: hidden; }

@media(max-width:760px) {
  .tuition-modal { padding: 14px; }
  .tuition-modal-dialog {
    max-height: calc(100vh - 28px);
    padding: 30px 22px 24px;
    border-radius: 22px;
  }
  .tuition-modal-grid { grid-template-columns: 1fr; }
  .tuition-rate-panel,
  .tuition-example-panel { padding: 20px; }
}
@media(prefers-reduced-motion:reduce) {
  .tuition-modal,
  .tuition-modal-dialog,
  .tuition-modal-trigger span { transition: none; }
}


/* Meet Our Team */
.team-hero {
    position: relative;
    overflow: hidden;
    padding: 92px 0 96px;
    background:
        radial-gradient(circle at 88% 8%, rgba(52,120,255,.19), transparent 29%),
        radial-gradient(circle at 13% 82%, rgba(116,71,255,.17), transparent 32%),
        linear-gradient(135deg, #fff 0%, #f7f3ff 48%, #edf5ff 100%);
}
.team-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: linear-gradient(rgba(116,71,255,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(52,120,255,.04) 1px, transparent 1px);
    background-size: 58px 58px;
    opacity: .65;
}
.team-hero-grid {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: 1.08fr .92fr;
    gap: 78px;
    align-items: center;
}
.team-hero h1 {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(64px,7vw,108px);
    line-height: .88;
}
.team-hero h1 em {
    display: inline-block;
    color: transparent;
    background: linear-gradient(90deg, var(--purple), var(--blue));
    -webkit-background-clip: text;
    background-clip: text;
    font-family: var(--font-body);
    font-size: .48em;
    font-style: italic;
    font-weight: 900;
    letter-spacing: -3px;
}
.team-hero p {
    max-width: 670px;
    margin-top: 24px;
    color: var(--gray-700);
    font-size: 16px;
    line-height: 1.8;
}
.team-hero-note {
    position: relative;
    overflow: hidden;
    padding: 38px;
    border: 1px solid rgba(116,71,255,.15);
    border-radius: 28px;
    background: rgba(255,255,255,.82);
    box-shadow: 0 28px 75px rgba(35,36,77,.11);
    backdrop-filter: blur(18px);
}
.team-hero-note::after {
    content: "";
    position: absolute;
    right: -55px;
    bottom: -65px;
    width: 180px;
    height: 180px;
    border-radius: 50%;
    background: linear-gradient(135deg, rgba(116,71,255,.18), rgba(52,120,255,.2));
}
.team-hero-note > * { position: relative; z-index: 2; }
.team-hero-note > span {
    color: var(--purple);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 1.2px;
    text-transform: uppercase;
}
.team-hero-note strong {
    display: block;
    margin-top: 10px;
    font-size: clamp(27px,3vw,38px);
    line-height: 1.08;
}
.team-hero-note p { margin-top: 17px; font-size: 14px; }

.team-section {
    padding: 96px 0 110px;
    background:
        radial-gradient(circle at 94% 28%, rgba(52,120,255,.055), transparent 24%),
        radial-gradient(circle at 5% 75%, rgba(116,71,255,.06), transparent 26%),
        #fff;
}
.team-section-heading {
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    gap: 70px;
    align-items: end;
    margin-bottom: 48px;
}
.team-section-heading h2 {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(48px,5vw,76px);
    line-height: .95;
}
.team-section-heading > p {
    max-width: 650px;
    color: var(--gray-700);
    font-size: 15px;
    line-height: 1.8;
}
.team-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 22px;
    align-items: start;
}
.team-member {
    --team-x: 50%;
    position: relative;
    overflow: hidden;
    border: 1px solid var(--gray-200);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(28,30,58,.05);
    transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}
.team-member::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: 0;
    background: linear-gradient(145deg, rgba(116,71,255,.06), transparent 38%, rgba(52,120,255,.05));
    transition: opacity .25s ease;
}
.team-member-featured { grid-column: span 2; }
.team-member summary {
    position: relative;
    z-index: 2;
    cursor: pointer;
    list-style: none;
}
.team-member summary::-webkit-details-marker { display: none; }
.team-photo-wrap {
    position: relative;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    background: linear-gradient(135deg,#ede9ff,#eaf3ff);
}
.team-member-featured .team-photo-wrap { aspect-ratio: 16 / 8.4; }
.team-photo-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    filter: saturate(.88) contrast(1.02);
    transition: transform .45s cubic-bezier(.22,.8,.2,1), filter .3s ease;
}
.team-photo-accent {
    position: absolute;
    inset: auto 0 0;
    height: 7px;
    background: linear-gradient(90deg, var(--purple), var(--blue), #121525);
}
.team-card-heading { padding: 25px 26px 27px; }
.team-role {
    display: block;
    margin-bottom: 8px;
    color: var(--purple);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 1px;
    text-transform: uppercase;
}
.team-card-heading h3 {
    margin: 0;
    color: var(--black);
    font-size: clamp(23px,2.1vw,31px);
    line-height: 1.06;
}
.team-card-heading p {
    margin: 11px 0 0;
    color: var(--gray-700);
    font-size: 13px;
    line-height: 1.68;
}
.team-read-more {
    display: inline-flex;
    gap: 9px;
    align-items: center;
    margin-top: 18px;
    color: var(--purple);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .45px;
    text-transform: uppercase;
}
.team-read-more b {
    display: inline-grid;
    width: 23px;
    height: 23px;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: linear-gradient(135deg,var(--purple),var(--blue));
    font-size: 16px;
    font-weight: 500;
    transition: transform .25s ease;
}
.team-bio {
    position: relative;
    z-index: 2;
    padding: 0 26px 28px;
    border-top: 1px solid transparent;
    color: var(--gray-700);
    font-size: 13px;
    line-height: 1.75;
}
.team-bio p { margin: 15px 0 0; }
.team-highlight {
    margin-top: 18px;
    padding: 13px 15px;
    border-radius: 14px;
    color: #fff;
    background: linear-gradient(115deg,#16182a,#3c2579 58%,#17467d);
    font-size: 11px;
    font-weight: 800;
}
.team-member[open] {
    border-color: rgba(116,71,255,.24);
    box-shadow: 0 22px 58px rgba(45,39,91,.11);
}
.team-member[open] .team-bio { border-color: var(--gray-200); }
.team-member[open] .team-read-more b { transform: rotate(45deg); }
.team-member-compact .team-photo-wrap { aspect-ratio: 4 / 2.7; }
.team-member-compact summary { cursor: default; }
.team-cta {
    padding: 76px 0;
    color: #fff;
    background:
        radial-gradient(circle at 85% 10%, rgba(52,120,255,.3), transparent 28%),
        radial-gradient(circle at 16% 100%, rgba(116,71,255,.24), transparent 34%),
        linear-gradient(120deg,#0c0e18,#241451 55%,#123e73);
}
.team-cta-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
}
.team-cta h2 {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(48px,5vw,74px);
    line-height: .95;
}
.team-outline-light { border-color: rgba(255,255,255,.35); color: #fff; }

@media (hover:hover) and (pointer:fine) {
    .team-member:hover {
        transform: translateY(-7px);
        border-color: rgba(116,71,255,.22);
        box-shadow: 0 27px 62px rgba(37,39,76,.13);
    }
    .team-member:hover::before { opacity: 1; }
    .team-member:hover .team-photo-wrap img {
        transform: scale(1.045);
        filter: saturate(1) contrast(1.04);
    }
}
@media (max-width: 1000px) {
    .team-hero-grid,.team-section-heading { grid-template-columns: 1fr; gap: 38px; }
    .team-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .team-member-featured { grid-column: span 2; }
}
@media (max-width: 700px) {
    .team-hero { padding: 66px 0 70px; }
    .team-hero h1 { font-size: 62px; }
    .team-hero-note { padding: 27px; }
    .team-section { padding: 70px 0 76px; }
    .team-grid { grid-template-columns: 1fr; }
    .team-member-featured { grid-column: auto; }
    .team-member-featured .team-photo-wrap,.team-photo-wrap { aspect-ratio: 4 / 3; }
    .team-cta-inner { align-items: flex-start; flex-direction: column; }
}

/* Meet Our Team — temporary photo cleanup
   These rules normalize the mixed legacy image sizes until new faculty photos are supplied. */
.team-photo-wrap {
    aspect-ratio: 4 / 4.35;
    background:
        radial-gradient(circle at 78% 18%, rgba(52,120,255,.13), transparent 28%),
        linear-gradient(145deg,#f1edff,#edf5ff);
}
.team-photo-wrap img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 22%;
    filter: grayscale(.08) saturate(.92) contrast(1.03);
}

/* The featured owner card uses a side-by-side treatment so the headshot does not become oversized. */
.team-member-featured summary {
    display: grid;
    grid-template-columns: minmax(260px,.85fr) minmax(0,1.15fr);
    min-height: 390px;
}
.team-member-featured .team-photo-wrap {
    aspect-ratio: auto;
    min-height: 390px;
    height: 100%;
}
.team-member-featured .team-card-heading {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 42px 38px;
}

/* Individual legacy-photo framing adjustments. */
.team-photo-chelarrie img { object-position: center 18%; }
.team-photo-stacey img { object-position: center 16%; }
.team-photo-jessica img { object-position: center 18%; }
.team-photo-alex img { object-position: center 12%; }
.team-photo-kendal img { object-position: center 24%; }
.team-photo-brianna img { object-position: center 15%; }
.team-photo-patience img { object-position: center 17%; }

/* Clean placeholder treatment until Danielle and Marisol have real photos. */
.team-photo-fallback {
    display: grid;
    place-items: center;
    align-content: center;
    gap: 12px;
    isolation: isolate;
    background:
        radial-gradient(circle at 72% 20%, rgba(52,120,255,.22), transparent 28%),
        radial-gradient(circle at 20% 82%, rgba(116,71,255,.22), transparent 34%),
        linear-gradient(135deg,#17182b,#312268 58%,#164877);
}
.team-photo-fallback::before {
    content: "";
    position: absolute;
    width: 72%;
    aspect-ratio: 1;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 50%;
    background: rgba(255,255,255,.035);
}
.team-photo-initial,
.team-photo-coming {
    position: relative;
    z-index: 2;
}
.team-photo-initial {
    display: grid;
    width: 96px;
    height: 96px;
    place-items: center;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 50%;
    color: #fff;
    background: rgba(255,255,255,.09);
    font-family: var(--font-display);
    font-size: 58px;
    line-height: 1;
    box-shadow: 0 18px 40px rgba(5,8,24,.22);
}
.team-photo-coming {
    color: rgba(255,255,255,.72);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 1.2px;
    text-transform: uppercase;
}
.team-member-compact .team-photo-wrap {
    aspect-ratio: 4 / 3.4;
}

/* Keeps portrait framing consistent while still allowing the subtle hover zoom. */
@media (hover:hover) and (pointer:fine) {
    .team-member:hover .team-photo-wrap img {
        transform: scale(1.025);
    }
}
@media (max-width:1000px) {
    .team-member-featured summary {
        grid-template-columns: minmax(230px,.9fr) minmax(0,1.1fr);
    }
}
@media (max-width:700px) {
    .team-member-featured summary {
        display: block;
        min-height: 0;
    }
    .team-member-featured .team-photo-wrap,
    .team-photo-wrap {
        aspect-ratio: 4 / 4.25;
        min-height: 0;
        height: auto;
    }
    .team-member-featured .team-card-heading {
        display: block;
        padding: 25px 26px 27px;
    }
}

/* Contact map */
.map-card {
    overflow: hidden;
}

.contact-map-embed {
    position: relative;
    width: calc(100% + 72px);
    margin: -36px -36px 28px;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-bottom: 1px solid rgba(116,71,255,.12);
    background: #eceff5;
}

.contact-map-embed iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
}

.map-card-copy {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 16px;
    align-items: start;
}

.map-card-copy .map-pin {
    margin-bottom: 0;
}

.map-card-copy p {
    margin-bottom: 22px;
}

.map-card-copy p strong {
    display: block;
    margin-top: 5px;
    color: var(--black);
    font-size: 12px;
}

/* Calendar */
.calendar-section {
    background:
        radial-gradient(circle at 92% 12%, rgba(52,120,255,.055), transparent 24%),
        radial-gradient(circle at 8% 88%, rgba(116,71,255,.06), transparent 25%),
        #fff;
}

.calendar-heading {
    display: grid;
    grid-template-columns: .85fr 1.15fr;
    gap: 70px;
    align-items: end;
    margin-bottom: 42px;
}

.calendar-heading h2 {
    margin: 0;
}

.calendar-heading > p {
    max-width: 650px;
    color: var(--gray-700);
    font-size: 15px;
    line-height: 1.8;
}

.calendar-embed-card {
    position: relative;
    overflow: hidden;
    width: 100%;
    min-height: 720px;
    border: 1px solid rgba(116,71,255,.14);
    border-radius: 28px;
    background: #fff;
    box-shadow: 0 24px 70px rgba(35,39,78,.10);
}

.calendar-embed-card::before {
    content: "";
    position: absolute;
    z-index: 2;
    inset: 0 0 auto;
    height: 5px;
    pointer-events: none;
    background: linear-gradient(90deg, var(--purple), var(--blue), #15172a);
}

.calendar-embed-card iframe {
    display: block;
    width: 100%;
    height: 720px;
    border: 0;
}

@media (max-width: 900px) {
    .calendar-heading {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .calendar-embed-card,
    .calendar-embed-card iframe {
        min-height: 680px;
        height: 680px;
    }
}

@media (max-width: 700px) {
    .contact-map-embed {
        width: calc(100% + 50px);
        margin: -25px -25px 24px;
        aspect-ratio: 4 / 3;
    }

    .map-card-copy {
        grid-template-columns: 1fr;
    }

    .calendar-embed-card {
        border-radius: 20px;
    }

    .calendar-embed-card,
    .calendar-embed-card iframe {
        min-height: 620px;
        height: 620px;
    }
}

/* Recreational class finder */
.program-class-finder {
    --finder-purple: var(--purple);
    --finder-blue: var(--blue);
    margin-top: 30px;
    padding: 24px;
    overflow: hidden;
    border: 1px solid rgba(116,71,255,.16);
    border-radius: 24px;
    background:
        radial-gradient(circle at 90% 8%, rgba(52,120,255,.10), transparent 28%),
        radial-gradient(circle at 5% 100%, rgba(116,71,255,.08), transparent 30%),
        linear-gradient(145deg, #fff 0%, #fbfaff 48%, #f6f9ff 100%);
    box-shadow: 0 18px 44px rgba(38,42,84,.08);
}

.class-finder-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 26px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--gray-200);
}

.class-finder-kicker,
.class-finder-step-label span,
.class-finder-selection span {
    display: block;
    color: var(--finder-purple);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.class-finder-header h3 {
    margin: 6px 0 0;
    color: var(--black);
    font-size: clamp(20px, 2vw, 28px);
    line-height: 1.15;
}

.class-finder-progress {
    display: flex;
    align-items: center;
    gap: 7px;
    flex: 0 0 auto;
    padding-top: 4px;
}

.class-finder-progress span {
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border: 1px solid rgba(116,71,255,.18);
    border-radius: 50%;
    color: var(--gray-500);
    background: #fff;
    font-size: 10px;
    font-weight: 900;
    transition: .2s ease;
}

.class-finder-progress span.is-active {
    color: #fff;
    border-color: transparent;
    background: linear-gradient(135deg, var(--finder-purple), var(--finder-blue));
    box-shadow: 0 8px 20px rgba(80,74,201,.22);
}

.class-finder-progress i {
    width: 22px;
    height: 2px;
    border-radius: 999px;
    background: rgba(116,71,255,.16);
}

.class-finder-step {
    padding: 22px 0 0;
}

.class-finder-step + .class-finder-step {
    margin-top: 20px;
    padding-top: 22px;
    border-top: 1px solid var(--gray-200);
}

.class-finder-step-label {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin-bottom: 13px;
}

.class-finder-step-label strong {
    color: var(--black);
    font-size: 13px;
}

.level-choice-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0,1fr));
    gap: 9px;
}

.level-choice,
.age-choice {
    border: 1px solid rgba(116,71,255,.14);
    cursor: pointer;
    transition:
        transform .18s ease,
        border-color .18s ease,
        box-shadow .18s ease,
        background .18s ease,
        color .18s ease;
}

.level-choice {
    min-height: 82px;
    padding: 13px 12px;
    text-align: left;
    border-radius: 15px;
    color: var(--black);
    background: rgba(255,255,255,.86);
}

.level-choice-number {
    display: block;
    margin-bottom: 7px;
    color: var(--finder-purple);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .7px;
    text-transform: uppercase;
}

.level-choice strong {
    display: block;
    font-size: 11px;
    line-height: 1.35;
}

.level-choice.is-selected {
    color: #fff;
    border-color: transparent;
    background:
        radial-gradient(circle at 86% 10%, rgba(96,205,255,.25), transparent 32%),
        linear-gradient(135deg, #17182a, #3b277f 56%, #17508b);
    box-shadow: 0 13px 28px rgba(33,33,74,.18);
    transform: translateY(-2px);
}

.level-choice.is-selected .level-choice-number {
    color: #cbd5ff;
}

.age-choice-row {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
}

.age-choice {
    min-height: 38px;
    padding: 9px 14px;
    border-radius: 999px;
    color: var(--finder-purple);
    background: var(--purple-soft);
    font-size: 10px;
    font-weight: 900;
}

.age-choice.is-selected {
    color: #fff;
    border-color: transparent;
    background: linear-gradient(135deg, var(--finder-purple), var(--finder-blue));
    box-shadow: 0 8px 20px rgba(78,72,214,.20);
    transform: translateY(-2px);
}

.class-finder-action {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-top: 24px;
    padding: 18px 20px;
    border-radius: 17px;
    background: rgba(255,255,255,.78);
    border: 1px solid rgba(116,71,255,.11);
}

.class-finder-selection strong {
    display: block;
    margin-top: 4px;
    color: var(--black);
    font-size: 13px;
}

.class-finder-button {
    flex: 0 0 auto;
    min-width: 155px;
}

.class-finder-button.is-disabled {
    pointer-events: none;
    opacity: .45;
    filter: grayscale(.2);
}

@media (hover:hover) and (pointer:fine) {
    .level-choice:hover:not(.is-selected),
    .age-choice:hover:not(.is-selected) {
        transform: translateY(-2px);
        border-color: rgba(116,71,255,.28);
        box-shadow: 0 9px 20px rgba(36,40,80,.08);
    }
}

@media (max-width: 1050px) {
    .level-choice-grid {
        grid-template-columns: repeat(2, minmax(0,1fr));
    }

    .level-choice:last-child {
        grid-column: 1 / -1;
    }
}

@media (max-width: 760px) {
    .program-class-finder {
        padding: 19px;
        border-radius: 20px;
    }

    .class-finder-header {
        display: grid;
        gap: 16px;
    }

    .class-finder-progress {
        justify-content: flex-start;
    }

    .level-choice-grid {
        grid-template-columns: 1fr;
    }

    .level-choice:last-child {
        grid-column: auto;
    }

    .level-choice {
        min-height: 0;
    }

    .age-choice-row {
        display: grid;
        grid-template-columns: repeat(2, minmax(0,1fr));
    }

    .age-choice {
        width: 100%;
    }

    .age-choice:last-child {
        grid-column: 1 / -1;
    }

    .class-finder-action {
        align-items: stretch;
        flex-direction: column;
    }

    .class-finder-button {
        width: 100%;
    }
}

/* Program class finder — split level groups */
.level-choice-grid-two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.level-choice-grid-three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 1050px) {
    .level-choice-grid-two,
    .level-choice-grid-three {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .level-choice-grid-three .level-choice:last-child {
        grid-column: 1 / -1;
    }
}

@media (max-width: 760px) {
    .level-choice-grid-two,
    .level-choice-grid-three {
        grid-template-columns: 1fr;
    }

    .level-choice-grid-three .level-choice:last-child {
        grid-column: auto;
    }
}

/* Meet Our Team — unified photo system */
.team-grid {
    align-items: stretch;
}

.team-member:not(.team-member-featured) {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.team-member:not(.team-member-featured) summary {
    display: flex;
    flex: 1;
    flex-direction: column;
}

.team-member:not(.team-member-featured) .team-card-heading {
    flex: 1;
}

/* All standard team photo areas use the exact same square footprint. */
.team-member:not(.team-member-featured) .team-photo-wrap {
    width: 100%;
    aspect-ratio: 1 / 1;
    min-height: 0;
    height: auto;
}

/* Chelarrie is the single featured card and spans the entire first row. */
.team-member-featured {
    grid-column: 1 / -1;
}

.team-member-featured summary {
    display: grid;
    grid-template-columns: minmax(340px, .95fr) minmax(0, 1.35fr);
    min-height: 440px;
    background:
        radial-gradient(circle at 12% 20%, rgba(116,71,255,.08), transparent 30%),
        linear-gradient(135deg, #fff, #fbfbff);
}

.team-member-featured .team-photo-wrap {
    aspect-ratio: auto;
    min-height: 440px;
    height: 100%;
}

.team-member-featured .team-card-heading {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 54px 56px;
}

.team-member-featured .team-card-heading h3 {
    font-size: clamp(34px, 3.1vw, 48px);
}

.team-member-featured .team-card-heading p {
    max-width: 620px;
    font-size: 15px;
}

/* Placeholder and future-image behavior */
.team-photo-wrap {
    position: relative;
    isolation: isolate;
    background:
        radial-gradient(circle at 72% 20%, rgba(52,120,255,.22), transparent 28%),
        radial-gradient(circle at 20% 82%, rgba(116,71,255,.22), transparent 34%),
        linear-gradient(135deg,#17182b,#312268 58%,#164877);
}

.team-photo-image {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 20%;
    filter: saturate(.94) contrast(1.03);
    transition: transform .4s cubic-bezier(.22,.8,.2,1), filter .3s ease;
}

.team-photo-image[hidden] {
    display: none;
}

.team-photo-placeholder {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 12px;
}

.team-photo-placeholder::before {
    content: "";
    position: absolute;
    width: 72%;
    aspect-ratio: 1;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 50%;
    background: rgba(255,255,255,.035);
}

.team-photo-wrap.has-photo .team-photo-placeholder {
    display: none;
}

.team-photo-wrap.has-photo .team-photo-image {
    display: block;
}

.team-photo-accent {
    z-index: 4;
}

/* Individual focal-point hooks for the real photos later. */
.team-photo-chelarrie .team-photo-image { object-position: center 18%; }
.team-photo-stacey .team-photo-image { object-position: center 16%; }
.team-photo-jessica .team-photo-image { object-position: center 18%; }
.team-photo-alex .team-photo-image { object-position: center 12%; }
.team-photo-kendal .team-photo-image { object-position: center 24%; }
.team-photo-brianna .team-photo-image { object-position: center 15%; }
.team-photo-danielle .team-photo-image { object-position: center 18%; }

@media (hover:hover) and (pointer:fine) {
    .team-member:hover .team-photo-image {
        transform: scale(1.025);
        filter: saturate(1) contrast(1.04);
    }
}

@media (max-width: 1000px) {
    .team-member-featured {
        grid-column: 1 / -1;
    }

    .team-member-featured summary {
        grid-template-columns: minmax(280px,.9fr) minmax(0,1.1fr);
        min-height: 390px;
    }

    .team-member-featured .team-photo-wrap {
        min-height: 390px;
    }

    .team-member-featured .team-card-heading {
        padding: 42px 38px;
    }
}

@media (max-width: 700px) {
    .team-member-featured {
        grid-column: auto;
    }

    .team-member-featured summary {
        display: block;
        min-height: 0;
    }

    .team-member-featured .team-photo-wrap {
        aspect-ratio: 1 / 1;
        min-height: 0;
        height: auto;
    }

    .team-member-featured .team-card-heading {
        display: block;
        padding: 28px 26px 30px;
    }

    .team-member-featured .team-card-heading h3 {
        font-size: 30px;
    }

    .team-member:not(.team-member-featured) .team-photo-wrap {
        aspect-ratio: 1 / 1;
    }
}

/* =========================================================
   MEET OUR TEAM — CARD HEIGHT + MOBILE POLISH
========================================================= */

/* Keep each card independent. Opening one card should not visually
   stretch the other cards sharing that grid row. */
.team-grid {
    align-items: start;
}

.team-member:not(.team-member-featured) {
    display: block;
    height: auto;
    align-self: start;
}

.team-member:not(.team-member-featured) summary {
    display: block;
}

.team-member:not(.team-member-featured) .team-card-heading {
    min-height: 0;
}

/* Keep the regular team photo panels consistently square on desktop. */
.team-member:not(.team-member-featured) .team-photo-wrap {
    aspect-ratio: 1 / 1;
}

/* Slightly refine the featured owner card so it reads as intentional,
   rather than simply a stretched version of the regular cards. */
.team-member-featured {
    align-self: start;
}

.team-member-featured summary {
    overflow: hidden;
    border-radius: 23px 23px 0 0;
}

.team-member-featured .team-photo-wrap {
    min-height: 420px;
}

.team-member-featured .team-card-heading {
    position: relative;
}

.team-member-featured .team-card-heading::before {
    content: "";
    position: absolute;
    left: 0;
    top: 44px;
    bottom: 44px;
    width: 4px;
    border-radius: 999px;
    background: linear-gradient(180deg, var(--purple), var(--blue));
}

/* Tablet */
@media (max-width: 1000px) and (min-width: 701px) {
    .team-grid {
        grid-template-columns: repeat(2, minmax(0,1fr));
        gap: 18px;
    }

    .team-member-featured {
        grid-column: 1 / -1;
    }

    .team-member-featured summary {
        grid-template-columns: minmax(260px,.82fr) minmax(0,1.18fr);
        min-height: 350px;
    }

    .team-member-featured .team-photo-wrap {
        min-height: 350px;
    }

    .team-member-featured .team-card-heading {
        padding: 36px 34px;
    }

    .team-member-featured .team-card-heading::before {
        top: 34px;
        bottom: 34px;
    }
}

/* Mobile gets its own composition instead of a shrunken desktop grid. */
@media (max-width: 700px) {
    .team-hero {
        padding: 54px 0 58px;
    }

    .team-hero-grid {
        gap: 26px;
    }

    .team-hero h1 {
        font-size: clamp(48px, 15vw, 62px);
        line-height: .9;
    }

    .team-hero h1 em {
        letter-spacing: -1.5px;
    }

    .team-hero p {
        margin-top: 18px;
        font-size: 14px;
        line-height: 1.72;
    }

    .team-hero-note {
        padding: 22px;
        border-radius: 21px;
    }

    .team-hero-note strong {
        font-size: 25px;
    }

    .team-section {
        padding: 58px 0 68px;
    }

    .team-section-heading {
        margin-bottom: 28px;
    }

    .team-section-heading h2 {
        font-size: clamp(42px, 13vw, 58px);
    }

    .team-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .team-member {
        width: 100%;
        border-radius: 20px;
        box-shadow: 0 12px 30px rgba(28,30,58,.07);
    }

    /* Featured owner remains the hero team card on mobile. */
    .team-member-featured {
        grid-column: auto;
    }

    .team-member-featured summary {
        display: block;
        min-height: 0;
        border-radius: 19px 19px 0 0;
    }

    .team-member-featured .team-photo-wrap {
        width: 100%;
        min-height: 0;
        height: auto;
        aspect-ratio: 4 / 3;
    }

    .team-member-featured .team-card-heading {
        display: block;
        padding: 27px 24px 28px;
    }

    .team-member-featured .team-card-heading::before {
        left: 24px;
        right: 24px;
        top: 0;
        bottom: auto;
        width: auto;
        height: 4px;
        background: linear-gradient(90deg, var(--purple), var(--blue));
    }

    .team-member-featured .team-card-heading h3 {
        font-size: 30px;
    }

    .team-member-featured .team-card-heading p {
        margin-top: 10px;
        font-size: 13px;
    }

    /* Regular faculty cards become compact horizontal cards.
       This makes the team page much easier to scan on a phone. */
    .team-member:not(.team-member-featured) summary {
        display: grid;
        grid-template-columns: 118px minmax(0,1fr);
        align-items: stretch;
        min-height: 150px;
    }

    .team-member:not(.team-member-featured) .team-photo-wrap {
        width: 118px;
        min-height: 150px;
        height: 100%;
        aspect-ratio: auto;
        border-radius: 19px 0 0 19px;
    }

    .team-member:not(.team-member-featured)[open] .team-photo-wrap {
        border-radius: 19px 0 0 0;
    }

    .team-member:not(.team-member-featured) .team-photo-placeholder::before {
        width: 82%;
    }

    .team-member:not(.team-member-featured) .team-photo-initial {
        width: 66px;
        height: 66px;
        font-size: 40px;
    }

    .team-member:not(.team-member-featured) .team-photo-coming {
        max-width: 90px;
        text-align: center;
        font-size: 7px;
        line-height: 1.35;
    }

    .team-member:not(.team-member-featured) .team-card-heading {
        display: flex;
        min-width: 0;
        flex-direction: column;
        justify-content: center;
        padding: 18px 18px 17px;
    }

    .team-role {
        margin-bottom: 6px;
        font-size: 8px;
        letter-spacing: .8px;
    }

    .team-card-heading h3 {
        font-size: 21px;
        line-height: 1.08;
    }

    .team-card-heading p {
        margin-top: 8px;
        font-size: 11.5px;
        line-height: 1.55;
    }

    .team-read-more {
        margin-top: 12px;
        font-size: 8px;
        letter-spacing: .3px;
    }

    .team-read-more b {
        width: 21px;
        height: 21px;
        font-size: 14px;
    }

    .team-bio {
        padding: 3px 20px 23px;
        font-size: 12.5px;
        line-height: 1.72;
    }

    .team-bio p {
        margin-top: 14px;
    }

    .team-highlight {
        padding: 11px 13px;
        font-size: 10px;
    }

    .team-member-compact summary {
        cursor: default;
    }

    .team-cta {
        padding: 58px 0;
    }

    .team-cta h2 {
        font-size: 48px;
    }
}

@media (max-width: 390px) {
    .team-member:not(.team-member-featured) summary {
        grid-template-columns: 104px minmax(0,1fr);
        min-height: 142px;
    }

    .team-member:not(.team-member-featured) .team-photo-wrap {
        width: 104px;
        min-height: 142px;
    }

    .team-member:not(.team-member-featured) .team-card-heading {
        padding: 16px 15px;
    }

    .team-card-heading h3 {
        font-size: 19px;
    }

    .team-card-heading p {
        font-size: 11px;
    }
}

/* Contact page social links */
.contact-social-block {
    position: relative;
    overflow: hidden;
    margin-top: 34px;
    padding: 24px;
    border: 1px solid rgba(116,71,255,.14);
    border-radius: 22px;
    background:
        radial-gradient(circle at 92% 12%, rgba(52,120,255,.12), transparent 34%),
        linear-gradient(135deg, #fbf9ff, #f4f8ff);
    box-shadow: 0 16px 38px rgba(38,42,84,.07);
}

.contact-social-block::after {
    content: "";
    position: absolute;
    right: -42px;
    bottom: -52px;
    width: 135px;
    height: 135px;
    border-radius: 50%;
    background: linear-gradient(135deg, rgba(116,71,255,.12), rgba(52,120,255,.12));
    pointer-events: none;
}

.contact-social-block > * {
    position: relative;
    z-index: 2;
}

.contact-social-kicker {
    display: block;
    color: var(--purple);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 1.1px;
    text-transform: uppercase;
}

.contact-social-block > p {
    max-width: 520px;
    margin: 8px 0 0;
    color: var(--gray-700);
    font-size: 13px;
    line-height: 1.65;
}

.contact-social-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 18px;
}

.contact-social-links a {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 46px;
    padding: 9px 13px 9px 10px;
    border: 1px solid rgba(116,71,255,.14);
    border-radius: 14px;
    color: var(--black);
    background: rgba(255,255,255,.88);
    font-size: 12px;
    font-weight: 900;
    box-shadow: 0 8px 20px rgba(31,35,61,.05);
    transition:
        transform .2s ease,
        box-shadow .2s ease,
        border-color .2s ease,
        color .2s ease;
}

.contact-social-icon {
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border-radius: 10px;
    color: #fff;
    background: linear-gradient(135deg, var(--purple), var(--blue));
}

.contact-social-icon svg {
    width: 16px;
    height: 16px;
    fill: currentColor;
}

.contact-social-links b {
    color: var(--purple);
    font-size: 13px;
    font-weight: 800;
}

@media (hover:hover) and (pointer:fine) {
    .contact-social-links a:hover {
        transform: translateY(-2px);
        border-color: rgba(116,71,255,.28);
        box-shadow: 0 14px 28px rgba(31,35,61,.10);
        color: var(--purple);
    }
}

.contact-social-links a:focus-visible {
    outline: 2px solid var(--purple);
    outline-offset: 3px;
}

@media (max-width: 700px) {
    .contact-social-block {
        margin-top: 28px;
        padding: 20px;
        border-radius: 19px;
    }

    .contact-social-links {
        display: grid;
        grid-template-columns: 1fr;
    }

    .contact-social-links a {
        width: 100%;
        justify-content: flex-start;
    }

    .contact-social-links b {
        margin-left: auto;
    }
}

/* =========================================================
   CONTACT EMAIL FORM
========================================================= */

.contact-message-section {
    position: relative;
    overflow: hidden;
    padding: 96px 0 104px;
    background:
        radial-gradient(circle at 88% 8%, rgba(52,120,255,.10), transparent 26%),
        radial-gradient(circle at 10% 92%, rgba(116,71,255,.10), transparent 30%),
        linear-gradient(135deg, #fafaff 0%, #f6f2ff 48%, #f2f7ff 100%);
}

.contact-message-section::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: .55;
    background-image:
        linear-gradient(rgba(116,71,255,.045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(52,120,255,.04) 1px, transparent 1px);
    background-size: 58px 58px;
}

.contact-message-layout {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: .88fr 1.12fr;
    gap: 72px;
    align-items: start;
}

.contact-message-intro {
    position: sticky;
    top: 120px;
}

.contact-message-intro h2 {
    margin: 0;
    color: var(--black);
    font-family: var(--font-display);
    font-size: clamp(48px,5vw,76px);
    line-height: .94;
}

.contact-message-intro h2 em {
    display: inline-block;
    color: transparent;
    background: linear-gradient(90deg, var(--purple), var(--blue));
    -webkit-background-clip: text;
    background-clip: text;
    font-family: var(--font-body);
    font-size: .48em;
    font-style: italic;
    font-weight: 900;
    letter-spacing: -2px;
}

.contact-message-intro > p {
    max-width: 560px;
    margin: 24px 0 0;
    color: var(--gray-700);
    font-size: 15px;
    line-height: 1.8;
}

.contact-message-security {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 14px;
    align-items: start;
    margin-top: 30px;
    padding: 18px;
    border: 1px solid rgba(116,71,255,.13);
    border-radius: 18px;
    background: rgba(255,255,255,.72);
    box-shadow: 0 12px 30px rgba(37,40,80,.05);
}

.contact-message-security-icon {
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: linear-gradient(135deg, var(--purple), var(--blue));
    font-size: 14px;
    font-weight: 900;
}

.contact-message-security strong {
    color: var(--black);
    font-size: 13px;
}

.contact-message-security p {
    margin-top: 5px;
    color: var(--gray-700);
    font-size: 11px;
    line-height: 1.55;
}

.contact-form-card {
    position: relative;
    overflow: hidden;
    padding: 34px;
    border: 1px solid rgba(116,71,255,.16);
    border-radius: 28px;
    background: rgba(255,255,255,.93);
    box-shadow: 0 28px 75px rgba(39,34,84,.11);
}

.contact-form-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 5px;
    background: linear-gradient(90deg, var(--purple), var(--blue), #15172a);
}

.contact-email-form {
    display: grid;
    gap: 20px;
}

.contact-form-field {
    display: grid;
    gap: 8px;
}

.contact-form-field label {
    color: var(--black);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .5px;
}

.contact-form-field input,
.contact-form-field textarea {
    width: 100%;
    border: 1px solid var(--gray-200);
    border-radius: 15px;
    color: var(--black);
    background: #fff;
    font: inherit;
    font-size: 14px;
    outline: none;
    transition:
        border-color .2s ease,
        box-shadow .2s ease,
        background .2s ease;
}

.contact-form-field input {
    min-height: 52px;
    padding: 0 16px;
}

.contact-form-field textarea {
    min-height: 180px;
    padding: 15px 16px;
    line-height: 1.65;
    resize: vertical;
}

.contact-form-field input::placeholder,
.contact-form-field textarea::placeholder {
    color: #9ca3af;
}

.contact-form-field input:focus,
.contact-form-field textarea:focus {
    border-color: rgba(116,71,255,.48);
    box-shadow: 0 0 0 4px rgba(116,71,255,.08);
    background: #fff;
}

.contact-form-field input:disabled,
.contact-form-field textarea:disabled {
    cursor: not-allowed;
    color: var(--gray-500);
    background: #f5f6fa;
}

.contact-form-help {
    color: var(--gray-500);
    font-size: 9px;
    font-weight: 700;
}

.contact-form-submit {
    width: fit-content;
    min-width: 190px;
    margin-top: 4px;
    border: 0;
    cursor: pointer;
}

.contact-form-submit.is-disabled {
    cursor: not-allowed;
    opacity: .46;
    filter: grayscale(.15);
}

.contact-form-offline-note {
    margin-top: -8px;
    color: var(--gray-600);
    font-size: 11px;
    line-height: 1.55;
}

.contact-form-honeypot {
    position: absolute !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

.contact-form-messages {
    display: grid;
    gap: 10px;
    margin-bottom: 20px;
}

.contact-form-message {
    padding: 14px 16px;
    border-radius: 14px;
    font-size: 12px;
    line-height: 1.55;
}

.contact-form-message-success {
    color: #174f32;
    border: 1px solid rgba(31,140,82,.18);
    background: #ecfbf2;
}

.contact-form-message-error {
    color: #7c2430;
    border: 1px solid rgba(185,55,72,.18);
    background: #fff1f3;
}

.contact-form-message-info {
    color: #2f3e66;
    border: 1px solid rgba(52,120,255,.16);
    background: #eef5ff;
}

.contact-form-message ul {
    margin: 8px 0 0 18px;
}

@media (max-width: 1000px) {
    .contact-message-layout {
        grid-template-columns: 1fr;
        gap: 38px;
    }

    .contact-message-intro {
        position: static;
    }
}

@media (max-width: 700px) {
    .contact-message-section {
        padding: 66px 0 72px;
    }

    .contact-message-intro h2 {
        font-size: 52px;
    }

    .contact-form-card {
        padding: 24px 20px;
        border-radius: 22px;
    }

    .contact-form-submit {
        width: 100%;
    }
}

/* =========================================================
   PROGRAM CLASS FINDER — EXACT AGE INPUT
========================================================= */

.age-input-wrap {
    display: grid;
    gap: 8px;
    max-width: 420px;
}

.age-input-wrap > label {
    color: var(--black);
    font-size: 11px;
    font-weight: 900;
}

.age-input-shell {
    position: relative;
    display: flex;
    align-items: center;
}

.class-finder-age-input {
    width: 100%;
    min-height: 54px;
    padding: 0 112px 0 16px;
    border: 1px solid rgba(116,71,255,.16);
    border-radius: 15px;
    color: var(--black);
    background: rgba(255,255,255,.92);
    font: inherit;
    font-size: 15px;
    font-weight: 800;
    outline: none;
    appearance: textfield;
    transition:
        border-color .18s ease,
        box-shadow .18s ease,
        background .18s ease;
}

.class-finder-age-input::-webkit-outer-spin-button,
.class-finder-age-input::-webkit-inner-spin-button {
    margin: 0;
    appearance: none;
}

.class-finder-age-input:focus {
    border-color: rgba(116,71,255,.48);
    box-shadow: 0 0 0 4px rgba(116,71,255,.08);
    background: #fff;
}

.class-finder-age-input.is-valid {
    border-color: rgba(42,156,101,.28);
    box-shadow: 0 0 0 4px rgba(42,156,101,.055);
}

.class-finder-age-input.is-invalid {
    border-color: rgba(185,55,72,.28);
    box-shadow: 0 0 0 4px rgba(185,55,72,.055);
}

.age-input-suffix {
    position: absolute;
    right: 15px;
    color: var(--gray-500);
    font-size: 10px;
    font-weight: 900;
    pointer-events: none;
}

.class-finder-age-help {
    color: var(--gray-500);
    font-size: 10px;
    line-height: 1.5;
}

/* =========================================================
   LIVE SCHEDULE PAGE
========================================================= */

.schedule-hero-card strong {
    max-width: 480px;
}

.schedule-widget-section {
    padding: 88px 0 100px;
    background:
        radial-gradient(circle at 92% 10%, rgba(52,120,255,.06), transparent 24%),
        radial-gradient(circle at 8% 90%, rgba(116,71,255,.06), transparent 27%),
        #fff;
}

.schedule-widget-heading {
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    gap: 60px;
    align-items: end;
    margin-bottom: 34px;
}

.schedule-widget-heading h2 {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(46px,5vw,76px);
    line-height: .95;
}

.schedule-widget-heading > p {
    max-width: 620px;
    color: var(--gray-700);
    font-size: 15px;
    line-height: 1.8;
}

.schedule-widget-card {
    position: relative;
    overflow: hidden;
    min-height: 900px;
    border: 1px solid rgba(116,71,255,.14);
    border-radius: 28px;
    background: #f6f9ff;
    box-shadow: 0 26px 75px rgba(35,39,78,.10);
}

.schedule-widget-card::before {
    content: "";
    position: absolute;
    z-index: 2;
    inset: 0 0 auto;
    height: 5px;
    pointer-events: none;
    background: linear-gradient(90deg, var(--purple), var(--blue), #15172a);
}

.schedule-widget-frame {
    display: block;
    width: 100%;
    min-height: 900px;
    height: 900px;
    border: 0;
    background: #fff;
}

@media (max-width: 900px) {
    .schedule-widget-heading {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .schedule-widget-card,
    .schedule-widget-frame {
        min-height: 980px;
        height: 980px;
    }
}

@media (max-width: 700px) {
    .age-input-wrap {
        max-width: none;
    }

    .schedule-widget-section {
        padding: 66px 0 74px;
    }

    .schedule-widget-card {
        border-radius: 20px;
    }

    .schedule-widget-card,
    .schedule-widget-frame {
        min-height: 1100px;
        height: 1100px;
    }
}


/* PERFORMANCE PAGE — MINIMAL / SCANNABLE */
.performance-hero{position:relative;overflow:hidden;padding:92px 0 88px;background:radial-gradient(circle at 86% 10%,rgba(52,120,255,.18),transparent 29%),radial-gradient(circle at 12% 88%,rgba(116,71,255,.15),transparent 31%),linear-gradient(135deg,#fff 0%,#f8f5ff 50%,#f2f7ff 100%)}
.performance-hero::before{content:"";position:absolute;inset:0;opacity:.62;background-image:linear-gradient(rgba(116,71,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(52,120,255,.035) 1px,transparent 1px);background-size:58px 58px}
.performance-hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.05fr .95fr;gap:76px;align-items:center}
.performance-hero h1{margin:0;color:var(--black);font-family:var(--font-display);font-size:clamp(64px,7vw,108px);line-height:.87}
.performance-hero h1 em{display:inline-block;color:transparent;background:linear-gradient(90deg,var(--purple),var(--blue));-webkit-background-clip:text;background-clip:text;font-family:var(--font-body);font-size:.48em;font-style:italic;font-weight:900;letter-spacing:-3px}
.performance-hero-copy>p{max-width:650px;margin:24px 0 0;color:var(--gray-700);font-size:16px;line-height:1.75}
.performance-hero-note{position:relative;overflow:hidden;padding:36px;border:1px solid rgba(116,71,255,.15);border-radius:28px;background:rgba(255,255,255,.84);box-shadow:0 28px 75px rgba(35,36,77,.10);backdrop-filter:blur(18px)}
.performance-hero-note::after{content:"";position:absolute;right:-58px;bottom:-72px;width:190px;height:190px;border-radius:50%;background:linear-gradient(135deg,rgba(116,71,255,.17),rgba(52,120,255,.20))}
.performance-hero-note>*{position:relative;z-index:2}.performance-hero-note>span{color:var(--purple);font-size:10px;font-weight:900;letter-spacing:1.2px;text-transform:uppercase}.performance-hero-note strong{display:block;margin-top:10px;font-size:clamp(27px,3vw,38px);line-height:1.08}.performance-hero-note p{margin-top:16px;color:var(--gray-700);font-size:14px;line-height:1.7}
.performance-section{padding:96px 0 104px;background:radial-gradient(circle at 94% 18%,rgba(52,120,255,.055),transparent 23%),#fff}
.performance-section-heading{display:grid;grid-template-columns:.85fr 1.15fr;gap:64px;align-items:end;margin-bottom:38px}.performance-section-heading h2{margin:0;font-family:var(--font-display);font-size:clamp(48px,5vw,76px);line-height:.94}.performance-section-heading>p{max-width:520px;color:var(--gray-600);font-size:14px;line-height:1.7}
.performance-featured-card{display:grid;grid-template-columns:90px minmax(0,1fr) auto;gap:28px;align-items:center;padding:30px 32px;border:1px solid rgba(116,71,255,.16);border-radius:24px;background:radial-gradient(circle at 92% 10%,rgba(52,120,255,.10),transparent 30%),linear-gradient(135deg,#fff,#faf8ff);box-shadow:0 18px 46px rgba(35,39,78,.07)}
.performance-featured-number,.performance-card-number{color:transparent;background:linear-gradient(135deg,var(--purple),var(--blue));-webkit-background-clip:text;background-clip:text;font-family:var(--font-display);line-height:1}.performance-featured-number{font-size:52px}
.performance-card-kicker{display:block;margin-bottom:7px;color:var(--purple);font-size:9px;font-weight:900;letter-spacing:1px;text-transform:uppercase}
.performance-featured-copy h3,.performance-card h3{margin:0;color:var(--black)}.performance-featured-copy h3{font-size:29px}.performance-featured-copy p,.performance-card p{color:var(--gray-700);line-height:1.68}.performance-featured-copy p{max-width:760px;margin-top:9px;font-size:13px}
.performance-featured-tag,.performance-card-pill{display:inline-flex;align-items:center;width:fit-content;border-radius:999px;font-size:9px;font-weight:900;letter-spacing:.6px;text-transform:uppercase}.performance-featured-tag{padding:10px 13px;color:#fff;background:linear-gradient(135deg,var(--purple),var(--blue))}
.performance-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}
.performance-card{position:relative;overflow:hidden;display:grid;grid-template-columns:auto minmax(0,1fr);gap:20px;padding:27px;border:1px solid var(--gray-200);border-radius:22px;background:#fff;box-shadow:0 12px 32px rgba(30,34,68,.045);transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease}
.performance-card::after{content:"";position:absolute;right:-42px;bottom:-54px;width:120px;height:120px;border-radius:50%;background:linear-gradient(135deg,rgba(116,71,255,.06),rgba(52,120,255,.08))}.performance-card>*{position:relative;z-index:2}.performance-card-number{font-size:38px}.performance-card h3{font-size:23px;line-height:1.1}.performance-card p{margin-top:9px;font-size:13px}.performance-card-pill{grid-column:2;margin-top:2px;padding:8px 11px;color:var(--purple);background:var(--purple-soft)}
.performance-band{padding:84px 0;color:#fff;background:radial-gradient(circle at 82% 12%,rgba(52,120,255,.26),transparent 28%),radial-gradient(circle at 12% 100%,rgba(116,71,255,.22),transparent 32%),linear-gradient(122deg,#0c0e18,#21144d 54%,#123e72)}
.performance-band-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:center}.performance-band h2{margin:0;color:#fff;font-family:var(--font-display);font-size:clamp(48px,5vw,76px);line-height:.94}.performance-band-points{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.performance-band-points span{padding:17px 18px;border:1px solid rgba(255,255,255,.14);border-radius:16px;background:rgba(255,255,255,.06);color:rgba(255,255,255,.88);font-size:12px;font-weight:800}
@media(hover:hover) and (pointer:fine){.performance-card:hover{transform:translateY(-5px);border-color:rgba(116,71,255,.24);box-shadow:0 20px 45px rgba(34,35,74,.10)}}
@media(max-width:1000px){.performance-hero-grid,.performance-section-heading,.performance-band-layout{grid-template-columns:1fr;gap:38px}.performance-featured-card{grid-template-columns:72px minmax(0,1fr)}.performance-featured-tag{grid-column:2}}
@media(max-width:760px){.performance-hero{padding:64px 0 68px}.performance-hero h1{font-size:60px}.performance-hero h1 em{letter-spacing:-1px}.performance-hero-note{padding:25px;border-radius:22px}.performance-section{padding:68px 0 74px}.performance-card-grid{grid-template-columns:1fr}.performance-featured-card{grid-template-columns:1fr;gap:12px;padding:24px}.performance-featured-number{font-size:42px}.performance-featured-tag{grid-column:auto}.performance-card{grid-template-columns:52px minmax(0,1fr);padding:22px 20px}.performance-card-number{font-size:34px}.performance-band{padding:64px 0}.performance-band-points{grid-template-columns:1fr}}



/* =========================================================
   PROGRAMS PAGE — SIMPLIFIED FLOW
========================================================= */

.program-levels-section {
    padding-top: 84px;
    padding-bottom: 84px;
    background:
        radial-gradient(circle at 92% 10%, rgba(52,120,255,.055), transparent 24%),
        radial-gradient(circle at 8% 90%, rgba(116,71,255,.05), transparent 26%),
        #fff;
}

.program-section-heading-simple {
    max-width: 820px;
    margin-bottom: 34px;
}

.program-section-heading-simple h2 {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(46px,5vw,76px);
    line-height: .95;
}

.program-section-heading-simple > p {
    max-width: 700px;
    margin-top: 16px;
    color: var(--gray-700);
    font-size: 14px;
    line-height: 1.75;
}

.program-level-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0,1fr));
    gap: 14px;
}

.program-level-card {
    position: relative;
    overflow: hidden;
    display: flex;
    min-height: 210px;
    flex-direction: column;
    justify-content: space-between;
    gap: 18px;
    padding: 22px;
    border: 1px solid var(--gray-200);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 12px 30px rgba(28,32,66,.045);
}

.program-level-card::after {
    content: "";
    position: absolute;
    right: -34px;
    bottom: -42px;
    width: 100px;
    height: 100px;
    border-radius: 50%;
    background: linear-gradient(135deg,rgba(116,71,255,.06),rgba(52,120,255,.09));
    pointer-events: none;
}

.program-level-card > * {
    position: relative;
    z-index: 2;
}

.program-level-number {
    color: transparent;
    background: linear-gradient(135deg,var(--purple),var(--blue));
    -webkit-background-clip: text;
    background-clip: text;
    font-family: var(--font-display);
    font-size: 40px;
    line-height: 1;
}

.program-level-card strong {
    display: block;
    color: var(--black);
    font-size: 16px;
    line-height: 1.2;
}

.program-level-card p {
    margin-top: 8px;
    color: var(--gray-700);
    font-size: 11.5px;
    line-height: 1.58;
}

.program-level-status {
    display: inline-flex;
    width: fit-content;
    padding: 7px 9px;
    border-radius: 999px;
    color: var(--purple);
    background: var(--purple-soft);
    font-size: 8px;
    font-weight: 900;
    letter-spacing: .55px;
    text-transform: uppercase;
}

.program-level-card-accelerated {
    border-color: rgba(116,71,255,.18);
    background:
        radial-gradient(circle at 88% 8%,rgba(52,120,255,.07),transparent 26%),
        linear-gradient(145deg,#fff,#faf8ff);
}

.program-level-card-accelerated .program-level-status {
    color: #fff;
    background: linear-gradient(135deg,#181a2d,#3f2b82 58%,#155085);
}

.program-level-note {
    margin-top: 20px;
    padding: 16px 18px;
    border-left: 4px solid var(--purple);
    border-radius: 0 14px 14px 0;
    color: var(--gray-700);
    background: #faf8ff;
    font-size: 12px;
    line-height: 1.65;
}

/* Keep the program descriptions compact and remove the old nested finder footprint. */
.programs-intro {
    padding-top: 80px;
    padding-bottom: 80px;
}

.program-list-details p {
    max-width: 760px;
}

/* Single class search form */
.program-search-section {
    position: relative;
    overflow: hidden;
    padding: 90px 0 96px;
    background:
        radial-gradient(circle at 90% 10%, rgba(52,120,255,.10), transparent 28%),
        radial-gradient(circle at 7% 90%, rgba(116,71,255,.09), transparent 31%),
        linear-gradient(135deg,#fdfdff,#f7f4ff 48%,#f3f8ff);
}

.program-search-section::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: .55;
    background-image:
        linear-gradient(rgba(116,71,255,.04) 1px, transparent 1px),
        linear-gradient(90deg,rgba(52,120,255,.035) 1px,transparent 1px);
    background-size: 58px 58px;
    pointer-events: none;
}

.program-search-layout {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: .78fr 1.22fr;
    gap: 62px;
    align-items: center;
}

.program-search-copy h2 {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(48px,5vw,76px);
    line-height: .94;
}

.program-search-copy > p {
    max-width: 540px;
    margin-top: 18px;
    color: var(--gray-700);
    font-size: 14px;
    line-height: 1.75;
}

.program-search-note {
    margin-top: 28px;
    padding: 18px;
    border: 1px solid rgba(116,71,255,.14);
    border-radius: 17px;
    background: rgba(255,255,255,.70);
}

.program-search-note > span {
    color: var(--purple);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.program-search-note p {
    margin-top: 6px;
    color: var(--gray-700);
    font-size: 11.5px;
    line-height: 1.6;
}

.program-search-card {
    padding: 28px;
    border: 1px solid rgba(116,71,255,.16);
    border-radius: 26px;
    background: rgba(255,255,255,.92);
    box-shadow: 0 24px 65px rgba(35,38,78,.10);
}

.program-search-fields {
    display: grid;
    grid-template-columns: .8fr 1fr 1.2fr;
    gap: 14px;
}

.program-search-field {
    display: grid;
    gap: 8px;
}

.program-search-field label {
    color: var(--black);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .45px;
}

.program-search-field label span {
    margin-left: 5px;
    color: var(--purple);
    font-size: 8px;
    text-transform: uppercase;
}

.program-search-field select {
    width: 100%;
    min-height: 54px;
    padding: 0 42px 0 14px;
    border: 1px solid rgba(116,71,255,.16);
    border-radius: 15px;
    color: var(--black);
    background: #fff;
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    outline: none;
    cursor: pointer;
}

.program-search-field select:focus {
    border-color: rgba(116,71,255,.48);
    box-shadow: 0 0 0 4px rgba(116,71,255,.08);
}

.program-search-action {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
    margin-top: 20px;
    padding: 18px 20px;
    border: 1px solid rgba(116,71,255,.11);
    border-radius: 17px;
    background: #fbfbff;
}

@media (hover:hover) and (pointer:fine) {
    .program-level-card {
        transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
    }

    .program-level-card:hover {
        transform: translateY(-4px);
        border-color: rgba(116,71,255,.22);
        box-shadow: 0 18px 38px rgba(32,34,72,.09);
    }
}

@media (max-width: 1100px) {
    .program-level-grid {
        grid-template-columns: repeat(3,minmax(0,1fr));
    }

    .program-search-layout {
        grid-template-columns: 1fr;
        gap: 34px;
    }
}

@media (max-width: 800px) {
    .program-level-grid {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }

    .program-search-fields {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    .program-levels-section,
    .programs-intro,
    .program-search-section {
        padding-top: 62px;
        padding-bottom: 66px;
    }

    .program-level-grid {
        grid-template-columns: 1fr;
    }

    .program-level-card {
        min-height: 0;
    }

    .program-search-card {
        padding: 20px;
        border-radius: 21px;
    }

    .program-search-action {
        align-items: stretch;
        flex-direction: column;
    }

    .program-search-action .class-finder-button {
        width: 100%;
    }
}



/* =========================================================
   ABOUT — LEGACY BRAND MOMENT
========================================================= */

.legacy-brand-card {
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: minmax(230px, .72fr) minmax(0, 1.28fr);
    align-items: center;
    gap: 42px;
    margin: 0 0 42px;
    padding: 30px 36px;
    border: 1px solid rgba(116,71,255,.12);
    border-radius: 24px;
    background:
        radial-gradient(circle at 92% 8%, rgba(52,120,255,.09), transparent 28%),
        linear-gradient(135deg, #fff, #faf8ff 58%, #f5f9ff);
    box-shadow: 0 18px 45px rgba(35,39,78,.07);
}

.legacy-brand-card::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 5px;
    background: linear-gradient(180deg, var(--purple), var(--blue));
}

.legacy-brand-mark {
    display: grid;
    min-height: 150px;
    place-items: center;
    padding: 16px 20px;
    border: 1px solid rgba(9,11,18,.06);
    border-radius: 18px;
    background: #fff;
}

.legacy-brand-mark img {
    display: block;
    width: min(100%, 280px);
    height: auto;
    object-fit: contain;
}

.legacy-brand-copy {
    max-width: 680px;
}

.legacy-brand-copy .eyebrow {
    margin-bottom: 8px;
}

.legacy-brand-copy h3 {
    margin: 0;
    color: var(--black);
    font-family: var(--font-display);
    font-size: clamp(34px, 3.6vw, 54px);
    line-height: .95;
}

.legacy-brand-copy p {
    max-width: 610px;
    margin-top: 14px;
    color: var(--gray-700);
    font-size: 14px;
    line-height: 1.72;
}

@media (max-width: 760px) {
    .legacy-brand-card {
        grid-template-columns: 1fr;
        gap: 22px;
        padding: 24px;
    }

    .legacy-brand-mark {
        min-height: 130px;
    }

    .legacy-brand-mark img {
        width: min(100%, 245px);
    }
}

/* =========================================================
   ABOUT — TEMPORARY LEGACY LOGO WELCOME MODAL
========================================================= */

.legacy-welcome-modal {
    position: fixed;
    inset: 0;
    z-index: 12000;
    display: grid;
    place-items: center;
    padding: 24px;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .24s ease, visibility .24s ease;
}

.legacy-welcome-modal.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.legacy-welcome-backdrop {
    position: absolute;
    inset: 0;
    border: 0;
    background: rgba(6,8,20,.74);
    backdrop-filter: blur(10px);
    cursor: default;
}

.legacy-welcome-dialog {
    position: relative;
    z-index: 2;
    overflow: hidden;
    width: min(100%, 980px);
    display: grid;
    grid-template-columns: .82fr 1.18fr;
    align-items: center;
    gap: 44px;
    padding: 38px 44px;
    border: 1px solid rgba(116,71,255,.18);
    border-radius: 30px;
    background:
        radial-gradient(circle at 94% 8%, rgba(52,120,255,.14), transparent 28%),
        radial-gradient(circle at 8% 100%, rgba(116,71,255,.12), transparent 30%),
        #fff;
    box-shadow: 0 38px 120px rgba(5,7,22,.38);
    transform: translateY(18px) scale(.985);
    transition: transform .26s cubic-bezier(.22,.8,.2,1);
}

.legacy-welcome-modal.is-open .legacy-welcome-dialog {
    transform: translateY(0) scale(1);
}

.legacy-welcome-dialog::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 6px;
    background: linear-gradient(180deg, var(--purple), var(--blue));
}

.legacy-welcome-close {
    position: absolute;
    z-index: 4;
    top: 18px;
    right: 18px;
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border: 1px solid var(--gray-200);
    border-radius: 50%;
    color: var(--black);
    background: rgba(255,255,255,.92);
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 8px 24px rgba(20,22,50,.08);
}

.legacy-welcome-mark {
    display: grid;
    min-height: 250px;
    place-items: center;
    padding: 28px;
    border: 1px solid rgba(9,11,18,.07);
    border-radius: 22px;
    background: #fff;
}

.legacy-welcome-mark img {
    display: block;
    width: min(100%, 340px);
    height: auto;
    object-fit: contain;
}

.legacy-welcome-copy {
    padding-right: 14px;
}

.legacy-welcome-copy .eyebrow {
    margin-bottom: 9px;
}

.legacy-welcome-copy h2 {
    margin: 0;
    color: var(--black);
    font-family: var(--font-display);
    font-size: clamp(48px,5.2vw,76px);
    line-height: .92;
}

.legacy-welcome-copy p {
    max-width: 610px;
    margin-top: 18px;
    color: var(--gray-700);
    font-size: 14px;
    line-height: 1.75;
}

.legacy-welcome-button {
    margin-top: 24px;
    border: 0;
    cursor: pointer;
}

body.legacy-welcome-open {
    overflow: hidden;
}

@media (max-width: 760px) {
    .legacy-welcome-modal {
        padding: 14px;
    }

    .legacy-welcome-dialog {
        grid-template-columns: 1fr;
        gap: 22px;
        max-height: calc(100vh - 28px);
        overflow-y: auto;
        padding: 58px 24px 28px;
        border-radius: 24px;
    }

    .legacy-welcome-mark {
        min-height: 160px;
        padding: 18px;
    }

    .legacy-welcome-mark img {
        width: min(100%, 260px);
    }

    .legacy-welcome-copy {
        padding-right: 0;
    }

    .legacy-welcome-copy h2 {
        font-size: clamp(42px,13vw,58px);
    }

    .legacy-welcome-button {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .legacy-welcome-modal,
    .legacy-welcome-dialog {
        transition: none;
    }
}



/* =========================================================
   ABOUT PAGE — CURRENT CONTENT CLEANUP
========================================================= */

/* Number badges were removed from the About philosophy cards. */
.value-grid article {
    padding-top: 32px;
}

.value-grid article h3 {
    margin-top: 0;
}

/* Matches the dark Studio Director action used in the site header. */
.about-studio-director-button {
    display: inline-flex;
    min-height: 52px;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 0 25px;
    border: 1px solid #0b0d16;
    border-radius: 999px;
    color: #fff;
    background: #0b0d16;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .25px;
    text-transform: uppercase;
    box-shadow: 0 14px 30px rgba(9,11,24,.14);
    transition:
        transform .2s ease,
        box-shadow .2s ease,
        background .2s ease;
}

.about-studio-director-button span {
    font-size: 16px;
    line-height: 1;
    transition: transform .2s ease;
}

@media (hover:hover) and (pointer:fine) {
    .about-studio-director-button:hover {
        transform: translateY(-2px);
        background: #15182a;
        box-shadow: 0 18px 36px rgba(9,11,24,.20);
    }

    .about-studio-director-button:hover span {
        transform: translate(2px,-2px);
    }
}

.about-studio-director-button:focus-visible {
    outline: 2px solid var(--purple);
    outline-offset: 3px;
}

@media (max-width: 700px) {
    .page-cta .cta-actions {
        width: 100%;
    }

    .page-cta .cta-actions .button,
    .about-studio-director-button {
        width: 100%;
    }
}



/* =========================================================
   MEET OUR TEAM — DESK DIVAS + CTA
========================================================= */

/* The Desk Divas are intentionally always the final team card and do not use a photo. */
.team-desk-divas {
    position: relative;
    overflow: hidden;
    min-height: 100%;
    color: #fff;
    border-color: rgba(116,71,255,.18);
    background:
        radial-gradient(circle at 84% 10%, rgba(61,178,255,.28), transparent 30%),
        radial-gradient(circle at 12% 94%, rgba(153,67,255,.28), transparent 34%),
        linear-gradient(135deg, #111426 0%, #2b1b5a 55%, #123f73 100%);
}

.team-desk-divas::after {
    content: "";
    position: absolute;
    right: -52px;
    bottom: -66px;
    width: 170px;
    height: 170px;
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 50%;
    background: rgba(255,255,255,.035);
}

.team-desk-divas-inner {
    position: relative;
    z-index: 2;
    display: flex;
    min-height: 100%;
    flex-direction: column;
    justify-content: center;
    padding: 34px 30px;
}

.team-desk-divas .team-role {
    color: #c9d5ff;
}

.team-desk-divas h3 {
    margin: 0;
    color: #fff;
    font-size: clamp(27px,2.2vw,34px);
    line-height: 1.05;
}

.team-desk-divas p {
    max-width: 300px;
    margin: 11px 0 0;
    color: rgba(255,255,255,.72);
    font-size: 13px;
    line-height: 1.65;
}

.team-desk-divas-list {
    display: grid;
    gap: 10px;
    margin-top: 26px;
}

.team-desk-divas-list span {
    display: flex;
    min-height: 44px;
    align-items: center;
    padding: 10px 14px;
    border: 1px solid rgba(255,255,255,.13);
    border-radius: 13px;
    color: #fff;
    background: rgba(255,255,255,.07);
    font-size: 13px;
    font-weight: 800;
}

/* Dark Studio Director pill to match the header action. */
.team-studio-director-button {
    display: inline-flex;
    min-height: 52px;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 0 25px;
    border: 1px solid #0b0d16;
    border-radius: 999px;
    color: #fff;
    background: #0b0d16;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .25px;
    text-transform: uppercase;
    box-shadow: 0 14px 30px rgba(0,0,0,.16);
    transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
}

.team-studio-director-button span {
    font-size: 16px;
    line-height: 1;
    transition: transform .2s ease;
}

@media (hover:hover) and (pointer:fine) {
    .team-studio-director-button:hover {
        transform: translateY(-2px);
        background: #171a2c;
        box-shadow: 0 18px 36px rgba(0,0,0,.22);
    }

    .team-studio-director-button:hover span {
        transform: translate(2px,-2px);
    }
}

.team-studio-director-button:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 3px;
}

@media (max-width: 700px) {
    .team-desk-divas {
        min-height: 0;
    }

    .team-desk-divas-inner {
        padding: 26px 22px;
    }

    .team-desk-divas p {
        max-width: none;
    }

    .team-cta .cta-actions {
        width: 100%;
    }

    .team-cta .cta-actions .button,
    .team-studio-director-button {
        width: 100%;
    }
}



/* =========================================================
   PERFORMANCE PAGE — NUMBERLESS CARDS + CTA CLEANUP
========================================================= */

.performance-featured-card {
    grid-template-columns: minmax(0, 1fr);
    min-height: 168px;
}

.performance-featured-copy {
    display: flex;
    min-width: 0;
    flex-direction: column;
    justify-content: center;
}

.performance-featured-copy .performance-card-pill {
    grid-column: auto;
    margin-top: 15px;
}

.performance-card {
    display: flex;
    min-height: 200px;
    flex-direction: column;
    justify-content: space-between;
    gap: 18px;
}

.performance-card > div {
    min-width: 0;
}

.performance-card .performance-card-pill {
    grid-column: auto;
    margin-top: 0;
}

.performance-studio-director-button {
    display: inline-flex;
    min-height: 52px;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 0 25px;
    border: 1px solid #0b0d16;
    border-radius: 999px;
    color: #fff;
    background: #0b0d16;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .25px;
    text-transform: uppercase;
    box-shadow: 0 14px 30px rgba(9,11,24,.14);
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.performance-studio-director-button span {
    font-size: 16px;
    line-height: 1;
    transition: transform .2s ease;
}

@media (hover:hover) and (pointer:fine) {
    .performance-studio-director-button:hover {
        transform: translateY(-2px);
        background: #15182a;
        box-shadow: 0 18px 36px rgba(9,11,24,.20);
    }

    .performance-studio-director-button:hover span {
        transform: translate(2px,-2px);
    }
}

.performance-studio-director-button:focus-visible {
    outline: 2px solid var(--purple);
    outline-offset: 3px;
}

@media (max-width: 1000px) {
    .performance-featured-card {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    .performance-card {
        min-height: 0;
    }

    .performance-cta .cta-actions {
        width: 100%;
    }

    .performance-cta .cta-actions .button,
    .performance-studio-director-button {
        width: 100%;
    }
}



/* =========================================================
   REGISTRATION PAGE — GUIDED FLOW V4
========================================================= */

.registration-step-card-expanded {
    align-items: start;
}

.registration-step-card-expanded .registration-step-content {
    align-self: stretch;
}

.registration-info-accordion {
    display: grid;
    gap: 10px;
    margin-top: 24px;
}

.registration-info-item {
    overflow: hidden;
    border: 1px solid rgba(116,71,255,.13);
    border-radius: 16px;
    background: rgba(255,255,255,.82);
}

.registration-info-item summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 16px 18px;
    cursor: pointer;
    list-style: none;
    color: var(--black);
    font-size: 13px;
    font-weight: 900;
}

.registration-info-item summary::-webkit-details-marker {
    display: none;
}

.registration-info-item summary span {
    display: grid;
    width: 26px;
    height: 26px;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: linear-gradient(135deg,var(--purple),var(--blue));
    font-size: 18px;
    font-weight: 500;
    line-height: 1;
    transition: transform .2s ease;
}

.registration-info-item[open] summary span {
    transform: rotate(45deg);
}

.registration-info-answer {
    padding: 0 18px 17px;
}

.registration-info-answer p {
    max-width: 760px;
    font-size: 12.5px;
    line-height: 1.7;
}

.registration-full-programs-link {
    margin-top: 18px !important;
}

.registration-class-finder {
    margin-top: 24px;
    padding: 22px;
    border: 1px solid rgba(52,120,255,.14);
    border-radius: 20px;
    background:
        radial-gradient(circle at 92% 8%,rgba(52,120,255,.08),transparent 30%),
        linear-gradient(145deg,#fff,#f8fbff);
}

.registration-finder-fields {
    display: grid;
    grid-template-columns: .72fr 1.28fr;
    gap: 14px;
}

.registration-finder-field {
    display: grid;
    gap: 8px;
}

.registration-finder-field > span,
.registration-level-picker legend,
.registration-finder-action span {
    color: var(--black);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .45px;
}

.registration-finder-field select,
.registration-age-shell input {
    width: 100%;
    min-height: 54px;
    border: 1px solid rgba(116,71,255,.16);
    border-radius: 15px;
    color: var(--black);
    background: #fff;
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    outline: none;
}

.registration-finder-field select {
    padding: 0 42px 0 14px;
    cursor: pointer;
}

.registration-age-shell {
    position: relative;
    display: flex;
    align-items: center;
}

.registration-age-shell input {
    padding: 0 88px 0 14px;
    appearance: textfield;
}

.registration-age-shell input::-webkit-outer-spin-button,
.registration-age-shell input::-webkit-inner-spin-button {
    margin: 0;
    appearance: none;
}

.registration-age-shell small {
    position: absolute;
    right: 14px;
    color: var(--gray-500);
    font-size: 9px;
    font-weight: 900;
    pointer-events: none;
}

.registration-finder-field select:focus,
.registration-age-shell input:focus {
    border-color: rgba(116,71,255,.48);
    box-shadow: 0 0 0 4px rgba(116,71,255,.08);
}

.registration-age-shell input.is-valid {
    border-color: rgba(42,156,101,.30);
}

.registration-age-shell input.is-invalid {
    border-color: rgba(185,55,72,.32);
    box-shadow: 0 0 0 4px rgba(185,55,72,.055);
}

.registration-level-picker {
    margin: 20px 0 0;
    padding: 0;
    border: 0;
}

.registration-level-picker legend {
    margin-bottom: 10px;
}

.registration-level-picker legend span {
    margin-left: 6px;
    color: var(--purple);
    font-size: 8px;
    text-transform: uppercase;
}

.registration-level-options {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 10px;
}

.registration-level-option {
    min-height: 78px;
    padding: 13px 14px;
    text-align: left;
    border: 1px solid rgba(116,71,255,.14);
    border-radius: 15px;
    color: var(--black);
    background: rgba(255,255,255,.92);
    cursor: pointer;
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
}

.registration-level-option strong,
.registration-level-option small {
    display: block;
}

.registration-level-option strong {
    font-size: 11px;
    line-height: 1.25;
}

.registration-level-option small {
    margin-top: 6px;
    color: var(--gray-600);
    font-size: 9px;
    line-height: 1.35;
}

.registration-level-option.is-selected {
    color: #fff;
    border-color: transparent;
    background:
        radial-gradient(circle at 88% 10%,rgba(69,175,255,.28),transparent 34%),
        linear-gradient(135deg,#17182a,#3d287f 58%,#15518d);
    box-shadow: 0 13px 28px rgba(33,33,74,.16);
    transform: translateY(-2px);
}

.registration-level-option.is-selected small {
    color: rgba(255,255,255,.72);
}

.registration-finder-action {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-top: 20px;
    padding: 17px 18px;
    border: 1px solid rgba(116,71,255,.10);
    border-radius: 16px;
    background: rgba(255,255,255,.84);
}

.registration-finder-action > div {
    min-width: 0;
}

.registration-finder-action span {
    display: block;
    color: var(--purple);
    text-transform: uppercase;
}

.registration-finder-action strong {
    display: block;
    margin-top: 4px;
    color: var(--black);
    font-size: 13px;
    line-height: 1.4;
}

.registration-finder-button {
    flex: 0 0 auto;
    min-width: 150px;
}

.registration-finder-button.is-disabled {
    pointer-events: none;
    opacity: .45;
    filter: grayscale(.15);
}

.registration-placement-note {
    margin-top: 14px !important;
    padding-left: 14px;
    border-left: 3px solid var(--purple);
    font-size: 11px !important;
    line-height: 1.6 !important;
}

.registration-placement-note strong {
    color: var(--black);
}

@media (hover:hover) and (pointer:fine) {
    .registration-level-option:hover:not(.is-selected) {
        transform: translateY(-2px);
        border-color: rgba(116,71,255,.28);
        box-shadow: 0 9px 20px rgba(36,40,80,.08);
    }
}

@media (max-width: 900px) {
    .registration-finder-fields {
        grid-template-columns: 1fr;
    }

    .registration-level-options {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }
}

@media (max-width: 760px) {
    .registration-step-card-expanded {
        grid-template-columns: 72px minmax(0,1fr);
    }

    .registration-class-finder {
        padding: 17px;
    }

    .registration-level-options {
        grid-template-columns: 1fr;
    }

    .registration-level-option {
        min-height: 0;
    }

    .registration-finder-action {
        align-items: stretch;
        flex-direction: column;
    }

    .registration-finder-button {
        width: 100%;
    }
}

@media (max-width: 520px) {
    .registration-step-card-expanded {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .registration-step-card-expanded .registration-step-top {
        flex-direction: row;
        align-items: center;
        justify-content: flex-start;
        padding-right: 0;
        padding-bottom: 12px;
        border-right: 0;
        border-bottom: 1px solid var(--gray-200);
    }

    .registration-step-card-expanded .registration-step-number {
        font-size: 31px;
    }
}



/* =========================================================
   REGISTRATION PAGE — INFO DETAILS + PROGRAM MODAL
========================================================= */

.registration-program-options {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 10px;
    margin-top: 16px;
}

.registration-program-chip {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    min-height: 52px;
    padding: 12px 14px;
    border: 1px solid rgba(116,71,255,.14);
    border-radius: 14px;
    color: var(--black);
    background: linear-gradient(135deg,#fff,#faf8ff);
    text-align: left;
    font: inherit;
    font-size: 11px;
    font-weight: 900;
    cursor: pointer;
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.registration-program-chip b {
    display: grid;
    width: 24px;
    height: 24px;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: linear-gradient(135deg,var(--purple),var(--blue));
    font-size: 16px;
    font-weight: 500;
}

.registration-level-summary-row,
.registration-age-group-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 15px;
}

.registration-level-summary-row span,
.registration-age-group-pills span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 34px;
    padding: 8px 11px;
    border-radius: 999px;
    color: var(--purple);
    background: var(--purple-soft);
    font-size: 9px;
    font-weight: 900;
    line-height: 1.25;
}

.registration-level-summary-row span b {
    display: grid;
    width: 20px;
    height: 20px;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: linear-gradient(135deg,var(--purple),var(--blue));
    font-size: 9px;
}

.registration-age-followup {
    margin-top: 14px !important;
}

.registration-program-modal {
    position: fixed;
    inset: 0;
    z-index: 10050;
    display: grid;
    place-items: center;
    padding: 24px;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .2s ease, visibility .2s ease;
}

.registration-program-modal.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.registration-program-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(7,8,18,.72);
    backdrop-filter: blur(8px);
}

.registration-program-modal-dialog {
    position: relative;
    z-index: 2;
    width: min(100%, 620px);
    padding: 34px;
    border: 1px solid rgba(116,71,255,.18);
    border-radius: 26px;
    background:
        radial-gradient(circle at 92% 6%,rgba(52,120,255,.12),transparent 28%),
        radial-gradient(circle at 8% 100%,rgba(116,71,255,.10),transparent 30%),
        #fff;
    box-shadow: 0 32px 90px rgba(6,8,25,.32);
    transform: translateY(14px) scale(.985);
    transition: transform .22s cubic-bezier(.22,.8,.2,1);
}

.registration-program-modal.is-open .registration-program-modal-dialog {
    transform: translateY(0) scale(1);
}

.registration-program-modal-dialog h2 {
    margin: 0;
    color: var(--black);
    font-size: clamp(28px,3vw,40px);
    line-height: 1.05;
}

.registration-program-modal-dialog p {
    margin-top: 16px;
    color: var(--gray-700);
    font-size: 14px;
    line-height: 1.75;
}

.registration-program-modal-close {
    position: absolute;
    top: 16px;
    right: 16px;
    display: grid;
    width: 40px;
    height: 40px;
    place-items: center;
    border: 1px solid var(--gray-200);
    border-radius: 50%;
    color: var(--black);
    background: rgba(255,255,255,.92);
    font-size: 26px;
    cursor: pointer;
}

body.registration-program-modal-open {
    overflow: hidden;
}

/* Make the active See Classes button unmistakably readable. */
.registration-finder-button:not(.is-disabled) {
    color: #fff !important;
    background:
        linear-gradient(120deg,#6f43ff 0%,#347cff 58%,#175cae 100%) !important;
    border-color: transparent !important;
    box-shadow: 0 14px 28px rgba(67,78,212,.28) !important;
    text-shadow: 0 1px 1px rgba(0,0,0,.12);
}

.registration-finder-button:not(.is-disabled) span {
    color: #fff !important;
}

@media (hover:hover) and (pointer:fine) {
    .registration-program-chip:hover {
        transform: translateY(-2px);
        border-color: rgba(116,71,255,.28);
        box-shadow: 0 9px 20px rgba(36,40,80,.08);
    }

    .registration-finder-button:not(.is-disabled):hover {
        transform: translateY(-2px);
        box-shadow: 0 18px 34px rgba(67,78,212,.34) !important;
    }
}

@media (max-width: 700px) {
    .registration-program-options {
        grid-template-columns: 1fr;
    }

    .registration-program-modal {
        padding: 14px;
    }

    .registration-program-modal-dialog {
        padding: 30px 22px 24px;
        border-radius: 22px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .registration-program-modal,
    .registration-program-modal-dialog,
    .registration-program-chip,
    .registration-finder-button {
        transition: none;
    }
}



/* =========================================================
   REGISTRATION FLOW — ALIGN ARROW DOTS WITH STEP CARDS
========================================================= */

.registration-arrow-line::before,
.registration-arrow-line::after {
    display: none !important;
}

.registration-arrow-step-dot {
    position: absolute;
    z-index: 3;
    left: 50%;
    width: 38px;
    height: 38px;
    transform: translate(-50%, -50%);
    border: 8px solid rgba(255,255,255,.96);
    border-radius: 50%;
    box-shadow: 0 8px 20px rgba(68,57,157,.18);
    transition: top .28s ease;
}

.registration-arrow-step-dot-1 {
    top: 120px;
    background: var(--purple);
}

.registration-arrow-step-dot-2 {
    top: 360px;
    background: var(--blue);
}

.registration-arrow-step-dot-3 {
    top: 600px;
    background: #24233d;
}

@media (max-width: 760px) {
    .registration-arrow-step-dot {
        display: none;
    }
}



/* PROGRAMS PAGE — FINAL CONTENT FLOW + INTERACTIONS */
.program-style-list{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 7px;margin-top:10px;color:var(--black);font-size:24px;font-weight:900;line-height:1.25}
.program-style-tip{position:relative;display:inline-flex;align-items:center;padding:0;border:0;color:inherit;background:transparent;font:inherit;cursor:help}
.program-style-tip::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;border-radius:999px;background:linear-gradient(90deg,var(--purple),var(--blue));transform:scaleX(0);transform-origin:left;transition:transform .18s ease}
.program-style-tip>span{position:absolute;z-index:30;left:50%;bottom:calc(100% + 13px);width:min(260px,72vw);padding:12px 14px;border:1px solid rgba(116,71,255,.18);border-radius:13px;color:#fff;background:linear-gradient(135deg,#17182a,#3b277f 58%,#154d86);box-shadow:0 14px 34px rgba(15,17,38,.22);font-size:11px;font-weight:700;line-height:1.5;text-align:left;opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,8px);transition:opacity .18s ease,transform .18s ease,visibility .18s ease}
.program-style-tip>span::after{content:"";position:absolute;left:50%;top:100%;width:10px;height:10px;background:#2c2462;transform:translate(-50%,-5px) rotate(45deg)}
.program-style-tip:hover::after,.program-style-tip:focus-visible::after{transform:scaleX(1)}
.program-style-tip:hover>span,.program-style-tip:focus-visible>span{opacity:1;visibility:visible;transform:translate(-50%,0)}
.program-style-tip:focus-visible{outline:2px solid var(--purple);outline-offset:4px;border-radius:4px}
.program-search-fields-main{grid-template-columns:.8fr 1.2fr}
.program-search-level-picker{margin:20px 0 0;padding:0;border:0}
.program-search-level-picker legend{margin-bottom:10px;color:var(--black);font-size:10px;font-weight:900;letter-spacing:.45px}
.program-search-level-picker legend span{margin-left:6px;color:var(--purple);font-size:8px;text-transform:uppercase}
.program-search-level-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.program-search-level-option{min-height:78px;padding:13px 14px;text-align:left;border:1px solid rgba(116,71,255,.14);border-radius:15px;color:var(--black);background:rgba(255,255,255,.92);cursor:pointer;transition:.18s ease}
.program-search-level-option strong,.program-search-level-option small{display:block}
.program-search-level-option strong{font-size:11px;line-height:1.25}.program-search-level-option small{margin-top:6px;color:var(--gray-600);font-size:9px;line-height:1.35}
.program-search-level-option.is-selected{color:#fff;border-color:transparent;background:radial-gradient(circle at 88% 10%,rgba(69,175,255,.28),transparent 34%),linear-gradient(135deg,#17182a,#3d287f 58%,#15518d);box-shadow:0 13px 28px rgba(33,33,74,.16);transform:translateY(-2px)}
.program-search-level-option.is-selected small{color:rgba(255,255,255,.72)}
.program-search-card .class-finder-button:not(.is-disabled){color:#fff!important;background:linear-gradient(120deg,#6f43ff 0%,#347cff 58%,#175cae 100%)!important;border-color:transparent!important;box-shadow:0 14px 28px rgba(67,78,212,.28)!important}
@media(hover:hover) and (pointer:fine){.program-search-level-option:hover:not(.is-selected){transform:translateY(-2px);border-color:rgba(116,71,255,.28);box-shadow:0 9px 20px rgba(36,40,80,.08)}}
@media(max-width:800px){.program-search-fields-main{grid-template-columns:1fr}.program-search-level-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.program-style-list{gap:5px 6px;font-size:20px}.program-style-tip>span{position:fixed;left:50%;bottom:22px;width:min(88vw,360px)}.program-style-tip>span::after{display:none}.program-search-level-options{grid-template-columns:1fr}.program-search-level-option{min-height:0}}



/* PROGRAMS PAGE — make dance-style descriptions visibly interactive */
.program-style-tip {
    text-decoration-line: underline;
    text-decoration-style: dotted;
    text-decoration-color: rgba(116,71,255,.58);
    text-decoration-thickness: 2px;
    text-underline-offset: 5px;
    transition: color .18s ease, text-decoration-color .18s ease;
}

.program-style-tip::before {
    content: "?";
    display: inline-grid;
    width: 16px;
    height: 16px;
    margin-right: 5px;
    place-items: center;
    border: 1px solid rgba(116,71,255,.24);
    border-radius: 50%;
    color: var(--purple);
    background: rgba(116,71,255,.07);
    font-size: 9px;
    font-weight: 900;
    line-height: 1;
    vertical-align: middle;
}

@media (hover:hover) and (pointer:fine) {
    .program-style-tip:hover {
        color: var(--purple);
        text-decoration-color: var(--purple);
    }
}

@media (max-width: 600px), (hover:none) {
    .program-style-tip {
        text-decoration-style: solid;
        text-decoration-color: rgba(116,71,255,.72);
    }
}



/* =========================================================
   MEET OUR TEAM — PORTRAIT CROP FIX
   Keep the existing card/photo dimensions. These selected
   portraits use contain so more of the original photo is visible
   instead of being aggressively cropped by object-fit: cover.
========================================================= */

.team-photo-chelarrie .team-photo-image,
.team-photo-alex .team-photo-image,
.team-photo-brianna .team-photo-image,
.team-photo-taya .team-photo-image,
.team-photo-geana .team-photo-image {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center center;
    transform: none;
    background: #f7f7f8;
}

/* Taya especially needs the lower part of the portrait visible. */
.team-photo-taya .team-photo-image {
    object-position: center center;
}

/* Keep the hover effect subtle without re-cropping the portrait. */
@media (hover:hover) and (pointer:fine) {
    .team-member:hover .team-photo-chelarrie .team-photo-image,
    .team-member:hover .team-photo-alex .team-photo-image,
    .team-member:hover .team-photo-brianna .team-photo-image,
    .team-member:hover .team-photo-taya .team-photo-image,
    .team-member:hover .team-photo-geana .team-photo-image {
        transform: scale(1.01);
    }
}



/* =========================================================
   REGISTRATION — EXPANDED PROGRAM OPTIONS
========================================================= */
.registration-program-options {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.registration-program-chip:last-child:nth-child(odd) {
    grid-column: 1 / -1;
}

@media (max-width: 700px) {
    .registration-program-options {
        grid-template-columns: 1fr;
    }

    .registration-program-chip:last-child:nth-child(odd) {
        grid-column: auto;
    }
}



/* =========================================================
   MEET OUR TEAM — DESK DIVAS PHOTO LAYOUT
========================================================= */

.team-desk-divas {
    /* Two normal grid columns wide so each of the two portraits
       lands at roughly the same width as one standard team photo. */
    grid-column: span 2;
    min-height: 0;
}

.team-desk-divas-inner {
    justify-content: flex-start;
    padding: 30px;
}

.team-desk-divas > .team-desk-divas-inner > p {
    max-width: 560px;
}

.team-desk-divas-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
    margin-top: 26px;
}

.team-desk-diva-person {
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 20px;
    background: rgba(255,255,255,.07);
    box-shadow: 0 14px 34px rgba(5,8,24,.16);
}

.team-desk-diva-photo {
    position: relative;
    overflow: hidden;
    width: 100%;
    aspect-ratio: 1 / 1;
    background: #fff;
}

.team-desk-diva-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 18%;
    filter: grayscale(.08) saturate(.92) contrast(1.03);
    transition: transform .35s ease, filter .3s ease;
}

.team-desk-diva-person > span {
    display: flex;
    min-height: 52px;
    align-items: center;
    justify-content: center;
    padding: 12px 16px;
    color: #fff;
    background: rgba(255,255,255,.08);
    border-top: 1px solid rgba(255,255,255,.12);
    font-size: 13px;
    font-weight: 900;
    text-align: center;
}

@media (hover:hover) and (pointer:fine) {
    .team-desk-diva-person:hover .team-desk-diva-photo img {
        transform: scale(1.025);
        filter: grayscale(0) saturate(1) contrast(1.04);
    }
}

@media (max-width: 1000px) {
    .team-desk-divas {
        grid-column: 1 / -1;
    }
}

@media (max-width: 700px) {
    .team-desk-divas {
        grid-column: auto;
    }

    .team-desk-divas-inner {
        padding: 24px 20px;
    }

    .team-desk-divas-list {
        grid-template-columns: 1fr;
        gap: 14px;
        margin-top: 22px;
    }

    .team-desk-diva-person {
        display: grid;
        grid-template-columns: 118px minmax(0,1fr);
        min-height: 150px;
        border-radius: 18px;
    }

    .team-desk-diva-photo {
        width: 118px;
        height: 150px;
        aspect-ratio: auto;
    }

    .team-desk-diva-person > span {
        min-height: 150px;
        justify-content: flex-start;
        padding: 18px;
        border-top: 0;
        border-left: 1px solid rgba(255,255,255,.12);
        text-align: left;
    }
}

