/* Shared public/editor typography. Font is self-hosted; see fonts/OFL.txt. */
@font-face {
  font-family: Inter;
  src: url('./fonts/Inter.ttf') format('truetype');
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}
:root {
  --sans: Inter, Arial, sans-serif;
  --serif: var(--sans);
}
/* Keep the fixed mobile dialog outside the sticky header's backdrop context. */
.site-header:has(.is-menu-open) { backdrop-filter:none; -webkit-backdrop-filter:none; z-index:10000; }
@media(max-width:1150px) {
 .main-nav .wp-block-navigation__responsive-container:not(.is-menu-open) { display:none!important; }
 .main-nav .wp-block-navigation__responsive-container-open { display:flex!important; }
 .main-nav .wp-block-navigation__responsive-container.is-menu-open { position:fixed!important; inset:0!important; width:100vw; height:100dvh; max-height:100dvh; overflow-y:auto; z-index:10001; background:#f8f8f4!important; opacity:1!important; }
 .main-nav .is-menu-open .wp-block-navigation__responsive-container-content { align-items:flex-start!important; }
 .main-nav .is-menu-open .wp-block-navigation__container { align-items:flex-start!important; text-align:left; }
 .main-nav .is-menu-open .wp-block-navigation__container { flex-direction:column; align-items:flex-start; }
 .main-nav .is-menu-open .wp-block-navigation-item { max-width:100%; }
 .main-nav .is-menu-open .wp-block-navigation__submenu-container { min-width:0!important; width:100%; }
 .main-nav .is-menu-open .wp-block-navigation__responsive-container-close { position:absolute; top:12px; right:12px; }
}
body, .editor-styles-wrapper {
  font-family: var(--sans);
  font-size: 17px;
  line-height: 1.65;
  font-optical-sizing: auto;
  font-feature-settings: 'cv11';
}
h1, h2, h3, .editor-styles-wrapper :where(h1,h2,h3) {
  font-family: var(--sans);
  font-weight: 650;
  font-style: normal;
  letter-spacing: -.035em;
  line-height: 1.16;
}
h1, .hero-copy h1 { font-size: clamp(40px,4.2vw,60px); }
h2 { font-size: clamp(29px,2.65vw,38px); }
h3 { font-size: 25px; letter-spacing: -.02em; }
em { font-style: normal; font-weight: inherit; }
p { margin-bottom: 18px; }
.lead { font-size: 18px; line-height: 1.65; }
.eyebrow, .section-index {
  font-size: 12px;
  letter-spacing: .09em;
  line-height: 1.5;
  margin-bottom: 18px;
}
.small-note, .section-aside { font-size: 14px; line-height: 1.6; }
.text-link { font-size: 16px; }
.main-nav { font-size: 14px; }
.main-nav .wp-block-navigation__container { gap: 22px; }
.wp-block-button__link, .wp-block-button.is-style-outline>.wp-block-button__link {
  font-family: var(--sans);
  font-size: 15px;
}
.section { padding-top: 64px; padding-bottom: 64px; }
.home-hero { gap: 54px; padding-top: 64px; padding-bottom: 58px; }
.hero-copy .eyebrow { font-size: 12px; margin-bottom: 24px; }
.hero-copy .lead { max-width: 510px; margin-top: 24px; }
.hero-subjects { font-size: 13px; letter-spacing: 0; }
.hero-visual { padding-bottom: 0; }
.hero-photo img { height: 455px; border-radius: 8px; }
.photo-note {
  right: 20px;
  bottom: 20px;
  width: auto;
  max-width: calc(100% - 40px);
  padding: 20px 26px;
  border: 1px solid rgba(255,255,255,.5);
  border-left: 3px solid var(--yellow);
  border-radius: 4px;
  background: rgba(255,255,255,.76);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 8px 24px #172b3510;
}
.photo-note p:first-child {
  font-family: var(--sans);
  font-size: 22px;
  line-height: 1.3;
  font-weight: 600;
  letter-spacing: -.02em;
  margin-bottom: 4px;
}
.photo-caption { font-size: 14px; letter-spacing: 0; color: #344751; }
.home-hero + .space-section {
  padding-top: 45px;
  padding-bottom: 45px;
  margin-bottom: 36px!important;
  background: #eef2f0;
  border-radius: 8px;
  gap: 48px;
}
.home-hero + .space-section .space-photo img { height: 240px; }
.home-hero + .space-section .space-photo:nth-child(2) { margin-top: 24px; }
.space-copy p:not(.eyebrow) { font-size: 17px; }
.space-copy .service-list { padding-left:21px; margin:0 0 24px; color:var(--muted); font-size:17px; line-height:1.6; }
.service-list li + li { margin-top:10px; }
.service-list li::marker { color:var(--blue); }
.facts-strip .stat:last-child .stat-number { font-size:clamp(22px,3vw,34px); }
.package-section { padding-top: 20px; }
.exam-package { gap: 48px; padding: 44px; }
.exam-package h2 { font-size: clamp(28px,2.5vw,36px); }
.exam-package .eyebrow { font-size: 11px; letter-spacing: .07em; }
.exam-package .package-description>p:not(.eyebrow) { font-size: 17px; }
.package-description>p:last-child { font-size: 17px!important; }
.package-price { font-size: 52px; font-weight: 600; letter-spacing: -.04em; }
.package-price span { font-size: 16px; font-weight: 400; }
.package-summary { font-size: 16px; }
.stat-number { font-size: 32px; font-weight: 600; }
.stat-label { font-size: 13px; }
.exam-package .small-note { font-size: 14px; }
.wp-block-interval-package-summary .hero-price-label { font-size: 11px; letter-spacing: .04em; }
.wp-block-interval-package-summary .package-price { font-size: 30px; }
.wp-block-interval-package-summary .package-price span { font-size: 15px; }
.wp-block-interval-package-summary .package-summary { font-size: 14px; }
.program-card { grid-template-columns: 112px minmax(0,1fr); gap: 24px; padding: 28px; }
.program-card .eyebrow { font-size: 11px; letter-spacing: .06em; }
.program-card h3 { font-size: 25px; }
.program-card p:not(.eyebrow) { font-size: 16px; }
.program-card .text-link { font-size: 14px; }
.legacy-illustration img { width: 112px; }
.contact-cta h2 { font-size: 30px; }
.contact-cta .eyebrow { font-size: 11px; }
.cta-copy>p:not(.eyebrow) { font-size: 16px; }
.page-intro { padding-top: 68px; padding-bottom: 58px; }
.page-intro .lead { margin-top: 24px; }
.facts-section { padding-top: 0; padding-bottom: 24px; }
.facts-strip .stat-number { font-size: 38px; }
.facts-strip .stat-label { font-size: 14px; }
.subject-card h3 { font-size: 24px; }
.subject-card p { font-size: 17px; }
.step-number { font-family: var(--sans); font-size: 23px!important; font-weight: 500; }
.rhythm-section { gap: 64px; }
.rhythm-copy p:not(.eyebrow) { font-size: 17px; line-height: 1.7; }
.rhythm-copy > p + p, .school-row p + p, .about-text p + p { margin-top: 16px; }
.schedule-row p { font-size: 15px; }
.schedule-no { font-size: 13px!important; }
.schedule-row.pause { opacity: 1; }
.schedule-row.pause h3 { color: var(--muted); }
.wp-block-details summary { font-size: 17px; line-height: 1.55; }
.wp-block-details>p { font-size: 17px; }
.method-section .two-grid { margin-top: 24px; }
.price-card .eyebrow { font-size: 11px; letter-spacing: .05em; }
.price-card h3 { font-size: 23px; }
.price-card .price { font-size: 40px; font-weight: 600; }
.price-card p:last-child { font-size: 14px; }
.price-note p { font-size: 16px; }
.price-note h3 { font-size: 24px; }
/* All faculty information is visible without expanding a disclosure. */
.faculty-list { border-top: 1px solid var(--line); }
.faculty-item {
  display: grid;
  grid-template-columns: minmax(220px, .9fr) minmax(0, 1.6fr);
  gap: 36px;
  padding: 24px 0;
  border-bottom: 1px solid var(--line);
  align-items: start;
}
.faculty-item h3, .site-main .faculty-item h3 {
  font-size: 18px;
  line-height: 1.5;
  letter-spacing: -.015em;
  margin: 0;
}
.faculty-row { grid-template-columns: 1fr 1.2fr .8fr; gap: 20px; font-size: 16px; padding: 0; border: 0; }
.faculty-row + .faculty-row { margin-top: 12px; }
.faculty-price { white-space: nowrap; font-variant-numeric: tabular-nums; }
.faculty-row p:not(.faculty-price) { color: var(--muted); }
.faculty-list .small-note { font-size: 14px; margin-top: 12px; }
.about-text { gap: 64px; }
.contact-item .eyebrow, .contact-location .eyebrow { font-size: 12px; }
.contact-item p:last-child>a { font-size: 16px; }
.business-section p { font-size: 16px; }
.business-section h3 { font-size: 24px; }
.footer-tagline { font-family: var(--sans); font-size: 22px; font-weight: 500; letter-spacing: -.02em; }
.site-footer .contact-item p:last-child>a { font-size: 14px; }
.footer-bottom p { font-size: 13px; }

@media(max-width:1000px) {
  .home-hero { gap: 32px; }
  .hero-photo img { height: 420px; }
  .program-card { grid-template-columns: 1fr; align-items: start; }
  .legacy-illustration img { width: 90px; }
  .exam-package { gap: 32px; padding: 32px; }
  .space-section, .home-hero + .space-section { gap: 30px; }
  .faculty-item { gap: 24px; grid-template-columns: .9fr 1.3fr; }
  .faculty-row { grid-template-columns: 1fr 1fr; gap: 4px 14px; }
  .faculty-subject { grid-column: 1/-1; font-weight: 600; }
}
@media(max-width:700px) {
  body, .editor-styles-wrapper { font-size: 16px; }
  h1, .hero-copy h1 { font-size: clamp(35px,9.5vw,48px); line-height: 1.13; letter-spacing: -.04em; }
  h2 { font-size: 30px; }
  h3 { font-size: 23px; }
  .section { padding-top: 42px; padding-bottom: 42px; }
  .home-hero { padding-top: 38px; gap: 32px; }
  .hero-copy .eyebrow, .eyebrow { font-size: 11px; }
  .lead, .hero-copy .lead { font-size: 17px; line-height: 1.65; }
  .hero-subjects { font-size: 12px; }
  .hero-photo img { height: 320px; }
  .photo-note { right: 16px; bottom: 16px; max-width: calc(100% - 32px); padding: 16px 20px; }
  .photo-note p:first-child { font-size: 21px; }
  .photo-caption { font-size: 13px; }
  .home-hero + .space-section { padding-top: 32px; padding-bottom: 32px; margin: 0 16px 20px!important; }
  .home-hero + .space-section .space-photo img { height: 190px; }
  .space-copy p:not(.eyebrow) { font-size: 16px; }
  .section-aside { font-size: 14px; }
  .exam-package { padding: 28px 24px; gap: 28px; }
  .exam-package h2 { font-size: 29px; }
  .exam-package .package-description>p:not(.eyebrow), .package-description>p:last-child { font-size: 16px!important; }
  .exam-package .eyebrow { font-size: 11px; }
  .package-price { font-size: 44px; }
  .stat-number { font-size: 29px; }
  .stat-label { font-size: 12px; }
  .program-card { grid-template-columns: 80px minmax(0,1fr); gap: 18px; padding: 24px 18px; }
  .legacy-illustration img { width: 80px; }
  .program-card h3 { font-size: 23px; }
  .program-card .eyebrow { font-size: 11px; }
  .program-card p:not(.eyebrow) { font-size: 16px; }
  .program-card .text-link { font-size: 14px; }
  .contact-cta h2 { font-size: 28px; }
  .contact-cta .eyebrow { font-size: 11px; }
  .wp-block-button__link, .wp-block-button.is-style-outline>.wp-block-button__link { font-size: 14px; padding: 13px 17px; }
  .facts-section { padding-top: 0; padding-bottom: 12px; }
  .facts-strip .stat-number { font-size: 29px; }
  .facts-strip .stat-label { font-size: 12px; }
  .rhythm-section { gap: 30px; }
  .rhythm-copy p:not(.eyebrow), .subject-card p, .wp-block-details>p { font-size: 16px; }
  .wp-block-details summary { font-size: 16px; }
  .prices-grid { grid-template-columns: 1fr 1fr; }
  .price-card { padding: 22px 16px; }
  .price-card h3 { font-size: 20px; overflow-wrap: anywhere; }
  .price-card .eyebrow { font-size: 11px; letter-spacing: .02em; }
  .price-card .price { font-size: 34px; }
  .price-card p:last-child { font-size: 14px; }
  .faculty-item { grid-template-columns: 1fr; gap: 12px; padding: 24px 0; }
  .faculty-item h3, .site-main .faculty-item h3 { font-size: 18px; }
  .faculty-row { font-size: 15px; }
  .faculty-row + .faculty-row { margin-top: 16px; }
  .about-text { gap: 12px; }
  .footer-brand { flex-wrap: wrap; }
  .footer-tagline { font-size: 20px; }
}
@media(max-width:380px) {
  .program-card { grid-template-columns: 1fr; }
  .prices-grid { grid-template-columns: 1fr; }
}
/* Three equally accessible programme choices on the homepage. */
.programs-hero { padding-top: 48px; padding-bottom: 48px; }
.programs-intro { max-width: 930px; margin-bottom: 36px!important; }
.programs-intro h1 { font-size: clamp(34px,3.3vw,48px); }
.programs-intro .lead { max-width: 800px; }
.offers-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.offer-card { display:flex; flex-direction:column; padding:28px; border:1px solid var(--line); border-radius:8px; background:white; }
.offer-card.offer-exam { background:#edf4f6; border-color:#8eb0be; border-top:4px solid var(--blue); padding-top:25px; }
.offer-illustration img { display:block; height:110px; width:110px; object-fit:contain; mix-blend-mode:multiply; }
.offer-illustration { margin-bottom:22px!important; }
.offer-card .eyebrow { font-size:10px; letter-spacing:.06em; }
.offer-card h2 { font-size:27px; letter-spacing:-.035em; }
.offer-card > p:not(.eyebrow) { font-size:16px; color:var(--muted); margin-bottom:18px; }
.offer-card .offer-note { font-size:14px!important; }
.offer-card .wp-block-buttons { margin-top:auto; padding-top:24px; }
.offer-card .wp-block-interval-package-summary { margin:4px 0 0; padding-left:12px; }
.offer-card .wp-block-interval-package-summary .hero-price-label { font-size:10px; }
.offer-card .wp-block-interval-package-summary .package-price { font-size:27px; }
.offer-card .wp-block-interval-package-summary .package-summary { font-size:13px; }
.programs-hero + .space-section { background:#eef2f0; border-radius:8px; margin-bottom:48px!important; }
.contact-location { grid-template-columns:1.15fr 1fr 1fr; gap:28px; padding-top:48px; padding-bottom:48px; }
.contact-location h2 { font-size:32px; }
.contact-location > .wp-block-group:not(.location-images) { grid-column:1; }
.location-images { display:contents; }
.location-images .contact-photo { grid-column:2; }
.location-images .contact-photo img { height:300px; }
.location-map { grid-column:3; display:flex; align-items:center; justify-content:center; height:300px; background:#f4f4f4; border:1px solid var(--line); border-radius:6px; padding:12px; }
.location-map a { display:block; max-width:100%; }
.location-map img { display:block; width:300px; max-width:100%; height:auto; margin:auto; }
@media(max-width:1000px) {
 .contact-location { grid-template-columns:1fr 1fr; gap:24px; }
 .contact-location > .wp-block-group:not(.location-images) { grid-column:1/-1; max-width:680px; }
 .location-images .contact-photo { grid-column:1; }
 .location-map { grid-column:2; }
}
@media(max-width:600px) {
 .contact-location { grid-template-columns:1fr; padding-top:36px; padding-bottom:36px; }
 .location-images .contact-photo, .location-map { grid-column:1; }
 .location-images .contact-photo img { height:240px; }
 .location-map { height:240px; }
}
.page-intro.with-image.exam-photo-intro { grid-template-columns:1.05fr 1fr; gap:48px; }
.exam-photo-intro h1 { font-size:clamp(36px,3.8vw,54px); }
.exam-photo-intro .intro-image { max-width:none; width:100%; }
.exam-photo-intro .intro-image img { display:block; width:100%; height:auto; border-radius:8px; mix-blend-mode:normal; }
.class-gallery, .home-class-photos { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.class-gallery { margin-top:32px!important; }
.class-photo img { display:block; width:100%; height:auto; border-radius:6px; }
.home-class-photos { margin-top:28px!important; }
.class-photo-link { margin-top:20px!important; }
.about-wide.teaching-photo img { height:auto; }
.class-photos-section > p:not(.eyebrow) { color:var(--muted); }
@media(max-width:700px) {
 .page-intro.with-image.exam-photo-intro { grid-template-columns:1fr; gap:28px; }
 .class-gallery, .home-class-photos { grid-template-columns:1fr; gap:18px; }
 .exam-photo-intro .intro-image { width:100%; }
}
@media(min-width:701px) and (max-width:1000px) {
 .offer-card { padding:20px; }
 .offer-card.offer-exam { padding-top:17px; }
 .offer-card h2 { font-size:23px; }
 .offers-grid { gap:14px; }
}
@media(max-width:700px) {
 .offers-grid { grid-template-columns:1fr; gap:20px; }
 .programs-hero { padding-top:36px; }
 .programs-intro h1 { font-size:36px; }
 .offer-card { padding:26px; }
 .offer-card.offer-exam { padding-top:23px; }
 .offer-illustration img { width:90px; height:90px; }
 .programs-hero + .space-section { margin:0 16px 32px!important; }
}
