/* I Quest: retain the established type, navy, crimson and institute photography. */
:root { --polish-line: #d8dfe3; --polish-shadow: 0 10px 28px #0433530a; }
html { scroll-padding-block-start: var(--site-header-offset, 130px); }
main [id] { scroll-margin-block-start: 0; }
[hidden] { display: none !important; }
.js [data-reveal] { opacity: 1 !important; transform: none !important; }
a, button, input, select, textarea { -webkit-tap-highlight-color: transparent; }
:is(a, button, input, select, textarea):focus-visible { outline: 3px solid #da7521; outline-offset: 4px; }
.site-header { background: var(--color-cream); }
.site-header__inner { min-block-size: 72px; gap: 12px; }
.header-location { margin: 0; padding: 0; display: flex; flex: none; }
.header-location__link { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-block-size: 44px; padding: 8px 10px; color: var(--color-navy-900); background: transparent; border: 1px solid var(--color-navy-900); border-radius: var(--radius-sm); font-family: var(--font-display); font-size: 13px; line-height: 1.25; font-weight: 600; text-decoration: none; white-space: nowrap; transition: background .18s, border-color .18s; }
.header-location__link:hover { border-color: var(--color-navy-800); background: #eaf0f4; }
.header-location__link svg { flex: none; }
.site-nav__menu { box-shadow: 0 12px 30px #021f331a; }
.site-nav__menu-link { min-block-size: 42px; }
.site-nav__link { text-underline-offset: 6px; }
.btn { min-block-size: 44px; }
.btn--primary { box-shadow: 0 3px 0 #b92f3017; }
.btn:hover { transform: translateY(-1px); }
.btn:active { transform: translateY(0); }
.hero { padding-block: clamp(2rem, 4vw, 4rem) clamp(3rem, 5vw, 5rem); }
.hero__inner { align-items: center; }
.hero__headline { max-inline-size: 12ch; font-size: clamp(2.4rem, 4.4vw, 4.25rem); letter-spacing: -.045em; }
.hero__lede { max-inline-size: 42ch; font-size: clamp(1rem, 1.45vw, 1.2rem); line-height: 1.65; }
.hero__actions { gap: 12px; }
.hero__actions .btn { font-size: 1rem; }
.slideshow { box-shadow: 0 16px 36px #021f3312; border-radius: 16px; }
.slideshow__playback { position: absolute; inset: auto 12px 12px auto; z-index: 4; }
[data-slide-pause] { background: #021f33d9; color: white; border: 1px solid #ffffff80; border-radius: 7px; min-block-size: 40px; padding: 7px 11px; font: inherit; font-size: 12px; cursor: pointer; }
[data-slide-pause]:hover { background: #ffffff1c; }
.section { padding-block: clamp(3.5rem, 6vw, 6rem); }
.section--tight { padding-block: clamp(2.75rem, 4.5vw, 4.5rem); }
.section__headline { letter-spacing: -.035em; text-wrap: balance; }
.section__lede { font-size: clamp(1rem, 1.25vw, 1.15rem); line-height: 1.7; max-inline-size: 64ch; }
.section__body { margin-block-start: 2rem; }
.section--flush .section__body { margin-block-start: 0; }
.page-head { padding-block: clamp(2rem, 4vw, 4rem); }
.page-head__title { max-inline-size: 21ch; letter-spacing: -.04em; text-wrap: balance; }
.page-head__lede { font-size: clamp(1rem, 1.35vw, 1.2rem); line-height: 1.7; }
.card, .board-card, .topper-card, .voices__panel { box-shadow: var(--polish-shadow); }
.card__body { padding: clamp(1.25rem, 2vw, 1.8rem); }
.card__title, .programme-detail__block-title { letter-spacing: -.02em; }
.card__text, .programme-detail__text, .detail-list { line-height: 1.75; }
.topper-grid { gap: clamp(10px, 1.4vw, 20px); }
.topper-card { border-radius: 10px; overflow: hidden; }
.board-card__link img, .topper-card__link img, .gallery__link img { transition: transform .25s; }
.board-card__link:hover img, .topper-card__link:hover img, .gallery__link:hover img { transform: scale(1.025); }
.gallery__link { overflow: hidden; position: relative; border-radius: 10px; }
.gallery__link::after { content: 'View photograph'; position: absolute; inset: auto 10px 10px auto; padding: 6px 10px; background: #021f33dc; color: white; border-radius: 5px; font-size: 12px; opacity: 0; transition: opacity .18s; }
.gallery__link:hover::after, .gallery__link:focus-visible::after { opacity: 1; }
.control:not(.control--checkbox) { min-block-size: 48px; border-color: #b9c7cf; background-color: white; border-radius: 7px; font-size: 1rem; }
.field--checkbox { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: start; }
.field--checkbox .control--checkbox { margin-block-start: 3px; }
.field--checkbox .field-error { grid-column: 1 / -1; margin-block-start: 0; }
.control:focus { border-color: var(--color-navy-800); box-shadow: 0 0 0 3px #07447012; }
.field__label { line-height: 1.5; }
.enquiry { box-shadow: var(--polish-shadow); }
.enquiry__grid { gap: 22px; }
.enquiry__title { letter-spacing: -.025em; }
.enquiry__prefill { padding: 12px 15px; background: #eef4f6; color: var(--color-navy-900); border-inline-start: 3px solid var(--color-navy-800); margin-block: 15px 24px; font-size: 14px; }
.field-error { margin: 7px 0 0; font-size: 13px; line-height: 1.5; color: #b12532; }
.control[aria-invalid=true] { border-color: #b12532; }
.enquiry__confirmation { border-inline-start: 3px solid #287455; }
.course-finder { background: white; padding-block: 0 clamp(2.5rem, 4vw, 4rem); }
.course-finder .section__inner { position: relative; }
.course-finder__inner { padding: clamp(22px, 3vw, 38px); border: 1px solid var(--polish-line); border-block-start: 4px solid var(--color-navy-900); border-radius: 0 0 14px 14px; box-shadow: var(--polish-shadow); background: white; }
.course-finder__intro { display: flex; align-items: center; gap: 17px; margin-block-end: 24px; }
.course-finder__icon { flex: none; display: grid; place-items: center; inline-size: 52px; block-size: 52px; border-radius: 50%; color: var(--color-navy-900); background: #edf2f5; }
.course-finder__icon svg { width: 31px; height: 31px; }
.course-finder h2 { margin: 0 0 5px; font-family: var(--font-display); font-size: clamp(1.2rem, 2vw, 1.65rem); line-height: 1.35; letter-spacing: -.025em; color: var(--color-navy-900); }
.course-finder__intro p { margin: 0; font-size: 14px; color: #526374; }
.course-finder__fields { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr) auto; align-items: end; gap: 18px; }
.course-finder__fields .btn { min-block-size: 48px; }
.course-finder__hint { font-size: 12px; color: #526374; margin: 12px 0 0; }
.course-finder__result { display: flex; align-items: center; gap: 30px; margin-block-start: 24px; padding: 24px; background: #f0f5f7; border-radius: 9px; }
.course-finder__result > div:first-child { flex: 1; }
.course-finder__match { margin: 0 0 4px; color: #526374; font-size: 12px; }
.course-finder__result h3 { font-size: 1.4rem; font-family: var(--font-display); color: var(--color-navy-900); margin: 0 0 8px; }
.course-finder__result p:last-child { margin: 0; max-inline-size: 65ch; line-height: 1.65; font-size: 14px; }
.course-finder__result-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.course-finder__result-actions .btn { font-size: 13px; }
.results-browser { padding-block: 35px; }
.results-browser__intro h2 { font-family: var(--font-display); color: var(--color-navy-900); font-size: 1.5rem; letter-spacing: -.025em; margin: 0 0 5px; }
.results-browser__intro p { color: #526374; font-size: 14px; margin: 0 0 22px; }
.results-browser__controls { display: flex; align-items: end; gap: 18px; flex-wrap: wrap; }
.results-browser__controls .field { min-inline-size: 180px; }
.results-browser__reset { color: var(--color-navy-900); background: white; min-block-size: 48px; padding: 10px 14px; border: 1px solid #b9c7cf; border-radius: 7px; font: inherit; font-size: 14px; cursor: pointer; }
.results-browser__reset:hover { background: #eef3f6; }
.results-browser__status { margin: 14px 0 0; color: #526374; font-size: 13px; }
.results-browser__empty { margin: 25px 0 0; padding: 24px; border: 1px dashed #9bafb9; border-radius: 9px; color: var(--color-navy-900); background: #f4f7f8; }
.visit-band { background: var(--color-navy-950); color: white; padding-block: clamp(3rem, 5vw, 5rem); }
.visit-band__inner { display: grid; grid-template-columns: minmax(0,.65fr) minmax(0,1fr); gap: clamp(30px, 6vw, 90px); align-items: center; max-inline-size: 70rem; margin-inline: auto; }
.visit-band__photo { height: 340px; overflow: hidden; border-radius: 14px; }
.visit-band__photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; }
.visit-band__eyebrow { color: #ffb567; font-size: 14px; font-weight: 600; margin: 0 0 14px; }
.visit-band h2 { color: white; font-family: var(--font-display); letter-spacing: -.035em; font-size: clamp(1.9rem, 3vw, 2.6rem); line-height: 1.2; max-inline-size: 18ch; margin: 0 0 20px; }
.visit-band__body > p:not(.visit-band__eyebrow):not(.visit-band__note) { font-size: 1rem; line-height: 1.75; color: #d3e0e9; margin: 0 0 16px; }
.visit-band address { font-style: normal; color: white; font-size: 14px; line-height: 1.7; max-inline-size: 40ch; }
.visit-band__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-block-start: 25px; }
.visit-band__note { color: #b7cad8; font-size: 12px; line-height: 1.6; margin: 16px 0 0; }
.lightbox__close { font-size: 32px; line-height: 1; display: grid; place-items: center; }
.lightbox__nav { position: fixed; top: 45%; min-inline-size: 44px; min-block-size: 52px; border: 1px solid #ffffff80; border-radius: 7px; background: #021f33db; color: white; font-size: 35px; cursor: pointer; }
.lightbox__nav--prev { left: 12px; }
.lightbox__nav--next { right: 12px; }
.lightbox__caption { line-height: 1.6; }
.contact-bar { grid-template-columns: repeat(4, minmax(0,1fr)); }
.contact-bar__action { min-inline-size: 0; }
html:not(.js) .slideshow__controls, html:not(.js) [data-slide-pause] { display: none; }
@media (min-width: 64rem) {
  .site-nav { gap: 18px; }
  .site-nav__list { gap: 18px; }
  .site-nav__actions { gap: 12px; flex: none; }
  .site-nav__link, .site-nav__phone, .site-nav__whatsapp { font-size: 14px; }
  .section--asymmetric .section__head { inset-block-start: var(--site-header-offset, 130px); }
}
@media (min-width: 64rem) and (max-width: 73.999rem) {
  .site-nav__phone { display: none; }
}
@media (max-width: 63.999rem) {
  .site-nav { inset-block-start: var(--iquest-nav-top, var(--header-height)); }
  .site-header__inner { gap: 8px; }
  .site-header__brand { margin-inline-end: auto; }
  .header-location { order: 1; }
  .nav-toggle { order: 2; }
  html:not(.js) .site-nav { order: 3; }
  .hero__headline { font-size: clamp(2.4rem, 6vw, 3.5rem); }
  .course-finder__fields { grid-template-columns: minmax(0,1fr) minmax(0,1.25fr); }
  .course-finder__fields .btn { justify-self: start; }
  .course-finder__result { flex-direction: column; align-items: stretch; gap: 20px; }
  html:not(.js) [data-nav-toggle] { display: none; }
  html:not(.js) .site-header { position: static; }
  html:not(.js) .site-header__inner { flex-wrap: wrap; padding-block: 16px 8px; }
  html:not(.js) .site-nav { position: static; inset: auto; flex: 1 0 100%; opacity: 1; visibility: visible; transform: none; overflow: visible; padding: 12px 0; }
  html:not(.js) .site-nav__list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 18px; }
  html:not(.js) .site-nav__link { font-size: 16px; padding-block: 10px; white-space: normal; }
  html:not(.js) .site-nav__menu-link { font-size: 13px; padding-block: 6px; }
  html:not(.js) .site-nav__actions { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 12px; margin-block-start: 14px; }
  html:not(.js) .site-nav__phone, html:not(.js) .site-nav__whatsapp { font-size: 13px; padding-block: 8px; border: 0; }
}
@media (max-width: 40rem) {
  .site-header__brand { gap: 8px; }
  .site-header__logo { inline-size: 32px; block-size: 32px; }
  .site-header__name { font-size: 16px; }
  .nav-toggle { min-block-size: 44px; padding-inline: 10px; font-size: 14px; }
  .hero { padding-block: 28px 40px; }
  .hero__headline { max-inline-size: 12ch; font-size: clamp(2.3rem, 9vw, 3.2rem); }
  .hero__eyebrow { font-size: 10px; letter-spacing: .08em; }
  .hero__lede { font-size: 1rem; line-height: 1.7; }
  .hero__actions .btn { inline-size: 100%; min-block-size: 48px; }
  [data-slide-pause] { min-block-size: 44px; }
  .section { padding-block: 44px; }
  .section--tight { padding-block: 36px; }
  .section__body { margin-block-start: 24px; }
  .section__headline { font-size: clamp(1.75rem, 7vw, 2.2rem); }
  .page-head__title { font-size: clamp(2rem, 8vw, 2.75rem); }
  .voices__head { grid-template-columns: minmax(0,1fr); }
  .course-finder__inner { padding: 22px 18px; }
  .course-finder__intro { gap: 12px; align-items: start; }
  .course-finder__icon { width: 40px; height: 40px; }
  .course-finder__icon svg { width: 26px; height: 26px; }
  .course-finder__intro p { font-size: 13px; }
  .course-finder__fields { grid-template-columns: minmax(0,1fr); gap: 16px; }
  .course-finder__fields .btn, .course-finder__result-actions .btn { width: 100%; }
  .course-finder__result { padding: 18px; }
  .results-browser__controls { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
  .results-browser__controls .field { min-inline-size: 0; }
  .results-browser__reset { grid-column: 1 / -1; justify-self: start; }
  .visit-band__inner { grid-template-columns: minmax(0,1fr); gap: 28px; }
  .visit-band__photo { height: 220px; }
  .visit-band h2 { max-inline-size: 19ch; }
  .visit-band__actions { flex-direction: column; }
  .contact-bar__action { font-size: 11px; padding: 11px 3px; gap: 5px; }
  .contact-bar__icon { width: 16px; height: 16px; }
  .enquiry__actions .btn { width: 100%; }
  .lightbox__nav { top: auto; bottom: 82px; min-block-size: 44px; }
  .lightbox__figure { padding-inline: 4px; }
  .gallery__link::after { font-size: 10px; padding: 4px 6px; inset: auto 6px 6px auto; }
}
@media (max-width: 23.75rem) {
  .header-location__link, .nav-toggle { min-inline-size: 44px; inline-size: 44px; padding-inline: 0; justify-content: center; }
  .header-location__link span, .nav-toggle__text { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
}
@media (prefers-reduced-motion: reduce) {
  .btn, .gallery__link img, .board-card__link img, .topper-card__link img { transition: none; }
  .btn:hover, .gallery__link:hover img, .board-card__link:hover img, .topper-card__link:hover img { transform: none; }
}
