/* Audited homepage migration. Loaded ONLY in harmonise mode.
 * No universal resets, !important declarations or container geometry changes.
 * Native widget selectors intentionally outrank saved legacy page typography.
 * ahds-keep-style on a widget/container restores its original control precedence.
 * Hero display, Why display, Glance mosaic, cards, icons and animations stay individual.
 */
body.ahds-harmonised {
 --ahds-h2-compact: clamp(2rem, 1.5rem + 1.8vw, 3rem);
}

/* Foundation aliases for legacy theme chrome and the Hero's supporting text.
 * Core's direct Elementor styling controls still outrank inherited variables. */
body.ahds-harmonised :is(.ah-site-shell,.ah-site-footer,.ah-hero):not(:where(.ahds-keep-style,.ahds-keep-style *)) {
 --ah-font-sans: var(--ahds-font-body);
 --ah-gold: var(--ahds-sky);
 --ah-gold-soft: var(--ahds-mist);
}
body.ahds-harmonised :is(.ah-header,.ah-hero) :is(.ah-button,.ah-btn,.ah-menu a):not(:where(.ahds-keep-style,.ahds-keep-style *)) {font-family:var(--ahds-font-body)}

/* Global elements: only the audited native section titles.
 * Welcome currently has no semantic title class, so its existing widget ID is
 * an explicit migration alias. Future pages should use the ahds-h2 role. */
body.ahds-harmonised .elementor-element:is(.elementor-element-bb3882b,.ah-safety__title,.ah-ne-title,.ah-admissions-title):not(:where(.ahds-keep-style,.ahds-keep-style *)) .elementor-heading-title,
body.ahds-harmonised :is(.ahday-heading,.ah-pathways__head-main) .elementor-element.elementor-widget-heading:not(:where(.ahds-keep-style,.ahds-keep-style *)) h2.elementor-heading-title {
 font-family: var(--ahds-font-heading);
 font-size: var(--ahds-h2);
 font-weight: var(--ahds-weight-regular);
 line-height: var(--ahds-leading-heading);
 letter-spacing: var(--ahds-tracking-heading);
}
body.ahds-harmonised .elementor-element:is(.elementor-element-bb3882b,.ah-safety__title):not(:where(.ahds-keep-style,.ahds-keep-style *)) .elementor-heading-title {
 font-size: var(--ahds-h2-compact);
 color: var(--ahds-heading-color);
}
body.ahds-harmonised .elementor-element.ah-ne-title:not(:where(.ahds-keep-style,.ahds-keep-style *)) .elementor-heading-title,
body.ahds-harmonised .ah-pathways__head-main .elementor-element.elementor-widget-heading:not(:where(.ahds-keep-style,.ahds-keep-style *)) h2.elementor-heading-title {
 color: var(--ahds-heading-color);
}
/* White titles on image/dark panels retain contrast. */
body.ahds-harmonised .ahday-heading .elementor-element.elementor-widget-heading:not(:where(.ahds-keep-style,.ahds-keep-style *)) h2.elementor-heading-title,
body.ahds-harmonised .elementor-element.ah-admissions-title:not(:where(.ahds-keep-style,.ahds-keep-style *)) .elementor-heading-title {
 color: var(--ahds-on-dark);
}

/* Only the two native body widgets with remaining Arial defaults. */
body.ahds-harmonised .elementor-element.elementor-widget-text-editor:is(.elementor-element-3d41455,.ah-admissions-intro):not(:where(.ahds-keep-style,.ahds-keep-style *)),
body.ahds-harmonised .elementor-element.elementor-widget-text-editor:is(.elementor-element-3d41455,.ah-admissions-intro):not(:where(.ahds-keep-style,.ahds-keep-style *)) p {
 font-family: var(--ahds-font-body);
 font-size: var(--ahds-body);
 font-weight: var(--ahds-weight-regular);
 line-height: var(--ahds-leading-body);
 letter-spacing: var(--ahds-tracking-body);
}
body.ahds-harmonised .ah-s2-menu-nav:not(:where(.ahds-keep-style,.ahds-keep-style *)) a {font-family:var(--ahds-font-body)}

/* Final Admissions CTA: text scale only; layout, padding and colours are retained. */
body.ahds-harmonised .elementor-element.elementor-widget-button:is(.elementor-element-0e84e8f,.elementor-element-5784b0c,.elementor-element-7598666):not(:where(.ahds-keep-style,.ahds-keep-style *)) .elementor-button {
 font-family: var(--ahds-font-body);
 font-size: var(--ahds-button);
 font-weight: var(--ahds-weight-bold);
 line-height: var(--ahds-leading-label);
 letter-spacing: var(--ahds-tracking-button);
}

/* Component exceptions: replace old gold chrome with blue/white palette. */
body.ahds-harmonised .ah-header .ah-button--gold:not(:where(.ahds-keep-style,.ahds-keep-style *)) {background:var(--ahds-blue);color:var(--ahds-white)}
body.ahds-harmonised .ah-header .ah-button--gold:not(:where(.ahds-keep-style,.ahds-keep-style *)):is(:hover,:focus-visible) {background:var(--ahds-deep);color:var(--ahds-white)}
body.ahds-harmonised .ah-site-footer:not(:where(.ahds-keep-style,.ahds-keep-style *)) {border-top-color:var(--ahds-sky)}
body.ahds-harmonised .ah-site-footer :is(.ah-site-footer__tagline,.ah-site-footer__top,.ah-site-footer__story-label):not(:where(.ahds-keep-style,.ahds-keep-style *)) {color:var(--ahds-sky)}
/* Existing footer top link consumes this variable; its legacy fallback is kept. */
body.ahds-harmonised .ah-site-footer__top:not(:where(.ahds-keep-style,.ahds-keep-style *)) {--ah-footer-top-color:var(--ahds-sky)}
body.ahds-harmonised .ah-site-footer__middle .ah-site-footer__column h2:not(:where(.ahds-keep-style,.ahds-keep-style *)) {color:var(--ahds-sky)}
body.ahds-harmonised .ah-site-footer__column h2:not(:where(.ahds-keep-style,.ahds-keep-style *))::after {background:var(--ahds-sky)}
body.ahds-harmonised .ah-site-footer__visit:not(:where(.ahds-keep-style,.ahds-keep-style *)) {background:var(--ahds-mist)}
body.ahds-harmonised .ah-site-footer__story a:not(:where(.ahds-keep-style,.ahds-keep-style *)) {border-color:var(--ahds-sky);color:var(--ahds-sky)}
body.ahds-harmonised .ah-site-footer__bottom:not(:where(.ahds-keep-style,.ahds-keep-style *)) {border-top-color:var(--ahds-sky)}
body.ahds-harmonised .ah-site-footer a:not(:where(.ahds-keep-style,.ahds-keep-style *)):hover {color:var(--ahds-sky)}
body.ahds-harmonised .ah-site-footer :is(a,button,input):not(:where(.ahds-keep-style,.ahds-keep-style *)):focus-visible {outline-color:var(--ahds-sky)}
