/* Celegant Braiding Academy - Chair-Ready component styles
   Tokens come from theme.json. Never hardcode a hex that is not in the palette.
   Magenta = identity. Deep teal #026F94 = action, and nothing else. */

:root {
  --cba-radius-sm: var(--wp--custom--radius--sm, 6px);
  --cba-radius-md: var(--wp--custom--radius--md, 14px);
  --cba-radius-pill: var(--wp--custom--radius--pill, 999px);
  --cba-ground: var(--wp--preset--color--ground, #FAF7FA);
  --cba-surface: var(--wp--preset--color--surface, #FFFFFF);
  --cba-ink: var(--wp--preset--color--ink, #17121A);
  --cba-body: var(--wp--preset--color--body, #443F49);
  --cba-accent: var(--wp--preset--color--accent, #B90AAB);
  --cba-action: var(--wp--preset--color--action, #026F94);
  --cba-action-hover: var(--wp--preset--color--action-hover, #01546F);
  --cba-border: var(--wp--preset--color--border, #E7E1E8);
  --cba-muted: var(--wp--preset--color--muted, #F2EDF3);
  --cba-success: var(--wp--preset--color--success, #1B6B4A);
  --cba-error: var(--wp--preset--color--error, #A3123B);
  --cba-measure: var(--wp--custom--measure--text, 66ch);
  --cba-dur: var(--wp--custom--motion--duration, 180ms);
  --cba-ease: var(--wp--custom--motion--ease, cubic-bezier(0.2, 0, 0.2, 1));
  --cba-shadow-overlay: var(--wp--custom--elevation--overlay, 0 8px 24px rgba(23, 18, 26, 0.14));
  --cba-wrap: 1200px;
  --cba-gutter: clamp(20px, 5vw, 40px);
}

/* ---------- Base ---------- */

html { -webkit-text-size-adjust: 100%; }
body { text-rendering: optimizeLegibility; }

*:focus-visible {
  outline: var(--wp--custom--focus--width, 3px) solid var(--cba-accent);
  outline-offset: var(--wp--custom--focus--offset, 2px);
  border-radius: 2px;
}

/* WordPress renders the skip link for block templates. We only restyle it so
   it matches the design when it takes focus. */
.skip-link.screen-reader-text:focus,
a#wp-skip-link:focus {
  position: fixed;
  left: 0;
  top: 0;
  z-index: 1000;
  width: auto;
  height: auto;
  clip: auto;
  clip-path: none;
  padding: 12px 20px;
  background: var(--cba-surface);
  color: var(--cba-ink);
  border: 1px solid var(--cba-border);
  border-radius: 0 0 var(--cba-radius-md) 0;
  font-family: var(--wp--preset--font-family--body);
  font-weight: 600;
  font-size: 1rem;
  text-decoration: none;
  outline: 3px solid var(--cba-accent);
  outline-offset: 2px;
}

.cba-visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0);
  clip-path: inset(50%); white-space: nowrap; border: 0;
}

img, svg, video { max-width: 100%; height: auto; }

/* ---------- Layout primitives ---------- */

.cba-wrap {
  box-sizing: border-box;
  width: 100%;
  max-width: var(--cba-wrap);
  margin-inline: auto;
  padding-inline: var(--cba-gutter);
}
.cba-section { padding-block: var(--wp--preset--spacing--50, 96px); }
.cba-section--tight { padding-block: var(--wp--preset--spacing--40, 48px); }
.cba-section--ground { background: var(--cba-ground); }
.cba-section--muted { background: var(--cba-muted); }
.cba-section--surface { background: var(--cba-surface); }
.cba-measure { max-width: var(--cba-measure); }

.cba-eyebrow {
  font-family: var(--wp--preset--font-family--body);
  font-size: var(--wp--preset--font-size--label, 0.8125rem);
  font-weight: 600;
  letter-spacing: var(--wp--custom--tracking--label, 0.08em);
  text-transform: uppercase;
  color: var(--cba-accent);
  margin: 0 0 12px;
}
.cba-section-rule {
  display: block;
  width: 56px;
  height: 3px;
  background: var(--cba-accent);
  border: 0;
  margin: 0 0 24px;
}

/* ---------- Buttons ---------- */

.cba-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: var(--wp--custom--target--min, 44px);
  padding: 12px 28px;
  border-radius: var(--cba-radius-pill);
  font-family: var(--wp--preset--font-family--body);
  font-size: var(--wp--preset--font-size--base, 1.0625rem);
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
  border: 1.5px solid transparent;
  cursor: pointer;
  transition: background-color var(--cba-dur) var(--cba-ease), color var(--cba-dur) var(--cba-ease), border-color var(--cba-dur) var(--cba-ease);
}
.cba-btn--primary { background: var(--cba-action); color: var(--cba-surface); border-color: var(--cba-action); }
.cba-btn--primary:hover, .cba-btn--primary:focus { background: var(--cba-action-hover); border-color: var(--cba-action-hover); color: var(--cba-surface); }
.cba-btn--secondary { background: transparent; color: var(--cba-accent); border-color: var(--cba-accent); }
.cba-btn--secondary:hover, .cba-btn--secondary:focus { background: var(--cba-muted); color: var(--cba-accent); }
.cba-btn--tertiary {
  background: transparent; color: var(--cba-accent); border: 0; padding-inline: 0;
  text-decoration: underline; text-underline-offset: 2px; text-decoration-thickness: 2px;
}
.cba-btn[aria-disabled="true"], .cba-btn:disabled { opacity: 0.55; cursor: not-allowed; }
.cba-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }

/* ---------- Announcement bar ---------- */

.cba-announcement {
  background: var(--cba-muted);
  border-bottom: 1px solid var(--cba-border);
  color: var(--cba-ink);
  font-size: var(--wp--preset--font-size--small, 0.9375rem);
}
.cba-announcement__inner {
  display: flex; align-items: center; justify-content: center; gap: 16px;
  min-height: 44px; padding-block: 8px; text-align: center;
}
.cba-announcement p { margin: 0; }
.cba-announcement a { color: var(--cba-accent); }

/* ---------- Header ---------- */

.cba-header {
  background: var(--cba-surface);
  border-bottom: 1px solid var(--cba-border);
  position: relative;
  z-index: 50;
}
.cba-header__inner {
  display: flex; align-items: center; gap: 24px;
  min-height: 76px;
}
.cba-header__brand { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; flex: 0 0 auto; }
.cba-header__brand img { display: block; height: auto; max-height: 52px; width: auto; border-radius: 0; }
.cba-header__brand-text { font-family: var(--wp--preset--font-family--display); font-weight: 700; color: var(--cba-ink); font-size: 1.125rem; line-height: 1.1; }
.cba-header__spacer { flex: 1 1 auto; }

.cba-nav { display: none; }
.cba-nav__list { display: flex; align-items: center; gap: 4px; list-style: none; margin: 0; padding: 0; }
.cba-nav__link {
  display: inline-flex; align-items: center; gap: 6px;
  min-height: 44px; padding: 0 12px;
  color: var(--cba-ink); text-decoration: none; font-weight: 600;
  font-size: var(--wp--preset--font-size--small, 0.9375rem);
  border-radius: var(--cba-radius-pill); white-space: nowrap;
}
.cba-nav__link:hover { color: var(--cba-accent); }
.cba-nav__item--current > .cba-nav__link { color: var(--cba-accent); box-shadow: inset 0 -2px 0 0 var(--cba-accent); border-radius: 0; }
.cba-nav__toggle {
  background: none; border: 0; font: inherit; font-weight: 600; color: var(--cba-ink);
  display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 12px; cursor: pointer;
  font-size: var(--wp--preset--font-size--small, 0.9375rem);
}
.cba-nav__chevron { width: 10px; height: 10px; transition: transform var(--cba-dur) var(--cba-ease); }
.cba-nav__toggle[aria-expanded="true"] .cba-nav__chevron { transform: rotate(180deg); }
.cba-nav__submenu {
  position: absolute; margin-top: 8px; min-width: 288px;
  background: var(--cba-surface); border: 1px solid var(--cba-border);
  border-radius: var(--cba-radius-md); box-shadow: var(--cba-shadow-overlay);
  list-style: none; padding: 8px; z-index: 60;
}
.cba-nav__submenu[hidden] { display: none; }
.cba-nav__submenu a {
  display: block; padding: 10px 12px; min-height: 44px; line-height: 24px;
  color: var(--cba-ink); text-decoration: none; border-radius: var(--cba-radius-sm);
  font-size: var(--wp--preset--font-size--small, 0.9375rem);
}
.cba-nav__submenu a:hover { background: var(--cba-muted); color: var(--cba-accent); }
.cba-header__cta { display: none; }
.cba-header__call {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 44px; min-height: 44px; border-radius: var(--cba-radius-pill);
  border: 1.5px solid var(--cba-border); color: var(--cba-ink); text-decoration: none;
  font-weight: 600; padding: 0 14px; font-size: var(--wp--preset--font-size--small, 0.9375rem);
}
.cba-header__menu-btn {
  display: inline-flex; align-items: center; gap: 8px;
  min-height: 44px; min-width: 44px; padding: 0 14px;
  background: none; border: 1.5px solid var(--cba-border); border-radius: var(--cba-radius-pill);
  font: inherit; font-weight: 600; color: var(--cba-ink); cursor: pointer;
}
.cba-mobile-menu {
  border-top: 1px solid var(--cba-border);
  background: var(--cba-surface);
  padding: 12px var(--cba-gutter) 24px;
}
.cba-mobile-menu[hidden] { display: none; }
.cba-mobile-menu ul { list-style: none; margin: 0; padding: 0; }
.cba-mobile-menu > ul > li { border-bottom: 1px solid var(--cba-border); }
.cba-mobile-menu a {
  display: flex; align-items: center; min-height: 48px;
  color: var(--cba-ink); text-decoration: none; font-weight: 600;
}
.cba-mobile-menu .cba-mobile-menu__sub a { font-weight: 400; padding-left: 16px; min-height: 44px; }
.cba-mobile-menu .cba-btn { width: 100%; margin-top: 16px; }

@media (min-width: 1024px) {
  .cba-nav { display: block; }
  .cba-header__cta { display: inline-flex; }
  .cba-header__menu-btn, .cba-header__call { display: none; }
  .cba-mobile-menu { display: none !important; }
}

/* ---------- Breadcrumbs ---------- */

.cba-breadcrumbs { padding-block: 16px; font-size: var(--wp--preset--font-size--small, 0.9375rem); }
.cba-breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 0; padding: 0; }
.cba-breadcrumbs li { display: inline-flex; align-items: center; gap: 6px; color: var(--cba-body); }
.cba-breadcrumbs li + li::before { content: "/"; color: var(--cba-border); }
.cba-breadcrumbs a { color: var(--cba-accent); }
.cba-breadcrumbs [aria-current="page"] { color: var(--cba-body); }

/* ---------- Hero ---------- */

.cba-hero { background: var(--cba-surface); border-bottom: 1px solid var(--cba-border); }
.cba-hero__grid {
  display: grid; gap: var(--wp--preset--spacing--40, 48px);
  padding-block: clamp(48px, 7vw, 88px);
  align-items: center;
}
.cba-hero__title { margin: 0 0 20px; font-size: var(--wp--preset--font-size--display); line-height: 1.06; }
.cba-hero__subtext { margin: 0 0 28px; max-width: 54ch; font-size: var(--wp--preset--font-size--lead); color: var(--cba-body); }
.cba-hero__media { border-radius: var(--cba-radius-md); overflow: hidden; }
.cba-hero__media img { display: block; width: 100%; height: auto; border-radius: var(--cba-radius-md); }
.cba-hero__placeholder {
  display: flex; align-items: center; justify-content: center; text-align: center;
  aspect-ratio: 4 / 3; background: var(--cba-muted);
  border: 1px dashed var(--cba-accent); border-radius: var(--cba-radius-md);
  color: var(--cba-ink); padding: 24px;
  font-size: var(--wp--preset--font-size--small); font-weight: 600;
}
@media (min-width: 900px) {
  .cba-hero__grid { grid-template-columns: 7fr 5fr; gap: clamp(40px, 5vw, 72px); }
}

/* ---------- Trust strip ---------- */

.cba-trust { border-block: 1px solid var(--cba-border); background: var(--cba-surface); }
.cba-trust__list {
  display: grid; gap: 0; list-style: none; margin: 0; padding: 0;
  grid-template-columns: 1fr;
}
.cba-trust__item {
  display: flex; align-items: flex-start; gap: 10px;
  padding: 18px 0; border-bottom: 1px solid var(--cba-border);
  font-size: var(--wp--preset--font-size--small);
  color: var(--cba-ink);
}
.cba-trust__item:last-child { border-bottom: 0; }
.cba-trust__mark { flex: 0 0 auto; width: 18px; height: 18px; margin-top: 3px; color: var(--cba-accent); }
@media (min-width: 640px) {
  .cba-trust__list { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 32px; }
}
@media (min-width: 1024px) {
  .cba-trust__list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cba-trust__item { border-bottom: 0; padding: 22px 0; }
}

/* ---------- Quick facts (definition list, never a card) ---------- */

.cba-quickfacts { margin: 0; }
.cba-quickfacts__grid { display: grid; grid-template-columns: 1fr; margin: 0; }
.cba-quickfacts__row { border-top: 1px solid var(--cba-border); padding: 16px 0; }
.cba-quickfacts__row:last-child { border-bottom: 1px solid var(--cba-border); }
.cba-quickfacts dt {
  font-size: var(--wp--preset--font-size--label, 0.8125rem);
  font-weight: 600; text-transform: uppercase;
  letter-spacing: var(--wp--custom--tracking--label, 0.08em);
  color: var(--cba-body); margin: 0 0 4px;
}
.cba-quickfacts dd { margin: 0; font-size: 1.125rem; color: var(--cba-ink); font-weight: 600; }
@media (min-width: 700px) {
  .cba-quickfacts__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 40px; }
  .cba-quickfacts__row:nth-last-child(-n+2) { border-bottom: 1px solid var(--cba-border); }
}
@media (min-width: 1024px) {
  .cba-quickfacts__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cba-quickfacts__row:nth-last-child(-n+2) { border-bottom: 0; }
  .cba-quickfacts__row:nth-last-child(-n+3) { border-bottom: 1px solid var(--cba-border); }
}

/* ---------- Price block ---------- */

.cba-price { border-top: 3px solid var(--cba-action); padding-top: 24px; }
.cba-price__label {
  font-size: var(--wp--preset--font-size--label); font-weight: 600; text-transform: uppercase;
  letter-spacing: var(--wp--custom--tracking--label, 0.08em); color: var(--cba-body); margin: 0 0 8px;
}
.cba-price__total {
  font-family: var(--wp--preset--font-family--display); font-weight: 700;
  font-size: var(--wp--preset--font-size--figure); line-height: 1;
  color: var(--cba-ink); margin: 0;
}
.cba-price__currency { font-size: 0.45em; font-weight: 600; margin-left: 8px; color: var(--cba-body); vertical-align: middle; }
.cba-price__lines { margin: 20px 0 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.cba-price__line { font-size: var(--wp--preset--font-size--base); color: var(--cba-accent); font-weight: 600; }
.cba-price__line span { color: var(--cba-body); font-weight: 400; }
.cba-price__note { margin: 16px 0 0; font-size: var(--wp--preset--font-size--small); color: var(--cba-body); }
.cba-price__actions { margin-top: 24px; }

/* ---------- Curriculum ---------- */

.cba-curriculum__list { margin: 0; padding: 0; list-style: none; }
.cba-module { border-top: 1px solid var(--cba-border); }
.cba-module:last-child { border-bottom: 1px solid var(--cba-border); }
.cba-module > summary {
  display: flex; align-items: baseline; gap: 20px;
  padding: 20px 0; cursor: pointer; list-style: none;
  min-height: 44px;
}
.cba-module > summary::-webkit-details-marker { display: none; }
.cba-module__num {
  font-family: var(--wp--preset--font-family--display); font-weight: 700;
  font-size: 2rem; line-height: 1; color: var(--cba-action);
  flex: 0 0 auto; min-width: 2.4ch;
  font-variant-numeric: tabular-nums;
}
.cba-module__title { font-family: var(--wp--preset--font-family--display); font-weight: 600; font-size: var(--wp--preset--font-size--heading-4); color: var(--cba-ink); flex: 1 1 auto; margin: 0; }
.cba-module__meta { font-size: var(--wp--preset--font-size--small); color: var(--cba-body); flex: 0 0 auto; }
.cba-module__chev { flex: 0 0 auto; width: 12px; height: 12px; color: var(--cba-body); transition: transform var(--cba-dur) var(--cba-ease); }
.cba-module[open] .cba-module__chev { transform: rotate(180deg); }
.cba-module__body { padding: 0 0 24px; max-width: var(--cba-measure); color: var(--cba-body); }
.cba-module__body ul { margin: 0; padding-left: 1.2em; }
.cba-module__body li { margin-bottom: 6px; }

/* ---------- Program cards ---------- */

.cba-programs { display: grid; gap: 24px; grid-template-columns: 1fr; }
@media (min-width: 640px) { .cba-programs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.cba-program-card {
  display: flex; flex-direction: column;
  background: var(--cba-surface);
  border: 1px solid var(--cba-border);
  border-top: 3px solid var(--cba-border);
  border-radius: var(--cba-radius-md);
  padding: 28px 24px;
}
.cba-program-card--tier-1 { border-top-color: var(--cba-accent); }
.cba-program-card--tier-2 { border-top-color: var(--cba-action); }
.cba-program-card--tier-3 { border-top-color: var(--cba-ink); }
.cba-program-card--feature { grid-column: 1 / -1; }
@media (min-width: 900px) {
  .cba-program-card--feature { display: grid; grid-template-columns: 7fr 5fr; gap: 40px; align-items: center; padding: 40px; }
}
.cba-program-card__tier {
  font-size: var(--wp--preset--font-size--label); font-weight: 600; text-transform: uppercase;
  letter-spacing: var(--wp--custom--tracking--label, 0.08em); color: var(--cba-accent); margin: 0 0 10px;
}
.cba-program-card__title { margin: 0 0 10px; font-size: var(--wp--preset--font-size--heading-4); }
.cba-program-card--feature .cba-program-card__title { font-size: var(--wp--preset--font-size--heading-2); }
.cba-program-card__title a { color: inherit; text-decoration: none; }
.cba-program-card__title a:hover { color: var(--cba-accent); text-decoration: underline; }
.cba-program-card__excerpt { margin: 0 0 16px; color: var(--cba-body); }
.cba-program-card__facts { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 0 0 20px; padding: 0; list-style: none; font-size: var(--wp--preset--font-size--small); color: var(--cba-body); }
.cba-program-card__price { font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: var(--wp--preset--font-size--heading-3); color: var(--cba-ink); margin: 0 0 4px; }
.cba-program-card__early { font-size: var(--wp--preset--font-size--small); color: var(--cba-accent); font-weight: 600; margin: 0 0 20px; }
.cba-program-card__foot { margin-top: auto; }

/* ---------- Steps ---------- */

.cba-steps { display: grid; gap: 0; list-style: none; margin: 0; padding: 0; counter-reset: cba-step; }
.cba-step { border-top: 1px solid var(--cba-border); padding: 24px 0; display: grid; gap: 8px 24px; }
.cba-step:last-child { border-bottom: 1px solid var(--cba-border); }
.cba-step__num {
  font-family: var(--wp--preset--font-family--display); font-weight: 700;
  font-size: 1.5rem; color: var(--cba-action); line-height: 1;
  font-variant-numeric: tabular-nums;
}
.cba-step__title { margin: 0; font-size: var(--wp--preset--font-size--heading-4); }
.cba-step__text { margin: 0; color: var(--cba-body); max-width: var(--cba-measure); }
@media (min-width: 800px) { .cba-step { grid-template-columns: 3rem 1fr; } .cba-step__num { grid-row: span 2; } }

/* ---------- Instructor ---------- */

.cba-instructor { display: grid; gap: var(--wp--preset--spacing--40, 48px); align-items: start; }
@media (min-width: 800px) { .cba-instructor { grid-template-columns: 5fr 7fr; } }
.cba-instructor__media img { display: block; width: 100%; border-radius: var(--cba-radius-md); }
.cba-instructor__placeholder {
  display: flex; align-items: center; justify-content: center; text-align: center;
  aspect-ratio: 4 / 5; background: var(--cba-muted);
  border: 1px dashed var(--cba-accent); border-radius: var(--cba-radius-md);
  padding: 24px; font-size: var(--wp--preset--font-size--small); font-weight: 600; color: var(--cba-ink);
}
.cba-instructor__name { margin: 0 0 4px; font-size: var(--wp--preset--font-size--heading-3); }
.cba-instructor__role { margin: 0 0 20px; color: var(--cba-accent); font-weight: 600; }
.cba-instructor__bio { max-width: var(--cba-measure); color: var(--cba-body); }
.cba-instructor__creds { margin: 24px 0 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.cba-instructor__creds li { padding-left: 22px; position: relative; color: var(--cba-ink); }
.cba-instructor__creds li::before {
  content: ""; position: absolute; left: 0; top: 0.62em;
  width: 10px; height: 2px; background: var(--cba-accent);
}

/* ---------- Testimonials ---------- */

.cba-testimonials { display: grid; gap: 24px; }
@media (min-width: 800px) { .cba-testimonials--multi { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.cba-testimonial { border-top: 3px solid var(--cba-accent); padding-top: 20px; }
.cba-testimonial blockquote { margin: 0 0 14px; font-size: var(--wp--preset--font-size--lead); color: var(--cba-ink); max-width: var(--cba-measure); }
.cba-testimonial figcaption { font-size: var(--wp--preset--font-size--small); color: var(--cba-body); }
.cba-testimonial__name { font-weight: 600; color: var(--cba-ink); }
.cba-empty-state {
  border: 1px dashed var(--cba-accent);
  border-radius: var(--cba-radius-md);
  background: var(--cba-muted);
  padding: 28px 24px;
  max-width: var(--cba-measure);
}
.cba-empty-state__label {
  display: inline-block; margin: 0 0 10px;
  font-size: var(--wp--preset--font-size--label); font-weight: 600; text-transform: uppercase;
  letter-spacing: var(--wp--custom--tracking--label, 0.08em); color: var(--cba-accent);
}
.cba-empty-state p { margin: 0; color: var(--cba-ink); }

/* ---------- FAQ ---------- */

.cba-faq__group + .cba-faq__group { margin-top: var(--wp--preset--spacing--40, 48px); }
.cba-faq__group-title { margin: 0 0 8px; font-size: var(--wp--preset--font-size--heading-3); }
.cba-faq__list { margin: 0; padding: 0; list-style: none; }
.cba-faq__item { border-top: 1px solid var(--cba-border); }
.cba-faq__item:last-child { border-bottom: 1px solid var(--cba-border); }
.cba-faq__item > summary {
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  padding: 18px 0; cursor: pointer; list-style: none; min-height: 44px;
  font-family: var(--wp--preset--font-family--display); font-weight: 600;
  font-size: var(--wp--preset--font-size--heading-5); color: var(--cba-ink);
}
.cba-faq__item > summary::-webkit-details-marker { display: none; }
.cba-faq__chev { flex: 0 0 auto; width: 12px; height: 12px; color: var(--cba-body); transition: transform var(--cba-dur) var(--cba-ease); }
.cba-faq__item[open] .cba-faq__chev { transform: rotate(180deg); }
.cba-faq__answer { padding: 0 0 22px; max-width: var(--cba-measure); color: var(--cba-body); }
.cba-faq__answer > :first-child { margin-top: 0; }
.cba-faq__answer > :last-child { margin-bottom: 0; }

/* ---------- CTA band ---------- */

.cba-cta-band { background: var(--cba-muted); border-block: 1px solid var(--cba-border); }
.cba-cta-band__inner { padding-block: var(--wp--preset--spacing--50, 96px); display: grid; gap: 28px; align-items: center; }
@media (min-width: 900px) { .cba-cta-band__inner { grid-template-columns: 7fr 5fr; } }
.cba-cta-band__title { margin: 0 0 12px; font-size: var(--wp--preset--font-size--heading-2); }
.cba-cta-band__text { margin: 0; max-width: var(--cba-measure); color: var(--cba-body); }

/* ---------- Compare table ---------- */

.cba-compare { width: 100%; }
.cba-compare table { width: 100%; border-collapse: collapse; }
.cba-compare caption { text-align: left; font-size: var(--wp--preset--font-size--small); color: var(--cba-body); padding-bottom: 12px; }
.cba-compare th, .cba-compare td {
  text-align: left; padding: 14px 16px; border-bottom: 1px solid var(--cba-border);
  font-size: var(--wp--preset--font-size--small); vertical-align: top;
}
.cba-compare thead th { color: var(--cba-ink); font-family: var(--wp--preset--font-family--display); font-weight: 700; border-bottom: 3px solid var(--cba-action); }
.cba-compare tbody th { color: var(--cba-ink); font-weight: 600; }
.cba-compare__desktop { display: none; }
.cba-compare__stack { display: grid; gap: 24px; }
.cba-compare__card { border: 1px solid var(--cba-border); border-top: 3px solid var(--cba-action); border-radius: var(--cba-radius-md); padding: 20px; background: var(--cba-surface); }
.cba-compare__card h3 { margin: 0 0 12px; font-size: var(--wp--preset--font-size--heading-4); }
.cba-compare__card dl { margin: 0; }
.cba-compare__card div { display: grid; gap: 2px; padding: 10px 0; border-top: 1px solid var(--cba-border); }
.cba-compare__card dt { font-size: var(--wp--preset--font-size--label); text-transform: uppercase; letter-spacing: var(--wp--custom--tracking--label, 0.08em); font-weight: 600; color: var(--cba-body); }
.cba-compare__card dd { margin: 0; color: var(--cba-ink); }
@media (min-width: 900px) {
  .cba-compare__desktop { display: block; }
  .cba-compare__stack { display: none; }
}

/* ---------- Placeholder note ---------- */

.cba-placeholder {
  display: block;
  border: 1px dashed var(--cba-accent);
  border-left: 3px solid var(--cba-accent);
  border-radius: var(--cba-radius-sm);
  background: var(--cba-muted);
  padding: 12px 16px;
  margin-block: 16px;
  color: var(--cba-ink);
  font-size: var(--wp--preset--font-size--small);
}
.cba-placeholder--inline { display: inline-block; margin-block: 0; padding: 2px 8px; }
.cba-placeholder__tag {
  display: block; font-size: var(--wp--preset--font-size--label); font-weight: 600;
  text-transform: uppercase; letter-spacing: var(--wp--custom--tracking--label, 0.08em);
  color: var(--cba-accent); margin-bottom: 4px;
}
.cba-placeholder--inline .cba-placeholder__tag { display: inline; margin: 0 6px 0 0; }

/* ---------- Lead form ---------- */

.cba-form { max-width: 640px; }
.cba-form__grid { display: grid; gap: 20px; grid-template-columns: 1fr; }
@media (min-width: 640px) { .cba-form__grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.cba-field { display: grid; gap: 6px; }
.cba-field > label { font-weight: 600; color: var(--cba-ink); font-size: var(--wp--preset--font-size--small); }
.cba-field__req { color: var(--cba-accent); }
.cba-field__hint { font-size: var(--wp--preset--font-size--small); color: var(--cba-body); }
.cba-field input[type="text"],
.cba-field input[type="email"],
.cba-field input[type="tel"],
.cba-field select,
.cba-field textarea {
  box-sizing: border-box;
  width: 100%; min-height: 48px; padding: 12px 14px;
  background: var(--cba-surface); color: var(--cba-ink);
  border: 1px solid var(--cba-border); border-radius: var(--cba-radius-sm);
  font: inherit; font-size: 1rem;
}
.cba-field textarea { min-height: 120px; resize: vertical; }
.cba-field input:focus-visible, .cba-field select:focus-visible, .cba-field textarea:focus-visible { border-color: var(--cba-accent); }
.cba-field--error input, .cba-field--error select, .cba-field--error textarea { border-color: var(--cba-error); border-width: 2px; }
.cba-field__error {
  display: flex; align-items: flex-start; gap: 6px;
  color: var(--cba-error); font-size: var(--wp--preset--font-size--small); font-weight: 600;
}
.cba-field__error svg { flex: 0 0 auto; width: 16px; height: 16px; margin-top: 2px; }
.cba-field--checkbox { grid-template-columns: auto 1fr; align-items: start; gap: 10px; }
.cba-field--checkbox input[type="checkbox"] { width: 22px; height: 22px; margin-top: 2px; accent-color: var(--cba-action); }
.cba-field--checkbox label { font-weight: 400; color: var(--cba-body); }
.cba-form__hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.cba-form__summary {
  border: 2px solid var(--cba-error); border-radius: var(--cba-radius-sm);
  padding: 16px; margin-bottom: 24px; color: var(--cba-ink);
}
.cba-form__summary h3 { margin: 0 0 8px; font-size: var(--wp--preset--font-size--heading-5); color: var(--cba-error); }
.cba-form__summary ul { margin: 0; padding-left: 1.2em; }
.cba-form__summary a { color: var(--cba-error); }
.cba-form__success {
  border: 2px solid var(--cba-success); border-radius: var(--cba-radius-md);
  padding: 28px 24px; max-width: 640px;
}
.cba-form__success h2, .cba-form__success h3 { margin: 0 0 10px; color: var(--cba-ink); }
.cba-form__success p { margin: 0 0 10px; color: var(--cba-body); }
.cba-form__success p:last-child { margin-bottom: 0; }
.cba-form__success-mark { display: inline-flex; align-items: center; gap: 8px; color: var(--cba-success); font-weight: 600; margin-bottom: 10px; }
.cba-form__actions { margin-top: 28px; }
.cba-form__legal { margin-top: 16px; font-size: var(--wp--preset--font-size--small); color: var(--cba-body); }

/* ---------- Mobile sticky action bar ---------- */

.cba-sticky-bar {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 80;
  background: var(--cba-surface); border-top: 1px solid var(--cba-border);
  box-shadow: var(--cba-shadow-overlay);
  padding: 10px var(--cba-gutter);
  padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px));
  display: flex; gap: 10px; align-items: center;
}
.cba-sticky-bar .cba-btn--primary { flex: 1 1 auto; }
.cba-sticky-bar__call {
  flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
  min-width: 52px; min-height: 44px; border-radius: var(--cba-radius-pill);
  border: 1.5px solid var(--cba-border); color: var(--cba-ink); text-decoration: none;
}
body.cba-has-sticky-bar { padding-bottom: 76px; }
@media (min-width: 1024px) {
  .cba-sticky-bar { display: none; }
  body.cba-has-sticky-bar { padding-bottom: 0; }
}

/* ---------- Footer ---------- */

.cba-footer { background: var(--cba-ink); color: var(--cba-ground); }
.cba-footer a { color: var(--cba-surface); text-decoration: none; }
.cba-footer a:hover { text-decoration: underline; }
.cba-footer__top { display: grid; gap: 40px; padding-block: var(--wp--preset--spacing--50, 96px); }
@media (min-width: 800px) { .cba-footer__top { grid-template-columns: 4fr 3fr 3fr; } }
@media (min-width: 1100px) { .cba-footer__top { grid-template-columns: 4fr 3fr 3fr 3fr; } }
.cba-footer__brand img { max-height: 56px; width: auto; height: auto; }
.cba-footer__desc { margin: 16px 0 0; max-width: 40ch; color: var(--cba-border); font-size: var(--wp--preset--font-size--small); }
.cba-footer__heading {
  font-family: var(--wp--preset--font-family--body);
  font-size: var(--wp--preset--font-size--label); font-weight: 600; text-transform: uppercase;
  letter-spacing: var(--wp--custom--tracking--label, 0.08em); color: var(--cba-surface); margin: 0 0 14px;
}
.cba-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; font-size: var(--wp--preset--font-size--small); }
.cba-footer__nap { font-style: normal; font-size: var(--wp--preset--font-size--small); display: grid; gap: 8px; }
.cba-footer__socials { display: flex; flex-wrap: wrap; gap: 8px; }
.cba-footer__socials a {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 44px; min-height: 44px; border: 1px solid rgba(255,255,255,0.24);
  border-radius: var(--cba-radius-pill); padding: 0 14px; font-size: var(--wp--preset--font-size--small);
}
.cba-footer__bottom {
  border-top: 1px solid rgba(255,255,255,0.16);
  padding-block: 24px;
  display: flex; flex-wrap: wrap; gap: 12px 24px; align-items: center; justify-content: space-between;
  font-size: var(--wp--preset--font-size--small); color: var(--cba-border);
}
.cba-footer__policies { display: flex; flex-wrap: wrap; gap: 8px 20px; }

/* ---------- 404 ---------- */

.cba-404 { padding-block: var(--wp--preset--spacing--60, 128px); }
.cba-404__code { font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: var(--wp--preset--font-size--figure); line-height: 1; color: var(--cba-accent); margin: 0 0 12px; }
.cba-404 ul { list-style: none; margin: 24px 0 0; padding: 0; display: grid; gap: 10px; }

/* ---------- Reduced motion ---------- */

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}

/* ---------- Print ---------- */

@media print {
  .cba-sticky-bar, .cba-announcement, .cba-header__menu-btn, .cba-mobile-menu { display: none !important; }
  .cba-module__body, .cba-faq__answer { display: block !important; }
}

/* Desktop layout fix: post-content is constrained to 1200px so component wraps fit,
   so bare prose children must cap at the reading measure themselves. */
.wp-block-post-content > p,
.wp-block-post-content > h2,
.wp-block-post-content > h3,
.wp-block-post-content > h4,
.wp-block-post-content > ul,
.wp-block-post-content > ol,
.wp-block-post-content > blockquote,
.wp-block-post-content > figure.wp-block-table {
  max-width: var(--cba-measure, 68ch);
  margin-inline: auto;
}

/* Field hint order fix.
   The hint paragraph sits between the label and the input in the DOM, which is
   correct for screen readers, but it pushed inputs out of alignment in any
   two-column row. Visually it now reads label, input, hint. DOM order is
   unchanged, so aria-describedby and reading order still work. */
.cba-field { align-content: start; }
.cba-field > label { order: 1; }
.cba-field > input,
.cba-field > select,
.cba-field > textarea,
.cba-field > .cba-field__control { order: 2; }
.cba-field > .cba-field__hint { order: 3; margin-top: 6px; margin-bottom: 0; }
.cba-field > .cba-field__error { order: 4; }

/* Nav item alignment fix.
   The list item had no display rule, so it fell back to list-item. Its inline-flex
   link and chevron button then wrapped onto two lines, which made the one item
   with a submenu 88px tall against 44px for every other item and pushed its label
   above the rest of the menu. Making the item a nowrap flex row puts the label and
   chevron on one line and lets the list's align-items: center do its job. */
.cba-nav__item {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  min-height: 44px;
}
.cba-nav__item--has-children > .cba-nav__link { padding-right: 4px; }
.cba-nav__item--has-children > .cba-nav__toggle { padding-left: 2px; padding-right: 8px; }

/* Submenu anchoring fix.
   .cba-nav__submenu was position: absolute with no top or left and no positioned
   ancestor nearer than the header, so it resolved to a meaningless static position
   and rendered off screen above the menu. The dropdown was effectively unusable.
   Anchor it to its own nav item instead. */
.cba-nav__item--has-children { position: relative; }
.cba-nav__submenu { top: 100%; left: 0; }
@media (max-width: 1024px) {
  /* Keep it inside the viewport if the item sits near the right edge. */
  .cba-nav__submenu { left: auto; right: 0; }
}


/* ---------- Media grid ---------- */
.cba-media-grid { margin-block: clamp(2rem, 5vw, 3.5rem); }
.cba-media-grid__title { margin-bottom: .5rem; }
.cba-media-grid__intro { max-width: var(--cba-measure, 68ch); margin-bottom: 1.5rem; color: var(--wp--preset--color--ink-muted, inherit); }
.cba-media-grid__list { list-style: none; margin: 0; padding: 0; display: grid; gap: clamp(.75rem, 2vw, 1.25rem); grid-template-columns: repeat(var(--cba-media-cols, 3), minmax(0, 1fr)); }
.cba-media-grid--cols-1 .cba-media-grid__list { --cba-media-cols: 1; }
.cba-media-grid--cols-2 .cba-media-grid__list { --cba-media-cols: 2; }
.cba-media-grid--cols-3 .cba-media-grid__list { --cba-media-cols: 3; }
.cba-media-grid--cols-4 .cba-media-grid__list { --cba-media-cols: 4; }
.cba-media-grid__figure { margin: 0; }
.cba-media-grid__img { display: block; width: 100%; height: 100%; aspect-ratio: var(--cba-media-ratio, 1 / 1); object-fit: cover; border-radius: var(--cba-radius, 12px); background: var(--wp--preset--color--surface-2, #f2f2f2); }
.cba-media-grid__caption { margin-top: .5rem; font-size: var(--wp--preset--font-size--small, .875rem); line-height: 1.4; }
@media (max-width: 900px) { .cba-media-grid--cols-3 .cba-media-grid__list, .cba-media-grid--cols-4 .cba-media-grid__list { --cba-media-cols: 2; } }
@media (max-width: 560px) { .cba-media-grid__list { --cba-media-cols: 1 !important; } .cba-media-grid--cols-3 .cba-media-grid__list, .cba-media-grid--cols-4 .cba-media-grid__list { --cba-media-cols: 2 !important; } }


/* Hero with no image: single column, prose kept to a readable measure. */
.cba-hero--no-media .cba-hero__grid { grid-template-columns: 1fr; }
.cba-hero--no-media .cba-hero__body { max-width: 46rem; }


/* ---------- Instalment explainer at checkout ---------- */
.cba-paynote{border:1px solid var(--wp--preset--color--border,#E7E1E8);border-left:3px solid var(--wp--preset--color--action,#026F94);border-radius:var(--cba-radius,12px);background:var(--wp--preset--color--surface,#fff);padding:clamp(1rem,2.5vw,1.5rem);margin:1rem 0 1.25rem;max-width:var(--cba-measure,68ch)}
.cba-paynote__title{margin:0 0 .35rem}
.cba-paynote p{margin:0 0 .6rem}
.cba-paynote__steps{margin:.4rem 0 .6rem;padding-left:1.25rem}
.cba-paynote__steps li{margin-bottom:.35rem;line-height:1.5}
.cba-paynote__foot{margin:0;font-size:var(--wp--preset--font-size--small,.9rem);color:var(--wp--preset--color--body,#443F49)}


/* ---------- Next intake countdown and cohort calendar ---------- */
.cba-countdown{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem .75rem;border:1px solid var(--wp--preset--color--border,#E7E1E8);border-left:3px solid var(--wp--preset--color--brand,#B90AAB);border-radius:var(--cba-radius,12px);background:var(--wp--preset--color--surface,#fff);padding:.85rem 1.1rem;margin:1rem 0 1.25rem;max-width:var(--cba-measure,68ch)}
.cba-countdown__label{font-size:var(--wp--preset--font-size--small,.9rem);letter-spacing:.06em;text-transform:uppercase;color:var(--wp--preset--color--brand,#B90AAB);font-weight:600}
.cba-countdown__date{font-weight:700;color:var(--wp--preset--color--ink,#17121A);font-size:1.1rem}
.cba-countdown__days{font-size:var(--wp--preset--font-size--small,.9rem);color:var(--wp--preset--color--body,#443F49)}
.cba-calendar{margin:1.25rem 0 1.75rem}
.cba-calendar__heading{margin:0 0 .6rem}
.cba-calendar__table{width:100%;border-collapse:collapse;border:1px solid var(--wp--preset--color--border,#E7E1E8);background:var(--wp--preset--color--surface,#fff)}
.cba-calendar__table th,.cba-calendar__table td{text-align:left;vertical-align:top;padding:.75rem .9rem;border-bottom:1px solid var(--wp--preset--color--border,#E7E1E8)}
.cba-calendar__table thead th{font-size:var(--wp--preset--font-size--small,.9rem);letter-spacing:.06em;text-transform:uppercase;color:var(--wp--preset--color--brand,#B90AAB);border-bottom:2px solid var(--wp--preset--color--brand,#B90AAB)}
.cba-calendar__table tbody th{white-space:nowrap;font-weight:700;color:var(--wp--preset--color--ink,#17121A)}
.cba-calendar__table tbody tr:last-child th,.cba-calendar__table tbody tr:last-child td{border-bottom:0}
.cba-calendar__list{margin:0;padding:0;list-style:none}
.cba-calendar__list li{margin:0 0 .6rem}
.cba-calendar__list li:last-child{margin-bottom:0}
.cba-calendar__when{display:block;font-size:var(--wp--preset--font-size--small,.9rem);color:var(--wp--preset--color--body,#443F49)}
@media(max-width:600px){.cba-calendar__table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.cba-calendar__table tbody th,.cba-calendar__table tbody td{display:block;border-bottom:0;padding-bottom:0}.cba-calendar__table tbody td{padding-top:.4rem;padding-bottom:.9rem;border-bottom:1px solid var(--wp--preset--color--border,#E7E1E8)}}

.cba-instructor__more{margin:.9rem 0 0}
.cba-instructor__more a{font-weight:600}

.cba-form__locked{border:1px solid var(--wp--preset--color--border,#E7E1E8);border-radius:var(--cba-radius,12px);background:var(--wp--preset--color--ground,#FAF7FA);padding:.7rem .9rem}
.cba-form__locked-label{display:block;font-size:var(--wp--preset--font-size--small,.85rem);letter-spacing:.05em;text-transform:uppercase;color:var(--wp--preset--color--brand,#B90AAB);font-weight:600;margin-bottom:.15rem}
.cba-form__locked strong{color:var(--wp--preset--color--ink,#17121A)}
