﻿/* ==================================================
   INFINITUM EDUCATION - HOMEPAGE
   Brand palette (official guidelines):
   #000B22  Rich Black       - primary dark
   #0133A0  Dark Powder Blue - accent dark
   #00A0DF  Vivid Cerulean   - brand action
   #006A99  Accessible cyan  - text on white (6:1)
   #FFC60B  Mikado Yellow    - YEP warm accent
   #CC9E00  Yellow dark      - YEP hover
   Montserrat - sole typeface
================================================== */
/* ══ WORDPRESS / OCEANWP ISOLATION ══
   Prevents OceanWP parent theme from overriding Infinitum layout.
   Must appear before all other rules. */
html { overflow-x: hidden; max-width: none !important; }
body.infinitum-education-full-page { max-width: none !important; width: 100% !important; overflow-x: hidden; background: #00040E !important; padding-bottom: 0 !important; margin-bottom: 0 !important; }
body.admin-bar { margin-top: 0 !important; }
/* WordPress core adds html.admin-bar { margin-top: 32px } for the admin toolbar.
   Zero it out so the toolbar floats over our fixed nav without pushing content down. */
html.admin-bar { margin-top: 0 !important; }
@media screen and (max-width: 782px) { html.admin-bar { margin-top: 0 !important; } }
/* OceanWP topbar + sticky-header JS overrides body.style.paddingTop at runtime.
   This !important rule wins over any OceanWP CSS rule; the companion JS guard
   removes inline styles so this value is always applied. */
body.infinitum-education-full-page { padding-top: 76px !important; }
body.infinitum-education-full-page h1,
body.infinitum-education-full-page h2,
body.infinitum-education-full-page h3,
body.infinitum-education-full-page h4 { font-family: 'Montserrat', system-ui, sans-serif !important; }
body.infinitum-education-full-page p,
body.infinitum-education-full-page li { font-family: 'Montserrat', system-ui, sans-serif !important; color: inherit; }
body.infinitum-education-full-page a,
body.infinitum-education-full-page a:visited { text-decoration: none; }
body.infinitum-education-full-page button,
body.infinitum-education-full-page input,
body.infinitum-education-full-page select,
body.infinitum-education-full-page textarea { font-family: 'Montserrat', system-ui, sans-serif !important; }
/* Restore inline color styles that OceanWP !important rules override */
body.infinitum-education-full-page [style*="color:var(--white)"],
body.infinitum-education-full-page [style*="color: var(--white)"] { color: #ffffff !important; }
body.infinitum-education-full-page [style*="color:rgba(255,255,255"] { color: rgba(255,255,255,0.7) !important; }
body.infinitum-education-full-page [style*="color:var(--cyan)"],
body.infinitum-education-full-page [style*="color: var(--cyan)"] { color: #00A0DF !important; }
body.infinitum-education-full-page [style*="color:var(--cyan-txt)"],
body.infinitum-education-full-page [style*="color: var(--cyan-txt)"] { color: #006A99 !important; }
body.infinitum-education-full-page [style*="color:var(--ink2)"],
body.infinitum-education-full-page [style*="color: var(--ink2)"] { color: #2A3A52 !important; }
body.infinitum-education-full-page [style*="color:var(--ink3)"],
body.infinitum-education-full-page [style*="color: var(--ink3)"] { color: #4A5D72 !important; }
/* Force .rev elements visible if JS scroll-reveal hasn't fired */
body.infinitum-education-full-page .rev { opacity: 1 !important; transform: none !important; }

:root {
  --black:    #000B22;
  --blue:     #0133A0;
  --cyan:     #00A0DF;
  --cyan-dk:  #0080B8;
  --cyan-txt: #006A99;
  --cyan-text: #006A99;
  --cyan-text-lt: #005A82;
  --cyan-lt:  #E0F4FC;
  --yellow:   #FFC60B;
  --yellow-dk:#CC9E00;
  --yellow-lt:#FFF8DC;
  --white:    #FFFFFF;
  --off:      #F4F6F8;
  --light:    #EEF3F8;
  --rule:     #D8E2EC;
  --ink:      #000B22;
  --ink2:     #2A3A52;
  --ink3:     #4A5D72;
  --sans:     'Montserrat', system-ui, sans-serif;
  --max:      none;
  --pad:      clamp(1.5rem, 6vw, 7rem);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: var(--sans); background: var(--white); color: var(--ink); line-height: 1.65; -webkit-font-smoothing: antialiased; font-size: 17px; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }

/* -- NAV -- */
.nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 200;
  background: var(--black); height: 76px;
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 clamp(1rem, 2.5vw, 2.5rem);
  border-bottom: 1px solid rgba(0,160,223,.12);
  transition: border-color .3s, box-shadow .3s;
  gap: .5rem;
}
.nav.scrolled { box-shadow: 0 4px 24px rgba(0,0,0,.35); border-bottom-color: rgba(0,160,223,.22); }
.nav-logo { display: flex; align-items: center; gap: .75rem; cursor: pointer; text-decoration: none; flex-shrink: 0; }
.nav-logo img { height: 46px; width: auto; }
.nav-logo-text { display: flex; flex-direction: column; }
.nav-logo-name { font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--white); line-height: 1.1; }
.nav-logo-tag { font-size: .58rem; font-weight: 400; letter-spacing: .12em; color: rgba(255,255,255,.38); text-transform: uppercase; margin-top: 2px; }
.nav-links { display: flex; gap: 0; }
.nav-link {
  padding: 0 .7rem; height: 76px;
  display: flex; align-items: center;
  font-size: .67rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;
  white-space: nowrap;
  cursor: pointer;
  border-bottom: 2px solid transparent;
  transition: color .2s, border-color .2s;
  text-decoration: none !important;
}
/* .nav parent raises specificity above OceanWP's a/body link color overrides */
.nav .nav-link,
.nav .nav-links a { color: rgba(255,255,255,.55) !important; text-decoration: none !important; }
.nav .nav-link:hover,
.nav .nav-links a:hover { color: rgba(255,255,255,.9) !important; }
.nav .nav-link.active,
.nav .nav-links a.active { color: #ffffff !important; border-bottom-color: var(--cyan); }
.nav-ctas { display: flex; gap: .65rem; align-items: center; flex-shrink: 0; }
.nav-btn {
  padding: .48rem .85rem; border-radius: 2px;
  font-size: .65rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  white-space: nowrap;
  cursor: pointer; border: none; font-family: var(--sans);
  transition: all .2s;
}
.nav-btn-ghost { background: transparent; color: rgba(255,255,255,.65); border: 1px solid rgba(255,255,255,.22); }
.nav-btn-ghost:hover { border-color: rgba(255,255,255,.6); color: var(--white); }
.nav-btn-primary { background: var(--cyan); color: var(--white); }
.nav-btn-primary:hover { background: var(--cyan-dk); transform: translateY(-1px); }
.nav-mobile-btn { display: none; }

/* -- HERO -- */
.hero {
  min-height: 100svh; position: relative; overflow: hidden;
  background: var(--black); color: var(--white);
  display: flex; align-items: flex-end;
}
.hero-bg {
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 60% 65% at 88% 8%, rgba(1,51,160,.4) 0%, transparent 52%),
    radial-gradient(ellipse 40% 45% at 5% 90%, rgba(0,160,223,.1) 0%, transparent 48%),
    linear-gradient(152deg, #000B22 0%, #000918 58%, #000510 100%);
}
.hero-grid {
  position: absolute; inset: 0; opacity: .022;
  background-image: linear-gradient(rgba(0,160,223,1) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,160,223,1) 1px, transparent 1px);
  background-size: 72px 72px;
}
/* Decorative large circle - atmospheric depth */
.hero-circle {
  position: absolute; top: -15%; right: -8%;
  width: 55vw; max-width: 750px; aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(1,51,160,.18) 0%, transparent 70%);
  pointer-events: none;
}
.hero-inner {
  position: relative; z-index: 2;
  max-width:none; margin: 0 auto; width: 100%;
  padding: var(--pad) var(--pad) clamp(3.5rem, 7vw, 5.5rem);
  padding-top: calc(76px + clamp(4rem, 8vw, 7rem));
}
.hero-label {
  display: inline-flex; align-items: center; gap: .5rem;
  font-size: .6rem; font-weight: 700; letter-spacing: .28em; text-transform: uppercase;
  color: rgba(0,160,223,.8); margin-bottom: 1.6rem;
}
.hero-label::before {
  content: ''; width: 22px; height: 1.5px; background: var(--cyan); flex-shrink: 0;
}
.hero-h1 {
  font-size: clamp(2.8rem, 6.5vw, 5rem);
  font-weight: 800; line-height: 1.01; letter-spacing: -.03em;
  max-width: 14ch; margin-bottom: 1.6rem;
}
.hero-h1 em { font-style: italic; color: var(--cyan); font-weight: 700; }
/* Behavioural insight: the word "capability" connects both audiences -
   credible for parents, outcome-driven for founders */
.hero-sub {
  font-size: clamp(.9rem, 1.5vw, 1.05rem); font-weight: 300;
  color: rgba(255,255,255,.62); max-width: 50ch; line-height: 1.85;
  margin-bottom: 3rem;
}
.hero-ctas { display: flex; gap: 1rem; flex-wrap: wrap; margin-bottom: 4.5rem; }
.btn {
  display: inline-flex; align-items: center; gap: .5rem;
  padding: .88rem 2rem; border-radius: 2px;
  font-family: var(--sans); font-size: .72rem; font-weight: 700;
  letter-spacing: .1em; text-transform: uppercase;
  border: none; cursor: pointer; transition: all .2s;
}
.btn-c { background: var(--cyan); color: var(--white); }
.btn-c:hover { background: var(--cyan-dk); transform: translateY(-2px); box-shadow: 0 8px 22px rgba(0,160,223,.3); }
.btn-y { background: var(--yellow); color: var(--black); }
.btn-y:hover { background: var(--yellow-dk); transform: translateY(-2px); box-shadow: 0 8px 22px rgba(255,198,11,.32); }
.btn-ow { background: transparent; color: var(--white); border: 1.5px solid rgba(255,255,255,.32); }
.btn-ow:hover { border-color: rgba(255,255,255,.72); background: rgba(255,255,255,.06); }
/* Trust bar */
.hero-trust {
  display: grid; grid-template-columns: repeat(4,1fr);
  border-top: 1px solid rgba(255,255,255,.08); padding-top: 1.8rem;
  gap: 1rem;
}
.tr-item {}
.tr-lbl { font-size: .58rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--cyan); margin-bottom: .22rem; }
.tr-val { font-size: .84rem; font-weight: 500; color: rgba(255,255,255,.82); }

/* -- PROGRAMME SELECTOR - behavioural anchor point -- */
/* Two-card layout routes audiences immediately after hero */
.prog-sec { padding: clamp(2rem,4vw,3rem) var(--pad) clamp(4rem,9vw,6.5rem); background: var(--off); }
.prog-inner { max-width:none; margin: 0 auto; }
.sec-ey { font-size: .9rem; font-weight: 700; letter-spacing: .28em; text-transform: uppercase; color: var(--cyan-txt); margin-bottom: .65rem; display: block; }
.sec-h { font-size: clamp(1.8rem, 3.2vw, 2.6rem); font-weight: 800; color: var(--black); line-height: 1.08; letter-spacing: -.02em; margin-bottom: .5rem; }
.sec-rule { width: 2.8rem; height: 3px; background: var(--cyan); margin: 1rem 0 1.8rem; border-radius: 2px; }
.prog-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; margin-top: 2.8rem; }
.prog-card {
  position: relative; overflow: hidden;
  display: flex; flex-direction: column;
  background: var(--white); border: 1px solid var(--rule);
  padding: 2.8rem 2.6rem 2.4rem;
  transition: transform .22s, box-shadow .22s;
  cursor: pointer;
}
.prog-card:hover { transform: translateY(-4px); box-shadow: 0 18px 42px rgba(0,11,34,.12); }
.prog-card::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px;
}
.prog-card.ifp::before { background: var(--cyan); }
.prog-card.yep::before { background: var(--yellow); }
.prog-card-tag { font-size: .6rem; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; margin-bottom: .75rem; }
.prog-card.ifp .prog-card-tag { color: var(--cyan-txt); }
.prog-card.yep .prog-card-tag { color: #7A5C00; }
.prog-card-title { font-size: clamp(1.4rem, 2.4vw, 1.9rem); font-weight: 800; color: var(--black); letter-spacing: -.02em; line-height: 1.1; margin-bottom: .85rem; }
.prog-card-body { font-size: .98rem; color: var(--ink3); line-height: 1.82; margin-bottom: 1.8rem; max-width: 46ch; }
.prog-card-meta { display: flex; flex-direction: column; gap: .35rem; margin-bottom: 2rem; flex-grow: 1; }
.prog-card-meta-item { display: flex; align-items: center; gap: .5rem; font-size: .86rem; color: var(--ink2); }
.prog-card-meta-item::before { content: ''; width: 5px; height: 5px; border-radius: 50%; flex-shrink: 0; }
.prog-card.ifp .prog-card-meta-item::before { background: var(--cyan); }
.prog-card.yep .prog-card-meta-item::before { background: var(--yellow); }
.prog-card-actions { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; margin-top: .4rem; }
.prog-card-cta {
  display: inline-flex; align-items: center; gap: .55rem;
  align-self: flex-start;
  font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  padding: .72rem 1.5rem; border-radius: 2px;
  transition: all .2s;
}
.prog-card.ifp .prog-card-cta { background: var(--cyan); color: var(--white); }
.prog-card.ifp:hover .prog-card-cta { background: var(--cyan-dk); }
.prog-card.yep .prog-card-cta { background: var(--yellow); color: var(--black); }
.prog-card.yep .prog-card-cta-soft { background: var(--black); color: var(--white); }
.prog-card.yep:hover .prog-card-cta { background: var(--yellow-dk); color: var(--white); }
.prog-card-arrow { transition: transform .2s; }
.prog-card:hover .prog-card-arrow { transform: translateX(4px); }

/* -- CREDIBILITY BAND -- */
/* Behavioural: trust signals compressed into one scannable strip */
.cred-band {
  background: var(--black); padding: 1.05rem var(--pad);
  border-top: 1px solid rgba(255,255,255,.05);
  border-bottom: 1px solid rgba(255,255,255,.05);
}
.cred-inner {
  max-width:none; margin: 0 auto;
  display: grid; grid-template-columns: repeat(3,1fr);
  gap: 0; text-align: center;
}
.cred-item { padding: .35rem 1rem; border-right: 1px solid rgba(255,255,255,.07); }
.cred-item:last-child { border-right: none; }
.cred-n { font-size: 1.85rem; font-weight: 800; color: var(--cyan); line-height: 1; letter-spacing: -.02em; }
.cred-n sup { font-size: .72rem; }
.cred-l { font-size: .68rem; font-weight: 600; color: rgba(255,255,255,.55); margin-top: .25rem; letter-spacing: .03em; }

/* -- FACULTY -- */
/* Behavioural: faculty is the #1 trust signal for both audiences.
   Parents: credibility of educators. Founders: proximity to real operators. */
.fac-sec { padding: clamp(4rem,9vw,6.5rem) var(--pad); background: var(--white); }
.fac-inner { max-width:none; margin: 0 auto; }
.fac-grid { display: grid; grid-template-columns: repeat(5,1fr); gap: 1px; background: var(--rule); margin-top: 2.8rem; border: 1px solid var(--rule); }
.fac-card { background: var(--white); padding: 1.8rem 1.4rem; text-align: center; transition: background .2s; position: relative; }
.fac-card:hover { background: var(--off); z-index: 1; }
.fac-card::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 2px; background: var(--cyan); transform: scaleX(0); transition: transform .25s; }
.fac-card:hover::after { transform: scaleX(1); }
.fac-photo {
  width: 68px; height: 68px; border-radius: 50%; object-fit: cover;
  margin: 0 auto .85rem; border: 2px solid var(--cyan-lt); overflow: hidden;
  display: flex; align-items: center; justify-content: center;
  background: var(--light); font-size: 1.1rem; font-weight: 700; color: var(--cyan-txt);
}
.fac-photo img { width: 100%; height: 100%; object-fit: cover; }
.fac-name { font-size: .8rem; font-weight: 700; color: var(--black); margin-bottom: .18rem; line-height: 1.3; }
.fac-uni { font-size: .67rem; color: var(--ink3); line-height: 1.4; }
.fac-footer { margin-top: 2.5rem; text-align: center; }

/* -- TESTIMONIALS -- */
/* Behavioural: social proof split by audience segment - 
   YEP testimonials first (more numerous, relatable), IFP featured separately */
.test-sec { padding: clamp(4rem,9vw,6.5rem) var(--pad); background: var(--off); }
.test-inner { max-width:none; margin: 0 auto; }
.test-featured {
  background: var(--black); padding: 2.4rem 3rem;
  border: 1px solid rgba(0,160,223,.12);
  border-left: 4px solid var(--cyan); margin-bottom: 1.5rem;
}
.test-feat-label { font-size: .6rem; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; color: var(--yellow); margin-bottom: .55rem; }
.test-feat-quote { font-size: clamp(1rem,1.7vw,1.25rem); font-weight: 300; font-style: italic; color: var(--white); line-height: 1.65; margin-bottom: .9rem; }
.test-feat-name { font-size: .8rem; font-weight: 700; color: var(--cyan); }
.test-feat-origin { font-size: .7rem; color: rgba(255,255,255,.42); margin-top: .1rem; }

.test-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--rule); border: 1px solid var(--rule); }
.test-card { background: var(--white); padding: 1.8rem; transition: box-shadow .2s; }
.test-card:hover { box-shadow: 0 4px 18px rgba(0,0,0,.07); z-index: 1; position: relative; }
.test-tag { font-size: .58rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; margin-bottom: .5rem; }
.test-tag.yep { color: #7A5C00; background:var(--yellow-lt); padding:.2rem .55rem; border-radius:100px; }
.test-tag.ifp { color: var(--cyan-txt); background:var(--cyan-lt); padding:.2rem .55rem; border-radius:100px; }
.test-quote { font-size: .88rem; font-style: italic; color: var(--ink2); line-height: 1.65; border-left: 2px solid var(--cyan); padding-left: .75rem; margin-bottom: .85rem; }
.test-card.yep-t .test-quote { border-color: var(--yellow); }
.test-name { font-size: .74rem; font-weight: 700; color: var(--black); }
.test-origin { font-size: .68rem; color: var(--ink3); }

/* -- ABOUT SNAPSHOT -- */
.about-sec { padding: clamp(4rem,9vw,6.5rem) var(--pad); background: var(--white); }
.about-inner { max-width:none; margin: 0 auto; }
.about-grid { display: grid; grid-template-columns: minmax(0, 900px); gap: 5rem; align-items: center; }
.about-body { font-size: 1rem; color: var(--ink3); line-height: 1.85; margin-bottom: 1.2rem; }
.about-values { display: flex; flex-direction: column; gap: .85rem; margin-top: 1.8rem; }
.av-item { display: flex; align-items: flex-start; gap: .85rem; }
.av-rule { width: 2px; background: var(--cyan); flex-shrink: 0; align-self: stretch; border-radius: 1px; }
.av-rule.y { background: var(--yellow); }
.av-text { font-size: .86rem; color: var(--ink2); line-height: 1.65; }
/* Visual stat cluster on right */
.about-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--rule); border: 1px solid var(--rule); }
.as-cell { background: var(--white); padding: 2rem 1.8rem; }
.as-cell.dk { background: var(--black); }
.as-n { font-size: 2.5rem; font-weight: 800; color: var(--black); line-height: 1; letter-spacing: -.03em; }
.as-cell.dk .as-n { color: var(--cyan); }
.as-l { font-size: .72rem; font-weight: 600; color: var(--ink3); margin-top: .3rem; }
.as-cell.dk .as-l { color: rgba(255,255,255,.55); }

/* -- IFP PRIORITY BANNER -- */
/* Behavioural: scarcity + urgency for the live-now product */
.ifp-banner {
  padding: clamp(3rem,7vw,5rem) var(--pad);
  background: radial-gradient(ellipse 60% 80% at 85% 15%, rgba(1,51,160,.35) 0%, transparent 55%), linear-gradient(152deg, #000B22 0%, #000918 100%);
  color: var(--white);
}
.ifp-banner-inner { max-width:none; margin: 0 auto; display: grid; grid-template-columns: 1fr auto; gap: 4rem; align-items: center; }
.ifp-banner-label { font-size: .6rem; font-weight: 700; letter-spacing: .28em; text-transform: uppercase; color: var(--yellow); margin-bottom: .65rem; }
.ifp-banner-h { font-size: clamp(1.5rem, 2.8vw, 2.2rem); font-weight: 800; color: var(--white); letter-spacing: -.02em; line-height: 1.1; margin-bottom: .75rem; }
.ifp-banner-sub { font-size: .88rem; font-weight: 300; color: rgba(255,255,255,.62); line-height: 1.82; max-width: 52ch; }
.ifp-banner-cta { display: flex; flex-direction: column; align-items: flex-end; gap: .75rem; flex-shrink: 0; }
.ifp-banner-seats { text-align: right; }
.ifp-banner-n { font-size: 2.8rem; font-weight: 800; color: var(--cyan); line-height: 1; letter-spacing: -.04em; }
.ifp-banner-nl { font-size: .7rem; color: rgba(255,255,255,.45); font-weight: 500; margin-top: .2rem; }

/* -- FOOTER -- */
.footer { background: #00040E; padding: 3rem var(--pad) 2rem; color: rgba(255,255,255,.28); }
.footer-inner { max-width:none; margin: 0 auto; }
.footer-top { display: grid; grid-template-columns: 1.55fr .9fr .9fr .9fr 1.1fr; gap: 3rem; padding-bottom: 2.2rem; border-bottom: 1px solid rgba(255,255,255,.06); margin-bottom: 1.6rem; }
.footer-brand-name { font-size: .78rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.68); margin-bottom: .4rem; margin-top: .6rem; }
.footer-brand-name span { color: var(--cyan); }
.footer-brand-desc { font-size: .76rem; line-height: 1.72; margin-bottom: 1.1rem; color: rgba(255,255,255,.38); }
.footer-col-title { font-size: .6rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: rgba(255,255,255,.45); margin-bottom: .9rem; }
.footer-links { display: flex; flex-direction: column; gap: .5rem; }
.footer-links a { font-size: .74rem; color: rgba(255,255,255,.28); transition: color .2s; }
.footer-links a:hover { color: var(--white); }
.footer-bottom { display: flex; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; gap: 1rem; }
.footer-legal { font-size: .64rem; line-height: 1.75; max-width: 68ch; }

/* -- SCROLL REVEALS -- */
.rev { opacity: 0; transform: translateY(18px); transition: opacity .55s ease, transform .55s ease; }
.rev.vis { opacity: 1; transform: none; }
@keyframes fadeUp { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
.fu { animation: fadeUp .6s ease both; }
.d1{animation-delay:.08s}.d2{animation-delay:.2s}.d3{animation-delay:.34s}.d4{animation-delay:.48s}.d5{animation-delay:.62s}

/* -- RESPONSIVE -- */
@media(max-width:960px) {
  .prog-grid, .about-grid, .ifp-banner-inner { grid-template-columns: 1fr; gap: 2.5rem; }
  .fac-grid { grid-template-columns: repeat(3,1fr); }
  .test-grid { grid-template-columns: 1fr; }
  .cred-inner { grid-template-columns: 1fr 1fr; gap: .5rem; }
  .hero-trust { grid-template-columns: 1fr 1fr; gap: 1rem; }
  .footer-top { grid-template-columns: 1fr 1fr; gap: 2rem; }
  .nav-links { display: none; }
  .ifp-banner-cta { align-items: flex-start; }
}
@media(max-width:560px) {
  .fac-grid { grid-template-columns: 1fr 1fr; }
  .about-stats { grid-template-columns: 1fr 1fr; }
  .prog-grid { grid-template-columns: 1fr; }
  .hero-trust { grid-template-columns: 1fr; }
  .cred-inner { grid-template-columns: 1fr 1fr; }
}


/* ======================================
   BRAND PALETTE - Infinitum Guidelines
   #000B22  Rich Black        - primary dark
   #0133A0  Dark Powder Blue  - deep blue
   #00A0DF  Vivid Cerulean    - brand action
   #FFC60B  Mikado Yellow     - warm accent
   #FFFFFF  White             - surfaces
   #F4F6F8  Cool off-white    - light bg
   Montserrat - sole typeface
====================================== */
:root {
  --black:   #000B22;
  --blue:    #0133A0;
  --cyan:    #00A0DF;
  --cyan-dk: #0080B8;
  --cyan-text: #006A99;
  --cyan-text-lt: #005A82;
  --cyan-lt: #E0F4FC;
  --yellow:  #FFC60B;
  --yellow-lt:#FFF8DC;
  --yellow-dk:#CC9E00;
  --white:   #FFFFFF;
  --off:     #F4F6F8;
  --light:   #EEF3F8;
  --rule:    #D8E2EC;
  --ink:     #000B22;
  --ink2:    #2A3A52;
  --ink3:    #4A5D72;
  --sans:    'Montserrat', system-ui, sans-serif;
  --max:     none;
  --pad:     clamp(1.5rem, 6vw, 7rem);
}

/* -- ALERT -- */
.alert{background:var(--yellow);color:var(--black);padding:.8rem var(--pad);text-align:center;margin-top:76px;}
.alert-inner{max-width:none;margin:0 auto;display:flex;align-items:center;justify-content:center;gap:1.4rem;flex-wrap:wrap;}
.alert strong{font-size:.78rem;font-weight:700;}
.alert span{font-size:.76rem;opacity:.85;}
.alert-btn{padding:.32rem 1rem;background:var(--black);color:var(--white);border-radius:2px;font-size:.66rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;}

/* -- SECTIONS -- */
.sec{padding:clamp(4rem,9vw,6.5rem) var(--pad);}
.inner{max-width:none;margin:0 auto;}
.sec-dark{background:var(--black);color:var(--white);}
.sec-blue{background:
  radial-gradient(ellipse 65% 70% at 85% 15%, rgba(1,51,160,.32) 0%, transparent 58%),
  radial-gradient(ellipse 45% 50% at 8% 88%, rgba(0,160,223,.08) 0%, transparent 50%),
  linear-gradient(152deg, #000B22 0%, #000D28 55%, #000816 100%);
  color:var(--white);}
.sec-white{background:var(--white);}
.sec-off{background:var(--off);}
.sec-light{background:var(--light);}

/* -- TYPE -- */
.ey{display:block;font-size:.6rem;font-weight:700;letter-spacing:.3em;text-transform:uppercase;color:var(--cyan-text);margin-bottom:.7rem;}
.ey-w{color:rgba(0,160,223,.88);}
.sec-dark .ey,.sec-blue .ey,.pitch-sec .ey{color:var(--cyan)!important;}
.ey-y{color:var(--yellow);}
.h-xl{font-size:clamp(2.6rem,5.8vw,4.4rem);font-weight:800;line-height:1.02;letter-spacing:-.02em;}
.h-lg{font-size:clamp(1.8rem,3.4vw,2.7rem);font-weight:700;line-height:1.08;letter-spacing:-.01em;}
.h-md{font-size:clamp(1.2rem,2vw,1.65rem);font-weight:700;line-height:1.18;}
.rule{width:2.8rem;height:3px;background:var(--cyan);margin:1.1rem 0 1.7rem;border-radius:2px;}
.rule-y{background:var(--yellow);}
.lead{font-size:clamp(.88rem,1.4vw,1rem);font-weight:300;line-height:1.85;color:var(--ink3);}
.lead-w{color:rgba(255,255,255,.62);}

/* -- BUTTONS -- */
.btn-oc{background:transparent;color:var(--cyan);border:1.5px solid var(--cyan);}
.btn-oc:hover{background:var(--cyan-lt);}

/* -- STATS AT A GLANCE -- */
.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);}
.stat-card{background:var(--white);padding:2rem 1.7rem;position:relative;overflow:hidden;transition:transform .2s;}
.stat-card:hover{transform:translateY(-3px);z-index:1;box-shadow:0 10px 26px rgba(0,160,223,.1);}
.stat-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--cyan);transform:scaleX(0);transform-origin:left;transition:transform .3s;}
.stat-card:hover::after{transform:scaleX(1);}
.stat-n{font-size:2.8rem;font-weight:800;color:var(--black);line-height:1;margin-bottom:.38rem;letter-spacing:-.03em;}
.stat-n sup{font-size:1rem;font-weight:700;}
.stat-l{font-size:.76rem;font-weight:600;color:var(--ink2);margin-bottom:.18rem;}
.stat-s{font-size:.68rem;color:var(--cyan-text);font-weight:500;}
.stat-card.dark{background:var(--black);}
.stat-card.dark .stat-n{color:var(--cyan);}
.stat-card.dark .stat-l{color:rgba(255,255,255,.68);}
.stat-card.dark .stat-s{color:rgba(255,255,255,.55);}

/* -- GAP SECTION -- */
.gap-grid{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:start;}
.gap-body{font-size:.88rem;font-weight:300;color:rgba(255,255,255,.65);line-height:1.85;margin-bottom:1rem;}
.gap-blockquote{font-size:clamp(1rem,1.6vw,1.28rem);font-style:italic;color:rgba(255,255,255,.88);border-left:3px solid var(--cyan);padding-left:1.3rem;margin:1.8rem 0;line-height:1.6;font-weight:300;}
.gap-cards{display:flex;flex-direction:column;gap:1px;}
.gap-card{padding:1.6rem 1.8rem;background:rgba(255,255,255,.04);border:.5px solid rgba(255,255,255,.1);position:relative;transition:background .2s;}
.gap-card:hover{background:rgba(255,255,255,.07);}
.gap-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:rgba(0,160,223,.6);}
.gap-card.hi{background:rgba(0,160,223,.07);border-color:rgba(0,160,223,.2);}
.gap-card.hi::before{background:var(--yellow);}
.gc-title{font-size:.68rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.58);margin-bottom:.5rem;}
.gap-card.hi .gc-title{color:var(--yellow);}
.gc-body{font-size:.85rem;font-weight:300;color:rgba(255,255,255,.65);line-height:1.78;}
.gap-card.hi .gc-body{color:rgba(255,255,255,.92);font-weight:400;}

/* -- PHASES -- */
.phases{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:2.8rem;}
.phase{padding:2.4rem 2rem;background:var(--white);border:1px solid var(--rule);border-top:3px solid var(--cyan);transition:transform .22s,box-shadow .22s;}
.phase:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(0,0,0,.09);}
.phase-n{font-size:3rem;font-weight:800;color:rgba(0,160,223,.12);line-height:1;margin-bottom:.8rem;letter-spacing:-.04em;}
.phase-tag{font-size:.6rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--cyan-text);margin-bottom:.55rem;}
.phase-title{font-size:1.35rem;font-weight:700;color:var(--black);margin-bottom:.75rem;letter-spacing:-.01em;}
.phase-body{font-size:.82rem;color:var(--ink3);line-height:1.78;margin-bottom:.85rem;}
.phase-list{list-style:none;display:flex;flex-direction:column;gap:.42rem;}
.phase-list li{font-size:.79rem;color:var(--ink2);display:flex;gap:.45rem;line-height:1.5;}
.phase-list li::before{content:'›';color:var(--cyan);flex-shrink:0;font-size:.9rem;}
.phase-badge{display:inline-block;margin-top:1.1rem;padding:.22rem .75rem;background:var(--cyan-lt);border:.5px solid rgba(0,160,223,.3);font-size:.6rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--cyan-text-lt);border-radius:2px;}

/* -- METHODOLOGY -- */
.method-grid{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:start;}
.method-body{font-size:.88rem;color:var(--ink2);line-height:1.85;margin-bottom:1rem;}
.method-proof{border-left:3px solid var(--cyan);padding:.95rem 1.3rem;background:var(--cyan-lt);margin-top:1.2rem;border-radius:0 3px 3px 0;}
.mpq{font-size:.96rem;font-style:italic;color:var(--ink2);line-height:1.62;}
.mpa{font-size:.7rem;color:var(--ink3);margin-top:.38rem;font-weight:600;}
.cmp-hdr{display:grid;grid-template-columns:1fr .5rem 1fr;gap:.75rem;margin-bottom:.42rem;}
.cmp-h{font-size:.6rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--ink3);}
.cmp-row{display:grid;grid-template-columns:1fr .5rem 1fr;gap:.75rem;margin-bottom:.65rem;align-items:center;}
.cmp-bad{padding:.78rem .9rem;font-size:.79rem;line-height:1.52;background:rgba(139,31,31,.055);color:var(--ink3);border-left:2px solid rgba(139,31,31,.28);font-style:italic;border-radius:2px;}
.cmp-good{padding:.78rem .9rem;font-size:.79rem;line-height:1.52;background:var(--cyan-lt);color:var(--ink2);border-left:2px solid var(--cyan);font-weight:500;border-radius:2px;}
.cmp-arr{color:var(--cyan);font-size:.9rem;font-weight:700;text-align:center;}

/* -- FACULTY -- */
.expert-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);}
.expert-card{background:var(--white);padding:1.8rem;transition:box-shadow .2s;position:relative;}
.expert-card:hover{box-shadow:0 8px 22px rgba(0,0,0,.07);z-index:1;}
.expert-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--cyan);}
.expert-card.feat::before{background:var(--yellow);}
.expert-photo{width:62px;height:62px;border-radius:50%;object-fit:cover;border:2px solid var(--cyan-lt);margin-bottom:.85rem;display:block;}
.expert-ph{width:62px;height:62px;border-radius:50%;background:var(--light);margin-bottom:.85rem;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:700;color:var(--cyan);}
.expert-badge{display:inline-block;padding:.16rem .6rem;background:var(--cyan-lt);border-radius:100px;font-size:.6rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--cyan-text-lt);margin-bottom:.7rem;}
.expert-card.feat .expert-badge{background:var(--yellow-lt);color:#7A5C00;}
.expert-name{font-size:.98rem;font-weight:700;color:var(--black);margin-bottom:.14rem;}
.expert-role{font-size:.7rem;color:var(--ink3);line-height:1.5;margin-bottom:.7rem;}
.expert-body{font-size:.78rem;color:var(--ink3);line-height:1.65;margin-bottom:.7rem;}
.expert-quote{font-size:.88rem;font-style:italic;color:var(--ink2);line-height:1.62;border-left:2px solid var(--cyan);padding-left:.85rem;}
.expert-card.feat .expert-quote{border-color:var(--yellow);}

/* -- ENDORSEMENT -- */
.endorse-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:start;}
.criterion{display:grid;grid-template-columns:2.5rem 1fr;gap:1rem;padding:1.3rem 1.4rem;background:var(--white);border:1px solid var(--rule);border-left:3px solid var(--cyan);margin-bottom:1px;transition:box-shadow .2s;}
.criterion:hover{box-shadow:0 4px 14px rgba(0,0,0,.07);}
.c-num{font-size:1.55rem;font-weight:800;color:var(--cyan);line-height:1;}
.c-title{font-size:.73rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--cyan);margin-bottom:.32rem;}
.c-body{font-size:.82rem;color:var(--ink3);line-height:1.7;}
.c-note{font-size:.73rem;font-weight:500;color:var(--cyan-text);margin-top:.45rem;font-style:italic;}
.eb-card{padding:1rem 1.2rem;background:var(--white);border:1px solid var(--rule);display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.5rem;transition:border-color .2s,box-shadow .2s;}
.eb-card:hover{border-color:var(--cyan);box-shadow:0 3px 12px rgba(0,0,0,.06);}
.eb-name{font-size:.86rem;font-weight:700;color:var(--black);}
.eb-sub{font-size:.72rem;color:var(--ink3);margin-top:.12rem;}
.eb-tag{font-size:.6rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--cyan-text);white-space:nowrap;}
.disclaimer{margin-top:1.8rem;padding:1rem 1.2rem;background:var(--cyan-lt);border-left:3px solid var(--cyan);font-size:.77rem;color:var(--ink3);line-height:1.7;border-radius:0 3px 3px 0;}

/* -- PITCH INTERSTITIAL -- */
.pitch-sec{min-height:480px;background:radial-gradient(circle at top right,rgba(1,51,160,.4),transparent 38%),linear-gradient(160deg,#000B22 0%,#000F2E 55%,#000816 100%);display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden;}
.pitch-inner{max-width:none;margin:0 auto;width:100%;padding:clamp(2.5rem,5vw,4.5rem) var(--pad);}
.pitch-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.3rem .88rem;background:rgba(255,198,11,.18);border:1px solid rgba(255,198,11,.38);border-radius:100px;margin-bottom:1.1rem;font-size:.63rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--yellow);}
.pitch-title{font-size:clamp(1.8rem,3.8vw,2.9rem);font-weight:800;color:var(--white);margin-bottom:.75rem;letter-spacing:-.02em;}
.pitch-sub{font-size:.9rem;font-weight:300;color:rgba(255,255,255,.7);max-width:54ch;line-height:1.8;margin-bottom:2rem;}
.pitch-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;}
.pitch-card{background:rgba(255,255,255,.065);border:.5px solid rgba(255,255,255,.14);padding:1.2rem 1.35rem;}
.pitch-card-lbl{font-size:.6rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--cyan);margin-bottom:.38rem;}
.pitch-card-txt{font-size:.82rem;color:rgba(255,255,255,.75);line-height:1.6;}

/* -- ALUMNI -- */
.alumni-featured{background:var(--black);padding:2.4rem;margin-bottom:1.5rem;border:1px solid rgba(0,160,223,.18);}
.af-grid{display:grid;grid-template-columns:88px 1fr;gap:2rem;align-items:start;}
.af-ph{width:88px;height:88px;border-radius:50%;background:rgba(0,160,223,.15);border:2px solid rgba(0,160,223,.28);display:flex;align-items:center;justify-content:center;font-size:1.4rem;font-weight:800;color:var(--cyan);flex-shrink:0;}
.af-outcome{font-size:.66rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--yellow);margin-bottom:.5rem;}
.af-quote{font-size:1.12rem;font-style:italic;color:var(--white);line-height:1.65;margin-bottom:.85rem;font-weight:300;}
.af-name{font-size:.8rem;font-weight:700;color:var(--cyan);}
.af-country{font-size:.72rem;color:rgba(255,255,255,.55);}
.alumni-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;}
.ac{background:var(--white);padding:2rem;border:1px solid var(--rule);}
.ac-outcome{font-size:.62rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--cyan-text);margin-bottom:.42rem;}
.ac-quote{font-size:.9rem;font-style:italic;color:var(--ink2);line-height:1.62;border-left:2px solid var(--cyan);padding-left:.78rem;margin-bottom:.7rem;}
.ac-name{font-size:.75rem;font-weight:700;color:var(--black);}
.ac-origin{font-size:.68rem;color:var(--ink3);}
.disc-note{margin:1.8rem 0;padding:.85rem 1.1rem;background:var(--cyan-lt);border-left:3px solid var(--cyan);font-size:.78rem;color:var(--ink3);line-height:1.68;border-radius:0 3px 3px 0;}

/* -- PRICING -- */
.pricing-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;}
.pc{padding:2.6rem 2.2rem;border:1px solid var(--rule);background:var(--white);border-radius:2px;}
.pc.feat{background:var(--black);border-color:var(--cyan);}
.pc-tag{font-size:.62rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--cyan);margin-bottom:.85rem;}
.pc.feat .pc-tag{color:var(--yellow);}
.pc-name{font-size:1.4rem;font-weight:700;color:var(--black);margin-bottom:.32rem;letter-spacing:-.01em;}
.pc.feat .pc-name{color:var(--white);}
.pc-price{font-size:2.7rem;font-weight:800;color:var(--black);line-height:1;margin:.85rem 0;letter-spacing:-.03em;}
.pc.feat .pc-price{color:var(--cyan);}
.pc-scarcity{display:inline-flex;align-items:center;gap:.38rem;padding:.26rem .78rem;background:rgba(255,198,11,.14);border:1px solid rgba(255,198,11,.36);border-radius:100px;font-size:.63rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--yellow);margin-bottom:.95rem;}
.pc-scarcity-dot{width:5px;height:5px;border-radius:50%;background:var(--yellow);}
.pc-sub{font-size:.76rem;color:var(--ink3);margin-bottom:1.5rem;}
.pc.feat .pc-sub{color:rgba(255,255,255,.62);}
.pc-list{list-style:none;display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.7rem;}
.pc-list li{display:flex;align-items:flex-start;gap:.5rem;font-size:.81rem;color:var(--ink2);line-height:1.5;}
.pc.feat .pc-list li{color:rgba(255,255,255,.7);}
.pc-list li::before{content:'+';color:var(--cyan);font-size:.7rem;font-weight:700;flex-shrink:0;margin-top:.18em;}
.pc-roi{margin-top:1.5rem;padding:.9rem 1rem;background:var(--cyan-lt);border-left:3px solid var(--cyan);font-size:.77rem;color:var(--ink3);line-height:1.62;border-radius:0 3px 3px 0;}
.pc.feat .pc-roi{background:rgba(0,160,223,.1);color:rgba(255,255,255,.55);}
.pc-note{font-size:.7rem;color:var(--ink3);margin-top:1rem;font-style:italic;}
.pc.feat .pc-note{color:rgba(255,255,255,.52);}

/* -- APPLY -- */
.apply-grid{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:start;}
.eoi-steps{display:flex;flex-direction:column;}
.eoi-step{display:grid;grid-template-columns:2.4rem 1fr;gap:.85rem;padding:1.2rem 0;border-bottom:1px solid var(--rule);}
.eoi-step:last-child{border-bottom:none;}
.es-num{font-size:1rem;font-weight:800;color:var(--cyan);}
.es-title{font-size:.82rem;font-weight:700;color:var(--black);margin-bottom:.2rem;}
.es-body{font-size:.77rem;color:var(--ink3);line-height:1.7;}
.form-wrap{background:var(--white);border:1px solid var(--rule);padding:2.6rem;border-radius:2px;box-shadow:0 4px 22px rgba(0,0,0,.06);}
.ft-title{font-size:1.35rem;font-weight:700;color:var(--black);margin-bottom:.3rem;}
.ft-sub{font-size:.78rem;color:var(--ink3);margin-bottom:1.7rem;line-height:1.62;}
.fg{margin-bottom:.95rem;}
.fl{display:block;font-size:.62rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--cyan-text);margin-bottom:.4rem;}
.fi,.fsel,.fta{width:100%;background:var(--off);border:1px solid var(--rule);color:var(--black);font-family:var(--sans);font-size:.84rem;font-weight:400;padding:.75rem .9rem;border-radius:2px;outline:none;transition:border-color .2s,background .2s;}
.fi:focus,.fsel:focus,.fta:focus{border-color:var(--cyan);background:var(--cyan-lt);}
.fi::placeholder,.fta::placeholder{color:var(--ink3);}
.fsel{appearance:none;cursor:pointer;}
.fsel option{background:var(--white);color:var(--black);}
.fta{resize:vertical;min-height:80px;}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:.85rem;}
.fsub{width:100%;padding:.9rem;background:var(--cyan);color:var(--white);font-family:var(--sans);font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;border:none;cursor:pointer;border-radius:2px;margin-top:.35rem;transition:background .2s,transform .15s;}
.fsub:hover{background:var(--cyan-dk);transform:translateY(-2px);}
.fnote{font-size:.67rem;color:var(--ink3);margin-top:.6rem;text-align:center;line-height:1.52;}

/* -- VIDEO -- */
.video-wrap{position:relative;background:var(--black);border-radius:2px;overflow:hidden;cursor:pointer;}
.video-wrap video{width:100%;display:block;}
.video-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,11,34,.45);transition:background .2s;}
.video-overlay:hover{background:rgba(0,160,223,.2);}
.play-btn{width:62px;height:62px;border-radius:50%;background:var(--cyan);display:flex;align-items:center;justify-content:center;transition:transform .2s;}
.play-icon{width:0;height:0;border-style:solid;border-width:10px 0 10px 20px;border-color:transparent transparent transparent var(--white);margin-left:4px;}
.video-lbl{position:absolute;bottom:0;left:0;right:0;padding:.85rem 1.1rem;background:linear-gradient(to top,rgba(0,11,34,.9) 0%,transparent 100%);font-size:.7rem;font-weight:600;color:var(--white);letter-spacing:.06em;}

/* -- FOOTER -- */

/* -- MODAL -- */
.modal{display:none;position:fixed;inset:0;z-index:999;background:rgba(0,0,0,.88);align-items:center;justify-content:center;padding:2rem;}
.modal.open{display:flex;}
.modal-inner{position:relative;width:100%;max-width:860px;}
.modal-close{position:absolute;top:-2.4rem;right:0;background:none;border:none;color:var(--white);font-size:1.8rem;cursor:pointer;opacity:.65;}
.modal-inner video{width:100%;aspect-ratio:16/9;border-radius:2px;display:block;}
.dubai-interest-card{background:var(--white);border-radius:3px;padding:2rem;border-top:4px solid var(--cyan);box-shadow:0 18px 60px rgba(0,0,0,.28);}
.dubai-interest-card h3{font-size:1.25rem;font-weight:800;color:var(--black);margin-bottom:.35rem;}
.dubai-interest-card p{font-size:.82rem;color:var(--ink3);line-height:1.7;margin-bottom:1.2rem;}
.dubai-interest-grid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;}
.dubai-interest-card label{display:block;font-size:.62rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:var(--cyan-txt);margin-bottom:.35rem;}
.dubai-interest-card input,.dubai-interest-card textarea{width:100%;border:1px solid var(--rule);font-family:var(--sans);font-size:.86rem;padding:.78rem .9rem;border-radius:2px;outline:none;}
.dubai-interest-card textarea{min-height:110px;resize:vertical;}
.dubai-interest-full{grid-column:1/-1;}
.dubai-interest-submit{width:100%;border:none;background:var(--yellow);color:var(--black);font-family:var(--sans);font-weight:800;letter-spacing:.12em;text-transform:uppercase;padding:.9rem 1rem;border-radius:2px;cursor:pointer;}


/* -- RESPONSIVE -- */
@media(max-width:900px){
  .nav-btn-ghost{display:none;}
}
@media(max-width:1100px){
  .nav-links{display:none;}
}
@media(max-width:900px){
  .gap-grid,.method-grid,.endorse-grid,.apply-grid,.pricing-grid,.phases{grid-template-columns:1fr;gap:2.5rem;}
  .about-vm-grid{grid-template-columns:1fr;}
  .about-vm-card{min-height:auto;grid-template-columns:1fr;gap:.6rem;}
  .expert-grid,.pitch-cards,.alumni-grid{grid-template-columns:1fr;}
  .hero-trust{grid-template-columns:1fr 1fr;gap:1rem;}
  .tr-item{border-right:none;}
  .f2{grid-template-columns:1fr;}
  .nav-links{display:none;}
  .af-grid{grid-template-columns:1fr;}
  .stats-grid{grid-template-columns:1fr 1fr;}
}
@media(max-width:540px){
  .hero-trust{grid-template-columns:1fr;}
  .stats-grid{grid-template-columns:1fr;}
  .pricing-grid{grid-template-columns:1fr;}
}


/* -- PAGE SYSTEM -- */
body .page { display: none !important; }
body .page.active { display: block !important; }
body { padding-top: 76px; }
/* IFP alert needs no extra top margin since body has padding */
.alert { margin-top: 0; }

/* -- ABOUT PAGE -- */
.about-hero { background: var(--black); color: var(--white); padding: clamp(4rem,9vw,7rem) var(--pad) clamp(3rem,6vw,5rem); position: relative; overflow: hidden; }
.about-hero-bg { position: absolute; inset: 0; background: radial-gradient(ellipse 60% 70% at 90% 20%, rgba(1,51,160,.3) 0%, transparent 55%), linear-gradient(155deg, #000B22 0%, #000510 100%); }
.about-hero-inner { position: relative; z-index: 2; max-width:none; margin: 0 auto; }
.about-hero-grid { display: grid; grid-template-columns: minmax(0, 760px); gap: 5rem; align-items: end; }
.about-h1 { font-size: clamp(2.4rem,5vw,3.8rem); font-weight: 800; line-height: 1.06; letter-spacing: -.03em; margin-bottom: 1.2rem; }
.about-sub { font-size: clamp(.88rem,1.4vw,1rem); font-weight: 300; color: rgba(255,255,255,.62); line-height: 1.85; }
.mission-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.5rem; margin-top: 2.8rem; }
.mission-card { background: var(--white); border: 1px solid var(--rule); border-top: 3px solid var(--cyan); padding: 2.2rem 2rem; }
.mc-n { font-size: 2rem; font-weight: 800; color: rgba(0,160,223,.15); line-height: 1; margin-bottom: .6rem; letter-spacing: -.04em; }
.mc-title { font-size: .76rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--black); margin-bottom: .7rem; }
.mc-body { font-size: .85rem; color: var(--ink3); line-height: 1.78; }
.tl { position: relative; padding-left: 2rem; }
.tl::before { content: ''; position: absolute; left: 0; top: .4rem; bottom: 0; width: 1.5px; background: var(--rule); }
.tl-item { position: relative; margin-bottom: 2rem; }
.tl-item::before { content: ''; position: absolute; left: -2rem; top: .35rem; width: 9px; height: 9px; border-radius: 50%; background: var(--cyan); border: 2px solid var(--white); box-shadow: 0 0 0 1.5px var(--cyan); }
.tl-year { font-size: .62rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--cyan-txt); margin-bottom: .28rem; }
.tl-title { font-size: .9rem; font-weight: 700; color: var(--black); margin-bottom: .3rem; }
.tl-body { font-size: .82rem; color: var(--ink3); line-height: 1.72; }
.values-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.5rem; margin-top: 2.5rem; }
.val-card { padding: 1.8rem; border: 1px solid var(--rule); background: var(--white); border-top: 3px solid var(--cyan); }
.val-card.y { border-top-color: var(--yellow); }
.val-title { font-size: .78rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--black); margin-bottom: .6rem; }
.val-body { font-size: .83rem; color: var(--ink3); line-height: 1.75; }
.fac-full { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; background: var(--rule); border: 1px solid var(--rule); margin-top: 2.5rem; }
.ffc { background: var(--white); padding: 1.6rem; transition: box-shadow .2s; position: relative; }
.ffc:hover { box-shadow: 0 6px 20px rgba(0,0,0,.08); z-index: 1; }
.ffc::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--cyan); }
.ffc.yk::before { background: var(--yellow); }
.ffc-ph { width: 58px; height: 58px; border-radius: 50%; background: var(--light); border: 2px solid var(--cyan-lt); overflow: hidden; margin-bottom: .85rem; display: flex; align-items: center; justify-content: center; font-size: .95rem; font-weight: 700; color: var(--cyan-txt); }
.ffc-ph img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ffc-name { font-size: .88rem; font-weight: 700; color: var(--black); margin-bottom: .14rem; }
.ffc-role { font-size: .68rem; color: var(--ink3); line-height: 1.5; margin-bottom: .5rem; }
.about-vm-grid { display: grid; grid-template-columns: 1fr; gap: .85rem; margin-top: 1.4rem; margin-bottom: .4rem; }
.about-vm-card { position: relative; min-height: 82px; padding: 1.25rem 1.6rem 1.25rem 1.9rem; background: var(--white); border: 1px solid var(--rule); border-radius: 3px; display: grid; grid-template-columns: 10rem minmax(0,1fr); gap: 1.4rem; align-items: center; overflow: hidden; }
.about-vm-card::before { content: ''; position: absolute; inset: 0 auto 0 0; width: 4px; background: var(--cyan); }
.about-vm-card.mission::before { background: var(--yellow); }
.about-vm-card.vision { background: linear-gradient(135deg, var(--cyan-lt), #fff 92%); }
.about-vm-card.mission { background: linear-gradient(135deg, #fff, var(--off) 92%); }
.about-vm-label { font-size: .68rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; color: var(--cyan-txt) !important; margin-bottom: 0; }
.about-vm-card.mission .about-vm-label { color: #7A5C00 !important; }
.about-vm-text { font-size: 1.06rem; font-weight: 800; color: var(--ink2) !important; line-height: 1.45; max-width: none; }
.team-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1.5rem; margin-top: 2.5rem; }
.team-card { text-align: center; }
.team-ph { width: 72px; height: 72px; border-radius: 50%; background: var(--light); margin: 0 auto .85rem; border: 2px solid var(--rule); overflow: hidden; display: flex; align-items: center; justify-content: center; font-size: 1.1rem; font-weight: 700; color: var(--ink3); }
.team-ph img { width: 100%; height: 100%; object-fit: cover; display: block; }
.team-name { font-size: .82rem; font-weight: 700; color: var(--black); margin-bottom: .18rem; }
.team-role { font-size: .7rem; color: var(--ink3); line-height: 1.4; }

/* -- YEP PAGE -- */
.yep-hero { min-height: 100svh; display: flex; flex-direction: column; justify-content: flex-end; background: var(--black); color: var(--white); position: relative; overflow: hidden; }
.yep-hero-bg { position: absolute; inset: 0; background: radial-gradient(ellipse 55% 60% at 88% 12%, rgba(255,198,11,.1) 0%, transparent 52%), radial-gradient(ellipse 38% 45% at 5% 88%, rgba(0,160,223,.08) 0%, transparent 48%), linear-gradient(152deg, #000B22 0%, #000918 58%, #060510 100%); }
.yep-hero-dots { position: absolute; inset: 0; opacity: .02; background-image: radial-gradient(circle, rgba(255,198,11,1) 1px, transparent 1px); background-size: 52px 52px; }
.yep-hero-inner { position: relative; z-index: 2; max-width:none; margin: 0 auto; width: 100%; padding: var(--pad) var(--pad) 4.5rem; }
.yep-hero-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 4rem; align-items: flex-end; }
.yep-badge-pill { display: inline-flex; align-items: center; gap: .55rem; padding: .32rem .88rem .32rem .42rem; background: rgba(255,198,11,.1); border: 1px solid rgba(255,198,11,.22); border-radius: 100px; margin-bottom: 1.6rem; }
.yep-badge-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--yellow); }
.yep-badge-text { font-size: .6rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: rgba(255,198,11,.9); }
.yep-h1 { font-size: clamp(2.8rem,6.2vw,4.8rem); font-weight: 800; line-height: 1.02; letter-spacing: -.03em; margin-bottom: 1.4rem; }
.yep-h1 em { font-style: italic; color: var(--yellow); font-weight: 700; }
.yep-sub { font-size: clamp(.88rem,1.4vw,1rem); font-weight: 300; color: rgba(255,255,255,.62); max-width: 50ch; line-height: 1.85; margin-bottom: 2.4rem; }
.yep-hero-actions { display: flex; gap: 1rem; flex-wrap: wrap; margin-bottom: 3.5rem; }
.yep-trust { display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid rgba(255,255,255,.08); padding-top: 1.8rem; }
.yep-tr-lbl { font-size: .58rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--yellow); margin-bottom: .22rem; }
.yep-stat-box { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: rgba(255,255,255,.1); }
.ysb-cell { background: rgba(255,255,255,.05); padding: 1.35rem 1.15rem; text-align: center; }
.ysb-n { font-size: 2rem; font-weight: 800; color: var(--yellow); line-height: 1; }
.ysb-l { font-size: .6rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.38); margin-top: .2rem; }
.ysb-venue { padding: 1.2rem 1.4rem; background: rgba(255,255,255,.04); border: .5px solid rgba(255,255,255,.1); margin-top: 1px; }
.streams-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.5rem; margin-top: 2.5rem; }
.stream { padding: 2rem; background: var(--white); border: 1px solid var(--rule); border-top: 3px solid var(--yellow); transition: transform .2s, box-shadow .2s; }
.stream:hover { transform: translateY(-3px); box-shadow: 0 10px 26px rgba(0,0,0,.08); }
.stream-icon { font-size: 1.5rem; margin-bottom: .65rem; }
.stream-title { font-size: 1.05rem; font-weight: 700; color: var(--black); margin-bottom: .45rem; letter-spacing: -.01em; }
.stream-body { font-size: .83rem; color: var(--ink3); line-height: 1.75; }
.yep-features { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--rule); border: 1px solid var(--rule); }
.yf { background: var(--white); padding: 1.8rem 1.6rem; display: flex; gap: 1rem; align-items: flex-start; }
.yf-icon { font-size: 1.1rem; flex-shrink: 0; margin-top: .1rem; }
.yf-title { font-size: .84rem; font-weight: 700; color: var(--black); margin-bottom: .28rem; }
.yf-body { font-size: .8rem; color: var(--ink3); line-height: 1.68; }
.yep-dates { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; margin-top: 2.5rem; }
.date-card { padding: 2.2rem 2.4rem; border: 1px solid var(--rule); background: var(--white); border-radius: 2px; }
.date-card.feat { background: var(--black); border-color: var(--yellow); }
.date-lbl { font-size: .62rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--cyan-txt); margin-bottom: .5rem; }
.date-card.feat .date-lbl { color: var(--yellow); }
.date-loc { font-size: 1.3rem; font-weight: 800; color: var(--black); margin-bottom: .28rem; letter-spacing: -.01em; }
.date-card.feat .date-loc { color: var(--white); }
.date-d { font-size: .82rem; color: var(--ink3); margin-bottom: .85rem; }
.date-card.feat .date-d { color: rgba(255,255,255,.42); }
.date-price { font-size: 1.3rem; font-weight: 800; color: var(--cyan-txt); margin-bottom: 1.3rem; }
.date-card.feat .date-price { color: var(--yellow); }
.yep-test-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.5rem; }
.yep-tc { background: var(--white); border: 1px solid var(--rule); padding: 1.8rem; border-left: 3px solid var(--yellow); }
.yep-tc-quote { font-size: .9rem; font-style: italic; color: var(--ink2); line-height: 1.65; margin-bottom: .75rem; }
.yep-tc-name { font-size: .74rem; font-weight: 700; color: var(--black); }
.yep-tc-origin { font-size: .68rem; color: var(--ink3); }
.yep-form-wrap { background: var(--white); border: 1px solid var(--rule); padding: 2.6rem; border-radius: 2px; box-shadow: 0 4px 22px rgba(0,0,0,.06); }
.yep-fl { display: block; font-size: .62rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; color: #7A5C00; margin-bottom: .4rem; }
.yep-fi, .yep-fsel, .yep-fta { width: 100%; background: var(--off); border: 1px solid var(--rule); color: var(--black); font-family: var(--sans); font-size: .84rem; font-weight: 400; padding: .75rem .9rem; border-radius: 2px; outline: none; transition: border-color .2s; }
.yep-fi:focus, .yep-fsel:focus, .yep-fta:focus { border-color: var(--yellow); background: var(--yellow-lt); }
.yep-fi::placeholder, .yep-fta::placeholder { color: var(--ink3); }
.yep-fsel { appearance: none; cursor: pointer; }
.yep-fta { resize: vertical; min-height: 80px; }
.yep-fsub { width: 100%; padding: .9rem; background: var(--yellow); color: var(--black); font-family: var(--sans); font-size: .7rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; border: none; cursor: pointer; border-radius: 2px; margin-top: .35rem; transition: background .2s, transform .15s; }
.yep-fsub:hover { background: var(--yellow-dk); color: var(--white); transform: translateY(-2px); }

/* -- SHARED UTILITIES -- */
.sec { padding: clamp(4rem,9vw,6.5rem) var(--pad); }
.sec-white { background: var(--white); }
.sec-off { background: var(--off); }
.sec-dark { background: var(--black); color: var(--white); }
.about-story-sec { padding-top: clamp(2.2rem,4vw,3.5rem); }
.oui-logo-img { width:100%; max-width:640px; height:auto; display:block; }
.inner { max-width:none; margin: 0 auto; }
.sec-ey { font-size: .9rem; font-weight: 700; letter-spacing: .28em; text-transform: uppercase; color: var(--cyan-txt); margin-bottom: .65rem; display: block; }
.sec-ey-y { color: #7A5C00; }
.sec-ey-w { color: rgba(0,160,223,.82); }
.sec-h { font-size: clamp(1.8rem,3.2vw,2.6rem); font-weight: 800; color: var(--black); line-height: 1.08; letter-spacing: -.02em; margin-bottom: .5rem; }
.sec-h-w { color: var(--white); }
.sec-rule { width: 2.8rem; height: 3px; background: var(--cyan); margin: 1rem 0 1.8rem; border-radius: 2px; }
.sec-rule-y { background: var(--yellow); }
.lead { font-size: clamp(.88rem,1.4vw,1rem); font-weight: 300; line-height: 1.85; color: var(--ink3); }
.lead-w { color: rgba(255,255,255,.62); }
.btn-y { background: var(--yellow); color: var(--black); }
.btn-y:hover { background: var(--yellow-dk); transform: translateY(-2px); box-shadow: 0 8px 22px rgba(255,198,11,.32); }
.btn-oy { background: transparent; color: var(--yellow); border: 1.5px solid rgba(255,198,11,.5); }
.btn-oy:hover { background: rgba(255,198,11,.1); }

/* -- RESPONSIVE ADDITIONS -- */
@media(max-width:960px) {
  .about-hero-grid, .yep-hero-grid, .yep-dates { grid-template-columns: 1fr; gap: 2.5rem; }
  .mission-grid, .values-grid, .streams-grid { grid-template-columns: 1fr; }
  .fac-full { grid-template-columns: repeat(2,1fr); }
  .yep-features, .yep-test-grid { grid-template-columns: 1fr; }
  .team-grid { grid-template-columns: repeat(3,1fr); }
  .yep-trust { grid-template-columns: 1fr 1fr; gap: 1rem; }
}
@media(max-width:560px) {
  .fac-full, .team-grid { grid-template-columns: 1fr 1fr; }
  .yep-stat-box { grid-template-columns: 1fr 1fr; }
}



/* ==============================================
   YEP PAGE - REDESIGN
   Audience: students 15-18 + their parents
   Signature: the "countdown to Oxford" ticker
   and stream-selector interaction
   Tone: punchy, warm, energetic - not childish
============================================== */

/* -- YEP HERO - full-bleed dark with gold energy -- */
.yep2-hero {
  min-height: 100svh;
  background: var(--black);
  color: var(--white);
  display: flex; flex-direction: column; justify-content: flex-end;
  position: relative; overflow: hidden;
}
.yep2-hero-bg {
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 70% 55% at 95% 5%, rgba(255,198,11,.12) 0%, transparent 48%),
    radial-gradient(ellipse 45% 50% at 3% 95%, rgba(0,160,223,.08) 0%, transparent 45%),
    linear-gradient(160deg, #000B22 0%, #00080F 60%, #050005 100%);
}
/* Animated floating orbs - atmospheric energy for young audience */
.yep2-orb {
  position: absolute; border-radius: 50%;
  pointer-events: none; animation: yepFloat 8s ease-in-out infinite;
}
.yep2-orb-1 {
  width: 420px; height: 420px; top: -100px; right: -80px;
  background: radial-gradient(circle, rgba(255,198,11,.09) 0%, transparent 65%);
  animation-delay: 0s;
}
.yep2-orb-2 {
  width: 280px; height: 280px; bottom: 15%; left: -60px;
  background: radial-gradient(circle, rgba(0,160,223,.08) 0%, transparent 65%);
  animation-delay: -3s;
}
.yep2-orb-3 {
  width: 180px; height: 180px; top: 35%; right: 18%;
  background: radial-gradient(circle, rgba(255,198,11,.06) 0%, transparent 65%);
  animation-delay: -6s;
}
@keyframes yepFloat {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-28px) scale(1.04); }
}
.yep2-hero-inner {
  position: relative; z-index: 2;
  max-width:none; margin: 0 auto; width: 100%;
  padding: var(--pad) var(--pad) clamp(3rem, 6vw, 5rem);
  padding-top: calc(76px + clamp(3.5rem, 7vw, 6rem));
}
/* Oxford pill */
.yep2-oxford-pill {
  display: inline-flex; align-items: center; gap: .55rem;
  padding: .34rem 1rem .34rem .5rem;
  background: rgba(255,198,11,.1);
  border: 1px solid rgba(255,198,11,.25);
  border-radius: 100px; margin-bottom: 1.8rem;
  cursor: pointer; transition: background .2s;
}
.yep2-oxford-pill:hover { background: rgba(255,198,11,.18); }
.yep2-oxford-dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--yellow); flex-shrink: 0;
  animation: yepPulse 2s ease-in-out infinite;
}
@keyframes yepPulse {
  0%,100% { opacity: 1; transform: scale(1); }
  50% { opacity: .5; transform: scale(.7); }
}
.yep2-oxford-text {
  font-size: .62rem; font-weight: 700; letter-spacing: .18em;
  text-transform: uppercase; color: rgba(255,198,11,.88);
}
.yep2-h1 {
  font-size: clamp(3rem, 7vw, 5.6rem);
  font-weight: 800; line-height: .98; letter-spacing: -.04em;
  margin-bottom: 1.4rem;
}
.yep2-h1-line2 {
  display: block; color: var(--yellow);
  font-style: italic; font-weight: 700;
}
.yep2-sub {
  font-size: clamp(.9rem, 1.5vw, 1.05rem);
  font-weight: 300; color: rgba(255,255,255,.6);
  max-width: 48ch; line-height: 1.82; margin-bottom: 2.4rem;
}
/* Hero 2-col below fold */
.yep2-hero-cols {
  display: grid; grid-template-columns: 1fr 1fr; gap: 3rem;
  align-items: end; margin-top: 1.5rem;
}
.yep2-cta-group { display: flex; gap: .85rem; flex-wrap: wrap; margin-bottom: 2.5rem; }
/* Trust strip */
.yep2-trust {
  display: grid; grid-template-columns: repeat(4,1fr);
  border-top: 1px solid rgba(255,255,255,.08); padding-top: 1.8rem; gap: .5rem;
}
.yep2-tr-l { font-size: .56rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--yellow); margin-bottom: .2rem; opacity: .8; }
.yep2-tr-v { font-size: .82rem; font-weight: 600; color: rgba(255,255,255,.8); }
/* Right: countdown */
.yep2-countdown-card {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,198,11,.2);
  padding: 1.8rem; border-radius: 4px;
}
.yep2-cd-label {
  font-size: .6rem; font-weight: 700; letter-spacing: .22em;
  text-transform: uppercase; color: var(--yellow); margin-bottom: 1rem;
}
.yep2-cd-grid {
  display: grid; grid-template-columns: repeat(4,1fr); gap: .5rem; margin-bottom: 1rem;
}
.yep2-cd-unit { text-align: center; }
.yep2-cd-n {
  font-size: clamp(1.8rem,3.5vw,2.6rem); font-weight: 800;
  color: var(--white); line-height: 1; display: block;
  font-variant-numeric: tabular-nums; letter-spacing: -.03em;
}
.yep2-cd-u {
  font-size: .58rem; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; color: rgba(255,255,255,.32); margin-top: .2rem;
}
.yep2-cd-colon { color: var(--yellow); font-size: 2rem; font-weight: 800; padding-top: .1rem; text-align: center; }
.yep2-cd-venue {
  font-size: .75rem; color: rgba(255,255,255,.45); line-height: 1.5;
  border-top: 1px solid rgba(255,255,255,.08); padding-top: .85rem;
}
.yep2-cd-venue strong { color: rgba(255,255,255,.72); }

/* -- STREAM SELECTOR - interactive pick-your-path -- */
.yep2-streams-sec {
  background: var(--off); padding: clamp(4rem,9vw,6.5rem) var(--pad);
}
.yep2-streams-inner { max-width:none; margin: 0 auto; }
.yep2-stream-tabs {
  display: grid; grid-template-columns: repeat(3,1fr);
  gap: 1px; background: var(--rule); border: 1px solid var(--rule);
  margin: 2.5rem 0 0;
}
.yep2-stab {
  background: var(--white); padding: 2.2rem 2rem;
  cursor: pointer; transition: all .22s;
  position: relative; overflow: hidden;
  border-bottom: 4px solid transparent;
}
.yep2-stab::after {
  content: ''; position: absolute; inset: 0;
  background: var(--yellow); opacity: 0; transition: opacity .22s;
}
.yep2-stab.active { background: var(--black); border-bottom-color: var(--yellow); }
.yep2-stab:not(.active):hover { background: var(--light); }
.yep2-stab-icon { font-size: 2rem; margin-bottom: .75rem; display: block; }
.yep2-stab-title {
  font-size: 1.05rem; font-weight: 800; color: var(--black);
  letter-spacing: -.02em; margin-bottom: .4rem;
}
.yep2-stab.active .yep2-stab-title { color: var(--white); }
.yep2-stab-tag {
  font-size: .6rem; font-weight: 700; letter-spacing: .16em;
  text-transform: uppercase; color: #7A5C00;
}
.yep2-stab.active .yep2-stab-tag { color: var(--yellow); }
.yep2-stab-check {
  position: absolute; top: 1rem; right: 1rem;
  width: 22px; height: 22px; border-radius: 50%;
  background: var(--yellow); display: none;
  align-items: center; justify-content: center;
  font-size: .7rem; color: var(--black); font-weight: 800;
}
.yep2-stab.active .yep2-stab-check { display: flex; }
/* Content panels */
.yep2-stream-panels { margin-top: 0; }
.yep2-spanel {
  display: none;
  background: var(--black); padding: 2.4rem;
  border: 1px solid rgba(255,198,11,.18);
  border-top: none;
  animation: yepFadeIn .3s ease;
}
.yep2-spanel.active { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; }
@keyframes yepFadeIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.yep2-sp-title { font-size: 1.3rem; font-weight: 800; color: var(--white); margin-bottom: .65rem; letter-spacing: -.02em; }
.yep2-sp-body { font-size: .88rem; font-weight: 300; color: rgba(255,255,255,.65); line-height: 1.82; margin-bottom: 1.2rem; }
.yep2-sp-list { list-style: none; display: flex; flex-direction: column; gap: .45rem; }
.yep2-sp-list li { display: flex; align-items: flex-start; gap: .65rem; font-size: .82rem; color: rgba(255,255,255,.7); line-height: 1.5; }
.yep2-sp-list li::before { content: '→'; color: var(--yellow); flex-shrink: 0; font-weight: 700; }
.yep2-sp-aside {
  display: flex; flex-direction: column; justify-content: flex-start; gap: 1rem;
}
.yep2-sp-stat {
  padding: 1.2rem 1.4rem; background: rgba(255,198,11,.07);
  border-left: 3px solid var(--yellow);
}
.yep2-sp-stat-n { font-size: 2.2rem; font-weight: 800; color: var(--yellow); line-height: 1; letter-spacing: -.03em; }
.yep2-sp-stat-l { font-size: .7rem; color: rgba(255,255,255,.45); margin-top: .2rem; font-weight: 500; }
.yep2-sp-careers { background: rgba(255,255,255,.04); border: .5px solid rgba(255,255,255,.1); padding: 1.2rem 1.4rem; }
.yep2-sp-careers-title { font-size: .62rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: rgba(255,255,255,.4); margin-bottom: .6rem; }
.yep2-sp-career-tags { display: flex; flex-wrap: wrap; gap: .4rem; }
.yep2-sp-career-tag {
  padding: .25rem .65rem; font-size: .72rem; font-weight: 600;
  background: rgba(255,255,255,.06); color: rgba(255,255,255,.65);
  border: .5px solid rgba(255,255,255,.12); border-radius: 100px;
}

/* -- WEEK IN THE LIFE - timeline strip -- */
.yep2-week-sec {
  background: var(--white); padding: clamp(4rem,9vw,6.5rem) var(--pad);
}
.yep2-week-inner { max-width:none; margin: 0 auto; }
.yep2-week-strip {
  display: grid; grid-template-columns: repeat(5,1fr);
  gap: 1px; background: var(--rule); border: 1px solid var(--rule);
  margin-top: 2.5rem;
}
.yep2-day {
  background: var(--white); padding: 1.6rem 1.2rem;
  transition: background .2s, transform .2s;
  cursor: default; position: relative;
}
.yep2-day:hover { background: var(--off); z-index: 1; transform: translateY(-3px); box-shadow: 0 8px 22px rgba(0,0,0,.08); }
.yep2-day-label {
  font-size: .58rem; font-weight: 700; letter-spacing: .2em;
  text-transform: uppercase; color: var(--yellow); margin-bottom: .45rem;
  display: block;
}
.yep2-day-icon { font-size: 1.6rem; margin-bottom: .55rem; display: block; }
.yep2-day-title { font-size: .88rem; font-weight: 800; color: var(--black); margin-bottom: .35rem; letter-spacing: -.01em; }
.yep2-day-body { font-size: .74rem; color: var(--ink3); line-height: 1.65; }

/* -- SOCIAL PROOF - floating quote cards -- */
.yep2-quotes-sec {
  background: var(--off); padding: clamp(4rem,9vw,6.5rem) var(--pad);
}
.yep2-quotes-inner { max-width:none; margin: 0 auto; }
.yep2-quotes-grid {
  display: grid; grid-template-columns: 1.4fr 1fr 1fr;
  gap: 1.5rem; margin-top: 2.5rem; align-items: start;
}
.yep2-qcard {
  padding: 2rem; border-radius: 3px;
  transition: transform .2s, box-shadow .2s;
}
.yep2-qcard:hover { transform: translateY(-4px); box-shadow: 0 14px 34px rgba(0,0,0,.1); }
.yep2-qcard-main {
  background: var(--black); border: 1px solid rgba(255,198,11,.2);
  grid-row: span 2;
}
.yep2-qcard-light { background: var(--white); border: 1px solid var(--rule); }
.yep2-qcard-yellow { background: var(--yellow); }
.yep2-q-icon { font-size: 1.8rem; margin-bottom: 1rem; display: block; }
.yep2-q-text {
  font-size: clamp(.9rem,1.5vw,1.1rem); font-style: italic;
  font-weight: 300; line-height: 1.68; margin-bottom: 1.1rem;
}
.yep2-qcard-main .yep2-q-text { color: rgba(255,255,255,.82); }
.yep2-qcard-light .yep2-q-text { color: var(--ink2); }
.yep2-qcard-yellow .yep2-q-text { color: var(--black); font-weight: 600; font-style: normal; font-size: clamp(.88rem,1.4vw,1.05rem); }
.yep2-q-name { font-size: .78rem; font-weight: 700; }
.yep2-qcard-main .yep2-q-name { color: var(--yellow); }
.yep2-qcard-light .yep2-q-name { color: var(--black); }
.yep2-qcard-yellow .yep2-q-name { color: rgba(0,0,0,.7); }
.yep2-q-origin { font-size: .68rem; margin-top: .12rem; }
.yep2-qcard-main .yep2-q-origin { color: rgba(255,255,255,.35); }
.yep2-qcard-light .yep2-q-origin { color: var(--ink3); }
.yep2-qcard-yellow .yep2-q-origin { color: rgba(0,0,0,.5); }

/* -- WHAT YOU GET - visual checklist -- */
.yep2-get-sec {
  background: var(--white); padding: clamp(4rem,9vw,6.5rem) var(--pad);
}
.yep2-get-inner { max-width:none; margin: 0 auto; }
.yep2-get-grid {
  display: grid; grid-template-columns: repeat(3,1fr);
  gap: 1px; background: var(--rule); border: 1px solid var(--rule);
  margin-top: 2.5rem;
}
.yep2-get-item {
  background: var(--white); padding: 2rem 1.8rem;
  transition: background .2s;
}
.yep2-get-item:hover { background: var(--off); }
.yep2-get-item.highlight { background: var(--black); }
.yep2-get-icon { font-size: 1.6rem; margin-bottom: .75rem; display: block; }
.yep2-get-title { font-size: .88rem; font-weight: 800; color: var(--black); margin-bottom: .4rem; letter-spacing: -.01em; }
.yep2-get-item.highlight .yep2-get-title { color: var(--yellow); }
.yep2-get-body { font-size: .8rem; color: var(--ink3); line-height: 1.68; }
.yep2-get-item.highlight .yep2-get-body { color: rgba(255,255,255,.55); }

/* -- ENROL SECTION -- */
.yep2-enrol-sec {
  background: var(--off); padding: clamp(4rem,9vw,6.5rem) var(--pad);
}
.yep2-enrol-inner { max-width:none; margin: 0 auto; }
.yep2-location-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 1.5rem; margin-top: 2.5rem; }
.yep2-loc {
  padding: 2.4rem; border-radius: 3px; position: relative; overflow: hidden;
  transition: transform .2s, box-shadow .2s;
}
.yep2-loc:hover { transform: translateY(-3px); box-shadow: 0 12px 32px rgba(0,0,0,.1); }
.yep2-loc-oxford { background: var(--black); border: 1px solid rgba(255,198,11,.25); }
.yep2-loc-dubai { background: var(--white); border: 1px solid var(--rule); }
.yep2-loc-badge {
  display: inline-flex; align-items: center; gap: .45rem;
  padding: .28rem .8rem; border-radius: 100px;
  font-size: .6rem; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; margin-bottom: 1rem;
}
.yep2-loc-oxford .yep2-loc-badge { background: rgba(255,198,11,.15); color: var(--yellow); }
.yep2-loc-dubai .yep2-loc-badge { background: var(--cyan-lt); color: var(--cyan-txt); }
.yep2-loc-city {
  font-size: clamp(1.5rem,3vw,2.2rem); font-weight: 800;
  letter-spacing: -.03em; line-height: 1; margin-bottom: .5rem;
}
.yep2-loc-oxford .yep2-loc-city { color: var(--white); }
.yep2-loc-dubai .yep2-loc-city { color: var(--black); }
.yep2-loc-venue {
  font-size: .82rem; margin-bottom: .35rem;
}
.yep2-loc-oxford .yep2-loc-venue { color: rgba(255,255,255,.48); }
.yep2-loc-dubai .yep2-loc-venue { color: var(--ink3); }
.yep2-loc-dates {
  font-size: .88rem; font-weight: 600; margin-bottom: 1.4rem;
}
.yep2-loc-oxford .yep2-loc-dates { color: rgba(255,255,255,.75); }
.yep2-loc-dubai .yep2-loc-dates { color: var(--ink2); }
.yep2-loc-note {
  font-size: .72rem; margin-top: .85rem; font-style: italic;
}
.yep2-loc-oxford .yep2-loc-note { color: rgba(255,255,255,.28); }
.yep2-loc-dubai .yep2-loc-note { color: var(--ink3); }
/* Decorative watermark */
.yep2-loc-wm {
  position: absolute; bottom: -1rem; right: 1rem;
  font-size: 7rem; font-weight: 800; letter-spacing: -.06em;
  opacity: .04; line-height: 1; pointer-events: none; user-select: none;
}
.yep2-loc-oxford .yep2-loc-wm { color: var(--yellow); }
.yep2-loc-dubai .yep2-loc-wm { color: var(--black); }

/* -- APPLY FORM -- */
.yep2-apply-sec {
  background: var(--black); padding: clamp(4rem,9vw,6.5rem) var(--pad);
}
.yep2-apply-inner { max-width:none; margin: 0 auto; }
.yep2-apply-grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: 4.5rem; align-items: start; }
.yep2-apply-ey { font-size: .6rem; font-weight: 700; letter-spacing: .3em; text-transform: uppercase; color: var(--yellow); display: block; margin-bottom: .65rem; }
.yep2-apply-h { font-size: clamp(1.8rem,3.2vw,2.5rem); font-weight: 800; color: var(--white); line-height: 1.08; letter-spacing: -.02em; margin-bottom: 1rem; }
.yep2-apply-sub { font-size: .88rem; font-weight: 300; color: rgba(255,255,255,.55); line-height: 1.82; margin-bottom: 2rem; }
.yep2-steps { display: flex; flex-direction: column; gap: 0; }
.yep2-step {
  display: grid; grid-template-columns: 2.2rem 1fr;
  gap: .85rem; padding: 1.1rem 0;
  border-bottom: 1px solid rgba(255,255,255,.07);
}
.yep2-step:last-child { border-bottom: none; }
.yep2-step-n {
  font-size: 1.1rem; font-weight: 800; color: var(--yellow);
  line-height: 1;
}
.yep2-step-t { font-size: .84rem; font-weight: 700; color: var(--white); margin-bottom: .18rem; }
.yep2-step-b { font-size: .78rem; color: rgba(255,255,255,.45); line-height: 1.65; }
/* Form on dark */
.yep2-form {
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,198,11,.2);
  padding: 2.4rem; border-radius: 3px;
}
.yep2-form-title { font-size: 1.2rem; font-weight: 800; color: var(--white); margin-bottom: .28rem; letter-spacing: -.01em; }
.yep2-form-sub { font-size: .76rem; color: rgba(255,198,11,.7); margin-bottom: 1.6rem; font-weight: 600; }
.yep2-fg { margin-bottom: .88rem; }
.yep2-fl { display: block; font-size: .6rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--yellow); margin-bottom: .38rem; opacity: .75; }
.yep2-fi, .yep2-fsel, .yep2-fta {
  width: 100%; background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12); color: var(--white);
  font-family: var(--sans); font-size: .84rem; font-weight: 400;
  padding: .72rem .9rem; border-radius: 2px; outline: none;
  transition: border-color .2s, background .2s;
}
.yep2-fi:focus, .yep2-fsel:focus, .yep2-fta:focus {
  border-color: var(--yellow); background: rgba(255,198,11,.05);
}
.yep2-fi::placeholder, .yep2-fta::placeholder { color: rgba(255,255,255,.28); }
.yep2-fsel { appearance: none; cursor: pointer; }
.yep2-fsel option { background: #000B22; color: var(--white); }
.yep2-fta { resize: vertical; min-height: 72px; }
.yep2-f2 { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.yep2-submit {
  width: 100%; padding: .92rem;
  background: var(--yellow); color: var(--black);
  font-family: var(--sans); font-size: .72rem; font-weight: 800;
  letter-spacing: .12em; text-transform: uppercase;
  border: none; cursor: pointer; border-radius: 2px;
  margin-top: .35rem; transition: background .2s, transform .15s;
}
.yep2-submit:hover { background: var(--yellow-dk); color: var(--white); transform: translateY(-2px); }
.yep2-form-note { font-size: .66rem; color: rgba(255,255,255,.28); margin-top: .55rem; text-align: center; line-height: 1.5; }

/* -- RESPONSIVE -- */
@media(max-width:960px) {
  .yep2-hero-cols, .yep2-spanel.active,
  .yep2-apply-grid, .yep2-location-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .yep2-stream-tabs, .yep2-week-strip,
  .yep2-get-grid { grid-template-columns: 1fr; }
  .yep2-quotes-grid { grid-template-columns: 1fr; }
  .yep2-trust { grid-template-columns: 1fr 1fr; gap: 1rem; }
  .yep2-cd-grid { grid-template-columns: repeat(4,1fr); }
}
@media(max-width:560px) {
  .yep2-h1 { font-size: clamp(2.4rem,10vw,3.2rem); }
  .yep2-f2 { grid-template-columns: 1fr; }
}



/* == YEP REDESIGN v3 - light, interactive, youthful == */

/* HERO - stays dark, gold energy */
.y3-hero { min-height:auto; background:#112244; color:var(--white); display:flex; flex-direction:column; justify-content:flex-start; position:relative; overflow:hidden; }
.y3-hero-bg { position:absolute; inset:0; background: radial-gradient(ellipse 80% 70% at 100% 0%, rgba(255,198,11,.55) 0%, rgba(255,140,0,.2) 35%, transparent 60%), radial-gradient(ellipse 60% 65% at 0% 100%, rgba(0,160,223,.4) 0%, rgba(1,51,160,.2) 40%, transparent 65%), radial-gradient(ellipse 60% 60% at 55% 40%, rgba(1,51,160,.25) 0%, transparent 65%), linear-gradient(160deg,#112244 0%,#0D1A35 40%,#151030 100%); }
.y3-orb { position:absolute; border-radius:50%; pointer-events:none; }
.y3-orb-a { width:700px; height:700px; top:-200px; right:-150px; background:radial-gradient(circle,rgba(255,198,11,.18) 0%,rgba(255,140,0,.08) 40%,transparent 65%); animation:y3float 9s ease-in-out infinite; }
.y3-orb-b { width:400px; height:400px; bottom:5%; left:-80px; background:radial-gradient(circle,rgba(0,160,223,.15) 0%,transparent 60%); animation:y3float 7s ease-in-out infinite; animation-delay:-4s; }
@keyframes y3float { 0%,100%{transform:translateY(0) scale(1)} 50%{transform:translateY(-24px) scale(1.03)} }
.y3-inner { position:relative; z-index:2; width:100%; padding:0 var(--pad) clamp(2rem,4vw,3rem); }
.y3-tag { display:inline-flex; align-items:center; gap:.5rem; padding:.3rem .9rem .3rem .44rem; background:rgba(255,198,11,.12); border:1px solid rgba(255,198,11,.24); border-radius:100px; margin-bottom:1.6rem; cursor:pointer; transition:background .2s; }
.y3-tag:hover { background:rgba(255,198,11,.2); }
.y3-tag-dot { width:7px; height:7px; border-radius:50%; background:var(--yellow); animation:y3pulse 2s ease-in-out infinite; }
@keyframes y3pulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.4;transform:scale(.65)} }
.y3-tag-text { font-size:.62rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,198,11,.88); }
.y3-h1 { font-size:clamp(3.2rem,7.5vw,6rem); font-weight:800; line-height:.96; letter-spacing:-.04em; margin-bottom:1.4rem; }
.y3-h1 em { display:block; color:var(--yellow); font-style:italic; font-weight:700; }
.y3-sub { font-size:clamp(1rem,1.5vw,1.16rem); font-weight:400; color:rgba(255,255,255,.78); max-width:58ch; line-height:1.66; margin-bottom:1.5rem; }
.y3-ctas { display:flex; gap:.85rem; flex-wrap:wrap; margin-top:.35rem; margin-bottom:1.65rem; }
/* Stat strip */
.y3-stats { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid rgba(255,255,255,.1); padding-top:1rem; gap:0; margin-top:1rem; }
.y3-stat-l { font-size:.56rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--yellow); opacity:.75; margin-bottom:.18rem; }
.y3-stat-v { font-size:.86rem; font-weight:700; color:rgba(255,255,255,.82); }
/* Countdown */
.y3-hero-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(340px,420px); gap:3.5rem; align-items:start; margin-top:.8rem;  }

/* -- NUMBERS BAND - light -- */
.y3-band { background:var(--yellow); padding:1.05rem var(--pad); }
.y3-band-inner { max-width:none; margin:0 auto; display:grid; grid-template-columns:repeat(4,1fr); gap:0; text-align:center; }
.y3-band-item { padding:.25rem .5rem; border-right:1px solid rgba(0,0,0,.12); }
.y3-band-item:last-child { border-right:none; }
.y3-band-n { font-size:1.6rem; font-weight:800; color:var(--black); line-height:1; letter-spacing:-.02em; }
.y3-band-l { font-size:.58rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:rgba(0,0,0,.55); margin-top:.22rem; }

/* -- INTRO - white -- */
.y3-intro { background:var(--white); padding:clamp(4rem,9vw,6.5rem) var(--pad); }
.y3-intro-inner { max-width:none; margin:0 auto; }
.y3-intro-grid { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center; }
.y3-intro-h { font-size:clamp(1.8rem,3.4vw,2.7rem); font-weight:800; color:var(--black); line-height:1.06; letter-spacing:-.03em; margin-bottom:1rem; }
.y3-intro-h em { color:var(--yellow); font-style:normal; }
.y3-intro-body { font-size:1rem; color:var(--ink3); line-height:1.85; margin-bottom:1rem; }
/* Checklist */
.y3-checks { list-style:none; display:flex; flex-direction:column; gap:.65rem; margin-top:1.5rem; }
.y3-checks li { display:flex; align-items:flex-start; gap:.75rem; font-size:.98rem; color:var(--ink2); line-height:1.55; }
.y3-check-icon { width:22px; height:22px; border-radius:50%; background:var(--yellow); display:flex; align-items:center; justify-content:center; font-size:.65rem; color:var(--black); font-weight:800; flex-shrink:0; margin-top:.1rem; }
/* Image mosaic */
.y3-mosaic { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:200px 200px; gap:.75rem; }
.y3-mosaic-img { border-radius:3px; object-fit:cover; width:100%; height:100%; display:block; background:var(--light); }
.y3-mosaic-img:first-child { grid-row:span 2; height:100%; }
.y3-mosaic-img.tall { grid-row:span 2; }

/* -- STREAM PICKER - white, interactive -- */
.y3-streams { background:var(--off); padding:clamp(4rem,9vw,6.5rem) var(--pad); }
.y3-streams-inner { max-width:none; margin:0 auto; }
.y3-stream-pills { display:flex; gap:.8rem; flex-wrap:wrap; margin:1.8rem 0 0; padding:.65rem; background:var(--white); border:1px solid var(--rule); border-bottom:none; box-shadow:0 8px 22px rgba(0,11,34,.04); }
.y3-spill { display:flex; align-items:center; justify-content:center; gap:.65rem; min-height:48px; padding:.78rem 1.35rem; border-radius:100px; border:2px solid #d7e0ea; background:var(--white); cursor:pointer; transition:all .22s; font-size:.96rem; font-weight:800; color:var(--ink2); box-shadow:0 3px 10px rgba(0,11,34,.04); }
.y3-spill:hover { border-color:var(--yellow); color:var(--black); transform:translateY(-2px); box-shadow:0 10px 24px rgba(0,11,34,.09); }
.y3-spill.active { background:var(--black); border-color:var(--black); color:var(--white); box-shadow:0 12px 30px rgba(0,11,34,.2); }
.y3-spill-dot { width:9px; height:9px; border-radius:50%; background:#d7e0ea; flex-shrink:0; transition:background .2s; }
.y3-spill.active .y3-spill-dot { background:var(--yellow); }
/* Stream panels */
.y3-spanel { display:none; background:linear-gradient(135deg,#ffffff 0%,#ffffff 62%,rgba(255,198,11,.1) 100%); border:1px solid var(--rule); border-top:3px solid var(--yellow); border-radius:3px; margin-top:0; padding:2.45rem 2.7rem; animation:y3fadeup .3s ease; box-shadow:0 14px 34px rgba(0,11,34,.055); position:relative; overflow:hidden; }
.y3-spanel.active { display:block; }
.y3-spanel::after { content:attr(data-mark); position:absolute; right:1.6rem; bottom:-.9rem; font-size:5.6rem; font-weight:800; line-height:1; color:rgba(255,198,11,.12); pointer-events:none; }
@keyframes y3fadeup { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:none} }
.y3-sp-ey { font-size:.64rem; font-weight:800; letter-spacing:.22em; text-transform:uppercase; color:#7A5C00; margin-bottom:.6rem; }
.y3-sp-h { font-size:clamp(1.55rem,2.55vw,2.2rem); font-weight:800; color:var(--black); margin-bottom:.85rem; letter-spacing:-.02em; max-width:32ch; }
.y3-sp-body { font-size:1.03rem; color:var(--ink3); line-height:1.68; margin-bottom:1.25rem; max-width:92ch; }
.y3-sp-ul { list-style:none; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.6rem 1rem; max-width:1050px; }
.y3-sp-ul li { display:flex; gap:.6rem; font-size:.95rem; color:var(--ink2); line-height:1.45; background:rgba(255,255,255,.72); border:1px solid rgba(215,224,234,.75); padding:.58rem .75rem; border-radius:3px; }
.y3-sp-ul li::before { content:"→"; color:var(--yellow); font-weight:800; flex-shrink:0; }
.y3-sp-aside { display:flex; flex-direction:column; gap:1rem; }
.y3-sp-stat { padding:1.4rem; background:var(--off); border-left:4px solid var(--yellow); }
.y3-sp-stat-n { font-size:2rem; font-weight:800; color:var(--black); letter-spacing:-.03em; line-height:1; }
.y3-sp-stat-l { font-size:.72rem; color:var(--ink3); margin-top:.28rem; }
.y3-sp-tags-box { padding:1.2rem 1.4rem; background:var(--white); border:1px solid var(--rule); }
.y3-sp-tags-title { font-size:.6rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--ink3); margin-bottom:.55rem; }
.y3-sp-tags { display:flex; flex-wrap:wrap; gap:.38rem; }
.y3-sp-tag { padding:.24rem .7rem; font-size:.72rem; font-weight:600; background:var(--off); color:var(--ink2); border:.5px solid var(--rule); border-radius:100px; }
.y3-sp-note { display:inline-block; margin-top:1rem; padding:.78rem 1rem; background:var(--yellow-lt); border-left:3px solid var(--yellow); font-size:.9rem; font-weight:700; color:var(--ink2); line-height:1.45; }
.y3-sp-chips { display:flex; flex-wrap:wrap; gap:.45rem; margin-top:1.05rem; position:relative; z-index:1; }
.y3-sp-chip { display:inline-flex; align-items:center; min-height:32px; padding:.42rem .75rem; background:var(--black); color:var(--white); border-radius:100px; font-size:.68rem; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }

/* -- PHOTO STRIP -- */
.y3-photos { background:var(--black); padding:0; overflow:hidden; height:260px; display:flex; gap:4px; }
.y3-photo { flex:1; object-fit:cover; display:block; filter:brightness(.75) saturate(.9); transition:flex .4s ease, filter .4s ease; cursor:pointer; }
.y3-photo:hover { flex:2.5; filter:brightness(1) saturate(1); }

/* ── WHAT WE COVER ── */
.y3-cover { background:var(--off); padding:clamp(4rem,9vw,6.5rem) var(--pad); }
.y3-cover-inner { max-width:none; margin:0 auto; text-align:center; }
.y3-cover-title { font-size:clamp(1.9rem,4vw,3rem); font-weight:500; letter-spacing:.16em; text-transform:uppercase; color:var(--black); margin-bottom:1.45rem; }
.y3-cover-lead { max-width:980px; margin:0 auto; font-size:1rem; line-height:1.7; color:var(--ink2); }
.y3-cover-sub { margin:3rem 0 2rem; font-size:clamp(1.2rem,2.2vw,1.7rem); font-weight:800; color:var(--black); }
.y3-cover-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:4.5rem 1.6rem; margin-top:4rem; }
.y3-cover-card { min-height:190px; perspective:1000px; position:relative; }
.y3-cover-card-inner { position:relative; width:100%; height:100%; min-height:190px; transform-style:preserve-3d; transition:transform .55s ease; }
.y3-cover-card:hover .y3-cover-card-inner, .y3-cover-card:focus-within .y3-cover-card-inner { transform:rotateY(180deg); }
.y3-cover-face { position:absolute; inset:0; border-radius:3px; background:var(--white); border:1px solid var(--rule); box-shadow:0 12px 26px rgba(0,11,34,.05); -webkit-backface-visibility:hidden; backface-visibility:hidden; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:3.2rem 1.4rem 1.6rem; }
.y3-cover-front { border-top:4px solid var(--yellow); }
.y3-cover-back { transform:rotateY(180deg); background:var(--black); border-top:4px solid var(--cyan); color:var(--white); padding:2rem; }
.y3-cover-icon { position:absolute; top:-3.45rem; left:50%; transform:translateX(-50%); width:6rem; height:6rem; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:2.35rem; color:var(--white); background:linear-gradient(180deg,var(--cyan) 0%,#0051B8 54%,var(--black) 100%); box-shadow:0 10px 24px rgba(0,11,34,.18); z-index:2; }
.y3-cover-name { font-size:clamp(1.35rem,2.5vw,2.05rem); font-weight:400; letter-spacing:.12em; line-height:1.34; text-transform:uppercase; color:var(--black); }
.y3-cover-back .y3-cover-name { color:var(--yellow); font-size:.88rem; font-weight:800; letter-spacing:.12em; margin-bottom:.75rem; }
.y3-cover-desc { font-size:.86rem; line-height:1.72; color:rgba(255,255,255,.72); max-width:32ch; }

/* ── FACULTY QUOTES ── */
.y3-faculty { background:var(--white); padding:clamp(4rem,9vw,6.5rem) var(--pad); }
.y3-faculty-inner { max-width:none; margin:0 auto; }
.y3-fq-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-top:2.5rem; }
.y3-fq { padding:1.8rem; border:1px solid var(--rule); border-top:3px solid var(--cyan); background:var(--white); transition:transform .2s, box-shadow .2s; }
.y3-fq:hover { transform:translateY(-3px); box-shadow:0 10px 26px rgba(0,0,0,.08); }
.y3-fq-quote { font-size:.88rem; font-style:italic; color:var(--ink2); line-height:1.65; margin-bottom:.9rem; border-left:2px solid var(--cyan); padding-left:.75rem; }
.y3-fq-ph { width:44px; height:44px; border-radius:50%; object-fit:cover; border:2px solid var(--cyan-lt); margin-right:.7rem; display:inline-block; vertical-align:middle; background:var(--light); }
.y3-fq-name { font-size:.8rem; font-weight:700; color:var(--black); }
.y3-fq-role { font-size:.68rem; color:var(--ink3); line-height:1.4; margin-top:.1rem; }
.y3-video-testimonials { display:grid; grid-template-columns:repeat(2,1fr); gap:1.5rem; margin-top:1.6rem; }
.y3-video-card { border:1px solid var(--rule); border-top:3px solid var(--yellow); background:var(--white); padding:1rem; }
.y3-video-card video { width:100%; aspect-ratio:16/9; display:block; background:var(--black); object-fit:cover; }
.y3-video-caption { font-size:.68rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:#7A5C00; margin-top:.75rem; }

/* ── WHAT YOU GET - flip cards ── */
.y3-get { background:var(--off); padding:clamp(4rem,9vw,6.5rem) var(--pad); }
.y3-get-inner { max-width:none; margin:0 auto; }
.y3-get-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-top:2.5rem; }
.y3-flip { height:200px; perspective:900px; cursor:pointer; }
.y3-flip-inner { position:relative; width:100%; height:100%; transform-style:preserve-3d; transition:transform .5s ease; }
.y3-flip:hover .y3-flip-inner { transform:rotateY(180deg); }
.y3-flip-front, .y3-flip-back { position:absolute; inset:0; -webkit-backface-visibility:hidden; backface-visibility:hidden; border-radius:3px; padding:1.8rem; display:flex; flex-direction:column; justify-content:flex-end; }
.y3-flip-front { background:var(--white); border:1px solid var(--rule); border-top:4px solid var(--yellow); }
.y3-flip-back { background:var(--black); transform:rotateY(180deg); border-top:4px solid var(--cyan); }
.y3-flip-icon { font-size:1.8rem; margin-bottom:.6rem; }
.y3-flip-title { font-size:.92rem; font-weight:800; color:var(--black); letter-spacing:-.01em; }
.y3-flip-back .y3-flip-title { color:var(--yellow); font-size:.84rem; margin-bottom:.4rem; }
.y3-flip-back-body { font-size:.78rem; color:rgba(255,255,255,.65); line-height:1.65; }
.y3-flip-hint { font-size:.58rem; color:var(--ink3); font-weight:600; letter-spacing:.1em; text-transform:uppercase; margin-top:auto; }

/* -- STUDENT VOICES -- */
.y3-voices { background:var(--white); padding:clamp(3.6rem,7vw,5.2rem) var(--pad); }
.y3-voices-inner { max-width:none; margin:0 auto; }
.y3-voices-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1.25rem; margin-top:2.2rem; align-items:stretch; }
.y3-vc { padding:1.45rem; border-radius:3px; min-height:250px; display:flex; flex-direction:column; justify-content:flex-start; background:var(--off); border:1px solid var(--rule); border-top:3px solid var(--cyan); }
.y3-vc:nth-child(3n) { border-top-color:var(--yellow); background:#FFF9DE; }
.y3-vc-photo { width:4.1rem; height:4.1rem; border-radius:50%; object-fit:cover; border:3px solid var(--white); box-shadow:0 0 0 2px rgba(0,160,223,.2); margin-bottom:1rem; }
.y3-vc-q { font-size:.86rem; font-style:italic; line-height:1.6; margin-bottom:1rem; color:var(--ink2); }
.y3-vc-meta { margin-top:1.25rem; }
.y3-vc-name { font-size:.78rem; font-weight:800; color:var(--black); }
.y3-vc-from { font-size:.66rem; margin-top:.14rem; color:var(--ink3); }

/* -- FAQ FOR PARENTS -- */
.y3-faq { background:var(--off); padding:clamp(4rem,9vw,6.5rem) var(--pad); }
.y3-faq-inner { max-width:none; margin:0 auto; }
.y3-faq-grid { display:grid; grid-template-columns:1fr 1fr; gap:3rem; margin-top:2.5rem; }
.y3-acc { border:1px solid var(--rule); background:var(--white); margin-bottom:-1px; }
.y3-acc-btn { width:100%; padding:1.1rem 1.4rem; background:none; border:none; text-align:left; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:1rem; font-family:var(--sans); font-size:.86rem; font-weight:700; color:var(--black); transition:background .15s; }
.y3-acc-btn:hover { background:var(--off); }
.y3-acc-btn.open { background:var(--yellow); color:var(--black); }
.y3-acc-arr { font-size:.8rem; font-weight:800; color:var(--ink3); transition:transform .2s, color .15s; flex-shrink:0; }
.y3-acc-btn.open .y3-acc-arr { transform:rotate(45deg); color:var(--black); }
.y3-acc-body { display:none; padding:.1rem 1.4rem 1.2rem; font-size:.84rem; color:var(--ink3); line-height:1.78; }
.y3-acc-body.open { display:block; }

/* -- ENROL + FORM -- */
.y3-enrol { background:var(--black); padding:clamp(4rem,9vw,6.5rem) var(--pad); }
.y3-enrol-inner { max-width:none; margin:0 auto; }
.y3-enrol-grid { display:grid; grid-template-columns:1fr 1.1fr; gap:4.5rem; align-items:start; }
.y3-locs { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-top:2rem; }
.y3-loc { padding:1.8rem; border-radius:3px; border:1px solid rgba(255,255,255,.1); transition:transform .2s; }
.y3-loc:hover { transform:translateY(-3px); }
.y3-loc-ox { background:rgba(255,198,11,.08); border-color:rgba(255,198,11,.25); }
.y3-loc-dxb { background:rgba(255,255,255,.04); }
.y3-loc-badge { font-size:.6rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; margin-bottom:.55rem; display:block; }
.y3-loc-ox .y3-loc-badge { color:var(--yellow); }
.y3-loc-dxb .y3-loc-badge { color:rgba(255,255,255,.4); }
.y3-loc-city { font-size:1.4rem; font-weight:800; letter-spacing:-.03em; line-height:1; margin-bottom:.28rem; }
.y3-loc-ox .y3-loc-city { color:var(--white); }
.y3-loc-dxb .y3-loc-city { color:rgba(255,255,255,.55); }
.y3-loc-sub { font-size:.76rem; line-height:1.5; margin-bottom:.85rem; }
.y3-loc-ox .y3-loc-sub { color:rgba(255,255,255,.45); }
.y3-loc-dxb .y3-loc-sub { color:rgba(255,255,255,.28); }
/* Apply form */
.y3-form-wrap { background:rgba(255,255,255,.04); border:1px solid rgba(255,198,11,.2); padding:2.4rem; border-radius:3px; }
.y3-form-title { font-size:1.2rem; font-weight:800; color:var(--white); margin-bottom:.25rem; letter-spacing:-.01em; }
.y3-form-sub { font-size:.74rem; color:var(--yellow); font-weight:600; margin-bottom:1.5rem; opacity:.8; }
.y3-fg { margin-bottom:.82rem; }
.y3-fl { display:block; font-size:.6rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--yellow); margin-bottom:.38rem; opacity:.72; }
.y3-fi,.y3-fsel,.y3-fta { width:100%; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); color:var(--white); font-family:var(--sans); font-size:.84rem; font-weight:400; padding:.72rem .9rem; border-radius:2px; outline:none; transition:border-color .2s; }
.y3-fi:focus,.y3-fsel:focus,.y3-fta:focus { border-color:var(--yellow); background:rgba(255,198,11,.06); }
.y3-fi::placeholder,.y3-fta::placeholder { color:rgba(255,255,255,.25); }
.y3-fsel { appearance:none; cursor:pointer; }
.y3-fsel option { background:#000B22; color:var(--white); }
.y3-fta { resize:vertical; min-height:68px; }
.y3-f2 { display:grid; grid-template-columns:1fr 1fr; gap:.7rem; }
.y3-submit { width:100%; padding:.9rem; background:var(--yellow); color:var(--black); font-family:var(--sans); font-size:.72rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; border:none; cursor:pointer; border-radius:2px; margin-top:.3rem; transition:all .2s; }
.y3-submit:hover { background:var(--yellow-dk); color:var(--white); transform:translateY(-2px); }
.y3-form-note { font-size:.64rem; color:rgba(255,255,255,.25); text-align:center; margin-top:.5rem; }

@media(max-width:960px){
  .y3-hero-grid,.y3-intro-grid,.y3-spanel.active,.y3-faq-grid,.y3-enrol-grid,.y3-locs,.y3-voices-grid{grid-template-columns:1fr;gap:2rem}
  .y3-hero-aside{margin-top:0;justify-self:stretch;max-width:none}
  .y3-fq-grid,.y3-get-grid,.y3-video-testimonials,.y3-cover-grid{grid-template-columns:1fr}
  .y3-band-inner{grid-template-columns:repeat(2,1fr);row-gap:.85rem}
  .y3-stats{grid-template-columns:1fr 1fr;gap:1rem}
  .y3-photos{height:180px}
  .y3-stream-pills{flex-wrap:wrap}
  .y3-sp-ul{grid-template-columns:1fr}
  .y3-spanel{padding:2rem}
}
@media(min-width:961px) and (max-height:900px){
  .y3-inner{padding-top:0;padding-bottom:1.5rem}
  .y3-punch-line{font-size:clamp(3rem,6.2vw,5.6rem)}
  .y3-punch-sub-line{font-size:clamp(1.12rem,2vw,1.65rem)}
  .y3-sub{line-height:1.58;margin-bottom:1.1rem}
  .y3-ctas{margin-bottom:1.15rem}
  .y3-stats{padding-top:.85rem;margin-top:.85rem}
  .y3-aside-card{padding:1rem 1.15rem}
  .y3-hero-aside{gap:.6rem;margin-top:clamp(-8rem,-8vw,-5rem)}
}
@media(max-width:560px){
  .y3-h1{font-size:clamp(2.6rem,11vw,3.4rem)}
  .y3-inner{padding:0 var(--pad) 2rem}
  .y3-live-badge{font-size:.56rem;letter-spacing:.12em;margin-bottom:1rem}
  .y3-punch{margin-bottom:1rem}
  .y3-punch-line{font-size:clamp(2.65rem,15vw,4rem);line-height:.92}
  .y3-punch-sub-line{font-size:clamp(1.05rem,6vw,1.45rem)}
  .y3-sub{font-size:.92rem;line-height:1.62;margin-bottom:1.2rem}
  .y3-ctas .btn{width:100%;text-align:center}
  .y3-stats{grid-template-columns:1fr 1fr;padding-top:1rem;margin-top:1rem}
  .y3-hero-aside{gap:.75rem}
  .y3-aside-card{padding:1rem}
  .y3-aside-venue{font-size:1.1rem}
  .y3-f2{grid-template-columns:1fr}
  .y3-mosaic{grid-template-rows:160px 160px}
  .y3-spill{width:100%;justify-content:flex-start}
  .y3-sp-h{font-size:clamp(1.45rem,8vw,1.9rem)}
  .y3-sp-body,.y3-sp-ul li{font-size:.95rem}
}


/* Mobile flip card fix - show content on tap / always visible */
@media(max-width:760px) {
  .y3-flip { height:auto; perspective:none; }
  .y3-flip-inner { transform:none !important; transition:none; position:relative; }
  .y3-flip-front { position:relative; backface-visibility:visible; -webkit-backface-visibility:visible; border-bottom:none; border-radius:3px 3px 0 0; }
  .y3-flip-back { position:relative; transform:none; backface-visibility:visible; -webkit-backface-visibility:visible; border-top:none; border-radius:0 0 3px 3px; display:block !important; }
  .y3-flip-hint { display:none; }
}


/* YEP hero v3 redesign */
.y3-live-badge {
  display: inline-flex; align-items: center; gap: .5rem;
  padding: .28rem .85rem; background: rgba(255,198,11,.12);
  border: 1px solid rgba(255,198,11,.3); border-radius: 100px;
  font-size: .65rem; font-weight: 700; letter-spacing: .18em;
  text-transform: uppercase; color: rgba(255,198,11,.9);
  margin-bottom: 1.45rem;
}
.y3-live-dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--yellow);
  animation: y3pulse 1.8s ease-in-out infinite;
}
/* Punchy 3-line opener */
.y3-punch { margin-bottom: 1.25rem; line-height: .9; }
.y3-punch-line {
  font-size: clamp(3.2rem, 7.2vw, 6.6rem);
  font-weight: 800; letter-spacing: -.04em;
  color: var(--white); display: block;
}
.y3-punch-yellow { color: var(--yellow); font-style: italic; }
.y3-punch-sub-line {
  font-size: clamp(1.25rem, 2.45vw, 2rem);
  font-weight: 700; color: rgba(255,255,255,.55);
  font-style: normal; letter-spacing: -.02em;
  margin-top: .4rem;
}


/* YEP hero aside panel (replaces countdown) */
.y3-hero-aside { display:flex; flex-direction:column; gap:.8rem; max-width:420px; justify-self:end; margin-top:clamp(-9rem,-9vw,-5.5rem); }
.y3-aside-card {
  background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.18);
  border-top:3px solid var(--yellow); padding:1.2rem 1.4rem; border-radius:3px;
  backdrop-filter:blur(10px);
}
.y3-aside-card-dubai { border-top-color:var(--cyan); background:rgba(0,160,223,.08); }
.y3-aside-card-dubai .y3-aside-ey { color:var(--cyan); }
.y3-aside-ey { font-size:.56rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--yellow); opacity:.85; margin-bottom:.45rem; }
.y3-aside-venue { font-size:1.28rem; font-weight:800; color:var(--white); line-height:1.14; letter-spacing:-.02em; margin-bottom:.3rem; }
.y3-aside-venue span { color:rgba(255,255,255,.55); font-size:.92rem; font-weight:500; }
.y3-aside-dates { font-size:.76rem; color:rgba(255,255,255,.55); font-weight:500; }
.y3-aside-btn-secondary { display:block;text-align:center;font-size:.7rem;width:100%;background:rgba(255,255,255,.08);color:rgba(255,255,255,.86);border:1px solid rgba(255,255,255,.16);padding:.86rem 1rem; }
.y3-aside-btn-secondary:hover { background:rgba(0,160,223,.18); color:var(--white); }


/* ═══════════════════════════════════════════════════════════════
   WORDPRESS / ELEMENTOR THEME NEUTRALIZER
   Scoped to body.infinitum-education-full-page (set by the PHP
   template via body_class()). Reverses Elementor global-kit and
   OceanWP base overrides so the site renders exactly as the
   standalone HTML reference at all zoom levels.
   This block MUST stay at the end of this file.
═══════════════════════════════════════════════════════════════ */

/* ── Admin bar: shift nav down when wp-admin bar is visible ──
   Desktop: admin bar = 32 px. Mobile (≤782 px): admin bar = 46 px.
   JS sync() overrides these with the measured values at runtime,
   but these CSS rules act as an instant no-flash fallback. ── */
body.admin-bar.infinitum-education-full-page {
  padding-top: calc(76px + 32px) !important;
}
body.admin-bar.infinitum-education-full-page .nav {
  top: 32px !important;
}
@media screen and (max-width: 782px) {
  body.admin-bar.infinitum-education-full-page {
    padding-top: calc(76px + 46px) !important;
  }
  body.admin-bar.infinitum-education-full-page .nav {
    top: 46px !important;
  }
}

/* ── Body base typography ── */
body.infinitum-education-full-page {
  font-family: 'Montserrat', system-ui, sans-serif !important;
  font-size: 16px !important;
  line-height: 1.65 !important;
  color: #000B22 !important;
  background: var(--black) !important;
  -webkit-font-smoothing: antialiased !important;
  padding-top: 76px !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  max-width: none !important;
  width: 100% !important;
  overflow-x: hidden !important;
}

/* ── Link reset ── */
body.infinitum-education-full-page a {
  color: inherit !important;
  text-decoration: none !important;
}

/* ── Heading element resets
   Elementor kit injects:
     h1 { font-size: 72px; text-transform: capitalize }
     h2 { font-size: 36px; text-transform: uppercase; letter-spacing: 1.7px }
   All visual sizing in this site is class-based (.sec-h, .h-lg …)
   so resetting text-transform/font-family on element selectors
   causes zero visual regression. Font-size and letter-spacing are
   overridden per-class below. ── */
body.infinitum-education-full-page h1,
body.infinitum-education-full-page h2,
body.infinitum-education-full-page h3,
body.infinitum-education-full-page h4,
body.infinitum-education-full-page h5,
body.infinitum-education-full-page h6 {
  font-family: 'Montserrat', system-ui, sans-serif !important;
  text-transform: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* ── Per-class overrides: font-size, letter-spacing, line-height
   These carry !important to beat Elementor's fixed-px element rules
   at equal specificity, regardless of stylesheet load order. ── */

/* h1 */
body.infinitum-education-full-page .hero-title {
  font-size: clamp(2.8rem, 6.2vw, 4.8rem) !important;
  font-weight: 800 !important;
  line-height: 1.02 !important;
  letter-spacing: -.03em !important;
}
body.infinitum-education-full-page .hero-h1 {
  font-size: clamp(2.8rem, 6.5vw, 5rem) !important;
  font-weight: 800 !important;
  line-height: 1.01 !important;
  letter-spacing: -.03em !important;
}
body.infinitum-education-full-page .yep-h1,
body.infinitum-education-full-page .yep2-h1 {
  font-size: clamp(2.8rem, 6.2vw, 4.8rem) !important;
  font-weight: 800 !important;
  line-height: 1.02 !important;
  letter-spacing: -.03em !important;
}
body.infinitum-education-full-page .y3-h1 {
  font-size: clamp(3.2rem, 7.5vw, 6rem) !important;
  font-weight: 800 !important;
  line-height: .96 !important;
  letter-spacing: -.04em !important;
}
body.infinitum-education-full-page .about-h1 {
  font-size: clamp(2.4rem, 5vw, 3.8rem) !important;
  font-weight: 800 !important;
  line-height: 1.06 !important;
  letter-spacing: -.03em !important;
}
body.infinitum-education-full-page .y3-punch-line {
  font-size: clamp(3.2rem, 7.2vw, 6.6rem) !important;
  font-weight: 800 !important;
  letter-spacing: -.04em !important;
}
/* Sub-line is intentionally smaller — must override AFTER .y3-punch-line */
body.infinitum-education-full-page .y3-punch-sub-line {
  font-size: clamp(1.25rem, 2.45vw, 2rem) !important;
  font-weight: 700 !important;
  color: rgba(255,255,255,.55) !important;
  letter-spacing: -.02em !important;
}
/* Restore responsive font scaling overridden by !important above */
@media(min-width:961px) and (max-height:900px) {
  body.infinitum-education-full-page .y3-punch-line { font-size: clamp(3rem,6.2vw,5.6rem) !important; }
  body.infinitum-education-full-page .y3-punch-sub-line { font-size: clamp(1.12rem,2vw,1.65rem) !important; }
}
@media(max-width:560px) {
  body.infinitum-education-full-page .y3-punch-line { font-size: clamp(2.65rem,15vw,4rem) !important; }
  body.infinitum-education-full-page .y3-punch-sub-line { font-size: clamp(1.05rem,6vw,1.45rem) !important; }
}
/* YEP hero text color protection */
body.infinitum-education-full-page .y3-sub { color: rgba(255,255,255,.78) !important; font-size: clamp(1rem,1.5vw,1.16rem) !important; font-weight: 400 !important; }
body.infinitum-education-full-page .y3-live-badge { color: rgba(255,198,11,.9) !important; }
body.infinitum-education-full-page .y3-stat-l { color: #FFC60B !important; opacity: .75; }
body.infinitum-education-full-page .y3-stat-v { color: rgba(255,255,255,.82) !important; }
body.infinitum-education-full-page .y3-aside-ey { color: var(--yellow) !important; opacity: .85; }
body.infinitum-education-full-page .y3-aside-venue { color: #ffffff !important; }
body.infinitum-education-full-page .y3-aside-dates { color: rgba(255,255,255,.55) !important; }

/* h2 */
body.infinitum-education-full-page .sec-h {
  font-size: clamp(1.8rem, 3.2vw, 2.6rem) !important;
  font-weight: 800 !important;
  line-height: 1.08 !important;
  letter-spacing: -.02em !important;
}
body.infinitum-education-full-page .h-xl {
  font-size: clamp(2.6rem, 5.8vw, 4.4rem) !important;
  font-weight: 800 !important;
  line-height: 1.02 !important;
  letter-spacing: -.02em !important;
}
body.infinitum-education-full-page .h-lg {
  font-size: clamp(1.8rem, 3.4vw, 2.7rem) !important;
  font-weight: 700 !important;
  line-height: 1.08 !important;
  letter-spacing: -.01em !important;
}
body.infinitum-education-full-page .h-md {
  font-size: clamp(1.2rem, 2vw, 1.65rem) !important;
  font-weight: 700 !important;
  line-height: 1.18 !important;
}
body.infinitum-education-full-page .ifp-banner-h {
  font-size: clamp(1.5rem, 2.8vw, 2.2rem) !important;
  font-weight: 800 !important;
  line-height: 1.1 !important;
  letter-spacing: -.02em !important;
}
body.infinitum-education-full-page .pitch-title {
  font-size: clamp(1.8rem, 3.8vw, 2.9rem) !important;
  font-weight: 800 !important;
  letter-spacing: -.02em !important;
}
body.infinitum-education-full-page .y3-intro-h {
  font-size: clamp(1.8rem, 3.4vw, 2.7rem) !important;
  font-weight: 800 !important;
  line-height: 1.06 !important;
  letter-spacing: -.03em !important;
}
body.infinitum-education-full-page .yep2-apply-h {
  font-size: clamp(1.8rem, 3.2vw, 2.5rem) !important;
  font-weight: 800 !important;
  line-height: 1.08 !important;
  letter-spacing: -.02em !important;
}

/* h3 */
body.infinitum-education-full-page .prog-card-title {
  font-size: clamp(1.4rem, 2.4vw, 1.9rem) !important;
  font-weight: 800 !important;
  line-height: 1.1 !important;
  letter-spacing: -.02em !important;
}
body.infinitum-education-full-page .phase-title {
  font-size: 1.35rem !important;
  font-weight: 700 !important;
  letter-spacing: -.01em !important;
}
body.infinitum-education-full-page .y3-sp-h {
  font-size: clamp(1.55rem, 2.55vw, 2.2rem) !important;
  font-weight: 800 !important;
  letter-spacing: -.02em !important;
}

/* ── Paragraph and list font-family ── */
body.infinitum-education-full-page p,
body.infinitum-education-full-page li {
  font-family: 'Montserrat', system-ui, sans-serif !important;
}

/* ── OceanWP global wrapper constraints ── */
body.infinitum-education-full-page #outer-wrap,
body.infinitum-education-full-page #wrap,
body.infinitum-education-full-page #main,
body.infinitum-education-full-page #content-wrap,
body.infinitum-education-full-page .content-area,
body.infinitum-education-full-page .oceanwp-container,
body.infinitum-education-full-page .container,
body.infinitum-education-full-page #page,
body.infinitum-education-full-page .site,
body.infinitum-education-full-page .site-content,
body.infinitum-education-full-page #content,
body.infinitum-education-full-page .entry-content,
body.infinitum-education-full-page .post-inner,
body.infinitum-education-full-page .wp-block-group,
body.infinitum-education-full-page .wp-block-cover {
  max-width: none !important;
  padding-top: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  padding-bottom: 0 !important;
  margin-top: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  margin-bottom: 0 !important;
  width: 100% !important;
  float: none !important;
}

/* ── Prevent any OceanWP article/section wrapper from constraining layout ── */
body.infinitum-education-full-page article,
body.infinitum-education-full-page .page-wrap,
body.infinitum-education-full-page .page-header,
body.infinitum-education-full-page .page-header-inner {
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
}
/* ── Zero any theme-injected margins on section elements ── */
body.infinitum-education-full-page section {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
/* ── Hide WP page-header title block (still in DOM even if unstyled, takes line-height space) ── */
body.infinitum-education-full-page .page-header {
  display: none !important;
  height: 0 !important;
}
/* Hide OceanWP header/top-bar elements that may be injected but are not part of our template */
body.infinitum-education-full-page #masthead,
body.infinitum-education-full-page .site-header,
body.infinitum-education-full-page #main-header,
body.infinitum-education-full-page .top-bar {
  display: none !important;
}

/* ── Ensure nav and page divs fill full viewport width ── */
body.infinitum-education-full-page .nav {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box !important;
  height: 76px !important;
  overflow: visible !important;
}
body.infinitum-education-full-page .page {
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  padding-top: 0 !important;
}

/* ── Suppress OceanWP sticky-header wrappers / injected header clones ── */
body.infinitum-education-full-page #site-header-sticky-wrapper,
body.infinitum-education-full-page #site-header-inner-sticky,
body.infinitum-education-full-page .sticky-header-wrap,
body.infinitum-education-full-page #oceanwp-sticky-header,
body.infinitum-education-full-page #site-above-header-wrap,
body.infinitum-education-full-page #top-bar-wrap,
body.infinitum-education-full-page #scroll-up {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* ── Suppress any OceanWP/WP footer elements rendered below our custom content ── */
body.infinitum-education-full-page #site-footer,
body.infinitum-education-full-page #footer-wrap,
body.infinitum-education-full-page #footer-bottom,
body.infinitum-education-full-page #footer-inner,
body.infinitum-education-full-page #footer-widgets,
body.infinitum-education-full-page #footer-copyright,
body.infinitum-education-full-page .ocean-footer,
body.infinitum-education-full-page #colophon {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden !important;
}

/* ── Hero section top-of-page sections: remove 76px nav-offset padding that
   was designed for the standalone (no body.padding-top). In WordPress,
   body.padding-top already clears the fixed nav — the 76px inside
   calc(76px + clamp(…)) becomes pure extra whitespace. ── */
body.infinitum-education-full-page .hero-inner {
  padding-top: clamp(4rem, 8vw, 7rem) !important;
}
body.infinitum-education-full-page .yep2-hero-inner {
  padding-top: clamp(3.5rem, 7vw, 6rem) !important;
}

/* ══════════════════════════════════════════════════════════════
   SPACING & OVERLAP FIXES — v12
   Fixes: YEP hero text/aside stacking, mid-viewport crowding,
   stats-strip wrapping at 375 px, and horizontal overflow.
   ══════════════════════════════════════════════════════════════ */

/* 1 · YEP hero inner: zero the top padding so hero content sits flush
       below the fixed 76 px nav with no visible gap. OceanWP JS is fully
       deregistered on this template, so body padding-top:76px is stable. */
body.infinitum-education-full-page .y3-inner {
  padding-top: 0 !important;
}

/* 2 · Text elements that live ABOVE the hero grid must sit in front
       of the aside panel, which floats up via margin-top negative values.
       Without an explicit z-index these elements can be visually
       obscured by the aside on certain stacking contexts. */
.y3-live-badge,
.y3-punch,
.y3-sub {
  position: relative;
  z-index: 3;
}

/* 3 · Narrow the paragraph so it never reaches the aside column boundary.
       58ch at the WP-override font-size can exceed the left-column width
       at 961–1100 px viewports; 46ch keeps a safe margin. */
.y3-sub {
  max-width: 46ch;
}

/* 4 · Mid-size viewports (961–1199 px): the 2-column grid is active but
       the aside pull-up of clamp(-9rem,-9vw,-5.5rem) overshoots and crowds
       the paragraph text. Scale back the pull and tighten the aside width. */
@media (min-width: 961px) and (max-width: 1199px) {
  .y3-hero-grid {
    grid-template-columns: minmax(0, 1fr) minmax(300px, 340px) !important;
    gap: 2rem !important;
  }
  .y3-hero-aside {
    margin-top: clamp(-5.5rem, -6vw, -4rem) !important;
    max-width: 340px !important;
  }
}

/* 5 · Stat strip: at 375 px the four-column strip overflows.
       Force 2 × 2 grid so it wraps cleanly. */
@media (max-width: 560px) {
  .y3-stats {
    grid-template-columns: 1fr 1fr !important;
    gap: 0.75rem !important;
    padding-top: 1rem !important;
    margin-top: 1rem !important;
  }
  /* CTA button should fill the full mobile width */
  .y3-ctas .btn {
    width: 100% !important;
    justify-content: center !important;
  }
}

/* 6 · Prevent horizontal scroll caused by large punch text or the
       floating aside overflowing the viewport at any width. */
body.infinitum-education-full-page #page-yep,
.y3-hero {
  overflow-x: hidden;
}

/* ── HAMBURGER / MOBILE NAV DRAWER ── */

/* Hamburger button: hidden on desktop, flex on mobile */
.nav-hamburger {
  display: none;
  flex-direction: column;
  justify-content: space-between;
  width: 28px;
  height: 20px;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
  flex-shrink: 0;
}
.ham-bar {
  display: block;
  width: 100%;
  height: 2px;
  background: rgba(255,255,255,.75);
  border-radius: 2px;
  transition: transform .28s ease, opacity .22s ease, background .2s;
}
.nav-hamburger:hover .ham-bar,
.nav-hamburger:focus .ham-bar { background: #fff; }
/* Animate bars into × when open */
.nav-hamburger[aria-expanded="true"] .ham-bar:nth-child(1) {
  transform: translateY(9px) rotate(45deg);
}
.nav-hamburger[aria-expanded="true"] .ham-bar:nth-child(2) {
  opacity: 0;
  transform: scaleX(0);
}
.nav-hamburger[aria-expanded="true"] .ham-bar:nth-child(3) {
  transform: translateY(-9px) rotate(-45deg);
}

/* Semi-transparent overlay */
.nav-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,11,34,.7);
  z-index: 198;
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
}
.nav-overlay.open { display: block; }

/* Slide-in drawer (right edge, below nav bar) */
.nav-drawer {
  position: fixed;
  top: 76px;
  right: 0;
  bottom: 0;
  width: min(88vw, 300px);
  background: var(--black);
  /* Explicit white baseline so `color: inherit` on child <a> tags resolves
     to white rather than the dark body text colour */
  color: #ffffff;
  border-left: 1px solid rgba(0,160,223,.18);
  box-shadow: -8px 0 32px rgba(0,0,0,.45);
  z-index: 199;
  transform: translateX(100%);
  transition: transform .3s cubic-bezier(.4,0,.2,1);
  display: flex;
  flex-direction: column;
  padding: 1.6rem 1.4rem 2.5rem;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.nav-drawer.open {
  transform: translateX(0);
}

/* Drawer nav links — specificity (0,2,0) beats the body `a { color: inherit !important }`
   rule at (0,1,2) so these colours are never overridden by OceanWP/theme resets */
.nav-drawer .nav-drawer-link {
  display: block;
  padding: .92rem 0;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: rgba(255,255,255,.65) !important;
  border-bottom: 1px solid rgba(255,255,255,.07);
  cursor: pointer;
  transition: color .18s, padding-left .18s;
  outline: none;
  -webkit-tap-highlight-color: transparent;
  text-decoration: none !important;
}
.nav-drawer .nav-drawer-link:hover,
.nav-drawer .nav-drawer-link:focus { color: #ffffff !important; padding-left: .4rem; }
.nav-drawer .nav-drawer-link.active { color: #ffffff !important; border-bottom-color: var(--cyan); }

/* Drawer CTA buttons */
.nav-drawer-ctas {
  display: flex;
  flex-direction: column;
  gap: .65rem;
  margin-top: auto;
  padding-top: 2rem;
}
.nav-drawer-ctas .nav-btn {
  width: 100%;
  text-align: center;
  padding: .75rem 1rem;
  font-size: .62rem;
}

/* Mobile breakpoint: hide desktop nav, show hamburger */
@media (max-width: 767px) {
  .nav-links { display: none !important; }
  .nav-ctas  { display: none !important; }
  .nav-hamburger { display: flex; }
}

/* Admin bar: push drawer down to stay below nav */
body.admin-bar .nav-drawer {
  top: calc(76px + 32px);
}
@media screen and (max-width: 782px) {
  body.admin-bar .nav-drawer {
    top: calc(76px + 46px);
  }
}

/* Body scroll lock while drawer is open */
body.nav-open {
  overflow: hidden !important;
  touch-action: none;
}

/* ══════════════════════════════════════════════════════════════
   COMPREHENSIVE MOBILE RESPONSIVE IMPROVEMENTS
   Covers: nav hamburger gap, inline grid collapse, touch
   targets, footer layout, small-screen polish across all pages
   ══════════════════════════════════════════════════════════════ */

/* ── 1. NAV: show hamburger at ≤1100px (when desktop links disappear) ──
   Without this rule, 768–1100px viewports have no navigation at all —
   the links are hidden but the hamburger isn't visible yet. */
@media (max-width: 1100px) {
  .nav-hamburger { display: flex; }
  .nav-ctas      { display: none; }
}

/* ── 2. TOUCH TARGETS: minimum 44 × 44 px on all interactive elements ── */
.btn         { min-height: 44px; }
.nav-btn     { min-height: 44px; padding-top: .6rem; padding-bottom: .6rem; }
.nav-hamburger {
  width: 44px !important;
  height: 44px !important;
  align-items: center;
  justify-content: space-between;
  padding: 12px 8px;
}
.y3-acc-btn  { min-height: 48px; }
.y3-submit,
.fsub,
.yep2-submit { min-height: 48px; }
/* Social link buttons (inline-styled in contact section) get larger tap area */
.footer-links a { padding-top: .45rem; padding-bottom: .45rem; }

/* ── 3. ABOUT STORY GRID: 2-col → 1-col on tablets/mobile ──
   Class `about-story-grid` was added to the inline-styled div in the HTML.
   !important is required to override the inline style attribute. */
@media (max-width: 860px) {
  .about-story-grid {
    grid-template-columns: 1fr !important;
    gap: 2.5rem !important;
  }
}

/* ── 4. ABOUT VALUES MINI: 3-col → 2-col → 1-col ──
   The Inspire / Partner / Transform value badges inside the about story aside. */
@media (max-width: 860px) {
  .about-values-mini {
    grid-template-columns: 1fr 1fr !important;
  }
}
@media (max-width: 480px) {
  .about-values-mini {
    grid-template-columns: 1fr !important;
  }
}

/* ── 5. ABOUT CONTACT GRID: 2-col → 1-col on tablets/mobile ── */
@media (max-width: 860px) {
  .about-contact-grid {
    grid-template-columns: 1fr !important;
    gap: 2.5rem !important;
  }
}

/* ── 6. IFP FACULTY META: description + Oxford pullquote 2-col → 1-col ── */
@media (max-width: 860px) {
  .ifp-fac-meta {
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
  }
}

/* ── 7. FOOTER: single column on very small screens ── */
@media (max-width: 480px) {
  .footer-top {
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
  }
}

/* ── 8. PROGRAMME CARDS: full-width padding & stacked CTAs on mobile ── */
@media (max-width: 560px) {
  .prog-card {
    padding: 2rem 1.5rem 1.8rem;
  }
  .prog-card-body {
    max-width: none;
  }
  .prog-card-actions {
    flex-direction: column;
    align-items: stretch;
  }
  /* IFP card has no .prog-card-actions wrapper — stretch its lone CTA to full width */
  .prog-card.ifp .prog-card-cta {
    display: flex;
    width: 100%;
    justify-content: center;
    text-align: center;
  }
  .prog-card-cta {
    justify-content: center;
    text-align: center;
  }
}

/* ── 9. IFP ALERT: wrap gracefully on narrow screens ── */
@media (max-width: 600px) {
  .alert-inner {
    flex-direction: column;
    gap: .65rem;
    text-align: center;
  }
  .alert-btn {
    align-self: center;
  }
}

/* ── 10. IFP COMPARISON TABLE: collapse to single column on very small screens ── */
@media (max-width: 480px) {
  .cmp-hdr { grid-template-columns: 1fr !important; }
  .cmp-h:not(:first-child)   { display: none; }
  .cmp-row { grid-template-columns: 1fr !important; gap: .5rem; }
  .cmp-arr { display: none; }
  .cmp-bad { border-left-color: rgba(139,31,31,.5); }
}

/* ── 11. STATS GRID (IFP at-a-glance): single column on very small screens ── */
@media (max-width: 480px) {
  .stats-grid { grid-template-columns: 1fr !important; }
}

/* ── 12. YEP PHOTO STRIP: lower height on very small screens ── */
@media (max-width: 560px) {
  .y3-photos { height: 130px; }
}

/* ── 13. NAV LOGO: tighten logo on very small screens to avoid crowding ── */
@media (max-width: 375px) {
  .nav-logo-text { display: none; }
  .nav-logo img  { height: 38px; }
}

/* ── 14. HERO TRUST STRIP: readable on all small screens ── */
@media (max-width: 400px) {
  .hero-trust { grid-template-columns: 1fr !important; }
  .tr-item    { border-right: none; padding: .5rem 0; }
}

/* ── 15. CREDIBILITY BAND: keep 2-col but tighten on 375 px ── */
@media (max-width: 400px) {
  .cred-inner { gap: 0; }
  .cred-n     { font-size: 1.5rem; }
}

/* ── 16. FAC GRID (home preview): 2-col → 1-col below 400 px ── */
@media (max-width: 400px) {
  .fac-grid { grid-template-columns: 1fr !important; }
}

/* ── 17. DUBAI INTEREST MODAL: single column on small screens ── */
@media (max-width: 620px) {
  .dubai-interest-grid { grid-template-columns: 1fr; }
  .dubai-interest-full { grid-column: auto; }
  .dubai-interest-card { padding: 1.4rem; }
}

/* ── 17. IFP PHASES: tighter padding on small phones ── */
@media (max-width: 400px) {
  .phase { padding: 1.8rem 1.4rem; }
  .phase-n { font-size: 2.4rem; }
}

/* ── 18. YEP FAQ GRID: already 1-col at 960px; tighten gap further ── */
@media (max-width: 480px) {
  .y3-faq-grid { gap: 1rem !important; }
}

/* ── 19. FORM GRIDS: stack name/age columns on phones ── */
@media (max-width: 480px) {
  .y3-f2 { grid-template-columns: 1fr !important; }
  .f2    { grid-template-columns: 1fr !important; }
}

/* ── 20. PREVENT HORIZONTAL SCROLL: belt-and-suspenders ──
   Applied to every page div and the hero containers. */
.page,
.y3-hero,
#page-yep,
#page-about,
#page-ifp,
#page-home {
  overflow-x: hidden;
}

/* ── 21. PROG-SEC eyebrow: don't let it overflow on mobile ── */
@media (max-width: 480px) {
  .sec-ey { letter-spacing: .14em; }
}

/* ── 22. YEP ASIDE: on mobile, remove negative pull-up so it stacks naturally ── */
@media (max-width: 960px) {
  .y3-hero-aside { margin-top: 1.5rem !important; }
}

/* ── 23. IFP PRICING GRID: ensure cards don't clip on 375 px ── */
@media (max-width: 400px) {
  .pc { padding: 2rem 1.4rem; }
  .pc-price { font-size: 2.2rem; }
}

/* ── 24. YEP ENROL LOCS: full-width buttons on small screens ── */
@media (max-width: 560px) {
  .y3-loc { padding: 1.4rem; }
  .y3-loc-city { font-size: 1.2rem; }
}

/* ── 25. BODY background on page transitions ──
   Ensures no flash of wrong background between SPA page switches. */
body { background: var(--white); }
#page-yep .y3-hero,
#page-ifp .hero { background: var(--black); }

/* ══════════════════════════════════════════════════════════════
   TABLET INTERMEDIATE BREAKPOINTS
   Grids that previously jumped from 3–4 col → 1 col at 960 px
   now land at 2 col first, improving tablet layout quality.
   ══════════════════════════════════════════════════════════════ */

/* YEP: faculty quotes 3-col → 2-col at 600–960 px */
@media (min-width: 600px) and (max-width: 960px) {
  .y3-fq-grid         { grid-template-columns: 1fr 1fr; }
  .y3-get-grid        { grid-template-columns: 1fr 1fr; }
  .y3-voices-grid     { grid-template-columns: 1fr 1fr; }
  .y3-cover-grid      { grid-template-columns: 1fr 1fr; }
  .y3-video-testimonials { grid-template-columns: 1fr 1fr; }
}

/* IFP: expert cards 3-col → 2-col at 560–900 px */
@media (min-width: 560px) and (max-width: 900px) {
  .expert-grid        { grid-template-columns: 1fr 1fr; }
  .pitch-cards        { grid-template-columns: 1fr 1fr; }
}

/* Home/about: faculty preview 5-col → 3-col at 600–960 px */
@media (min-width: 600px) and (max-width: 960px) {
  .fac-grid           { grid-template-columns: repeat(3, 1fr); }
}

/* About: full faculty grid 4-col → 2-col already at 960px — keep */

/* IFP: phases 3-col → 2-col at 600–900 px */
@media (min-width: 600px) and (max-width: 900px) {
  .phases             { grid-template-columns: 1fr 1fr; }
}

/* Pricing: keep 2-col down to 600 px (only collapse to 1-col below 600) */
@media (max-width: 600px) {
  .pricing-grid       { grid-template-columns: 1fr !important; }
}

/* YEP band: 4-col → 2-col already at 960 px; go 1-col below 375 px */
@media (max-width: 375px) {
  .y3-band-inner      { grid-template-columns: 1fr 1fr !important; }
  .y3-band-n          { font-size: 1.35rem; }
}

/* Cred band: keeps 2-col but shrink text at 375 px */
@media (max-width: 375px) {
  .cred-n             { font-size: 1.4rem; }
}

/* ── COVER CARD: ensure row gap on 1-col mobile is large enough
   for the absolute-positioned icon (protrudes 3.45rem above card top)
   not to overlap the card above it. ── */
@media (max-width: 600px) {
  .y3-cover-grid      { gap: 5rem 1.2rem; margin-top: 4.5rem; }
}

/* ── FLIP CARDS: ensure back panel readable height on 2-col tablet ── */
@media (min-width: 600px) and (max-width: 960px) {
  .y3-flip            { height: 220px; }
}

/* ── YEP FAQ: slightly tighter gap at 600-960px (stays 2-col) ── */
@media (min-width: 600px) and (max-width: 960px) {
  .y3-faq-grid        { gap: 2rem; }
}

/* ── FOOTER: 2-col layout at 480–768 px before going 1-col ── */
@media (min-width: 481px) and (max-width: 768px) {
  .footer-top         { grid-template-columns: 1fr 1fr !important; gap: 2rem !important; }
}

/* ── IFP ALUMNI: keep 2-col down to 560 px ── */
@media (max-width: 560px) {
  .alumni-grid        { grid-template-columns: 1fr !important; }
  .af-grid            { grid-template-columns: 1fr; }
}

/* ══════════════════════════════════════════════════════════════
   PROGRAMME SELECTOR — WP-SAFE LAYOUT LOCK
   Prevents OceanWP from breaking the two-card grid or adding
   unwanted spacing around the first home-page section.
   ══════════════════════════════════════════════════════════════ */

/* Section spacing: zero any margin the WP theme may inject */
body.infinitum-education-full-page .prog-sec {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding: clamp(2rem,4vw,3rem) var(--pad) clamp(4rem,9vw,6.5rem) !important;
  background: var(--off) !important;
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: none !important;
}

/* Grid: force 2-col on desktop, stretch cells to equal height */
body.infinitum-education-full-page .prog-grid {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 1.5rem !important;
  align-items: stretch !important;
  margin-top: 2.8rem !important;
}

/* Cards: force correct box model, overflow, and flex column layout */
body.infinitum-education-full-page .prog-card {
  box-sizing: border-box !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
  position: relative !important;
  max-width: none !important;
  width: 100% !important;
}
body.infinitum-education-full-page .prog-card-meta {
  flex-grow: 1 !important;
}
body.infinitum-education-full-page .prog-card-cta {
  align-self: flex-start !important;
}

/* Tablet (≤ 960 px): stack cards single-column, full width */
@media (max-width: 960px) {
  body.infinitum-education-full-page .prog-grid {
    grid-template-columns: 1fr !important;
    gap: 1.5rem !important;
  }
}

/* Mobile (≤ 560 px): tighter card padding, stacked CTAs */
@media (max-width: 560px) {
  body.infinitum-education-full-page .prog-sec {
    padding-left: clamp(1rem, 4vw, 1.5rem) !important;
    padding-right: clamp(1rem, 4vw, 1.5rem) !important;
  }
  body.infinitum-education-full-page .prog-card {
    padding: 2rem 1.5rem 1.8rem !important;
  }
  body.infinitum-education-full-page .prog-card-body {
    max-width: none !important;
  }
  body.infinitum-education-full-page .prog-card-actions {
    flex-direction: column !important;
    align-items: stretch !important;
  }
  body.infinitum-education-full-page .prog-card-cta {
    justify-content: center !important;
    text-align: center !important;
    width: 100% !important;
  }
}

/* IFP lone CTA stretched to full width on mobile */
@media (max-width: 560px) {
  body.infinitum-education-full-page .prog-card.ifp .prog-card-cta {
    display: flex !important;
    width: 100% !important;
    justify-content: center !important;
    text-align: center !important;
  }
}

/* ── HERO ACTIONS: stack buttons on mobile ── */
@media (max-width: 480px) {
  .hero-ctas          { flex-direction: column; }
  .hero-ctas .btn     { width: 100%; justify-content: center; }
  .yep-hero-actions   { flex-direction: column; }
  .yep-hero-actions .btn { width: 100%; justify-content: center; }
}

/* ── ABOUT VM CARD: single-column label+text stacking ── */
@media (max-width: 600px) {
  .about-vm-card      { grid-template-columns: 1fr !important; padding: 1rem 1.2rem; }
  .about-vm-label     { font-size: .72rem; }
}

/* ── FORM WRAP: reduce padding on mobile ── */
@media (max-width: 480px) {
  .form-wrap          { padding: 1.6rem 1.2rem; }
  .y3-form-wrap       { padding: 1.6rem 1.2rem; }
  .y3-enrol-grid      { gap: 2rem; }
}

/* ── IFP APPLY STEPS: tighter grid column on small phones ── */
@media (max-width: 400px) {
  .eoi-step           { grid-template-columns: 1.8rem 1fr; gap: .65rem; }
  .es-num             { font-size: .9rem; }
}

/* ── NAV-CTA ghost button: hide at 900–1100 px to prevent crowding ── */
@media (max-width: 1100px) {
  .nav-btn-ghost      { display: none !important; }
}

/* ── STREAM PILLS: ensure they're touchable on mobile ── */
.y3-spill             { min-height: 44px; }
@media (max-width: 560px) {
  .y3-stream-pills    { padding: .5rem; gap: .5rem; }
  .y3-spill           { padding: .72rem 1rem; font-size: .88rem; }
}

/* ── CONTENT HORIZONTAL OVERFLOW GUARD ── */
.sec, .inner, .footer-inner,
.y3-inner, .y3-intro-inner, .y3-streams-inner,
.y3-cover-inner, .y3-faculty-inner, .y3-get-inner,
.y3-voices-inner, .y3-faq-inner, .y3-enrol-inner {
  max-width: 100%;
  box-sizing: border-box;
}

/* ── ABOUT story aside image: max width on mobile ── */
@media (max-width: 860px) {
  .about-story-grid   { grid-template-columns: 1fr !important; gap: 2.5rem !important; }
  .about-contact-grid { grid-template-columns: 1fr !important; gap: 2.5rem !important; }
}
@media (max-width: 860px) {
  .about-values-mini  { grid-template-columns: 1fr 1fr !important; }
}
@media (max-width: 480px) {
  .about-values-mini  { grid-template-columns: 1fr !important; }
}

/* ── Contact Form 7 — About page: match original custom form design ── */
.wpcf7-form p { margin: 0 0 .75rem; padding: 0; }
.wpcf7-form p:last-child { margin-bottom: 0; }
.wpcf7-form br { display: none; }
.wpcf7-form label {
  display: block;
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--cyan-txt);
  margin-bottom: .85rem;
}
.wpcf7-form .wpcf7-form-control-wrap {
  display: block;
  margin-top: .38rem;
}
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form textarea {
  width: 100%;
  background: var(--white);
  border: 1px solid var(--rule);
  color: var(--black);
  font-family: var(--sans);
  font-size: .84rem;
  padding: .72rem .9rem;
  border-radius: 2px;
  outline: none;
  box-sizing: border-box;
  transition: border-color .2s;
}
.wpcf7-form input[type="text"]:focus,
.wpcf7-form input[type="email"]:focus,
.wpcf7-form textarea:focus {
  border-color: var(--cyan);
}
.wpcf7-form textarea {
  resize: vertical;
  min-height: 90px;
}
.wpcf7-form input[type="submit"],
.wpcf7-form .wpcf7-submit {
  width: 100%;
  padding: .88rem;
  background: var(--cyan);
  color: var(--white);
  font-family: var(--sans);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  border: none;
  cursor: pointer;
  border-radius: 2px;
  transition: background .2s;
  margin-top: .25rem;
}
.wpcf7-form input[type="submit"]:hover,
.wpcf7-form .wpcf7-submit:hover {
  background: var(--cyan-dk);
}
.wpcf7-form .wpcf7-not-valid-tip {
  font-size: .65rem;
  color: #c0392b;
  margin-top: .25rem;
  display: block;
}
.wpcf7-form .wpcf7-response-output {
  margin-top: 1rem;
  padding: .75rem 1rem;
  border-radius: 2px;
  font-size: .78rem;
  border: 1px solid var(--rule);
}

/* ── CF7 bridge: hidden CF7 form used only for email processing ── */
.y3-cf7-bridge,
.dubai-cf7-bridge {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
  pointer-events: none;
}

/* ── CF7 — YEP application form: preserve dark y3-* design ── */
.y3-form-wrap .wpcf7 { display: block; }
.y3-form-wrap .wpcf7-form { margin: 0; padding: 0; background: none; border: none; }
/* CF7 wraps every field in a span — make it block so inputs stretch full width */
.y3-form-wrap .wpcf7-form-control-wrap { display: block; width: 100%; }
/* Validation error tip */
.y3-form-wrap .wpcf7-not-valid-tip {
  display: block;
  color: #e74c3c;
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .04em;
  margin-top: .28rem;
}
/* Highlight invalid field */
.y3-form-wrap .wpcf7-form-control.wpcf7-not-valid { border-color: #e74c3c !important; }
/* Response output bar (success / error) */
.y3-form-wrap .wpcf7-response-output {
  margin-top: 1rem;
  padding: .65rem 1rem;
  border-radius: 2px;
  font-size: .74rem;
  font-weight: 600;
  border: 1px solid rgba(255,255,255,.18) !important;
  color: rgba(255,255,255,.82);
  background: rgba(255,255,255,.06);
}
