/*
Theme Name: ActiveAligners Premium Staging Child
Template: ollie
Version: 2.8.2264
*/

:root {
  --aa-polish-gradient: linear-gradient(120deg, rgba(0, 114, 188, 0.11), rgba(143, 211, 255, 0.2), rgba(255, 255, 255, 0));
}

:where(body) {
  background: var(--wp--preset--color--aa-bg);
  color: var(--wp--preset--color--aa-ink);
}

:where(.wp-site-blocks) {
  font-family: var(--wp--preset--font-family--aa-body);
}

:where(.wp-site-blocks > header) {
  background: var(--wp--preset--color--aa-surface);
  border-bottom: 1px solid var(--wp--preset--color--aa-border);
  box-shadow: 0 10px 35px rgba(36, 55, 70, 0.05);
  position: sticky;
  top: 0;
  z-index: 50;
}

:where(.wp-site-blocks > footer) {
  background: var(--wp--preset--color--aa-surface);
  border-top: 1px solid var(--wp--preset--color--aa-border);
  margin-block-start: 0;
}

:where(main) {
  margin-block-start: 0;
}

:where(.aa-page-shell) {
  background: var(--wp--preset--color--aa-bg);
  margin-block-start: 0;
  overflow-x: clip;
}

:where(.aa-section) {
  margin-block-start: 0;
  padding: var(--wp--preset--spacing--aa-section-y) var(--wp--preset--spacing--aa-page-x);
  position: relative;
}

.aa-polish-ready :where(.aa-section, .aa-card) {
  opacity: 1;
  transform: none;
  transition: box-shadow 220ms ease, border-color 220ms ease, filter 180ms ease, transform 180ms ease;
}

.aa-polish-ready :where(.aa-section.is-visible, .aa-card.is-visible) {
  opacity: 1;
  transform: translateY(0);
}

:where(.aa-section.is-light) {
  background: var(--wp--preset--color--aa-bg);
}

:where(.aa-section.is-editorial) {
  background:
    radial-gradient(circle at 14% 18%, rgba(0, 114, 188, 0.1), transparent 28%),
    var(--aa-polish-gradient),
    var(--wp--preset--color--aa-surface);
}

:where(.aa-section.is-surface) {
  background: var(--wp--preset--color--aa-surface);
}

:where(.aa-section.is-dark) {
  background: var(--wp--preset--color--aa-ink);
  color: var(--wp--preset--color--aa-surface);
}

:where(.aa-inner) {
  margin-left: auto;
  margin-right: auto;
  max-width: var(--wp--style--global--wide-size);
  width: 100%;
}

:where(.aa-inner.is-narrow) {
  max-width: var(--wp--style--global--content-size);
}

:where(.aa-hero) {
  background:
    radial-gradient(circle at 82% 18%, rgba(0, 114, 188, 0.14), transparent 30%),
    linear-gradient(135deg, #ffffff 0%, #eef7fb 100%);
  border-bottom: 1px solid var(--wp--preset--color--aa-border);
  padding-top: var(--wp--preset--spacing--aa-hero-y);
}

:where(.aa-grid) {
  align-items: stretch;
  display: grid;
  gap: var(--wp--preset--spacing--aa-gap);
}

.wp-site-blocks .aa-grid > * {
  margin-block-start: 0;
  min-width: 0;
}

.wp-site-blocks .aa-balance-copy {
  align-self: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

:where(.aa-grid.two) {
  grid-template-columns: minmax(0, 1.25fr) minmax(320px, 0.75fr);
}

:where(.aa-grid.two.aa-balance-pair) {
  align-items: center;
}

:where(.aa-grid.two.even) {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

:where(.aa-grid.three) {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

:where(.aa-grid.cta) {
  align-items: center;
  grid-template-columns: minmax(0, 1fr) auto;
}

:where(.aa-grid.technique-layout) {
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
}

:where(.aa-grid.technique-steps) {
  gap: 1rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

:where(.aa-card) {
  background: var(--wp--preset--color--aa-surface);
  border: 1px solid var(--wp--preset--color--aa-border);
  border-radius: var(--wp--custom--radius--card);
  box-shadow: var(--wp--custom--shadow--card);
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: var(--wp--preset--spacing--aa-card);
  transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

:where(.aa-card:hover) {
  border-color: rgba(0, 114, 188, 0.26);
  box-shadow: 0 22px 56px rgba(18, 53, 73, 0.12);
  transform: translateY(-2px);
}

:where(.aa-card.is-soft) {
  box-shadow: var(--wp--custom--shadow--soft);
}

:where(.aa-card.is-muted) {
  background: var(--wp--preset--color--aa-bg);
}

:where(.aa-card > :first-child) {
  margin-top: 0;
}

:where(.aa-card > :last-child) {
  margin-bottom: 0;
}

:where(.aa-card .wp-block-heading + p) {
  margin-top: 0.75rem;
}

:where(.aa-media-card) {
  gap: 1rem;
}

:where(.aa-visual-card) {
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.92), rgba(238, 247, 251, 0.72)),
    radial-gradient(circle at 18% 18%, rgba(143, 211, 255, 0.26), transparent 28%),
    radial-gradient(circle at 82% 12%, rgba(0, 114, 188, 0.12), transparent 24%);
  background-color: var(--wp--preset--color--aa-surface);
  gap: 1rem;
}

:where(.aa-hero-media-card) {
  padding: 0;
}

:where(.aa-visual-frame) {
  background: var(--wp--preset--color--aa-surface);
  border: 1px solid rgba(0, 114, 188, 0.1);
  border-radius: var(--wp--custom--radius--card);
  box-shadow: var(--wp--custom--shadow--soft);
  margin: 0;
  overflow: hidden;
}

:where(.aa-hero-media-card .aa-visual-frame img) {
  aspect-ratio: 16 / 10;
}

:where(.aa-image-label) {
  align-items: center;
  background: rgba(255, 255, 255, 0.88);
  border: 1px solid rgba(0, 114, 188, 0.14);
  border-radius: 999px;
  color: var(--wp--preset--color--aa-primary-dark);
  display: inline-flex;
  font-size: 0.76rem;
  font-weight: 800;
  gap: 0.35rem;
  margin: 1rem;
  padding: 0.4rem 0.72rem;
  text-transform: uppercase;
}

:where(.aa-illustrative-label) {
  align-self: flex-start;
  background: rgba(0, 114, 188, 0.1);
  border-radius: 999px;
  color: var(--wp--preset--color--aa-primary-dark);
  display: inline-flex;
  font-size: 0.76rem;
  font-weight: 800;
  line-height: 1;
  margin: 0;
  padding: 0.45rem 0.68rem;
  text-transform: uppercase;
}

:where(.aa-visual-frame img) {
  aspect-ratio: 4 / 3;
  display: block;
  height: auto;
  object-fit: cover;
  width: 100%;
}

:where(.aa-visual-note) {
  color: var(--wp--preset--color--aa-primary);
  font-size: var(--wp--preset--font-size--aa-eyebrow);
  font-weight: 800;
  margin: 0;
  text-transform: uppercase;
}

:where(.aa-proof-strip) {
  align-items: stretch;
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 1.2rem;
}

:where(.aa-stat-strip) {
  background: var(--wp--preset--color--aa-ink);
  border-radius: var(--wp--custom--radius--card);
  box-shadow: 0 24px 70px rgba(15, 47, 60, 0.2);
  color: var(--wp--preset--color--aa-surface);
  display: grid;
  gap: 1px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  overflow: hidden;
}

:where(.aa-stat-item) {
  background: linear-gradient(145deg, rgba(0, 114, 188, 0.28), rgba(255, 255, 255, 0.04));
  padding: 1.35rem;
}

:where(.aa-stat-item strong) {
  color: var(--wp--preset--color--aa-surface);
  display: block;
  font-size: clamp(1.35rem, 2.2vw, 2rem);
  line-height: 1.05;
}

:where(.aa-stat-item span) {
  color: rgba(255, 255, 255, 0.78);
  display: block;
  font-size: 0.9rem;
  line-height: 1.45;
  margin-top: 0.35rem;
}

:where(.aa-proof-pill) {
  background: rgba(255, 255, 255, 0.76);
  border: 1px solid var(--wp--preset--color--aa-border);
  border-radius: var(--wp--custom--radius--button);
  color: var(--wp--preset--color--aa-primary-dark);
  font-weight: 800;
  padding: 0.95rem 1rem;
}

:where(.aa-media) {
  border-radius: var(--wp--custom--radius--card);
  margin: 0;
  overflow: hidden;
}

:where(.aa-media img) {
  aspect-ratio: 4 / 3;
  display: block;
  height: auto;
  object-fit: cover;
  width: 100%;
}

:where(.aa-card-meta) {
  color: var(--wp--preset--color--aa-primary);
  font-size: var(--wp--preset--font-size--aa-eyebrow);
  font-weight: 800;
  margin-top: 0.75rem;
  text-transform: uppercase;
}

:where(.aa-quote) {
  border-left: 4px solid var(--wp--preset--color--aa-accent);
  color: var(--wp--preset--color--aa-text);
  font-size: var(--wp--preset--font-size--aa-lede);
  margin: 0;
  padding-left: 1.25rem;
}

:where(.aa-eyebrow) {
  color: var(--wp--preset--color--aa-primary);
  font-size: var(--wp--preset--font-size--aa-eyebrow);
  font-weight: 800;
  letter-spacing: 0;
  margin-bottom: 0.75rem;
  text-transform: uppercase;
}

:where(.aa-lede) {
  color: var(--wp--preset--color--aa-muted);
  font-size: var(--wp--preset--font-size--aa-lede);
  line-height: 1.55;
  max-width: 760px;
}

:where(.aa-page-shell h1, .aa-page-shell h2, .aa-page-shell h3) {
  color: var(--wp--preset--color--aa-primary);
  letter-spacing: 0;
  line-height: 1.08;
  margin-top: 0;
}

:where(.aa-page-shell h1) {
  font-size: clamp(3rem, 5.1vw, 4rem);
}

:where(.aa-page-shell h2) {
  font-size: clamp(2rem, 3.4vw, 3rem);
}

:where(.aa-page-shell p, .aa-page-shell li) {
  color: var(--wp--preset--color--aa-muted);
  line-height: 1.65;
}

:where(.aa-page-shell .wp-block-button__link:hover, .aa-mobile-sticky-cta__link:hover) {
  filter: brightness(0.96);
  transform: translateY(-1px);
}

.wp-site-blocks .wp-block-navigation .has-child .wp-block-navigation__submenu-container {
  border: 1px solid rgba(0, 114, 188, 0.14);
  border-radius: 8px;
  box-shadow: 0 22px 60px rgba(36, 55, 70, 0.16);
  gap: 0.15rem;
  min-width: 340px;
  padding: 0.75rem;
}

.wp-site-blocks .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  border-radius: 6px;
  color: var(--wp--preset--color--aa-text);
  line-height: 1.25;
  padding: 0.75rem 0.85rem;
}

.wp-site-blocks .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.wp-site-blocks .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus {
  background: var(--wp--preset--color--aa-bg);
  color: var(--wp--preset--color--aa-primary-dark);
}

:where(.aa-mobile-sticky-cta) {
  display: none;
}

.aa-page-shell .is-dark h2,
.aa-page-shell .is-dark p {
  color: var(--wp--preset--color--aa-surface);
}

:where(.aa-actions) {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.4rem;
}

:where(.aa-card .aa-actions) {
  margin-top: auto;
  padding-top: 1.4rem;
}

:where(.aa-actions.is-right) {
  justify-content: flex-end;
}

:where(.aa-page-shell .wp-block-button__link) {
  border-radius: var(--wp--custom--radius--button);
  font-weight: 800;
}

:where(.aa-page-shell .wp-block-button.is-style-outline .wp-block-button__link) {
  background: transparent;
  border-color: currentColor;
  color: var(--wp--preset--color--aa-primary);
}

:where(.aa-check-list) {
  list-style-position: outside;
  padding-inline-start: 1.25rem;
}

:where(.aa-card ul, .aa-card ol) {
  list-style-position: outside;
  margin-left: 0;
  padding-inline-start: 1.25rem;
}

:where(.aa-check-list li, .aa-card li) {
  margin: 0.5rem 0;
  padding-left: 0.15rem;
}

:where(.aa-faq .wp-block-details) {
  background: var(--wp--preset--color--aa-surface);
  border: 1px solid var(--wp--preset--color--aa-border);
  border-radius: var(--wp--custom--radius--card);
  box-shadow: var(--wp--custom--shadow--soft);
  padding: 1.25rem 1.4rem;
}

:where(.aa-faq summary) {
  color: var(--wp--preset--color--aa-primary);
  cursor: pointer;
  font-weight: 800;
}

.wp-site-blocks .aa-card {
  box-sizing: border-box;
  height: 100%;
  overflow: hidden;
  padding: var(--wp--preset--spacing--aa-card, 1.75rem);
}

.wp-site-blocks .aa-card > * {
  box-sizing: border-box;
  max-width: 100%;
}

.wp-site-blocks .aa-card > :first-child {
  margin-top: 0;
}

.wp-site-blocks .aa-card > :last-child {
  margin-bottom: 0;
}

.wp-site-blocks .aa-card :is(h2, h3, h4, p, ul, ol, .wp-block-buttons) {
  margin-left: 0;
  margin-right: 0;
  max-width: 100%;
}

.wp-site-blocks .aa-card :is(ul, ol) {
  list-style-position: outside;
  padding-inline-start: 1.45em;
  padding-inline-end: 0.25rem;
}

.wp-site-blocks .aa-card li {
  overflow-wrap: anywhere;
  padding-left: 0.2rem;
}

.wp-site-blocks .aa-media-card > .wp-block-heading,
.wp-site-blocks .aa-assessment-card > .wp-block-heading,
.wp-site-blocks .aa-step-card > .wp-block-heading,
.wp-site-blocks .aa-summary-card > .wp-block-heading {
  align-self: stretch;
  text-align: center;
}

@media (max-width: 900px) {
  :where(.aa-grid.two, .aa-grid.three, .aa-grid.cta, .aa-grid.technique-layout, .aa-grid.technique-steps) {
    grid-template-columns: 1fr;
  }

  :where(.aa-proof-strip) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  :where(.aa-actions.is-right) {
    justify-content: flex-start;
  }

  :where(.aa-stat-strip) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 520px) {
  :where(.aa-section) {
    padding-left: var(--wp--preset--spacing--aa-page-x-mobile);
    padding-right: var(--wp--preset--spacing--aa-page-x-mobile);
  }

  :where(.aa-card) {
    padding: var(--wp--preset--spacing--aa-card-mobile);
  }

  .wp-site-blocks .aa-card {
    padding: var(--wp--preset--spacing--aa-card-mobile, 1.5rem);
  }

  :where(.aa-actions .wp-block-button, .aa-actions .wp-block-button__link) {
    width: 100%;
  }

  /* BOTTOM PADDING: reserve room so the fixed sticky bar never covers the last
     content / footer when visible. Zero-specificity (:where) and universal across
     every template at <=520px. 6rem clears the ~66px bar + its 0.85rem bottom offset. */
  :where(body) {
    padding-bottom: 6rem;
  }

  :where(.aa-page-shell h1) {
    font-size: clamp(2.5rem, 12vw, 3.2rem);
  }

  :where(.aa-stat-strip) {
    grid-template-columns: 1fr;
  }

  :where(.aa-proof-strip) {
    grid-template-columns: 1fr;
  }

  :where(.aa-mobile-sticky-cta) {
    align-items: center;
    background: rgba(255, 255, 255, 0.95);
    border: 1px solid rgba(0, 114, 188, 0.14);
    border-radius: 8px;
    bottom: 0.85rem;
    box-shadow: 0 20px 55px rgba(36, 55, 70, 0.18);
    display: flex;
    gap: 0.55rem;
    left: 1rem;
    padding: 0.55rem;
    position: fixed;
    right: 1rem;
    z-index: 90;
    transition: transform 220ms ease, opacity 220ms ease;
    will-change: transform;
  }

  /* SCROLL-AWARE HIDE: bar sits off-screen at the top of the page (first viewport);
     the wp_footer script removes .is-hidden once the user scrolls past the hero
     (scrollY > 400px). Keeps the bar off the hero and prevents it stacking on any
     in-content 'Find a provider' button while that button is still in view. */
  :where(.aa-mobile-sticky-cta.is-hidden) {
    transform: translateY(calc(100% + 1.5rem));
    opacity: 0;
    pointer-events: none;
  }

  :where(.aa-mobile-sticky-cta__link) {
    border: 1px solid rgba(0, 114, 188, 0.22);
    border-radius: 6px;
    color: var(--wp--preset--color--aa-primary-dark);
    flex: 1 1 0;
    font-size: 0.9rem;
    font-weight: 800;
    padding: 0.78rem 0.75rem;
    text-align: center;
    text-decoration: none;
  }

  :where(.aa-mobile-sticky-cta__link.is-primary) {
    background: var(--wp--preset--color--aa-primary);
    border-color: var(--wp--preset--color--aa-primary);
    color: var(--wp--preset--color--aa-surface);
  }
}

@media (prefers-reduced-motion: reduce) {
  .aa-polish-ready :where(.aa-section, .aa-card),
  :where(.aa-page-shell .wp-block-button__link:hover, .aa-mobile-sticky-cta__link:hover) {
    opacity: 1;
    transform: none;
    transition: none;
  }

  /* Scroll-aware bar still hides/shows, but with no slide animation.
     Only the transition is killed here; the .is-hidden transform/opacity
     (which moves it off-screen at the top) is intentionally left intact. */
  :where(.aa-mobile-sticky-cta) {
    transition: none;
  }
}

/* ===== AA premium uplift Phase 1 ===== */
:where(.aa-page-shell) h1, :where(.aa-page-shell) h2, :where(.aa-page-shell) h3 { color: var(--wp--preset--color--aa-ink); }
.aa-page-shell .is-dark :is(h1,h2,h3), .aa-section.is-kinetic :is(h1,h2,h3) { color: var(--wp--preset--color--aa-surface); }
.aa-eyebrow { color: var(--wp--preset--color--aa-primary); letter-spacing: .12em; }
.wp-site-blocks .aa-card { box-shadow: 0 6px 22px rgba(18,53,73,0.05); }
.wp-site-blocks .aa-card:hover { box-shadow: 0 14px 34px rgba(18,53,73,0.10); }
.aa-page-shell .wp-block-button__link { background: var(--wp--preset--color--aa-primary); color:#fff; border:0; border-radius: var(--wp--custom--radius--button); font-weight:800; letter-spacing:.2px; padding:.85rem 1.45rem; box-shadow:none; transition: filter 160ms ease, transform 160ms ease; }
.aa-page-shell .wp-block-button.is-style-outline .wp-block-button__link { background:transparent; color: var(--wp--preset--color--aa-primary); border:2px solid var(--wp--preset--color--aa-primary); }
.aa-page-shell .is-dark .wp-block-button__link, .aa-section.is-kinetic .wp-block-button__link { background:#fff; color: var(--wp--preset--color--aa-primary-dark); }
.aa-page-shell .wp-block-button__link:hover { filter:brightness(.96); transform: translateY(-1px); }
@keyframes aaKinetic { 0%{background-position:0% 50%} 50%{background-position:100% 50%} 100%{background-position:0% 50%} }
.aa-section.is-kinetic { background: linear-gradient(120deg, var(--wp--preset--color--aa-primary-dark) 0%, var(--wp--preset--color--aa-primary) 45%, #1893e6 100%); background-size:200% 200%; animation: aaKinetic 18s ease infinite; color:#fff; }
.aa-section.is-kinetic :where(p){ color: rgba(255,255,255,.92); }
.aa-polish-ready :where(.aa-section:not(.is-visible)) { opacity:0; transform: translateY(10px); }
.aa-polish-ready :where(.aa-section.is-visible) { opacity:1; transform:none; transition: opacity 520ms ease, transform 520ms ease; }
@media (prefers-reduced-motion: reduce) { .aa-section.is-kinetic { animation:none; } .aa-polish-ready :where(.aa-section:not(.is-visible)) { opacity:1; transform:none; } }

/* ===== AA home components ===== */
.is-kinetic .aa-eyebrow, .is-dark .aa-eyebrow { color: rgba(255,255,255,.85); }
.aa-icon-circle { width:80px; height:80px; border-radius:50%; display:flex; align-items:center; justify-content:center; margin:0 auto 1rem; background: var(--wp--preset--color--aa-bg); border:1.5px solid var(--wp--preset--color--aa-primary); }
.aa-icon-circle svg { width:38px; height:38px; }
.aa-step-number { width:46px; height:46px; border-radius:50%; background: var(--wp--preset--color--aa-primary); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:1.15rem; margin-bottom:.85rem; }
.aa-transform img { border-radius: var(--wp--custom--radius--card); }
.aa-transform figcaption { margin-top:.6rem; font-size:.85rem; color: var(--wp--preset--color--aa-muted); text-align:center; }
.aa-quote-card { border-left: 4px solid var(--wp--preset--color--aa-accent); }
.aa-quote-card .aa-quote-author { color: var(--wp--preset--color--aa-primary); font-weight:800; margin:.5rem 0 0; }

/* reveal safety: never leave a section hidden (IO + full-page reliability) */
.aa-polish-ready :where(.aa-section:not(.is-visible)) { opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce) { .aa-polish-ready :where(.aa-section) { opacity:1; transform:none; } }

/* ===== AA phase1 corrections ===== */
.aa-stat-item { text-align: center; }
.aa-hero-cover .wp-block-cover__inner-container { max-width: var(--wp--style--global--wide-size); margin-inline: auto; width: 100%; padding-inline: var(--wp--preset--spacing--aa-page-x); }
.aa-transform img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; height: auto; }
@media (max-width:520px){ .aa-hero-cover .wp-block-cover__inner-container{ padding-inline: var(--wp--preset--spacing--aa-page-x-mobile);} }

/* ===== AA hero + video cards ===== */
.aa-hero-split .aa-hero-img img { border-radius: var(--wp--custom--radius--card); max-height: 460px; width:100%; object-fit: cover; }
.aa-hero-split .aa-balance-copy { gap:.4rem; }
.aa-video-card .aa-video-thumb { position:relative; display:block; border-radius: var(--wp--custom--radius--card); overflow:hidden; margin-bottom:1rem; }
.aa-video-card .aa-video-thumb img { display:block; width:100%; aspect-ratio:16/9; object-fit:cover; }
.aa-video-card .aa-watch { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(15,47,60,.30); color:#fff; font-weight:800; letter-spacing:.04em; transition:background .2s ease; }
.aa-video-card .aa-video-thumb:hover .aa-watch { background:rgba(15,47,60,.12); }

/* ===== AA bolder modern ===== */
:where(.aa-section){ padding-top: clamp(3.5rem, 6vw, 6rem); padding-bottom: clamp(3.5rem, 6vw, 6rem); }
:where(.aa-page-shell) h1 { font-size: clamp(3.1rem, 6vw, 5rem); letter-spacing:-0.02em; line-height:1.02; }
:where(.aa-page-shell) h2 { font-size: clamp(2.1rem, 3.6vw, 3.4rem); letter-spacing:-0.015em; line-height:1.06; }
:where(.aa-page-shell) h3 { letter-spacing:-0.01em; }
.aa-eyebrow { font-size:.78rem; letter-spacing:.16em; font-weight:800; }
.wp-site-blocks .aa-card { border-radius:14px; border:1px solid var(--wp--preset--color--aa-border); box-shadow:0 10px 30px rgba(18,53,73,.05); }
.wp-site-blocks .aa-card:hover { transform:translateY(-4px); box-shadow:0 20px 48px rgba(18,53,73,.10); }
.aa-page-shell .wp-block-button__link { padding:.95rem 1.7rem; border-radius:8px; font-size:1.02rem; }
.aa-hero-split { min-height: clamp(520px, 72vh, 760px); display:flex; align-items:center; }
.aa-hero-split .aa-inner { width:100%; }
.aa-lede { font-size: clamp(1.15rem, 1.7vw, 1.35rem); }
.aa-stat-item strong { font-size: clamp(1.5rem, 2.4vw, 2.2rem); }
.aa-media img, .aa-transform img, .aa-hero-img img { border-radius:16px; }

/* ===== AA north star — blue-on-light, warm base ===== */
.wp-site-blocks { background: var(--wp--preset--color--aa-base); }
.wp-site-blocks .aa-section.is-light { background: var(--wp--preset--color--aa-base); }
.wp-site-blocks .aa-section.is-surface { background:#ffffff; }
/* stat strip -> light */
.wp-site-blocks .aa-stat-strip { background:#fff; border:1px solid var(--wp--preset--color--aa-border); box-shadow:0 10px 30px rgba(18,53,73,.05); }
.wp-site-blocks .aa-stat-strip, .wp-site-blocks .aa-stat-item span { color: var(--wp--preset--color--aa-text); }
.wp-site-blocks .aa-stat-item strong { color: var(--wp--preset--color--aa-primary); }
/* kinetic/dark sections -> light, EXCEPT the single accent .is-cta-dark */
.wp-site-blocks .aa-section.is-kinetic:not(.is-cta-dark), .wp-site-blocks .aa-section.is-dark:not(.is-cta-dark) { background: var(--wp--preset--color--aa-base); animation:none; color: var(--wp--preset--color--aa-text); }
.wp-site-blocks .aa-section.is-kinetic:not(.is-cta-dark) :is(h1,h2,h3), .wp-site-blocks .aa-section.is-dark:not(.is-cta-dark) :is(h1,h2,h3) { color: var(--wp--preset--color--aa-ink); }
.wp-site-blocks .aa-section.is-kinetic:not(.is-cta-dark) :where(p), .wp-site-blocks .aa-section.is-dark:not(.is-cta-dark) :where(p) { color: var(--wp--preset--color--aa-text); }
.wp-site-blocks .aa-section.is-kinetic:not(.is-cta-dark) .wp-block-button__link, .wp-site-blocks .aa-section.is-dark:not(.is-cta-dark) .wp-block-button__link { background: var(--wp--preset--color--aa-primary); color:#fff; }
/* the ONE allowed dark accent band */
.aa-section.is-cta-dark { background: linear-gradient(120deg, var(--wp--preset--color--aa-primary-dark) 0%, var(--wp--preset--color--aa-primary) 100%); color:#fff; }
.aa-section.is-cta-dark :is(h1,h2,h3){ color:#fff; }
.aa-section.is-cta-dark :where(p){ color:rgba(255,255,255,.92); }
.aa-section.is-cta-dark .wp-block-button__link{ background:#fff; color:var(--wp--preset--color--aa-primary-dark); }
/* BC1: outline (secondary) button on a dark CTA band must be a VISIBLE white ghost, not the near-invisible blue-on-navy outline. Keeps one filled primary + one visible outlined secondary. */
.aa-page-shell .aa-section.is-cta-dark .wp-block-button.is-style-outline .wp-block-button__link,
.aa-page-shell .aa-section.is-dark .wp-block-button.is-style-outline .wp-block-button__link,
.aa-page-shell .aa-section.is-kinetic.is-cta-dark .wp-block-button.is-style-outline .wp-block-button__link { background:transparent !important; color:#fff !important; border:2px solid rgba(255,255,255,.9) !important; }
.aa-page-shell .aa-section.is-cta-dark .wp-block-button.is-style-outline .wp-block-button__link:hover,
.aa-page-shell .aa-section.is-dark .wp-block-button.is-style-outline .wp-block-button__link:hover { background:rgba(255,255,255,.14) !important; border-color:#fff !important; color:#fff !important; filter:none; }
/* bigger editorial hero + soft rounding */
:where(.aa-page-shell) h1 { font-size: clamp(3.2rem, 6.2vw, 4.75rem); letter-spacing:-0.022em; }
.aa-page-shell .wp-block-button__link { border-radius:10px; }
.wp-site-blocks .aa-media img, .wp-site-blocks .aa-transform img, .wp-site-blocks .aa-hero-img img, .wp-site-blocks .aa-page-shell .wp-block-image img { border-radius:14px; }

/* ===== AA section separation (adjacent same-tone sections read as distinct) ===== */
.wp-site-blocks .aa-section + .aa-section { border-top: 1px solid rgba(18,53,73,0.07); }
.wp-site-blocks .aa-section.is-cta-dark, .wp-site-blocks .aa-section.is-cta-dark + .aa-section { border-top: 0; }

/* ===== AA mega-menu (Doctor Resources) — desktop ===== */
@media (min-width: 800px){
  .wp-block-navigation .wp-block-navigation-submenu > .wp-block-navigation__submenu-container{
    min-width: 540px; display:grid; grid-template-columns:1fr 1fr; gap:.15rem 1.75rem;
    padding:1.1rem 1.35rem; border-radius:14px; border:1px solid var(--wp--preset--color--aa-border);
    box-shadow:0 20px 48px rgba(18,53,73,.14); background:#fff;
  }
  .wp-block-navigation__submenu-container .wp-block-navigation-item__content{ padding:.5rem .25rem; font-weight:600; }
  .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover{ color:var(--wp--preset--color--aa-primary); }
}

/* ===== AA login moment ===== */
.aa-login .aa-login-img img{max-width:480px;width:100%;border-radius:16px;}
.aa-login .aa-inner{max-width:720px;}

/* ===== AA blog grid + toggle ===== */
.aa-blog-grid ul.wp-block-post-template{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:2rem}
.aa-blog-grid ul.wp-block-post-template li.wp-block-post{margin:0;height:100%}
.aa-blog-card{height:100%;display:flex;flex-direction:column;gap:.6rem;padding:0;background:#fff;border:1px solid rgba(18,53,73,.08);border-radius:14px;overflow:hidden;transition:transform .25s ease,box-shadow .25s ease}
.aa-blog-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px -22px rgba(18,53,73,.45)}
.aa-blog-card .wp-block-post-featured-image{margin:0}
.aa-blog-card .wp-block-post-featured-image img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover}
.aa-blog-card .wp-block-post-title{margin:.4rem 0 0;padding:0 1.25rem;font-size:1.22rem;line-height:1.3}
.aa-blog-card .wp-block-post-title a{text-decoration:none}
.aa-blog-card .wp-block-post-excerpt{margin:0;padding:0 1.25rem;color:#4a5b68;font-size:.98rem}
.aa-blog-card .wp-block-post-excerpt p{margin:0}
.aa-blog-card .wp-block-read-more{margin:auto 0 0;padding:.6rem 1.25rem 1.25rem;display:inline-block;font-weight:600;color:var(--wp--preset--color--aa-blue,#0072BC);text-decoration:none}
.aa-blog-toggle{display:inline-flex;gap:.25rem;padding:.3rem;border-radius:999px;background:#EEF7FB;border:1px solid rgba(18,53,73,.08)}
.aa-blog-toggle .wp-block-button__link{border-radius:999px;padding:.55rem 1.4rem;font-size:.95rem;border:none}
.aa-blog-toggle .wp-block-button:not(.is-active) .wp-block-button__link{background:transparent;color:var(--wp--preset--color--aa-ink,#243746)}
@media(max-width:781px){.aa-blog-grid ul.wp-block-post-template{grid-template-columns:1fr}}
/* ===== end AA blog ===== */

/* ===== AA responsive video embed ===== */
.aa-embed{position:relative;aspect-ratio:16/9;border-radius:14px;overflow:hidden;box-shadow:0 18px 50px -28px rgba(18,53,73,.5);background:#0b1f2c}
.aa-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.aa-takeaways{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}
.aa-takeaways li{position:relative;padding-left:1.9rem;color:#33424e}
.aa-takeaways li::before{content:"";position:absolute;left:0;top:.45em;width:.7rem;height:.7rem;border-radius:3px;background:var(--wp--preset--color--aa-blue,#0072BC)}
/* ===== end embed ===== */

/* ===== AA mega-menu FIX (Round 2) — beat line-381 specificity + force wide 2-col panel ===== */
@media (min-width: 900px){
  .wp-site-blocks .wp-block-navigation .has-child > .wp-block-navigation__submenu-container{
    width: 600px; min-width: 600px;
    display: grid; grid-template-columns: 1fr 1fr; gap: .2rem 2rem;
    padding: 1.4rem 1.6rem; border-radius: 14px;
    box-shadow: 0 22px 60px rgba(36,55,70,.18);
  }
  .wp-site-blocks .wp-block-navigation .has-child > .wp-block-navigation__submenu-container > li{ margin: 0; }
  .wp-site-blocks .wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation-item__content{
    padding: .55rem .6rem; font-weight: 600; white-space: nowrap;
  }
}
/* ===== end mega-menu fix ===== */

/* ===== AA mega-menu FIX v2 (descendant + higher specificity) ===== */
@media (min-width: 900px){
  .wp-site-blocks .wp-block-navigation .wp-block-navigation-submenu.has-child .wp-block-navigation__submenu-container{
    width: 600px; min-width: 600px; max-width: 90vw;
    display: grid; grid-template-columns: 1fr 1fr; gap: .2rem 2rem;
    padding: 1.4rem 1.6rem; border-radius: 14px; box-shadow: 0 22px 60px rgba(36,55,70,.18);
  }
}
/* ===== end mega-menu fix v2 ===== */

/* ============================================================
   GLOBAL HEADER — ported from .co.za sc-header / sc-nav / sc-mega
   (header is shared, so this is site-wide, not body.home)
   ============================================================ */
.sc-header{ position:sticky; top:0; z-index:100; background:rgba(255,255,255,.9); backdrop-filter:saturate(160%) blur(10px); border-bottom:1px solid #D7E5EF; }
.sc-logo{ display:inline-flex; align-items:center; text-decoration:none; line-height:1; }
.sc-logo img{ display:block; height:30px; width:auto; }
.sc-nav{ display:flex; gap:1.15rem; align-items:center; }
.sc-nav > a{ color:#243746; text-decoration:none; font-weight:500; font-size:1rem; letter-spacing:-0.01em; white-space:nowrap; }
.sc-nav > a:hover{ color:#0072bc; }
.sc-has-mega > a{ color:#243746; text-decoration:none; font-weight:500; font-size:1rem; letter-spacing:-0.01em; white-space:nowrap; cursor:pointer; }
.sc-has-mega > a:hover{ color:#0072bc; }
.sc-nav-cta{ background:#0072bc; color:#fff !important; padding:.7rem 1.2rem; border-radius:8px; font-weight:600; transition:background-color .2s ease, transform .2s ease; }
.sc-nav-cta:hover{ background:#005A96; transform:translateY(-1px); }
@media (min-width:901px) and (max-width:1180px){ .sc-nav{ gap:.8rem; } .sc-nav > a, .sc-has-mega > a{ font-size:.9rem; } }

/* mega menu */
.sc-has-mega{ position:relative; }
.sc-mega{ position:absolute; top:calc(100% + 14px); left:50%; transform:translateX(-50%) translateY(8px); min-width:min(560px,92vw); background:#fff; border:1px solid #D7E5EF; border-radius:14px; box-shadow:0 22px 60px rgba(14,36,51,.18); padding:1.4rem; display:grid; grid-template-columns:1fr 1fr; gap:.4rem 2rem; opacity:0; visibility:hidden; transition:opacity .2s ease, transform .2s ease; z-index:200; }
.sc-has-mega:hover .sc-mega, .sc-has-mega:focus-within .sc-mega{ opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
.sc-mega::before{ content:""; position:absolute; top:-16px; left:0; right:0; height:18px; }
.sc-mega-col h4{ font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; color:#5A6B78; margin:0 0 .6rem; }
.sc-mega a{ display:block; padding:.45rem .5rem; border-radius:8px; color:#243746; text-decoration:none; font-weight:600; }
.sc-mega a:hover{ background:#EEF7FB; color:#0072bc; }
.sc-mega a small{ display:block; color:#5A6B78; font-weight:400; font-size:.82rem; margin-top:.1rem; }

/* mobile */
.sc-nav-toggle{ display:none; background:none; border:0; cursor:pointer; }
@media (max-width:900px){
  .sc-nav{ display:none; position:absolute; top:100%; left:0; right:0; flex-direction:column; align-items:flex-start; gap:.4rem; background:#fff; border-bottom:1px solid #D7E5EF; padding:1rem 1.25rem 1.5rem; box-shadow:0 18px 40px rgba(14,36,51,.12); }
  .sc-nav.is-open{ display:flex; }
  .sc-nav-toggle{ display:inline-flex; }
  .sc-mega{ position:static; transform:none; opacity:1; visibility:visible; box-shadow:none; border:0; padding:.25rem 0 .25rem 1rem; grid-template-columns:1fr; min-width:0; }
  .sc-nav-cta{ margin-top:.4rem; }
}

/* mobile menu scroll-robustness */
@media (max-width:900px){ .sc-nav.is-open{ z-index:300; max-height:calc(100vh - 64px); overflow-y:auto; -webkit-overflow-scrolling:touch; } }

.sc-logo{flex:0 0 auto}
.sc-logo img{flex:0 0 auto;max-width:none}

/* ============================================================
   HOME CANARY — full .co.za design-system port (SCOPED to body.home)
   Ported 1:1 from aa-coza-ollie-child/style.css. Promote to global on approval.
   20 Jun, rev4.
   ============================================================ */

/* ---- spacing & width (96px sections, 1200 inner) ---- */
body.home{ --wp--preset--spacing--aa-hero-y: clamp(64px,8vw,100px); }
.wp-site-blocks .aa-section{ padding-top:clamp(56px,8vw,96px); padding-bottom:clamp(56px,8vw,96px); padding-inline:clamp(20px,5vw,64px); }
.aa-inner{ max-width:1200px; }      /* width A: 1200 cap */
/* WIDTH NORMALIZATION (2.8.2247): 'is-narrow' used to hard-cap the WHOLE band at 900, which
   squashed the card rows / galleries inside it (owner flagged 'Why patients choose' as squashed
   vs the wider 1200 band below). New model: the band inner tracks the standard 1200 rhythm like
   every other section, and 'is-narrow' now only tightens the READING MEASURE of the centered
   heading + intro copy (so line-length stays comfortable) — the grids/galleries breathe full-width.
   Reusable across every page that uses .aa-inner.is-narrow. */
.aa-inner.is-narrow{ max-width:1200px; }
.aa-inner.is-narrow > :where(h1,h2,h3,p,.aa-eyebrow,.wp-block-heading){
  max-width:820px; margin-inline:auto;   /* narrow measure for centered intro copy only */
}
.aa-inner.is-narrow > .aa-actions{
  max-width:820px;
  margin-inline:auto;
  justify-content:flex-start;
}
body.home .aa-inner.is-narrow > .aa-actions.is-content-justification-center,
body.page-id-5 .aa-inner.is-narrow > .aa-actions.is-content-justification-center{
  justify-content:center;
}
.aa-inner.is-narrow > :where(ul,ol,.wp-block-list){
  max-width:820px;
  margin-inline:auto;
}
/* dark CTA band stays a compact centered column (short call-to-action, not a card row) */
.aa-section.is-cta-dark .aa-inner.is-narrow{ max-width:820px; }
.aa-section.is-cta-dark .aa-inner.is-narrow > :where(h1,h2,h3,p){ max-width:none; }
.aa-section.is-cta-dark .aa-inner.is-narrow > .aa-actions{ justify-content:center; }
body.page-id-135 .aa-inner.is-narrow > .aa-grid.two.aa-photo-pair{
  max-width:820px;
  margin-inline:auto;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
}
body.page-id-135 .aa-section.is-cta-dark.is-left-cta .aa-inner.is-narrow > .aa-actions{
  justify-content:flex-start;
}
body.page-id-200 .aa-stat-strip{
  align-items:stretch;
}
body.page-id-200 .aa-stat-strip .aa-stat-item{
  justify-content:center;
  min-height:190px;
}
body.page-id-147 .aa-steps.aa-omnicam-detail{
  margin-top:clamp(1.25rem,3vw,2rem);
}
body.page-id-147 .aa-inner.is-narrow > .aa-grid.two.aa-primescan-pair,
body.page-id-144 .aa-inner.is-narrow > .aa-grid.two.aa-failure-pair{
  max-width:820px;
  margin-inline:auto;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
}
@media (max-width: 781px){
  body.page-id-135 .aa-inner.is-narrow > .aa-grid.two.aa-photo-pair{
    grid-template-columns:1fr;
  }
  body.page-id-147 .aa-inner.is-narrow > .aa-grid.two.aa-primescan-pair,
  body.page-id-144 .aa-inner.is-narrow > .aa-grid.two.aa-failure-pair{
    grid-template-columns:1fr;
  }
}
/* badge / split sections: even columns so the graphic stops floating (was 1.25/0.75) */
.aa-grid.two.aa-balance-pair{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
/* hero heading: match .co.za "mega" exactly — same size curve (72px @1440), same standard ink */
body.home .aa-hero-split h1{ font-size:clamp(2.5rem,5vw,4.5rem) !important; line-height:1.04; letter-spacing:-.02em; }

/* ---- palette: white + blue-tint rhythm ---- */
.wp-site-blocks .aa-section.is-light{ background:#EEF7FB; }
.wp-site-blocks .aa-section.is-surface{ background:#ffffff; }
.wp-site-blocks .aa-section.is-kinetic:not(.is-cta-dark){ background:linear-gradient(180deg,#EEF7FB 0%,#DCEEF9 100%); color:#243746; animation:none; }
.wp-site-blocks .aa-section + .aa-section{ border-top:0; }

/* ---- logo 30px (was 22) ---- */
.wp-block-site-logo img, body.home .custom-logo{ height:30px !important; width:auto !important; }

/* ---- eyebrow (sc-eyebrow) ---- */
.aa-eyebrow{ color:#0072bc; font-weight:600; font-size:.8rem; letter-spacing:.14em; text-transform:uppercase; }

/* ---- CARDS: sc-card hover-lift ---- */
.aa-card{ background:#fff; border:1px solid #D7E5EF; border-radius:14px;
  box-shadow:0 1px 2px rgba(14,36,51,.05),0 12px 30px rgba(14,36,51,.06);
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.aa-card:hover{ transform:translateY(-6px); border-color:#DCEEF9;
  box-shadow:0 2px 4px rgba(14,36,51,.07),0 18px 44px rgba(14,36,51,.11); }

/* ---- icon: rounded-square filled (sc-card-icon), not big outlined circle ---- */
.aa-icon-circle{ width:3.4rem; height:3.4rem; border-radius:14px; border:0;
  background:#DCEEF9; color:#0072bc; margin:0 auto 1rem; }
.aa-icon-circle svg{ width:26px; height:26px; }
.aa-step-number{ width:2.6rem; height:2.6rem; border-radius:999px; background:#DCEEF9; color:#005A96; font-weight:800; }

/* ---- STAT/FEATURE STRIP: clean icon cards (match the site card system; was a flat diagonal-gradient strip) ---- */
/* CANARY FIX 2: equal-width cards that FILL the row for any item count (was repeat(4,1fr) which
   left a dead empty 4th column with 3-item strips, clustering cards left). Flex + flex:1 1 0 makes
   every card the same width and share the full band. Shared pattern — verified on 155 and 193. */
.wp-site-blocks .aa-stat-strip{ display:flex; flex-wrap:wrap; gap:1.25rem; max-width:1120px; margin:0 auto; background:transparent; border:0; box-shadow:none; }
.wp-site-blocks .aa-stat-item{ display:flex; flex-direction:column; align-items:center; text-align:center; flex:1 1 0; min-width:0;
  background:#fff !important; border:1px solid #D7E5EF; border-radius:16px; padding:1.7rem 1.2rem;
  box-shadow:0 1px 2px rgba(14,36,51,.05),0 12px 30px rgba(14,36,51,.06); transition:transform .25s ease, box-shadow .25s ease; }
.wp-site-blocks .aa-stat-item:hover{ transform:translateY(-6px); box-shadow:0 2px 4px rgba(14,36,51,.07),0 18px 44px rgba(14,36,51,.11); }
.aa-stat-ico{ width:3rem; height:3rem; border-radius:12px; background:#DCEEF9; color:#0072bc; display:inline-flex; align-items:center; justify-content:center; margin-bottom:.9rem; flex:0 0 auto; }
.aa-stat-ico svg{ width:24px; height:24px; }
.wp-site-blocks .aa-stat-item strong{ color:#0072bc; font-weight:800; font-size:1.2rem; letter-spacing:-.01em; display:block; margin-bottom:.35rem; }
.wp-site-blocks .aa-stat-item span{ color:#5A6B78; font-size:.92rem; line-height:1.45; }

/* ---- HERO: balance + 3 actions (aa-hero-actions/btn/ig ported 1:1) ---- */
/* HERO PRESENCE (2.8.2247): the hero visual was a modest 43% slice (~515px, 343px tall) beside a
   dominant headline. Give the image real presence — ~56% of the row and a taller crop that fills
   the hero band — while keeping the eyebrow + mega H1 + CTA trio + disclaimer intact. */
body.home .aa-hero-split .aa-grid.two{ grid-template-columns:minmax(0,0.86fr) minmax(0,1.14fr); align-items:stretch; gap:clamp(1.5rem,4vw,3.25rem); }
/* figure fills the column; img covers it at a portrait crop. Beat the Gutenberg inline
   aspect-ratio with explicit height + object-fit on both figure and img. */
body.home .aa-hero-split .aa-hero-img{ margin:0; align-self:stretch; display:flex; min-height:clamp(460px,60vh,640px); }
body.home .aa-hero-split .aa-hero-img img{
  width:100%; height:100%; min-height:100%; flex:1 1 auto;
  aspect-ratio:auto !important; object-fit:cover; object-position:42% 46%; border-radius:16px;
}
@media (max-width:768px){
  body.home .aa-hero-split .aa-grid.two{ grid-template-columns:1fr; align-items:center; }
  body.home .aa-hero-split .aa-hero-img{ height:auto; }
  body.home .aa-hero-split .aa-hero-img img{ min-height:0; height:auto; aspect-ratio:4/3 !important; }
}
body.home .aa-hero-actions{ display:flex; flex-wrap:wrap; align-items:center; gap:.9rem; margin-top:1.8rem; }
body.home .aa-hero-btn{ display:inline-flex; align-items:center; justify-content:center; font-weight:600; font-size:1rem; line-height:1; padding:.9rem 1.6rem; border-radius:8px; text-decoration:none; transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease,color .2s ease; }
body.home .aa-hero-btn--solid{ background:#0072bc; color:#fff; border:2px solid #0072bc; }
body.home .aa-hero-btn--solid:hover{ background:#005A96; border-color:#005A96; transform:translateY(-2px); box-shadow:0 8px 20px rgba(14,36,51,.12); }
body.home .aa-hero-btn--outline{ background:transparent; color:#0072bc; border:2px solid #0072bc; }
body.home .aa-hero-btn--outline:hover{ background:#0072bc; color:#fff; transform:translateY(-2px); }
body.home .aa-hero-ig{ display:inline-flex; align-items:center; gap:.5rem; color:#0072bc; font-weight:600; font-size:1rem; text-decoration:none; padding:.9rem .6rem; }
body.home .aa-hero-ig:hover{ color:#005A96; }

/* ---- provider-badge graphic (white card on blue band) ---- */
body.home .aa-badge-img{ margin:0; text-align:center; }
body.home .aa-badge-img img{ width:100%; max-width:500px; border-radius:18px; box-shadow:0 1px 2px rgba(14,36,51,.05),0 16px 40px rgba(14,36,51,.10); }

/* ---- RESULTS GALLERY: aa-results-grid + aa-result (ported 1:1) ---- */
.aa-results-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem; margin-top:2rem; }
@media(max-width:1000px){ body.home .aa-results-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:560px){ body.home .aa-results-grid{ grid-template-columns:1fr; } }
.aa-result{ background:#fff; border:1px solid #D7E5EF; border-radius:14px; overflow:hidden; box-shadow:0 1px 2px rgba(14,36,51,.05),0 12px 30px rgba(14,36,51,.06); transition:transform .25s ease, box-shadow .25s ease; }
.aa-result:hover{ transform:translateY(-6px); box-shadow:0 2px 4px rgba(14,36,51,.07),0 18px 44px rgba(14,36,51,.11); }
.aa-result img{ width:100%; aspect-ratio:4/3; object-fit:cover; display:block; }
.aa-result .aa-result-cap{ padding:.8rem 1rem; font-size:.85rem; color:#5A6B78; display:flex; align-items:center; gap:.4rem; }
.aa-result .aa-result-cap svg{ color:#0072bc; flex:0 0 auto; }

/* ---- DROPDOWN: polish the WP submenu to the .co.za sc-mega aesthetic ---- */
.wp-block-navigation .wp-block-navigation__submenu-container{
  background:#fff; border:1px solid #D7E5EF; border-radius:14px;
  box-shadow:0 18px 50px rgba(14,36,51,.16); padding:.5rem; min-width:248px; margin-top:12px; }
.wp-block-navigation__submenu-container .wp-block-navigation-item__content{ border-radius:8px; padding:.5rem .75rem; font-weight:500; }
.wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.wp-block-navigation__submenu-container .wp-block-navigation-item:hover > .wp-block-navigation-item__content{ background:#EEF7FB; color:#0072bc; }

/* ---- button hover lift (global polish) ---- */
.wp-block-button__link{ transition:background-color .2s ease, transform .2s ease, box-shadow .2s ease; }
.wp-block-button__link:hover{ transform:translateY(-2px); box-shadow:0 8px 20px rgba(14,36,51,.10); }

/* ===== inset bands — match .co.za EXACTLY: every section a 1352 column, NO radius, 24px gaps ===== */
.wp-site-blocks .aa-section{
  width:calc(100% - 88px); margin-inline:auto; margin-top:24px; border-radius:0;   /* NO max-width — scale like .co.za, constant 44px gutter */
}
.wp-site-blocks .aa-page-shell > .aa-section:first-child,
.wp-site-blocks > .aa-section:first-child{ margin-top:12px; }
@media (max-width:768px){ .wp-site-blocks .aa-section{ width:calc(100% - 32px); } }

/* ===== PAGE BACKGROUND WHITE — cream #FBFAF6 was killing the inset white edging + section separation ===== */
body, .wp-site-blocks, .aa-page-shell{ background-color:#ffffff !important; }
/* hero eyebrow blue like .co.za (was inheriting dark ink on the kinetic band) */
.wp-site-blocks .aa-section .aa-eyebrow{ color:#0072bc !important; }

/* ===== MOBILE (≤768) — stack EVERY 2-col grid (not just hero) + wrap the stat strip ===== */
@media (max-width:768px){
  .wp-site-blocks .aa-grid.two{ grid-template-columns:1fr !important; }
  .aa-hero-split .aa-hero-img img{ max-height:none; }
  /* CANARY FIX 2 (mobile): flex strip stacks to one full-width column (was a 2-col grid; grid-template
     is inert now the strip is flex). Each card spans the row for a clean stacked read on phones. */
  .wp-site-blocks .aa-stat-strip{ flex-direction:column; gap:1rem; max-width:420px; }
  .wp-site-blocks .aa-stat-item{ flex:1 1 auto; width:100%; padding:1.4rem 1rem; }
  /* logo placement: .com's ported .sc-header-inner had 0 side padding on mobile (flush to edge); .co.za insets ~20 */
  .sc-header-inner{ padding-inline:20px !important; }   /* beat the inline padding on the header-inner element */
}

/* ===== FAQ accordion (ported from .co.za sc-faq) ===== */
.sc-faq{ border:1px solid #D7E5EF; border-radius:14px; margin:0 0 .75rem; background:#fff; overflow:hidden; box-shadow:0 1px 2px rgba(14,36,51,.04); }
.sc-faq summary{ cursor:pointer; list-style:none; padding:1.1rem 1.4rem; font-weight:600; color:#243746; display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.sc-faq summary::-webkit-details-marker{ display:none; }
.sc-faq summary::after{ content:"+"; font-size:1.4rem; line-height:1; color:#0072bc; font-weight:400; transition:transform .2s ease; flex:0 0 auto; }
.sc-faq[open] summary::after{ transform:rotate(45deg); }
.sc-faq summary:hover{ color:#0072bc; }
.sc-faq-body{ padding:0 1.4rem 1.2rem; }
.sc-faq-body p{ color:#5A6B78; line-height:1.7; margin:0 0 .6rem; }
.sc-faq-body ul{ color:#5A6B78; line-height:1.7; margin:.3rem 0 0; padding-left:1.2rem; }
.sc-faq-body li{ margin-bottom:.4rem; }
.sc-faq-body a{ color:#0072bc; font-weight:600; }

/* ===== STEP CARDS (process / journey pages) ===== */
.aa-steps{ display:grid; gap:1rem; max-width:840px; margin:0 auto; }
.aa-step-card{ display:flex; gap:1.2rem; align-items:flex-start; background:#fff; border:1px solid #D7E5EF; border-radius:14px; padding:1.4rem 1.6rem; box-shadow:0 1px 2px rgba(14,36,51,.05),0 12px 30px rgba(14,36,51,.06); transition:transform .25s ease, box-shadow .25s ease; }
.aa-step-card:hover{ transform:translateY(-4px); box-shadow:0 2px 4px rgba(14,36,51,.07),0 18px 44px rgba(14,36,51,.11); }
.aa-step-card .aa-step-num{ flex:0 0 auto; width:2.7rem; height:2.7rem; border-radius:999px; background:#DCEEF9; color:#0072bc; font-weight:800; font-size:1.15rem; display:flex; align-items:center; justify-content:center; }
.aa-step-card--plain{ border-left:3px solid #0072bc; background:#EEF7FB; }
.aa-step-body{ flex:1; min-width:0; }
.aa-step-body h3{ margin:.15rem 0 .5rem; font-size:1.18rem; color:#243746; letter-spacing:-.01em; }
.aa-step-body p, .aa-step-body ul{ color:#5A6B78; line-height:1.65; margin:0 0 .55rem; }
.aa-step-body ul{ padding-left:1.2rem; } .aa-step-body li{ margin-bottom:.35rem; }
.aa-step-body :last-child{ margin-bottom:0; }

/* ===== FEATURE ICON CARDS (benefit / feature pages) ===== */
/* CANARY FIX 3: breathing room below a section heading (was margin:0 auto -> grid sat flush on the
   H2, cards looked squashed under it). 2.25rem top gap matches the site's heading-to-content rhythm. */
.aa-feat-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; max-width:1120px; margin:2.25rem auto 0; }
.aa-feat-card{ background:#fff; border:1px solid #D7E5EF; border-radius:16px; padding:1.7rem 1.5rem; box-shadow:0 1px 2px rgba(14,36,51,.05),0 12px 30px rgba(14,36,51,.06); transition:transform .25s ease, box-shadow .25s ease; }
.aa-feat-card:hover{ transform:translateY(-6px); box-shadow:0 2px 4px rgba(14,36,51,.07),0 18px 44px rgba(14,36,51,.11); }
.aa-feat-ico{ width:3rem; height:3rem; border-radius:12px; background:#DCEEF9; color:#0072bc; display:inline-flex; align-items:center; justify-content:center; margin-bottom:1rem; }
.aa-feat-ico svg{ width:24px; height:24px; }
.aa-feat-card h3{ color:#243746; font-size:1.15rem; letter-spacing:-.01em; margin:0 0 .5rem; }
.aa-feat-card p{ color:#5A6B78; line-height:1.6; margin:0; }
/* CANARY FIX 3: the bullet lists inside feature cards had no list inset (padding-left:0) so markers
   hugged the card's left edge. Give a comfortable inset consistent with .aa-story-body lists. */
.aa-feat-card ul{ color:#5A6B78; line-height:1.6; margin:0; padding-left:1.2rem; list-style:disc; }
.aa-feat-card li{ margin-bottom:.4rem; }
.aa-feat-card li:last-child{ margin-bottom:0; }
@media(max-width:900px){ .aa-feat-grid{ grid-template-columns:1fr 1fr; } }
@media(max-width:600px){ .aa-feat-grid{ grid-template-columns:1fr; } }

/* prevent long headings/words overflowing on narrow mobile (e.g. "Troubleshooting:") */
.wp-site-blocks h1, .wp-site-blocks h2, .wp-site-blocks h3{ overflow-wrap:break-word; word-break:break-word; }

/* ===== STORY SECTIONS — warm image+text flow for narrative pages (antidote to cold card grids) ===== */
.aa-story{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(1.6rem,4vw,3.5rem); align-items:center; max-width:1120px; margin:0 auto; }
.aa-story + .aa-story{ margin-top:clamp(2.4rem,5vw,4rem); }
.aa-story.is-reverse .aa-story-media{ order:2; }
.aa-story-media img{ width:100%; aspect-ratio:3/2; object-fit:cover; border-radius:18px; box-shadow:0 1px 2px rgba(14,36,51,.05),0 18px 44px rgba(14,36,51,.10); display:block; }
.aa-story-eyebrow{ color:#0072bc; font-weight:700; font-size:.8rem; letter-spacing:.12em; text-transform:uppercase; margin-bottom:.45rem; }
.aa-story-body h2,.aa-story-body h3{ color:#243746; letter-spacing:-.01em; margin:.1rem 0 .6rem; font-size:clamp(1.3rem,2.2vw,1.7rem); }
.aa-story-body p{ color:#5A6B78; line-height:1.7; margin:0 0 .7rem; }
.aa-story-body ul{ padding-left:1.1rem; margin:.3rem 0 0; } .aa-story-body li{ color:#5A6B78; line-height:1.6; margin-bottom:.45rem; }
.aa-story-body :last-child{ margin-bottom:0; }
@media(max-width:768px){ .aa-story{ grid-template-columns:1fr; gap:1.3rem; } .aa-story.is-reverse .aa-story-media{ order:0; } }

/* ===== store-locator iframe (ported from .co.za) ===== */
.sc-locator { width: 100%; height: 720px; border-radius: var(--wp--custom--radius--md); overflow: hidden; box-shadow: var(--wp--custom--shadow--card); border: 1px solid var(--wp--preset--color--border); position: relative; }
.sc-locator iframe { width: 100%; height: 1500px; border: 0; display: block; margin-top: -150px; }
@media (max-width: 860px) { .sc-locator { height: 640px; } .sc-locator iframe { height: 1300px; margin-top: -280px; } }

/* .com providers locator (iframe crop of live .com /providers/): the live embed's own
   header + marketing hero sit above #wpsl-search-wrap, so we pull the iframe up to reveal
   just the search + map. Offsets measured on the live page at the 1200px iframe width
   (search box ~615px, map bottom ~1292px) and at the ~358px mobile stack. More specific
   than base .sc-locator, so no !important needed. */
.aa-section .sc-locator{ height:740px; }
.aa-section .sc-locator iframe{ height:2100px; margin-top:-585px; }
/* mobile: live embed renders at ~318px inside the iframe, where the search box starts
   ~577px down and the map bottom is ~1364px. Pull up to clear the embed's own header
   and marketing hero; wrapper height shows search + full stacked map. */
@media(max-width:768px){
  .aa-section .sc-locator{ height:815px; }
  .aa-section .sc-locator iframe{ height:3600px; margin-top:-578px; }
}
/* badge shown as a framed graphic in a story layout (not cropped) */
.aa-story-media.is-contain{ background:#fff; border:1px solid #D7E5EF; border-radius:18px; padding:1.6rem; box-shadow:0 1px 2px rgba(14,36,51,.05),0 14px 36px rgba(14,36,51,.08); display:flex; align-items:center; justify-content:center; }
.aa-story-media.is-contain img{ width:auto; max-width:100%; max-height:320px; aspect-ratio:auto; object-fit:contain; border-radius:8px; box-shadow:none; }

/* === Community / follow strip (ported from Smile Club) === */
.sc-community{display:flex;flex-wrap:wrap;justify-content:center;gap:1.1rem;margin-top:2rem}
.sc-comm-brand{flex:1 1 210px;max-width:250px;background:var(--wp--preset--color--white,#fff);border:1px solid var(--wp--preset--color--border,#E2E8F0);border-radius:var(--wp--custom--radius--md,14px);padding:1.3rem 1.1rem 1.4rem;text-align:center;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.sc-comm-brand:hover{transform:translateY(-5px);box-shadow:0 2px 4px rgba(15,23,42,.05),0 16px 40px rgba(15,23,42,.09);border-color:var(--wp--preset--color--primary-soft,#cfe6f8)}
.sc-comm-name{font-family:var(--wp--preset--font-family--heading,var(--wp--preset--font-family--aa-body));font-weight:700;font-size:1rem;letter-spacing:-.01em;color:var(--wp--preset--color--ink,#13242F);margin:0}
.sc-comm-handle{font-size:.84rem;color:var(--wp--preset--color--muted,#566571);margin:.2rem 0 1rem}
.sc-comm-icons{display:flex;justify-content:center;gap:.55rem}
.sc-comm-ico{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:12px;border:1px solid var(--wp--preset--color--border,#E2E8F0);color:var(--wp--preset--color--ink,#13242F);background:#fff;transition:transform .18s ease,background .18s ease,color .18s ease,border-color .18s ease}
.sc-comm-ico svg{width:20px;height:20px}
.sc-comm-ico:hover{transform:translateY(-2px);color:#fff;border-color:transparent}
.sc-ico-fb:hover{background:#1877F2}
.sc-ico-ig:hover{background:linear-gradient(95deg,#515BD4 0%,#8134AF 30%,#DD2A7B 62%,#F58529 100%)}
.sc-ico-yt:hover{background:#FF0000}
.sc-ico-tt:hover{background:#111}
@media (max-width:600px){.sc-community{gap:.8rem;padding-left:1.1rem;padding-right:1.1rem}.sc-comm-brand{flex:1 1 100%;max-width:100%}}

/* ===== CL1: 4-up feature grid + step badge (Omnicam scan sequences) ===== */
.aa-feat-grid.aa-feat-grid--4{ grid-template-columns:repeat(4,1fr); }
.aa-feat-card{ position:relative; }
.aa-feat-step{ display:inline-flex; align-items:center; justify-content:center; width:2.2rem; height:2.2rem; border-radius:999px; background:#DCEEF9; color:#0072bc; font-weight:800; font-size:1rem; margin-bottom:.85rem; }
@media(max-width:900px){ .aa-feat-grid.aa-feat-grid--4{ grid-template-columns:1fr 1fr; } }
@media(max-width:600px){ .aa-feat-grid.aa-feat-grid--4{ grid-template-columns:1fr; } }


/* ===== FIX1: mobile sticky CTA link legibility (v2.8.2244) =====
   Two link styles must stay distinct:
   - secondary/light chip (Login): dark ink text on the light bar, hairline chip border.
   - primary chip (Doctor Resources / Find a provider): white bold on brand blue.
   Earlier v2.8.2242 fix forced ALL links white, which made the light Login chip
   render white-on-white. Scope colour by variant. */
.aa-mobile-sticky-cta .aa-mobile-sticky-cta__link,
.aa-mobile-sticky-cta .aa-mobile-sticky-cta__link:link,
.aa-mobile-sticky-cta .aa-mobile-sticky-cta__link:visited {
  color: var(--wp--preset--color--aa-ink, #243746);
  background: var(--wp--preset--color--aa-surface, #ffffff);
  border: 1px solid rgba(0, 114, 188, 0.38);
  font-weight: 700;
  text-decoration: none;
  text-align: center;
}
.aa-mobile-sticky-cta .aa-mobile-sticky-cta__link.is-primary,
.aa-mobile-sticky-cta .aa-mobile-sticky-cta__link.is-primary:link,
.aa-mobile-sticky-cta .aa-mobile-sticky-cta__link.is-primary:visited {
  color: var(--wp--preset--color--aa-surface, #ffffff);
  background: var(--wp--preset--color--aa-primary, #0072bc);
  border-color: var(--wp--preset--color--aa-primary, #0072bc);
}
.aa-mobile-sticky-cta .aa-mobile-sticky-cta__link:hover,
.aa-mobile-sticky-cta .aa-mobile-sticky-cta__link:focus {
  color: var(--wp--preset--color--aa-ink, #243746);
  border-color: rgba(0, 114, 188, 0.55);
  text-decoration: none;
}
.aa-mobile-sticky-cta .aa-mobile-sticky-cta__link.is-primary:hover,
.aa-mobile-sticky-cta .aa-mobile-sticky-cta__link.is-primary:focus {
  color: var(--wp--preset--color--aa-surface, #ffffff);
  border-color: var(--wp--preset--color--aa-primary, #0072bc);
  text-decoration: none;
}

/* ===== L2: native Store Locator ([wpsl]) brand skin (v2.8.2243) =====
   Ported store data + settings from live .com; API key renders on staging host.
   Scope everything under #wpsl-wrap so it never leaks to the rest of the theme. */
#wpsl-wrap,
#wpsl-wrap input,
#wpsl-wrap select,
#wpsl-wrap button {
  font-family: "Inter", var(--wp--preset--font-family--aa-body, system-ui, sans-serif);
}

/* search bar row */
#wpsl-wrap .wpsl-search {
  background: #F4F9FD;
  border: 1px solid #D7E5EF;
  border-radius: 12px;
  padding: 1rem 1.1rem;
}

/* text input + dropdowns */
#wpsl-wrap #wpsl-search-input,
#wpsl-wrap .wpsl-input input,
#wpsl-wrap #wpsl-radius select,
#wpsl-wrap #wpsl-results select,
#wpsl-wrap .wpsl-dropdown,
#wpsl-wrap select {
  border: 1px solid #D7E5EF !important;
  border-radius: 10px;
  background: #ffffff;
  color: #243746;
  box-shadow: none;
}
#wpsl-wrap #wpsl-search-input:focus,
#wpsl-wrap select:focus {
  border-color: #0072BC !important;
  outline: none;
  box-shadow: 0 0 0 3px rgba(0,114,188,.12);
}

/* search button */
#wpsl-wrap #wpsl-search-btn,
#wpsl-wrap input[type="submit"] {
  background: #0072BC !important;
  color: #ffffff !important;
  border: 0 !important;
  border-radius: 10px !important;
  font-weight: 700;
  padding: .62rem 1.4rem;
  text-shadow: none;
  box-shadow: none;
  transition: background .18s ease, transform .18s ease;
}
#wpsl-wrap #wpsl-search-btn:hover,
#wpsl-wrap input[type="submit"]:hover {
  background: #005a94 !important;
  transform: translateY(-1px);
}

/* the map */
#wpsl-wrap #wpsl-gmap {
  height: 560px !important;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid #D7E5EF;
  box-shadow: 0 1px 2px rgba(14,36,51,.05), 0 16px 40px rgba(14,36,51,.09);
  margin-top: 1rem;
}

/* result list cards */
#wpsl-wrap #wpsl-result-list {
  margin: 1rem 0 0;
}
#wpsl-wrap #wpsl-stores {
  max-height: 560px;
}
#wpsl-wrap #wpsl-stores li {
  background: #ffffff;
  border: 1px solid #D7E5EF;
  border-radius: 12px;
  padding: 1rem 1.1rem;
  margin-bottom: .75rem;
  box-shadow: 0 1px 2px rgba(14,36,51,.04);
}
#wpsl-wrap #wpsl-stores li:hover {
  border-color: #0072BC;
}
#wpsl-wrap .wpsl-store-location strong {
  color: #243746;
  font-weight: 700;
}
#wpsl-wrap .wpsl-store-location,
#wpsl-wrap .wpsl-store-location span,
#wpsl-wrap .wpsl-contact-details {
  color: #5A6B78;
}
#wpsl-wrap .wpsl-contact-details a,
#wpsl-wrap .wpsl-store-location a {
  color: #0072BC;
}

/* HIDE the store email line in results (span holding the mailto link) */
#wpsl-wrap .wpsl-contact-details span:has(a[href^="mailto:"]) {
  display: none !important;
}

/* desktop layout: map + results side by side (WPSL default), map ~560px */
@media (min-width: 769px) {
  #wpsl-wrap #wpsl-gmap { width: 62%; float: left; }
  #wpsl-wrap #wpsl-result-list { width: 35%; float: right; margin-top: 1rem; }
  #wpsl-wrap #wpsl-result-list::after { content:""; display:block; clear:both; }
}

/* single column at <=390 (and small screens): MAP ABOVE RESULTS */
@media (max-width: 768px) {
  #wpsl-wrap #wpsl-gmap,
  #wpsl-wrap #wpsl-result-list {
    width: 100% !important;
    float: none !important;
    margin-left: 0 !important;
  }
  #wpsl-wrap #wpsl-gmap {
    order: 1;
    height: 380px !important;
    margin-bottom: 1rem;
  }
  #wpsl-wrap #wpsl-result-list { order: 2; }
  /* stack search fields */
  #wpsl-wrap .wpsl-search .wpsl-input,
  #wpsl-wrap .wpsl-search .wpsl-select-wrap {
    width: 100%;
    margin-bottom: .55rem;
  }
}

/* FA: Rx document anchor card (icon tile + file name + download button) */
.aa-doc-card{ display:flex; align-items:center; gap:1.4rem; background:#fff; border:1px solid #D7E5EF; border-radius:16px; padding:1.6rem 1.8rem; margin:2rem 0 0; box-shadow:0 1px 2px rgba(14,36,51,.05),0 12px 30px rgba(14,36,51,.06); transition:transform .25s ease, box-shadow .25s ease; }
.aa-doc-card:hover{ transform:translateY(-4px); box-shadow:0 2px 4px rgba(14,36,51,.07),0 18px 44px rgba(14,36,51,.11); }
.aa-doc-ico{ flex:0 0 auto; width:3.6rem; height:3.6rem; border-radius:14px; background:#DCEEF9; color:#0072bc; display:inline-flex; align-items:center; justify-content:center; }
.aa-doc-ico svg{ width:28px; height:28px; }
.aa-doc-body{ flex:1; min-width:0; display:flex; flex-direction:column; gap:.3rem; }
.wp-site-blocks .aa-doc-body > *{ margin:0; }
.aa-doc-name{ color:#243746; font-weight:800; font-size:1.15rem; letter-spacing:-.01em; }
.aa-doc-meta{ color:#5A6B78; font-size:.95rem; line-height:1.5; }
.aa-doc-body .aa-actions{ margin-top:.5rem; }
@media(max-width:600px){ .aa-doc-card{ flex-direction:column; align-items:flex-start; text-align:left; gap:1rem; } }


/* ============================================================
   AA LIGHTBOX  (click-to-expand image viewer)
   Paired with assets/js/aa-lightbox.js — vanilla, no deps.
   ============================================================ */

/* Interactive tiles look interactive */
.aa-lb-tile { cursor: zoom-in; }
.aa-lb-tile:focus-visible {
  outline: 3px solid #1f6f78;
  outline-offset: 3px;
}

/* Scroll lock while the overlay is open */
html.aa-lb-lock, body.aa-lb-lock { overflow: hidden !important; }

/* Backdrop */
.aa-lb-overlay {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(14, 36, 51, 0.92);
  opacity: 0;
  transition: opacity 150ms ease;
  -webkit-tap-highlight-color: transparent;
}
.aa-lb-overlay.is-open { opacity: 1; }
.aa-lb-overlay[hidden] { display: none; }

/* Figure = image + caption */
.aa-lb-figure {
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  max-width: 92vw;
  pointer-events: none; /* clicks pass through to backdrop except on the img */
}
.aa-lb-img {
  display: block;
  max-width: 92vw;
  max-height: 88vh;
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 6px;
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.45);
  background: #0e2433;
  pointer-events: auto;
}
.aa-lb-cap {
  color: #eaf1f4;
  font-size: 15px;
  line-height: 1.4;
  text-align: center;
  max-width: 62ch;
  padding: 0 8px;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
  pointer-events: auto;
}

/* Controls: shared look */
.aa-lb-close,
.aa-lb-nav {
  position: fixed;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  color: #fff;
  background: rgba(255, 255, 255, 0.12);
  cursor: pointer;
  transition: background 150ms ease, transform 150ms ease;
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
}
.aa-lb-close:hover,
.aa-lb-nav:hover { background: rgba(255, 255, 255, 0.26); }
.aa-lb-close:active,
.aa-lb-nav:active { transform: scale(0.94); }
.aa-lb-close:focus-visible,
.aa-lb-nav:focus-visible {
  outline: 3px solid #7fd3da;
  outline-offset: 2px;
}

.aa-lb-close { top: 16px; right: 16px; }

.aa-lb-nav { top: 50%; transform: translateY(-50%); }
.aa-lb-nav:active { transform: translateY(-50%) scale(0.94); }
.aa-lb-prev { left: 16px; }
.aa-lb-next { right: 16px; }
.aa-lb-nav[hidden] { display: none; }

.aa-lb-close svg,
.aa-lb-nav svg { display: block; }

/* Small screens: keep controls reachable and the image within bounds */
@media (max-width: 560px) {
  .aa-lb-overlay { padding: 12px; }
  .aa-lb-img { max-width: 94vw; max-height: 82vh; }
  .aa-lb-figure { max-width: 94vw; }
  .aa-lb-cap { font-size: 14px; }
  .aa-lb-nav { min-width: 40px; min-height: 40px; }
  .aa-lb-prev { left: 8px; }
  .aa-lb-next { right: 8px; }
  .aa-lb-close { top: 10px; right: 10px; }
}

/* Respect reduced motion: no transitions at all */
@media (prefers-reduced-motion: reduce) {
  .aa-lb-overlay,
  .aa-lb-close,
  .aa-lb-nav { transition: none !important; }
}

/* ============================================================
   PRODUCT BAND — 'Meet the Active Aligner' (2.8.2247)
   Replaces the old bitmap with the labels BAKED into the image (read like a pasted
   screenshot). Now: a clean product photo on the left + three crisp HTML callouts
   (Transparent / Comfortable / Removable) rendered in the theme's own type on the right.
   REUSABLE PATTERN — one markup snippet (.aa-product-band) drops onto any page.
   Used on: home (5), doctor-resources (130), patients-landing (182).
   ============================================================ */
.aa-product-band{
  display:grid; grid-template-columns:minmax(0,1.12fr) minmax(0,0.88fr);
  align-items:center; gap:clamp(2.25rem,4.5vw,4rem);
  max-width:1120px; margin:clamp(1.4rem,3vw,2.4rem) auto 0;
}
.aa-product-band .aa-product-figure{ margin:0; }
.aa-product-band .aa-product-figure img{
  width:100%; aspect-ratio:3/2; object-fit:cover; display:block;
  border-radius:18px; border:1px solid #D7E5EF;
  box-shadow:0 1px 2px rgba(14,36,51,.05),0 18px 44px rgba(14,36,51,.10);
}
.aa-product-callouts{ display:flex; flex-direction:column; gap:.9rem; margin:0; padding:0; list-style:none; }
.aa-product-callout{
  display:flex; align-items:center; gap:1.15rem;
  background:#fff; border:1px solid #D7E5EF; border-radius:14px;
  padding:1.1rem 1.4rem;
  box-shadow:0 1px 2px rgba(14,36,51,.05),0 10px 26px rgba(14,36,51,.05);
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.aa-product-callout:hover{
  transform:translateY(-4px); border-color:#DCEEF9;
  box-shadow:0 2px 4px rgba(14,36,51,.07),0 16px 38px rgba(14,36,51,.10);
}
.aa-product-ico{
  flex:0 0 auto; width:3rem; height:3rem; border-radius:12px;
  background:#DCEEF9; color:#0072bc;
  display:inline-flex; align-items:center; justify-content:center;
}
.aa-product-ico svg{ width:24px; height:24px; }
.aa-product-text{ display:flex; flex-direction:column; gap:.15rem; min-width:0; }
.aa-product-text b{ color:#243746; font-weight:700; font-size:1.06rem; letter-spacing:-.01em; line-height:1.2; }
.aa-product-text span{ color:#5A6B78; font-size:.9rem; line-height:1.45; }
@media (max-width:768px){
  .aa-product-band{ grid-template-columns:1fr; gap:1.6rem; max-width:520px; }
}
/* Fix (2.8.2250): the global rule `.entry-content :not(.wp-block-group) > li:first-child{padding-top:0}`
   was zeroing the FIRST callout card's top padding, so its content crowded the top edge and did not
   match the other cards. Re-assert equal vertical padding on every callout (equal-size chips, breathing room). */
.entry-content .aa-product-callouts > li.aa-product-callout,
.aa-product-callouts > .aa-product-callout{ padding-top:1.1rem; padding-bottom:1.1rem; }

/* ---- FOOTER two-column nav + legal line (2.8.2249) ---- */
.aa-footer-cols{ gap:2rem; }
.aa-footer-cols .wp-block-column{ flex-basis:0; flex-grow:1; }
.aa-footer-cols .wp-block-heading{ font-size:.82rem; letter-spacing:.1em; text-transform:uppercase; color:#5A6B78; margin:0 0 .75rem; }
.aa-footer-cols ul{ list-style:none; margin:0; padding:0; }
.aa-footer-cols ul li{ margin:0 0 .5rem; }
.aa-footer-cols ul li a{ color:#243746; text-decoration:none; font-size:.95rem; }
.aa-footer-cols ul li a:hover{ color:#0072bc; }
.aa-legal{ font-size:.85rem; color:#5A6B78; }
.aa-legal a{ color:#5A6B78; text-decoration:underline; }
.aa-legal a:hover{ color:#0072bc; }
@media (max-width:781px){
  .aa-footer-cols{ gap:1.75rem; }
  .aa-footer-cols .wp-block-column{ flex-basis:100% !important; }
}

/* ============================================================
   CREW A LAYOUT FIXES (2026-07-08)
   Page-scoped so no other pages using these shared grids change.
   Fix 1: center trailing partial rows (owner pet peeve).
   Fix 3: raise/reframe cropped faces.
   ============================================================ */

/* --- Fix 1a: Doctor's Library (131) 8-card 3-col grid, centre the 2-card last row --- */
@media (min-width: 901px) {
  body.page-id-131 .aa-grid.three { display: flex; flex-wrap: wrap; justify-content: center; align-items: stretch; }
  body.page-id-131 .aa-grid.three > * { flex: 0 1 calc((100% - 2 * var(--wp--preset--spacing--aa-gap)) / 3); min-width: 0; }
}

/* --- Fix 1b: Digital Patient Brochure (161) Why-choose 8-card 3-col grid, centre last row --- */
@media (min-width: 901px) {
  body.page-id-161 .aa-feat-grid { display: flex; flex-wrap: wrap; justify-content: center; align-items: stretch; }
  body.page-id-161 .aa-feat-grid > * { flex: 0 1 calc((100% - 2 * 1.25rem) / 3); min-width: 0; }
}

/* --- Fix 1c: Doctor Blog (1463) 9-card 2-col grid, centre the lone 9th card --- */
@media (min-width: 782px) {
  body.page-id-1463 .aa-blog-grid ul.wp-block-post-template { display: flex; flex-wrap: wrap; justify-content: center; align-items: stretch; }
  body.page-id-1463 .aa-blog-grid ul.wp-block-post-template > li.wp-block-post { flex: 0 1 calc((100% - 2rem) / 2); min-width: 0; }
}

/* --- Fix 3a: Why Active Aligners (154) portrait dentist next to 25-35% stat, raise focal point to frame the face --- */
body.page-id-154 .aa-story-media img { object-position: 50% 8%; }

/* --- Fix 3b: Understanding your bite (192) near-square two-face hero, drop the desktop max-height crop so both faces are fully framed --- */
@media (min-width: 769px) {
  body.page-id-192 .aa-hero-split .aa-hero-img img { max-height: none; height: auto; aspect-ratio: 1003 / 955; }
}

/* ===== Patient Help Hub polish (v2.8.2259) =====
   Keep the support hub on the tighter AA content measure so it reads as a
   deliberate patient pathway instead of a loose directory page. */
body.page-id-898 .aa-inner {
  max-width: 1080px;
}

/* ===== Round 4 review polish (v2.8.2260) =====
   Page-scoped adjustments for Ann-Donne's AA.com Round 4 review. */
body.page-id-898 .aa-patient-help-hub .aa-grid.two {
  align-items: stretch;
}

body.page-id-898 .aa-patient-help-hub .aa-grid.two > .aa-card {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  height: 100%;
}

body.page-id-898 .aa-patient-help-hub .aa-grid.two > .aa-card:first-child .aa-actions {
  margin-top: auto;
}

body.page-id-898 .aa-section.is-cta-dark .aa-actions,
body.page-id-93 .aa-login .aa-actions {
  justify-content: center !important;
}
/* ===== Round 5 patient-guide polish (v2.8.2261) =====
   Scoped to the How Active Aligners Work patient guide. */
body.page-id-184 .aa-treatable-cases .aa-inner.is-narrow,
body.page-id-184 .aa-treatment-difference {
  max-width: 960px;
}

body.page-id-184 .aa-treatable-cases-visual {
  background: #fff;
  border: 1px solid #D7E5EF;
  border-radius: 18px;
  box-shadow: 0 16px 42px rgba(18, 53, 73, 0.08);
  margin: clamp(1.5rem, 3vw, 2.25rem) auto 0;
  overflow: hidden;
}

body.page-id-184 .aa-treatable-cases-visual img {
  aspect-ratio: 16 / 9;
  display: block;
  height: auto;
  object-fit: contain;
  width: 100%;
}

body.page-id-184 .aa-treatable-cases-visual figcaption {
  color: #5A6B78;
  font-size: 0.86rem;
  margin: 0;
  padding: 0.75rem 1rem 1rem;
  text-align: center;
}

body.page-id-184 .aa-case-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

body.page-id-184 .aa-case-grid .aa-card {
  justify-content: flex-start;
}

body.page-id-184 .aa-treatment-difference > :where(h1, h2, h3, p, .aa-eyebrow) {
  margin-left: auto;
  margin-right: auto;
}

body.page-id-184 .aa-treatment-difference-grid {
  margin-left: auto;
  margin-right: auto;
  max-width: 900px;
}

body.page-id-184 .aa-treatment-difference-grid .aa-card {
  min-height: 100%;
}

body.page-id-184 .aa-treatment-difference > .aa-actions {
  justify-content: center !important;
}

@media (max-width: 900px) {
  body.page-id-184 .aa-case-grid,
  body.page-id-184 .aa-treatment-difference-grid {
    grid-template-columns: 1fr !important;
  }
}

/* ===== Patients landing Round 6 visual repair (v2.8.2264) =====
   Keep equal patient-result framing; make the clinical gallery identical to home. */
body.page-id-182 .aa-ba-grid--patients .aa-ba-card {
  overflow: hidden;
}

body.page-id-182 .aa-ba-grid--patients .wp-block-image {
  margin: 0;
}

body.page-id-182 .aa-ba-grid--patients .wp-block-image img {
  display: block;
  height: 460px;
  object-fit: cover;
  width: 100%;
}

body.page-id-182 .aa-results-grid--arch {
  gap: 1.6rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

body.page-id-182 .aa-results-grid--arch .wp-block-image {
  margin: 0;
}

body.page-id-182 .aa-results-grid--arch .aa-result--wide img {
  aspect-ratio: 1075 / 398;
  display: block;
  height: auto;
  object-fit: contain;
  width: 100%;
}

body.page-id-182 .aa-results-grid--arch .aa-result-cap::before {
  border-bottom: 2px solid #0072bc;
  border-right: 2px solid #0072bc;
  content: "";
  display: inline-block;
  flex: 0 0 auto;
  height: 9px;
  margin: -3px 4px 0 2px;
  transform: rotate(45deg);
  width: 5px;
}

@media (max-width: 1000px) {
  body.page-id-182 .wp-site-blocks .aa-results-grid--arch {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 768px) {
  body.page-id-182 .aa-ba-grid--patients .wp-block-image img {
    height: 300px;
  }
}

@media (max-width: 560px) {
  body.page-id-182 .wp-site-blocks .aa-results-grid--arch {
    grid-template-columns: 1fr !important;
  }
}

/* Restore the original line-art icon language; no text glyphs. */
body.page-id-182 .aa-product-ico {
  background-color: #DCEEF9;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 24px 24px;
  color: transparent;
  font-size: 0;
}

body.page-id-182 .aa-product-ico--eye {
  background-image: url("assets/icons/aa-eye.svg");
}

body.page-id-182 .aa-product-ico--removable {
  background-image: url("assets/icons/aa-removable.svg");
}

body.page-id-182 .aa-product-ico--guided {
  background-image: url("assets/icons/aa-guided.svg");
}

body.page-id-182 .aa-product-ico--preview {
  background-image: url("assets/icons/aa-preview.svg");
}

/* ===== Patients landing video-card parity (v2.8.2263) =====
   Match the homepage poster, play and lower-left overlay treatment using native blocks. */
body.page-id-182 .aa-video-poster-match {
  aspect-ratio: 16 / 10;
  background: linear-gradient(135deg, #0a5aa0 0%, #0072bc 55%, #33a0dd 100%);
  border-radius: 14px;
  display: block;
  margin-bottom: 1rem;
  min-height: 0;
  overflow: hidden;
  padding: 0 !important;
  position: relative;
}

body.page-id-182 .aa-video-poster--ciaran {
  background: linear-gradient(135deg, #0072bc 0%, #2e93d6 60%, #7ec8ec 100%);
}

body.page-id-182 .aa-video-poster--riandre {
  background: linear-gradient(135deg, #0a4d86 0%, #0f6fb3 55%, #3fa6df 100%);
}

body.page-id-182 .aa-video-poster-match > .wp-block-buttons {
  inset: 0;
  margin: 0;
  position: absolute;
  z-index: 3;
}

body.page-id-182 .aa-video-poster-match .aa-video-hit,
body.page-id-182 .aa-video-poster-match .aa-video-hit .wp-block-button__link {
  height: 100%;
  width: 100%;
}

body.page-id-182 .aa-video-poster-match .aa-video-hit .wp-block-button__link {
  background: transparent !important;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  color: transparent !important;
  display: block;
  font-size: 0;
  inset: 0;
  padding: 0;
  position: absolute;
}

body.page-id-182 .aa-video-poster-match .aa-video-hit .wp-block-button__link::before {
  background: rgba(255, 255, 255, 0.92);
  border-radius: 50%;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.18);
  content: "";
  height: 64px;
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  transition: transform 180ms ease, background-color 180ms ease;
  width: 64px;
}

body.page-id-182 .aa-video-poster-match .aa-video-hit .wp-block-button__link::after {
  border-bottom: 11px solid transparent;
  border-left: 17px solid #0072bc;
  border-top: 11px solid transparent;
  content: "";
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-35%, -50%);
}

body.page-id-182 .aa-video-poster-match .aa-video-hit .wp-block-button__link:hover::before,
body.page-id-182 .aa-video-poster-match .aa-video-hit .wp-block-button__link:focus-visible::before {
  background: #fff;
  transform: translate(-50%, -50%) scale(1.05);
}

body.page-id-182 .aa-video-poster-match .aa-video-hit .wp-block-button__link:focus-visible {
  outline: 3px solid #fff;
  outline-offset: -5px;
}

body.page-id-182 .aa-video-poster-match .aa-video-overlay {
  bottom: 14px;
  color: #fff;
  left: 16px;
  margin: 0;
  pointer-events: none;
  position: absolute;
  right: 16px;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.35);
  z-index: 2;
}

body.page-id-182 .aa-video-poster-match .aa-video-title,
body.page-id-182 .aa-video-poster-match .aa-video-meta {
  color: inherit;
  margin: 0;
}

body.page-id-182 .aa-video-poster-match .aa-video-title {
  font-size: 1.05rem;
  font-weight: 600;
  letter-spacing: 0.01em;
}

body.page-id-182 .aa-video-poster-match .aa-video-meta {
  font-size: 0.8rem;
  margin-top: 2px;
  opacity: 0.9;
}

@media (prefers-reduced-motion: reduce) {
  body.page-id-182 .aa-video-poster-match .aa-video-hit .wp-block-button__link::before {
    transition: none;
  }
}
