/*
 * Level 7 Diploma landing page (page 391, /level-7-diploma/). 0.1.50, DEC-97.
 *
 * Every rule is scoped under .aa-l7, the wrapper the template prints, so nothing here can
 * reach the Elementor header, footer or any other surface. Tokens mirror the approved
 * homepage (src/index.html). Keyframes carry an l7- prefix for the same reason.
 * Loaded only on the Level 7 route (Level7Template::enqueue).
 *
 * 0.2.1 (T-0201, client feedback round 3): navy hero and the fee card in the flow (L1, L5), the logo row and a
 * one-style blue banner (L3, L6), the benefits list (L9), the static components grid in place of the scroll stage
 * (L10), the enrolment line in place of the notice (L13), the mid-page review (L14), a closable sticky bar that is
 * fully hidden when hidden (L5). The video, the fork drawing and the rejoin line are gone with their markup.
 *
 * 0.2.5 (T-0205, HQ qa run 16 Oct): the reveal never hides content (see "Reveal on scroll"); no text under 12px
 * (every label that was .56rem to .74rem is .75rem); headline italics on light backgrounds in --gold-text #8F784C
 * (3.67:1 on cream, 4.05:1 on paper; the brand gold #A0895E was 2.92:1 on cream); the route length chips in a
 * darker ink (5.12:1); the "Signed off" stamp lands at full strength (was 85 %, 4.04:1); the section numbers are
 * drawn from data-n (decoration, not text); the breadcrumb link is 44px tall on phones.
 */

/* Vendor-proof control reset (0.1.49, kept). The site's Elementor kit paints every bare <button> on hover and
   focus (post-6.css: .elementor-kit-6 button:focus { background-color: var(--e-global-color-uicore_secondary) })
   and the parent theme's reset.css gives buttons a #c36 border and a pink hover. Both sit at (0,2,1) or
   below; these rules match them and load later, and every styled control in this file outranks them. */
.aa-l7 button, .aa-l7 button:hover, .aa-l7 button:focus, .aa-l7 button:active { background: transparent; background-color: transparent; border: 0; border-radius: 0; box-shadow: none; padding: 0; margin: 0; font: inherit; color: inherit; text-transform: none; letter-spacing: normal; line-height: inherit; text-decoration: none; transition: none; }
.aa-l7 a, .aa-l7 a:hover, .aa-l7 a:focus { text-decoration: none; }
/* =====================================================================
       Level 7 Diploma landing page, v2. Local redesign, 2026-09-17.
       Tokens, type and shell match the approved homepage (src/index.html).
       Every figure and sentence is the live page's own copy.
       ===================================================================== */

    .aa-l7 {
      --navy: #262E4D; --navy-deep: #1A2038; --navy-900: #12172B;
      --gold: #A0895E; --gold-ink: #7E6531; --gold-light: #C4AC82; --gold-pale: #E9DFCB; --gold-text: #8F784C; --gold-ink-deep: #6F5829;
      --gold-wash: rgba(160, 137, 94, 0.10);
      --blue: #3F63C9; --blue-light: #8FB4FF;
      --paper: #FBFAF8; --cream: #F3EEE7; --cream-2: #ECE5D8; --white: #FFFFFF;
      --text-main: #33363F; --text-muted: #6E6B62;
      --border: rgba(38, 46, 77, 0.10); --border-strong: rgba(38, 46, 77, 0.18);
      --on-navy: #D6D9E3; --on-navy-muted: #AEB4C6;
      --font-serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
      --font-sans: 'Jost', system-ui, -apple-system, 'Segoe UI', sans-serif;
      --font-body: 'Source Sans 3', 'Source Sans Pro', system-ui, -apple-system, sans-serif;
      --max-w: 1240px; --px: clamp(1.25rem, 5vw, 3.5rem); --py: clamp(4.5rem, 9vw, 8.5rem);
      --radius: 16px; --radius-sm: 8px; --header-bar-h: 77px; --header-h: calc(var(--header-bar-h) + var(--aa-l7-admin-bar-h, 0px)); --jump-h: 56px;
      --shadow-card: 0 1px 2px rgba(18, 23, 43, 0.04), 0 24px 60px -30px rgba(18, 23, 43, 0.25);
      --shadow-float: 0 40px 80px -30px rgba(18, 23, 43, 0.45), 0 2px 6px rgba(18, 23, 43, 0.06);
      --ease: cubic-bezier(0.25, 1, 0.5, 1); --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
    }

    .aa-l7 *, .aa-l7 *::before, .aa-l7 *::after { margin: 0; padding: 0; box-sizing: border-box; }
    
    .aa-l7 { font-family: var(--font-body); color: var(--text-main); background: var(--paper); line-height: 1.6; font-size: 1.02rem; overflow-x: clip; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
    .aa-l7 img, .aa-l7 svg { max-width: 100%; display: block; }
    .aa-l7 a { text-decoration: none; color: inherit; }
    .aa-l7 ul, .aa-l7 ol { list-style: none; }
    .aa-l7 button { background: none; border: none; font: inherit; cursor: pointer; color: inherit; }
    .aa-l7 strong { font-weight: 600; }
    .aa-l7 :focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
    .aa-l7 section[id] { scroll-margin-top: calc(var(--header-h) + var(--jump-h) + 8px); }
    .aa-l7 .skip { position: absolute; left: -999px; top: 0; background: var(--navy); color: #fff; padding: .7rem 1rem; z-index: 500; }
    .aa-l7 .skip:focus { left: 1rem; top: 1rem; }
    @media (prefers-reduced-motion: reduce) {  .aa-l7 *, .aa-l7 *::before, .aa-l7 *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; } }

    /* ===== Type ===== */
    .aa-l7 h1, .aa-l7 h2, .aa-l7 h3, .aa-l7 h4 { font-family: var(--font-serif); color: var(--navy); line-height: 1.04; font-weight: 500; }
    .aa-l7 .h1 { font-size: clamp(3rem, 6.6vw, 5.8rem); letter-spacing: -0.02em; text-wrap: balance; }
    .aa-l7 .h2 { font-size: clamp(2.4rem, 4.8vw, 3.9rem); letter-spacing: -0.015em; text-wrap: balance; }
    .aa-l7 .h3 { font-size: clamp(1.6rem, 2.6vw, 2.15rem); letter-spacing: -0.01em; }
    .aa-l7 .h4 { font-size: 1.35rem; }
    .aa-l7 em { font-style: italic; color: var(--gold-text); }
    .aa-l7 .lead { font-size: clamp(1.12rem, 1.55vw, 1.3rem); color: var(--text-muted); max-width: 54ch; line-height: 1.55; }
    .aa-l7 .muted { color: var(--text-muted); }
    .aa-l7 p + p { margin-top: 1em; }
    .aa-l7 .eyebrow { display: inline-flex; align-items: center; gap: 0.75rem; font-family: var(--font-sans); text-transform: uppercase; letter-spacing: 0.22em; font-size: 0.75rem; font-weight: 600; color: var(--gold-ink); margin-bottom: 1.25rem; }
    .aa-l7 .eyebrow::before { content: ''; width: 28px; height: 1px; background: var(--gold); flex: none; }
    .aa-l7 .on-dark .eyebrow, .aa-l7 .eyebrow.on-dark { color: var(--gold-light); }
    .aa-l7 .on-dark .eyebrow::before, .aa-l7 .eyebrow.on-dark::before { background: var(--gold-light); }
    .aa-l7 .label { font-family: var(--font-sans); text-transform: uppercase; letter-spacing: 0.16em; font-size: 0.75rem; font-weight: 600; color: var(--gold-ink); }
    .aa-l7 .on-dark .label { color: var(--gold-light); }
    .aa-l7 .kicker { font-family: var(--font-serif); font-style: italic; font-size: clamp(1.25rem, 2vw, 1.55rem); color: var(--text-muted); }

    .aa-l7 .wrap { max-width: var(--max-w); margin: 0 auto; padding-inline: var(--px); }
    .aa-l7 .section { padding-block: var(--py); position: relative; }
    .aa-l7 .section-cream { background: var(--cream); }
    .aa-l7 .on-dark { background: var(--navy); color: var(--on-navy); }
    .aa-l7 .on-dark h1, .aa-l7 .on-dark h2, .aa-l7 .on-dark h3, .aa-l7 .on-dark h4 { color: var(--white); }
    .aa-l7 .on-dark em { color: var(--gold-light); }
    .aa-l7 .on-dark .lead, .aa-l7 .on-dark .muted { color: var(--on-navy); }

    /* ===== Buttons ===== */
    .aa-l7 .btn { position: relative; overflow: hidden; display: inline-flex; align-items: center; justify-content: center; gap: 0.6rem; min-height: 54px; padding: 0 1.9rem; border-radius: var(--radius-sm); background: var(--navy); color: var(--white); font-family: var(--font-sans); font-weight: 600; font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; white-space: nowrap; transition: background .3s var(--ease), transform .3s var(--ease), box-shadow .3s var(--ease); }
    .aa-l7 .btn::after { content: ''; position: absolute; top: 0; left: -60%; width: 40%; height: 100%; background: linear-gradient(100deg, transparent, rgba(255,255,255,0.18), transparent); transform: skewX(-20deg); transition: left .6s var(--ease); }
    .aa-l7 .btn:hover { background: var(--navy-deep); transform: translateY(-2px); box-shadow: 0 14px 30px -14px rgba(18,23,43,0.6); }
    .aa-l7 .btn:hover::after { left: 120%; }
    .aa-l7 .btn-gold { background: var(--gold); color: var(--navy-900); }
    .aa-l7 .btn-gold:hover { background: var(--gold-light); }
    .aa-l7 .btn-ghost { background: transparent; color: var(--navy); box-shadow: inset 0 0 0 1.5px var(--navy); }
    .aa-l7 .btn-ghost:hover { background: var(--navy); color: var(--white); }
    .aa-l7 .btn-light { background: var(--white); color: var(--navy); }
    .aa-l7 .btn-light:hover { background: var(--cream); }
    .aa-l7 .btn-ghost-light { background: transparent; color: var(--white); box-shadow: inset 0 0 0 1.5px rgba(255,255,255,0.35); }
    .aa-l7 .btn-ghost-light:hover { background: rgba(255,255,255,0.08); }
    .aa-l7 .btn-block { width: 100%; }
    .aa-l7 .arrow { display: inline-flex; align-items: center; gap: 0.55rem; font-family: var(--font-sans); font-weight: 600; font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--navy); border-bottom: 1px solid var(--gold); padding-bottom: 5px; }
    .aa-l7 .arrow svg { width: 14px; height: 14px; transition: transform .35s var(--ease); }
    .aa-l7 .arrow:hover svg { transform: translateX(4px); }
    .aa-l7 .on-dark .arrow { color: var(--white); }
    .aa-l7 .link { color: var(--navy); border-bottom: 1px solid var(--gold); }
    .aa-l7 .link:hover { color: var(--gold-ink); }
    .aa-l7 .on-dark .link { color: var(--white); }

    /* ===== Shared ===== */
    .aa-l7 .card { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow-card); }
    .aa-l7 .check-list { display: flex; flex-direction: column; gap: 0.7rem; }
    .aa-l7 .check-list li { display: grid; grid-template-columns: 20px 1fr; gap: 0.8rem; align-items: start; line-height: 1.45; }
    .aa-l7 .check-list svg { width: 20px; height: 20px; margin-top: 2px; color: var(--gold); }
    .aa-l7 .on-dark .check-list svg { color: var(--gold-light); }
    .aa-l7 .enrol-note { margin-top: 1.25rem; padding: 0.85rem 1rem; border-left: 3px solid var(--gold); background: var(--cream); border-radius: 0 var(--radius-sm) var(--radius-sm) 0; font-size: 0.95rem; line-height: 1.5; color: var(--text-main); }
    .aa-l7 .price { display: flex; align-items: baseline; gap: 0.45rem; font-family: var(--font-serif); color: var(--navy); line-height: 1; }
    .aa-l7 .price__amount { font-size: 2.9rem; font-weight: 500; letter-spacing: -0.01em; }
    .aa-l7 .price__pence { font-size: 1.15rem; color: var(--text-muted); }
    .aa-l7 .price__vat { font-family: var(--font-sans); font-size: 0.75rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--text-muted); margin-left: 0.15rem; }
    .aa-l7 .on-dark .price { color: var(--white); }

    /* Reveal on scroll.
       0.2.5 (T-0205, QA D.visible and H.tabbable): a block is visible by default. It is hidden only while the
       script has armed the reveal (.is-reveal-armed, set by level-7.js once its observer exists), the block has
       not been revealed (.is-in) and it does not hold keyboard focus (:focus-within), so Tab never lands on a
       button at opacity 0. Revealing is instant, as in 0.2.4 (whose .is-in rule set transition: none). The 0.2.4
       rule that undid the hidden state with forced declarations is gone: a revealed block is never hidden. */
    .aa-l7.is-reveal-armed [data-reveal]:not(.is-in):not(:focus-within) { opacity: 0; transform: translateY(28px); }
    .aa-l7.is-reveal-armed [data-reveal="scale"]:not(.is-in):not(:focus-within) { transform: scale(.94) translateY(16px); }
    /* A block that takes focus shows at once, without the opacity fade some blocks have of their own (.fee, .5s). */
    .aa-l7.is-reveal-armed [data-reveal]:focus-within { transition: none; }
    .aa-l7.static *, .aa-l7.static *::before, .aa-l7.static *::after { animation-duration: 0s !important; animation-delay: 0s !important; transition-duration: 0s !important; }

    /* Section watermark numbers */
    .aa-l7 .stop { position: relative; }
    .aa-l7 .wm { position: absolute; right: var(--px); top: 0; font-family: var(--font-serif); font-size: clamp(8rem, 18vw, 17rem); line-height: 1; font-weight: 500; color: var(--navy); opacity: 0.045; pointer-events: none; user-select: none; letter-spacing: -0.04em; transform: translateY(-20%); }
    .aa-l7 .on-dark .wm { color: var(--white); opacity: 0.05; }
    .aa-l7 .wm::before { content: attr(data-n); }

    /* ===== Hero ===== */
    .aa-l7 .hero { position: relative; padding-block: clamp(2rem, 4vw, 3.5rem) clamp(3.5rem, 7vw, 6rem); overflow: hidden; background: linear-gradient(160deg, var(--navy) 0%, var(--navy-deep) 100%); }
    .aa-l7 .hero::before { content: ''; position: absolute; top: -20%; right: -10%; width: 60vw; height: 60vw; max-width: 900px; max-height: 900px; background: radial-gradient(closest-side, rgba(160,137,94,0.14), transparent 70%); pointer-events: none; }
    .aa-l7 .crumbs { display: flex; align-items: center; gap: 0.6rem; font-family: var(--font-sans); font-size: 0.78rem; color: var(--text-muted); margin-bottom: clamp(2rem, 4vw, 3.5rem); }
    .aa-l7 .crumbs a { color: var(--navy); border-bottom: 1px solid var(--border-strong); }
    .aa-l7 .crumbs span[aria-hidden] { color: var(--border-strong); }
    .aa-l7 .hero__grid { display: grid; grid-template-columns: 1fr; gap: 3rem; align-items: center; }
    @media (min-width: 1024px) { .aa-l7 .hero__grid { grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); gap: clamp(3rem, 7vw, 7rem); } }
    .aa-l7 .hero__copy .lead { margin-top: 1.75rem; }
    /* 0.2.1 (T-0201, L1): the hero is navy; its own text colours. */
    .aa-l7 .hero .crumbs { color: var(--on-navy-muted); }
    .aa-l7 .hero .crumbs a { color: var(--white); border-bottom-color: rgba(255,255,255,0.35); }
    .aa-l7 .hero .crumbs span[aria-hidden] { color: rgba(255,255,255,0.35); }
    /* 0.2.5 (T-0205, QA C.tap): on phones the breadcrumb link is a 44px tap target; its line becomes an underline so it
       stays under the word, not at the foot of the taller box. */
    @media (max-width: 639px) { .aa-l7 .hero .crumbs a { display: inline-flex; align-items: center; min-height: 44px; border-bottom: 0; text-decoration: underline; text-decoration-color: rgba(255,255,255,0.35); text-underline-offset: 4px; } }
    .aa-l7 .hero .hero__opening { color: var(--white); max-width: 58ch; }
    .aa-l7 .hero__more { margin-top: 1rem; max-width: 58ch; color: var(--on-navy); }
    .aa-l7 .hero .hero__facts { border-top-color: rgba(255,255,255,0.18); }
    .aa-l7 .hero .hero__facts dt { color: var(--gold-light); }
    .aa-l7 .hero .hero__facts dd { color: var(--white); }
    .aa-l7 .hero .arrow { color: var(--white); }
    .aa-l7 .hero__facts { display: grid; grid-template-columns: repeat(2, auto); justify-content: start; gap: 1.1rem 3rem; margin-top: 2.25rem; padding-top: 1.75rem; border-top: 1px solid var(--border-strong); }
    .aa-l7 .hero__facts div { min-width: 0; }
    .aa-l7 .hero__facts dt { font-family: var(--font-sans); font-size: 0.75rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--gold-ink); font-weight: 600; margin-bottom: 0.25rem; white-space: nowrap; }
    .aa-l7 .hero__facts dd { font-family: var(--font-serif); font-size: 1.45rem; font-weight: 600; color: var(--navy); line-height: 1.1; }
    .aa-l7 .hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.85rem 1rem; margin-top: 2.25rem; }
    .aa-l7 .hero__actions .arrow { margin-left: 0.5rem; }
    @media (max-width: 639px) { .aa-l7 .hero__actions .btn { width: 100%; } .aa-l7 .hero__actions .arrow { margin: 0.5rem 0 0; } }

    .aa-l7 .hero__visual { position: relative; }
    .aa-l7 .hero__photo { position: relative; aspect-ratio: 4 / 3; border-radius: 24px; overflow: hidden; box-shadow: var(--shadow-float); }
    .aa-l7 .hero__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 62% 30%; transform: scale(1.06); animation: l7-kenburns 14s var(--ease) forwards; }
    @keyframes l7-kenburns { to { transform: scale(1); } }
    .aa-l7 .hero__photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(18,23,43,0.55), transparent 55%); }
    .aa-l7 .hero__tag { position: absolute; top: 1.25rem; left: 1.25rem; z-index: 2; display: inline-flex; align-items: center; gap: 0.6rem; padding: 0.55rem 0.9rem; border-radius: 999px; background: rgba(251,250,248,0.9); backdrop-filter: blur(8px); font-family: var(--font-sans); font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 600; color: var(--navy); }
    .aa-l7 .hero__tag i { width: 7px; height: 7px; border-radius: 50%; background: var(--gold); }
    .aa-l7 .hero__caption { position: absolute; left: 1.5rem; right: 1.5rem; bottom: 1.5rem; z-index: 2; color: #fff; font-family: var(--font-serif); font-size: 1.25rem; line-height: 1.25; max-width: 22ch; text-shadow: 0 2px 12px rgba(0,0,0,0.3); }
    .aa-l7 .fee-card { padding: clamp(1.5rem, 2.4vw, 2rem); }
    /* 0.2.1 (T-0201, L5): the fee card used to float over the photograph (absolute at 1024px and wider, a negative
       margin below), so it read as a pop-up that could not be closed. It now sits in the flow under the photo. */
    .aa-l7 .fee-card { margin-top: 1.25rem; color: var(--text-main); }
    .aa-l7 .hero .fee-card .label { color: var(--gold-ink); }
    .aa-l7 .hero .fee-card .check-list svg { color: var(--gold); }
    .aa-l7 .fee-card .label { display: block; margin-bottom: 0.6rem; }
    .aa-l7 .fee-card .price { padding-bottom: 1.2rem; border-bottom: 1px solid var(--border); margin-bottom: 1.2rem; }
    .aa-l7 .fee-card .check-list { margin-bottom: 1.4rem; font-size: 0.95rem; gap: 0.55rem; }
    .aa-l7 .fee-card .enrol-note { margin: 0 0 1rem; }
    .aa-l7 .fee-card__phone { text-align: center; font-size: 0.88rem; color: var(--text-muted); margin-top: 0.9rem; }
    .aa-l7 .fee-card__phone a { color: var(--navy); font-weight: 600; border-bottom: 1px solid var(--gold); }

    /* ===== Logo row (0.2.1, L3: above the blue banner) ===== */
    .aa-l7 .logos { background: var(--white); border-bottom: 1px solid var(--border); padding-block: clamp(1.5rem, 3vw, 2.25rem); }
    .aa-l7 .logos__inner { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 2rem; }
    .aa-l7 .logos__label { color: var(--text-muted); }
    .aa-l7 .logos__list { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem clamp(1.25rem, 3vw, 2.5rem); }
    .aa-l7 .logos__list img { height: 52px; width: auto; max-width: 150px; object-fit: contain; }
    .aa-l7 .logos__award img { background: var(--navy); border-radius: 6px; padding: 5px 9px; }
    @media (max-width: 639px) { .aa-l7 .logos__label { width: 100%; } .aa-l7 .logos__list img { height: 40px; max-width: 120px; } }

    /* ===== Blue banner (0.2.1, L6): three statements, one type family, one size per line ===== */
    .aa-l7 .proof { padding-block: clamp(2rem, 3.5vw, 3rem); }
    .aa-l7 .proof__grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
    @media (min-width: 760px) { .aa-l7 .proof__grid { grid-template-columns: repeat(3, 1fr); gap: 2.5rem; } }
    .aa-l7 .proof__cell { padding-left: 1.25rem; border-left: 2px solid var(--gold); font-family: var(--font-sans); }
    .aa-l7 .proof__cell strong { display: block; color: var(--white); font-size: 1.15rem; font-weight: 600; line-height: 1.3; }
    .aa-l7 .proof__cell > span { display: block; margin-top: 0.3rem; font-size: 0.95rem; line-height: 1.4; color: var(--on-navy-muted); }

    /* ===== Jump nav + progress ===== */
    .aa-l7 .jump { position: sticky; top: var(--header-h); z-index: 90; background: rgba(251, 250, 248, 0.94); backdrop-filter: blur(12px); border-bottom: 1px solid var(--border); }
    .aa-l7 .jump::after { content: ''; position: absolute; left: 0; bottom: -1px; height: 2px; width: 100%; background: var(--gold); transform: scaleX(var(--progress, 0)); transform-origin: left; }
    .aa-l7 .jump__inner { display: flex; align-items: center; gap: 1.5rem; height: var(--jump-h); }
    .aa-l7 .jump__label { font-family: var(--font-sans); font-size: 0.75rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--text-muted); white-space: nowrap; }
    .aa-l7 .jump__list { display: flex; gap: clamp(1.1rem, 2.4vw, 2rem); overflow-x: auto; scrollbar-width: none; height: 100%; align-items: stretch; flex: 1; }
    .aa-l7 .jump__list::-webkit-scrollbar { display: none; }
    .aa-l7 .jump__list a { position: relative; display: inline-flex; align-items: center; font-family: var(--font-sans); font-size: 0.82rem; font-weight: 500; color: var(--text-muted); white-space: nowrap; transition: color .2s; }
    .aa-l7 .jump__list a::after { content: ''; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--navy); transform: scaleX(0); transform-origin: left; transition: transform .3s var(--ease); }
    .aa-l7 .jump__list a:hover, .aa-l7 .jump__list a.is-active { color: var(--navy); }
    .aa-l7 .jump__list a.is-active::after { transform: scaleX(1); }
    .aa-l7 .jump__cta { display: none; min-height: 38px; padding: 0 1.1rem; font-size: 0.75rem; }
    @media (min-width: 1024px) { .aa-l7 .jump__cta { display: inline-flex; } }
    @media (max-width: 900px) { .aa-l7 .jump__label { display: none; } .aa-l7 .jump__list { padding-right: 2.5rem; mask-image: linear-gradient(to right, #000 calc(100% - 2.5rem), transparent); -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 2.5rem), transparent); } }

    /* ===== Route shell ===== */
    .aa-l7 .route-intro { padding-block: clamp(3.5rem, 7vw, 6rem) clamp(1rem, 3vw, 2rem); text-align: center; }
    .aa-l7 .route-intro .kicker { max-width: 50ch; margin: 0 auto; }
    .aa-l7 .route-intro .h2 { margin-bottom: 0.75rem; }
    /* 0.2.1 (T-0201, L9): the three benefits under the intro. */
    .aa-l7 .benefits { max-width: 980px; margin: clamp(2rem, 4vw, 3rem) auto 0; text-align: left; }
    .aa-l7 .benefits__label { display: block; text-align: center; margin-bottom: 1.25rem; }
    .aa-l7 .benefits__list { display: grid; grid-template-columns: 1fr; gap: 1rem; }
    @media (min-width: 860px) { .aa-l7 .benefits__list { grid-template-columns: repeat(3, 1fr); } }
    .aa-l7 .benefits__list li { align-items: start; padding: 1.25rem 1.25rem 1.25rem 1.1rem; background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-sm); font-size: 1.02rem; color: var(--navy); }
    .aa-l7 .route { position: relative; }
    .aa-l7 .stop { padding-block: clamp(3.5rem, 7vw, 6rem); }
    @media (min-width: 1000px) {
      .aa-l7 .route .wrap { display: grid; grid-template-columns: 72px minmax(0, 1fr); column-gap: clamp(1.5rem, 3vw, 2.5rem); }
      .aa-l7 .route::before, .aa-l7 .route__fill { content: ''; position: absolute; top: 0; bottom: 0; left: calc(50% - (var(--max-w) / 2) + var(--px) + 22px); width: 1px; }
      .aa-l7 .route::before { background: var(--border-strong); }
      .aa-l7 .route__fill { height: 100%; background: linear-gradient(to bottom, var(--gold-light), var(--gold)); transform-origin: top; transform: scaleY(0); pointer-events: none; z-index: 1; }
      @media (max-width: 1360px) { .aa-l7 .route::before, .aa-l7 .route__fill { left: calc(var(--px) + 22px); } }
      .aa-l7 .on-dark.stop::before { content: ''; position: absolute; inset: 0; pointer-events: none; }
    }
    .aa-l7 .stop__marker { display: none; }
    @media (min-width: 1000px) {
      .aa-l7 .stop__marker { display: grid; place-items: center; position: sticky; top: calc(var(--header-h) + var(--jump-h) + 28px); align-self: start; width: 54px; height: 54px; margin-left: -5px; border-radius: 50%; background: var(--paper); border: 1px solid var(--border-strong); font-family: var(--font-serif); font-variant-numeric: lining-nums; font-size: 1.45rem; line-height: 1; font-weight: 600; color: var(--navy); z-index: 2; transition: background .35s, color .35s, border-color .35s, box-shadow .35s; }
      .aa-l7 .on-dark .stop__marker { background: var(--navy); color: var(--white); border-color: rgba(255,255,255,0.3); }
      .aa-l7 .stop.is-current .stop__marker { background: var(--gold); color: var(--white); border-color: var(--gold); box-shadow: 0 0 0 8px rgba(160,137,94,0.18); }
    }
    .aa-l7 .stop__num { display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; border: 1px solid currentColor; font-family: var(--font-serif); font-size: 0.9rem; font-weight: 600; margin-right: 0.6rem; }
    @media (min-width: 1000px) { .aa-l7 .stop__num { display: none; } }
    .aa-l7 .eyebrow:has(.stop__num:not([hidden]))::before { display: none; }
    .aa-l7 .stop__body { min-width: 0; position: relative; }
    .aa-l7 .stop__head { max-width: 64ch; margin-bottom: clamp(2rem, 4vw, 3rem); }
    .aa-l7 .stop__head .lead { margin-top: 1.1rem; }

    /* ----- 1. Why now (full-bleed navy) ----- */
    .aa-l7 .stop--why { color: var(--on-navy); }
    .aa-l7 .stop--why::before { content: ''; position: absolute; inset: 0; background: linear-gradient(160deg, var(--navy) 0%, var(--navy-deep) 100%); z-index: 0; }
    .aa-l7 .stop--why > .wrap { position: relative; z-index: 1; }
    .aa-l7 .why { display: grid; grid-template-columns: 1fr; gap: 2.5rem; }
    @media (min-width: 900px) { .aa-l7 .why { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(3rem, 6vw, 6rem); align-items: start; } }
    .aa-l7 .why__text { margin-top: 1.75rem; max-width: 50ch; font-size: 1.05rem; }
    .aa-l7 .why__text p { color: var(--on-navy); }
    .aa-l7 .why__sources { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 1.75rem; }
    .aa-l7 .why__sources li { padding: 0.45rem 0.85rem; border: 1px solid rgba(255,255,255,0.18); border-radius: 999px; font-family: var(--font-sans); font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--white); }
    .aa-l7 .why__note { margin-top: 1.75rem; padding-top: 1.25rem; border-top: 1px solid rgba(255,255,255,0.12); color: var(--on-navy); font-size: 1rem; max-width: 50ch; }
    .aa-l7 .why__right { display: flex; flex-direction: column; gap: 1.5rem; }
    .aa-l7 .why__photo { border-radius: var(--radius); overflow: hidden; border: 1px solid rgba(255,255,255,0.12); }
    .aa-l7 .why__photo img { width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; display: block; }
    .aa-l7 .why__photo figcaption { padding: 0.7rem 1rem; font-size: 0.9rem; color: var(--on-navy); background: rgba(255,255,255,0.05); }
    .aa-l7 .why__year { display: grid; grid-template-columns: auto 1fr; gap: 1.25rem; align-items: center; padding: 1.25rem 1.5rem; border: 1px solid rgba(255,255,255,0.12); border-radius: var(--radius); background: rgba(255,255,255,0.04); }
    .aa-l7 .why__year b { font-family: var(--font-serif); font-size: 3rem; font-weight: 500; color: var(--gold-light); line-height: 1; }
    .aa-l7 .why__year span { font-size: 0.95rem; color: var(--on-navy); }
    .aa-l7 .quote { position: relative; padding: 2.5rem 0 0 2rem; border-left: 2px solid var(--gold); font-family: var(--font-serif); font-size: clamp(1.8rem, 3vw, 2.6rem); line-height: 1.2; color: var(--white); }
    .aa-l7 .quote::before { content: '\201C'; position: absolute; top: -0.4rem; left: 1.7rem; font-size: 5rem; line-height: 1; color: var(--gold-light); opacity: 0.6; }

    /* ----- 2. Four components (0.2.1, L10: a static grid, no scroll stage) ----- */
    .aa-l7 .comps { display: grid; grid-template-columns: 1fr; gap: 1.25rem; }
    @media (min-width: 760px) { .aa-l7 .comps { grid-template-columns: repeat(2, 1fr); } }
    .aa-l7 .comp { padding: clamp(1.4rem, 2.6vw, 2rem); display: flex; flex-direction: column; }
    .aa-l7 .comp .h4 { margin: 0.4rem 0 0.5rem; font-size: 1.6rem; }
    .aa-l7 .comp__lead { color: var(--text-muted); }
    .aa-l7 .comp__parts { display: grid; gap: 0.75rem; margin-top: 1.1rem; padding-top: 1.1rem; border-top: 1px solid var(--border); }
    .aa-l7 .comp__parts strong { display: block; color: var(--navy); }
    .aa-l7 .comp__parts span { display: block; font-size: 0.95rem; color: var(--text-muted); line-height: 1.5; }
    .aa-l7 .comp .arrow { margin-top: 1.25rem; align-self: flex-start; }

    /* ----- 3. Time (cream) ----- */
    .aa-l7 .stop--time { background: var(--cream); }
    .aa-l7 .tsel { display: flex; flex-direction: column; align-items: flex-start; gap: 0.75rem; margin-bottom: 1.5rem; }
    .aa-l7 .tsel__lbl { font-family: var(--font-sans); font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 600; color: var(--navy); display: inline-flex; align-items: center; gap: 0.6rem; }
    .aa-l7 .tsel__lbl svg { width: 16px; height: 16px; color: var(--gold); }
    .aa-l7 .seg { display: inline-grid; grid-template-columns: 1fr 1fr; padding: 5px; border-radius: 14px; background: var(--white); border: 1px solid var(--border-strong); box-shadow: var(--shadow-card); width: min(100%, 640px); }
    .aa-l7 .seg button, .aa-l7 .seg button:hover, .aa-l7 .seg button:focus { display: flex; flex-direction: column; align-items: flex-start; gap: 0.15rem; padding: 0.85rem 1.2rem; border-radius: 10px; text-align: left; color: var(--text-muted); transition: background .3s, color .3s; }
    .aa-l7 .seg button strong { font-family: var(--font-serif); font-size: 1.2rem; font-weight: 600; color: var(--navy); }
    .aa-l7 .seg button span { font-size: 0.85rem; }
    .aa-l7 .seg button[aria-pressed="true"], .aa-l7 .seg button[aria-pressed="true"]:hover, .aa-l7 .seg button[aria-pressed="true"]:focus { background: var(--navy); color: var(--on-navy); }
    .aa-l7 .seg button[aria-pressed="true"] strong { color: var(--white); }
    @media (max-width: 560px) { .aa-l7 .seg { grid-template-columns: 1fr; } }
    .aa-l7 .time { display: grid; grid-template-columns: 1fr; gap: 1.25rem; }
    .aa-l7 .tblock { padding: clamp(1.5rem, 3vw, 2.25rem); }
    .aa-l7 .tblock__head { display: flex; align-items: baseline; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.25rem; padding-bottom: 1rem; border-bottom: 1px solid var(--border); }
    .aa-l7 .tblock__head .label { padding: 0.3rem 0.6rem; border-radius: 4px; background: var(--gold-wash); }
    .aa-l7 .days { display: grid; grid-template-columns: 1fr; gap: 0.85rem; }
    @media (min-width: 720px) { .aa-l7 .days { grid-template-columns: repeat(3, 1fr); } .aa-l7 .day--wide { grid-column: 1 / -1; } }
    .aa-l7 .day { position: relative; padding: 1.25rem 1.25rem 1.1rem; border: 1px solid var(--border); border-radius: 12px; background: var(--paper); display: grid; grid-template-columns: 44px 1fr; gap: 0.9rem; align-items: start; }
    .aa-l7 .day svg { width: 44px; height: 44px; color: var(--gold); }
    .aa-l7 .day__k { display: block; font-family: var(--font-sans); font-size: 0.75rem; letter-spacing: 0.16em; text-transform: uppercase; font-weight: 600; color: var(--gold-ink); }
    .aa-l7 .day strong { display: block; font-family: var(--font-serif); font-size: 1.25rem; font-weight: 600; color: var(--navy); line-height: 1.15; margin: 0.15rem 0 0.25rem; }
    .aa-l7 .day p { font-size: 0.92rem; color: var(--text-muted); line-height: 1.5; }
    .aa-l7 .day__len { display: inline-block; margin-top: 0.7rem; padding: 0.3rem 0.6rem; border-radius: 999px; font-style: normal; font-family: var(--font-sans); font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 600; background: var(--navy); color: var(--white); }
    .aa-l7 .day--am .day__len { background: var(--gold-pale); color: var(--gold-ink-deep); }
    .aa-l7 .day--wide { background: var(--white); grid-template-columns: auto 1fr; }
    .aa-l7 .day__icons { display: flex; gap: 0.35rem; }
    .aa-l7 .day__icons svg { width: 36px; height: 36px; }
    .aa-l7 .time__sum { margin-top: 1.25rem; padding-top: 1.25rem; border-top: 1px solid var(--border-strong); font-family: var(--font-serif); font-size: 1.4rem; font-weight: 600; color: var(--navy); }
    .aa-l7 .remote { display: grid; grid-template-columns: 1fr; gap: 0.85rem; }
    @media (min-width: 720px) { .aa-l7 .remote { grid-template-columns: repeat(2, 1fr); } }
    @media (min-width: 1100px) { .aa-l7 .remote { grid-template-columns: repeat(4, 1fr); } }
    .aa-l7 .rem { padding: 1.25rem; border: 1px solid var(--border); border-radius: 12px; background: var(--paper); }
    .aa-l7 .rem svg { width: 30px; height: 30px; color: var(--navy); margin-bottom: 0.75rem; }
    .aa-l7 .rem strong { display: block; font-family: var(--font-serif); font-size: 1.2rem; font-weight: 600; color: var(--navy); line-height: 1.15; margin-bottom: 0.3rem; }
    .aa-l7 .rem p { font-size: 0.9rem; color: var(--text-muted); line-height: 1.5; }
    .aa-l7 .time [data-route="fast"] { display: none; }
    .aa-l7 .time.is-fast .days[data-route="fast"] { display: grid; }
    .aa-l7 .time.is-fast p[data-route="fast"] { display: block; }
    .aa-l7 .time.is-fast [data-route="standard"] { display: none; }
    .aa-l7 .where__photo { margin-top: clamp(2rem, 4vw, 3rem); border-radius: var(--radius) var(--radius) 0 0; overflow: hidden; }
    .aa-l7 .where__photo img { width: 100%; height: auto; aspect-ratio: 21 / 9; object-fit: cover; display: block; }
    .aa-l7 .where__photo + .where { margin-top: 0; border-radius: 0 0 var(--radius) var(--radius); }
    .aa-l7 .where { margin-top: clamp(2rem, 4vw, 3rem); padding: clamp(1.5rem, 3vw, 2rem); background: var(--navy); color: var(--on-navy); border-radius: var(--radius); display: grid; grid-template-columns: 1fr; gap: 1.25rem; }
    @media (min-width: 900px) { .aa-l7 .where { grid-template-columns: auto auto 1fr; align-items: center; gap: 2.5rem; } .aa-l7 .where__links { justify-self: end; } }
    .aa-l7 .where .label { color: var(--gold-light); }
    .aa-l7 .where .arrow { color: var(--white); }
    .aa-l7 .where p { color: var(--white); margin-top: 0.3rem; }
    .aa-l7 .where__cities { display: flex; flex-wrap: wrap; gap: 0.5rem; }
    .aa-l7 .where__cities li { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.6rem 1rem; border: 1px solid rgba(255,255,255,0.2); border-radius: 999px; font-family: var(--font-serif); font-size: 1.1rem; font-weight: 600; color: var(--white); }
    .aa-l7 .where__cities svg { width: 14px; height: 14px; color: var(--gold-light); }
    .aa-l7 .where__links { display: flex; flex-wrap: wrap; gap: 0.75rem 1.5rem; align-items: center; }
    @media (max-width: 639px) { .aa-l7 .where__links .btn { width: 100%; } .aa-l7 .where__links { flex-direction: column; align-items: flex-start; } }

    /* ----- 4. The fork (chooser) ----- */
    .aa-l7 .entry { padding: clamp(1.5rem, 3vw, 2.25rem); display: grid; grid-template-columns: 1fr; gap: 1.5rem; margin-bottom: clamp(2.5rem, 5vw, 4rem); }
    @media (min-width: 900px) { .aa-l7 .entry { grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 3rem; } }
    .aa-l7 .entry .h4 { margin: 0.35rem 0 0.6rem; }
    .aa-l7 .entry p { font-size: 0.95rem; color: var(--text-muted); }
    .aa-l7 .entry__intl { margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--border); font-size: 0.93rem; }
    .aa-l7 .fork__q { text-align: center; margin-bottom: 1.5rem; }
    .aa-l7 .fork__q .h3 { margin-top: 0.4rem; }
    /* 0.2.16 (T-0216, QA 21 Oct, C.offscreen): the two route buttons ran 29 px past the right edge at 375 and cut off
       their radio circles. CAUSE: a 1fr track grows to its content's min-content, and the buttons inherit
       white-space: nowrap from the kit's button style, so the one-line text set the width. FIX: tracks that may shrink
       (minmax(0, 1fr)) and button text that wraps. */
    .aa-l7 .choose { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; max-width: 900px; margin: 0 auto; }
    @media (min-width: 700px) { .aa-l7 .choose { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
    .aa-l7 .choose__btn { white-space: normal; min-width: 0; }
    .aa-l7 .choose__btn, .aa-l7 .choose__btn:hover, .aa-l7 .choose__btn:focus { position: relative; text-align: left; padding: 1.5rem 1.6rem; border-radius: var(--radius); background: var(--white); border: 1.5px solid var(--border-strong); transition: border-color .3s, box-shadow .3s, transform .3s var(--ease); display: grid; grid-template-columns: 1fr auto; gap: 1rem; align-items: center; }
    .aa-l7 .choose__btn:hover { transform: translateY(-2px); border-color: var(--gold); }
    .aa-l7 .choose__btn:focus { border-color: var(--gold); }
    .aa-l7 .choose__btn[aria-pressed="true"], .aa-l7 .choose__btn[aria-pressed="true"]:hover, .aa-l7 .choose__btn[aria-pressed="true"]:focus { border-color: var(--navy); background: var(--white); box-shadow: 0 0 0 4px var(--gold-wash), var(--shadow-card); transform: none; }
    .aa-l7 .choose__btn strong { display: block; font-family: var(--font-serif); font-size: 1.4rem; font-weight: 600; color: var(--navy); line-height: 1.15; }
    .aa-l7 .choose__btn > span > span { display: block; font-size: 0.92rem; color: var(--text-muted); margin-top: 0.25rem; }
    .aa-l7 .choose__radio { width: 26px; height: 26px; border-radius: 50%; border: 1.5px solid var(--border-strong); display: grid; place-items: center; transition: border-color .3s; }
    .aa-l7 .choose__radio::after { content: ''; width: 12px; height: 12px; border-radius: 50%; background: var(--navy); transform: scale(0); transition: transform .3s var(--ease); }
    .aa-l7 .choose__btn[aria-pressed="true"] .choose__radio { border-color: var(--navy); }
    .aa-l7 .choose__btn[aria-pressed="true"] .choose__radio::after { transform: scale(1); }
    .aa-l7 .choose { margin-bottom: clamp(1.75rem, 3vw, 2.5rem); }
    .aa-l7 .routes { display: grid; grid-template-columns: 1fr; gap: 1.25rem; }
    @media (min-width: 900px) { .aa-l7 .routes { grid-template-columns: 1fr 1fr; align-items: stretch; } }
    .aa-l7 .route-card { display: flex; flex-direction: column; overflow: hidden; position: relative; transition: opacity .5s var(--ease), transform .5s var(--ease), box-shadow .5s var(--ease), border-color .5s; }
    .aa-l7 .route-card__you { padding: 1.1rem 1.5rem; background: var(--cream); border-bottom: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
    .aa-l7 .route-card__you .label { display: block; margin-bottom: 0.2rem; color: var(--text-muted); }
    .aa-l7 .route-card__you strong { font-family: var(--font-serif); font-size: 1.25rem; font-weight: 600; color: var(--navy); }
    .aa-l7 .route-card__you div > span { display: block; font-size: 0.9rem; color: var(--text-muted); }
    .aa-l7 .route-card__badge { display: none; padding: 0.4rem 0.75rem; border-radius: 999px; background: var(--navy); color: var(--white); font-family: var(--font-sans); font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 600; white-space: nowrap; }
    .aa-l7 .route-card__body { padding: clamp(1.5rem, 3vw, 2rem); display: flex; flex-direction: column; flex: 1; }
    .aa-l7 .route-card__body .h3 { margin: 0.25rem 0 0.9rem; }
    .aa-l7 .route-card__body .price { margin-bottom: 1rem; }
    .aa-l7 .route-card__body > p { color: var(--text-muted); font-size: 0.97rem; }
    .aa-l7 .route-card__inc { margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid var(--border); }
    .aa-l7 .route-card__inc .label { display: block; margin-bottom: 0.9rem; }
    .aa-l7 .route-card__inc .check-list { gap: 0.5rem; font-size: 0.95rem; }
    .aa-l7 .route-card__note { margin-top: 1.25rem; font-size: 0.88rem; color: var(--text-muted); line-height: 1.5; }
    .aa-l7 .route-card__cta { margin-top: auto; padding-top: 1.5rem; }
    .aa-l7 .route-card--fast .route-card__you { background: var(--gold-wash); }
    .aa-l7[data-route="standard"] .route-card--fast, .aa-l7[data-route="fast"] .route-card--standard { opacity: 0.55; transform: scale(0.985); }
    .aa-l7[data-route="standard"] .route-card--standard, .aa-l7[data-route="fast"] .route-card--fast { border-color: var(--navy); box-shadow: var(--shadow-float); }
    .aa-l7[data-route="standard"] .route-card--standard .route-card__badge, .aa-l7[data-route="fast"] .route-card--fast .route-card__badge { display: inline-block; }
    .aa-l7 .route-card__body > .enrol-note { margin-top: 1rem; }

    /* ----- Mid-page review (0.2.1, L14), between stops 4 and 5, in the stop column ----- */
    .aa-l7 .pull { padding-block: 0 clamp(3rem, 6vw, 5rem); }
    @media (min-width: 1000px) { .aa-l7 .pull .pull__body { grid-column: 2; } }
    .aa-l7 .pull__body { max-width: 820px; margin: 0 auto; padding: clamp(1.5rem, 3vw, 2.5rem); background: var(--cream); border-radius: var(--radius); border-left: 3px solid var(--gold); }
    .aa-l7 .pull__body .voice__stars { margin: 0 0 0.9rem; }
    .aa-l7 .pull__body blockquote { font-family: var(--font-serif); font-size: clamp(1.4rem, 2.4vw, 1.8rem); line-height: 1.35; color: var(--navy); }
    .aa-l7 .pull__body figcaption { margin-top: 1rem; font-family: var(--font-sans); font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold-ink); }

    /* ----- 5. Along the way (navy) ----- */
    .aa-l7 .stop--along { color: var(--on-navy); }
    .aa-l7 .stop--along::before { content: ''; position: absolute; inset: 0; background: linear-gradient(160deg, var(--navy-deep) 0%, var(--navy) 100%); }
    .aa-l7 .stop--along > .wrap { position: relative; z-index: 1; }
    .aa-l7 .along { display: grid; grid-template-columns: 1fr; gap: 2rem; }
    @media (min-width: 1000px) { .aa-l7 .along { grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: clamp(2.5rem, 5vw, 5rem); align-items: start; } .aa-l7 .along__main { position: sticky; top: calc(var(--header-h) + var(--jump-h) + 32px); } }
    .aa-l7 .along__main .lead { margin: 1.1rem 0 0; }
    .aa-l7 .along__photo { margin-top: 1.75rem; border-radius: var(--radius); overflow: hidden; border: 1px solid rgba(255,255,255,0.12); }
    .aa-l7 .along__photo img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; display: block; }
    .aa-l7 .along__photo figcaption { padding: 0.75rem 1rem; font-size: 0.9rem; color: var(--on-navy); background: rgba(255,255,255,0.05); }
    .aa-l7 .session { border: 1px solid rgba(255,255,255,0.14); border-radius: var(--radius); background: rgba(255,255,255,0.04); overflow: hidden; }
    .aa-l7 .session__head { padding: 1.1rem 1.5rem; border-bottom: 1px solid rgba(255,255,255,0.12); display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
    .aa-l7 .session__head strong { font-family: var(--font-serif); font-size: 1.25rem; color: var(--white); font-weight: 500; }
    .aa-l7 .feat { display: flex; flex-direction: column; }
    .aa-l7 .feat__row { display: grid; grid-template-columns: 1fr; gap: 1rem; padding: 1.35rem 1.5rem; border-top: 1px solid rgba(255,255,255,0.1); }
    .aa-l7 .feat__row:first-child { border-top: 0; }
    @media (min-width: 640px) { .aa-l7 .feat__row { grid-template-columns: 150px 1fr; align-items: center; gap: 1.5rem; } }
    .aa-l7 .feat__no { display: inline-block; font-family: var(--font-sans); font-size: 0.75rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold-light); font-weight: 600; margin-bottom: 0.3rem; }
    .aa-l7 .feat__row strong { display: block; font-family: var(--font-serif); font-size: 1.3rem; font-weight: 600; color: var(--white); line-height: 1.15; }
    .aa-l7 .feat__row p { font-size: 0.98rem; color: var(--on-navy); line-height: 1.5; margin-top: 0.3rem; }
    .aa-l7 .feat__vis { display: flex; align-items: center; min-height: 48px; }
    .aa-l7 .vis__people { display: flex; align-items: flex-end; gap: 0.35rem; }
    .aa-l7 .vis__people svg { width: 26px; height: 26px; color: var(--gold-light); }
    .aa-l7 .vis__people .assessor { color: var(--white); width: 30px; height: 30px; margin-left: 0.5rem; padding-left: 0.5rem; border-left: 1px solid rgba(255,255,255,0.25); box-sizing: content-box; }
    .aa-l7 .vis__dots { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; width: 100%; max-width: 120px; }
    /* 0.2.5 (T-0205): the dots and the ring below show their finished state by default; they start empty only
       inside a block the armed reveal has not shown yet, and fill when it is revealed. */
    .aa-l7 .vis__dots i { aspect-ratio: 1; border-radius: 50%; background: var(--gold-light); transition: opacity .4s, transform .5s var(--ease-out); transition-delay: calc(var(--i) * 60ms); }
    .aa-l7.is-reveal-armed [data-reveal]:not(.is-in) .vis__dots i { opacity: 0; transform: scale(0.4); }
    .aa-l7 .ring { width: 84px; height: 84px; }
    .aa-l7 .ring circle { fill: none; stroke-width: 10; transform: rotate(-90deg); transform-origin: 50% 50%; }
    .aa-l7 .ring .ring__bg { stroke: rgba(255,255,255,0.1); }
    .aa-l7 .ring .ring__a { stroke: var(--gold-light); stroke-dasharray: 188.5 999; transition: stroke-dasharray 1.6s var(--ease-out); }
    .aa-l7 .ring .ring__b { stroke: var(--blue-light); stroke-dasharray: 188.5 999; stroke-dashoffset: -188.5; transition: stroke-dasharray 1.6s var(--ease-out) .3s; }
    .aa-l7.is-reveal-armed [data-reveal]:not(.is-in) .ring .ring__a, .aa-l7.is-reveal-armed [data-reveal]:not(.is-in) .ring .ring__b { stroke-dasharray: 0 999; }
    .aa-l7 .ring text { font-family: var(--font-serif); font-size: 34px; fill: var(--white); text-anchor: middle; }
    .aa-l7 .ring__legend { display: flex; gap: 1rem; flex-wrap: wrap; font-size: 0.85rem; margin-top: 0.4rem; color: var(--on-navy); }
    .aa-l7 .ring__legend i { display: inline-block; width: 9px; height: 9px; border-radius: 50%; margin-right: 0.4rem; vertical-align: middle; }
    .aa-l7 .steps { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.5rem; }
    .aa-l7 .steps li { padding: 0.4rem 0.7rem; border: 1px solid rgba(255,255,255,0.2); border-radius: 999px; font-family: var(--font-sans); font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--white); }
    .aa-l7 .vis__pack { display: flex; gap: 0.4rem; }
    .aa-l7 .vis__pack svg { width: 30px; height: 30px; color: var(--gold-light); }
    .aa-l7 .bcam { margin-top: 2rem; padding: clamp(1.5rem, 3vw, 2.25rem); border-radius: var(--radius); background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.12); display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
    @media (min-width: 900px) { .aa-l7 .bcam { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 3rem; align-items: start; } }
    .aa-l7 .bcam .h4 { margin-bottom: 0.5rem; font-size: 1.6rem; }
    .aa-l7 .bcam > div > p { font-size: 1.02rem; }
    .aa-l7 .bcam .label { display: block; margin-bottom: 0.9rem; }
    .aa-l7 .bcam .check-list { font-size: 0.98rem; gap: 0.6rem; }

    /* ----- 6. Evidence (cream, signs itself) ----- */
    .aa-l7 .stop--evidence { background: var(--cream); }
    .aa-l7 .sheets { display: grid; grid-template-columns: 1fr; gap: 2rem; perspective: 1400px; }
    @media (min-width: 760px) { .aa-l7 .sheets { grid-template-columns: repeat(3, 1fr); gap: 1.5rem; } }
    @supports (grid-template-rows: subgrid) { .aa-l7 .sheet { display: grid; grid-row: span 2; grid-template-rows: subgrid; } }
    .aa-l7 .sheet { display: flex; flex-direction: column; }
    .aa-l7 .sheet__paper { position: relative; background: var(--white); border: 1px solid var(--border); border-radius: 6px; padding: 1.75rem 1.6rem 1.6rem; box-shadow: 0 30px 50px -30px rgba(18,23,43,0.35), 0 1px 3px rgba(18,23,43,0.06); font-size: 0.98rem; color: var(--text-main); transform-style: preserve-3d; transition: transform .6s var(--ease), box-shadow .6s var(--ease); }
    @media (min-width: 760px) {
      .aa-l7 .sheet:nth-child(1) .sheet__paper { transform: rotate(-1.5deg) translateY(8px); }
      .aa-l7 .sheet:nth-child(3) .sheet__paper { transform: rotate(1.5deg) translateY(8px); }
      .aa-l7 .sheet:hover .sheet__paper { transform: rotate(0) translateY(-8px) scale(1.02); box-shadow: var(--shadow-float); z-index: 2; }
    }
    .aa-l7 .sheet__stamp { position: absolute; top: 0.85rem; right: 0.85rem; font-family: var(--font-sans); font-size: 0.75rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold-ink); border: 1px solid var(--gold-light); border-radius: 3px; padding: 0.2rem 0.45rem; transform: rotate(-4deg); }
    .aa-l7 .sheet__title { display: flex; align-items: flex-end; min-height: 3.6rem; font-family: var(--font-serif); font-size: 1.4rem; font-weight: 600; line-height: 1.15; color: var(--navy); padding-bottom: 0.65rem; border-bottom: 1.5px solid var(--navy); margin-bottom: 0.75rem; padding-right: 4.5rem; }
    .aa-l7 .sheet__row { display: flex; justify-content: space-between; align-items: baseline; gap: 0.75rem; padding: 0.5rem 0; border-bottom: 1px dotted rgba(38,46,77,0.3); color: var(--text-main); }
    .aa-l7 .sheet__row.is-sign { position: relative; margin-top: 0.5rem; padding-top: 0.7rem; border-bottom: 1px solid var(--navy); font-family: var(--font-sans); font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-muted); min-height: 44px; }
    .aa-l7 .sig { position: absolute; left: 0; bottom: 2px; width: 170px; height: 44px; overflow: visible; }
    .aa-l7 .sig path { fill: none; stroke: var(--navy); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 900; stroke-dashoffset: 900; }
    .aa-l7 .is-signed .sig path { animation: l7-draw 2.4s var(--ease-out) .4s forwards; }
    @keyframes l7-draw { to { stroke-dashoffset: 0; } }
    .aa-l7 .sheet__section { font-family: var(--font-sans); font-size: 0.75rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold-ink); margin: 0.9rem 0 0.35rem; }
    .aa-l7 .sheet__table { width: 100%; border-collapse: collapse; }
    .aa-l7 .sheet__table th, .aa-l7 .sheet__table td { text-align: left; padding: 0.45rem 0.3rem; border-bottom: 1px dotted rgba(38,46,77,0.3); vertical-align: top; font-weight: 400; color: var(--text-main); }
    .aa-l7 .sheet__table th { font-family: var(--font-sans); font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-muted); border-bottom: 1px solid var(--navy); }
    .aa-l7 .sheet__table td:first-child { width: 2.2em; color: var(--gold-ink); font-family: var(--font-serif); font-weight: 600; font-size: 0.95rem; }
    .aa-l7 .sheet__table td:last-child { width: 2.2em; text-align: center; }
    .aa-l7 .tick { width: 16px; height: 16px; display: inline-block; vertical-align: middle; }
    .aa-l7 .tick rect { fill: none; stroke: var(--border-strong); }
    .aa-l7 .tick path { fill: none; stroke: var(--gold-ink); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 20; stroke-dashoffset: 20; }
    .aa-l7 .is-signed .tick path { animation: l7-draw .4s var(--ease-out) forwards; animation-delay: calc(.5s + var(--i) * .18s); }
    .aa-l7 .sheet__reflect { margin-top: 0.75rem; padding: 0.7rem 0.8rem; border: 1px dashed rgba(38,46,77,0.3); border-radius: 4px; min-height: 64px; color: var(--text-muted); font-style: italic; font-size: 0.92rem; }
    .aa-l7 .stamp { position: absolute; right: 1rem; bottom: 4.2rem; padding: 0.4rem 0.7rem; border: 2px solid var(--gold-ink); border-radius: 4px; color: var(--gold-ink); font-family: var(--font-sans); font-size: 0.75rem; letter-spacing: 0.24em; text-transform: uppercase; font-weight: 600; transform: rotate(-12deg) scale(2.4); opacity: 0; mix-blend-mode: multiply; }
    .aa-l7 .is-signed .stamp { animation: l7-slam .5s cubic-bezier(.2,1.4,.4,1) 2.6s forwards; }
    @keyframes l7-slam { to { transform: rotate(-12deg) scale(1); opacity: 1; } }
    .aa-l7 .sheet__caption { padding: 1.5rem 0.25rem 0; }
    .aa-l7 .sheet__caption strong { display: block; font-family: var(--font-serif); font-size: 1.3rem; font-weight: 600; color: var(--navy); margin-bottom: 0.3rem; }
    .aa-l7 .sheet__caption p { font-size: 0.93rem; color: var(--text-muted); line-height: 1.5; }
    .aa-l7 .sheet__caption .label { display: inline-block; margin-bottom: 0.4rem; }
    .aa-l7 .sheets__foot { margin-top: 2rem; font-size: 0.9rem; color: var(--text-muted); text-align: center; }

    /* ----- 7. What you hold ----- */
    .aa-l7 .hold { display: grid; grid-template-columns: 1fr; gap: 2rem; align-items: center; }
    @media (min-width: 1000px) { .aa-l7 .hold { grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr); gap: clamp(2.5rem, 5vw, 5rem); } }
    .aa-l7 .diploma-wrap { perspective: 1400px; }
    .aa-l7 .diploma { position: relative; aspect-ratio: 1.38; border-radius: 14px; background: linear-gradient(150deg, var(--navy) 0%, var(--navy-900) 100%); color: var(--white); padding: clamp(1.5rem, 3vw, 2.5rem); box-shadow: var(--shadow-float); transform: rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)); transition: transform .3s var(--ease); overflow: hidden; }
    .aa-l7 .diploma::before { content: ''; position: absolute; inset: 10px; border: 1px solid rgba(196,172,130,0.5); border-radius: 8px; pointer-events: none; }
    .aa-l7 .diploma::after { content: ''; position: absolute; inset: 0; background: linear-gradient(115deg, transparent 30%, rgba(255,255,255,0.10) 45%, transparent 60%); transform: translateX(var(--sx, -60%)); transition: transform .3s var(--ease); pointer-events: none; }
    .aa-l7 .diploma__seal { position: absolute; top: 1.75rem; right: 1.75rem; width: 58px; height: 58px; border-radius: 50%; background: radial-gradient(circle at 35% 35%, var(--gold-light), var(--gold-ink)); display: grid; place-items: center; font-family: var(--font-serif); font-weight: 600; color: var(--navy-900); font-size: 0.9rem; box-shadow: 0 6px 14px rgba(0,0,0,0.3); }
    .aa-l7 .diploma .label { color: var(--gold-light); display: block; }
    .aa-l7 .diploma .diploma__title { color: var(--white); }
    .aa-l7 .diploma__title { font-family: var(--font-serif); font-size: clamp(1.6rem, 2.6vw, 2.3rem); line-height: 1.1; margin: 0.9rem 0 0.3rem; max-width: 12ch; }
    .aa-l7 .diploma__sub { font-size: 0.92rem; color: var(--on-navy); max-width: 30ch; }
    .aa-l7 .diploma__foot { position: absolute; left: clamp(1.5rem, 3vw, 2.5rem); right: clamp(1.5rem, 3vw, 2.5rem); bottom: clamp(1.25rem, 2.5vw, 2rem); display: flex; justify-content: space-between; align-items: flex-end; font-family: var(--font-sans); font-size: 0.75rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--on-navy-muted); padding-top: 0.9rem; border-top: 1px solid rgba(255,255,255,0.12); }
    .aa-l7 .hold__tiles { display: grid; grid-template-columns: 1fr; gap: 1px; background: var(--border); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
    @media (min-width: 560px) { .aa-l7 .hold__tiles { grid-template-columns: repeat(3, 1fr); } }
    .aa-l7 .hold__tile { background: var(--white); padding: clamp(1.4rem, 2.2vw, 1.9rem); }
    .aa-l7 .hold__fig { font-family: var(--font-serif); font-size: clamp(2.8rem, 4vw, 3.6rem); font-weight: 500; color: var(--gold); line-height: 1; letter-spacing: -0.01em; font-variant-numeric: lining-nums; }
    .aa-l7 .hold__tile strong { display: block; font-family: var(--font-serif); font-size: 1.22rem; font-weight: 600; color: var(--navy); margin: 0.8rem 0 0.35rem; }
    .aa-l7 .hold__tile p { font-size: 0.9rem; color: var(--text-muted); line-height: 1.5; }

    /* ===== Voices ===== */
    .aa-l7 .voices { display: grid; grid-template-columns: 1fr; gap: 1.25rem; }
    @media (min-width: 800px) { .aa-l7 .voices { grid-template-columns: 1fr 1fr; } }
    .aa-l7 .voice { padding: clamp(1.5rem, 3vw, 2.25rem); display: flex; flex-direction: column; }
    .aa-l7 .voice__mark { width: 34px; height: 34px; color: var(--gold-light); margin-bottom: 1rem; }
    .aa-l7 .voice__stars { display: flex; gap: 3px; margin: -0.5rem 0 1rem; color: var(--gold); }
    .aa-l7 .voice__stars svg { width: 18px; height: 18px; }
    .aa-l7 .voice blockquote { font-family: var(--font-serif); font-size: 1.35rem; line-height: 1.4; color: var(--navy); flex: 1; }
    .aa-l7 .voice footer { margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--border); font-family: var(--font-sans); font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold-ink); }

    /* ===== Fees ===== */
    .aa-l7 .fees { display: grid; grid-template-columns: 1fr; gap: 1.25rem; }
    @media (min-width: 900px) { .aa-l7 .fees { grid-template-columns: 1fr 1fr; } }
    .aa-l7 .fee { padding: clamp(1.5rem, 3vw, 2.25rem); display: flex; flex-direction: column; position: relative; transition: box-shadow .5s, border-color .5s, opacity .5s; }
    .aa-l7 .fee .label { display: block; margin-bottom: 0.4rem; }
    .aa-l7 .fee .h3 { margin-bottom: 1rem; }
    .aa-l7 .fee .price { padding-bottom: 1.25rem; border-bottom: 1px solid var(--border); margin-bottom: 1.25rem; }
    .aa-l7 .fee > p { color: var(--text-muted); font-size: 0.97rem; }
    .aa-l7 .fee .enrol-note { margin-top: 1.5rem; }
    .aa-l7 .fee .btn { margin-top: 1.25rem; }
    .aa-l7 .fee--fast .btn { margin-top: auto; }
    /* 0.2.17 (T-0217, F29b): "See if you qualify" sat 0 px under its paragraph whenever the cards stack (under 900 px).
       Cause: margin-top: auto replaced the 1.25rem every other fee button has, and auto is 0 with no spare height.
       Fix: the paragraph keeps the 1.25rem below it; side by side, auto still lines the two buttons up. */
    .aa-l7 .fee--fast > p { margin-bottom: 1.25rem; }
    .aa-l7 .fee .route-card__badge { position: absolute; top: 1.25rem; right: 1.25rem; }
    .aa-l7[data-route="standard"] .fee--standard, .aa-l7[data-route="fast"] .fee--fast { border-color: var(--navy); box-shadow: var(--shadow-float); }
    .aa-l7[data-route="standard"] .fee--standard .route-card__badge, .aa-l7[data-route="fast"] .fee--fast .route-card__badge { display: inline-block; }
    .aa-l7 .fees__foot { margin-top: 1.75rem; text-align: center; font-size: 0.92rem; color: var(--text-muted); }

    /* ===== FAQ ===== */
    .aa-l7 .faq { display: grid; grid-template-columns: 1fr; gap: 2.5rem; }
    /* 0.2.17 (T-0217, owner 21 Oct, FAQ width): the answers were capped at 62ch inside a 2fr column, so the question rows and
       lines ran 235 px past the text. The answer now uses the whole row.
       0.2.19 (T-0219, owner 21 Oct, "too narrow"): the list column is 2fr again (0.2.17 cut it to 36rem, a 576 px strip beside
       550 px of space); on one column the list fills the width. */
    @media (min-width: 900px) { .aa-l7 .faq { grid-template-columns: minmax(260px, 1fr) minmax(0, 2fr); gap: clamp(3rem, 6vw, 6rem); align-items: start; } .aa-l7 .faq__intro { position: sticky; top: calc(var(--header-h) + var(--jump-h) + 32px); } }
    .aa-l7 .faq__intro p { margin-top: 1.25rem; color: var(--text-muted); }
    /* 0.2.18 (T-0218): left-aligned under the left-aligned heading. 0.2.19 (T-0219): no 36rem cap, the list fills its column. */
    .aa-l7 .faq__list { border-top: 1px solid var(--border-strong); }
    .aa-l7 .faq__list details { border-bottom: 1px solid var(--border); }
    .aa-l7 .faq__list summary { list-style: none; display: grid; grid-template-columns: 1fr 28px; gap: 1rem; align-items: center; padding: 1.2rem 0; cursor: pointer; font-family: var(--font-serif); font-size: 1.32rem; font-weight: 600; color: var(--navy); transition: color .2s; }
    .aa-l7 .faq__list summary::-webkit-details-marker { display: none; }
    .aa-l7 .faq__list summary:hover { color: var(--gold-ink); }
    .aa-l7 .faq__plus { position: relative; width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--border-strong); }
    .aa-l7 .faq__plus::before, .aa-l7 .faq__plus::after { content: ''; position: absolute; left: 50%; top: 50%; background: var(--navy); transition: transform .3s var(--ease); }
    .aa-l7 .faq__plus::before { width: 11px; height: 1.5px; transform: translate(-50%, -50%); }
    .aa-l7 .faq__plus::after { width: 1.5px; height: 11px; transform: translate(-50%, -50%); }
    .aa-l7 details[open] .faq__plus::after { transform: translate(-50%, -50%) rotate(90deg); }
    .aa-l7 .faq__list details > div { padding: 0 2.75rem 1.4rem 0; color: var(--text-muted); }

    /* ===== Next step (glowing prospectus, from the homepage) ===== */
    .aa-l7 .next { background: linear-gradient(160deg, var(--navy-deep) 0%, var(--navy-900) 100%); color: var(--on-navy); }
    @property --ang { syntax: "<angle>"; initial-value: 0deg; inherits: false; }
    .aa-l7 .pglow { position: relative; border-radius: 22px; padding: 2px; isolation: isolate; }
    .aa-l7 .pglow::after { content: ''; position: absolute; inset: 0; border-radius: inherit; z-index: 0; background: conic-gradient(from var(--ang), var(--gold-light), var(--gold), var(--blue), var(--blue-light), var(--gold), var(--gold-light)); animation: l7-pglow-spin 6s linear infinite; }
    .aa-l7 .pglow::before { content: ''; position: absolute; inset: -8px; border-radius: 28px; z-index: -1; opacity: 0.7; background: conic-gradient(from var(--ang), var(--gold-light), var(--gold), var(--blue), var(--blue-light), var(--gold), var(--gold-light)); filter: blur(26px); animation: l7-pglow-spin 6s linear infinite; }
    @keyframes l7-pglow-spin { to { --ang: 360deg; } }
    .aa-l7 .pglow__card { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr; gap: 2rem; align-items: center; border-radius: 20px; padding: clamp(1.75rem, 3.5vw, 3rem); background: var(--cream); color: var(--text-main); }
    @media (min-width: 800px) { .aa-l7 .pglow__card { grid-template-columns: auto 1fr; gap: clamp(2rem, 4vw, 3.5rem); } }
    .aa-l7 .pglow__img { width: clamp(140px, 18vw, 200px); height: auto; border-radius: 4px; box-shadow: 0 24px 50px rgba(18,23,43,0.35); transform: rotate(-3deg); margin: 0 auto; }
    .aa-l7 .pglow__card h2 { color: var(--navy); }
    .aa-l7 .pglow__card h2 em { color: var(--gold-text); }
    .aa-l7 .pglow__card .lead { margin: 0.75rem 0 1.5rem; max-width: 46ch; }
    .aa-l7 .next__actions { display: flex; flex-wrap: wrap; gap: 0.75rem 1rem; }
    .aa-l7 .next__contact { margin-top: 1.25rem; font-size: 0.95rem; color: var(--text-muted); }
    .aa-l7 .next__contact a { color: var(--navy); border-bottom: 1px solid var(--gold); font-weight: 600; }
    @media (prefers-reduced-motion: reduce) { .aa-l7 .pglow::after, .aa-l7 .pglow::before { animation: none; } }

    /* ===== Sticky CTA bar ===== */
    /* 0.2.1 (T-0201, L5): hidden means hidden. translateY(110%) alone left about 17px of the floating bar on screen at
       1024px and wider (its 1.5rem bottom offset was not cleared). visibility is switched after the slide, so the
       bar is neither seen nor reachable while hidden; level-7.js also makes it inert. */
    .aa-l7 .cta-bar { position: fixed; z-index: 95; left: 0; right: 0; bottom: 0; background: rgba(18,23,43,0.96); backdrop-filter: blur(12px); color: var(--white); transform: translateY(calc(100% + 2rem)); visibility: hidden; transition: transform .5s var(--ease), visibility 0s linear .5s; border-top: 1px solid rgba(255,255,255,0.1); }
    .aa-l7 .cta-bar.is-visible { transform: none; visibility: visible; transition: transform .5s var(--ease), visibility 0s; }
    .aa-l7 .cta-bar .cta-bar__close { flex: none; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; color: var(--on-navy); cursor: pointer; }
    .aa-l7 .cta-bar .cta-bar__close:hover, .aa-l7 .cta-bar .cta-bar__close:focus-visible { background: rgba(255,255,255,0.1); color: var(--white); }
    .aa-l7 .cta-bar__close svg { width: 18px; height: 18px; }
    .aa-l7 .cta-bar__inner { display: flex; align-items: center; gap: 1rem; padding: 0.7rem var(--px); max-width: var(--max-w); margin: 0 auto; }
    .aa-l7 .cta-bar__text { flex: 1; min-width: 0; line-height: 1.2; }
    .aa-l7 .cta-bar__text strong { display: block; font-family: var(--font-serif); font-size: 1.1rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .aa-l7 .cta-bar__text span { font-family: var(--font-sans); font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gold-light); }
    .aa-l7 .cta-bar .btn { min-height: 46px; padding: 0 1.3rem; font-size: 0.75rem; }
    .aa-l7 .cta-bar .btn-ghost-light { display: none; }
    /* 0.2.5 (T-0205): at 12px (was 9.9px and 11.2px) the button and the route label keep one line each on a phone with
       tighter letter-spacing, so the bar stays its 0.2.4 height. */
    @media (max-width: 639px) { .aa-l7 .cta-bar .btn { padding: 0 0.75rem; font-size: 0.75rem; letter-spacing: 0.05em; min-height: 42px; } .aa-l7 .cta-bar__text span { letter-spacing: 0.06em; white-space: nowrap; } .aa-l7 .cta-bar__text strong { font-size: 1rem; } .aa-l7 .cta-bar__inner { gap: 0.75rem; padding-block: 0.6rem; } }
    @media (min-width: 1024px) { .aa-l7 .cta-bar { left: auto; right: 1.5rem; bottom: 1.5rem; border-radius: 14px; border: 1px solid rgba(255,255,255,0.12); box-shadow: var(--shadow-float); max-width: 680px; } .aa-l7 .cta-bar__text strong { white-space: normal; font-size: 1rem; line-height: 1.2; } .aa-l7 .cta-bar__inner { padding: 0.8rem 1rem 0.8rem 1.4rem; } .aa-l7 .cta-bar .btn-ghost-light { display: inline-flex; } }

/* Prices section: payment plans and the two booking actions (T-0160). */
.routes__plans{margin-top:28px;text-align:center}
.routes__plans-note{max-width:64ch;margin:0 auto 18px;color:var(--muted)}
.routes__actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
@media(max-width:600px){.routes__actions .btn{width:100%}}

/*
 * 0.1.64 (T-0164, OF-1b): the sticky jump bar clears the header when the WordPress admin bar is showing.
 * Measured 2026-09-23: the header bar is 77px at every width and pins at the top of the viewport, or under the
 * admin bar when one is shown. `--header-h` had no admin-bar term, so signed in (header at 32..109) the header
 * covered 32px of the jump bar (owner's screenshot). The heights are WordPress core's own: 32px, 46px at
 * 782px and below, and none at 600px and below, where the admin bar scrolls away. Every sticky offset on this
 * page reads `--header-h`, so the jump bar, the route markers, the component stage and the FAQ intro all move
 * together.
 */
body.admin-bar .aa-l7 { --aa-l7-admin-bar-h: 32px; }
@media screen and (max-width: 782px) { body.admin-bar .aa-l7 { --aa-l7-admin-bar-h: 46px; } }
@media screen and (max-width: 600px) { body.admin-bar .aa-l7 { --aa-l7-admin-bar-h: 0px; } }

/*
 * 0.1.70 (T-0170, LW-V4 T3): body text on phones is at least 16px.
 * Measured 2026-09-23 on the live page at 375px: 126 body-copy blocks, about 60 of them between 13.6px and 15.7px
 * (card paragraphs, check lists, notices, footnotes). The QA standard for body text on phones is 16px (1rem here:
 * the root is 16px). This block only raises font-size, only below 640px, and only on body copy. Labels, eyebrows,
 * badges, small-caps table heads and the source pills stay small by design; nothing else changes.
 */
@media (max-width: 639px) {
  .aa-l7 .enrol-note,
  .aa-l7 .fee-card .check-list,
  .aa-l7 .fee-card__phone,
  .aa-l7 .proof__cell > span,
  .aa-l7 .why__year span,
  .aa-l7 .comp__parts span,
  .aa-l7 .seg button span,
  .aa-l7 .day p,
  .aa-l7 .rem p,
  .aa-l7 .entry p,
  .aa-l7 .entry__intl,
  .aa-l7 .choose__btn > span > span,
  .aa-l7 .route-card__you div > span,
  .aa-l7 .route-card__body > p,
  .aa-l7 .route-card__inc .check-list,
  .aa-l7 .route-card__note,
  .aa-l7 .feat__row p,
  .aa-l7 .bcam .check-list,
  .aa-l7 .sheet__table td,
  .aa-l7 .sheet__caption p,
  .aa-l7 .sheets__foot,
  .aa-l7 .diploma__sub,
  .aa-l7 .hold__tile p,
  .aa-l7 .fee > p,
  .aa-l7 .fees__foot,
  .aa-l7 .next__contact { font-size: 1rem; }
}

    /* 0.1.89 (V6 W3): the hero title wrapped to six lines at 1440 x 900 (5.8rem) and pushed the lead and the actions
       below the fold; sized to the copy column. Figures in facts and prices use lining numerals like the rest of the site. */
    .aa-l7 .hero .h1 { font-size: clamp(2.4rem, 4.6vw, 4.4rem); }
    .aa-l7 .hero__facts dd, .aa-l7 .price, .aa-l7 .cta-bar__text strong { font-variant-numeric: lining-nums; }
    .aa-l7 .cta-bar [hidden] { display: none; }
    /* 0.1.97 (V6 W12.3 rows 5, 6): under 640px the bar's course and price line wraps instead of ending in "£8..."; under
       560px the wide "Mornings" card puts its three icons above the text so the text keeps the card's width. */
    @media (max-width: 639px) { .aa-l7 .cta-bar__text strong { white-space: normal; overflow: visible; text-overflow: clip; font-size: 0.95rem; line-height: 1.25; } }
    @media (max-width: 559px) { .aa-l7 .day--wide { grid-template-columns: 1fr; } .aa-l7 .day--wide .day__icons svg { width: 30px; height: 30px; } }
