/* Final layout pass: shared typography, touch targets and content spacing. */
body { font-family: Arial, Helvetica, sans-serif; font-size:16px; line-height:1.6; }
main { overflow-wrap:break-word; }
main h1, main h2, main h3, main h4 { line-height:1.25; }
main h1 { font-size:40px; }
main h2, main .section-title { font-size:32px; }
main h3 { font-size:22px; }
main .eyebrow, main .section-kicker { margin-bottom:12px; }
main .section { padding-top:48px; padding-bottom:48px; }
main .page-header, main .page-hero { padding-top:48px; padding-bottom:28px; }
main .page-header h1, main .about-hero h1 { font-size:40px; line-height:1.2; }
main .page-header p, main .section-lede, main .hero-lede { font-size:17px; line-height:1.6; }
main .about-hero { padding:48px 0; }
main .about-hero::before, .homepage .hero::before { content:none; }
main :is(.btn,.button) { border-radius:4px; white-space:normal; text-align:center; line-height:1.4; min-height:44px; padding:12px 18px; }
main :is(.breadcrumb,.text-link,.lecturer-profile-link,.feedback-gallery-link,.lecturer-teaching-links a,.catalogue-list article > a,.schedule-meta + a) { display:inline-flex; align-items:center; min-height:44px; line-height:1.5; }
main :is(.breadcrumb,.text-link,.lecturer-profile-link,.feedback-gallery-link,.lecturer-teaching-links a,.catalogue-list article > a):focus-visible { outline:3px solid currentColor; outline-offset:4px; }
main summary { min-height:44px; padding:10px 0; line-height:1.5; }
main :is(section[id],article[id],h2[id],h3[id]) { scroll-margin-top:104px; }
footer.ilt-footer a { min-height:44px; }
main .staff-card .lecturer-profile-link { color:#ffd500; }
main .staff-card { border-radius:8px; }
main .staff-card:hover { transform:none; }
main :is(.career-card,.feature-panel,.apply-panel,.journey-card,.edge-card,.hero-banner-frame,.value-prop-frame) { border-radius:8px; }
main .feature-panel { padding:28px; }
main .career-card { min-height:0; padding:24px; }
main .journey-card { min-height:0; padding:24px; cursor:auto; }
main .hero-banner-frame { margin-bottom:0; }
main .value-prop-section { margin-bottom:32px; padding:32px 0; }
main .hero-banner-frame img:hover { transform:none; }
.homepage .hero { padding:48px 0; }
.homepage .hero-grid { gap:40px; }
.homepage .hero h1 { font-size:48px; line-height:1.15; }
.homepage .hero-cta { gap:12px; margin-bottom:24px; }
.homepage .hero-lede { margin-bottom:24px; }
.homepage .campus-card { border-radius:8px; box-shadow:none; }
.homepage .float-card { position:static; width:100%; padding:16px 20px; margin-top:16px; border-radius:6px; box-shadow:none; }
.homepage .float-card strong { font-size:22px; line-height:1.3; }
.homepage :is(.choice-card,.why-card,.parent-card,.pay-card,.identity-card,.path-detail,.journey-step) { border-radius:8px; }
.homepage :is(.choice-card,.why-card,.parent-card,.pay-card) { min-height:0; padding:24px; }
.homepage .card-number { margin-bottom:16px; }
.homepage .pathway-top-overlay h3 { font-size:24px; }
.homepage .pathway-body .list a { display:block; min-height:44px; padding:10px 0; line-height:1.5; }
.homepage .pathway-body .list li { padding-block:0; }
.homepage .testimonial-media { min-width:0; aspect-ratio:1; border-radius:8px; box-shadow:none; }
.homepage .testimonial-media picture { display:block; }
.homepage .testimonial-media img { width:100%; height:auto; object-fit:contain; }
.homepage .testimonial-card { padding:0; background:transparent; border:0; border-radius:0; box-shadow:none; }
.homepage .testimonial-full { border-top:1px solid #ccd4e0; border-bottom:1px solid #ccd4e0; }
.homepage .testimonial-full summary { color:#002366; font-weight:700; cursor:pointer; }
.homepage .testimonial-copy { padding-top:12px; }
.homepage .testimonial-copy p { color:#40506a; }
.homepage .contact-section { padding:48px 0; }
.homepage .contact-section .section-title { font-size:32px; }
body:not(.homepage) main > .hero { min-height:0; }
main .hero-content { padding:48px 0; }
main .hero-content h1 { font-size:40px; line-height:1.2; }
main .hero-content .button + .button { margin-left:8px; }
main .ai-map { padding:48px 0; }
main .ai-map h2 { font-size:32px; }
main .ai-map-node { border-radius:4px; }
main .qualification-card { padding:24px; }
main .qualification-card summary { padding-block:8px; }
main .partner-card { border-radius:6px; overflow:hidden; }
main .partner-copy { padding:24px; }
main .partner-brand img { flex-shrink:0; }
.programme-static .programme-hero { padding:40px 24px; }
.programme-static .programme-hero h1 { font-size:36px; line-height:1.25; }
.programme-static .breadcrumb { margin-bottom:16px; }
.programme-static .cta-panel { padding:28px; margin-inline:0; }
.programme-static .cta-panel h2 { font-size:28px; }
.programme-static .feature-media img { max-height:580px; object-fit:contain; box-shadow:none; }
.programme-static .list-card { padding:24px; }
.programme-static .faq details { padding:4px 0; }
.programme-static .faq details p { padding-bottom:12px; }
.programme-static .course-lecturer h2 { font-size:28px; margin-bottom:24px; }
.programme-static .course-lecturer h3 { font-size:20px; }
.programme-static .course-lecturer p { max-width:75ch; }
.lecturers-page .lecturer-index { display:flex; position:static; flex-wrap:wrap; gap:4px 24px; margin:8px 0 0; padding:0; width:100%; max-height:none; background:transparent; border:0; box-shadow:none; }
.lecturer-directory { margin-top:12px; }
.lecturer-directory summary { color:#fff; font-size:16px; font-weight:700; cursor:pointer; }
.lecturer-index a { min-height:44px; display:inline-flex; align-items:center; color:#fff; font-size:15px; text-underline-offset:5px; }
.lecturer-index a:focus-visible { outline:3px solid #ffd500; outline-offset:3px; }
.lecturers-page .lecturer-details h2 { font-size:30px; }
@media (max-width:1120px) {
  header.ilt-header .nav-shell .nav-links { flex-wrap:nowrap; justify-content:flex-start; border-radius:0; overflow-x:hidden; }
  header.ilt-header .nav-links > a, header.ilt-header .shell-secondary { flex-shrink:0; }
  header.ilt-header .shell-secondary { position:static; width:100%; }
  .homepage .path-detail { position:static; }
}
@media (max-width:700px) {
  .schedule-table caption { display:block; width:100%; text-align:left; padding-bottom:12px; }
  main .section { padding-top:32px; padding-bottom:32px; }
  main .page-header, main .page-hero { padding-top:32px; padding-bottom:24px; }
  main .about-hero { padding:32px 0; }
  main .page-header h1, main .about-hero h1, main .hero-content h1 { font-size:32px; }
  main h2, main .section-title, main .ai-map h2 { font-size:26px; line-height:1.3; }
  main h3 { font-size:20px; }
  main .hero-content { padding:32px 0; }
  main .hero-content .button { display:flex; width:100%; }
  main .hero-content .button + .button { margin:12px 0 0; }
  main .feature-panel, main .career-card, main .partner-copy { padding:20px; }
  .homepage .hero { padding:32px 0; }
  .homepage .hero-grid { gap:24px; }
  .homepage .hero h1 { font-size:32px; }
  .homepage .hero-cta .btn { width:100%; }
  .homepage .float-card { margin-top:12px; }
  .homepage .float-card strong { font-size:20px; }
  .homepage .identity-card { display:grid; grid-template-columns:36px minmax(0,1fr); align-items:center; gap:12px; min-height:100px; padding:16px; }
  .homepage .identity-card .identity-icon { width:36px; height:36px; }
  .homepage .identity-card strong { font-size:17px; line-height:1.3; margin-bottom:4px; }
  .homepage :is(.choice-card,.why-card,.parent-card,.pay-card) { padding:20px; }
  .homepage .testimonial-media { max-width:220px; }
  .homepage .contact-section { padding:32px 0; }
  .homepage .contact-section .section-title { font-size:26px; }
  main .ai-map { padding:32px 0; }
  main .ai-map-node { padding:20px; }
  .programme-static .programme-hero { padding:32px 16px; }
  .programme-static .programme-hero h1 { font-size:28px; }
  .programme-static .section { padding-left:16px; padding-right:16px; }
  .programme-static .cta-panel { padding:20px; }
  .programme-static .cta-panel h2, .programme-static .course-lecturer h2 { font-size:24px; }
  .programme-static .cta-panel .button { width:100%; }
  .programme-static .feature-media img { max-height:460px; }
  .lecturers-page .lecturer-profile { padding:32px 16px; }
  .lecturers-page .lecturer-portrait { max-width:180px; }
  .lecturers-page .lecturer-details h2 { font-size:26px; }
  .lecturers-page .lecturer-experience { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
  .lecturers-page .lecturer-experience dd { font-size:22px; }
}
@media (max-height:500px) and (max-width:1120px) {
  header.ilt-header.site-header .nav-shell { min-height:60px; }
  header.ilt-header .nav-shell .nav-links { max-height:calc(100dvh - 84px); }
}
