.navigation a[aria-current="page"], .footer a[aria-current="page"], .language a[aria-current="true"] {
  text-decoration: underline;
  text-underline-offset: .2em;
}
.review-tools > a { border: 1px solid #aaa; background: white; padding: 7px 9px; text-decoration: none; }
.review-tools > a:hover { text-decoration: underline; }

.inner-page { --inner-max: 980px; background: white; color: #272727; line-height: 1.5; }
.inner-wrap { max-width: var(--inner-max); margin: auto; padding: 56px 22px 72px; }
.inner-page h1, .inner-page h2 { margin: 0; font-family: var(--display); line-height: 1.12; }
.inner-page h1 { font-size: clamp(42px, 7vw, 76px); text-align: center; }
.inner-page h2 { font-size: clamp(32px, 4.5vw, 52px); }
.inner-page p { margin: 0 0 1em; }
.inner-lead { max-width: 700px; margin: 20px auto 25px; text-align: center; }
.inner-lead .page-subtitle, .source-subtitle { font: italic 700 clamp(18px, 2.4vw, 24px)/1.25 var(--serif); }
.inner-lead img { margin-inline: auto; }
.source-sections { margin-top: 36px; }
.source-section { margin: 0 0 44px; min-width: 0; }
.source-section h2 { margin-bottom: 13px; }
.source-copy { min-width: 0; overflow-wrap: anywhere; }
.media-only > .source-copy:empty { display: none; }
.source-list { padding-left: 1.4em; }
.source-list li { margin: 0 0 .4em; }
.source-section.has-photo { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); align-items: center; gap: 30px; }
.source-section.has-photo > .inner-media-grid { grid-column: 1 / -1; }
.section-photo, .source-image, .source-decor { margin-inline: auto; }
.source-decor { width: min(125px, 22vw); max-height: 170px; object-fit: contain; }
.inner-media { margin: 0; min-width: 0; }
.inner-media-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(255px, 100%), 1fr)); gap: 22px; }
.source-copy:not(:empty) + .inner-media-grid { margin-top: 17px; }
.inner-media .media-frame, .inner-media .media-placeholder { aspect-ratio: 16/9; }
.inner-media .media-placeholder { min-height: 100%; }
.inner-media img, .inner-media video { width: 100%; height: 100%; aspect-ratio: 16/9; object-fit: cover; }
.inner-media video { background: #101010; }
.inner-media .play { width: 47px; height: 47px; }
.inner-media .media-label { max-width: calc(100% - 16px); overflow-wrap: anywhere; }
.inner-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; }
.inner-cta { color: #171717; text-underline-offset: .22em; font: 700 20px/1.25 var(--serif); }
.inner-cta:hover { color: #3e43c8; }

.route-aboutschool .source-section:first-child .source-copy { padding: 20px 0; }
.route-aboutschool .source-section:nth-child(even).has-photo > .section-photo { order: 2; }
.route-aboutschool .source-section:not(.has-photo) { max-width: 760px; margin-inline: auto; }
.route-aboutschool .layout-quote { text-align: center; font: italic 21px/1.4 var(--serif); padding-block: 22px; }

.route-news-and-events .source-section { text-align: center; }
.route-news-and-events .source-section.has-media { max-width: 710px; margin-inline: auto; }
.route-news-and-events .inner-media-grid { grid-template-columns: 1fr; gap: 44px; }
.route-news-and-events .source-decor { margin-bottom: 15px; }

.route-meet-the-school-team .source-section { padding-block: 18px; }
.route-meet-the-school-team .source-section:nth-child(even).has-photo > .section-photo { order: 1; }
.route-meet-the-school-team .source-section.has-photo > .inner-media-grid { order: 2; width: min(100%, 650px); margin-inline: auto; }

.route-kidstestimonials .inner-lead { max-width: 800px; }
.route-kidstestimonials .source-section:first-child .inner-media-grid { max-width: 700px; margin-inline: auto; }
.route-kidstestimonials .source-section:not(:first-child) .source-copy { text-align: center; }
.route-kidstestimonials .layout-grid .inner-media-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.route-founders-testimonials .source-section { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 32px; align-items: center; }
.route-founders-testimonials .source-section .source-copy { text-align: center; }
.route-founders-testimonials .source-section > .inner-media-grid { margin: 0; }
.route-founders-testimonials .source-section:nth-child(even) > .source-copy { order: 2; }
.route-founders-testimonials .source-section h2 { font: 700 clamp(25px, 3.8vw, 41px)/1.12 var(--serif); }
.route-founders-testimonials .source-section.media-only { display: block; max-width: 650px; margin-inline: auto; }

.route-our-services .inner-lead { margin-bottom: 44px; }
.route-our-services .layout-numbered ul { list-style: decimal-leading-zero; font-size: 22px; }
.route-our-services .layout-portrait .inner-media .media-frame,
.route-our-services .layout-portrait .inner-media .media-placeholder,
.route-our-services .layout-portrait .inner-media img,
.route-our-services .layout-portrait .inner-media video { aspect-ratio: 9/16; }
.route-our-services .layout-quote { text-align: center; }
.route-our-services .source-section > .source-copy > h2 { text-align: center; }

.route-enrollment-school-page .source-section.has-photo { display: flex; flex-direction: column; text-align: center; }
.route-enrollment-school-page .source-section { text-align: center; }
.route-enrollment-school-page .source-list { list-style: none; padding: 0; }
.route-enrollment-school-page .inner-actions { justify-content: center; }
.route-enrollment-school-page .inner-cta { color: white; padding: 10px 22px; background: #303b72; }

.route-fixture { max-width: 750px; margin: 36px auto 0; padding: 32px; background: #f4f4f4; }
.route-fixture h2 { margin-bottom: 16px; }
.route-fixture label { display: block; }
.route-fixture input:not([type=checkbox]), .route-fixture textarea {
  display: block; width: 100%; margin-top: 5px; min-height: 43px;
  padding: 9px 11px; border: 1px solid #666; background: white;
}
.route-fixture .check { margin-top: 14px; }
.route-fixture .fixture-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 16px; }
.route-fixture .fixture-fields label:has(textarea) { grid-column: 1/-1; }
.route-fixture textarea { min-height: 115px; resize: vertical; }
.route-fixture .test-result { margin: 16px 0 0; }
.news-fixture { text-align: center; }
.news-fixture > label:not(.check) { max-width: 355px; margin: auto; text-align: left; }
.contact-fixture { max-width: 680px; }
.route-school-contact { background: #f7f7f7; }
.route-school-contact .source-sections { max-width: 680px; margin-inline: auto; }
.legacy-contact .header-top { min-height: 106px; }
.legacy-contact .brand { width: 135px; }
.legacy-contact .header-top > .contact { display: none; }
.contact-legacy-links { display: none; }
.restricted-fixture { text-align: center; padding-block: 84px 94px; }
.restricted-fixture h1 { margin: 0 0 20px; }

@media (max-width: 760px) {
  .inner-wrap { padding: 36px 16px 46px; }
  .inner-page h1 { font-size: clamp(36px, 9.6vw, 54px); overflow-wrap: anywhere; }
  .source-sections { margin-top: 23px; }
  .source-section { margin-bottom: 31px; }
  .source-section.has-photo, .route-founders-testimonials .source-section { grid-template-columns: 1fr; gap: 14px; }
  .route-aboutschool .source-section:nth-child(even).has-photo > .section-photo,
  .route-meet-the-school-team .source-section:nth-child(even).has-photo > .section-photo,
  .route-founders-testimonials .source-section:nth-child(even) > .source-copy { order: 0; }
  .route-kidstestimonials .layout-grid .inner-media-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .source-section.has-photo .section-photo { max-height: 430px; object-fit: contain; }
  .route-fixture { padding: 20px 16px; }
}
@media (max-width: 425px) {
  .inner-media-grid, .route-kidstestimonials .layout-grid .inner-media-grid { grid-template-columns: 1fr; }
  .route-fixture .fixture-fields { grid-template-columns: 1fr; }
}

.visually-hidden {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0;
}
.inner-page { background: #f7f7f7; font-size: 16px; line-height: 1.22; }
.inner-page h1 { font: 700 clamp(29px, 4.4vw, 46px)/1.13 "Proxima Nova", Arial, sans-serif; }
.inner-page h2 { font-size: clamp(25px, 3.2vw, 35px); }
.inner-page .inner-cta { min-width: 200px; text-align: center; padding: 8px 14px; border: 2px solid #17232b; background: #fff; color: #17232b; font: inherit; text-decoration: none; }
.inner-page .inner-cta:hover { background: #17232b; color: white; }
.inner-page .image-gallery .inner-media-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); align-items: center; }
.inner-page .image-gallery img { aspect-ratio: auto; max-height: 135px; object-fit: contain; }
.inner-media .media-frame { border: 4px solid #161616; }
.inner-media .media-frame img { object-fit: cover; }
.inner-media .media-frame video { width: 100%; height: 100%; }

.route-aboutschool .source-sections { display: grid; grid-template-columns: 1fr 1fr; gap: 24px 30px; align-items: start; }
.route-aboutschool .source-section { grid-column: 1/-1; margin-bottom: 22px; }
.route-aboutschool .source-section:nth-child(-n+2) { display: flex; flex-direction: column; gap: 14px; grid-column: auto; }
.route-aboutschool .source-section:first-child .source-copy { padding-block: 8px; }
.route-aboutschool .source-section:nth-child(2) > .section-photo { max-height: 300px; object-fit: contain; }
.route-aboutschool .source-section:nth-child(3) { width: min(100%, 760px); margin: 0 auto 105px; padding: 30px 0; border-top: 2px solid #7d7d7d; text-align: center; font: italic 20px/1.4 var(--serif); }
.route-aboutschool .source-section:nth-child(4) { grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); }
.route-aboutschool .source-section:nth-child(4) h2 { margin-bottom: 20px; }
.route-aboutschool .source-section:nth-child(4) .section-photo { order: 0; }
.route-aboutschool .source-section:nth-child(6) .section-photo { order: 0; }
.route-aboutschool .source-section:last-child, .route-aboutschool .image-gallery { text-align: center; }
.route-aboutschool .source-subtitle { color: #7b2348; }
.route-aboutschool .inner-actions, .route-kidstestimonials .inner-actions, .route-founders-testimonials .inner-actions, .route-our-services .inner-actions { justify-content: center; }

.route-news-and-events { background: white; --inner-max: 1280px; }
.route-news-and-events h1 { font: italic 700 clamp(20px, 2.4vw, 25px)/1.2 var(--serif); color: #7b2348; }
.route-news-and-events .source-section.has-media { display: grid; grid-template-columns: minmax(30px, 140px) minmax(0, 720px) minmax(30px, 140px); align-items: center; gap: clamp(12px, 4vw, 60px); max-width: none; margin-bottom: 45px; }
.route-news-and-events .source-section .inner-media-grid { grid-column: 2; margin: 0; }
.route-news-and-events .source-section .secondary-photo { grid-column: 3; }
.route-news-and-events .section-photo { max-height: 330px; object-fit: contain; }
.news-fixture { max-width: 980px; padding: 0; background: white; }
.news-fixture h2 { font-size: clamp(22px, 3.1vw, 32px); }
.news-fixture-box { background: #031624; color: white; padding: 26px 30px 16px; }
.news-fixture-controls { display: grid; grid-template-columns: 3fr 1fr; gap: 14px; }
.news-fixture-controls input:not([type=checkbox]) { margin: 0; }
.news-fixture-controls .test-action { margin: 0; background: #55becf; border-color: #55becf; color: #081a23; }
.news-fixture-box .test-label { color: white; text-align: left; margin: 11px 0 0; }

.route-meet-the-school-team { background: white; --inner-max: 1180px; }
.route-meet-the-school-team > .inner-wrap > h1, .route-founders-testimonials > .inner-wrap > h1, .route-enrollment-school-page > .inner-wrap > h1 {
  position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%);
}
.route-meet-the-school-team .source-sections { margin-top: 0; }
.route-meet-the-school-team .source-section.has-photo { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) minmax(40px, .27fr); gap: 20px 46px; }
.route-meet-the-school-team .source-section.has-photo:nth-child(odd) > .primary-photo { order: 1; }
.route-meet-the-school-team .source-section.has-photo:nth-child(odd) > .secondary-photo { order: 2; }
.route-meet-the-school-team .source-section.has-photo:nth-child(even) { grid-template-columns: minmax(40px, .27fr) minmax(0, 1fr) minmax(0, 1.2fr); }
.route-meet-the-school-team .source-section.has-photo:nth-child(even) > .secondary-photo { order: -1; }
.route-meet-the-school-team .source-section.has-photo:nth-child(even) > .source-copy { order: 2; }
.route-meet-the-school-team .secondary-photo { max-height: 190px; object-fit: contain; }
.route-meet-the-school-team .source-copy h2, .route-meet-the-school-team .source-subtitle { text-align: center; font-family: var(--serif); font-style: italic; }
.route-meet-the-school-team .source-copy h2 { margin-bottom: 4px; }
.route-meet-the-school-team .source-subtitle { font-size: 18px; }
.route-meet-the-school-team .source-section:not(.has-photo) .source-copy h2 { margin-bottom: 0; font-size: 20px; }
.showreel { display: table; min-width: 175px; margin: 20px auto 0; padding: 10px 30px; background: #c5152d; border: 0; border-radius: 35px; color: white; }
.showreel::before { content: "▷"; margin-right: .5em; }
#dialog-content video { margin-inline: auto; }

.route-kidstestimonials { --inner-max: 1280px; }
.route-kidstestimonials h1, .route-kidstestimonials .page-subtitle, .route-kidstestimonials h2 { font-family: var(--serif); font-weight: 700; font-style: italic; }
.route-kidstestimonials h1 { font-size: clamp(20px, 3vw, 29px); }
.route-kidstestimonials .inner-lead { margin-top: 4px; margin-bottom: 24px; }
.route-kidstestimonials .source-section:first-child { max-width: 1020px; margin-inline: auto; }
.route-kidstestimonials .source-section:first-child:not(.has-photo) > .source-copy { text-align: center; }
.route-kidstestimonials .source-section:nth-child(2) > .source-copy { max-width: 815px; margin-inline: auto; }
.route-kidstestimonials .source-section:nth-child(2) > .source-copy > h2::after { content: "★　★　★　★　★"; display: block; color: #b8142d; font: 22px/1.25 Arial, sans-serif; margin-top: 10px; }
.route-kidstestimonials .source-section:nth-child(2) .inner-media-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.route-kidstestimonials .source-section:last-child { text-align: center; }

.route-founders-testimonials { background: white; }
.route-founders-testimonials .source-sections { margin-top: 0; }
.route-founders-testimonials .source-section { margin-bottom: 26px; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.route-founders-testimonials .source-section h2 { font: 700 clamp(27px, 4.5vw, 47px)/1.1 var(--display); }
.route-founders-testimonials .source-subtitle { font: 700 clamp(18px, 2.2vw, 25px)/1.05 var(--display); }
.route-founders-testimonials .source-section:not(.has-media) { display: block; text-align: center; margin: 40px auto 0; }
.route-founders-testimonials .source-section:not(.has-media) h2 { font: inherit; margin-bottom: 20px; }

.route-our-services { --inner-max: 1180px; }
.route-our-services h1 { font-family: var(--serif); }
.route-our-services .source-section { margin: 0 auto 36px; }
.route-our-services .source-section > .source-copy > h2 { display: table; margin: 0 auto 28px; padding: 12px 28px; background: #031624; color: white; font: italic 700 clamp(19px, 2.6vw, 28px)/1.2 Arial, sans-serif; }
.route-our-services .source-section:first-child.has-photo { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 270px); max-width: 780px; }
.route-our-services .source-section:first-child .source-copy { order: -1; }
.route-our-services .source-section:first-child .section-photo { width: min(100%, 210px); }
.route-our-services .source-section:nth-child(2) > .source-copy > h2 { background: #70143b; }
.route-our-services .source-section:nth-child(2) .inner-media-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.route-our-services .source-section:nth-child(2) .inner-media-grid > :is(:first-child, :nth-child(2), :last-child) { grid-column: span 2; }
.route-our-services .source-section:nth-child(2) .inner-media-grid > :nth-child(n+3) :is(.media-frame, .media-placeholder, img, video) { aspect-ratio: 9/16; }
.route-our-services .source-section:nth-child(2) .inner-media-grid > :last-child :is(.media-frame, .media-placeholder, img, video) { aspect-ratio: 9/8; }
.route-our-services .source-section:nth-child(3) > .source-copy > h2 { background: #4baebe; color: #061d2b; }
.route-our-services .source-list { list-style: decimal; }
.route-our-services .source-section:nth-child(n+4) { text-align: center; }

.route-enrollment-school-page .inner-wrap { padding-top: 0; }
.route-enrollment-school-page .inner-lead { max-width: none; margin: 0 auto 34px; }
.route-enrollment-school-page .inner-lead .page-photo { width: 100%; }
.route-enrollment-school-page .source-section h2 { color: #7b2348; }
.route-enrollment-school-page .source-section .section-photo { width: 100%; }
.route-enrollment-school-page .source-section:nth-child(2) .source-copy, .route-enrollment-school-page .source-section:nth-child(4) .source-copy, .route-enrollment-school-page .source-section:nth-child(5) .source-copy { text-align: left; }
.route-enrollment-school-page .source-section:nth-child(2) .source-list, .route-enrollment-school-page .source-section:nth-child(4) .source-list, .route-enrollment-school-page .source-section:nth-child(5) .source-list { list-style: disc; padding-left: 1.3em; }
.route-enrollment-school-page .source-sections { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 24px; }
.route-enrollment-school-page .source-section { grid-column: 1 / -1; }
.route-enrollment-school-page .source-section:nth-child(4), .route-enrollment-school-page .source-section:nth-child(5) { grid-column: auto; }
.route-enrollment-school-page .source-section:last-child p { color: #a31c33; }
/* The two Blue Fantasy files have extra transparent space above and below the artwork. */
.route-enrollment-school-page .image-gallery img {
  width: min(100%, 203px);
  aspect-ratio: 1735 / 1152;
  object-fit: cover;
}

.route-school-contact h1 { font: 700 clamp(32px, 5.4vw, 54px)/1.12 var(--display); }
.route-school-contact .inner-lead { max-width: 560px; text-align: left; }
.route-school-contact .source-sections:empty { display: none; }
.legacy-contact .header { border-bottom: 16px solid #041725; }
.legacy-contact .legacy-navigation > a { font-size: 16px; }
.contact-fixture { max-width: 775px; background: white; padding: 32px clamp(22px, 6.5vw, 85px) 34px; }
.contact-fixture h2 { font: 700 30px/1.2 var(--serif); }
.contact-fixture .test-label { margin-top: 0; }
.contact-fixture .fixture-fields input, .contact-fixture .fixture-fields textarea { border: 2px solid #575763; font: italic 16px/1.15 var(--serif); }
.contact-fixture .test-action { display: block; margin: 17px 0 0 auto; min-width: 145px; background: #36394b; border-color: #36394b; }
.legacy-footer-grid { max-width: 980px; margin: 0 auto 16px; display: grid; grid-template-columns: 1fr 2fr .65fr .65fr; gap: 20px; align-items: center; }
.legacy-contact .footer { border-top: 1px solid #17232b; padding-top: 23px; }
.legacy-footer-grid > img { width: 115px; }
.legacy-footer-school p { font-size: 11px; }
.legacy-footer-actor > a { display: block; margin-bottom: 16px; font-weight: 700; text-decoration: none; }
.legacy-footer-actor ul { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.legacy-footer-actor li, .legacy-footer-links li { margin: 0 0 8px; font-size: 15px; }
.legacy-footer-actor img { width: 26px; }
.legacy-footer-links { text-align: right; }

@media (min-width: 761px) {
  .navigation > a[aria-current="page"], .nav-group > a[aria-current="page"], .navigation details:has(a[aria-current="page"]) > summary {
    background: #bd1729; color: white; text-decoration: none; padding: 9px 12px;
  }
  .navigation .nav-group details:has(a[aria-current="page"]) > summary { padding: 5px; }
}
@media (max-width: 760px) {
  .route-aboutschool .source-sections, .route-enrollment-school-page .source-sections { display: block; }
  .route-aboutschool .source-section:nth-child(3) { margin-bottom: 42px; }
  .route-aboutschool .source-section:nth-child(4), .route-our-services .source-section:first-child.has-photo { grid-template-columns: 1fr; }
  .route-news-and-events .source-section.has-media { display: block; }
  .route-news-and-events .source-section.has-media > .section-photo { display: none; }
  .route-meet-the-school-team .source-section.has-photo:nth-child(n) { grid-template-columns: 1fr; gap: 18px; }
  .route-meet-the-school-team .source-section.has-photo:nth-child(n) > .primary-photo { order: -1; }
  .route-meet-the-school-team .secondary-photo { display: none; }
  .route-founders-testimonials .source-section { grid-template-columns: 1fr; }
  .route-kidstestimonials .source-section:nth-child(2) .inner-media-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .legacy-footer-grid { grid-template-columns: 1fr 1fr; }
  .legacy-footer-grid .legacy-footer-actor { grid-column: 1 / -1; grid-row: 2; }
}
@media (max-width: 420px) {
  .route-kidstestimonials .source-section:nth-child(2) .inner-media-grid { grid-template-columns: 1fr; }
  .route-our-services .source-section:nth-child(2) .inner-media-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .news-fixture-box { padding: 16px; }
  .news-fixture-controls { grid-template-columns: 1fr; }
}

.route-fixture .sample-scenario { margin: 0 0 14px; font-size: 14px; }
.sample-scenario select { max-width: 100%; margin-left: 6px; padding: 5px; border: 1px solid #73737b; background: white; color: #17232b; font: inherit; }
.news-fixture .sample-scenario { margin: 10px 0 0; text-align: left; }
.route-fixture input[aria-invalid="true"] { border: 2px solid #b11731; }

.route-enrollment-school-page { overflow: hidden; }
.route-enrollment-school-page .page-hero { width: 100%; aspect-ratio: 1497 / 652; object-fit: cover; object-position: center; }
.route-enrollment-school-page .inner-lead { margin-top: 38px; }
.route-enrollment-school-page .source-section.has-photo { position: relative; }
.route-enrollment-school-page .source-section .section-photo[alt=""] {
  position: absolute; top: 0; width: clamp(95px, 14vw, 178px); max-height: 283px; object-fit: contain;
}
.route-enrollment-school-page .source-section .primary-photo[alt=""] { left: clamp(-178px, -13vw, -70px); }
.route-enrollment-school-page .source-section:nth-child(5) .primary-photo[alt=""] { left: calc(100% + 8px); }
.route-enrollment-school-page .source-section .secondary-photo[alt=""] { right: clamp(-178px, -13vw, -70px); }
@media (max-width: 760px) {
  .route-enrollment-school-page .inner-lead { margin-top: 18px; }
  .route-enrollment-school-page .source-section .section-photo[alt=""] { display: none; }
}
