/* Final visual refinement, keeping the site's navy, gold and warm neutral palette. */
.webinar-plan-studio { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); border:1px solid #dce4ec; border-radius:26px; overflow:hidden; background:#f5f7fa; }
.webinar-price-side { padding:clamp(24px,3.4vw,48px); background:#183a5e; color:#fff; }
.webinar-plan-toggle { border:0; margin:0 0 28px; padding:0; display:flex; gap:6px; }
.webinar-plan-toggle[hidden],.webinar-plan-panel[hidden] { display:none; }
.webinar-plan-toggle legend { font-size:12px; color:#d5e2ee; margin-bottom:12px; }
.webinar-plan-toggle label { position:relative; flex:1; min-width:0; cursor:pointer; }
.webinar-plan-toggle input { position:absolute; opacity:0; width:1px; height:1px; }
.webinar-plan-toggle label>span { display:block; border:1px solid #ffffff35; border-radius:12px; padding:12px 16px; font-size:16px; font-weight:600; transition:background .2s,color .2s; }
.webinar-plan-toggle small { display:block; font-size:11px; margin-top:5px; font-weight:400; }
.webinar-plan-toggle input:checked+span { background:#f5e6c8; border-color:#f5e6c8; color:#183a5e; }
.webinar-plan-toggle input:focus-visible+span { outline:3px solid #fff; outline-offset:3px; }
.webinar-plan-kicker { display:block; font-size:10px; letter-spacing:.12em; font-weight:600; color:#e1c38b; }
.webinar-plan-panel h3 { font-size:clamp(21px,2.2vw,29px); line-height:1.3; margin:12px 0 0; color:#fff; }
.webinar-plan-panel .offer-price { display:flex; flex-wrap:wrap; align-items:baseline; gap:12px; margin:16px 0 22px; font-size:clamp(42px,4vw,60px); font-weight:600; line-height:1.15; color:#fff; }
.webinar-plan-panel .offer-price small { font-size:15px; font-weight:400; color:#d9e5ef; }
.webinar-year-value { padding:18px 20px; border:1px solid #e1c38b45; background:#ffffff08; border-radius:14px; margin-bottom:24px; }
.webinar-year-value>span { display:flex; align-items:center; gap:8px; font-size:12px; color:#e1c38b; }
.webinar-year-value svg { width:16px; height:16px; }
.webinar-year-value p { margin:10px 0; color:#fff; font-size:14px; }
.webinar-year-value strong { font-size:36px; font-weight:500; letter-spacing:-.04em; color:#f1d798; }
.webinar-year-value p>span { display:block; color:#d9e5ef; font-size:12px; margin-top:3px; }
.webinar-year-value small { display:block; color:#d9e5ef; font-size:11px; line-height:1.6; }
.webinar-plan-panel>.button { background:#f5e6c8; color:#183a5e; border-color:#f5e6c8; min-height:48px; width:100%; justify-content:space-between; font-size:14px; }
.webinar-month-note { min-height:146px; padding:20px 0; font-size:16px; line-height:1.7; color:#e1eaf3; }
.webinar-price-caption { font-size:12px; color:#d9e5ef; margin:14px 0 0; }
.webinar-plan-support { padding:clamp(24px,3.4vw,48px); align-self:center; }
.webinar-plan-support>.webinar-plan-kicker { color:#806735; }
.webinar-plan-support h3 { font-size:clamp(24px,2.7vw,34px); line-height:1.3; margin:14px 0 26px; }
.webinar-plan-support ul { padding:0; margin:0; list-style:none; display:grid; gap:20px; }
.webinar-plan-support li { display:flex; align-items:flex-start; gap:14px; }
.webinar-plan-support li>span { display:grid; place-items:center; background:#fff; width:40px; height:40px; flex-shrink:0; border:1px solid #e2e8ed; border-radius:12px; color:#28517a; }
.webinar-plan-support li svg { width:19px; height:19px; }
.webinar-plan-support strong { font-size:15px; font-weight:600; }
.webinar-plan-support li p { font-size:13px; line-height:1.65; color:#60728a; margin:4px 0 0; }
.webinar-schedule-note { display:flex; align-items:flex-start; gap:10px; border-top:1px solid #dce4ec; margin:26px 0 0; padding-top:20px; font-size:12px; line-height:1.6; color:#60728a; }
.webinar-schedule-note svg { width:17px; height:17px; flex-shrink:0; }
.webinar-plan-studio[data-initialised] .webinar-plan-panel:not([hidden]) { animation:webinar-price-arrive .25s ease-out; }
@keyframes webinar-price-arrive { from { opacity:.3; transform:translateY(6px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:700px) { .webinar-plan-studio { grid-template-columns:1fr; border-radius:20px; } .webinar-plan-toggle label>span { padding:12px; } .webinar-plan-support h3 br { display:none; } }
@media(prefers-reduced-motion:reduce) { .webinar-plan-studio[data-initialised] .webinar-plan-panel:not([hidden]) { animation:none; } .webinar-plan-toggle label>span { transition:none; } }
.site-header { border:1px solid #183a5e0c; box-shadow:0 8px 30px #183a5e09; }
.desktop-nav a { font-weight:500; }
.button { transition:background .2s ease,box-shadow .2s ease,transform .2s ease; }
.button:hover { box-shadow:0 7px 18px #183a5e14; transform:translateY(-2px); }
.button:focus-visible,a:focus-visible,button:focus-visible { outline:3px solid #bb9857; outline-offset:4px; }
.eyebrow { letter-spacing:.13em; }
.audience-hero-copy > p,.page-hero > p,.section-heading > p { line-height:1.8; }
.audience-hero-image { border-radius:22px; box-shadow:0 16px 44px #183a5e10; overflow:hidden; }
.city-location-card { border:1px solid #183a5e14; box-shadow:0 5px 20px #183a5e06; }
.city-venue { padding:24px; }
.city-venue p { line-height:1.75; }
.city-venue > div { flex-wrap:wrap; row-gap:14px; }
.fair-hours { display:block; width:fit-content; font-size:12px; font-weight:500; letter-spacing:.01em; line-height:1.6; color:#244d70; background:#edf2f6; border-radius:6px; padding:5px 9px; margin-top:12px; }
.city-photo-tile .fair-hours { grid-column:1/-1; text-align:left; }
.event-facts .fair-hours { margin-top:10px; }
.stall-plan,.offer-card,.optional-service,.form-card { border:1px solid #183a5e16; box-shadow:0 8px 26px #183a5e06; }
.inperson-plan { background:#f1f5f9; grid-template-columns:minmax(100px,.45fr) minmax(0,1fr); }
.pricing-heading h2 em { color:var(--blue); }
.inperson-plan .fair-format { font-size:26px; line-height:1.25; margin-top:0; text-align:center; }
.online-booking-download { margin-top:16px; font-size:13px; align-self:flex-start; }
.terms-format-links { display:flex; flex-wrap:wrap; gap:12px; margin-bottom:32px; }
.terms-format-links a { padding:12px 16px; border:1px solid #d7e2ed; border-radius:10px; font-size:14px; }
.terms-format-links a[aria-current=page] { background:var(--ink); color:#fff; border-color:var(--ink); }
.inperson-plan .stall-size { background:#e5edf5; color:var(--blue); border-color:#cbd9e7; box-shadow:7px 8px 0 #dbe5ef; }
.inperson-plan .stall-price strong { font-size:clamp(24px,2.2vw,34px); color:var(--ink); }
.online-participation-plan { display:flex; flex-direction:column; padding:30px; background:#f8f5ed; border:1px solid #183a5e16; border-radius:21px; }
.online-participation-plan>.micro { color:#806735; }
.online-participation-plan h3 { font-size:28px; margin:15px 0 12px; }
.online-participation-plan p { font-size:15px; line-height:1.7; color:#60728a; }
.online-plan-rates { margin:20px 0; }
.online-plan-rates>div { display:flex; justify-content:space-between; gap:18px; padding:15px 0; border-top:1px solid #dce3e9; }
.online-plan-rates dt { font-size:16px; }
.online-plan-rates dd { margin:0; text-align:right; font-size:26px; color:var(--ink); }
.online-plan-rates small { display:block; font-size:12px; color:#60728a; margin-top:5px; }
.online-participation-plan .button { align-self:flex-start; margin-top:auto; }
.online-plan-inclusions { margin-bottom:25px; }
.fixed-fair-package { padding:16px 18px; border:1px solid #ffffff25; border-radius:12px; margin:22px 0; background:#ffffff08; }
.fixed-fair-package span { display:block; font-size:12px; opacity:.75; margin-bottom:6px; }
.fixed-fair-package strong { display:block; font-size:16px; line-height:1.6; }
.booking-fixed-package { background:#f1f5f9; border-color:#d7e2ed; color:var(--ink); }
.booking-summary strong { font-size:clamp(18px,2vw,29px); overflow-wrap:anywhere; }
@media(max-width:650px) { .inperson-plan { grid-template-columns:1fr; } .inperson-plan .stall-size { width:110px; height:110px; font-size:48px; } .online-participation-plan { padding:24px; } .online-participation-plan h3 { font-size:25px; } .booking-summary { flex-wrap:wrap; gap:12px; } .quote-total>strong { font-size:27px; } }
.offer-card { padding:36px; border-radius:22px; }
.plan-label { font-size:10px; font-weight:600; letter-spacing:.14em; color:#6b7d8e; margin-bottom:22px; }
.offer-card h3 { font-size:27px; line-height:1.2; }
.offer-card .offer-price { margin:22px 0 16px; }
.offer-card .offer-price small { display:block; margin-top:8px; }
.plan-description { line-height:1.75; padding-bottom:24px; border-bottom:1px solid #dce3e9; }
.monthly-plan { background:#183a5e; color:#fff; border-color:#183a5e; }
.monthly-plan .plan-label,.monthly-plan .offer-price { color:#e1c38b; }
.monthly-plan .plan-description,.monthly-plan li { color:#dce6ef; }
.monthly-plan .plan-description { border-color:#ffffff26; }
.monthly-plan li svg { color:#e1c38b; }
.monthly-plan .button { background:#fff; color:#183a5e; }
.monthly-plan .button:hover { background:#f7f2e9; }
.included-list article { padding:28px 0; }
.included-list strong { background:#edf5ef; padding:5px 9px; border-radius:5px; }
.page-links { border-top:1px solid #183a5e13; border-bottom:1px solid #183a5e13; }
@media(min-width:1101px) { .section { padding-top:84px; padding-bottom:84px; } .final-cta { padding-top:110px; padding-bottom:110px; } }
@media(max-width:760px) { .offer-card { padding:28px; } .city-venue { padding:22px; } .fair-hours { font-size:12px; } }
@media(prefers-reduced-motion:reduce) { .button { transition:none; } .button:hover { transform:none; } }
/* Small usability refinements within the existing design. */
main :is(section[id],article[id],h2[id]) { scroll-margin-top:16px; }
.section-heading > p,.circuit-heading > p { text-wrap:pretty; }
.visitor-fairs .city-location-card { display:flex; flex-direction:column; }
.visitor-fairs .city-venue { display:flex; flex-direction:column; flex:1; }
.visitor-fairs .city-venue > div { margin-top:auto; padding-top:12px; }
.desktop-nav a[aria-current="page"] { color:var(--blue); text-decoration:underline; text-underline-offset:7px; text-decoration-thickness:2px; }
.mobile-nav a[aria-current="page"] { color:var(--blue); font-weight:600; }
@media(max-width:1100px) { .site-header .menu-toggle { width:44px; min-width:44px; min-height:44px; } }
@media(max-width:480px) { .site-header,.site-header.scrolled { padding-left:16px; padding-right:16px; } }
@media(hover:none) { .button:hover { transform:none; } }
@media(pointer:coarse) { .city-venue a,.company-socials a { min-height:44px; display:inline-flex; align-items:center; } }
/* A calmer type scale retains the existing serif accents and navy/gold identity. */
.section-heading h2,.circuit-heading h2 { font-size:clamp(32px,3.6vw,46px); line-height:1.16; }
.section-heading > p,.circuit-heading > p { font-size:16px; line-height:1.7; }
.page-hero h1 { font-size:clamp(36px,5vw,64px); }
.audience-hero-copy h1 { font-size:clamp(36px,4.6vw,58px); }
.final-cta h2 { font-size:clamp(34px,4.5vw,54px); }
@media(max-width:480px) { .section-heading h2,.circuit-heading h2 { font-size:30px; } .section-heading > p,.circuit-heading > p { font-size:15px; } }
/* Fair cards remain neighbours instead of becoming a long list on phones. */
.visitor-fairs .city-photo-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.visitor-fairs .city-tile-photo { flex:none; height:160px; }
.visitor-fairs .city-tile-caption { padding:18px 20px; }
.visitor-fairs .city-tile-caption h3 { font-size:22px; }
.visitor-fairs .city-venue { padding:20px; }
.visitor-fairs .city-venue h4 { font-size:16px; line-height:1.5; }
.visitor-fairs .city-venue p { font-size:14px!important; line-height:1.7; }
.fair-card-navigation { display:none; }
.fair-card-navigation[hidden] { display:none; }
.fair-card-navigation > span { color:var(--muted); font-size:13px; }
.fair-card-navigation > div { display:flex; gap:8px; }
.fair-card-navigation button { display:grid; place-items:center; width:44px; height:44px; border:1px solid #d5deE7; border-radius:50%; background:#fff; color:var(--ink); cursor:pointer; }
.fair-card-navigation button:disabled { opacity:.35; cursor:default; }
.fair-card-navigation svg { width:18px; height:18px; }
.city-photo-grid:focus-visible { outline:2px solid #bb9857; outline-offset:4px; }
@media(min-width:651px) and (max-width:1100px) { .visitor-fairs .city-photo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:650px) {
 .visitor-fairs .city-photo-grid { grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:minmax(260px,86%); gap:16px; overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory; scroll-padding-inline:2px; overscroll-behavior-x:contain; padding:4px 2px 14px; scrollbar-width:thin; scrollbar-color:#b49a68 #e9e4d9; align-items:stretch; }
 .visitor-fairs .city-photo-grid > article { scroll-snap-align:start; }
 .visitor-fairs .city-tile-photo { height:180px; }
 .visitor-fairs .city-venue p { max-width:none; }
 .fair-card-navigation:not([hidden]) { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:0 0 16px; }
}
/* Once-only reveals and small hover details keep motion purposeful. */
.card-reveal { translate:0 0; transition:opacity .5s ease,translate .65s cubic-bezier(.22,1,.36,1),transform .2s ease,box-shadow .2s ease,border-color .2s ease; transition-delay:var(--reveal-delay,0ms),var(--reveal-delay,0ms),0ms,0ms,0ms; }
.js-motion .card-reveal:not(.visible) { transform:none; translate:0 24px; }
.card-reveal.visible { transform:none; translate:0 0; }
.card-reveal:focus-within { opacity:1; translate:0 0; transition-delay:0ms; }
.heading-reveal { transition-duration:.55s; }
.js-motion .heading-reveal:not(.visible) { transform:translateY(14px); }
.city-location-card .city-tile-photo img { transition:transform .7s cubic-bezier(.22,1,.36,1); }
.text-link svg,.city-register svg { transition:transform .2s ease; }
.text-link:is(:hover,:focus-visible) svg,.city-register:is(:hover,:focus-visible) svg { transform:translate(3px,-2px); }
@media(hover:hover) and (pointer:fine) {
 .visit-choice.card-reveal.visible:hover,.city-location-card.card-reveal.visible:hover { transform:translateY(-4px); box-shadow:0 14px 30px #183a5e12; }
 .city-location-card:hover .city-tile-photo img { transform:scale(1.035); }
}
@media(prefers-reduced-motion:reduce) {
 .card-reveal,.heading-reveal,.city-location-card .city-tile-photo img,.text-link svg,.city-register svg { transition:none; }
 .js-motion .card-reveal:not(.visible),.card-reveal.visible,.visit-choice.card-reveal.visible:hover,.city-location-card.card-reveal.visible:hover { translate:none; transform:none; opacity:1; }
 .city-location-card:hover .city-tile-photo img,.text-link:is(:hover,:focus-visible) svg,.city-register:is(:hover,:focus-visible) svg { transform:none; }
}
.home-universities .university-explorer-heading { margin-bottom:28px; }
.home-universities .university-explorer-heading h2 { font-size:clamp(30px,3.6vw,46px); }
.home-universities .university-row { padding-bottom:4px; }
.home-universities .university-card { min-height:165px; }
.home-universities .university-logo { height:75px; min-height:75px; }
.home-study-paths { display:flex; flex-wrap:wrap; gap:12px; margin-top:22px; }
.home-study-paths a { display:inline-flex; align-items:center; gap:10px; padding:10px 16px; min-height:44px; border:1px solid #dce5ed; border-radius:999px; background:#fff; color:var(--ink); font-size:14px; transition:background .2s,border-color .2s; }
.home-study-paths a:hover { background:#f4f7fa; border-color:#b99c68; }
.home-study-paths svg { width:17px; height:17px; flex-shrink:0; }
.home-universities .home-universities-note { margin:20px 0 0; font-size:12px!important; line-height:1.7; color:#6c7c8d; }
@media(max-width:650px) { .home-universities .university-explorer-heading h2 { font-size:30px; } .home-universities .university-card { flex-basis:225px; min-height:160px; } .home-study-paths { gap:8px; } .home-study-paths a { padding:10px 13px; font-size:13px; } }
/* A substantial footer with clear navigation and contact groups. */
.site-footer.compact-footer { padding:56px var(--gutter) 28px; }
.compact-footer-main { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(0,1fr); gap:40px; align-items:start; }
.compact-footer-main > * { min-width:0; }
.compact-footer-brand .brand { gap:12px; min-width:0; }
.site-footer.compact-footer .brand.light .brand-logo-frame { width:72px; height:72px; flex:0 0 72px; }
.compact-footer-brand .brand > span:last-child,.compact-footer-brand .brand b { font-size:14px; line-height:1.5; }
.compact-footer-brand p { max-width:340px; font-size:15px; line-height:1.75; color:#b9c9d8; margin:18px 0 0; }
.compact-footer .footer-heading { font-family:inherit; font-size:16px; font-weight:600; line-height:1.5; letter-spacing:0; color:#fff; margin:0 0 18px; }
.compact-footer-links > .footer-heading { grid-column:1/-1; margin-bottom:8px; }
.compact-footer .footer-email { display:inline-flex; align-items:center; min-height:36px; color:#e0eaf2; font-size:14px; overflow-wrap:anywhere; }
.compact-footer-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px 18px; align-content:start; }
.compact-footer-links a { display:flex; align-items:center; min-height:36px; color:#d9e5ef; font-size:15px; line-height:1.5; padding:6px 0; }
.compact-footer-links a:hover { color:#e4c98f; }
.compact-footer .company-contact-details { display:block; margin:0; padding:0; border:0; }
.compact-footer .company-contact-details a { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:3px 8px; margin:0 0 14px; padding:0; min-height:28px; border:0; }
.compact-footer .company-contact-details a > span { display:block; font-size:11px; line-height:1.6; color:#b9c9d8; }
.compact-footer .company-contact-details strong { color:#e0eaf2; font-size:14px; line-height:1.6; font-weight:400; overflow-wrap:anywhere; }
.compact-footer .company-contact-details svg { width:13px; height:13px; color:#aabfce; flex-shrink:0; }
.compact-footer .company-socials { display:flex; flex-wrap:wrap; gap:10px; margin:16px 0 0; padding:0; border:0; }
.compact-footer .company-socials a { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; min-height:44px; padding:0; border:1px solid #ffffff24; border-radius:50%; background:transparent; color:#d9e5ef; }
.compact-footer .company-socials a:hover { border-color:#d5b77c; color:#e4c98f; }
.compact-footer .company-socials a > span { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.compact-footer .company-socials a > svg:last-child { display:none; }
.compact-footer .company-socials a > svg:first-child { width:18px; height:18px; }
.compact-footer .footer-bottom { margin-top:32px; padding-top:20px; padding-right:180px; border-color:#ffffff20; font-size:12px; line-height:1.6; color:#bdcbd8; gap:12px 20px; align-items:center; flex-wrap:wrap; }
.compact-footer .footer-bottom > div { gap:18px; }
.compact-footer .footer-bottom a { color:#d9e5ef; }
.compact-footer .footer-registration { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin:0; padding:0; border:0; font-size:11px; line-height:1.6; }
.compact-footer .footer-registration > span { display:none; }
.compact-footer .footer-registration a { font-size:11px; }
.compact-footer .footer-registration svg { width:12px; height:12px; }
.student-footer.compact-footer .company-socials { margin-top:16px; justify-content:flex-start; }
@media(min-width:1101px) { .section { padding-top:64px; padding-bottom:64px; } .section-heading { margin-bottom:36px; } }
.section.final-cta { padding-top:50px; padding-bottom:50px; }
.section.final-cta h2 { font-size:clamp(30px,3.1vw,42px); }
.section.final-cta > p { margin-top:16px; margin-bottom:22px; font-size:15px; }
@media(max-width:760px) {
 .site-footer.compact-footer { padding-top:36px; padding-bottom:24px; }
 .compact-footer-main { grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px; }
 .compact-footer-connect { grid-column:1/-1; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; }
 .compact-footer-connect > .footer-heading { flex-basis:100%; margin-bottom:0; }
 .compact-footer .company-socials { margin:0; }
 .compact-footer .footer-bottom { margin-top:24px; }
 .student-footer.compact-footer .company-socials { justify-content:flex-start; }
}
@media(max-width:480px) {
 .compact-footer-main { grid-template-columns:1fr; gap:24px; }
 .site-footer.compact-footer .brand.light .brand-logo-frame { width:64px; height:64px; flex-basis:64px; }
 .compact-footer-brand .brand > span:last-child,.compact-footer-brand .brand b { font-size:13px; }
 .compact-footer-brand p { margin-top:10px; }
 .compact-footer-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:18px; row-gap:0; }
 .compact-footer-links a { display:inline-flex; align-items:center; min-height:40px; padding:6px 0; font-size:14px; }
 .compact-footer-connect { display:flex; align-items:center; gap:8px 16px; }
 .compact-footer .company-contact-details a > span { display:none; }
 .compact-footer .company-socials a { width:44px; height:44px; min-height:44px; }
 .compact-footer .footer-bottom { column-gap:18px; row-gap:6px; }
 .compact-footer .footer-bottom > div { gap:16px; }
 .compact-footer .footer-registration { order:3; }
 .section.final-cta { padding-top:36px; padding-bottom:36px; }
}
@media(max-width:500px) { .compact-footer .footer-bottom { padding-right:64px; } }
@media(pointer:coarse) { .compact-footer-links a,.compact-footer .company-contact-details a,.compact-footer .company-socials a,.compact-footer .footer-bottom a { min-height:44px; } .compact-footer .company-socials a { width:44px; } }
/* Service artwork remains fully visible, including portrait illustrations. */
.services-directory .directory-photo { height:270px; padding:16px; display:flex; align-items:center; justify-content:center; background:#f1f5f8; }
.services-directory .services-directory-grid .directory-photo > img { width:100%; height:100%; object-fit:contain; object-position:center; transform:none; }
.service-showcase-slide > figure { display:flex; flex-direction:column; justify-content:center; padding:20px 20px 0; background:#f1f5f8; }
.service-showcase-slide > figure > img { position:static; width:100%; height:340px; object-fit:contain; object-position:center; animation:none; transform:none; }
.service-showcase-slide figcaption { position:static; margin-top:16px; padding:18px 0; background:none; color:var(--ink); font-size:16px; border-top:1px solid #dce5ed; }
.service-showcase-slide figcaption > span { border-color:#bdcedc; color:#8e743d; }
.audience-services .audience-hero-image { background:#f1f5f8; }
.audience-services .audience-hero-image > img { height:auto; object-fit:contain; object-position:center; }
.audience-services .audience-hero-image > figcaption { position:static; padding:16px 20px; background:none; color:#4c6380; letter-spacing:.08em; }
@media(max-width:760px) { .service-showcase-slide > figure { min-height:0; } .service-showcase-slide > figure > img { height:260px; } }
@media(max-width:480px) { .services-directory .directory-photo { height:240px; padding:14px; } .service-showcase-slide > figure > img { height:230px; } .compact-footer .footer-email { min-height:44px; } }
.visitor-fairs .city-venue > .fair-audience-actions { display:flex; flex-direction:column; align-items:stretch; flex-wrap:nowrap; gap:0; margin-top:18px; padding-top:6px; border-top:1px solid #e5e9ed; }
.visitor-fairs .fair-audience-actions > a.city-register { display:flex; align-items:center; justify-content:space-between; gap:8px; width:100%; min-height:44px; padding:10px 0; margin:0; border:0; border-radius:0; background:none; color:var(--blue); font-size:13px; line-height:1.5; }
.visitor-fairs .fair-audience-actions > a.city-register:hover { color:#8e743d; }
.visitor-fairs .fair-audience-actions svg { width:16px; height:16px; flex-shrink:0; }

/* University services use the existing navy, gold and quiet cream surfaces. */
.university-offering .section-heading { align-items:end; gap:32px; }
.university-offering .section-heading h2 { max-width:680px; font-size:clamp(28px,3vw,40px); }
.university-offering .section-heading > p { max-width:370px; font-size:15px; line-height:1.75; }
.offering-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.offering-card { position:relative; min-width:0; padding:24px; border:1px solid #dce5ed; border-radius:20px; background:#fff; color:var(--ink); transition:border-color .2s,background .2s; }
a.offering-card:hover { border-color:#b99c68; background:#faf8f2; }
.offering-card:focus-visible { outline:2px solid var(--blue); outline-offset:4px; }
.offering-icon { display:flex; width:42px; height:42px; align-items:center; justify-content:center; margin-bottom:20px; border-radius:12px; background:#edf3f8; color:var(--blue); }
.offering-icon svg { width:21px; height:21px; }
.offering-card h3 { margin:0 18px 12px 0; font-size:18px; line-height:1.4; }
.offering-card p { margin:0; font-size:14px; line-height:1.75; color:#60728a; }
.offering-arrow { position:absolute; right:20px; top:32px; }
.offering-arrow svg { width:17px; height:17px; color:#8e743d; }
.offering-card.offering-invitation { background:#f8f5ed; display:flex; flex-direction:column; align-items:start; gap:12px; }
.offering-invitation .micro { font-size:10px; line-height:1.6; color:#8e743d; }
.offering-invitation h3 { margin:0; }
.offering-invitation .button { margin-top:auto; font-size:13px; padding:12px 15px; min-height:44px; gap:8px; }
.engagement-opportunities { padding-top:32px; padding-bottom:32px; }
.engagement-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.engagement-grid article { min-width:0; background:#f5f7fa; border:1px solid #dce5ed; border-radius:24px; padding:36px; }
.engagement-grid article:last-child { background:#f8f5ed; }
.engagement-grid h2,.presentation-engagement h2,.brand-visibility h2,.eduin-steps h2 { font-size:clamp(28px,2.6vw,38px); line-height:1.2; }
.engagement-grid article > p,.presentation-engagement > div > p,.brand-visibility > div > p { font-size:15px; line-height:1.8; margin-top:18px; max-width:560px; }
.offering-tags { display:flex; flex-wrap:wrap; gap:8px; list-style:none; padding:0; margin:22px 0; }
.offering-tags li { font-size:12px; line-height:1.5; padding:7px 10px; border:1px solid #dce5ed; border-radius:8px; color:#46607a; background:#fff; }
.engagement-grid p.offering-package-note { font-size:13px; line-height:1.7; color:var(--ink); font-weight:500; }
.engagement-grid .text-link { min-height:44px; font-size:14px; margin-top:14px; }
.presentation-engagement { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:48px; }
.presentation-engagement > * { min-width:0; }
.presentation-engagement figure { margin:0; border-radius:22px; overflow:hidden; background:#f5f7fa; border:1px solid #dce5ed; }
.presentation-engagement img { display:block; width:100%; height:auto; object-fit:contain; }
.presentation-engagement figcaption { position:static; background:none; color:#60728a; padding:14px 18px; font-size:12px; line-height:1.6; }
.offering-actions { display:flex; flex-wrap:wrap; align-items:center; gap:16px 24px; margin-top:26px; }
.offering-actions .button,.offering-actions .text-link { font-size:14px; min-height:44px; }
.brand-visibility { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:48px; background:#f8f5ed; }
.brand-visibility > * { min-width:0; }
.brand-visibility .button { margin-top:24px; font-size:14px; white-space:normal; min-height:44px; }
.brand-placement-grid { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.brand-placement-grid li { display:flex; align-items:center; gap:12px; padding:18px; border:1px solid #e1e3df; border-radius:14px; background:#fff; font-size:14px; }
.brand-placement-grid svg { width:20px; height:20px; flex-shrink:0; color:#8e743d; }
.eduin-steps ol { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); list-style:none; padding:0; margin:0; gap:24px; }
.eduin-steps li { min-width:0; padding:22px 0 0; border-top:1px solid #dce5ed; }
.eduin-steps li > span { font-size:26px; color:#a1844e; font-family:'DM Serif Display',serif; }
.eduin-steps h3 { font-size:17px; line-height:1.5; margin:14px 0 8px; }
.eduin-steps li p { font-size:14px; line-height:1.75; margin:0; }
.cinema-hero .cinema-actions.cinema-audience-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; max-width:760px; align-items:end; }
.cinema-audience-path { min-width:0; }
.cinema-hero .cinema-audience-path > p { margin:0 0 10px; max-width:350px; font-size:13px; line-height:1.6; color:#e1e8ee; }
.cinema-hero .cinema-audience-path .button { width:100%; justify-content:space-between; font-size:14px; min-height:48px; }
.presentation-photo { display:flex; flex-direction:column; justify-content:center; height:auto; min-height:0; background:#f5f7fa; }
.presentation-photo > img { display:block; width:100%; height:auto; object-fit:contain; }
.presentation-photo::after { display:none; }
.presentation-photo > figcaption { position:static; display:flex; align-items:center; gap:10px; padding:16px 20px; color:var(--ink); background:none; font-size:13px; }
@media(max-width:1100px) {
 .offering-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .engagement-grid article { padding:28px; }
 .presentation-engagement,.brand-visibility { gap:28px; }
 .eduin-steps ol { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:760px) {
 .university-offering .section-heading { display:block; }
 .university-offering .section-heading > p { margin-top:18px; max-width:none; }
 .engagement-grid,.presentation-engagement,.brand-visibility { grid-template-columns:1fr; }
 .engagement-grid article { padding:26px; }
 .brand-placement-grid { gap:10px; }
 .brand-placement-grid li { padding:16px; }
 .cinema-hero .cinema-actions.cinema-audience-actions { max-width:none; gap:12px; }
 .presentation-photo { height:auto; }
}
@media(max-width:500px) {
 .offering-grid { grid-template-columns:1fr; gap:12px; }
 .offering-card { padding:22px; }
 .offering-icon { margin-bottom:14px; }
 .offering-card h3 { font-size:17px; }
 .offering-invitation .button { margin-top:8px; }
 .cinema-hero .cinema-actions.cinema-audience-actions { grid-template-columns:1fr; gap:16px; }
 .cinema-hero .cinema-audience-path > p { font-size:12px; margin-bottom:6px; max-width:none; }
 .engagement-grid article { padding:24px; }
 .eduin-steps ol { gap:20px 16px; }
 .eduin-steps h3 { font-size:15px; }
 .brand-placement-grid li { padding:14px 12px; font-size:13px; gap:8px; }
 .brand-placement-grid svg { width:18px; height:18px; }
}

/* The first content row always clears the actual floating header. */
:root { --header-bottom:108px; --page-top-gap:40px; }
html { scroll-padding-top:calc(var(--header-bottom) + 12px); }
main > :is(.page-hero,.audience-hero,.campus-visit-hero,.registration-page):first-child { padding-top:calc(var(--header-bottom) + var(--page-top-gap)); }
main > .cinema-hero:first-child { padding-top:calc(var(--header-bottom) + 20px); }
main > .page-hero h1 { font-size:clamp(36px,4.4vw,64px); line-height:1.14; max-width:1050px; }
main > .page-hero > p { max-width:740px; font-size:16px!important; }
main :is(section[id],article[id],h2[id],form[id]) { scroll-margin-top:16px; }
@media(max-width:650px) { :root { --header-bottom:90px; --page-top-gap:28px; } main > .page-hero h1 { font-size:clamp(32px,8vw,43px); } }

/* Short legal sections with optional navigation and quiet visual hierarchy. */
.exhibitor-agreement .terms-introduction p { font-size:15px; line-height:1.85; margin-bottom:18px; }
.terms-contents { border:1px solid #dce5ed; border-radius:14px; padding:0 20px; margin:30px 0 38px; background:#f5f7fa; }
.terms-contents summary { display:flex; justify-content:space-between; gap:14px; align-items:center; min-height:56px; cursor:pointer; font-size:14px; font-weight:500; list-style:none; }
.terms-contents summary::-webkit-details-marker { display:none; }
.terms-contents summary svg { width:18px; height:18px; transition:transform .2s; }
.terms-contents[open] summary svg { transform:rotate(180deg); }
.terms-index { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px 24px; padding:4px 0 20px; }
.terms-index a { display:flex; align-items:center; gap:12px; min-height:44px; font-size:13px; text-decoration:none; }
.terms-index span { color:#a1844e; font-size:12px; }
.exhibitor-agreement .terms-clause { border-top:1px solid #dce5ed; padding:26px 0 8px; }
.exhibitor-agreement .terms-clause h2 { display:flex; align-items:baseline; gap:16px; font-size:22px; line-height:1.4; margin:0 0 18px; letter-spacing:-.02em; }
.terms-clause h2 span { font-family:'DM Serif Display',serif; color:#a1844e; font-size:24px; }
.exhibitor-agreement .terms-clause ul { padding-left:20px; }
.exhibitor-agreement .terms-clause li { padding:0; margin:0 0 14px; font-size:15px; line-height:1.85; color:#536980; }
.terms-organiser { margin-top:26px; padding:26px; border-radius:16px; background:#f8f5ed; }
.terms-organiser h2 { font-size:20px; margin:0 0 12px; }
.terms-organiser p { font-size:14px; line-height:1.75; margin-bottom:14px; }
.terms-organiser a { display:block; min-height:36px; font-size:14px; width:fit-content; }
.exhibitor-agreement > .button { text-decoration:none; font-size:14px; }
@media(max-width:650px) { .terms-index { grid-template-columns:1fr; } .exhibitor-agreement .terms-clause h2 { font-size:20px; gap:12px; } }

/* About and audience content presents useful facts rather than unsupported proof. */
.audience-profile-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.audience-profile-grid article { min-width:0; padding:32px; border:1px solid #dce5ed; border-radius:22px; background:#f5f7fa; }
.audience-profile-grid article:last-child { background:#f8f5ed; }
.profile-category-icon { display:flex; align-items:center; justify-content:center; width:44px; height:44px; margin-bottom:20px; border-radius:12px; background:#fff; color:var(--blue); }
.profile-category-icon svg { width:22px; height:22px; }
.audience-profile-grid h3 { font-size:22px; line-height:1.35; margin-bottom:16px; }
.audience-profile-grid p,.audience-profile-grid li { font-size:14px; line-height:1.8; color:#60728a; }
.audience-profile-grid ul { padding-left:18px; margin:20px 0; }
.audience-profile-grid li { margin-bottom:9px; }
.audience-profile-grid .text-link { font-size:14px; min-height:44px; }
.about-benefit-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; }
.about-benefit-grid article { min-width:0; border-top:1px solid #dce5ed; padding:24px 0 0; }
.about-benefit-grid article > svg { width:24px; height:24px; color:#a1844e; margin-bottom:20px; }
.about-benefit-grid h3 { font-size:18px; margin-bottom:12px; }
.about-benefit-grid p { font-size:14px; line-height:1.8; }
.about-story .text-link { margin-top:20px; font-size:14px; min-height:44px; }
.company-information-heading p > a { display:flex; align-items:center; gap:10px; width:fit-content; margin-top:16px; min-height:44px; color:var(--blue); }
.company-information-heading p > a svg { width:17px; height:17px; }
@media(max-width:900px) { .about-benefit-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:650px) { .audience-profile-grid { grid-template-columns:1fr; } .audience-profile-grid article { padding:26px; } .audience-profile-grid h3 { font-size:21px; } .about-benefit-grid { gap:24px 18px; } .about-benefit-grid h3 { font-size:17px; } }

/* Once-only, staggered entrances; the layout itself never shifts. */
.card-reveal { transition:opacity .6s ease,translate .75s cubic-bezier(.16,1,.3,1),transform .22s ease,box-shadow .22s ease,border-color .22s ease; transition-delay:var(--reveal-delay,0ms),var(--reveal-delay,0ms),0ms,0ms,0ms; }
.js-motion .card-reveal:not(.visible) { transform:none; translate:var(--reveal-x,0px) 24px; }
.card-reveal.visible { translate:0 0; }
.engagement-grid > :first-child { --reveal-x:-22px; }
.engagement-grid > :last-child { --reveal-x:22px; }
.visual-reveal { transition:opacity .75s ease,translate .9s cubic-bezier(.16,1,.3,1); }
.js-motion .visual-reveal:not(.visible) { transform:none; translate:0 24px; }
.visual-reveal.visible { transform:none; translate:0 0; }
.offering-card,.audience-profile-grid article { transition:background .22s ease,border-color .22s ease,box-shadow .22s ease,transform .22s ease; }
.offering-card.card-reveal,.audience-profile-grid .card-reveal { transition:opacity .6s ease,translate .75s cubic-bezier(.16,1,.3,1),transform .22s ease,box-shadow .22s ease,border-color .22s ease,background .22s ease; transition-delay:var(--reveal-delay,0ms),var(--reveal-delay,0ms),0ms,0ms,0ms,0ms; }
.offering-icon svg,.offering-arrow svg { transition:transform .25s ease; }
@media(hover:hover) and (pointer:fine) {
 a.offering-card:hover { transform:translateY(-4px); box-shadow:0 16px 32px #183a5e0c; }
 a.offering-card:hover .offering-icon svg { transform:translateY(-2px); }
 a.offering-card:hover .offering-arrow svg { transform:translate(2px,-2px); }
}
.js-motion .cinema-slide:not([hidden]) .cinema-copy { animation:eduin-copy-in .7s cubic-bezier(.16,1,.3,1) both; }
.js-motion .cinema-slide:not([hidden]) > img.cinema-media { animation:eduin-image-in 1.1s cubic-bezier(.16,1,.3,1) both; }
@keyframes eduin-copy-in { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:none; } }
@keyframes eduin-image-in { from { opacity:.7; transform:scale(1.025); } to { opacity:1; transform:scale(1); } }
@media(max-width:650px) { .engagement-grid > :first-child,.engagement-grid > :last-child { --reveal-x:0px; } }
@media(prefers-reduced-motion:reduce) {
 .js-motion :is(.card-reveal,.visual-reveal):not(.visible),.card-reveal.visible,.visual-reveal.visible { translate:none; transform:none; opacity:1; }
 a.offering-card:hover,a.offering-card:hover .offering-icon svg,a.offering-card:hover .offering-arrow svg { transform:none; }
 .card-reveal,.visual-reveal,.offering-icon svg,.offering-arrow svg { transition:none; }
}

/* The student-pass showcase uses the same navy and gold as the main site. */
.lead-story { background:#f1f5f9; color:var(--ink); }
.lead-story .story-heading h2 { font-size:clamp(30px,3vw,44px); line-height:1.2; }
.lead-story h2 em,.lead-story .text-link { color:var(--blue); }
.lead-story .text-link { border-color:#bdcddd; }
.lead-story .eyebrow,.lead-story .story-text > .micro { color:#806735; }
.lead-story .eyebrow > span { background:#b18c48; }
.lead-story .story-text p,.lead-story .story-footnote,.lead-story .step-marker { color:#536980; }
.lead-story .step-marker > div { background:#cbd7e2; }
.lead-story .story-visual:before { background:#e4ecf3; border-color:#d1deea; }
.lead-story :is(.passport-sample,.profile-sample,.followup-sample) { color:var(--ink); box-shadow:8px 10px 0 #d8e3ed,0 20px 36px #183a5e0d; }
.lead-story .sample-brand,.lead-story .sample-data { border-color:#dce5ed; }
.lead-story .sample-brand > svg { color:#a1844e; }
.lead-story .sample-brand > span,.lead-story .sample-data span { color:#60728a; }
.lead-story .sample-avatar { background:#edf3f8; color:var(--blue); }
.lead-story .followup-sample blockquote { background:#f8f5ed; border-color:#b18c48; color:#536980; }
.lead-story .sample-scan-line { background:#b18c48; box-shadow:0 0 16px #d8b36770; }
.lead-story .deck-dots > button,.lead-story .deck-arrows { color:#536980; }
.lead-story .deck-dots > button[aria-pressed=true] { background:#fff; border-color:#bdcddd; color:var(--blue); }
.lead-story .deck-dots > button[aria-pressed=true]:after { background:#b18c48; }
.lead-story .deck-arrows > button { border-color:#bdcddd; color:var(--blue); }

/* Two distinct service formats; support belongs within the package. */
.offering-grid.primary-offering-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.primary-offering-card { display:flex; flex-direction:column; padding:30px; min-width:0; }
.primary-offering-card h3 { font-size:25px; line-height:1.3; }
.primary-offering-card > p { font-size:15px; line-height:1.75; }
.primary-offering-card > ul { list-style:none; padding:0; margin:20px 0 10px; display:grid; gap:12px; }
.primary-offering-card li { display:flex; gap:10px; font-size:14px; line-height:1.65; color:#536980; }
.primary-offering-card li svg { width:16px; height:16px; flex:none; margin-top:3px; color:#a1844e; }
.primary-offering-card:last-child { background:#f8f5ed; }
.primary-offering-card .text-link { margin-top:auto; padding-top:16px; min-height:44px; font-size:14px; width:fit-content; }
.primary-offering-card p.primary-service-note,.directory-copy p.primary-service-note { font-size:13px; line-height:1.7; color:#536980; margin:12px 0 18px; }
.primary-support-note { margin-top:22px; font-size:13px!important; line-height:1.8; color:#536980; }
.primary-support-note a { display:inline-flex; gap:8px; align-items:center; margin-left:8px; color:var(--blue); }
.primary-support-note svg { width:15px; height:15px; }
.primary-services-directory .directory-photo { height:250px; padding:14px; }
.primary-services-directory .directory-photo > img { object-fit:contain; object-position:center; }
.primary-services-directory .directory-copy > ul { grid-template-columns:1fr; gap:12px; margin-bottom:8px; }
.primary-services-directory .directory-copy h3 { font-size:25px; }
.campus-details-link { font-size:14px; min-height:44px; margin:0 0 18px; width:fit-content; }
.services-directory > .fineprint { margin-top:20px; }
.service-responsibilities { border-top:1px solid #dce5ed; margin:0 0 18px; }
.service-responsibilities summary { min-height:48px; display:flex; align-items:center; justify-content:space-between; gap:12px; list-style:none; font-size:14px; color:var(--ink); cursor:pointer; }
.service-responsibilities summary::-webkit-details-marker { display:none; }
.service-responsibilities summary svg { width:17px; height:17px; transition:transform .2s; }
.service-responsibilities[open] summary svg { transform:rotate(180deg); }
.service-responsibilities dl { margin:2px 0 18px; }
.service-responsibilities dt { font-size:13px; font-weight:600; color:var(--ink); margin-top:16px; }
.service-responsibilities dd { margin:6px 0 0; font-size:13px; line-height:1.75; color:#536980; }
.identity-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.identity-grid article { min-width:0; border:1px solid #dce5ed; background:#f5f7fa; border-radius:20px; padding:28px; }
.identity-grid article:nth-child(3) { background:#f8f5ed; }
.identity-grid article > svg { width:25px; height:25px; color:#a1844e; margin-bottom:18px; }
.identity-grid h3 { font-size:22px; line-height:1.35; margin:0 0 14px; }
.identity-grid p,.home-purpose p { font-size:14px; line-height:1.85; }
.enquiry-success { text-align:center; padding:42px 30px; scroll-margin-top:calc(var(--header-bottom,120px) + 24px); }
.enquiry-success[hidden] { display:none; }
.enquiry-success-mark { display:grid; place-items:center; width:56px; height:56px; margin:0 auto 22px; border-radius:50%; background:#e9f2e6; color:#456b3e; font-size:28px; }
.enquiry-success h2 { font-size:clamp(26px,3vw,36px); line-height:1.25; margin:0 0 20px; }
.enquiry-success p { font-size:15px; line-height:1.7; margin:14px 0; }
.enquiry-success .enquiry-reference { padding:12px; border-radius:8px; background:#f1f5fa; color:#183a5e; overflow-wrap:anywhere; }
.enquiry-success .enquiry-email-note { font-size:13px; color:#60728a; }
.enquiry-success .button { margin-top:18px; }
.form-message.notice,
#student-registration-feedback.notice { padding:16px 18px; border:1px solid #cddbe8; background:#f1f6fa; color:#183a5e; border-radius:8px; }
#enquiry-form,#student-pass-result { scroll-margin-top:calc(var(--header-bottom,120px) + 24px); }
.form-message:focus,.enquiry-success h2:focus,.student-pass-success h2:focus { outline:none; }
.campus-outreach ol { grid-template-columns:repeat(3,minmax(0,1fr)); }
.campus-outreach .campus-support-note { max-width:900px; font-size:14px; margin:24px 0 14px; }
@media(max-width:650px) { .campus-outreach ol { grid-template-columns:1fr; } }
.about-identity > .text-link { margin-top:22px; font-size:14px; min-height:44px; }
.home-purpose { display:grid; grid-template-columns:1fr 1fr; gap:60px; background:#f8f5ed; }
.home-purpose h2 { font-size:clamp(30px,3vw,42px); line-height:1.2; }
.home-purpose h3 { font-size:22px; line-height:1.35; margin:12px 0 18px; }
.home-purpose p { margin-top:18px; max-width:580px; }
.home-purpose .text-link { font-size:14px; min-height:44px; margin-top:18px; }
@media(max-width:650px) { .identity-grid,.home-purpose { grid-template-columns:1fr; gap:18px; } .identity-grid article { padding:24px; } .home-purpose { gap:26px; } .identity-grid h3 { font-size:21px; } }
@media(max-width:650px) {
 .offering-grid.primary-offering-grid { grid-template-columns:1fr; gap:18px; }
 .primary-offering-card { padding:25px; }
 .primary-offering-card h3,.primary-services-directory .directory-copy h3 { font-size:23px; }
 .primary-services-directory .directory-photo { height:210px; }
 .primary-support-note a { display:flex; margin-left:0; margin-top:8px; }
}

/* Clearer service choices and a distinct brand sponsorship invitation. */
.services-intro { display:grid; grid-template-columns:1.1fr 1fr; align-items:center; gap:clamp(32px,6vw,88px); padding-top:calc(var(--header-bottom) + var(--page-top-gap)); padding-bottom:60px; background:#f8f7f3; border-bottom:1px solid #e1e6e9; }
.services-intro > * { min-width:0; }
.services-intro .eyebrow { margin-bottom:22px; color:#70603f; }
.services-intro h1 { font-size:clamp(34px,3.8vw,56px); line-height:1.16; letter-spacing:-.045em; }
.services-intro h1 em { color:#284f77; }
.services-intro-copy > p { max-width:520px; margin:22px 0; font-size:16px; line-height:1.8; }
.services-intro-copy > .text-link { min-height:44px; }
.services-intro-actions { display:flex; flex-wrap:wrap; align-items:center; gap:16px 24px; margin-top:26px; }
.services-intro-actions .button { min-height:48px; font-size:13px; }
.services-intro-actions .text-link { min-height:44px; font-size:13px; gap:12px; }
.services-overview { border:1px solid #dce4eb; border-radius:18px; padding:4px 24px; background:#fff; }
.services-overview > a { display:grid; grid-template-columns:44px minmax(0,1fr) 18px; gap:16px; align-items:center; padding:22px 0; }
.services-overview > a + a { border-top:1px solid #e4e9ed; }
.service-overview-icon { width:44px; height:44px; border-radius:12px; display:grid; place-items:center; background:#eff4f8; color:#284f77; }
.services-overview a:last-child .service-overview-icon { background:#f5f0e6; color:#866a34; }
.services-overview a > span:nth-child(2) { display:grid; gap:5px; }
.services-overview small { font-size:10px; letter-spacing:.12em; color:#7c7362; }
.services-overview strong { font-size:16px; line-height:1.45; font-weight:500; color:#183a5e; }
.services-overview a > span > span { font-size:12px; line-height:1.65; color:#667b8b; }
.services-overview a > svg { width:18px; height:18px; color:#8a7347; transition:transform .2s; }
.services-overview a:hover > svg { transform:translate(3px,-3px); }
.page-services .services-directory { background:#fff; padding-top:60px; padding-bottom:44px; }
.page-services .section-heading h2 { font-size:clamp(30px,3.1vw,42px); line-height:1.2; }
.page-services .section-heading > p { max-width:360px; font-size:15px; }
.primary-services-directory { gap:28px; }
.primary-services-directory > article { border-radius:18px; box-shadow:0 6px 24px #183a5e06; }
.primary-services-directory .directory-photo { height:auto; aspect-ratio:3/2; max-height:290px; padding:0; background:#edf2f5; }
.primary-services-directory .directory-photo > img { object-fit:contain; transform:none; }
.primary-services-directory .directory-photo > span { display:flex; align-items:center; gap:8px; font-size:10px; letter-spacing:.1em; background:#183a5e; color:#fff; top:16px; left:16px; padding:8px 10px; }
.primary-services-directory .directory-photo > span svg { width:15px; height:15px; }
.primary-services-directory .directory-copy { padding:28px; }
.primary-services-directory .directory-copy > p { font-size:15px; line-height:1.75; margin:14px 0 20px; }
.primary-services-directory .directory-copy > ul { gap:10px; margin-bottom:24px; }
.primary-services-directory .directory-copy li { font-size:13px; line-height:1.7; }
.primary-services-directory .directory-copy > .button { min-height:46px; border-color:#cbd8e3; }
.service-responsibilities > p { font-size:13px; line-height:1.75; margin:6px 0 18px; }
.sponsor-section { display:block; background:#fff; border-radius:0; padding-top:28px; padding-bottom:64px; }
.sponsor-panel { display:grid; grid-template-columns:1.1fr 1fr; gap:clamp(28px,5vw,72px); align-items:center; background:#183a5e; border:1px solid #294c70; border-radius:22px; padding:clamp(28px,4vw,56px); color:#fff; }
.sponsor-panel > * { min-width:0; }
.sponsor-panel .eyebrow { color:#e1c38b; margin-bottom:22px; font-size:11px; }
.sponsor-panel .eyebrow > span { background:#e1c38b; }
.sponsor-panel h2 { color:#fff; font-size:clamp(30px,3.3vw,46px); line-height:1.2; }
.sponsor-panel h2 em { color:#e1c38b; }
.sponsor-copy > p { color:#d3deea; font-size:15px; line-height:1.8; max-width:470px; margin-top:20px; }
.sponsor-action-row { display:flex; align-items:center; flex-wrap:wrap; gap:20px 24px; margin-top:28px; }
.sponsor-panel .button { background:#fff; color:#183a5e; font-size:13px; min-height:48px; gap:14px; }
.sponsor-panel .button:hover { background:#f7f0e3; }
.sponsor-rate { display:grid; gap:3px; }
.sponsor-rate strong { font-size:19px; font-weight:500; }
.sponsor-rate span { color:#c8d5e3; font-size:12px; }
.sponsor-channels { border-left:1px solid #ffffff26; padding-left:clamp(24px,3vw,44px); }
.sponsor-channels h3 { color:#fff; font-size:16px; line-height:1.5; letter-spacing:0; }
.sponsor-channels ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 20px; margin:24px 0; }
.sponsor-channels li { display:flex; gap:10px; align-items:flex-start; margin:0; font-size:13px; line-height:1.65; color:#e3ebf3; }
.sponsor-channels li > span { min-width:0; overflow-wrap:anywhere; }
.sponsor-channels li svg { color:#e1c38b; width:18px; height:18px; margin-top:2px; }
.sponsor-channels > p { font-size:12px; line-height:1.8; color:#c8d5e3; }
.page-services .campus-outreach { background:#f5f7f9; padding-top:64px; padding-bottom:64px; }
.page-services .campus-outreach h3 { font-size:21px; line-height:1.3; }
.page-services .campus-outreach li p { font-size:14px; line-height:1.8; }
.primary-offering-card,.primary-offering-card:last-child { background:#fff; border-radius:18px; box-shadow:0 5px 22px #183a5e05; }
.offering-sponsor-link { display:flex; align-items:center; gap:18px; padding:24px 0 0; margin-top:26px; border-top:1px solid #dce4eb; }
.offering-sponsor-icon { display:grid; place-items:center; width:44px; height:44px; flex:none; border-radius:12px; background:#f5f0e6; color:#866a34; }
.offering-sponsor-link strong { font-weight:500; font-size:15px; color:#183a5e; }
.offering-sponsor-link p { font-size:13px; line-height:1.7; margin-top:3px; }
.offering-sponsor-link > .text-link { flex:none; margin-left:auto; font-size:13px; min-height:44px; }
@media(max-width:900px) {
 .services-intro { grid-template-columns:1fr; gap:32px; padding-bottom:44px; }
 .services-intro-copy > p { max-width:630px; }
 .sponsor-panel { grid-template-columns:1fr; }
 .sponsor-channels { border-left:0; border-top:1px solid #ffffff26; padding:24px 0 0; }
 .primary-services-directory .directory-copy { padding:24px; }
}
@media(max-width:650px) {
 .services-overview { padding:0 18px; border-radius:16px; }
 .services-overview > a { grid-template-columns:38px minmax(0,1fr) 16px; gap:12px; padding:18px 0; }
 .service-overview-icon { width:38px; height:38px; }
 .services-overview strong { font-size:15px; }
 .services-intro-copy > p { font-size:15px; }
 .page-services .services-directory { padding-top:40px; padding-bottom:22px; }
 .primary-services-directory { gap:22px; }
 .primary-services-directory .directory-photo { height:auto; max-height:none; }
 .sponsor-section { padding-top:20px; padding-bottom:40px; }
 .sponsor-panel { padding:26px 22px; border-radius:18px; }
 .sponsor-channels ul { gap:18px 12px; }
 .sponsor-action-row { align-items:flex-start; gap:18px; }
 .sponsor-panel .button { width:100%; }
 .sponsor-rate { display:flex; align-items:baseline; gap:8px; }
 .page-services .campus-outreach { padding-top:44px; padding-bottom:44px; }
 .offering-sponsor-link { flex-wrap:wrap; gap:12px; }
 .offering-sponsor-link > div { flex:1; min-width:0; }
 .offering-sponsor-link > .text-link { margin-left:56px; }
}
@media(prefers-reduced-motion:reduce) { .services-overview a > svg { transition:none; } .services-overview a:hover > svg { transform:none; } }

/* A calmer homepage and editorial service layouts. */
.page-index .audience-entry { padding-top:24px; padding-bottom:32px; }
.audience-entry .visit-choice-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; border:1px solid #dce5ed; border-radius:18px; overflow:hidden; }
.audience-entry .visit-choice { background:#fff; border:0; border-radius:0; padding:28px 32px; gap:20px; }
.audience-entry .visit-choice + .visit-choice { border-left:1px solid #dce5ed; }
.audience-entry .visit-choice:hover { background:#f5f8fb; }
.audience-entry .choice-icon { background:#f0f4f8; width:44px; height:44px; min-width:44px; border-radius:12px; }
.audience-entry .visit-choice .micro { font-size:10px; color:#786542; letter-spacing:.11em; }
.audience-entry .visit-choice h3 { font-size:22px; line-height:1.35; letter-spacing:-.035em; margin:10px 0; }
.audience-entry .visit-choice p { font-size:14px; line-height:1.75; max-width:420px; margin:0; }
.audience-entry .visit-choice .text-link { border:0; min-height:44px; font-size:13px; margin-top:12px; padding:6px 0; }
.page-index .offering-overview { padding-top:36px; padding-bottom:60px; background:#fff; }
.offering-card-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:20px; }
.offering-card-heading .offering-icon { margin:0; }
.offering-format { color:#806b46; font-size:10px; letter-spacing:.11em; }
.offering-overview .primary-offering-card { padding:30px; box-shadow:none; border-radius:18px; background:#f7f9fb; transition:border-color .2s,box-shadow .2s; }
.offering-overview .primary-offering-card:last-child { background:#f7f9fb; }
.offering-overview .primary-offering-card:hover { border-color:#a8bdcf; box-shadow:0 10px 28px #183a5e09; }
.offering-overview .primary-offering-card h3 { margin:0 0 12px; font-size:26px; }
.offering-overview .primary-offering-card > p { max-width:520px; font-size:15px; }
.offering-highlights { display:flex; flex-wrap:wrap; gap:10px 20px; padding:20px 0; margin-bottom:8px; }
.offering-highlights > span { display:inline-flex; align-items:center; gap:7px; color:#50687e; font-size:12px; line-height:1.7; }
.offering-highlights svg { width:14px; height:14px; color:#917443; }
.offering-overview .primary-offering-card .text-link { display:flex; align-self:stretch; justify-content:space-between; width:auto; border-bottom:0; border-top:1px solid #dce5ed; padding-top:18px; }
.offering-overview .offering-sponsor-link { border:0; background:#f8f4eb; border-radius:14px; padding:20px 24px; margin-top:20px; }
.page-index :is(.circuit-heading,.university-explorer-heading,.section-heading) h2 { font-size:clamp(30px,3.2vw,44px); line-height:1.2; }
.page-index :is(.circuit-heading,.university-explorer-heading,.section-heading) > p { font-size:15px; line-height:1.8; }
.page-index .section-heading .eyebrow { margin-bottom:18px; }
.page-services .primary-services-directory { grid-template-columns:1fr; gap:28px; }
.page-services .primary-services-directory > article { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); align-items:stretch; border-radius:20px; box-shadow:none; background:#f7f9fb; }
.page-services .primary-services-directory .directory-photo { display:flex; align-items:center; justify-content:center; height:100%; aspect-ratio:auto; max-height:none; padding:28px; background:#edf2f6; }
.page-services .primary-services-directory .directory-photo > img { height:auto; width:100%; border-radius:12px; object-fit:contain; }
.page-services .primary-services-directory .directory-photo > span { left:28px; top:22px; font-size:10px; border-radius:5px; }
.page-services .primary-services-directory .directory-copy { min-width:0; padding:36px 40px; background:#fff; }
.page-services .primary-services-directory .directory-copy h3 { font-size:28px; line-height:1.3; }
.page-services .primary-services-directory .directory-copy > p { font-size:15px; margin:12px 0 18px; }
.page-services .primary-services-directory .directory-copy > ul { gap:8px; margin-bottom:18px; }
.page-services .primary-services-directory .directory-copy .button { background:#284f77; border-color:#284f77; color:#fff; font-size:13px; }
.page-services .primary-services-directory .directory-copy .button:hover { background:#183a5e; }
.page-services .primary-services-directory > article:nth-child(even) .directory-photo { grid-column:2; grid-row:1; background:#f5f0e7; }
.page-services .primary-services-directory > article:nth-child(even) .directory-copy { grid-column:1; grid-row:1; }
.page-services .campus-outreach ol { gap:18px; }
.page-services .campus-outreach li { padding:24px; border:1px solid #dce5ed; border-radius:16px; background:#fff; }
.page-services .campus-outreach li > span { display:grid; place-items:center; width:38px; height:38px; font-family:var(--body); font-size:12px; border-radius:50%; color:#816b40; background:#f6f1e7; }
.page-services .campus-outreach h3 { margin:18px 0 10px; font-size:19px; }
.page-services .campus-outreach .campus-support-note { margin-top:24px; max-width:1000px; font-size:13px; }
.service-contact { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:clamp(32px,5vw,72px); align-items:start; background:#fff; }
.service-contact > * { min-width:0; }
.service-contact-intro { padding-top:18px; }
.service-contact-intro .eyebrow { margin-bottom:20px; }
.service-contact-intro h2 { font-size:clamp(30px,3vw,42px); line-height:1.2; }
.service-contact-intro > p { font-size:15px; line-height:1.85; max-width:440px; margin-top:22px; }
.service-contact-intro ol { list-style:none; padding:0; margin:32px 0 0; }
.service-contact-intro li { display:flex; gap:16px; padding:20px 0; border-top:1px solid #dce5ed; }
.service-contact-intro li > span { color:#947844; font-size:12px; padding-top:2px; }
.service-contact-intro h3 { font-size:16px; line-height:1.5; letter-spacing:-.015em; }
.service-contact-intro li p { font-size:13px; line-height:1.8; margin-top:6px; }
.service-contact .service-enquiry { width:100%; max-width:none; margin:0; }
.service-contact .form-card { padding:30px; background:#f8fafc; border-radius:18px; box-shadow:none; }
.service-contact .form-card h2 { font-size:26px; line-height:1.3; }
.service-contact .form-card .preview-note { font-size:13px; line-height:1.8; }
.service-contact .field label { font-size:13px; }
.service-contact :is(input:not([type=checkbox]),select,textarea) { background:#fff; border-color:#cedce7; border-radius:7px; }
.service-contact .consent-row { font-size:12px; line-height:1.8; }
@media(max-width:1000px) {
 .page-services .primary-services-directory .directory-copy { padding:28px; }
 .page-services .primary-services-directory .directory-photo { padding:22px; }
 .page-services .primary-services-directory .directory-photo > span { left:22px; }
 .audience-entry .visit-choice { padding:24px; gap:16px; }
 .audience-entry .visit-choice h3 { font-size:21px; }
 .service-contact { grid-template-columns:1fr; }
 .service-contact-intro > p { max-width:650px; }
 .service-contact-intro ol { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-top:24px; }
}
@media(max-width:700px) {
 .page-services .primary-services-directory > article { display:flex; flex-direction:column; }
 .page-services .primary-services-directory .directory-photo { height:auto; padding:22px; padding-top:54px; }
 .page-services .primary-services-directory .directory-photo > img { max-width:430px; }
 .page-services .primary-services-directory .directory-photo > span { top:16px; }
 .page-services .primary-services-directory .directory-copy { padding:26px; }
 .page-services .primary-services-directory .directory-copy h3 { font-size:24px; }
 .page-services .campus-outreach ol { grid-template-columns:1fr; }
 .page-services .campus-outreach li { padding:22px; }
}
@media(max-width:650px) {
 .audience-entry .visit-choice-grid { grid-template-columns:1fr; }
 .audience-entry .visit-choice + .visit-choice { border-left:0; border-top:1px solid #dce5ed; }
 .audience-entry .visit-choice { padding:24px 22px; }
 .page-index .audience-entry { padding-top:18px; padding-bottom:24px; }
 .page-index .offering-overview { padding-top:24px; padding-bottom:44px; }
 .offering-overview .primary-offering-card { padding:24px; }
 .offering-overview .primary-offering-card h3 { font-size:23px; }
 .offering-highlights { display:grid; gap:8px; }
 .offering-overview .offering-sponsor-link { padding:20px; }
 .service-contact-intro ol { display:block; margin-top:22px; }
 .service-contact-intro li { padding:16px 0; }
 .service-contact .form-card { padding:24px 20px; }
 .service-contact .form-grid { grid-template-columns:1fr; }
}
@media(prefers-reduced-motion:reduce) { .offering-overview .primary-offering-card { transition:none; } }
/* Participation cards: actual fair savings and direct online plan choices. */
.pricing-section .fair-price-card { display:flex; flex-direction:column; gap:0; background:#fff; padding:clamp(22px,3vw,38px); }
.fair-card-top { display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin-bottom:24px; }
.fair-card-icon { display:grid; place-items:center; width:42px; height:42px; background:#edf2f7; border-radius:12px; color:#28517a; flex-shrink:0; }
.fair-card-icon svg { width:21px; height:21px; }
.fair-card-top .micro { font-size:10px; letter-spacing:.1em; color:#60728a; }
.fair-discount-badge { margin-left:auto; padding:6px 10px; font-size:12px; font-weight:600; background:#eaf3ee; color:#28513d; border-radius:20px; white-space:nowrap; }
.fair-price-card .stall-plan-content { display:flex; flex-direction:column; flex:1; min-width:0; }
.fair-price-card h3 { font-size:clamp(24px,2.3vw,30px); line-height:1.25; margin:0 0 12px; }
.fair-price-card .stall-plan-content>p { font-size:15px; line-height:1.7; color:#60728a; }
.fair-price-reveal { padding:22px; border:1px solid #dbe5ee; border-radius:16px; background:#f5f8fb; margin:22px 0; }
.fair-original-price { display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px; color:#60728a; font-size:12px; }
.fair-original-price del { font-size:18px; text-decoration-thickness:1.5px; text-decoration-color:#9a6f55; }
.fair-current-price { margin:12px 0 16px; }
.fair-current-price strong { display:block; font-size:clamp(29px,3.1vw,43px); line-height:1.2; letter-spacing:-.035em; color:#183a5e; }
.fair-current-price>span { display:block; font-size:12px; line-height:1.5; color:#60728a; margin-top:8px; }
.fair-saving { display:flex; align-items:center; gap:7px; padding-top:13px; border-top:1px solid #dbe5ee; font-size:12px; line-height:1.6; color:#28513d; }
.fair-saving svg { width:17px; height:17px; flex-shrink:0; }
.fair-package-points { display:grid; gap:12px; padding:0; margin:0 0 26px; list-style:none; }
.fair-package-points li { display:flex; align-items:flex-start; gap:9px; font-size:13px; line-height:1.6; }
.fair-package-points svg { width:17px; height:17px; flex-shrink:0; margin-top:2px; color:#8c7140; }
.fair-price-card .button { margin-top:auto; min-height:48px; font-size:14px; justify-content:space-between; }
.online-participation-plan .fair-card-top { margin-bottom:0; }
.online-plan-options { display:grid; gap:12px; margin:22px 0; }
.online-plan-option { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:13px 16px; padding:18px; background:#fff; border:1px solid #e4e0d5; border-radius:14px; transition:border-color .2s,box-shadow .2s; }
.online-plan-option:hover { border-color:#9d8352; box-shadow:0 5px 14px #183a5e08; }
.online-plan-option b { font-size:15px; font-weight:600; }
.online-plan-option small { display:block; font-size:11px; line-height:1.6; color:#60728a; margin-top:5px; }
.online-option-price { grid-column:1; }
.online-option-price strong { font-size:24px; font-weight:500; color:#183a5e; }
.online-option-price small { display:inline; margin-left:6px; }
.online-plan-option>svg { grid-column:2; grid-row:1 / 3; width:20px; height:20px; color:#897044; }
.online-participation-plan .online-plan-inclusions { margin-bottom:10px; font-size:13px; }
.online-participation-plan .online-plan-schedule { font-size:11px; line-height:1.7; margin:0 0 24px; }
@media(max-width:700px) { .fair-card-top { gap:9px; } .fair-card-top .micro { font-size:9px; } .fair-price-reveal { padding:18px; } .fair-price-card .button { width:100%; } .online-plan-option { padding:16px; } }
@media(prefers-reduced-motion:reduce) { .online-plan-option { transition:none; } }

/* Homepage editorial treatment. All content, destinations and carousel behaviour stay intact. */
.page-index .cinema-deck { --hero-inset:clamp(24px,4vw,60px); background:#f5f3ee; color:#183a5e; border:1px solid #e3e6e7; box-shadow:0 18px 50px #183a5e08; }
.page-index .cinema-topline { top:30px; left:var(--hero-inset); right:48px; color:#365370; text-shadow:none; font-size:10px; letter-spacing:.14em; }
.page-index .cinema-topline > span:last-child { color:#fff; text-shadow:0 1px 8px #142d4c; }
.page-index .cinema-slide { min-height:440px; }
.page-index .cinema-slide:not([hidden]) { display:flex; align-items:center; }
.page-index .cinema-slide > .cinema-media { left:auto; right:22px; top:22px; width:44%; height:calc(100% - 44px); object-fit:cover; object-position:center; border-radius:100px 16px 16px 16px; animation:none; transform:none; z-index:0; }
.page-index .cinema-slide::after { inset:22px 22px 22px auto; width:44%; border-radius:100px 16px 16px 16px; background:linear-gradient(180deg,#102b4840,transparent 35%,#102b4820); z-index:0; pointer-events:none; }
.page-index .cinema-copy { padding:86px 32px 40px var(--hero-inset); width:55%; max-width:none; z-index:1; }
.page-index .cinema-copy > .eyebrow { color:#785d2f; font-size:10px; letter-spacing:.14em; line-height:1.7; margin-bottom:20px; }
.page-index .cinema-copy h2 { color:#183a5e; font-size:clamp(36px,3.9vw,59px); font-weight:500; line-height:1.12; letter-spacing:-.045em; margin:0; text-wrap:balance; }
.page-index .cinema-copy h2 em { color:#8a672c; }
.page-index .cinema-copy > p { color:#52677b; font-size:16px; line-height:1.75; max-width:440px; margin:23px 0 0; text-shadow:none; }
.page-index .cinema-actions.cinema-audience-actions { background:#fff; border-top:1px solid #e2e5e6; border-bottom:1px solid #e2e5e6; max-width:none; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,80px); padding:24px var(--hero-inset); align-items:center; }
.page-index .cinema-audience-path { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:20px; }
.page-index .cinema-audience-path > p { color:#52677b; margin:0; font-size:13px; line-height:1.6; }
.page-index .cinema-audience-path .button { width:auto; white-space:nowrap; padding:14px 18px; gap:24px; }
.page-index .button.cinema-book { background:#183a5e; color:#fff; border-color:#183a5e; }
.page-index .button.cinema-book:hover { background:#244d7b; }
.page-index .button.cinema-student { background:#f1dfb7; color:#183a5e; border-color:#e3ce9e; backdrop-filter:none; }
.page-index .button.cinema-student:hover { background:#e9d29e; }
.page-index .cinema-controls { background:#f5f3ee; padding:18px var(--hero-inset); gap:30px; }
.page-index .cinema-chapters button { color:#617186; border-top-color:#d5dbe0; font-size:12px; min-height:48px; padding-top:14px; }
.page-index .cinema-chapters button > span { color:#877249; }
.page-index .cinema-chapters button[aria-pressed=true] { color:#183a5e; font-weight:600; }
.page-index .cinema-chapters button::after { background:#9c7b40; }
.page-index .cinema-controls .deck-arrows button { color:#183a5e; border-color:#ccd5df; background:transparent; }
.page-index .cinema-controls .deck-arrows button:hover { background:#e6ebef; }
.page-index .fair-numbers { border-bottom:1px solid #e1e6eb; }
@media(max-width:1100px) {
 .page-index .cinema-audience-path { grid-template-columns:1fr; gap:12px; }
 .page-index .cinema-audience-path > p { max-width:none; }
 .page-index .cinema-audience-path .button { width:100%; }
 .page-index .cinema-copy { padding-right:24px; }
}
@media(max-width:700px) {
 .page-index .cinema-topline { top:22px; left:24px; }
 .page-index .cinema-topline > span:last-child { display:none; }
 .page-index .cinema-slide:not([hidden]) { display:flex; flex-direction:column; align-items:stretch; min-height:0; }
 .page-index .cinema-copy { order:-1; width:100%; padding:68px 24px 26px; }
 .page-index .cinema-copy h2 { font-size:clamp(33px,8.5vw,48px); line-height:1.12; }
 .page-index .cinema-copy > .eyebrow { font-size:9px; margin-bottom:14px; }
 .page-index .cinema-copy > p { font-size:14px; margin-top:18px; }
 .page-index .cinema-slide > .cinema-media { position:relative; inset:auto; width:calc(100% - 48px); height:170px; margin:0 24px 24px; border-radius:48px 12px 12px 12px; }
 .page-index .cinema-slide::after { display:none; }
 .page-index .cinema-actions.cinema-audience-actions { grid-template-columns:1fr; padding:22px 24px; gap:20px; }
 .page-index .cinema-audience-path { gap:10px; }
 .page-index .cinema-audience-path + .cinema-audience-path { padding-top:20px; border-top:1px solid #e2e5e6; }
 .page-index .cinema-audience-path > p { font-size:12px; }
 .page-index .cinema-audience-path .button { font-size:13px; }
 .page-index .cinema-controls { padding:16px 24px 22px; gap:12px; }
 .page-index .cinema-chapters { gap:12px 16px; }
 .page-index .cinema-chapters button { font-size:11px; }
}

/* Carry the approved ivory, navy and gold treatment into existing inner-page components. */
body:not(.page-index) main > :is(.audience-hero,.page-hero,.services-intro,.campus-visit-hero):first-child {
 margin:calc(var(--header-bottom,110px) + 20px) 24px 0;
 padding:clamp(32px,4.5vw,64px) clamp(24px,4vw,60px);
 background:#f5f3ee; border:1px solid #e3e6e7; border-radius:26px;
 box-shadow:0 18px 50px #183a5e08;
}
body:not(.page-index) main > :is(.audience-hero,.services-intro,.campus-visit-hero):first-child { gap:clamp(28px,5vw,76px); }
body:not(.page-index) main > :is(.audience-hero,.page-hero,.services-intro,.campus-visit-hero):first-child h1 { color:#183a5e; font-size:clamp(35px,4vw,59px); line-height:1.13; letter-spacing:-.045em; text-wrap:balance; }
body:not(.page-index) main > :is(.audience-hero,.page-hero,.services-intro,.campus-visit-hero):first-child h1 em { color:#8a672c; }
body:not(.page-index) main > :is(.audience-hero,.page-hero,.services-intro,.campus-visit-hero):first-child .eyebrow { color:#785d2f; font-size:10px; line-height:1.8; letter-spacing:.13em; }
body:not(.page-index) :is(.audience-hero-copy,.services-intro-copy) > p { color:#52677b; max-width:540px; line-height:1.8; }
body:not(.page-index) .audience-hero-image { border-radius:80px 16px 16px 16px; border:1px solid #e0e4e7; background:#fff; box-shadow:none; margin:0; }
body:not(.page-index) .audience-hero-image > img { display:block; width:100%; height:340px; object-fit:cover; }
body:not(.page-index) .audience-students .audience-hero-image > img { object-fit:contain; }
body:not(.page-index) .audience-hero-image > figcaption { position:static; padding:16px 20px; background:#fff; color:#52677b; font-size:10px; letter-spacing:.08em; line-height:1.7; }
body:not(.page-index) .campus-visit-hero > figure { border-radius:80px 16px 16px 16px; box-shadow:none; border:1px solid #e0e4e7; background:#fff; }
body:not(.page-index) .campus-visit-hero > figure > img { max-height:440px; object-fit:contain; }
body:not(.page-index) main > .page-hero:first-child { border-left:4px solid #c3a267; }
body:not(.page-index) .audience-actions .button.outline { background:#f1dfb7; border-color:#e3ce9e; color:#183a5e; }
body:not(.page-index) .audience-actions .button.outline:hover { background:#e9d29e; }
.services-intro .services-overview { border-radius:20px; background:#fff; border:1px solid #e0e4e7; overflow:hidden; }
.services-intro .services-overview > a { border-radius:0; background:#fff; }
.services-intro .services-overview > a:hover { background:#fbf8f1; }
.services-intro .service-overview-icon { background:#f5f0e6; color:#8a672c; }
body:not(.page-index) :is(.city-location-card,.primary-services-directory > article,.participant-notice) { border:1px solid #e0e4e7; border-radius:20px; box-shadow:0 8px 28px #183a5e06; overflow:hidden; }
body:not(.page-index) :is(.city-tile-caption,.directory-copy) { background:#fcfbf8; }
body:not(.page-index) .contact-info { border-left:3px solid #c3a267; padding-left:28px; }
body:not(.page-index) .contact-layout > form { border:1px solid #e0e4e7; border-radius:20px; box-shadow:0 10px 30px #183a5e08; }
body:not(.page-index) .registration-picture { border-radius:80px 18px 18px 18px; overflow:hidden; }
body:not(.page-index) .branded-webinar { border-radius:70px 16px 16px 16px; overflow:hidden; }
@media(max-width:800px) {
 body:not(.page-index) main > :is(.audience-hero,.services-intro,.campus-visit-hero):first-child { grid-template-columns:1fr; }
 body:not(.page-index) .audience-hero-image { width:100%; max-width:560px; justify-self:center; }
}
@media(max-width:650px) {
 body:not(.page-index) main > :is(.audience-hero,.page-hero,.services-intro,.campus-visit-hero):first-child { margin:calc(var(--header-bottom,90px) + 18px) 12px 0; padding:30px 24px; border-radius:20px; }
 body:not(.page-index) main > :is(.audience-hero,.page-hero,.services-intro,.campus-visit-hero):first-child h1 { font-size:clamp(30px,8vw,42px); line-height:1.15; }
 body:not(.page-index) :is(.audience-hero-copy,.services-intro-copy) > p { font-size:15px; }
 body:not(.page-index) .audience-hero-image { border-radius:48px 12px 12px 12px; }
 body:not(.page-index) .audience-hero-image > img { height:230px; }
 body:not(.page-index) .audience-hero-image > figcaption { padding:13px 16px; font-size:9px; }
 body:not(.page-index) .campus-visit-hero > figure { border-radius:48px 12px 12px 12px; }
 body:not(.page-index) .contact-info { padding-left:18px; }
 body:not(.page-index) .registration-picture { border-radius:48px 14px 14px 14px; }
 body:not(.page-index) .branded-webinar { border-radius:48px 12px 12px 12px; }
}

/* Editorial content system: existing copy, links and interaction semantics retained. */
:is(.section-heading,.circuit-heading,.pricing-heading) { padding-bottom:28px; border-bottom:1px solid #dce2e6; margin-bottom:32px; gap:24px; }
:is(.section-heading,.circuit-heading,.pricing-heading) h2 { letter-spacing:-.035em; line-height:1.15; text-wrap:balance; }
.section-heading > p,.circuit-heading > p { max-width:390px; color:#52677b; }
.page-index .fair-numbers { padding:24px 0 8px; gap:14px; border-bottom:0; }
.page-index .fair-numbers > a { padding:22px; border:1px solid #e0e5e8; border-radius:16px; background:#fcfbf8; }
.page-index .fair-numbers strong { font-size:38px; }
.page-index .fair-numbers small { color:#52677b; }
.visit-choice { border:1px solid #dbe2e7; border-radius:22px; padding:32px; background:#fcfbf8; align-items:flex-start; box-shadow:none; }
.visit-choice:nth-child(2) { background:#eef3f7; }
.visit-choice .choice-icon { background:#fff; border:1px solid #dbe2e7; border-radius:14px; color:#183a5e; }
.visit-choice h3 { font-size:clamp(22px,2.2vw,30px); letter-spacing:-.03em; line-height:1.25; }
.visit-choice p { color:#52677b; line-height:1.75; }
.visit-choice .text-link { margin-top:18px; padding-top:16px; border-top:1px solid #dbe2e7; }
.city-location-card .city-tile-caption { padding:22px 24px; border-bottom:1px solid #e0e5e8; }
.city-location-card .city-tile-caption h3 { font-size:28px; letter-spacing:-.035em; }
.city-location-card .city-venue-label { color:#785d2f; font-size:10px; letter-spacing:.12em; }
.city-location-card .city-venue h4 { font-size:18px; line-height:1.4; }
.city-location-card .city-register { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:48px; padding:13px 16px; border:1px solid #cbd6df; border-radius:10px; color:#183a5e; background:#f1f5f8; text-decoration:none; }
.city-location-card .city-register:hover { background:#e4edf4; }
.participation-steps { display:block; background:#f5f3ee; }
.participation-steps ol { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; padding:0; margin:32px 0 0; list-style:none; }
.participation-steps ol > li { display:flex; flex-direction:column; align-items:flex-start; gap:24px; padding:28px; background:#fff; border:1px solid #dce2e6; border-radius:18px; }
.participation-steps ol > li:first-child { padding-top:28px; }
.participation-steps li > span { display:grid; place-items:center; padding:0; width:48px; height:48px; flex-shrink:0; border:1px solid #decba5; border-radius:50%; background:#f7efdf; color:#785d2f; font-size:16px; }
.participation-steps li h3 { font-size:21px; line-height:1.3; letter-spacing:-.025em; }
.participation-steps li p { color:#52677b; line-height:1.75; font-size:14px; margin-bottom:0; }
.extra-services { gap:18px; }
.extra-services > article { padding:32px; border:1px solid #dce2e6; border-radius:18px; background:#fcfbf8; }
.extra-services > article > svg { width:44px; height:44px; padding:10px; border-radius:12px; background:#efe4cd; color:#785d2f; }
.extra-services h3 { font-size:23px; letter-spacing:-.025em; line-height:1.3; }
.extra-services p { color:#52677b; line-height:1.75; }
.about-story > div:last-child { padding-left:32px; border-left:2px solid #c3a267; }
.about-story > div:last-child p { line-height:1.85; color:#52677b; }
.about-story > div:last-child p:first-child { font-size:clamp(20px,2vw,27px); line-height:1.5; color:#183a5e; letter-spacing:-.02em; }
.faq-section > div:last-child { display:grid; gap:12px; align-content:start; }
.faq-section details { border:1px solid #dce2e6; border-radius:14px; padding:0 22px; background:#fff; overflow:visible; }
.faq-section details[open] { border-color:#c3a267; background:#fcfaf5; }
.faq-section summary { min-height:66px; padding:19px 0; gap:16px; color:#183a5e; font-size:16px; line-height:1.5; }
.faq-section summary svg { flex-shrink:0; width:20px; height:20px; color:#785d2f; }
.faq-section details > p { margin:0; padding:0 0 22px; font-size:15px; line-height:1.8; color:#52677b; }
.final-cta { margin:20px 24px 48px; padding:clamp(40px,6vw,80px); border:1px solid #284969; border-radius:28px; background:#183a5e; color:#fff; text-align:left; }
.final-cta h2 { max-width:850px; font-size:clamp(34px,4.4vw,64px); letter-spacing:-.045em; line-height:1.14; color:#fff; }
.final-cta h2 em,.final-cta .eyebrow { color:#edce8b; }
.final-cta .eyebrow { justify-content:flex-start; }
.final-cta > p { max-width:760px; margin-left:0; margin-right:0; color:#d9e5ef; line-height:1.8; }
.final-cta > p a { color:#fff; text-decoration:underline; text-underline-offset:4px; }
.final-cta .button.primary { background:#f1dfb7; border-color:#f1dfb7; color:#183a5e; border-radius:10px; }
.final-cta .button.text { color:#fff; }
.final-cta .button:focus-visible { outline-color:#fff; }
.services-intro-actions .text-link,.resource-heading > .text-link { border-bottom:1px solid #bda16d; padding-bottom:8px; }
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
 .visit-choice { transition:border-color .2s,box-shadow .2s; }
 .visit-choice:hover { border-color:#bda16d; box-shadow:0 12px 28px #183a5e0c; }
}
@media(max-width:900px) {
 .participation-steps ol { grid-template-columns:1fr; }
 .participation-steps ol > li { flex-direction:row; gap:20px; }
}
@media(max-width:650px) {
 :is(.section-heading,.circuit-heading,.pricing-heading) { padding-bottom:22px; margin-bottom:24px; }
 .page-index .fair-numbers { gap:8px; }
 .page-index .fair-numbers > a { padding:14px 10px; gap:8px; }
 .page-index .fair-numbers strong { font-size:30px; }
 .page-index .fair-numbers > a > span { font-size:12px; }
 .page-index .fair-numbers small { font-size:10px; line-height:1.6; }
 .visit-choice,.extra-services > article { padding:24px; }
 .participation-steps ol > li { padding:22px; gap:16px; }
 .participation-steps ol > li:first-child { padding-top:22px; }
 .participation-steps li > span { width:36px; height:36px; font-size:13px; }
 .participation-steps li h3 { font-size:19px; }
 .about-story > div:last-child { padding-left:20px; }
 .faq-section details { padding:0 18px; }
 .faq-section summary { font-size:15px; }
 .final-cta { margin:12px 12px 32px; padding:34px 24px; border-radius:20px; }
 .final-cta .button { justify-content:space-between; width:100%; }
}

/* Guided editorial layouts. Native links/details work without scripting. */
.route-studio { display:grid; grid-template-columns:minmax(200px,.65fr) minmax(0,2fr); gap:0; }
.route-intro { position:relative; padding:36px 30px; background:#183a5e; color:#fff; border-radius:22px 0 0 22px; overflow:hidden; }
.route-intro .eyebrow { color:#edce8b; font-size:10px; line-height:1.7; }
.route-intro h2 { font-size:clamp(30px,3vw,44px); line-height:1.15; letter-spacing:-.04em; color:#fff; margin-top:30px; }
.route-intro h2 em { color:#edce8b; }
.route-intro-symbol { display:block; margin-top:48px; color:#aec5d9; }
.route-intro-symbol svg { width:76px; height:76px; stroke-width:1; }
.route-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border:1px solid #dce2e6; border-left:0; border-radius:0 22px 22px 0; background:#fcfbf8; }
.route-option { display:flex; flex-direction:column; padding:32px; min-width:0; }
.route-option + .route-option { border-left:1px solid #dce2e6; background:#f2f5f7; border-radius:0 22px 22px 0; }
.route-option-top { display:flex; gap:12px; align-items:center; color:#52677b; }
.route-option-top .micro { font-size:9px; line-height:1.7; letter-spacing:.08em; }
.route-glyph { display:grid; place-items:center; flex-shrink:0; width:36px; height:36px; border:1px solid #cdd8e1; border-radius:50%; color:#183a5e; }
.route-glyph svg { width:18px; height:18px; }
.route-index { margin-left:auto; font-size:11px; color:#785d2f; }
.route-option h3 { font-size:clamp(23px,2.1vw,31px); line-height:1.2; letter-spacing:-.035em; margin:26px 0 14px; color:#183a5e; }
.route-option > p { font-size:14px; line-height:1.8; color:#52677b; margin:0 0 24px; }
.route-links { list-style:none; padding:0; margin:auto 0 24px; }
.route-links li { border-top:1px solid #dce2e6; }
.route-links li:last-child { border-bottom:1px solid #dce2e6; }
.route-links a { display:flex; align-items:center; gap:12px; min-height:52px; padding:12px 0; color:#183a5e; font-size:13px; line-height:1.5; }
.route-links a > span { color:#785d2f; font-size:10px; }
.route-links svg { width:16px; height:16px; margin-left:auto; flex-shrink:0; }
.route-links a:hover { text-decoration:underline; text-underline-offset:4px; }
.route-main-link { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:14px 17px; min-height:48px; background:#183a5e; color:#fff; font-size:13px; border-radius:7px; }
.route-option + .route-option .route-main-link { background:#eddfc1; color:#183a5e; }
.route-main-link svg { width:18px; height:18px; flex-shrink:0; }
.fair-itinerary { display:grid; grid-template-columns:190px minmax(0,1fr); padding:24px; border:1px solid #d7dfe5; border-radius:16px; background:#fff; margin:28px 0; gap:28px; }
.itinerary-label { display:flex; align-items:center; gap:12px; color:#785d2f; font-size:10px; letter-spacing:.1em; line-height:1.6; }
.itinerary-label > svg { width:24px; height:24px; flex-shrink:0; }
.itinerary-label small { display:block; color:#52677b; font-size:12px; letter-spacing:0; margin-top:4px; }
.fair-itinerary ol { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); padding:0; margin:0; list-style:none; gap:18px; }
.fair-itinerary li { position:relative; border-top:2px solid #d6c29c; }
.fair-itinerary a { display:flex; align-items:center; flex-wrap:wrap; gap:10px; padding:14px 0 0; color:#183a5e; min-height:68px; }
.itinerary-stop { font-size:10px; color:#785d2f; align-self:flex-start; margin-top:5px; }
.fair-itinerary strong { display:block; font-size:16px; font-weight:500; }
.fair-itinerary time { display:block; color:#52677b; font-size:11px; line-height:1.7; margin-top:4px; }
.fair-itinerary a > svg { width:15px; height:15px; margin-left:auto; }
.fair-itinerary a:hover strong { text-decoration:underline; text-underline-offset:5px; }
.city-location-card { scroll-margin-top:calc(var(--header-bottom,110px) + 24px); }
.city-location-card:target { outline:2px solid #8a672c; outline-offset:-2px; }
.field-guide { background:#f5f3ee; }
.field-guide-pages { border-top:1px solid #cdd5dc; }
.field-guide-page { border-bottom:1px solid #cdd5dc; }
.field-guide-page > summary { list-style:none; display:grid; grid-template-columns:80px minmax(0,1fr) 44px; align-items:start; gap:24px; padding:28px 12px; cursor:pointer; color:#183a5e; }
.field-guide-page > summary::-webkit-details-marker { display:none; }
.field-guide-number { font-size:clamp(38px,4vw,56px); font-family:var(--display); line-height:1; color:#8a672c; letter-spacing:-.05em; }
.field-guide-title { font-size:clamp(23px,2.7vw,34px); line-height:1.25; letter-spacing:-.03em; }
.field-guide-title small { display:block; max-width:650px; margin-top:12px; color:#52677b; font-size:14px; line-height:1.8; letter-spacing:0; }
.field-guide-toggle { display:grid; place-items:center; width:40px; height:40px; border-radius:50%; border:1px solid #c8d3dc; background:#fff; }
.field-guide-toggle svg { width:18px; height:18px; }
.field-guide-page[open] .field-guide-toggle { background:#183a5e; color:#fff; }
.field-guide-page[open] .field-guide-toggle svg { transform:rotate(45deg); }
.field-guide-notes { margin:0 80px 28px 116px; padding:22px 26px; background:#fff; border-left:3px solid #c3a267; }
.field-guide-note-label { display:flex; align-items:center; gap:8px; font-size:10px; letter-spacing:.12em; color:#785d2f; }
.field-guide-note-label svg { width:17px; height:17px; }
.field-guide-notes ul { display:flex; flex-wrap:wrap; gap:16px 32px; padding:0; margin:18px 0 0; list-style:none; }
.field-guide-notes li { display:flex; align-items:center; gap:10px; color:#183a5e; font-size:14px; line-height:1.7; }
.field-guide-notes li svg { width:17px; height:17px; flex-shrink:0; color:#785d2f; }
.route-studio a:focus-visible,.fair-itinerary a:focus-visible,.field-guide-page summary:focus-visible { outline:3px solid #8a672c; outline-offset:4px; }
@media(max-width:1050px) {
 .route-studio { grid-template-columns:1fr; }
 .route-intro { border-radius:20px 20px 0 0; padding:28px; }
 .route-intro h2 { margin:16px 0 0; }
 .route-intro h2 br { display:none; }
 .route-intro-symbol { display:none; }
 .route-options { border-left:1px solid #dce2e6; border-top:0; border-radius:0 0 20px 20px; }
 .route-option + .route-option { border-radius:0 0 20px 0; }
 .fair-itinerary { grid-template-columns:1fr; gap:18px; }
}
@media(max-width:650px) {
 .route-options { grid-template-columns:1fr; }
 .route-option { padding:26px 24px; }
 .route-option + .route-option { border-left:0; border-top:1px solid #dce2e6; border-radius:0 0 20px 20px; }
 .route-option h3 { font-size:28px; }
 .route-intro { padding:28px 24px; }
 .fair-itinerary { padding:20px; }
 .fair-itinerary ol { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
 .fair-itinerary strong { font-size:15px; }
 .fair-itinerary a { gap:7px; }
 .fair-itinerary a > svg { display:none; }
 .field-guide-page > summary { grid-template-columns:36px minmax(0,1fr) 30px; gap:12px; padding:24px 0; }
 .field-guide-number { font-size:34px; }
 .field-guide-title { font-size:23px; }
 .field-guide-title small { font-size:13px; }
 .field-guide-toggle { width:30px; height:30px; }
 .field-guide-notes { margin:0 0 24px 48px; padding:18px; }
 .field-guide-notes ul { display:grid; gap:12px; }
 .field-guide-notes li { font-size:13px; }
}
