/*
 * Shared single-offering presentation, approved original course direction.
 * Loaded only on WooCommerce product routes after programme.css.
 *
 * 0.2.5 (T-0205, HQ qa run 16 Oct): reveal never hides a focused section (7); "Choose a date" in the jump nav on a
 * dark gold that passes WCAG AA; breadcrumb links 44px tall on phones; no text under 12px (every label that was
 * .64rem to .74rem is .75rem).
 */
.aa-offering {
  --aa-course-navy: #252d4c;
  --aa-course-navy-deep: #171d35;
  --aa-course-gold: #a0895e;
  --aa-course-gold-light: #c9b184;
  --aa-course-paper: #fbfaf8;
  --aa-course-cream: #f3eee7;
  --aa-course-ink: #20263c;
  --aa-course-body: #3e4352;
  --aa-course-muted: #6c6872;
  --aa-course-line: rgba(37, 45, 76, .14);
  --aa-course-shadow: 0 20px 48px rgba(37, 45, 76, .10);
  /*
   * 0.1.38 (T-0138, DEC-79): the course surface re-points the header-clearance token to 88px, the number
   * `.aa-offering .aa-booking` already uses below, so the anchor bar and the sticky booking sidebar agree.
   * Defined here rather than repeated at each use site, so both the bar and every scroll target derive
   * from one value on this surface.
   */
  /*
   * 0.1.64 (T-0164, OF-1a): 77px, the measured height of the sticky header bar (`.aa-head-bar`, 77px at 390,
   * 768, 1024, 1440 and 1920 on 2026-09-23). At 88 an 11px strip of page showed between the header and the
   * jump nav (owner's screenshot). The booking sidebar keeps its 88 through its own rule below.
   */
  --aa-head-offset: 77px;
  background: var(--aa-course-paper);
}

.aa-offering .aa-shell { width: min(100%, 1240px); }
.aa-offering .aa-section { padding-block: clamp(4rem, 7vw, 6.5rem); }
.aa-offering .aa-section__heading { margin-bottom: clamp(1.6rem, 3vw, 2.5rem); }
.aa-offering .aa-section__heading h2 { max-width: 20ch; }
.aa-offering .aa-section__heading--center h2 { margin-inline: auto; }
.aa-offering .aa-kicker { color: #816425; font-size: .76rem; letter-spacing: .14em; }
.aa-offering .aa-lede { font-size: clamp(1.08rem, 1.5vw, 1.22rem); line-height: 1.6; }
.aa-offering .aa-button { border-radius: 5px; min-height: 54px; padding: 1rem 1.5rem; }
.aa-offering .aa-button--light { background: #fff; color: var(--aa-course-navy); }
.aa-offering .aa-button--light:hover { background: var(--aa-course-gold-light); color: var(--aa-course-navy-deep); transform: translateY(-2px); }
/* 0.2.13 (T-0213, WooCommerce audit 20 Oct 2026 MED-1, approved): a <button class="aa-button"> (the online course's
   "Book now") took the Elementor Kit's button type, `.elementor-kit-6 button` (0,1,1): Arial 17px 500, sentence case. The
   theme's button type and colours are restated for buttons on the course page at (0,2,1) and, for hover, (0,3,1), above the
   Kit's hover (0,2,1). Links styled as .aa-button were never affected. */
.aa-offering button.aa-button { font-family: var(--aa-sans); font-size: .84rem; font-weight: 700; letter-spacing: .085em; line-height: 1.2; text-transform: uppercase; }
.aa-offering button.aa-button--primary { background-color: var(--aa-navy); color: #fff; }
.aa-offering button.aa-button--primary:hover,
.aa-offering button.aa-button--primary:focus-visible { background-color: var(--aa-gold-ink); color: #fff; }
/* 0.2.13 (T-0213, WooCommerce audit LOW-2, approved): the "<course> is in your basket." notice on the course page and its
   "Review your booking" button kept WooCommerce's grey notice and grey button (woocommerce.css, the button at (0,2,1)).
   The theme's notice and primary button, at (0,3,0) and (0,4,0). */
.aa-offering .woocommerce-notices-wrapper :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) {
  background-color: #fff; border: 1px solid var(--aa-course-line); border-radius: 8px; border-top: 3px solid #256b4c;
  color: var(--aa-course-ink); font-family: var(--aa-body-font);
}
.aa-offering .woocommerce-notices-wrapper .woocommerce-info { border-top-color: var(--aa-gold-ink); }
.aa-offering .woocommerce-notices-wrapper .woocommerce-error { border-top-color: #a63831; }
.aa-offering .woocommerce-notices-wrapper :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) .button {
  background-color: var(--aa-navy); border: 1px solid var(--aa-navy); border-radius: 6px; color: #fff; font-family: var(--aa-sans);
  font-size: .78rem; font-weight: 700; letter-spacing: .07em; line-height: 1.2; padding: .7rem 1.1rem; text-decoration: none; text-transform: uppercase;
}
.aa-offering .woocommerce-notices-wrapper :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) .button:hover,
.aa-offering .woocommerce-notices-wrapper :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) .button:focus-visible {
  background-color: var(--aa-gold-ink); border-color: var(--aa-gold-ink); color: #fff;
}

/* Image-led hero with the booking decision visible above the fold. */
.aa-offering .aa-offering-hero {
  background: var(--aa-course-paper);
  padding-block: clamp(2.2rem, 5vw, 4.5rem);
}
.aa-offering .aa-offering-hero__grid { align-items: start; gap: clamp(2rem, 4.2vw, 3.8rem); grid-template-columns: minmax(0, 1fr); }
.aa-offering .aa-offering-hero__media {
  background: var(--aa-course-cream);
  border-radius: 15px;
  box-shadow: 0 22px 52px rgba(37, 45, 76, .13);
  margin: 0;
}
.aa-offering .aa-offering-hero__media img { aspect-ratio: 16 / 10; object-position: center top; }
.aa-offering .aa-offering-hero__copy { margin-top: clamp(1.5rem, 3vw, 2.15rem); }
.aa-offering .aa-offering-hero__story h1 {
  font-size: clamp(2.5rem, 4.1vw, 4rem);
  line-height: 1;
  max-width: 18ch;
}
.aa-offering .aa-offering-hero__story .aa-lede { margin-top: .65rem; max-width: 51ch; }
.aa-offering .aa-offering-hero__story .aa-lede p { margin: 0; }
.aa-offering-hero__classification { color: var(--aa-course-muted); font-family: var(--aa-sans); font-size: .78rem; margin: .55rem 0 .7rem; }
.aa-offering-hero__classification strong { color: #765d2b; font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; }
.aa-offering-hero__chips { display: flex; flex-wrap: wrap; gap: .65rem; list-style: none; margin: 1.25rem 0 0; padding: 0; }
.aa-offering-hero__chips li { background: #fff; border: 1px solid rgba(190, 154, 80, .32); border-radius: 999px; display: grid; gap: .08rem; min-width: 8rem; padding: .62rem .9rem; }
.aa-offering-hero__chips span { color: #765d2b; font-family: var(--aa-sans); font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.aa-offering-hero__chips strong { color: var(--aa-course-ink); font-family: var(--aa-serif); font-size: 1rem; font-weight: 600; }

.aa-offering .aa-booking {
  background: #fff;
  border-radius: 15px;
  box-shadow: var(--aa-course-shadow);
  padding: clamp(1.25rem, 2.5vw, 1.7rem);
}
.aa-offering .aa-booking__price {
  align-items: baseline;
  border-bottom: 1px solid var(--aa-course-line);
  display: flex;
  font-size: clamp(2rem, 3.2vw, 2.65rem);
  margin-bottom: 1.1rem;
  padding-bottom: 1rem;
}
.aa-offering .aa-booking h2 { font-size: clamp(1.55rem, 2.3vw, 2rem); margin-bottom: .9rem; }
.aa-offering .aa-registration__summary {
  background: var(--aa-course-cream);
  border: 0;
  border-radius: 7px;
  color: var(--aa-course-body);
  margin: 0 0 .8rem;
  padding: .7rem .8rem;
}
.aa-offering .aa-registration__sessions { gap: .55rem; max-height: 390px; overflow-y: auto; padding: 2px 4px 2px 2px; }
.aa-offering .aa-registration__session {
  align-items: center;
  background: #fff;
  border-color: rgba(37, 45, 76, .22);
  border-radius: 9px;
  display: grid;
  gap: .7rem;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: .78rem .85rem;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.aa-offering .aa-registration__session:hover { border-color: var(--aa-course-gold); box-shadow: 0 8px 20px rgba(37, 45, 76, .07); transform: translateY(-1px); }
.aa-offering .aa-registration__session h3 { font-family: var(--aa-sans); font-size: .97rem; font-weight: 700; }
.aa-offering .aa-registration__session-copy p:not(.aa-registration__state) { color: var(--aa-course-muted); font-size: .9rem; margin: .18rem 0 0; }
.aa-offering .aa-registration__state { color: #765d2b; font-size: .75rem; margin: .25rem 0 0; }
.aa-offering .aa-registration__session-form { margin: 0; }
.aa-offering .aa-registration__session-form .aa-button {
  background: transparent;
  border-color: transparent;
  box-shadow: none;
  color: var(--aa-course-navy);
  font-size: .75rem;
  min-height: 42px;
  padding: .55rem .65rem;
  white-space: nowrap;
}
.aa-offering .aa-registration__session-form .aa-button:hover { background: var(--aa-course-navy); color: #fff; transform: none; }
.aa-offering .aa-registration__session:has(.aa-registration__session-form) { border-color: var(--aa-course-gold); }
.aa-offering .aa-registration__session > .aa-note { grid-column: 1 / -1; margin: .25rem 0 0; }
.aa-offering .aa-booking__recovery p { margin: 0 0 1rem; }
/* 0.1.25 (P2-B5 §5): contact link under WooCommerce "Out of stock" for a simple programme. */
.aa-offering .aa-booking__recovery--native { border-top: 1px solid var(--aa-course-line); margin-top: 1rem; padding-top: 1rem; }
.aa-offering .aa-booking__recovery--native .aa-button { justify-content: center; min-height: 44px; width: 100%; }

/* Compact proof ribbon from populated, verifiable sections only. */
.aa-course-proof { background: var(--aa-course-navy); color: #fff; }
.aa-course-proof__inner { display: grid; gap: .8rem 1.5rem; padding-block: 1.15rem; }
.aa-course-proof p { align-items: center; display: flex; font-size: .94rem; gap: .6rem; margin: 0; }
.aa-course-proof p span { color: var(--aa-course-gold-light); font-size: .76rem; }
.aa-course-proof p > span:last-child { color: inherit; font-size: inherit; }
.aa-course-proof strong { color: var(--aa-course-gold-light); display: block; font-size: .82rem; margin-top: .12rem; }

/*
 * 0.1.38 (T-0138, DEC-79): was `top: 0`, which pinned the bar under the fixed header.
 * 0.1.39 (T-0139, DEC-85): plus the admin bar's height, which is 0 when there is no admin bar. Signed in, this
 * surface was the one the owner saw: 88 against a header ending at 109 at 1280 hid the top 21px of the bar, and
 * at 768 a header ending at 123 hid 35px. --aa-admin-bar-h is defined in programme.css, which is this
 * stylesheet's enqueue dependency, so it is always present when this rule is read.
 */
.aa-offering .aa-jump-nav { box-shadow: 0 5px 18px rgba(37, 45, 76, .05); top: calc(var(--aa-head-offset, 88px) + var(--aa-admin-bar-h, 0px)); }
.aa-offering .aa-jump-nav__inner { padding-block: .65rem; }
.aa-offering .aa-jump-nav a { border: 0; border-radius: 5px; padding: .58rem .75rem; }

/* Eligibility mirrors the approved yes/no decision layout. */
.aa-offering .aa-decision-grid { gap: 1.35rem; }
.aa-offering .aa-decision { border-radius: 15px; box-shadow: 0 11px 30px rgba(37, 45, 76, .06); }
.aa-offering .aa-decision h3 {
  align-items: center;
  display: flex;
  font-family: var(--aa-sans);
  font-size: .79rem;
  gap: .75rem;
  letter-spacing: .1em;
  padding: 1.15rem 1.3rem;
  text-transform: uppercase;
}
.aa-offering .aa-decision h3::before {
  background: #267452;
  border-radius: 50%;
  color: #fff;
  content: "✓";
  display: grid;
  flex: 0 0 36px;
  height: 36px;
  place-items: center;
}
.aa-offering .aa-decision--alternative h3::before { background: #b23b34; content: "×"; font-size: 1.25rem; }
.aa-offering .aa-decision--yes h3 { background: linear-gradient(100deg, rgba(38, 116, 82, .10), rgba(38, 116, 82, .02)); }
.aa-offering .aa-decision--alternative h3 { background: linear-gradient(100deg, rgba(178, 59, 52, .09), rgba(178, 59, 52, .02)); }
.aa-offering .aa-decision li { font-size: 1.02rem; line-height: 1.55; padding-block: .9rem; }
.aa-offering .aa-decision--alternative li::before { color: #b23b34; content: "×"; }

.aa-offering .aa-reading-grid { align-items: start; }
.aa-offering .aa-reading-grid .aa-prose { background: #fff; border-left: 2px solid var(--aa-course-gold); padding: 1.25rem 1.5rem; }
.aa-offering .aa-outcome-grid { gap: 1.25rem; }
.aa-offering .aa-outcome { border-radius: 14px; padding: 1.45rem; }
.aa-offering .aa-outcome p { font-size: 1.02rem; line-height: 1.6; }

/* At-a-glance values are derived from populated view-model sections. */
.aa-course-details__grid {
  background: var(--aa-course-line);
  border: 1px solid var(--aa-course-line);
  border-radius: 14px;
  display: grid;
  gap: 1px;
  margin: 0;
  overflow: hidden;
}
.aa-course-details__grid > div { background: #fff; min-width: 0; padding: 1.25rem; }
.aa-course-details__icon { color: var(--aa-course-gold); display: block; font-size: 1.45rem; line-height: 1; margin-bottom: .75rem; }
.aa-course-details dt { color: #765d2b; font-family: var(--aa-sans); font-size: .76rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.aa-course-details dd { color: var(--aa-course-ink); font-family: var(--aa-serif); font-size: 1.2rem; line-height: 1.3; margin: .35rem 0 0; }
.aa-course-details dd small { color: var(--aa-muted); display: block; font-family: var(--aa-sans); font-size: .88rem; line-height: 1.45; margin-top: .4rem; }
.aa-course-details__inclusions { background: #fff; border-left: 3px solid var(--aa-course-gold); margin-top: 1rem; padding: 1.25rem clamp(1.25rem, 3vw, 2rem); }
.aa-course-details__inclusions h3 { margin: 0 0 .75rem; }
.aa-course-details__inclusions ul { columns: 1; margin: 0; padding-left: 1.15rem; }
.aa-course-details__inclusions li { break-inside: avoid; margin-bottom: .45rem; }
.aa-prerequisite { background: #fff; border-left: 3px solid var(--aa-course-gold); margin-top: 1.25rem; padding: 1rem 1.2rem; }
.aa-prerequisite strong { color: #765d2b; font-family: var(--aa-sans); font-size: .76rem; letter-spacing: .08em; text-transform: uppercase; }
.aa-prerequisite p { margin: .4rem 0 0; }
.aa-practical-facts { display: grid; gap: .75rem; margin: 1.25rem 0 0; }
.aa-practical-facts > div { border-top: 1px solid rgba(255, 255, 255, .2); padding-top: .75rem; }
.aa-practical-facts dt { color: var(--aa-course-gold-light); font-family: var(--aa-sans); font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.aa-practical-facts dd { color: #fff; margin: .3rem 0 0; }

.aa-offering .aa-module-grid { gap: 1.4rem; }
.aa-offering .aa-module { background: #fff; border: 1px solid var(--aa-course-line); border-left: 3px solid var(--aa-course-gold-light); border-radius: 0 12px 12px 0; padding: 1.25rem; }

/* Timetable keeps the approved timeline rhythm, not a generic card list. */
.aa-offering .aa-timetable__day { border-radius: 15px; padding: clamp(1.2rem, 3vw, 2rem); }
.aa-offering .aa-timetable__day li { grid-template-columns: 8.2rem minmax(0, 1fr) auto; padding: .85rem 0; }
.aa-offering .aa-timetable__day ol { border-left: 2px solid var(--aa-course-line); margin-left: .4rem; padding-left: 1.2rem; }
.aa-offering .aa-timetable__day li { position: relative; }
.aa-offering .aa-timetable__day li::before { background: #fff; border: 2px solid var(--aa-course-gold); border-radius: 50%; content: ""; height: 10px; left: -1.57rem; position: absolute; top: 1.45rem; width: 10px; }
.aa-offering .aa-timetable__time-range { flex-wrap: nowrap; }

.aa-offering .aa-feature-band { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
.aa-offering .aa-feature-band figure { box-shadow: 0 18px 40px rgba(0, 0, 0, .18); }
.aa-offering .aa-feature-band img { aspect-ratio: 16 / 10; }

/*
 * 0.1.42 (T-0142, A11Y, WCAG 1.4.3): the WooCommerce breadcrumb renders #767676 on #fbfaf8, which
 * is 4.35:1 against a 4.5 threshold. It is `nav.woocommerce-breadcrumb` sitting directly inside
 * `main.aa-offering`, verified on the rendered page, and this stylesheet loads on product pages
 * only, so the fix belongs here and reaches nothing else. The colour is this theme's existing
 * --aa-muted token at 6.15:1, chosen as the nearest token to the current grey that clears the
 * threshold rather than a new colour invented for the purpose.
 */
.aa-offering .woocommerce-breadcrumb,
.aa-offering .woocommerce-breadcrumb a { color: var(--aa-muted); }

.aa-offering .aa-person-grid { gap: 1.25rem; }
.aa-offering .aa-person { background: #fff; border-radius: 14px; box-shadow: 0 10px 28px rgba(37, 45, 76, .05); }
.aa-offering .aa-person img { aspect-ratio: 4 / 3; object-position: center top; }

.aa-course-venues__layout { align-items: start; display: grid; gap: clamp(2rem, 5vw, 4rem); }
.aa-course-venues__list { display: grid; gap: .8rem; }
.aa-course-venues__list > div { align-items: flex-start; background: var(--aa-course-cream); border: 1px solid var(--aa-course-line); border-radius: 12px; display: flex; gap: 1rem; padding: 1.1rem 1.2rem; }
.aa-course-venues__list > div > span { color: var(--aa-course-gold); font-size: 1.5rem; line-height: 1; }
.aa-course-venues__list h3 { font-size: 1.25rem; }
.aa-course-venues__list p { color: var(--aa-course-muted); font-size: .94rem; margin: .2rem 0 0; }

.aa-course-joining__layout { align-items: start; display: grid; gap: clamp(2rem, 5vw, 4rem); }
.aa-course-joining__list { display: grid; gap: .8rem; }
.aa-course-joining__list > div { align-items: flex-start; background: var(--aa-course-cream); border: 1px solid var(--aa-course-line); border-radius: 12px; display: flex; gap: 1rem; padding: 1.1rem 1.2rem; }
.aa-course-joining__list > div > span { color: var(--aa-course-gold); font-size: 1.5rem; line-height: 1; }
.aa-course-joining__list h3 { font-size: 1.25rem; }
.aa-course-joining__list p { color: var(--aa-course-muted); font-size: .94rem; margin: .2rem 0 0; }
.aa-course-joining__notes { margin-top: 1.2rem; }
.aa-course-joining__notes h3 { font-size: 1.1rem; }
.aa-course-joining__notes p { color: var(--aa-course-muted); margin: .4rem 0 0; max-width: 62ch; }

.aa-offering .aa-trust-band { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
.aa-offering .aa-mark-grid > div { box-shadow: 0 8px 20px rgba(37, 45, 76, .04); }

.aa-offering .aa-review-grid { gap: 1.25rem; }
.aa-offering .aa-review { background: var(--aa-course-paper); border-radius: 14px; padding: 1.5rem; position: relative; }
.aa-offering .aa-review::before { color: var(--aa-course-gold); content: "★★★★★"; display: block; font-size: .82rem; letter-spacing: .16em; margin-bottom: .8rem; }
.aa-offering .aa-review blockquote p { font-size: 1.3rem; }

.aa-offering .aa-faq-layout { grid-template-columns: minmax(15rem, .7fr) minmax(0, 1.3fr); }
.aa-offering .aa-faq-list summary { padding-block: 1.15rem; }
.aa-offering .aa-section--navy .aa-offering-card { color: var(--aa-course-body); }
.aa-offering .aa-section--navy .aa-offering-card h3 { color: var(--aa-course-ink); }

.aa-course-closing { background: linear-gradient(145deg, var(--aa-course-navy), var(--aa-course-navy-deep)); color: #fff; padding-block: clamp(3.5rem, 6vw, 5.5rem); }
.aa-course-closing__inner { align-items: center; display: grid; gap: 1.5rem; }
.aa-course-closing h2 { color: #fff; font-size: clamp(2rem, 3.5vw, 3.2rem); }
.aa-course-closing p:not(.aa-kicker) { color: rgba(255, 255, 255, .8); margin: .75rem 0 0; max-width: 58ch; }
.aa-course-closing .aa-kicker { color: var(--aa-course-gold-light); }

@media (min-width: 700px) {
  .aa-course-proof__inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .aa-course-details__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .aa-course-details__inclusions ul { columns: 2; column-gap: 2rem; }
  .aa-course-closing__inner { grid-template-columns: minmax(0, 1fr) auto; }
}

@media (min-width: 900px) {
  .aa-course-proof__inner { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .aa-course-details__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .aa-course-venues__layout { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
  .aa-course-joining__layout { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
}

@media (min-width: 1000px) {
  .aa-offering .aa-offering-hero__grid { grid-template-columns: minmax(0, 1.35fr) minmax(330px, .95fr); }
  /* 0.1.39 (T-0139, DEC-85): was the literal `top: 88px`, the same pre-existing defect as the bar beside it. */
  /* 0.1.64 (T-0164): the card keeps its 11px of air under the header; only the jump nav moved to flush. */
  .aa-offering .aa-booking { position: sticky; top: calc(var(--aa-head-offset, 77px) + 11px + var(--aa-admin-bar-h, 0px)); }
  /* 0.2.6 (T-0206, FB4 C47, Lara: "please centralise green criteria box as it's the only one"). CAUSE: this two-column
     rule (0,2,0) also reached the single box's grid and outranked programme.css's centred single column (0,1,0), so a
     second rule pinned the single grid to one .75fr track: 75% of the grid, from the left edge. FIX: the two columns
     are for two boxes only; the single grid keeps programme.css's one centred column (760px, margin auto). */
  .aa-offering .aa-decision-grid:not(.aa-decision-grid--single) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .aa-offering .aa-outcome-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .aa-offering .aa-person-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .aa-offering .aa-review-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 999px) {
  .aa-offering .aa-offering-hero__story { display: flex; flex-direction: column; }
  .aa-offering .aa-offering-hero__copy { margin: 0 0 1.4rem; order: 1; }
  .aa-offering .aa-offering-hero__media { order: 2; }
  .aa-offering .aa-feature-band,
  .aa-offering .aa-trust-band,
  .aa-offering .aa-faq-layout { grid-template-columns: 1fr; }
}

@media (max-width: 699px) {
  .aa-offering .aa-shell { width: auto; }
  .aa-offering .aa-section { padding-block: clamp(3.2rem, 14vw, 4.5rem); }
  .aa-course-proof__inner { padding-block: 1rem; }
  .aa-offering .aa-registration__session { grid-template-columns: 1fr; }
  .aa-offering .aa-registration__session-form .aa-button { border-color: var(--aa-course-navy); width: 100%; }
  .aa-offering .aa-timetable__day li { grid-template-columns: 1fr; gap: .45rem; }
  .aa-offering .aa-timetable__time-range { justify-self: start; }
  .aa-offering .aa-timetable__day li::before { top: 1.25rem; }
  .aa-course-closing .aa-button { width: 100%; }
}

@media (max-width: 390px) {
  .aa-offering .aa-offering-hero__story h1 { font-size: 2.25rem; }
  .aa-offering .aa-booking { padding: 1.05rem; }
  .aa-course-details__grid > div { padding: 1rem; }
}

@media (prefers-reduced-motion: reduce) {
  .aa-offering .aa-registration__session,
  .aa-offering .aa-button { transition: none; }
}

/*
 * 0.1.51 (T-0151, IF-10 round 1): the single course template, polished. Measured first on the live 247 and
 * 208 pages at 1440 and 375. Each block below names the defect or the improvement it exists for.
 */

/* 1. Breadcrumb: inside the shell (functions.php wraps it), small, quiet, with room above and below. */
.aa-offering .aa-crumbs { background: var(--aa-course-paper); border-bottom: 1px solid var(--aa-course-line); }
.aa-offering .aa-crumbs__inner { align-items: center; display: flex; flex-wrap: wrap; font-family: var(--aa-sans); font-size: .78rem; gap: .25rem .5rem; letter-spacing: .02em; padding-block: .8rem; }
.aa-offering .aa-crumbs a { color: var(--aa-muted); text-decoration: none; }
.aa-offering .aa-crumbs a:hover { color: var(--aa-course-navy); text-decoration: underline; text-underline-offset: 3px; }
.aa-offering .aa-crumbs__sep { color: var(--aa-course-gold); }
.aa-offering .aa-crumbs__inner > :last-child { color: var(--aa-course-ink); font-weight: 600; } /* 0.2.5: the current page is now a span (functions.php), so this rule reaches it */

/* 2. Hero: copy first, then the photograph, at every width. The title is the first thing on the page. */
.aa-offering .aa-offering-hero { padding-block: clamp(1.8rem, 4vw, 3.6rem) clamp(2.2rem, 5vw, 4.5rem); }
.aa-offering .aa-offering-hero__story { display: flex; flex-direction: column; }
.aa-offering .aa-offering-hero__copy { margin: 0 0 clamp(1.4rem, 3vw, 2.2rem); order: 1; }
.aa-offering .aa-offering-hero__media { order: 2; }
.aa-offering .aa-offering-hero__media img { aspect-ratio: 16 / 9; }
.aa-offering .aa-offering-hero__story h1 { margin-top: .35rem; }
.aa-offering-hero__pathway { color: var(--aa-course-muted); font-family: var(--aa-sans); font-size: .82rem; margin: .7rem 0 0; }
.aa-offering-hero__pathway span { color: #765d2b; font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.aa-offering-hero__pathway span::after { content: " ·"; }
.aa-offering-hero__chips { gap: .5rem; margin-top: 1.1rem; }
.aa-offering-hero__chips li { gap: .05rem; min-width: 0; padding: .5rem .85rem; transition: border-color .2s ease, transform .2s var(--aa-ease); }
.aa-offering-hero__chips li:hover { border-color: var(--aa-course-gold); transform: translateY(-1px); }
.aa-offering-hero__chips span { font-size: .75rem; letter-spacing: .1em; }
.aa-offering-hero__chips strong { font-size: .98rem; }
.aa-offering-hero__next { align-items: center; color: var(--aa-course-body); display: flex; flex-wrap: wrap; font-family: var(--aa-sans); font-size: .9rem; gap: .45rem; margin: 1.15rem 0 0; }
.aa-offering-hero__next strong { color: var(--aa-course-navy); font-weight: 700; }
.aa-offering-hero__next a { color: #765d2b; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.aa-offering-hero__next a:hover { color: var(--aa-course-navy); }
.aa-offering-hero__next-dot { background: #267452; border-radius: 50%; box-shadow: 0 0 0 4px rgba(38, 116, 82, .16); flex: 0 0 8px; height: 8px; width: 8px; }

/* 3. At a glance: the grid painted its line colour through empty tracks, which read as grey blocks. Each cell
 *    now carries its own right and bottom border and the container clips the extra pixel. */
.aa-course-details__grid { background: #fff; gap: 0; }
.aa-course-details__grid > div { border-bottom: 1px solid var(--aa-course-line); border-right: 1px solid var(--aa-course-line); margin: 0 -1px -1px 0; transition: background .2s ease; }
.aa-course-details__grid > div:hover { background: var(--aa-course-paper); }

/* 4. Proof ribbon: pills that wrap and centre, the value inline. No empty columns. */
.aa-course-proof__inner { align-items: center; display: flex; flex-wrap: wrap; gap: .6rem .8rem; justify-content: center; padding-block: .95rem; }
.aa-course-proof__item { align-items: center; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .14); border-radius: 999px; display: inline-flex; font-family: var(--aa-sans); font-size: .86rem; gap: .55rem; margin: 0; padding: .5rem .95rem .5rem .75rem; }
.aa-course-proof__icon { color: var(--aa-course-gold-light); font-size: .75rem; }
.aa-course-proof__text { color: #fff; }
.aa-course-proof__text strong { color: var(--aa-course-gold-light); display: inline; font-size: inherit; font-weight: 700; margin: 0; }

/* 5. Venues: one sentence under the heading, each venue a row that says how many dates it can take and
 *    links to the date list. */
.aa-course-venues__item { align-items: center; background: var(--aa-course-cream); border: 1px solid var(--aa-course-line); border-radius: 12px; color: inherit; display: flex; gap: 1rem; padding: 1rem 1.2rem; text-decoration: none; transition: border-color .2s ease, transform .2s var(--aa-ease), box-shadow .2s ease; }
.aa-course-venues__item:hover { border-color: var(--aa-course-gold); box-shadow: 0 10px 24px rgba(37, 45, 76, .08); transform: translateY(-2px); }
.aa-course-venues__item > span:first-child { color: var(--aa-course-gold); font-size: 1.5rem; line-height: 1; }
.aa-course-venues__item > div { flex: 1; }
.aa-course-venues__item h3 { font-size: 1.25rem; margin: 0; }
.aa-course-venues__item p { color: var(--aa-course-muted); font-size: .94rem; margin: .2rem 0 0; }
.aa-course-venues__arrow { color: var(--aa-course-navy); font-size: 1.1rem; transition: transform .2s var(--aa-ease); }
.aa-course-venues__item:hover .aa-course-venues__arrow { transform: translateX(4px); }

/* 6. One testimonial reads as a statement, not a lonely card in a three-column grid. */
.aa-offering .aa-review:only-child { grid-column: 1 / -1; margin-inline: auto; max-width: 46rem; padding: 2rem clamp(1.5rem, 4vw, 2.6rem); text-align: center; }
.aa-offering .aa-review:only-child blockquote p { font-size: clamp(1.35rem, 2vw, 1.6rem); }

/* Booking card: the state is a pill, the summary is quieter, rows lift on hover (already), the note is short. */
.aa-offering .aa-registration__summary { font-size: .88rem; }
.aa-offering .aa-registration__state { background: rgba(37, 45, 76, .07); border-radius: 999px; color: var(--aa-course-muted); display: inline-block; font-family: var(--aa-sans); font-size: .75rem; font-weight: 700; letter-spacing: .08em; margin: .35rem 0 0; padding: .2rem .55rem; text-transform: uppercase; }
.aa-offering .aa-registration__state--open { background: rgba(38, 116, 82, .12); color: #1d5d40; }
.aa-offering .aa-note--quiet { color: var(--aa-course-muted); font-size: .82rem; }

/* 7. Reveal on scroll. Armed only by the class programme.js adds, so nothing is hidden without JavaScript.
   0.2.5 (T-0205, QA H.tabbable): a section is hidden only until it is revealed (.is-in) and never while it holds
   keyboard focus; focus shows it at once, with no fade, so Tab never lands on a FAQ question at opacity 0. */
.aa-offering.aa-js :is(.aa-section, .aa-course-proof, .aa-course-closing) > .aa-shell { transition: opacity .6s var(--aa-ease), transform .7s var(--aa-ease); }
.aa-offering.aa-js :is(.aa-section, .aa-course-proof, .aa-course-closing):not(.is-in) > .aa-shell:not(:focus-within) { opacity: 0; transform: translateY(18px); }
.aa-offering.aa-js :is(.aa-section, .aa-course-proof, .aa-course-closing) > .aa-shell:focus-within { transition: none; }
.aa-offering .aa-outcome,
.aa-offering .aa-module,
.aa-offering .aa-decision,
.aa-offering .aa-person { transition: box-shadow .25s ease, transform .25s var(--aa-ease); }
.aa-offering .aa-outcome:hover,
.aa-offering .aa-module:hover,
.aa-offering .aa-person:hover { box-shadow: 0 16px 36px rgba(37, 45, 76, .10); transform: translateY(-3px); }

/* 8. The phone booking bar. Fixed, one line, price and one button; removed from 1000px up where the card is sticky. */
.aa-offering-bar { background: rgba(255, 255, 255, .96); backdrop-filter: blur(8px); border-top: 1px solid var(--aa-course-line); bottom: 0; box-shadow: 0 -10px 30px rgba(37, 45, 76, .12); left: 0; padding-bottom: env(safe-area-inset-bottom); position: fixed; right: 0; z-index: 30; }
.aa-offering-bar[hidden] { display: none; }
.aa-offering-bar__inner { align-items: center; display: flex; gap: 1rem; justify-content: space-between; padding-block: .6rem; }
.aa-offering-bar__price { color: var(--aa-course-navy); font-family: var(--aa-serif); font-size: 1.35rem; font-weight: 600; line-height: 1; white-space: nowrap; }
.aa-offering-bar__price .woocommerce-Price-currencySymbol,
.aa-offering-bar__price small { font-size: .85em; }
.aa-offering-bar .aa-button { flex: 1 1 auto; min-height: 46px; padding: .7rem 1rem; }

@media (min-width: 1000px) {
  .aa-offering-bar { display: none; }
}

@media (max-width: 699px) {
  /* 0.2.5 (T-0205, QA C.tap): each breadcrumb link is a 44px tap target; the bar keeps its height (44px, was 41px). */
  .aa-offering .aa-crumbs__inner { padding-block: 0; }
  .aa-offering .aa-crumbs a { align-items: center; display: inline-flex; min-height: 44px; }
  .aa-offering .aa-offering-hero { padding-block: 1.4rem 2rem; }
  .aa-offering .aa-offering-hero__story h1 { font-size: clamp(2.1rem, 9vw, 2.6rem); }
  .aa-offering-hero__chips li { padding: .42rem .7rem; }
  .aa-offering-hero__next { font-size: .86rem; }
  .aa-course-proof__item { font-size: .8rem; padding: .42rem .8rem .42rem .65rem; }
  .aa-offering .aa-review:only-child { padding: 1.5rem 1.25rem; }
}

@media (prefers-reduced-motion: reduce) {
  /* 0.2.5 (T-0205): the reveal is not armed with reduced motion (programme.js), so no section is hidden here. */
  .aa-offering-hero__chips li,
  .aa-course-venues__item,
  .aa-course-venues__arrow,
  .aa-offering .aa-outcome,
  .aa-offering .aa-module,
  .aa-offering .aa-person { transition: none; }
}

/* 0.1.52 (T-0152): the phone date list. No inner scroll under 1000px; folded to five by programme.js. */
.aa-offering .aa-registration__more { background: transparent; border: 1px solid var(--aa-course-navy); border-radius: 7px; color: var(--aa-course-navy); cursor: pointer; display: block; font-family: var(--aa-sans); font-size: .8rem; font-weight: 700; letter-spacing: .06em; margin: .8rem 0 0; min-height: 44px; padding: .6rem 1rem; text-transform: uppercase; width: 100%; }
.aa-offering .aa-registration__more:hover,
.aa-offering .aa-registration__more:focus-visible { background: var(--aa-course-navy); color: #fff; }
.aa-offering .aa-registration__more[hidden] { display: none; }
@media (max-width: 999px) {
  .aa-offering .aa-registration__sessions { max-height: none; overflow: visible; padding: 2px; }
  .aa-offering .aa-registration__sessions.is-collapsed > .aa-registration__session:nth-child(n+6) { display: none; }
}

/* 0.1.53 (T-0153): places left, an amber pill on a nearly full date and beside the next date in the hero. */
.aa-offering .aa-registration__scarcity { background: rgba(178, 113, 30, .12); border-radius: 999px; color: #8a4f0b; display: inline-block; font-family: var(--aa-sans); font-size: .75rem; font-weight: 700; letter-spacing: .08em; margin: .35rem 0 0 .3rem; padding: .2rem .55rem; text-transform: uppercase; }
.aa-offering-hero__scarcity { background: rgba(178, 113, 30, .12); border-radius: 999px; color: #8a4f0b; font-size: .75rem; font-style: normal; font-weight: 700; letter-spacing: .06em; padding: .18rem .55rem; text-transform: uppercase; }

/* 0.1.55 (T-0155, IF-10 round 3): the closing band facts, the Register pill, the hero photograph. */
.aa-course-closing__act { display: grid; gap: 1rem; justify-items: start; }
.aa-course-closing__facts { display: flex; flex-wrap: wrap; gap: .75rem 1.75rem; margin: 0; }
.aa-course-closing__facts div { border-left: 2px solid var(--aa-course-gold-light); padding-left: .85rem; }
.aa-course-closing__facts dt { color: var(--aa-course-gold-light); font-family: var(--aa-sans); font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.aa-course-closing__facts dd { color: #fff; font-family: var(--aa-serif); font-size: 1.25rem; line-height: 1.2; margin: .15rem 0 0; }
.aa-course-closing__facts dd .woocommerce-Price-currencySymbol, .aa-course-closing__facts dd small { font-size: .85em; }
/* 0.2.5 (T-0205, QA H.axe color-contrast on 14 course pages): white on the brand gold #a0895e was 3.37:1 at 12.5px bold
   (AA needs 4.5:1). The button sits on the site's text gold, --aa-gold-ink #765d2b: 6.23:1. */
.aa-offering .aa-jump-nav__book { background: var(--aa-gold-ink); border-color: var(--aa-gold-ink); color: #fff; font-weight: 700; margin-left: auto; }
.aa-offering .aa-jump-nav__book:hover, .aa-offering .aa-jump-nav__book:focus-visible { background: var(--aa-course-navy); border-color: var(--aa-course-navy); color: #fff; }
.aa-offering .aa-jump-nav__book[aria-current="true"] { background: var(--aa-course-navy); border-color: var(--aa-course-navy); }
.aa-offering .aa-offering-hero__media { box-shadow: 14px 14px 0 0 rgba(201, 177, 132, .55), 0 22px 52px rgba(37, 45, 76, .13); overflow: hidden; }
.aa-offering .aa-offering-hero__media.is-parallax img { transform: scale(1.06); transition: transform .08s linear; will-change: transform; }
.aa-offering.aa-js .aa-offering-hero__media { animation: aa-hero-settle .9s var(--aa-ease) both; }
@keyframes aa-hero-settle { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@media (min-width: 1000px) {
  .aa-course-closing__act { justify-items: end; text-align: right; }
  .aa-course-closing__facts { justify-content: flex-end; }
}
@media (max-width: 699px) {
  .aa-course-closing__act { justify-items: stretch; }
  .aa-course-closing__facts dd { font-size: 1.1rem; }
  .aa-offering .aa-offering-hero__media { box-shadow: 8px 8px 0 0 rgba(201, 177, 132, .55); }
}
@media (prefers-reduced-motion: reduce) {
  .aa-offering.aa-js .aa-offering-hero__media { animation: none; }
  .aa-offering .aa-offering-hero__media.is-parallax img { transform: none; transition: none; }
}

/* 0.1.56 (T-0156, IF-10 round 4): the phone booking path. */
/* A date that cannot be booked is drawn quieter, so the eye lands on the first one that can. */
.aa-offering .aa-registration__session:not(:has(.aa-registration__session-form)) { background: #fbfaf8; border-style: dashed; }
.aa-offering .aa-registration__session:not(:has(.aa-registration__session-form)) h3 { color: var(--aa-course-muted); }
.aa-offering .aa-registration__session:not(:has(.aa-registration__session-form)):hover { border-color: rgba(37, 45, 76, .22); box-shadow: none; transform: none; }
/* The venue highlight: matched rows framed in gold, the others dimmed, one line to clear it. */
.aa-offering .aa-registration__venue-note { align-items: center; background: rgba(201, 177, 132, .16); border-radius: 7px; color: var(--aa-course-navy); display: flex; flex-wrap: wrap; font-family: var(--aa-sans); font-size: .82rem; font-weight: 600; gap: .35rem 1rem; margin: 0 0 .7rem; padding: .55rem .8rem; }
.aa-offering .aa-registration__venue-note[hidden] { display: none; }
.aa-offering .aa-registration__venue-note button { background: none; border: 0; color: var(--aa-course-navy); cursor: pointer; font: inherit; font-weight: 700; padding: 0; text-decoration: underline; text-underline-offset: 3px; }
.aa-offering .aa-registration__session.is-venue-match { border-color: var(--aa-course-gold); box-shadow: 0 0 0 3px rgba(201, 177, 132, .3); }
.aa-offering .aa-registration__session.is-venue-other { opacity: .42; }
/* 0.2.2 (T-0202, FB3 P79): the date a link chose with ?aa_date= (programme.js). A navy ring, so it reads as chosen
   rather than as the gold venue highlight above. */
.aa-offering .aa-registration__session.is-chosen { border-color: var(--aa-course-navy); box-shadow: 0 0 0 3px rgba(37, 45, 76, .22); background: #fffdf8; }
/* The timetable fold: the same button as the date list, five rows under 1000px until it is pressed. */
.aa-offering .aa-timetable__more { background: transparent; border: 1px solid var(--aa-course-navy); border-radius: 7px; color: var(--aa-course-navy); cursor: pointer; display: block; font-family: var(--aa-sans); font-size: .8rem; font-weight: 700; letter-spacing: .06em; margin: .8rem 0 0; min-height: 44px; padding: .6rem 1rem; text-transform: uppercase; width: 100%; }
.aa-offering .aa-timetable__more:hover,
.aa-offering .aa-timetable__more:focus-visible { background: var(--aa-course-navy); color: #fff; }
.aa-offering .aa-timetable__more[hidden] { display: none; }
@media (max-width: 999px) {
  .aa-offering .aa-timetable__day ol.is-collapsed > li:nth-child(n+6) { display: none; }
}
/* The per-date button on a phone: an outlined button, not a 12px text link. */
@media (max-width: 699px) {
  .aa-offering .aa-registration__session-form .aa-button { background: #fff; border: 1px solid var(--aa-course-navy); font-size: .82rem; letter-spacing: .04em; min-height: 46px; }
}

/* 9. 0.1.62 (T-0162, DEC-117): the Fees section of a staged programme. The fee sits here, not in the hero card. */
.aa-fees__card { background: #fff; border-radius: 15px; box-shadow: var(--aa-course-shadow); display: grid; gap: 1.1rem; max-width: 40rem; padding: clamp(1.4rem, 3vw, 2.2rem); }
.aa-fees__price { align-items: baseline; color: var(--aa-course-navy); display: flex; font-family: var(--aa-serif); font-size: clamp(2rem, 3.4vw, 2.8rem); font-weight: 600; line-height: 1; }
.aa-fees__price .woocommerce-Price-currencySymbol,
.aa-fees__price small { font-size: .7em; }
.aa-fees__actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.aa-fees__actions .aa-button { flex: 1 1 12rem; justify-content: center; }
.aa-fees__note { color: var(--aa-course-body); margin: 0; }

/* 0.1.68 (T-0168, LOC-1e): the venue card is no longer one link; it holds "See {venue} dates" and "About {venue}". */
.aa-offering .aa-course-venues__item--split { align-items: flex-start; }
.aa-offering .aa-course-venues__item--split:hover { border-color: var(--aa-course-line); box-shadow: none; transform: none; }
.aa-offering .aa-course-venues__links { display: flex; flex-wrap: wrap; gap: .35rem 1.25rem; margin: .6rem 0 0; }
.aa-offering .aa-course-venues__links a { color: var(--aa-course-navy); font-family: var(--aa-sans); font-size: .82rem; font-weight: 700; letter-spacing: .06em; text-decoration: underline; text-decoration-color: var(--aa-course-gold-light); text-transform: uppercase; text-underline-offset: 4px; }
.aa-offering .aa-course-venues__links a:hover, .aa-offering .aa-course-venues__links a:focus-visible { text-decoration-color: var(--aa-course-navy); }

/*
 * 0.1.71 (T-0171, LW-V4 Proposal 1, owner approved 2026-09-23): the Level 7 course layout (Level7Course), used only on
 * courses in the level-7 category. Outcomes as a list with gold markers; the curriculum as a numbered roadmap whose
 * last step is the award (a gold tick). The key facts reuse the existing details grid.
 */
.aa-offering .aa-outcome-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .9rem; max-width: 74ch; }
.aa-offering .aa-outcome-list li { position: relative; padding-left: 1.75rem; color: var(--aa-course-body); font-size: 1.06rem; line-height: 1.6; }
.aa-offering .aa-outcome-list li::before { content: ""; position: absolute; left: 0; top: .6em; width: .6rem; height: .6rem; border-radius: 50%; background: var(--aa-course-gold); }
.aa-offering .aa-roadmap { list-style: none; margin: 0; padding: 0; counter-reset: aa-step; max-width: 820px; }
.aa-offering .aa-roadmap__step { counter-increment: aa-step; position: relative; padding: 0 0 1.9rem 3.5rem; }
.aa-offering .aa-roadmap__step::before { content: counter(aa-step); position: absolute; left: 0; top: 0; width: 2.3rem; height: 2.3rem; border-radius: 50%; background: var(--aa-course-navy); color: #fff; display: grid; place-items: center; font-family: var(--aa-sans, system-ui); font-weight: 600; font-size: .9rem; }
.aa-offering .aa-roadmap__step::after { content: ""; position: absolute; left: 1.15rem; top: 2.6rem; bottom: .4rem; width: 1px; background: var(--aa-course-line); }
.aa-offering .aa-roadmap__step.is-end { padding-bottom: 0; }
.aa-offering .aa-roadmap__step.is-end::before { content: "\2713"; background: var(--aa-course-gold); }
.aa-offering .aa-roadmap__step.is-end::after { display: none; }
.aa-offering .aa-roadmap__step h3 { margin: .2rem 0 .4rem; font-family: var(--aa-serif, Georgia, serif); font-size: 1.45rem; font-weight: 600; line-height: 1.25; color: var(--aa-course-ink); }
.aa-offering .aa-roadmap__step p, .aa-offering .aa-roadmap__body { margin: 0; max-width: 68ch; color: var(--aa-course-body); line-height: 1.6; }
.aa-offering .aa-roadmap__body p { margin: 0 0 .5rem; }
.aa-offering .aa-roadmap__step ul { display: grid; gap: .35rem; margin: .7rem 0 0; padding-left: 1.15rem; color: var(--aa-course-body); line-height: 1.55; }
@media (max-width: 639px) {
  .aa-offering .aa-roadmap__step { padding-left: 3rem; }
  .aa-offering .aa-roadmap__step h3 { font-size: 1.25rem; }
  .aa-offering .aa-outcome-list li, .aa-offering .aa-roadmap__step p, .aa-offering .aa-roadmap__body, .aa-offering .aa-roadmap__step ul { font-size: 1rem; }
}
/* 0.1.80 (V5 R3.3): one-line eligibility band for courses without an eligibility record. */
.aa-offering .aa-eligibility-note { padding-block: 1.6rem; }
.aa-offering .aa-eligibility-note p { margin: 0; text-align: center; }

/*
 * 0.1.87 (V6 W6, owner 2026-10-07: "I don't like add to basket; the design has many small issues"). Measured on the
 * live Foundation page (208) at 1440 and 375 before the change: shots in codex-support-audit/evidence/v6-20261007/.
 */
/* Price: "+VAT" sat flush against the figure at the same size. */
.aa-offering .aa-booking__price { gap: .45rem; }
.aa-offering .aa-booking__price .woocommerce-price-suffix { color: var(--aa-course-muted); font-family: var(--aa-sans); font-size: .9rem; font-weight: 600; letter-spacing: .02em; }
/* One quiet line under the heading instead of a grey box. */
.aa-offering .aa-registration__summary { background: none; color: var(--aa-course-muted); font-size: .92rem; margin: -.35rem 0 1rem; padding: 0; }
/* The date list: no inner scroll at any width (programme.js folds it to five), so no date is cut in half. */
.aa-offering .aa-registration__sessions { gap: .6rem; max-height: none; overflow: visible; padding: 2px; }
.aa-offering .aa-registration__sessions.is-collapsed > .aa-registration__session:nth-child(n+6) { display: none; }
@media (min-width: 1000px) {
  /* expanded to every date, the card can be taller than the window: it scrolls with the page instead of sticking */
  .aa-offering .aa-booking:has(.aa-registration__more[aria-expanded="true"]) { position: static; }
}
/* A date row: the date on the left, one clear button on the right, at every width. */
.aa-offering .aa-registration__session { align-items: center; grid-template-columns: minmax(0, 1fr) auto; padding: .85rem .9rem .85rem 1rem; }
.aa-offering .aa-registration__session h3 { font-size: .95rem; line-height: 1.35; margin: 0; }
.aa-offering .aa-registration__session-copy p.aa-registration__scarcity { color: #8a4f0b; font-size: .75rem; margin: .4rem 0 0; padding: .16rem .5rem; }
.aa-offering .aa-registration__session-form .aa-button.aa-registration__book {
  background: var(--aa-course-navy);
  border: 1px solid var(--aa-course-navy);
  border-radius: 6px;
  color: #fff;
  font-family: var(--aa-sans);
  font-size: .78rem;
  font-weight: 700;
  gap: .4rem;
  letter-spacing: .05em;
  min-height: 44px;
  padding: .5rem .85rem;
  text-transform: uppercase;
  white-space: nowrap;
  width: auto;
}
.aa-offering .aa-registration__session-form .aa-button.aa-registration__book:hover,
.aa-offering .aa-registration__session-form .aa-button.aa-registration__book:focus-visible { background: var(--aa-course-gold); border-color: var(--aa-course-gold); color: #fff; }
@media (max-width: 999px) {
  .aa-offering .aa-registration__session { grid-template-columns: minmax(0, 1fr) auto; }
  .aa-offering .aa-registration__session-form .aa-button.aa-registration__book { width: auto; }
}
@media (max-width: 420px) {
  /* on a phone the button reads "Book", its accessible name still carries the date */
  .aa-offering .aa-registration__book-more { display: none; }
}
/* Hero fact chips: one shape, equal heights, values in the body face with lining figures, and a chip without a
 * label ("No experience needed") centred like the others instead of riding high. */
.aa-offering-hero__chips { align-items: stretch; gap: .5rem; }
.aa-offering-hero__chips li { align-content: center; border-radius: 10px; display: grid; min-height: 3.6rem; padding: .5rem .9rem; }
.aa-offering-hero__chips strong { font-family: var(--aa-sans); font-size: .92rem; font-variant-numeric: lining-nums; font-weight: 600; line-height: 1.3; }
.aa-offering-hero__chips li:not(:has(span)) strong { color: var(--aa-course-navy); }
@media (max-width: 999px) {
  .aa-offering-hero__chips li { min-height: 3.3rem; padding: .45rem .75rem; }
}

/* 0.1.88 (V6 W6.3): small fixes found on the live Foundation page (208) at 1440 after 0.1.87. */
/* Key details: the serif's old-style figures read "1 day" as "ı day"; values now match the hero chips. */
.aa-course-details dd { font-family: var(--aa-sans); font-size: 1.02rem; font-variant-numeric: lining-nums; font-weight: 600; line-height: 1.4; }
/* Key details: a last cell alone on its row spans the empty track instead of leaving a bordered gap. */
@media (min-width: 700px) and (max-width: 899px) {
  .aa-course-details__grid > div:last-child:nth-child(odd) { grid-column: span 2; }
}
@media (min-width: 900px) {
  .aa-course-details__grid > div:last-child:nth-child(3n+1) { grid-column: span 3; }
  .aa-course-details__grid > div:last-child:nth-child(3n+2) { grid-column: span 2; }
}
/* Timetable: the time pair was wider than its 8.2rem track and touched the session title. */
@media (min-width: 700px) {
  .aa-offering .aa-timetable__day li { column-gap: 1.1rem; grid-template-columns: 9.6rem minmax(0, 1fr) auto; }
}

/* 0.1.91 (V6 W12.1): the native branch no longer prints WooCommerce output above the ask state, so no divider line. */
.aa-offering .aa-booking__recovery--native { border-top: 0; margin-top: 0; padding-top: 0; }
.aa-offering .aa-booking__native-book { justify-content: center; min-height: 44px; width: 100%; }
/* 0.2.6 (T-0206, FB4 T1): the "Book now" form has its own class (registration.php), so the card's main button is the
   navy primary button and no longer takes the date row's quiet text-button style. */
.aa-offering .aa-booking__native-form { margin: 0; }

/*
 * 0.2.6 (T-0206, FB4, Lara's standard structure for every general course page, C52): the sections that are new on the
 * course page. Every colour, face and size is an existing token or one used by a neighbouring section.
 */
/* About this course: the About photo under the heading, beside the text (C5). */
.aa-offering .aa-overview__media { border-radius: 14px; box-shadow: 0 14px 34px rgba(37, 45, 76, .10); margin: 1.5rem 0 0; overflow: hidden; }
.aa-offering .aa-overview__media img { aspect-ratio: 4 / 3; display: block; height: auto; object-fit: cover; width: 100%; }
/* Why train with us (C11): one point per tile, a green tick as on the eligibility box. */
.aa-why-train__list { display: grid; gap: .9rem 1.5rem; list-style: none; margin: 0; padding: 0; }
.aa-why-train__list li { background: #fff; border: 1px solid var(--aa-course-line); border-radius: 12px; color: var(--aa-course-body); font-size: 1.02rem; line-height: 1.55; padding: 1rem 1.1rem 1rem 3.1rem; position: relative; }
.aa-why-train__list li::before { background: #267452; border-radius: 50%; color: #fff; content: "\2713"; display: grid; font-size: .8rem; height: 1.5rem; left: 1rem; place-items: center; position: absolute; top: 1.05rem; width: 1.5rem; }
/* The CPD mention (C59): a short card, the points first. */
.aa-cpd__card { background: #fff; border-left: 3px solid var(--aa-course-gold); display: grid; gap: .45rem; max-width: 52rem; padding: 1.25rem clamp(1.25rem, 3vw, 2rem); }
.aa-cpd__card h2 { font-size: clamp(1.28rem, 2vw, 1.65rem); }
.aa-cpd__points { color: var(--aa-course-navy); font-family: var(--aa-sans); font-size: 1.1rem; font-variant-numeric: lining-nums; font-weight: 700; margin: 0; }
.aa-cpd__note { color: var(--aa-course-body); margin: 0; max-width: 68ch; }
/* The standout review (C12): a full-width navy band, one quote, as Level 7's featured review reads. */
.aa-standout__review { margin: 0 auto; max-width: 52rem; text-align: center; }
.aa-standout__stars { color: var(--aa-course-gold-light); font-size: 1rem; letter-spacing: .16em; margin: 0 0 1rem; }
.aa-standout blockquote { border: 0; margin: 0; padding: 0; }
.aa-standout blockquote p { color: #fff; font-family: var(--aa-serif); font-size: clamp(1.45rem, 2.6vw, 2.1rem); font-style: italic; line-height: 1.35; margin: 0; }
.aa-standout figcaption { color: var(--aa-course-gold-light); font-family: var(--aa-sans); font-size: .82rem; font-weight: 700; letter-spacing: .1em; margin-top: 1.4rem; text-transform: uppercase; }
.aa-standout figcaption span { color: rgba(255, 255, 255, .8); display: block; font-weight: 400; letter-spacing: .04em; margin-top: .3rem; text-transform: none; }
/* "Not sure which course is right for you? Speak to an Advisor" (C21, C57), under the booking card's button and the
   closing band's. The link is underlined, as every link in running text. */
.aa-adviser-line { color: var(--aa-course-body); font-family: var(--aa-sans); font-size: 1rem; line-height: 1.5; margin: .9rem 0 0; }
.aa-adviser-line a { color: var(--aa-course-navy); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.aa-course-closing .aa-adviser-line a { color: var(--aa-course-gold-light); }
@media (min-width: 700px) {
  .aa-why-train__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
