/* Approved Adam Centre service navigation and homepage, September 2026.
   Keep this separate from Baseline and the site's legacy CDE styles. */
.ac-header {
    --ac-service-colour: var(--ac-meteorite);
    --ac-header-height: 140px;
}
.baseline .ac-header {
    position: relative;
    z-index: 100;
    background: #fff;
}
.baseline .ac-header-row {
    display: flex;
    align-items: center;
    min-height: var(--ac-header-height);
    padding: 0 3.8%;
    background: #fff;
}
.ac-header .ac-brand {
    position: absolute;
    top: -12px;
    left: 0;
    width: clamp(180px, 16vw, 230px);
    aspect-ratio: 1;
    box-sizing: border-box;
    padding: 25px;
    border: 0;
    border-radius: 50%;
    background: #fff;
    z-index: 2;
}
.ac-brand .ac-logo-image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.ac-navigation {
    flex: 1;
    margin-left: clamp(220px, 28vw, 400px);
}
.ac-header ul {
    margin: 0;
    padding: 0;
    list-style: none;
}
.ac-header .ac-navigation-list {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}
.ac-header .ac-navigation-list > li {
    margin: 0;
    padding: 0;
    float: none;
}
.ac-header a,
.ac-header summary {
    color: #111;
    font-family: 'Avenir Next LT W01 Medium', sans-serif;
    font-size: 19px;
    line-height: 1.4;
    text-decoration: none;
    border: 0;
}
.ac-navigation-list > li > a,
.ac-service-disclosure > summary {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 0;
    white-space: nowrap;
    min-height: 48px;
    box-sizing: border-box;
}
.ac-header .current-menu-item > a {
    color: #ae5900;
    font-family: 'Avenir Next LT W01 Bold', sans-serif;
}
.ac-service-home { --ac-service-colour: var(--ac-fandango); }
.ac-service-disclosure > summary {
    list-style: none;
    cursor: pointer;
    border-bottom: 4px solid transparent;
}
.ac-service-disclosure > summary::-webkit-details-marker { display: none; }
.ac-service-disclosure > summary img {
    width: 22px;
    height: 22px;
    object-fit: contain;
}
.ac-service-disclosure[open] > summary,
.ac-current-section > details > summary {
    border-bottom-color: var(--ac-service-colour);
}
.ac-chevron {
    display: inline-block;
    width: 6px;
    height: 6px;
    margin: 0 3px 4px;
    border: solid var(--ac-meteorite);
    border-width: 0 1px 1px 0;
    transform: rotate(45deg);
}
.ac-service-disclosure[open] > summary .ac-chevron { transform: translateY(3px) rotate(225deg); }
.ac-header .ac-navigation-list > li.button {
    background: transparent;
    border: 0;
    height: auto;
    letter-spacing: normal;
}
.ac-header .ac-navigation-list > li.button > a,
.ac-header .ac-mega-callout .button {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
    min-height: 48px;
    padding: 13px 26px;
    background: var(--ac-fandango);
    color: #fff;
    font-size: 15px;
    line-height: 1.35;
    letter-spacing: 0;
    text-transform: uppercase;
    border-radius: 0;
    border: 0;
    white-space: normal;
    text-align: center;
}
.ac-header a:hover,
.ac-header summary:hover { color: var(--ac-service-colour); }
.ac-header .ac-navigation-list > li.button > a:hover { background: var(--ac-meteorite); color: #fff; }
.ac-header :is(a, button, summary):focus-visible,
#main-service-cards a:focus-visible {
    outline: 3px solid var(--ac-meteorite);
    outline-offset: 5px;
}
.ac-mega-panel {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #fff;
    border-top: 1px solid #ededed;
    box-shadow: 0 10px 15px rgb(0 0 0 / 5%);
    max-height: calc(100dvh - var(--ac-header-height) - 32px);
    overflow-y: auto;
    overscroll-behavior: contain;
}
.ac-mega-inner {
    display: grid;
    grid-template-columns: 1.08fr 1fr .97fr;
    align-items: start;
    gap: clamp(32px, 4.2vw, 64px);
    padding: 44px 3.3% 40px 18%;
    min-height: 374px;
    box-sizing: border-box;
}
.ac-mega-intro { padding-top: 18px; }
.ac-mega-intro .ac-service-icon {
    display: block;
    width: 48px;
    height: 42px;
    object-fit: contain;
    object-position: left center;
    margin-bottom: 24px;
}
.ac-header .ac-mega-intro h2 {
    font-family: 'Montserrat', sans-serif;
    font-size: clamp(34px, 3vw, 44px);
    line-height: 1.2;
    margin: 0 0 18px;
    color: #000;
}
.ac-mega-intro p {
    font-size: 23px;
    line-height: 1.3;
    max-width: 290px;
    margin: 0;
}
.ac-service-links > li { border-bottom: 1px solid #e8e8e8; margin: 0; }
.ac-service-links a {
    display: block;
    padding: 15px 0;
    line-height: 1.3;
}
.ac-service-links a::after,
#main-service-cards .button::after {
    content: '';
    display: inline-block;
    width: 20px;
    height: 20px;
    vertical-align: middle;
    margin-left: 12px;
    background-color: var(--ac-service-colour, var(--ac-meteorite));
    mask: url('../brand/arrow-right.svg') center / contain no-repeat;
}
.ac-service-links .sub-menu {
    padding-left: 20px;
    position: static;
    display: block;
}
.ac-mega-callout {
    background: var(--ac-white-smoke);
    padding: 36px 35px 34px;
}
.ac-header .ac-mega-callout h3 {
    margin: 0 0 12px;
    font-family: 'Avenir Next LT W01 Medium', sans-serif;
    font-size: 25px;
    font-weight: 400;
    line-height: 1.25;
    color: #111;
}
.ac-mega-callout p { font-size: 18px; line-height: 1.3; margin: 0 0 26px; }
.ac-header .ac-mega-callout .button { width: 100%; background: var(--ac-service-colour); }
.ac-header .ac-mega-callout .button:hover { background: #24215c; color: #fff; }
.ac-header .ac-nav-toggle { display: none; }
.ac-header .ac-navigation[hidden] { display: none; }

/* Existing CDE hero and two-column content remain editable in the page.
   Legacy CDE's implicit grid track otherwise grows to its min-content width. */
.home .cde-flex-content:has(#main-service-cards) {
    grid-template-columns: minmax(0, 1fr);
}
.home #home-hero.flex-elm {
    height: auto;
    min-height: 0;
    margin-top: 0;
    margin-bottom: 0;
}
.home #home-hero .wrapper {
    min-height: 782px;
    height: auto;
    background-position: center bottom;
    isolation: isolate;
}
.home #home-hero .wrapper::after {
    content: '';
    position: absolute;
    inset: 34% 0 0;
    background: linear-gradient(transparent, rgb(0 0 0 / 35%) 75%);
    z-index: -1;
    pointer-events: none;
}
.home #home-hero .container {
    width: 85%;
    max-width: 1440px;
    height: auto;
    padding-top: 308px;
    padding-bottom: 248px;
    box-sizing: border-box;
    position: relative;
    z-index: 3;
}
.home #home-hero .inner {
    margin-bottom: 0;
    max-width: 640px;
}
.home #home-hero h1 {
    font-size: clamp(38px, 3.5vw, 52px);
    line-height: 1.2;
    margin: 0 0 34px;
}
.home #home-hero h1 em { padding: 6px 14px 10px; }
.home #home-hero .inner > p {
    color: #fff;
    font-size: 23px;
    line-height: 1.3;
    max-width: 530px;
    margin: 0;
}
.home #home-hero .hero_active {
    width: 25.6%;
    height: auto;
    aspect-ratio: 4 / 5;
    z-index: 2;
}
.home #main-service-cards.flex-elm {
    position: relative;
    z-index: 4;
    margin-top: -212px;
    margin-bottom: 100px;
}
.home .container:has(> #main-service-cards),
.home .container:has(> #home-intro) {
    width: 85%;
    max-width: 1440px;
}
#main-service-cards > .inner {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: clamp(30px, 5vw, 72px);
    row-gap: 30px;
    align-items: stretch;
}
#main-service-cards :is(.left-col, .right-col) {
    --ac-service-colour: var(--ac-meteorite);
    display: flex;
    flex-direction: column;
    width: auto;
    min-width: 0;
    padding: 40px 43px 50px;
    margin: 0;
    background: #fff;
    border: 1px solid #d7d7d7;
    border-top: 12px solid var(--ac-service-colour);
    box-sizing: border-box;
}
#main-service-cards .right-col {
    --ac-service-colour: var(--ac-fandango);
    border-right-color: #efd4e9;
    border-bottom-color: #efd4e9;
    border-left-color: #efd4e9;
}
#main-service-cards :is(.left-col, .right-col)::before {
    content: '';
    display: block;
    width: 48px;
    height: 42px;
    margin-bottom: 20px;
    background: var(--ac-day-icon) left center / contain no-repeat;
}
#main-service-cards .right-col::before { background-image: var(--ac-home-icon); }
.baseline #main-service-cards h2 {
    font-family: 'Avenir Next LT W01 Bold', sans-serif;
    font-size: 32px;
    line-height: 1.2;
    margin: 0 0 18px;
}
#main-service-cards p { font-size: 23px; line-height: 1.3; margin: 0 0 22px; }
#main-service-cards p:last-child { margin-top: auto; margin-bottom: 0; padding-top: 16px; }
.baseline #main-service-cards .button {
    display: inline-flex;
    align-items: center;
    gap: 0;
    padding: 14px 28px;
    min-height: 48px;
    height: auto;
    margin: 0;
    background: var(--ac-service-colour);
    color: #fff;
    font-size: 15px;
    line-height: 1.3;
    letter-spacing: 0;
    text-transform: uppercase;
    border: 0;
    border-radius: 0;
    white-space: normal;
}
#main-service-cards .button::after { width: 30px; height: 24px; background-color: #fff; opacity: .6; }
.baseline #main-service-cards .button:hover { background: #24215c; color: #fff; }

@media (min-width: 981px) and (max-width: 1199px) {
    .ac-navigation { margin-left: 190px; }
    .ac-header .ac-navigation-list { gap: 18px; }
    .ac-header a, .ac-header summary { font-size: 17px; }
    .ac-mega-inner { padding-left: 5%; grid-template-columns: 1fr 1fr 1fr; }
    .ac-mega-callout { padding: 28px 24px; }
}
@media (max-width: 980px) {
    .ac-header { --ac-header-height: 110px; }
    .baseline .ac-header-row { flex-wrap: wrap; padding: 0 5%; }
    .ac-header .ac-brand { top: -8px; width: 152px; padding: 18px; }
    .ac-header .ac-nav-toggle {
        margin: 28px 0 28px auto;
        min-height: 48px;
        align-items: center;
        gap: 16px;
        background: var(--ac-meteorite);
        color: #fff;
        padding: 12px 18px;
        font-size: 16px;
        line-height: 1.4;
        letter-spacing: 0;
        border: 0;
        border-radius: 0;
    }
    .ac-nav-ready .ac-nav-toggle { display: inline-flex; }
    .ac-menu-symbol { width: 20px; height: 14px; border-block: 2px solid currentColor; position: relative; }
    .ac-menu-symbol::after { content: ''; position: absolute; top: 50%; left: 0; width: 100%; border-top: 2px solid currentColor; transform: translateY(-50%); }
    .ac-navigation { flex-basis: 100%; margin: 0; padding: 24px 0; }
    .ac-header:not(.ac-nav-ready) .ac-navigation { padding-top: 150px; }
    .ac-header .ac-navigation-list { display: block; }
    .ac-navigation-list > li > a,
    .ac-service-disclosure > summary { min-height: 56px; padding: 14px 0; white-space: normal; font-size: 20px; }
    .ac-header .ac-navigation-list > li { border-bottom: 1px solid #e5e5e5; }
    .ac-header .ac-navigation-list > li.button { margin-top: 20px; border-bottom: 0; }
    .ac-header .ac-navigation-list > li.button > a { width: 100%; }
    .ac-chevron { margin-left: auto; margin-right: 10px; }
    .ac-mega-panel { position: static; max-height: none; overflow: visible; border: 0; box-shadow: none; }
    .ac-mega-inner { grid-template-columns: 1fr 1fr; min-height: 0; padding: 22px 0 30px; gap: 24px; }
    .ac-mega-intro { padding-top: 0; }
    .ac-mega-intro .ac-service-icon { display: none; }
    .ac-header .ac-mega-intro h2 { font-size: 30px; }
    .ac-mega-intro p { font-size: 20px; }
    .ac-mega-links { grid-column: 1; }
    .ac-mega-callout { grid-column: 2; grid-row: 1 / span 2; padding: 26px; }
    .ac-service-links a { font-size: 19px; }
    .home #home-hero .wrapper { min-height: 700px; }
    .home #home-hero .container { padding-top: 290px; padding-bottom: 205px; width: 90%; }
    .home #home-hero .hero_active { width: 32%; }
    .home #home-hero .inner { max-width: 580px; }
    .home #home-hero h1 { font-size: clamp(34px, 4.7vw, 46px); }
    .home #home-hero .inner > p { font-size: 21px; }
    .home .container:has(> #main-service-cards), .home .container:has(> #home-intro) { width: 90%; }
    .home #main-service-cards.flex-elm { margin-top: -140px; margin-bottom: 65px; }
    #main-service-cards :is(.left-col, .right-col) { padding: 28px 25px 32px; }
    .baseline #main-service-cards h2 { font-size: 27px; }
    #main-service-cards p { font-size: 20px; }
    .baseline #main-service-cards .button { padding: 13px 18px; font-size: 14px; }
}
@media (max-width: 600px) {
    .ac-mega-inner { display: block; }
    .ac-mega-intro { margin-bottom: 16px; }
    .ac-mega-intro p { max-width: none; }
    .ac-mega-callout { margin-top: 24px; }
    .ac-header .ac-mega-callout h3 { font-size: 24px; }
    .home #home-hero .wrapper { min-height: 0; }
    .home #home-hero .container { padding-top: 255px; padding-bottom: 115px; }
    .home #home-hero .hero_active { width: 46%; }
    .home #home-hero .hero_active div img { max-width: 6vw; max-height: 6vw; }
    .home #home-hero h1 { font-size: clamp(27px, 6.8vw, 38px); line-height: 1.27; margin-bottom: 28px; }
    .home #home-hero h1 em { padding: 5px 7px 7px; }
    .home #home-hero .inner > p { font-size: 20px; }
    .home #main-service-cards.flex-elm { margin-top: -65px; margin-bottom: 55px; }
    #main-service-cards > .inner { grid-template-columns: minmax(0, 1fr); gap: 24px; }
    #main-service-cards :is(.left-col, .right-col) { border-top-width: 9px; padding: 28px 25px 32px; }
    .baseline #main-service-cards h2 { font-size: 28px; }
}
@media (prefers-reduced-motion: reduce) {
    #home-hero [data-aos] { opacity: 1; transform: none; transition: none; animation: none; }
}
