/* Reusable components — used by partials AND by page sections. */

/* ─── Header / Nav ─── */
.site-header { padding: 1rem 0; background: var(--color-paper); }
.site-header--transparent { position: absolute; top: 0; left: 0; right: 0; background: transparent; z-index: 10; }
.site-header__inner { max-width: var(--page-max); margin: 0 auto; padding: 0 1.5rem; display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.site-header__brand img { max-height: 36px; width: auto; }

.site-nav__list { display: flex; gap: 1.5rem; list-style: none; margin: 0; padding: 0; }
.site-nav__list a { color: var(--color-ink); font-weight: 500; }
.site-nav__cta { background: var(--color-primary); color: var(--color-paper) !important; padding: 0.5rem 1rem; border-radius: var(--radius); }

/* ─── Hero ─── */
[data-block^="hero-"] {
  padding: 6rem 0 8rem;
  background: var(--color-primary);
  color: var(--color-paper);
  text-align: center;
}
[data-block^="hero-"] .hero__inner { max-width: var(--page-max); margin: 0 auto; padding: 0 1.5rem; }
[data-block^="hero-"] h1 { color: var(--color-paper); margin-bottom: 0.5em; }
[data-block^="hero-"] .hero__sub { color: var(--color-paper); opacity: 0.85; margin-bottom: 1.5em; font-size: 1.25rem; }

/* ─── Page-level hero (smaller than home hero) ─── */
[data-block="page-hero-v1"] {
  padding: 4rem 0 2.5rem;
  background: var(--color-paper);
  color: var(--color-ink);
}

/* ─── Services grid / Trust band / CTA band ─── */
[data-block^="services-grid-"] { padding: var(--section-y) 0; }
[data-block^="trust-band-"] { padding: 1.5rem 0; background: #F4F4F5; text-align: center; font-weight: 500; }
[data-block^="cta-band-"] {
  padding: var(--section-y) 0;
  background: var(--color-ink);
  color: var(--color-paper);
  text-align: center;
}
[data-block^="cta-band-"] h2 { color: var(--color-paper); }

/* ─── Footer ─── */
.site-footer { background: var(--color-ink); color: var(--color-paper); padding: 3rem 0 1.5rem; }
.site-footer__inner { max-width: var(--page-max); margin: 0 auto; padding: 0 1.5rem; }
.site-footer__brand img { max-height: 32px; width: auto; margin-bottom: 0.5rem; }
.site-footer__tagline { color: var(--color-paper); opacity: 0.7; }
.site-footer__cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 2rem; margin: 2rem 0 1rem; }
.site-footer__cols h4 { color: var(--color-paper); }
.site-footer__cols ul { list-style: none; margin: 0; padding: 0; }
.site-footer__cols a { color: var(--color-paper); opacity: 0.7; }
.site-footer__copyright { border-top: 1px solid rgba(255,255,255,0.1); padding-top: 1.5rem; opacity: 0.5; font-size: 0.875rem; text-align: center; }

/* ─── Forms ─── */
form label { display: block; margin: 1rem 0; }
form input, form textarea {
  display: block;
  width: 100%;
  margin-top: 0.25rem;
  padding: 0.75rem;
  font: inherit;
  border: 1px solid #E4E4E7;
  border-radius: var(--radius);
}
form textarea { min-height: 8rem; resize: vertical; }
form button[type="submit"] { margin-top: 0.5rem; cursor: pointer; border: 0; }

/* ─── Hero with background image + overlay (hero-v2) ─── */
[data-block="hero-v2"] {
  position: relative;
  padding: 8rem 0 6rem;
  background-size: cover;
  background-position: center;
}
[data-block="hero-v2"]::before {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, color-mix(in srgb, var(--color-primary) 78%, transparent), color-mix(in srgb, var(--color-ink) 88%, transparent));
}
[data-block="hero-v2"] .hero__inner { position: relative; max-width: 760px; }
[data-block="hero-v2"] .hero__eyebrow {
  display: inline-block; text-transform: uppercase; letter-spacing: .12em;
  font-size: .8rem; font-weight: 700; color: var(--color-accent); margin-bottom: 1rem;
}
[data-block="hero-v2"] .hero__actions { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; margin-top: 1.75rem; }

/* ─── Section scaffolding ─── */
.section { padding: var(--section-y) 0; }
.section--tint { background: #F7F8FA; }
.section__head { max-width: 640px; margin: 0 auto 2.5rem; text-align: center; }
.section__eyebrow {
  display: inline-block; text-transform: uppercase; letter-spacing: .12em;
  font-size: .78rem; font-weight: 700; color: var(--color-primary); margin-bottom: .6rem;
}
.section__head p { color: var(--color-muted); font-size: 1.05rem; }

/* ─── Card grid (services / features) ─── */
.grid { display: grid; gap: 1.5rem; }
.grid--3 { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.grid--2 { grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); }
.card {
  background: var(--color-paper);
  border: 1px solid #ECECF1;
  border-radius: calc(var(--radius) * 1.5);
  padding: 1.75rem;
  box-shadow: 0 1px 2px rgba(16,24,40,.04);
  transition: transform .15s ease, box-shadow .15s ease;
}
.card:hover { transform: translateY(-3px); box-shadow: 0 12px 28px rgba(16,24,40,.10); }
.card__icon {
  width: 48px; height: 48px; border-radius: 12px; margin-bottom: 1rem;
  display: grid; place-items: center; font-size: 1.4rem;
  background: color-mix(in srgb, var(--color-accent) 18%, transparent);
}
.card h3 { margin-bottom: .4rem; }
.card p { color: var(--color-muted); margin: 0; }

/* ─── Stats band ─── */
[data-block^="stats-"] { padding: 3rem 0; background: var(--color-primary); color: var(--color-paper); }
.stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 1.5rem; text-align: center; }
.stat__num { font-family: var(--font-heading); font-size: clamp(2rem, 4vw, 2.75rem); font-weight: 700; }
.stat__label { opacity: .8; font-size: .95rem; }

/* ─── Testimonials ─── */
.quote {
  background: var(--color-paper); border: 1px solid #ECECF1; border-radius: calc(var(--radius) * 1.5);
  padding: 1.75rem;
}
.quote blockquote { margin: 0 0 1rem; font-size: 1.08rem; }
.quote__author { display: flex; align-items: center; gap: .75rem; font-weight: 600; }
.quote__author span { color: var(--color-muted); font-weight: 400; font-size: .9rem; }

/* ─── FAQ ─── */
.faq { max-width: 760px; margin: 0 auto; }
.faq details { border-bottom: 1px solid #ECECF1; padding: 1.1rem 0; }
.faq summary { cursor: pointer; font-weight: 600; font-family: var(--font-heading); list-style: none; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; float: right; color: var(--color-primary); font-weight: 700; }
.faq details[open] summary::after { content: "–"; }
.faq p { margin: .75rem 0 0; color: var(--color-muted); }

/* ─── Button variants ─── */
.btn--primary { background: var(--color-primary); color: var(--color-paper); }
.btn--primary:hover { opacity: .9; text-decoration: none; }
.btn--ghost { background: transparent; color: var(--color-paper); border: 1.5px solid rgba(255,255,255,.5); }
.btn--ghost:hover { background: rgba(255,255,255,.12); text-decoration: none; }

/* ─── Contact split ─── */
.contact-split { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: start; }
.contact-info li { margin: .4rem 0; color: var(--color-muted); }
@media (max-width: 720px) { .contact-split { grid-template-columns: 1fr; } }

/* ════════════════════════════════════════════════════════════════════
   AUSMETIX DESIGN SYSTEM — teal + grey + white, Fraunces/Inter.
   Extended tokens + components built for this brand.
   ════════════════════════════════════════════════════════════════════ */

:root {
  /* Extended palette — DNA: "The Scientific Paper" */
  --teal-900: #04302E;
  --teal-700: #008080;
  --teal-500: #1A9E9C;
  --teal-100: #BDE8E6;
  --teal-50:  #EBF5F4;
  --color-dark:    #145454;
  --dark-text:     #DFF0EE;
  --surface-tint:  #E4EDED;
  --border:        rgb(13 36 36 / 0.12);
  --grey-600: #4A6564;
  --grey-400: #8FA3A2;
  --grey-200: #C8D8D7;
  --grey-100: #EEF3F3;
  --cream:    #F4F8F8;
  --nude:     #E4EDED;
  --sand:     #E4EDED;
  --r-sm: 4px;
  --r-md: 8px;
  --r-lg: 14px;
  --r-xl: 20px;
  --r-pill: 999px;
  --shadow-sm: 0 1px 3px rgb(13 36 36 / 0.06);
  --shadow-md: 0 12px 36px -8px rgb(13 36 36 / 0.12);
  --ease: cubic-bezier(0.25, 0, 0.15, 1);
  --header-h: 5rem;
  --container-pad: clamp(1.25rem, 4vw, 2rem);
}

/* ─── Type scale — ratio 1.333 editorial ─── */
body { font-size: 1rem; line-height: 1.7; font-weight: 400; color: var(--color-ink); }
p { font-size: 1rem; font-weight: 400; color: var(--color-ink); margin: 0 0 1em; }
h1, h2, h3, h4 { letter-spacing: -0.02em; text-wrap: balance; }
h1 { font-size: clamp(2.25rem, 4.5vw, 3.5rem); line-height: 1.07; font-weight: 700; }
h2 { font-size: clamp(1.75rem, 3.2vw, 2.625rem); line-height: 1.12; font-weight: 700; }
h3 { font-size: clamp(1.25rem, 2vw, 1.5rem); font-weight: 600; line-height: 1.25; }
h4 { font-size: 1.125rem; font-weight: 600; }
p { text-wrap: pretty; }
h3 { font-size: 1.4rem; line-height: 1.3; font-weight: 500; }
strong { font-weight: 600; }
.ax-eyebrow {
  display: inline-block; font-family: var(--font-body);
  font-size: .8125rem; font-weight: 600; text-transform: uppercase;
  letter-spacing: .12em; color: var(--teal-700); margin-bottom: 1rem;
}
.ax-lead { font-size: 1.25rem; line-height: 1.7; color: var(--grey-600); }
.ax-prose { max-width: 68ch; }
.ax-prose p { color: var(--grey-500); }
.ax-accent { color: var(--teal-700); }

/* ─── Buttons ─── */
.ax-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  min-height: 48px; padding: 14px 28px; border-radius: 8px;
  font-family: var(--font-body); font-size: .9375rem; font-weight: 400;
  letter-spacing: .02em; text-decoration: none; border: 0; cursor: pointer;
  transition: background-color .18s var(--ease), transform .18s var(--ease), box-shadow .18s var(--ease), border-color .18s var(--ease);
}
.ax-btn:hover { text-decoration: none; }
.ax-btn:focus-visible { outline: 3px solid rgba(21,154,168,.4); outline-offset: 2px; }
.ax-btn--primary {
  background: var(--teal-700);
  color: #fff;
}
.ax-btn--primary:hover {
  background: var(--teal-500);
  box-shadow: 0 4px 14px rgba(0,128,128,.25);
  transform: translateY(-1px);
}
.ax-btn--secondary { background: transparent; color: var(--teal-700); box-shadow: inset 0 0 0 1px var(--teal-700); }
.ax-btn--secondary:hover { background: var(--teal-50); }
.ax-btn--outline-dark { background: transparent; color: var(--color-ink); box-shadow: inset 0 0 0 1px var(--color-ink); }
.ax-btn--outline-dark:hover { background: var(--color-ink); color: #fff; }
.ax-btn--outline-light { background: transparent; color: #fff; box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.7); }
.ax-btn--outline-light:hover { background: rgba(255,255,255,.12); }
.ax-btn--inverse { background: #fff; color: var(--teal-900); }
.ax-btn--inverse:hover { background: var(--teal-100); transform: translateY(-1px); }
.ax-btn--ghost { background: transparent; color: #fff; box-shadow: inset 0 0 0 1.5px #fff; }
.ax-btn--ghost:hover { background: rgba(255,255,255,.1); }
.ax-btn--block { width: 100%; }
.ax-arrow-link {
  display: inline-flex; align-items: center; gap: .4rem;
  color: var(--teal-700); font-weight: 600; font-size: .96875rem;
  text-decoration: underline; text-decoration-color: transparent;
  text-underline-offset: 3px;
  transition: text-underline-offset .18s var(--ease), text-decoration-color .18s var(--ease);
}
.ax-arrow-link:hover { text-decoration-color: currentColor; text-underline-offset: 6px; }
.ax-arrow-link svg { transition: transform .18s var(--ease); }
.ax-arrow-link:hover svg { transform: translateX(3px); }

/* ─── Topbar (contact strip above the header) ─── */
.ax-topbar { position: relative; z-index: 20; background: var(--teal-700); color: var(--teal-100); font-size: .8125rem; font-weight: 400; }
.ax-topbar--transparent { background: transparent; border-bottom: 1px solid rgba(20,35,42,.1); color: var(--color-ink); }
.ax-topbar--transparent a { color: var(--color-ink); }
.ax-topbar--transparent svg { color: var(--teal-700); }
.ax-topbar--transparent .ax-topbar__social a { color: var(--color-ink); opacity: .6; }
.ax-topbar--transparent .ax-topbar__social { border-left-color: rgba(20,35,42,.15); }
.ax-topbar__inner {
  max-width: var(--page-max); margin: 0 auto; padding: .5rem 1.5rem;
  display: flex; align-items: center; justify-content: space-between; gap: 1rem 2rem; flex-wrap: wrap;
}
.ax-topbar__group { display: flex; align-items: center; gap: 1.75rem; flex-wrap: wrap; }
.ax-topbar a { display: inline-flex; align-items: center; gap: .45rem; color: #fff; text-decoration: none; }
.ax-topbar a:hover { text-decoration: underline; text-underline-offset: 3px; }
.ax-topbar__loc { display: inline-flex; align-items: center; gap: .45rem; }
.ax-topbar svg { color: var(--teal-500); flex: none; }
.ax-topbar__right { display: flex; align-items: center; gap: 1.25rem; }
.ax-topbar__social { display: flex; align-items: center; gap: .75rem; padding-left: 1rem; border-left: 1px solid rgba(255,255,255,.15); }
.ax-topbar__social a { display: inline-flex; align-items: center; color: var(--teal-100); opacity: .8; transition: opacity .15s ease; }
.ax-topbar__social a:hover { opacity: 1; text-decoration: none; }
.ax-topbar__social svg { color: var(--teal-100); }
@media (max-width: 767px) {
  .ax-topbar__inner { justify-content: space-between; padding: .4rem 1rem; flex-wrap: nowrap; }
  .ax-topbar__group { flex-wrap: nowrap; gap: .45rem; }
  .ax-topbar__trust { display: none; }
  .ax-topbar__right { gap: .5rem; flex-shrink: 0; }
  .ax-topbar__social { padding-left: .5rem; }
}

/* ─── Header ─── */
.ax-header {
  position: sticky; top: 0; z-index: 100;
  background: transparent;
  transition: background-color .2s var(--ease), box-shadow .2s var(--ease);
}
/* Use ::before for frosted bg so backdrop-filter never becomes a fixed-element containing block */
.ax-header.is-scrolled::before,
.ax-header--solid::before {
  content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: rgba(255,255,255,.96);
  backdrop-filter: blur(8px);
}
.ax-header__inner {
  max-width: var(--page-max); margin: 0 auto; padding: 0 1.5rem;
  display: flex; align-items: center; justify-content: space-between; gap: 2rem;
  height: 80px;
}
.ax-header__brand { display: inline-flex; align-items: center; }
.ax-header__brand img { height: 85px; width: auto; padding-top: 20px; }
.ax-logo-text {
  font-family: var(--font-sans, 'Inter', system-ui, sans-serif);
  font-size: 1.4rem; font-weight: 600; letter-spacing: -0.02em; line-height: 1;
  color: #fff;
}
.ax-header.is-scrolled .ax-logo-text,
.ax-header--solid .ax-logo-text { color: var(--color-ink); }
.ax-footer__logo .ax-logo-text { color: #fff; }
.ax-mobile .ax-logo-text { color: var(--color-ink); }
.ax-logo-tm { font-size: 0.45em; vertical-align: super; font-weight: 400; letter-spacing: 0; }
.ax-nav { display: flex; align-items: center; gap: 2rem; flex: 1; }
.ax-nav__list { display: flex; align-items: center; gap: 1.75rem; list-style: none; margin: 0 auto; padding: 0; }
.ax-nav__list > li > a,
.ax-nav__toggle-link {
  display: inline-flex; align-items: center; gap: .3rem;
  color: var(--color-ink); font-weight: 500; font-size: .96875rem;
  padding: .5rem 0; background: none; border: 0; cursor: pointer;
  font-family: var(--font-body); text-decoration: none;
  transition: color .16s var(--ease);
}
.ax-nav__list > li > a:hover,
.ax-nav__toggle-link:hover { color: var(--teal-700); text-decoration: none; }
.ax-nav__list > li > a:focus-visible,
.ax-nav__toggle-link:focus-visible { outline: 3px solid rgba(21,154,168,.4); outline-offset: 2px; border-radius: var(--r-sm); }
.ax-nav__cta { display: inline-flex; }
.ax-nav__caret { transition: transform .16s var(--ease); }
.ax-nav__item--mega[data-open="true"] .ax-nav__caret { transform: rotate(180deg); }

/* Mega menu */
.ax-nav__item--mega { position: static; }
.ax-mega {
  position: absolute; left: 0; right: 0; top: 100%;
  background: #fff; border-top: 1px solid var(--grey-200);
  box-shadow: var(--shadow-md);
  opacity: 0; visibility: hidden; transform: translateY(8px);
  transition: opacity .16s var(--ease), transform .16s var(--ease), visibility .16s;
}
.ax-nav__item--mega[data-open="true"] .ax-mega,
.ax-nav__item--mega:focus-within .ax-mega { opacity: 1; visibility: visible; transform: translateY(0); }
@media (hover: hover) and (min-width: 1024px) {
  .ax-nav__item--mega:hover .ax-mega { opacity: 1; visibility: visible; transform: translateY(0); }
}
.ax-mega__grid {
  max-width: var(--page-max); margin: 0 auto; padding: 2rem 1.5rem;
  display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; gap: 1.5rem;
}
.ax-mega__item {
  display: block; padding: 1.25rem; border-radius: var(--r-lg);
  text-decoration: none; transition: background-color .16s var(--ease);
}
.ax-mega__item:hover { background: var(--teal-50); text-decoration: none; }
.ax-mega__icon {
  width: 44px; height: 44px; border-radius: var(--r-md);
  display: grid; place-items: center;
  background: var(--teal-100); color: var(--teal-700); margin-bottom: .85rem;
}
.ax-mega__item h3 { font-family: var(--font-body); font-size: 1.03rem; font-weight: 600; color: var(--color-ink); margin: 0 0 .3rem; letter-spacing: 0; }
.ax-mega__item p { font-size: .9rem; color: var(--grey-600); margin: 0 0 .6rem; line-height: 1.55; }
.ax-mega__item .ax-arrow-link { font-size: .9rem; }
.ax-mega__featured {
  background: var(--teal-50); border-radius: var(--r-lg); padding: 1.5rem;
  display: flex; flex-direction: column; align-items: flex-start; gap: .5rem;
}
.ax-mega__featured h3 { font-family: var(--font-body); font-size: 1.03rem; font-weight: 600; margin: 0; letter-spacing: 0; }
.ax-mega__featured p { font-size: .9rem; color: var(--grey-600); margin: 0 0 .5rem; }

/* Mobile toggle + overlay */
.ax-burger {
  display: none; flex-direction: column; justify-content: center; gap: 5px;
  width: 44px; height: 44px; padding: 10px; background: none; border: 0; cursor: pointer;
  border-radius: var(--r-sm);
}
.ax-burger:focus-visible { outline: 3px solid rgba(21,154,168,.4); }
.ax-burger span { display: block; height: 2px; width: 100%; background: var(--color-ink); border-radius: 2px; transition: transform .2s var(--ease), opacity .2s var(--ease); }
.ax-mobile {
  position: fixed; inset: 0; z-index: 60; background: #fff;
  display: flex; flex-direction: column; padding: 1rem 1.5rem 1.5rem;
  opacity: 0; visibility: hidden; transform: translateY(8px);
  transition: opacity .2s var(--ease), transform .2s var(--ease), visibility .2s;
  overflow-y: auto;
}
.ax-mobile[data-open="true"] { opacity: 1; visibility: visible; transform: translateY(0); }
.ax-mobile__top { display: flex; align-items: center; justify-content: space-between; min-height: 64px; margin-bottom: 1.5rem; }
.ax-mobile__close { width: 44px; height: 44px; display: grid; place-items: center; background: none; border: 0; cursor: pointer; color: var(--color-ink); border-radius: var(--r-sm); }
.ax-mobile__close:focus-visible { outline: 3px solid rgba(21,154,168,.4); }
.ax-mobile__list { list-style: none; margin: 0; padding: 0; flex: 1; }
.ax-mobile__list > li { border-bottom: 1px solid var(--grey-200); }
.ax-mobile__list > li > a {
  display: block; padding: 1.1rem 0; font-family: var(--font-heading);
  font-size: 1.5rem; color: var(--color-ink); text-decoration: none;
}
.ax-mobile__list details { border: 0; }
.ax-mobile__list summary {
  display: flex; align-items: center; justify-content: space-between;
  padding: 1.1rem 0; font-family: var(--font-heading); font-size: 1.5rem;
  color: var(--color-ink); cursor: pointer; list-style: none;
}
.ax-mobile__list summary::-webkit-details-marker { display: none; }
.ax-mobile__list summary svg { transition: transform .2s var(--ease); color: var(--teal-700); }
.ax-mobile__list details[open] summary svg { transform: rotate(180deg); }
.ax-mobile__sub { list-style: none; margin: 0 0 1rem; padding: 0 0 0 .25rem; }
.ax-mobile__sub a { display: block; padding: .55rem 0; color: var(--grey-600); font-size: 1.05rem; text-decoration: none; }
.ax-mobile__cta { margin-top: 1.25rem; }
@media (max-width: 1023px) {
  .ax-header__inner { height: 64px; }
  .ax-header__brand img { height: 42px; }
  .ax-nav__list, .ax-nav .ax-nav__cta { display: none; }
  .ax-burger { display: flex; margin-left: auto; }
}

/* ─── Section scaffolding ─── */
.ax-section { padding: var(--section-y) 0; position: relative; }
.ax-section--tint { background: var(--sand); }
.ax-section--grey { background: var(--sand); }
.ax-section--cream { background: var(--cream); }
.ax-section--dark { background: var(--teal-900); color: #fff; }
.ax-section--dark h2, .ax-section--dark h3 { color: #fff; }
.ax-section--dark p { color: var(--teal-100); }
.ax-section__head { max-width: 720px; margin-bottom: 3rem; }
.ax-section__head--center { margin-left: auto; margin-right: auto; text-align: center; }
.ax-section__head h2 { margin-bottom: .5em; }
.ax-section__head p { color: #262626; font-weight: 300; font-size: 1rem; margin: 0; }

/* ─── Home hero — image sets natural height, content overlays via grid ─── */
.ax-hero {
  position: relative; overflow: hidden;
  background: #F2EDE6;
  margin-top: -80px;
  display: grid;
}
@media (max-width: 1023px) { .ax-hero { margin-top: -64px; } }
.ax-hero__bg, .ax-hero__inner { grid-column: 1; grid-row: 1; }
.ax-hero__bg { position: relative; z-index: 0; pointer-events: none; padding-top: 50px; }
@media (min-width: 1024px) { .ax-hero__bg { padding-top: 200px; } }
.ax-hero__bg img { width: 100%; height: auto; display: block; }
.ax-hero__bg::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    linear-gradient(180deg, #e5d2bb 0px, rgba(229,210,187,.6) 14px, transparent 20px),
    linear-gradient(0deg, rgba(255,255,255,.85) 0%, rgba(255,255,255,.35) 10%, transparent 26%);
}
.ax-hero__inner {
  position: relative; z-index: 1; align-self: flex-start;
  max-width: var(--page-max); margin: 0 auto;
  padding: calc(80px + 2.5rem + 25px) 1.5rem 5rem; width: 100%;
  display: flex; align-items: flex-start;
}
.ax-hero__content { max-width: 60%; text-align: left; }
.ax-hero__content h1 { color: var(--color-ink); margin-bottom: .25em; font-size: 55px; font-weight: 500; }
.ax-heading-accent, .ax-hero__h1-accent { font-weight: 700; font-style: italic; }
.page-home h2 { font-size: 2.5rem; font-weight: 500; }
.ax-hero__sub { font-size: 1.1rem; line-height: 1.55; color: #262626; font-weight: 300; max-width: 36em; margin: 0 0 1.25rem; }
.ax-hero__chips { list-style: none; margin: 0 0 2rem; padding: 0; display: flex; flex-wrap: nowrap; gap: .625rem; }
.ax-hero__chips li { display: flex; align-items: center; gap: .625rem; font-size: .9375rem; font-weight: 500; line-height: 1; color: #fff; background: rgba(0,0,0,.35); backdrop-filter: blur(12px) saturate(1.4); -webkit-backdrop-filter: blur(12px) saturate(1.4); border: 1px solid rgba(255,255,255,.12); border-radius: 8px; padding: .75rem 1rem; white-space: nowrap; }
.ax-hero__chip-icon { display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: #fff; }
.ax-hero__body { color: var(--grey-600); max-width: 36em; margin: 0 0 2.25rem; }
.ax-hero__actions { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; justify-content: flex-start; }
@media (max-width: 900px) {
  .ax-hero { min-height: 520px; }
  .ax-hero__content { max-width: 100%; text-align: center; }
  .ax-hero__bg::after { background: rgba(242,237,230,.88); }
  .ax-hero__actions { justify-content: center; }
}

/* ─── Intro title area (left-aligned, 60% width) + flat callout cards ─── */
.ax-eyebrow--dash { display: inline-flex; align-items: center; gap: .6rem; }
.ax-eyebrow--dash::before { content: ""; width: 26px; height: 2px; background: var(--teal-700); }
.ax-intro { text-align: left; }
.ax-intro__title { font-size: clamp(2rem, 4.2vw, 3.4375rem); font-weight: 700; line-height: 1.08; max-width: 60%; margin-bottom: .5em; }
.ax-intro__copy { max-width: 60%; }
.ax-intro__copy p { font-size: 1rem; line-height: 1.7; font-weight: 300; color: #262626; }
.ax-section--watermark { overflow: hidden; }
[data-block="intro-science-v2"] { padding-top: calc(var(--section-y) - 30px); padding-bottom: calc(var(--section-y) + 200px); }
.ax-science-bg { position: absolute; bottom: 0; left: 0; right: 0; z-index: 0; pointer-events: none; height: 52%; }
.ax-science-bg img { width: 100%; height: 100%; object-fit: cover; object-position: bottom center; display: block; }
.ax-section--watermark .container { position: relative; z-index: 1; }
.ax-section--watermark::after { content: none; }
.ax-intro__actions { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2rem; }
.ax-intro--center { text-align: center; }
.ax-intro--center .ax-intro__title,
.ax-intro--center .ax-intro__copy { max-width: 800px; margin-left: auto; margin-right: auto; }
.ax-intro--center .ax-eyebrow--dash { justify-content: center; }
.ax-intro--center .ax-intro__actions { justify-content: center; }

/* ─── Decorative script eyebrow — science section only ─── */
[data-block="intro-science-v2"] .ax-eyebrow {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-style: italic;
  font-size: clamp(2.25rem, 4.5vw, 3.75rem);
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
  color: var(--teal-900);
  opacity: 0.5;
  display: block;
  text-align: center;
  line-height: 1.15;
  margin-bottom: -1.5rem;
  position: relative;
  z-index: 0;
}
[data-block="intro-science-v2"] .ax-eyebrow--dash::before { display: none; }
[data-block="intro-science-v2"] .ax-intro__title { position: relative; z-index: 1; }
@media (max-width: 900px) {
  .ax-intro__title, .ax-intro__copy { max-width: 100%; }
}
.ax-callouts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.25rem; margin-top: 4.5rem; }
@media (max-width: 1023px) { .ax-callouts { grid-template-columns: 1fr 1fr; } }
@media (max-width: 620px) { .ax-callouts { grid-template-columns: 1fr; } }
.ax-callout { background: rgba(255,255,255,.55); backdrop-filter: blur(16px) saturate(1.6); -webkit-backdrop-filter: blur(16px) saturate(1.6); border-radius: 14px; padding: 2.25rem 1.75rem; box-shadow: 0 2px 20px rgba(20,35,42,.07), inset 0 1px 0 rgba(255,255,255,.8); border: 1px solid rgba(255,255,255,.7); }
.ax-callout svg { color: #000; margin-bottom: 1.15rem; }
.ax-callout h3 { font-size: 1.1rem; font-weight: 600; letter-spacing: 0; margin-bottom: .45rem; color: #000; }
.ax-callout p { font-size: .95rem; line-height: 1.6; color: #000; margin: 0; }

/* ─── Ownership callout gradient override ─── */
[data-block="about-ownership-v1"] .ax-callout { background: linear-gradient(145deg, #0E7A86 0%, #0B4A52 100%); backdrop-filter: none; -webkit-backdrop-filter: none; border: 1px solid rgba(255,255,255,.15); box-shadow: 0 4px 24px rgba(11,74,82,.3), inset 0 1px 0 rgba(255,255,255,.12); }
[data-block="about-ownership-v1"] .ax-callout svg { color: #E4F2F3; }
[data-block="about-ownership-v1"] .ax-callout h3 { color: #fff; }
[data-block="about-ownership-v1"] .ax-callout p { color: rgba(228,242,243,.85); }

/* ─── Stat chips ─── */
.ax-chips { display: flex; flex-wrap: wrap; gap: .75rem; }
.ax-chip {
  display: inline-flex; align-items: center; gap: .55rem;
  padding: .6rem 1.1rem; border-radius: var(--r-pill);
  background: #fff; border: 1px solid var(--grey-200);
  font-size: .9rem; font-weight: 600; color: var(--color-ink);
  box-shadow: var(--shadow-sm);
}
.ax-chip svg { color: var(--teal-700); flex: none; }

/* ─── Page hero split (inner pages) ─── */
/* Full-bleed banner hero */
.ax-page-hero--banner {
  position: relative; overflow: hidden;
  display: flex; align-items: center; justify-content: center;
  min-height: 560px; margin-top: -80px;
  padding: calc(80px + 5rem) 1.5rem 5rem;
}
.ax-page-hero--banner .ax-page-hero__bg {
  position: absolute; inset: 0; z-index: 0; pointer-events: none;
}
.ax-page-hero--banner .ax-page-hero__bg img {
  width: 100%; height: 100%; object-fit: cover; display: block;
}
.ax-page-hero--banner::after {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background: rgba(14,35,42,.60);
}
.ax-page-hero__banner-content {
  position: relative; z-index: 2;
  text-align: center; max-width: 780px; margin: 0 auto;
}
.ax-page-hero__banner-content h1 { color: #fff; }
.ax-page-hero__banner-content h2 { color: rgba(255,255,255,.82); font-weight: 300; font-size: clamp(1.1rem, 2vw, 1.4rem); margin-top: .4em; margin-bottom: .75em; }
.ax-page-hero__banner-content .ax-hero__sub { color: rgba(255,255,255,.70); }
.ax-page-hero__banner-content .ax-hero__actions { justify-content: center; }

.ax-page-hero--split {
  display: grid; grid-template-columns: 1fr 1fr;
  min-height: 82vh;
}
.ax-page-hero__left {
  background: var(--sand);
  display: flex; align-items: center; justify-content: center;
  padding: calc(80px + 2rem) 6% calc(80px + 2rem);
}
.ax-page-hero__content { max-width: 500px; }
.ax-page-hero__content h1 { font-size: 55px; font-weight: 500; color: var(--color-ink); margin-bottom: .3em; }
.ax-page-hero__right {
  position: relative; overflow: hidden;
}
.ax-page-hero__right img {
  position: absolute; inset: 0;
  width: 100%; height: 100%; object-fit: cover;
}
@media (max-width: 900px) {
  .ax-page-hero--split { grid-template-columns: 1fr; min-height: auto; }
  .ax-page-hero__left { padding: calc(64px + 2rem) 1.5rem 2.5rem; }
  .ax-page-hero__content { max-width: 100%; }
  .ax-page-hero__right { aspect-ratio: 16 / 9; position: relative; }
}

/* ─── Split (text + image) ─── */
.ax-split { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; }
@media (max-width: 900px) { .ax-split { grid-template-columns: 1fr; gap: 2.5rem; } }
.ax-split__media { position: relative; }
.ax-split__media img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--r-xl); box-shadow: var(--shadow-md); aspect-ratio: 4 / 3.4; }
.ax-split__media--stacked::before {
  content: ""; position: absolute; inset: 2rem -2rem -2rem 2rem;
  border-radius: var(--r-xl); background: var(--teal-100); z-index: -1;
}
@media (max-width: 900px) { .ax-split__media--stacked::before { display: none; } }

/* ─── Service cards ─── */
.ax-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.75rem; }
@media (max-width: 1023px) { .ax-cards { grid-template-columns: 1fr; max-width: 480px; margin-left: auto; margin-right: auto; } }
.ax-card {
  display: flex; flex-direction: column;
  background: #fff; border-radius: var(--r-lg);
  overflow: hidden;
  transition: transform .2s var(--ease), box-shadow .2s var(--ease);
}
[data-block="services-trio-v1"] {
  background-image: radial-gradient(circle, rgba(14,122,134,.07) 1px, transparent 1px);
  background-size: 22px 22px;
}
[data-block="services-trio-v1"] .ax-section__head { max-width: 60%; text-align: left; }
[data-block="services-trio-v1"] .ax-cards { align-items: start; }
[data-block="services-trio-v1"] .ax-cards article:nth-child(2) { margin-top: 3.5rem; }
[data-block="services-trio-v1"] .ax-cards article:nth-child(3) { margin-top: 7rem; }
@media (max-width: 1023px) {
  [data-block="services-trio-v1"] .ax-section__head { max-width: 100%; }
  [data-block="services-trio-v1"] .ax-cards article:nth-child(2),
  [data-block="services-trio-v1"] .ax-cards article:nth-child(3) { margin-top: 0; }
}
.ax-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.ax-card__media { aspect-ratio: 16 / 10; overflow: hidden; }
.ax-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s var(--ease); }
.ax-card:hover .ax-card__media img { transform: scale(1.04); }
.ax-card__body { display: flex; flex-direction: column; flex: 1; padding: 1.75rem; }
.ax-card__icon {
  width: 44px; height: 44px; border-radius: var(--r-md); margin: -3.1rem 0 1rem;
  position: relative; display: grid; place-items: center;
  background: var(--teal-700); color: #fff; box-shadow: var(--shadow-sm);
}
.ax-card__body h3 { margin-bottom: .5rem; }
.ax-card__body p { color: var(--grey-600); margin: 0 0 1.25rem; flex: 1; font-size: .875rem; }

/* ─── Feature grid ─── */
.ax-features { display: grid; grid-template-columns: 1fr 1fr; gap: 1.75rem; }
@media (max-width: 767px) { .ax-features { grid-template-columns: 1fr; } }
.ax-feature {
  display: flex; gap: 1.25rem; align-items: flex-start;
  background: #fff; border: 1px solid var(--grey-200); border-radius: var(--r-xl);
  padding: 1.75rem; box-shadow: var(--shadow-sm);
}
.ax-feature__icon {
  flex: none; width: 48px; height: 48px; border-radius: var(--r-md);
  display: grid; place-items: center; background: var(--teal-100); color: var(--teal-700);
}
.ax-feature h3 { font-size: 1.22rem; margin-bottom: .35rem; }
.ax-feature p { color: var(--grey-600); margin: 0; font-size: 1rem; }

/* ─── CTA band ─── */
.ax-cta-band {
  position: relative; overflow: hidden;
  background: var(--teal-900); color: #fff;
  padding: calc(var(--section-y) * .85) 0;
}
.ax-cta-band::before {
  content: ""; position: absolute; inset: 0;
  background:
    radial-gradient(46rem 46rem at 88% -20%, rgba(21,154,168,.35), transparent 60%),
    radial-gradient(34rem 34rem at -8% 120%, rgba(14,122,134,.5), transparent 60%);
}
.ax-cta-band__inner { position: relative; max-width: 760px; margin: 0 auto; padding: 0 1.5rem; text-align: center; }
.ax-cta-band__inner h2 { color: #fff; margin-bottom: .5em; }
.ax-cta-band__inner p { color: var(--teal-100); font-size: 1.125rem; margin: 0 auto 2rem; max-width: 40em; }
.ax-cta-band__actions { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; }
.ax-cta-band__note { margin: 1.75rem 0 0; }
.ax-cta-band__note .ax-arrow-link { font-size: .93rem; }
.ax-arrow-link--light { color: var(--teal-100); }
.ax-arrow-link--light:hover { color: #fff; }
.ax-center { text-align: center; margin-top: 2.5rem; }
.ax-hp { display: none !important; }

/* ─── CTA band — person image variant ─── */
.ax-cta-band--person { background: var(--teal-700); }
.ax-cta-band--person::before {
  background: linear-gradient(90deg, rgba(11,74,82,.90) 0%, rgba(11,74,82,.65) 42%, rgba(11,74,82,.12) 62%, transparent 72%);
}
.ax-cta-band__wrap {
  position: relative; z-index: 1;
  max-width: var(--page-max); margin: 0 auto; padding: 0 1.5rem;
}
.ax-cta-band--person .ax-cta-band__inner { text-align: left; margin: 0; max-width: 50%; }
.ax-cta-band--person .ax-cta-band__actions { justify-content: flex-start; }
.ax-cta-band__person-img {
  position: absolute; right: 0; top: 0; bottom: 0; width: 58%;
  pointer-events: none;
}
.ax-cta-band__person-img img {
  width: 100%; height: 100%;
  object-fit: contain; object-position: center bottom;
  position: relative; z-index: 1;
}
.ax-cta-band__wm {
  position: absolute; inset: 0; z-index: 0;
  display: flex; align-items: flex-start; justify-content: center;
  padding-top: 8%;
  font-size: clamp(6rem, 11vw, 11.5rem); font-weight: 900;
  line-height: .85; letter-spacing: -.03em;
  color: #fff; opacity: .30;
  text-align: center; pointer-events: none;
}
@media (max-width: 900px) {
  .ax-cta-band--person { background: var(--teal-700); padding-bottom: 0; }
  .ax-cta-band--person::before { background: none; }
  .ax-cta-band__wrap { padding-bottom: calc(var(--section-y) * .85); }
  .ax-cta-band--person .ax-cta-band__inner { max-width: 100%; }
  .ax-cta-band__person-img {
    position: relative; right: auto; top: auto; bottom: auto;
    width: 100%; height: 380px;
  }
  .ax-cta-band__person-img img { object-position: center center; }
  .ax-cta-band__wm { font-size: clamp(3rem, 14vw, 5rem); }
}

/* ─── FAQ ─── */
.ax-faq { max-width: 760px; margin: 0 auto; }
.ax-faq details { border-bottom: 1px solid var(--grey-200); }
.ax-faq details:first-of-type { border-top: 1px solid var(--grey-200); }
.ax-faq summary {
  display: flex; align-items: center; justify-content: space-between; gap: 1.5rem;
  padding: 1.35rem 0; cursor: pointer; list-style: none;
  font-family: var(--font-body); font-weight: 600; font-size: 1.09rem; color: var(--color-ink);
}
.ax-faq summary::-webkit-details-marker { display: none; }
.ax-faq summary:focus-visible { outline: 3px solid rgba(21,154,168,.4); outline-offset: 2px; border-radius: var(--r-sm); }
.ax-faq summary svg { flex: none; color: var(--teal-700); transition: transform .2s var(--ease); }
.ax-faq details[open] summary svg { transform: rotate(45deg); }
.ax-faq details > p { color: var(--grey-600); margin: 0; padding: 0 2.5rem 1.35rem 0; }

/* ─── Footer ─── */
.ax-footer { background: var(--teal-700); color: var(--teal-100); }
.ax-footer__inner { max-width: var(--page-max); margin: 0 auto; padding: 4.5rem 1.5rem 0; }
.ax-footer__grid { display: grid; grid-template-columns: 2.2fr 1fr 1fr 1.4fr; gap: 3rem; padding-bottom: 3.5rem; }
@media (max-width: 1023px) { .ax-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .ax-footer__grid { grid-template-columns: 1fr; gap: 2.25rem; } }
.ax-footer__logo {
  display: inline-flex;
  margin-bottom: 1.25rem;
}
.ax-footer__logo img { height: 44px; width: auto; }
.ax-footer__entity { font-size: .93rem; line-height: 1.7; color: var(--teal-100); max-width: 42ch; margin-bottom: 1.5rem; }
.ax-footer__social { display: flex; gap: .75rem; }
.ax-footer__social a {
  display: grid; place-items: center; width: 40px; height: 40px;
  border-radius: var(--r-md); background: rgba(255,255,255,.08); color: #fff;
  transition: background-color .16s var(--ease);
}
.ax-footer__social a:hover { background: var(--teal-700); text-decoration: none; }
.ax-footer__col h4 {
  font-family: var(--font-body); font-size: .8125rem; font-weight: 600;
  text-transform: uppercase; letter-spacing: .12em; color: #fff;
  margin-bottom: 1.1rem;
}
.ax-footer__col ul { list-style: none; margin: 0; padding: 0; }
.ax-footer__col li { margin: 0 0 .65rem; }
.ax-footer__col a { color: var(--teal-100); text-decoration: none; font-size: .96875rem; transition: color .16s var(--ease); }
.ax-footer__col a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.ax-footer__contact li { display: flex; gap: .6rem; align-items: flex-start; color: var(--teal-100); font-size: .96875rem; margin-bottom: .8rem; }
.ax-footer__contact svg { flex: none; margin-top: .2rem; color: var(--teal-500); }
.ax-footer__bar {
  border-top: 1px solid rgba(14,122,134,.35);
  display: flex; flex-wrap: wrap; gap: .75rem 2rem; align-items: center; justify-content: space-between;
  padding: 1.5rem 0 2rem; font-size: .75rem; color: #fff;
}
.ax-footer__bar p, .ax-footer__bar span { color: #fff; }
.ax-footer__bar a { color: #fff; text-decoration: none; }
.ax-footer__bar a:hover { color: #fff; }
.ax-footer__bar-links { display: flex; gap: 1.5rem; align-items: center; }

/* ─── Process steps ─── */
.ax-process__header { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin-bottom: 3rem; }
.ax-process__header .ax-section__head { margin-bottom: 0; }
.ax-process__header--center { flex-direction: column; align-items: center; text-align: center; }
.ax-process__header--center .ax-section__head { text-align: center; }
@media (max-width: 767px) { .ax-process__header { flex-direction: column; align-items: flex-start; gap: 1.25rem; } }
/* ─── Zigzag process timeline ─── */
.ax-zigzag { margin-top: 2.5rem; }
.ax-zigzag__steps {
  display: grid; grid-template-columns: repeat(3, 1fr);
  list-style: none; margin: 0; padding: 0;
  position: relative; min-height: 320px;
}
.ax-zigzag__steps::before {
  content: ""; position: absolute; left: 0; right: 0;
  top: 50%; height: 1px; background: var(--grey-200); z-index: 0;
}
.ax-zigzag__step { position: relative; min-height: 320px; padding: 0 1.5rem; }
.ax-zigzag__mid {
  position: absolute; left: 50%; top: 50%;
  transform: translate(-50%, -50%); z-index: 1;
}
.ax-zigzag__dot {
  width: 12px; height: 12px; border-radius: 50%;
  background: var(--teal-700);
  box-shadow: 0 0 0 5px rgba(0,122,120,.12);
}
.ax-zigzag__step--up .ax-zigzag__content {
  position: absolute; bottom: 50%; left: 1.5rem; right: 1.5rem;
  padding-bottom: 2.5rem; text-align: center;
}
.ax-zigzag__step--up .ax-zigzag__foot {
  position: absolute; top: 50%; left: 1.5rem; right: 1.5rem;
  padding-top: 1.5rem; text-align: center;
}
.ax-zigzag__step--down .ax-zigzag__head {
  position: absolute; bottom: 50%; left: 1.5rem; right: 1.5rem;
  padding-bottom: 1.5rem; text-align: center;
  display: flex; align-items: flex-end; justify-content: center;
}
.ax-zigzag__step--down .ax-zigzag__content {
  position: absolute; top: 50%; left: 1.5rem; right: 1.5rem;
  padding-top: 2.5rem; text-align: center;
}
.ax-zigzag__label {
  font-size: .75rem; letter-spacing: .1em; text-transform: uppercase;
  font-weight: 600; color: var(--grey-400); font-family: var(--font-body);
}
.ax-zigzag__content h3 { font-size: 1.1rem; font-weight: 700; margin-bottom: .4em; color: var(--color-ink); }
.ax-zigzag__content p { font-size: .9375rem; font-weight: 300; color: var(--color-muted); line-height: 1.65; margin: 0; }
@media (max-width: 767px) {
  .ax-zigzag__steps { display: flex; flex-direction: column; gap: 2.5rem; min-height: unset; }
  .ax-zigzag__steps::before { display: none; }
  .ax-zigzag__step { min-height: unset; padding: 0 0 0 2.5rem; position: relative; }
  .ax-zigzag__mid { position: absolute; left: 0; top: .2rem; transform: none; }
  .ax-zigzag__step--up .ax-zigzag__content,
  .ax-zigzag__step--down .ax-zigzag__content { position: static; padding: 0; text-align: left; }
  .ax-zigzag__step--up .ax-zigzag__foot,
  .ax-zigzag__step--down .ax-zigzag__head { display: none; }
}

/* ─── About page patterns ─── */
/* Hero H1 is long — scale it down slightly for the split panel */
[data-block="about-hero-v1"] .ax-page-hero__banner-content h1 { font-size: clamp(2.4rem, 5vw, 4rem); line-height: 1.05; }

/* Split text side */
.ax-split__text > * + * { margin-top: .85em; }
.ax-split__text h2 { margin-top: 0; }
.ax-split__text p { color: #262626; font-weight: 300; margin: 0; }
.ax-split__link { margin-top: 1.25rem; }

.ax-gmp-cert {
  font-size: .875rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
  color: var(--teal-700); margin: -.25rem 0 .5rem !important;
}

/* Story pull-quote */
/* ─── About story v2 — text left + dual-image arch right ─── */
.ax-story2 { display: grid; grid-template-columns: 55fr 45fr; gap: 4rem; align-items: center; }
@media (max-width: 960px) { .ax-story2 { grid-template-columns: 1fr; gap: 2.5rem; } }

/* Left column */
.ax-story2__left { display: flex; flex-direction: column; gap: 1.5rem; }
.ax-story2__left h2 { margin: 0; font-size: clamp(1.75rem, 3.5vw, 2.5rem); line-height: 1.15; }
.ax-story2__left > p { font-size: 1rem; line-height: 1.7; color: #262626; font-weight: 300; margin: 0; }
.ax-story2__cards { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; margin-top: .25rem; }
@media (max-width: 540px) { .ax-story2__cards { grid-template-columns: 1fr; } }
.ax-story2__card { display: flex; flex-direction: column; gap: .5rem; }
.ax-story2__card-icon { width: 42px; height: 42px; border-radius: 10px; background: var(--teal-100); display: flex; align-items: center; justify-content: center; color: var(--teal-700); flex-shrink: 0; }
.ax-story2__card h3 { font-size: 1rem; font-weight: 700; margin: 0; color: var(--color-ink); }
.ax-story2__card p { font-size: .875rem; line-height: 1.6; color: var(--grey-600); margin: 0; font-weight: 300; }

/* Right column — dual image composition */
.ax-story2__right { display: flex; gap: 1rem; align-items: flex-start; }
.ax-story2__img-tall { flex: 0 0 54%; }
.ax-story2__img-tall img { width: 100%; height: auto; object-fit: cover; aspect-ratio: 3 / 4.2; border-radius: 999px 999px 14px 14px; display: block; }
.ax-story2__img-short { flex: 0 0 calc(46% - 1rem); display: flex; flex-direction: column; gap: 1rem; margin-top: 3rem; }
.ax-story2__img-short img { width: 100%; height: auto; object-fit: cover; aspect-ratio: 1 / 1.3; border-radius: 14px; display: block; }
.ax-story2__cta { width: 100%; text-align: center; justify-content: center; }
@media (max-width: 960px) { .ax-story2__right { max-width: 500px; } }
@media (max-width: 540px) { .ax-story2__img-tall img { border-radius: 14px; } }

/* ─── About story — reference layout ─── */
.ax-story-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 2.5rem; align-items: start; }
@media (max-width: 900px) { .ax-story-layout { grid-template-columns: 1fr; } }

/* Left: portrait image + stat card */
.ax-story-imgwrap { position: relative; }
.ax-story-imgwrap > img { width: 100%; height: auto; object-fit: cover; aspect-ratio: 3 / 4; border-radius: 16px; display: block; }
.ax-story-statcard {
  position: absolute; bottom: 1.5rem; left: 1.5rem;
  background: #fff; border-radius: 12px; padding: 1.25rem 1.5rem;
  box-shadow: 0 8px 32px rgba(20,35,42,.14);
  display: flex; flex-direction: column; gap: .9rem;
  min-width: 160px;
}
.ax-story-stat strong { display: block; font-size: 1.4375rem; font-weight: 700; font-family: var(--font-heading); color: var(--color-ink); line-height: 1; }
.ax-story-stat span { font-size: .8125rem; color: var(--grey-600); margin-top: .15rem; display: block; }

/* Right: thumb + content */
.ax-story-right { display: flex; flex-direction: column; gap: 1.75rem; }
.ax-story-thumb img { width: 100%; height: auto; object-fit: cover; aspect-ratio: 16 / 9; border-radius: 12px; display: block; }
.ax-story-content { display: flex; flex-direction: column; gap: 1rem; }
.ax-story-content h2 { margin: 0; font-size: clamp(1.75rem, 3.5vw, 2.5rem); }
.ax-story-content p { font-size: 1rem; line-height: 1.7; color: #262626; font-weight: 300; margin: 0; }
.ax-story-features { list-style: none; margin: .25rem 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: .6rem .5rem; }
.ax-story-features li { display: flex; align-items: center; gap: .5rem; font-size: .9375rem; color: var(--color-ink); }
.ax-story-features li svg { color: var(--teal-700); flex-shrink: 0; }

.ax-story-quote {
  text-align: center; font-size: 1.5625rem; font-style: italic; font-weight: 300;
  color: var(--grey-600); max-width: 720px; margin: 8rem auto 0;
  line-height: 1.65; letter-spacing: .01em;
}

/* GMP section — faint bg texture + image styles */
[data-block="about-gmp-v1"] { position: relative; overflow: hidden; }
[data-block="about-gmp-v1"]::before {
  content: ""; position: absolute; inset: 0;
  background: url('/assets/images/tmptxm9_swo.webp') center / cover no-repeat;
  opacity: 0.1; pointer-events: none; z-index: 0;
}
[data-block="about-gmp-v1"] .container { position: relative; z-index: 1; }
[data-block="about-gmp-v1"] .ax-split__media img { border-radius: var(--r-lg); }

/* Ownership: text left, 2×2 callout grid right */
.ax-about-ownership { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: start; }
.ax-about-ownership__lead h2 { margin-bottom: .5em; }
.ax-about-ownership__lead p { font-weight: 300; color: #262626; }
.ax-about-ownership__lead .ax-hero__actions { margin-top: 2.5rem; }
.ax-about-ownership__callouts { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
@media (max-width: 1023px) { .ax-about-ownership { grid-template-columns: 1fr; gap: 3rem; } }
@media (max-width: 580px) { .ax-about-ownership__callouts { grid-template-columns: 1fr; } }

/* Beliefs dark band */
.ax-about-beliefs__items { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.5rem; margin-top: .5rem; }
.ax-about-belief { display: flex; flex-direction: column; gap: 1.25rem; }
.ax-about-belief__icon { color: var(--teal-100); flex-shrink: 0; }
.ax-about-belief h3 { font-size: 1.2rem; font-weight: 500; color: #fff; line-height: 1.3; margin: 0; }
.ax-about-belief p { color: rgba(255,255,255,.72); font-size: 1rem; font-weight: 300; line-height: 1.65; margin: 0; }
[data-block="about-beliefs-v1"] .ax-section__head h2 { color: #fff; }
[data-block="about-beliefs-v1"] .ax-section__head p { color: rgba(255,255,255,.7); }
@media (max-width: 767px) { .ax-about-beliefs__items { grid-template-columns: 1fr; gap: 2rem; } }

/* Global CTA strip (above footer, every page) */
.ax-global-cta {
  position: relative; overflow: hidden;
  padding: clamp(2.75rem, 6vw, 4.5rem) 0;
  background: linear-gradient(120deg, var(--color-dark) 0%, #0B5058 50%, var(--color-primary) 100%);
}
/* Dot grid — right side only */
.ax-global-cta::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background-image: radial-gradient(circle, rgba(255 255 255 / 0.14) 1px, transparent 1px);
  background-size: 22px 22px;
  mask-image: linear-gradient(to left, black 0%, transparent 58%);
}
/* Radial glow — top right */
.ax-global-cta::after {
  content: ""; position: absolute; pointer-events: none;
  top: -80%; right: -5%; width: 55%; aspect-ratio: 1;
  background: radial-gradient(circle, rgb(21 154 168 / 0.28) 0%, transparent 68%);
}
.ax-global-cta__inner {
  position: relative; z-index: 1;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1.75rem;
  text-align: center;
}
.ax-global-cta__line {
  color: #fff;
  font-family: var(--font-heading);
  font-size: clamp(1.5rem, 2.6vw, 2.125rem);
  font-weight: 600; letter-spacing: -0.02em; line-height: 1.15;
  margin: 0; text-wrap: balance; max-width: 34ch;
}
@media (max-width: 767px) {
  .ax-global-cta__inner { gap: 1.25rem; }
}

/* Light eyebrow for dark sections */
.ax-eyebrow--light { color: #fff; }

/* ─── Contact form section ─── */
.ax-contact-split { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: start; }
@media (max-width: 900px) { .ax-contact-split { grid-template-columns: 1fr; gap: 3rem; } }
.ax-contact-split__lhs h2 { margin-bottom: .5em; }
.ax-contact-split__lhs > p { color: var(--grey-600); margin-bottom: 0; }
.ax-contact-trust { list-style: none; margin: 2rem 0 0; padding: 0; display: flex; flex-direction: column; gap: .875rem; }
.ax-contact-trust li { display: flex; align-items: center; gap: .65rem; font-size: .9375rem; color: var(--grey-600); }
.ax-contact-trust svg { color: var(--teal-700); flex: none; }
.ax-contact-form { display: flex; flex-direction: column; gap: .875rem; }
.ax-cf-row { display: grid; gap: .875rem; }
.ax-cf-row--2 { grid-template-columns: 1fr 1fr; }
@media (max-width: 580px) { .ax-cf-row--2 { grid-template-columns: 1fr; } }
.ax-cf-input {
  width: 100%; padding: .875rem 1.1rem;
  background: #fff; border: 1px solid var(--grey-200); border-radius: 6px;
  font-family: var(--font-body); font-size: .9375rem; font-weight: 300; color: #262626;
  transition: border-color .15s ease, box-shadow .15s ease;
  outline: none; appearance: none; -webkit-appearance: none; box-sizing: border-box;
}
.ax-cf-input::placeholder { color: var(--grey-400); font-weight: 300; }
.ax-cf-input:focus { border-color: var(--teal-700); box-shadow: 0 0 0 3px rgba(0,122,120,.1); }
.ax-cf-select { cursor: pointer; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%235F6E72' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right .9rem center; padding-right: 2.5rem; }
.ax-cf-textarea { resize: vertical; min-height: 120px; }
.ax-cf-submit { width: 100%; justify-content: center; margin-top: .25rem; }
.ax-cf-promise { display: flex; align-items: flex-start; gap: .875rem; margin-top: .5rem; padding-top: .75rem; border-top: 1px solid var(--grey-200); }
.ax-cf-promise__icon { flex-shrink: 0; color: var(--teal-700); margin-top: .1rem; }
.ax-cf-promise__text { display: flex; flex-direction: column; gap: .2rem; }
.ax-cf-promise__text strong { font-size: .9375rem; font-weight: 600; color: var(--color-ink); }
.ax-cf-promise__text span { font-size: .8125rem; font-weight: 300; color: var(--grey-600); line-height: 1.55; }

/* ─── Scroll reveal (JS adds .is-visible; html.js gates hiding) ─── */
html.js .ax-reveal { opacity: 0; transform: translateY(24px); transition: opacity .6s var(--ease), transform .6s var(--ease); }
html.js .ax-reveal.is-visible { opacity: 1; transform: none; }
html.js .ax-reveal--d1 { transition-delay: .08s; }
html.js .ax-reveal--d2 { transition-delay: .16s; }
html.js .ax-reveal--d3 { transition-delay: .24s; }
@media (prefers-reduced-motion: reduce) {
  html.js .ax-reveal { opacity: 1; transform: none; transition: none; }
  .ax-card, .ax-card__media img, .ax-btn, .ax-mega, .ax-mobile { transition: none; }
}

/* ═══════════════════════════════════════════════════════
   HOME PAGE V3 — "The Scientific Paper"
   Refined Editorial × Precision Engineering
   ═══════════════════════════════════════════════════════ */

/* ─── Hero: full-bleed video background with white overlay ─── */
.hm-hero {
  background: var(--color-ink) url("/assets/images/hero-loop-poster.jpg") center / cover no-repeat;
  position: relative; overflow: hidden;
  min-height: clamp(28rem, 78vh, 62rem);
  display: flex; flex-direction: column; justify-content: center;
}
/* Background video */
.hm-hero__video {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover; object-position: center;
  z-index: 0;
}
/* White overlay — uniform tint body, fade-to-white at bottom to blend into next section */
.hm-hero__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(255,255,255,0.52) 0%,
    rgba(255,255,255,0.52) 55%,
    rgba(255,255,255,0.82) 78%,
    rgba(255,255,255,1.00) 100%
  );
  z-index: 1;
}
/* Text zone — sits above video and overlay; extra bottom padding clears the overlapping cred cards */
.hm-hero__text-zone {
  max-width: var(--page-max); margin-inline: auto;
  padding: calc(var(--header-h) + clamp(2.5rem, 5vh, 4rem)) var(--container-pad) clamp(10rem, 16vw, 14rem);
  text-align: center;
  position: relative; z-index: 2;
}
.hm-hero__eyebrow {
  display: inline-flex; align-items: center; gap: 0.7rem;
  font-family: var(--font-body); font-size: 0.75rem; font-weight: 500;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--color-primary); margin-bottom: 1.625rem;
}
.hm-hero__eyebrow::before { content: ""; width: 28px; height: 1px; background: var(--color-primary); opacity: 0.45; }
.hm-hero__h1 {
  font-family: var(--font-heading); font-size: clamp(2.375rem, 4.5vw, 3.625rem);
  font-weight: 700; line-height: 1.06; letter-spacing: -0.025em;
  color: var(--color-ink); margin: 0 auto 1.25rem; text-wrap: balance; max-width: 26ch;
}
.hm-hero__h1 em { font-style: italic; color: var(--color-primary); font-weight: 600; }
.hm-hero__sub {
  font-family: var(--font-body); font-size: clamp(1rem, 1.5vw, 1.125rem);
  font-weight: 400; line-height: 1.72; color: var(--color-muted);
  max-width: 54ch; margin: 0 auto 2rem;
}
.hm-hero__actions { display: flex; flex-wrap: wrap; gap: 0.875rem; margin-bottom: 2rem; justify-content: center; }
/* Amber CTA button — retained for other uses */
.ax-btn--amber {
  background: var(--color-accent); color: #fff;
  font-family: var(--font-heading); font-size: 0.9375rem; font-weight: 700;
  padding: 0.875rem 1.875rem; border-radius: var(--radius);
  display: inline-block; text-decoration: none; letter-spacing: -0.01em;
  transition: background 0.2s var(--ease), transform 0.2s var(--ease);
}
.ax-btn--amber:hover { background: color-mix(in oklab, var(--color-accent) 82%, #000 18%); transform: translateY(-1px); text-decoration: none; }
/* Meta strip — on white bg, use ink-muted */
.hm-hero__meta {
  display: flex; flex-wrap: wrap; gap: 0; justify-content: center;
  font-family: var(--font-body); font-size: 0.6875rem; font-weight: 500;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--color-muted); opacity: 0.85;
}
.hm-hero__meta-item { padding-inline: 0.75rem; border-left: 1px solid var(--border); }
.hm-hero__meta-item:first-child { padding-left: 0; border-left: none; }
/* Legacy: bg, rhs, arch, badge, img-wrap — not used */
.hm-hero__bg, .hm-hero__rhs, .hm-hero__arch, .hm-hero__badge, .hm-hero__img-wrap { display: none; }
/* Legacy inner/lhs wrappers — pass through if still in DOM */
.hm-hero__inner, .hm-hero__lhs { display: contents; }
@media (max-width: 768px) {
  .hm-hero__text-zone { padding-top: 60px; padding-bottom: clamp(5rem, 10vw, 7rem); }
  .hm-hero { min-height: clamp(22rem, 90vw, 38rem); }
}

/* ─── Credential strip — overlaps bottom of hero video ─── */
.hm-cred {
  position: relative; z-index: 10;
  padding-inline: var(--container-pad);
  padding-block: 0 clamp(2rem, 4vw, 3rem);
  background: transparent;
  margin-top: clamp(-5.5rem, -9vw, -4rem);
}
.hm-cred__card {
  max-width: var(--page-max); margin-inline: auto;
  display: grid; grid-template-columns: repeat(3, 1fr);
  background: var(--color-paper); border-radius: 10px;
  box-shadow: 0 8px 48px -12px rgb(7 33 32 / 0.28);
}
.hm-cred__item {
  padding: clamp(1.25rem, 2.5vw, 1.75rem) clamp(1.25rem, 3vw, 2.25rem);
  border-left: 1px solid var(--border); display: flex; flex-direction: column; gap: 0.2rem;
  text-align: center; align-items: center;
}
.hm-cred__item:first-child { border-left: none; }
.hm-cred__item:not(:first-child) { padding-left: clamp(0.5rem, 1.5vw, 1rem); }
.hm-cred__title {
  font-family: var(--font-heading); font-size: 0.9375rem; font-weight: 700;
  color: var(--color-ink); letter-spacing: -0.01em;
}
.hm-cred__sub { font-size: 0.8125rem; font-weight: 400; color: var(--color-muted); }
@media (max-width: 640px) {
  .hm-cred__card { grid-template-columns: 1fr; }
  .hm-cred__item { border-left: none; border-top: 1px solid var(--border); }
  .hm-cred__item:first-child { border-top: none; }
}

/* ─── Services section (paper + dot-fade texture) ─── */
.hm-services {
  background: var(--color-paper); position: relative; overflow: hidden;
  padding-top: calc(var(--section-y) + clamp(3rem, 6vh, 4.5rem) - 3.125rem);
}
.hm-services::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 0;
  background-image: radial-gradient(rgb(6 110 108 / 0.07) 1px, transparent 1.5px);
  background-size: 22px 22px;
  mask-image: linear-gradient(180deg, #000 0%, transparent 40%);
}
.hm-services > .container { position: relative; z-index: 1; }
.hm-services .ax-section__head { margin-bottom: 3.5rem; }
.hm-services .ax-section__head p { max-width: 52ch; font-weight: 400; color: var(--color-muted); margin-top: 0.75rem; margin-inline: auto; }

/* ─── Science/Why section — aside-heading layout + radial glow ─── */
.hm-science {
  background: var(--surface-tint); position: relative; overflow: hidden;
}
.hm-science::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 0;
  background:
    radial-gradient(900px 700px at 85% -5%, rgb(0 110 108 / 0.11), transparent 65%),
    radial-gradient(700px 500px at -8% 100%, rgb(0 110 108 / 0.08), transparent 60%);
}
.hm-science > .container { position: relative; z-index: 1; }
.hm-science__layout {
  display: grid; grid-template-columns: 290px 1fr;
  gap: clamp(3.5rem, 8vw, 7rem); align-items: start;
}
.hm-science__rail h2 {
  font-size: clamp(1.625rem, 2.8vw, 2.125rem); line-height: 1.12; letter-spacing: -0.02em;
  position: sticky; top: 5rem;
}
.hm-science__body p {
  font-size: 1.0625rem; line-height: 1.78; color: var(--color-ink); font-weight: 400;
  max-width: 60ch; margin-bottom: 2.25rem;
}
.hm-science__proof {
  list-style: none; margin: 0; padding: 0;
  border-top: 1px solid var(--border);
}
.hm-science__proof li {
  display: flex; gap: 1rem; align-items: baseline;
  padding: 0.9rem 0; border-bottom: 1px solid var(--border);
  font-size: 0.9375rem; color: var(--color-ink); line-height: 1.6; font-weight: 400;
}
.hm-science__proof li::before {
  content: "—"; color: var(--color-primary); font-weight: 700;
  flex-shrink: 0; font-family: var(--font-heading);
}
.hm-science__cta { margin-top: 2.25rem; display: inline-flex; }
@media (max-width: 860px) {
  .hm-science__layout { grid-template-columns: 1fr; gap: 2rem; }
  .hm-science__rail h2 { position: static; }
}

/* ─── Process section (inherits existing zigzag + grey bg) ─── */
[data-block="process-steps-v1"] {
  background: var(--surface-tint);
}
[data-block="process-steps-v1"] .ax-section__head h2 { max-width: none; }

/* ─── Teal gradient CTA band — two-column grid, person fills height ─── */
.hm-cta {
  background: linear-gradient(135deg, var(--teal-700) 0%, var(--teal-500) 60%, #a8dde3 100%);
  position: relative; isolation: isolate;
  overflow: hidden;
}
.hm-cta::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(ellipse 70% 70% at 15% 60%, rgba(255,255,255,0.10), transparent 60%),
    radial-gradient(ellipse 50% 50% at 90% 10%, rgba(255,255,255,0.07), transparent 55%);
}
/* Inner — single content column, image is an absolute overlay */
.hm-cta__inner {
  max-width: var(--page-max); margin-inline: auto;
  padding-inline: var(--container-pad);
  padding-block: 0;
  position: relative; z-index: 1;
}
/* Content column */
.hm-cta__content {
  max-width: 55%;
  padding: clamp(4rem, 9vw, 7rem) 0 clamp(5rem, 10vw, 8rem);
  display: flex; flex-direction: column; align-items: flex-start; text-align: left;
}
.hm-cta__eyebrow {
  font-size: 0.75rem; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase;
  color: rgba(255,255,255,0.75); margin-bottom: 1.25rem;
}
.hm-cta__content h2 {
  color: #fff; font-family: var(--font-heading); font-weight: 700;
  font-size: clamp(1.875rem, 3.6vw, 2.75rem);
  line-height: 1.08; letter-spacing: -0.025em;
  margin-bottom: 1rem; text-wrap: balance;
}
.hm-cta__content h2 em { font-style: italic; color: rgba(255,255,255,0.88); font-weight: 600; }
.hm-cta__content p {
  color: rgba(255,255,255,0.82); max-width: 48ch;
  margin-bottom: 2.25rem; font-weight: 300; line-height: 1.72;
}
.hm-cta__actions { display: flex; flex-wrap: wrap; gap: 0.875rem; }
/* Person — absolute overlay, pinned flush to section bottom-right */
.hm-cta__person {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  width: clamp(280px, 38%, 520px);
  z-index: 2;
  pointer-events: none;
  overflow: hidden;
  background: linear-gradient(to bottom, var(--teal-500) 0%, #a8dde3 100%);
}
.hm-cta__person img {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: auto;
  display: block;
}

.hm-cta__split { display: contents; }
.hm-cta__lhs { display: contents; }
.hm-cta__rhs { display: none; }
@media (max-width: 860px) {
  .hm-cta__person { display: none; }
  .hm-cta__content { max-width: 100%; align-items: center; text-align: center; padding: clamp(3.5rem, 8vw, 6rem) 0; }
  .hm-cta__actions { justify-content: center; }
}


/* ─── FAQ section refresh ─── */
[data-block="faq-home-v1"] { background: var(--color-paper); }

/* ─── Contact section — premium CTA strip above footer ─── */
[data-block="contact-home-v1"] {
  background: var(--color-paper);
  position: relative;
}
[data-block="contact-home-v1"]::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(ellipse 55% 80% at 0% 45%, rgb(0 110 108 / 0.06), transparent 55%),
    radial-gradient(ellipse 40% 60% at 100% 55%, rgb(0 110 108 / 0.04), transparent 50%);
}
[data-block="contact-home-v1"] > .container { position: relative; }
[data-block="contact-home-v1"] .ax-contact-split__lhs h2 {
  font-size: clamp(2rem, 3.8vw, 3rem); letter-spacing: -0.03em;
}

/* ─── New accent eyebrow variant ─── */
.ax-eyebrow--science {
  display: inline-block; font-family: var(--font-body); font-size: 0.75rem;
  font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--color-primary); margin-bottom: 1rem;
}

/* ─── Heading accent (updated to use primary) ─── */
.ax-heading-accent { color: var(--color-primary); font-style: italic; }

/* ─── Arrow links refresh ─── */
.ax-arrow-link {
  display: inline-flex; align-items: center; gap: 0.5rem;
  font-size: 0.9375rem; font-weight: 600; color: var(--color-primary);
  text-decoration: none; font-family: var(--font-heading); letter-spacing: -0.01em;
  transition: gap 0.2s var(--ease);
}
.ax-arrow-link:hover { gap: 0.75rem; text-decoration: none; }
.ax-arrow-link--light { color: var(--dark-text); }

/* ─── Section head alignment update ─── */
.ax-section__head { margin-bottom: 3rem; }
.ax-section__head h2 { max-width: 680px; margin-bottom: 0; }
.ax-section__head--center { text-align: center; }
.ax-section__head--center h2 { margin-inline: auto; }

/* ─── Button: primary outline (light, for dark backgrounds) ─── */
.ax-btn--ghost-light {
  background: transparent; color: rgba(223,240,238,0.85);
  border: 1.5px solid rgba(223,240,238,0.4);
  font-family: var(--font-heading); font-size: 0.9375rem; font-weight: 600;
  padding: 0.875rem 1.875rem; border-radius: var(--radius);
  display: inline-block; text-decoration: none; letter-spacing: -0.01em;
  transition: background 0.2s var(--ease), border-color 0.2s var(--ease);
}
.ax-btn--ghost-light:hover { background: rgba(255,255,255,0.08); border-color: rgba(223,240,238,0.7); text-decoration: none; }

/* ─── Page-home h2 override (remove old 50px rule) ─── */
.page-home h2 { font-size: clamp(1.75rem, 3.2vw, 2.625rem); }

/* ══════════════════════════════════════════════════════════
   ABOUT PAGE
   ══════════════════════════════════════════════════════════ */

/* ─── Hero — editorial split, teal gradient ─── */
.ab-hero {
  background: linear-gradient(135deg, var(--teal-700) 0%, var(--teal-500) 60%, #a8dde3 100%);
  position: relative; isolation: isolate; overflow: hidden;
  padding-top: var(--header-h, 5rem);
}
.ab-hero::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(ellipse 65% 70% at 0% 55%, rgb(0 110 108 / 0.20), transparent 60%),
    radial-gradient(ellipse 40% 45% at 100% 10%, rgb(0 110 108 / 0.08), transparent 55%);
}
.ab-hero__inner {
  display: grid;
  grid-template-columns: minmax(0, 11fr) minmax(0, 9fr);
  gap: clamp(2.5rem, 6vw, 5.5rem);
  align-items: start;
  padding-top: clamp(2rem, 6vh, 4rem);
  padding-bottom: clamp(6rem, 12vw, 10rem);
  position: relative; z-index: 1;
}
.ab-hero__text { display: flex; flex-direction: column; align-items: flex-start; }
.ab-hero__text h1 {
  font-family: var(--font-heading);
  font-size: clamp(2.375rem, 4.5vw, 3.625rem);
  font-weight: 700; line-height: 1.06; letter-spacing: -0.025em;
  color: #fff; margin: 0.875rem 0 1.25rem; text-wrap: balance;
}
.ab-hero__text h1 em { font-style: italic; color: rgba(255,255,255,0.88); font-weight: 600; }
.ab-hero__sub {
  color: var(--dark-text); font-size: clamp(1.0625rem, 1.4vw, 1.1875rem);
  line-height: 1.68; max-width: 48ch; margin-bottom: 2rem; font-weight: 300;
}
.ab-hero__actions { display: flex; flex-wrap: wrap; gap: 0.875rem; margin-bottom: 2.5rem; }
.ab-hero__meta {
  display: flex; flex-wrap: wrap; gap: 1.5rem;
  font-size: 0.8125rem; font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase;
  color: rgb(223 240 238 / 0.50);
}
.ab-hero__meta-item { display: flex; align-items: center; gap: 0.5rem; }
.ab-hero__meta-item::before {
  content: ""; width: 4px; height: 4px; border-radius: 50%;
  background: var(--color-primary); flex-shrink: 0;
}
.ab-hero__media {
  position: relative;
  margin-top: clamp(2.5rem, 8vh, 6rem);
}
.ab-hero__media img {
  width: 100%; aspect-ratio: 4/5; object-fit: cover; object-position: center 25%;
  display: block; border-radius: 999em 999em 8px 8px;
}
@media (max-width: 768px) {
  .ab-hero__inner { grid-template-columns: 1fr; padding-bottom: clamp(4rem, 8vw, 6rem); }
  .ab-hero__media { order: -1; margin-top: 0; }
  .ab-hero__media img { aspect-ratio: 16/10; border-radius: 8px 8px 8px 8px; }
}

/* ─── Stat strip — overlap pull from hero ─── */
.ab-stats {
  position: relative; z-index: 10;
  margin-top: clamp(-4rem, -6vw, -3rem);
  padding-bottom: 0;
}
.ab-stats__card {
  background: var(--color-paper);
  border-radius: 12px;
  box-shadow: 0 2px 8px rgb(13 36 36 / 0.06), 0 12px 40px -8px rgb(13 36 36 / 0.12);
  display: flex; align-items: stretch;
}
.ab-stats__item {
  flex: 1; display: flex; flex-direction: column; gap: 0.375rem;
  padding: clamp(1.5rem, 3vw, 2.25rem) clamp(1.25rem, 2.5vw, 2rem);
}
.ab-stats__num {
  font-family: var(--font-heading);
  font-size: clamp(1.875rem, 3.5vw, 2.625rem);
  font-weight: 700; line-height: 1; letter-spacing: -0.02em;
  color: var(--color-primary);
}
.ab-stats__label {
  font-size: 0.875rem; line-height: 1.45; color: var(--color-muted); max-width: 18ch;
}
.ab-stats__divider { width: 1px; background: var(--border); align-self: stretch; flex-shrink: 0; }
@media (max-width: 600px) {
  .ab-stats__card { flex-direction: column; border-radius: 8px; }
  .ab-stats__divider { width: auto; height: 1px; }
  .ab-stats__item { padding: 1.25rem 1.5rem; }
}

/* ─── Story — aside-heading layout ─── */
.ab-story { background: var(--color-paper); }
.ab-story__layout {
  display: grid;
  grid-template-columns: minmax(0, 14rem) minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: clamp(3rem, 6vw, 5rem);
  row-gap: clamp(2.5rem, 5vw, 4rem);
}
.ab-story__rail { grid-column: 1; grid-row: 1 / 3; }
.ab-story__rail .ax-eyebrow { margin-bottom: 1rem; }
.ab-story__rail h2 {
  font-family: var(--font-heading);
  font-size: clamp(1.625rem, 3vw, 2.375rem);
  font-weight: 700; line-height: 1.1; letter-spacing: -0.025em;
  color: var(--color-ink); text-wrap: balance; margin: 0;
}
.ab-story__body { grid-column: 2; grid-row: 1; display: flex; flex-direction: column; gap: 1.25rem; }
.ab-story__body p { color: var(--color-muted); line-height: 1.72; margin: 0; }
.ab-story__body .ax-arrow-link { margin-top: 0.5rem; }
.ab-story__images {
  grid-column: 2; grid-row: 2;
  display: grid; grid-template-columns: 1fr 1fr; gap: 1.125rem; align-items: start;
}
.ab-story__img-primary img, .ab-story__img-secondary img {
  width: 100%; aspect-ratio: 3/4; object-fit: cover;
  border-radius: 10px; display: block;
}
.ab-story__img-secondary { margin-top: 2.5rem; }
@media (max-width: 860px) {
  .ab-story__layout { grid-template-columns: 1fr; }
  .ab-story__rail { grid-row: 1; }
  .ab-story__body { grid-column: 1; grid-row: 2; }
  .ab-story__images { grid-column: 1; grid-row: 3; }
  .ab-story__img-secondary { margin-top: 1rem; }
}

/* ─── GMP — split-bleed: image fills left half viewport, text right ─── */
.ab-gmp {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  background: var(--surface-tint);
}
.ab-gmp__media { position: relative; min-height: clamp(20rem, 45vw, 36rem); }
.ab-gmp__media img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: center; display: block;
}
.ab-gmp__text {
  padding: clamp(3.5rem, 8vw, 6rem) clamp(2rem, 5vw, 4.5rem);
  display: flex; flex-direction: column; gap: 1.125rem; align-self: center;
}
.ab-gmp__text h2 {
  font-family: var(--font-heading);
  font-size: clamp(1.625rem, 3vw, 2.375rem);
  font-weight: 700; line-height: 1.1; letter-spacing: -0.025em;
  color: var(--color-ink); margin: 0; text-wrap: balance;
}
.ab-gmp__cert {
  font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.10em; text-transform: uppercase;
  color: var(--color-primary); margin: 0;
}
.ab-gmp__text > p { color: var(--color-muted); line-height: 1.72; margin: 0; }
@media (max-width: 768px) {
  .ab-gmp { grid-template-columns: 1fr; }
  .ab-gmp__media { min-height: clamp(14rem, 55vw, 22rem); }
  .ab-gmp__text { padding: clamp(2.5rem, 6vw, 3.5rem) var(--container-pad); }
}

/* ─── Beliefs — light teal gradient, top-bordered editorial columns ─── */
.ab-beliefs {
  background: linear-gradient(135deg, var(--teal-700) 0%, var(--teal-500) 60%, #a8dde3 100%);
  position: relative; isolation: isolate; overflow: hidden;
  padding: var(--section-y) 0;
}
.ab-beliefs::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(ellipse 60% 60% at 85% 40%, rgba(255,255,255,0.09), transparent 60%),
    radial-gradient(ellipse 45% 55% at 10% 75%, rgba(255,255,255,0.06), transparent 55%);
}
.ab-beliefs .container { position: relative; z-index: 1; }
.ab-beliefs .ax-section__head { margin-bottom: 3.5rem; }
.ab-beliefs .ax-section__head h2 { color: #fff; }
.ab-beliefs__list {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 0;
}
.ab-belief {
  border-top: 2px solid var(--color-primary);
  padding: 2rem clamp(1.5rem, 3vw, 2.5rem) 0 0;
}
.ab-belief + .ab-belief {
  border-left: 1px solid rgb(255 255 255 / 0.08);
  padding-left: clamp(1.5rem, 3vw, 2.5rem);
}
.ab-belief h3 {
  font-family: var(--font-heading);
  font-size: clamp(1.1875rem, 1.8vw, 1.4375rem);
  font-weight: 700; line-height: 1.2; letter-spacing: -0.015em;
  color: #fff; margin: 0 0 0.875rem;
}
.ab-belief p {
  font-size: 0.9375rem; line-height: 1.68;
  color: rgba(255,255,255,0.85); font-weight: 300; margin: 0;
}
.ab-beliefs__cta { margin-top: 3.5rem; display: flex; justify-content: center; }
@media (max-width: 768px) {
  .ab-beliefs__list { grid-template-columns: 1fr; gap: 2rem; }
  .ab-belief { padding-right: 0; }
  .ab-belief + .ab-belief { border-left: none; padding-left: 0; }
}

/* ═══════════════════════════════════════════════════════════
   SHARED INNER-PAGE HERO  (ax-inner-hero)
   Teal gradient split — used across all inner service pages
   ═══════════════════════════════════════════════════════════ */
.ax-inner-hero {
  background: linear-gradient(135deg, var(--teal-700) 0%, var(--teal-500) 60%, #a8dde3 100%);
  position: relative; isolation: isolate; overflow: hidden;
  display: flex; align-items: stretch;
}
.ax-inner-hero::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(ellipse 55% 65% at 8% 20%, rgba(255,255,255,0.10), transparent 55%),
    radial-gradient(ellipse 35% 45% at 90% 80%, rgba(255,255,255,0.06), transparent 50%);
}
.ax-inner-hero__inner {
  display: grid;
  grid-template-columns: minmax(0, 11fr) minmax(0, 9fr);
  gap: clamp(2.5rem, 5vw, 4rem);
  align-items: center;
  padding-top: clamp(5rem, 10vw, 8rem);
  padding-bottom: clamp(4rem, 8vw, 6rem);
  position: relative; z-index: 1;
}
.ax-inner-hero__text { display: flex; flex-direction: column; gap: 1.25rem; }
.ax-inner-hero__text h1 {
  font-family: var(--font-heading);
  font-size: clamp(2.125rem, 4vw, 3.375rem);
  font-weight: 700; line-height: 1.08; letter-spacing: -0.03em;
  color: #fff; text-wrap: balance; margin: 0;
}
.ax-inner-hero__text h1 em { font-style: italic; color: rgba(255,255,255,0.88); }
.ax-inner-hero__sub {
  font-size: clamp(1rem, 1.4vw, 1.125rem); line-height: 1.7;
  color: rgb(223 240 238 / 0.72); max-width: 56ch; margin: 0;
}
.ax-inner-hero__actions {
  display: flex; flex-wrap: wrap; gap: 0.875rem; margin-top: 0.5rem;
}
.ax-inner-hero__meta {
  display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; margin-top: 0.75rem;
  border-top: 1px solid rgb(255 255 255 / 0.12); padding-top: 1.125rem;
}
.ax-inner-hero__meta-item {
  font-size: 0.8125rem; font-weight: 500; letter-spacing: 0.04em;
  color: rgb(223 240 238 / 0.55);
}
.ax-inner-hero__media {
  position: relative; align-self: stretch;
  min-height: clamp(18rem, 35vw, 30rem);
}
.ax-inner-hero__media img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: center; display: block;
  border-radius: 999em 999em 8px 8px;
}
@media (min-width: 769px) {
  .page-research-and-development .ax-inner-hero__media,
  .page-cosmetic-formulation .ax-inner-hero__media {
    transform: translateX(1.5rem) translateY(-1.5rem);
  }
}
@media (max-width: 860px) {
  .ax-inner-hero__inner {
    grid-template-columns: 1fr;
    padding-top: clamp(3.5rem, 7vw, 5rem);
    padding-bottom: clamp(3rem, 6vw, 4.5rem);
  }
  .ax-inner-hero__media { order: -1; min-height: clamp(14rem, 55vw, 22rem); }
  .ax-inner-hero__media img { border-radius: 8px; }
}

/* ═══════════════════════════════════════════════════════════
   CF — INTRO  (cf-intro)
   Split: context left / three client paths right
   ═══════════════════════════════════════════════════════════ */
.cf-intro { background: var(--color-paper); }
.cf-intro__grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: clamp(3rem, 6vw, 5.5rem);
  align-items: start;
}
.cf-intro__lead { display: flex; flex-direction: column; gap: 1rem; }
.cf-intro__lead h2 {
  font-family: var(--font-heading);
  font-size: clamp(1.625rem, 2.8vw, 2.375rem);
  font-weight: 700; line-height: 1.12; letter-spacing: -0.025em;
  color: var(--color-ink); text-wrap: balance; margin: 0;
}
.cf-intro__lead p { color: var(--color-muted); line-height: 1.72; margin: 0; }
.cf-intro__paths { display: flex; flex-direction: column; }
.cf-path { border-top: 1px solid var(--border); padding: 1.5rem 0; }
.cf-path:last-child { border-bottom: 1px solid var(--border); }
.cf-path__label {
  display: block;
  font-family: var(--font-heading);
  font-size: 1.125rem; font-weight: 700; letter-spacing: -0.01em;
  color: var(--color-ink); margin-bottom: 0.5rem;
}
.cf-path p { color: var(--color-muted); font-size: 0.9375rem; line-height: 1.65; margin: 0; }
@media (max-width: 768px) {
  .cf-intro__grid { grid-template-columns: 1fr; gap: 2.5rem; }
}

/* ═══════════════════════════════════════════════════════════
   CF — PROCESS  (cf-process)
   Four-step horizontal numbered list
   ═══════════════════════════════════════════════════════════ */
.cf-process { background: var(--surface-tint); }
.cf-steps {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--border);
}
.cf-step {
  padding: 2.25rem clamp(1.25rem, 2.5vw, 2rem) 0 0;
  border-right: 1px solid var(--border);
  display: flex; flex-direction: column; gap: 0.75rem;
}
.cf-step:last-child { border-right: none; padding-right: 0; }
.cf-step:not(:first-child) { padding-left: clamp(1.25rem, 2.5vw, 2rem); }
.cf-step__num {
  display: block;
  font-family: var(--font-heading);
  font-size: clamp(2.5rem, 4.5vw, 3.75rem);
  font-weight: 700; line-height: 1; letter-spacing: -0.04em;
  color: var(--color-primary); opacity: 0.35;
}
.cf-step__rule {
  width: 2.5rem; height: 2px;
  background: var(--color-primary); opacity: 0.45;
  border-radius: 2px; flex-shrink: 0;
}
.cf-step h3 {
  font-family: var(--font-heading);
  font-size: 1.25rem; font-weight: 700; line-height: 1.2; letter-spacing: -0.015em;
  color: var(--color-ink); margin: 0;
}
.cf-step p { color: var(--color-muted); font-size: 0.9375rem; line-height: 1.65; margin: 0; }
.cf-step__link { margin-top: 0.25rem; }
@media (max-width: 900px) {
  .cf-steps { grid-template-columns: repeat(2, 1fr); }
  .cf-step:nth-child(2) { border-right: none; }
  .cf-step:nth-child(3) {
    border-right: 1px solid var(--border);
    border-top: 1px solid var(--border); padding-top: 2.25rem; margin-top: 1rem;
    padding-left: 0;
  }
  .cf-step:nth-child(4) {
    border-right: none; border-top: 1px solid var(--border);
    padding-top: 2.25rem; margin-top: 1rem;
  }
}
@media (max-width: 560px) {
  .cf-steps { grid-template-columns: 1fr; }
  .cf-step { border-right: none; border-top: 1px solid var(--border); padding-right: 0; padding-left: 0; }
  .cf-step:first-child { border-top: none; }
}

/* ═══════════════════════════════════════════════════════════
   CF — PRODUCTS  (cf-products)
   Editorial text category columns
   ═══════════════════════════════════════════════════════════ */
.cf-products { background: var(--color-paper); }
.cf-cats {
  display: grid; grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--border);
  margin-top: 3rem;
}
.cf-cat {
  padding: 2.5rem clamp(1.25rem, 2.5vw, 2.25rem) 0 0;
  border-right: 1px solid var(--border);
  display: flex; flex-direction: column; gap: 0.875rem;
}
.cf-cat:last-child { border-right: none; padding-right: 0; }
.cf-cat:not(:first-child) { padding-left: clamp(1.25rem, 2.5vw, 2.25rem); }
.cf-cat__label {
  display: block;
  font-family: var(--font-heading);
  font-size: clamp(1.25rem, 2vw, 1.75rem);
  font-weight: 700; line-height: 1.1; letter-spacing: -0.02em;
  color: var(--color-ink);
}
.cf-cat__list { color: var(--color-muted); font-size: 0.9375rem; line-height: 1.68; margin: 0; }
@media (max-width: 768px) {
  .cf-cats { grid-template-columns: 1fr; }
  .cf-cat {
    border-right: none; border-bottom: 1px solid var(--border);
    padding: 2rem 0;
  }
  .cf-cat:not(:first-child) { padding-left: 0; }
  .cf-cat:first-child { padding-top: 2rem; }
  .cf-cat:last-child { border-bottom: none; }
}

/* ═══════════════════════════════════════════════════════════
   CF — WHY  (cf-why)
   Dark field, split-bleed image right
   ═══════════════════════════════════════════════════════════ */
.cf-why {
  background: var(--color-dark);
  display: grid; grid-template-columns: 1fr 1fr;
  position: relative; isolation: isolate; overflow: hidden;
  min-height: clamp(28rem, 55vw, 44rem);
}
.cf-why::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: radial-gradient(ellipse 50% 70% at 15% 50%, rgb(0 110 108 / 0.20), transparent 55%);
}
.cf-why__content {
  padding: clamp(4rem, 9vw, 7rem) clamp(2rem, 5vw, 4rem);
  padding-left: max(clamp(1.25rem, 4vw, 2rem), calc((100vw - 1200px) / 2 + clamp(1.25rem, 4vw, 2rem)));
  display: flex; flex-direction: column; gap: 1.25rem; justify-content: center;
  position: relative; z-index: 1;
}
.cf-why__content h2 {
  font-family: var(--font-heading);
  font-size: clamp(1.75rem, 3vw, 2.625rem);
  font-weight: 700; line-height: 1.1; letter-spacing: -0.025em;
  color: #fff; text-wrap: balance; margin: 0;
}
.cf-why__content h2 em { font-style: italic; color: var(--color-teal-500); }
.cf-why__content > p { color: rgb(223 240 238 / 0.68); line-height: 1.72; margin: 0; }
.cf-why__actions { display: flex; flex-wrap: wrap; gap: 0.875rem; margin-top: 0.5rem; }
.cf-why__media { position: relative; }
.cf-why__media img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: center; display: block;
}
@media (max-width: 768px) {
  .cf-why { grid-template-columns: 1fr; }
  .cf-why__media { min-height: clamp(16rem, 60vw, 26rem); order: -1; }
  .cf-why__content {
    padding: clamp(2.5rem, 7vw, 4rem) var(--container-pad);
  }
}

/* ═══════════════════════════════════════════════════
   CONTRACT MANUFACTURING PAGE
═══════════════════════════════════════════════════ */

/* ─── Scale — copy left, image right ─── */
.cm-scale { background: var(--color-paper); }
.cm-scale__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(3rem, 7vw, 6rem);
  align-items: center;
}
.cm-scale__text { display: flex; flex-direction: column; gap: 1.125rem; }
.cm-scale__text h2 {
  font-family: var(--font-heading);
  font-size: clamp(1.625rem, 3vw, 2.5rem);
  font-weight: 700; line-height: 1.1; letter-spacing: -0.025em;
  color: var(--color-ink); text-wrap: balance; margin: 0;
}
.cm-scale__text p { color: var(--color-muted); line-height: 1.72; margin: 0; }
.cm-scale__media img {
  width: 100%; aspect-ratio: 4/3;
  object-fit: cover; object-position: right top;
  display: block; border-radius: 10px;
}
@media (min-width: 769px) {
  .cm-scale__media { margin-top: -3rem; margin-left: 1.5rem; }
}
@media (max-width: 768px) {
  .cm-scale__grid { grid-template-columns: 1fr; }
  .cm-scale__media { order: -1; }
  .cm-scale__media img { aspect-ratio: 16/10; }
}

/* ─── GMP — ISO cert as typographic element ─── */
.cm-gmp { background: var(--surface-tint); }
.cm-gmp__grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: clamp(3rem, 7vw, 6rem);
  align-items: center;
}
.cm-gmp__badge {
  display: flex; flex-direction: column; gap: 0;
  line-height: 1; letter-spacing: -0.04em;
  border-left: 3px solid var(--color-primary);
  padding-left: clamp(1.25rem, 2.5vw, 2rem);
}
.cm-gmp__iso {
  font-family: var(--font-heading);
  font-size: clamp(1.375rem, 2.2vw, 1.875rem);
  font-weight: 700; color: var(--color-muted);
  text-transform: uppercase; letter-spacing: 0.15em;
  margin-bottom: 0.25rem;
}
.cm-gmp__num {
  font-family: var(--font-heading);
  font-size: clamp(1.375rem, 2.2vw, 1.875rem);
  font-weight: 700; line-height: 0.9;
  color: var(--color-ink); display: block;
}
.cm-gmp__colon {
  font-family: var(--font-heading);
  font-size: clamp(1.375rem, 2.2vw, 1.875rem);
  font-weight: 700; color: var(--color-primary);
  margin-top: 0.375rem; display: block;
}
.cm-gmp__body { display: flex; flex-direction: column; gap: 1.125rem; }
.cm-gmp__body h2 {
  font-family: var(--font-heading);
  font-size: clamp(1.625rem, 2.8vw, 2.25rem);
  font-weight: 700; line-height: 1.12; letter-spacing: -0.025em;
  color: var(--color-ink); text-wrap: balance; margin: 0;
}
.cm-gmp__body > p { color: var(--color-muted); line-height: 1.72; margin: 0; }
.cm-gmp__checklist {
  list-style: none; margin: 0.25rem 0 0; padding: 0;
  display: flex; flex-direction: column; gap: 0.625rem;
}
.cm-gmp__checklist li {
  display: flex; align-items: baseline; gap: 0.625rem;
  font-size: 0.9375rem; color: var(--color-muted); line-height: 1.5;
}
.cm-gmp__checklist li::before {
  content: ""; flex-shrink: 0;
  width: 5px; height: 5px; border-radius: 50%;
  background: var(--color-primary); position: relative; top: -1px;
}
@media (max-width: 768px) {
  .cm-gmp__grid { grid-template-columns: 1fr; }
  .cm-gmp__badge {
    flex-direction: row; align-items: baseline; gap: 0.75rem;
    border-left: none; border-top: 3px solid var(--color-primary);
    padding-left: 0; padding-top: 1rem; flex-wrap: wrap;
  }
  .cm-gmp__num { font-size: clamp(2.5rem, 12vw, 4rem); }
}

/* ─── Includes — three editorial feature columns ─── */
.cm-includes { background: var(--color-paper); }
.cm-features {
  display: grid; grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--border);
  margin-top: clamp(2.5rem, 5vw, 3.5rem);
}
.cm-feature {
  padding: 2.25rem clamp(1.25rem, 2.5vw, 2rem) 0 0;
  border-right: 1px solid var(--border);
  display: flex; flex-direction: column; gap: 0.75rem;
}
.cm-feature:last-child { border-right: none; padding-right: 0; }
.cm-feature:not(:first-child) { padding-left: clamp(1.25rem, 2.5vw, 2rem); }
.cm-feature h3 {
  font-family: var(--font-heading);
  font-size: clamp(1.125rem, 1.6vw, 1.3125rem);
  font-weight: 700; line-height: 1.25; letter-spacing: -0.015em;
  color: var(--color-ink); margin: 0;
}
.cm-feature p { color: var(--color-muted); font-size: 0.9375rem; line-height: 1.66; margin: 0; }
.cm-feature__links { display: flex; flex-direction: column; gap: 0.5rem; margin-top: 0.5rem; }
@media (max-width: 768px) {
  .cm-features { grid-template-columns: 1fr; }
  .cm-feature {
    border-right: none; border-bottom: 1px solid var(--border);
    padding: 2rem 0;
  }
  .cm-feature:not(:first-child) { padding-left: 0; }
  .cm-feature:last-child { border-bottom: none; }
}

/* ─── Clients — dark, image-washed, centred editorial ─── */
.cm-clients {
  position: relative; isolation: isolate; overflow: hidden;
  background: var(--color-dark);
  padding: clamp(5rem, 10vw, 8rem) 0;
}
.cm-clients__media {
  position: absolute; inset: 0; z-index: 0;
}
.cm-clients__media img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center;
  display: block; opacity: 0.18;
}
.cm-clients::after {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background:
    linear-gradient(to bottom, var(--color-dark) 0%, transparent 28%, transparent 72%, var(--color-dark) 100%),
    radial-gradient(ellipse 70% 70% at 50% 50%, transparent 30%, rgb(7 33 32 / 0.55) 100%);
}
.cm-clients .container { position: relative; z-index: 2; }
.cm-clients__inner {
  max-width: 52rem; margin-inline: auto;
  display: flex; flex-direction: column; align-items: center;
  text-align: center; gap: 1.25rem;
}
.cm-clients__inner h2 {
  font-family: var(--font-heading);
  font-size: clamp(1.875rem, 3.5vw, 3rem);
  font-weight: 700; line-height: 1.08; letter-spacing: -0.03em;
  color: #fff; text-wrap: balance; margin: 0;
}
.cm-clients__inner h2 em { font-style: italic; color: #fff; }
.cm-clients__inner > p {
  font-size: clamp(1rem, 1.4vw, 1.125rem);
  line-height: 1.70; color: #fff;
  max-width: 44ch; margin: 0;
}
.cm-clients__actions {
  display: flex; flex-wrap: wrap; gap: 0.875rem;
  justify-content: center; margin-top: 0.5rem;
}

/* ═══════════════════════════════════════════════════
   RESEARCH AND DEVELOPMENT PAGE
═══════════════════════════════════════════════════ */

/* ─── De-risks — aside-heading quality statement ─── */
.rd-derisks { background: var(--color-paper); }
.rd-derisks__grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: clamp(3rem, 7vw, 6rem);
  align-items: start;
}
.rd-derisks__rail { display: flex; flex-direction: column; gap: 1rem; }
.rd-derisks__rail h2 {
  font-family: var(--font-heading);
  font-size: clamp(1.625rem, 3vw, 2.5rem);
  font-weight: 700; line-height: 1.1; letter-spacing: -0.025em;
  color: var(--color-ink); text-wrap: balance; margin: 0;
}
.rd-derisks__body { display: flex; flex-direction: column; gap: 1.25rem; padding-top: 0.25rem; }
.rd-derisks__body p { color: var(--color-muted); line-height: 1.72; margin: 0; }
@media (max-width: 768px) {
  .rd-derisks__grid { grid-template-columns: 1fr; gap: 1.75rem; }
}

/* ─── Services — stacked numbered rows ─── */
.rd-services { background: var(--surface-tint); }
.rd-services__list {
  list-style: none; margin: clamp(2.5rem, 5vw, 3.5rem) 0 0; padding: 0;
  display: flex; flex-direction: column;
}
.rd-service {
  display: grid;
  grid-template-columns: clamp(3rem, 6vw, 5rem) minmax(0, 1fr);
  gap: clamp(1.5rem, 3vw, 2.5rem);
  padding: clamp(1.75rem, 3.5vw, 2.5rem) 0;
  border-top: 1px solid var(--border);
  align-items: baseline;
}
.rd-service:last-child { border-bottom: 1px solid var(--border); }
.rd-service__num {
  font-family: var(--font-heading);
  font-size: clamp(0.875rem, 1.2vw, 1rem);
  font-weight: 700; letter-spacing: 0.06em;
  color: var(--color-primary); opacity: 0.7;
  padding-top: 0.2em;
}
.rd-service__body { display: flex; flex-direction: column; gap: 0.625rem; }
.rd-service__body h3 {
  font-family: var(--font-heading);
  font-size: clamp(1.1875rem, 1.8vw, 1.4375rem);
  font-weight: 700; line-height: 1.2; letter-spacing: -0.015em;
  color: var(--color-ink); margin: 0;
}
.rd-service__body p { color: var(--color-muted); font-size: 0.9375rem; line-height: 1.68; margin: 0; }
.rd-service__link { margin-top: 0.375rem; }
@media (max-width: 560px) {
  .rd-service { grid-template-columns: 1fr; gap: 0.5rem; }
  .rd-service__num { font-size: 0.8125rem; }
}

/* ─── Connected — dark, image left / text right ─── */
.rd-connected {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  background: var(--color-dark);
  position: relative; isolation: isolate; overflow: hidden;
}
.rd-connected::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: radial-gradient(ellipse 50% 65% at 80% 50%, rgb(0 110 108 / 0.18), transparent 60%);
}
.rd-connected__media { position: relative; min-height: clamp(22rem, 45vw, 38rem); }
.rd-connected__media img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: center; display: block;
}
.rd-connected__text {
  padding: clamp(4rem, 9vw, 7rem) clamp(2rem, 5vw, 4.5rem) clamp(4rem, 9vw, 7rem) clamp(2rem, 5vw, 4.5rem);
  display: flex; flex-direction: column; gap: 1.25rem;
  align-self: center;
  position: relative; z-index: 1;
}
.rd-connected__text h2 {
  font-family: var(--font-heading);
  font-size: clamp(1.75rem, 3.2vw, 2.625rem);
  font-weight: 700; line-height: 1.08; letter-spacing: -0.03em;
  color: #fff; text-wrap: balance; margin: 0;
}
.rd-connected__text h2 em { font-style: italic; color: var(--color-primary); }
.rd-connected__text > p {
  font-size: clamp(0.9375rem, 1.2vw, 1.0625rem);
  line-height: 1.72; color: rgb(223 240 238 / 0.65);
  max-width: 44ch; margin: 0;
}
.rd-connected__actions { display: flex; flex-wrap: wrap; gap: 0.875rem; margin-top: 0.5rem; }
@media (max-width: 860px) {
  .rd-connected { grid-template-columns: 1fr; }
  .rd-connected__media { min-height: clamp(16rem, 55vw, 24rem); }
  .rd-connected__text { padding: clamp(3rem, 7vw, 5rem) var(--container-pad); }
}

/* ═══════════════════════════════════════════════════
   FAQ PAGE
═══════════════════════════════════════════════════ */

/* ─── Page header — teal gradient ─── */
.fq-header {
  background: linear-gradient(135deg, var(--teal-700) 0%, var(--teal-500) 60%, #a8dde3 100%);
  position: relative; isolation: isolate; overflow: hidden;
  padding: clamp(5rem, 10vw, 8rem) 0 clamp(4rem, 8vw, 6.5rem);
}
.fq-header::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(ellipse 60% 70% at 20% 50%, rgb(0 110 108 / 0.20), transparent 60%),
    radial-gradient(ellipse 40% 50% at 85% 30%, rgb(0 110 108 / 0.10), transparent 55%);
}
.fq-header__inner { position: relative; z-index: 1; }
.fq-header__text {
  max-width: 52rem;
  display: flex; flex-direction: column; gap: 1.25rem;
}
.fq-header__text h1 {
  font-family: var(--font-heading);
  font-size: clamp(2rem, 4.5vw, 3.5rem);
  font-weight: 700; line-height: 1.07; letter-spacing: -0.03em;
  color: #fff; text-wrap: balance; margin: 0;
}
.fq-header__text h1 em { font-style: italic; color: rgba(255,255,255,0.88); }
.fq-header__sub {
  font-size: clamp(1rem, 1.4vw, 1.125rem);
  line-height: 1.70; color: rgb(223 240 238 / 0.65); margin: 0;
}
.fq-header__sub a { color: var(--color-primary); text-underline-offset: 3px; }
.fq-header__sub a:hover { color: #fff; }

/* ─── FAQ body — grouped Q&A, all answers in DOM ─── */
.fq-body {
  background: var(--color-paper);
  padding: clamp(4rem, 8vw, 6.5rem) 0;
}
.fq-group {
  padding-bottom: clamp(3rem, 6vw, 5rem);
  margin-bottom: clamp(3rem, 6vw, 5rem);
  border-bottom: 1px solid var(--border);
}
.fq-group:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.fq-group__head {
  font-family: var(--font-heading);
  font-size: clamp(0.8125rem, 1vw, 0.9375rem);
  font-weight: 700; letter-spacing: 0.10em; text-transform: uppercase;
  color: var(--color-primary);
  margin: 0 0 clamp(2rem, 4vw, 3rem);
  padding-bottom: 0.875rem;
  border-bottom: 2px solid var(--color-primary);
  display: inline-block;
}
.fq-items {
  display: flex; flex-direction: column; gap: 0;
  margin: 0; padding: 0;
}
.fq-item {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: clamp(2rem, 5vw, 4rem);
  padding: clamp(1.75rem, 3.5vw, 2.5rem) 0;
  border-top: 1px solid var(--border);
  align-items: baseline;
}
.fq-item:first-child { border-top: none; }
.fq-item__q { margin: 0; }
.fq-item__q h3 {
  font-family: var(--font-heading);
  font-size: clamp(1.0625rem, 1.5vw, 1.25rem);
  font-weight: 700; line-height: 1.25; letter-spacing: -0.015em;
  color: var(--color-ink); margin: 0; text-wrap: balance;
}
.fq-item__a {
  margin: 0;
  display: flex; flex-direction: column; gap: 0.875rem;
}
.fq-item__a p { color: var(--color-muted); line-height: 1.72; margin: 0; }
@media (max-width: 680px) {
  .fq-item {
    grid-template-columns: 1fr;
    gap: 0.75rem;
  }
}

/* ─── CTA — dark editorial closing band ─── */
.fq-cta {
  background: var(--color-dark);
  position: relative; isolation: isolate;
}
.fq-cta::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: radial-gradient(ellipse 55% 65% at 50% 50%, rgb(0 110 108 / 0.16), transparent 60%);
}
.fq-cta .container { position: relative; z-index: 1; }
.fq-cta__inner {
  max-width: 40rem; margin-inline: auto;
  display: flex; flex-direction: column; align-items: center;
  text-align: center; gap: 1.125rem;
}
.fq-cta__inner h2 {
  font-family: var(--font-heading);
  font-size: clamp(1.75rem, 3.2vw, 2.625rem);
  font-weight: 700; line-height: 1.1; letter-spacing: -0.025em;
  color: #fff; text-wrap: balance; margin: 0;
}
.fq-cta__inner h2 em { font-style: italic; color: var(--color-primary); }
.fq-cta__inner > p { color: rgb(223 240 238 / 0.65); line-height: 1.68; margin: 0; }
.fq-cta__actions { margin-top: 0.5rem; }

/* ═══════════════════════════════════════════════════
   CONTACT PAGE
═══════════════════════════════════════════════════ */

/* ─── Header — teal gradient left-aligned H1 ─── */
.ct-header {
  background: linear-gradient(135deg, var(--teal-700) 0%, var(--teal-500) 60%, #a8dde3 100%);
  position: relative; isolation: isolate; overflow: hidden;
  padding: clamp(5rem, 10vw, 8rem) 0 clamp(4rem, 8vw, 6.5rem);
}
.ct-header::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(ellipse 55% 65% at 5% 45%, rgb(0 110 108 / 0.22), transparent 60%),
    radial-gradient(ellipse 35% 45% at 90% 20%, rgb(0 110 108 / 0.10), transparent 55%);
}
.ct-header .container { position: relative; z-index: 1; }
.ct-header__text { max-width: 52rem; display: flex; flex-direction: column; gap: 1.25rem; }
.ct-header__text h1 {
  font-family: var(--font-heading);
  font-size: clamp(2rem, 4.5vw, 3.5rem);
  font-weight: 700; line-height: 1.07; letter-spacing: -0.03em;
  color: #fff; text-wrap: balance; margin: 0;
}
.ct-header__text h1 em { font-style: italic; color: rgba(255,255,255,0.88); }
.ct-header__sub {
  font-size: clamp(1rem, 1.4vw, 1.125rem);
  line-height: 1.70; color: rgb(223 240 238 / 0.65); margin: 0; max-width: 58ch;
}

/* ─── Body — two-col: info left / form right ─── */
.ct-body { background: var(--color-paper); padding: clamp(4rem, 8vw, 6.5rem) 0; }
.ct-body__grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: clamp(3rem, 7vw, 6rem);
  align-items: start;
}

/* Info column */
.ct-info { display: flex; flex-direction: column; gap: 2.5rem; }
.ct-callout { display: flex; flex-direction: column; gap: 1rem; }
.ct-callout__head {
  font-family: var(--font-heading);
  font-size: clamp(1.25rem, 2vw, 1.625rem);
  font-weight: 700; line-height: 1.2; letter-spacing: -0.02em;
  color: var(--color-ink); margin: 0;
}
.ct-callout p { color: var(--color-muted); line-height: 1.70; margin: 0; font-size: 0.9375rem; }

.ct-details { display: flex; flex-direction: column; gap: 1.25rem; }
.ct-detail { display: flex; flex-direction: column; gap: 0.25rem; }
.ct-detail__label {
  font-size: 0.75rem; font-weight: 700; letter-spacing: 0.10em;
  text-transform: uppercase; color: var(--color-muted);
}
.ct-detail__value {
  font-size: 0.9375rem; color: var(--color-ink); line-height: 1.55;
}
a.ct-detail__value {
  color: var(--color-primary); text-underline-offset: 3px;
}
a.ct-detail__value:hover { color: var(--color-ink); }

.ct-socials { display: flex; flex-direction: column; gap: 0.75rem; }
.ct-socials__label {
  font-size: 0.75rem; font-weight: 700; letter-spacing: 0.10em;
  text-transform: uppercase; color: var(--color-muted);
}
.ct-socials__links { display: flex; flex-direction: column; gap: 0.5rem; }
.ct-social {
  display: flex; align-items: center; gap: 0.625rem;
  color: var(--color-ink); text-decoration: none;
  font-size: 0.9375rem; line-height: 1.4;
  transition: color 200ms;
}
.ct-social:hover { color: var(--color-primary); }
.ct-social svg { flex-shrink: 0; }

/* Form column */
.ct-form-wrap {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: clamp(2rem, 4vw, 3rem);
}
.ct-form__head {
  font-family: var(--font-heading);
  font-size: clamp(1.25rem, 2vw, 1.625rem);
  font-weight: 700; line-height: 1.2; letter-spacing: -0.02em;
  color: var(--color-ink); margin: 0 0 0.5rem;
}
.ct-form__sub {
  font-size: 0.9rem; line-height: 1.65; color: var(--color-muted);
  margin: 0 0 1.75rem;
}
.ct-form { display: flex; flex-direction: column; gap: 1.125rem; }
.ct-form__error { color: #c00; font-size: 0.875rem; font-weight: 500; margin: 0; padding: .75rem 1rem; background: #fff2f2; border-radius: var(--r-md); border-left: 3px solid #c00; }
.ct-hp { display: none; }
.ct-field { display: flex; flex-direction: column; gap: 0.375rem; }
.ct-label {
  font-size: 0.875rem; font-weight: 600; color: var(--color-ink);
  letter-spacing: 0.01em;
}
.ct-label span { color: var(--color-muted); font-weight: 400; }
.ct-input, .ct-textarea {
  width: 100%; box-sizing: border-box;
  font-family: var(--font-body); font-size: 1rem;
  color: var(--color-ink); background: var(--color-paper);
  border: 1.5px solid var(--border);
  border-radius: 6px;
  padding: 0.75rem 0.875rem;
  transition: border-color 200ms, box-shadow 200ms;
  outline: none;
  -webkit-appearance: none;
}
.ct-input:focus, .ct-textarea:focus {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgb(0 110 108 / 0.12);
}
.ct-textarea { resize: vertical; min-height: 9rem; }
.ct-form .ax-btn--block {
  width: 100%; margin-top: 0.375rem;
  padding-block: 0.9375rem;
}

/* ─── Services closer ─── */
.ct-services { background: var(--surface-tint); }
.ct-services__head {
  display: flex; flex-direction: column; gap: 0.875rem;
  max-width: 38rem; margin-bottom: clamp(2.5rem, 5vw, 3.5rem);
}
.ct-services__head h2 {
  font-family: var(--font-heading);
  font-size: clamp(1.625rem, 3vw, 2.5rem);
  font-weight: 700; line-height: 1.1; letter-spacing: -0.025em;
  color: var(--color-ink); text-wrap: balance; margin: 0;
}
.ct-services__head p { color: var(--color-muted); line-height: 1.70; margin: 0; }
.ct-service-links {
  display: grid; grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--border);
}
.ct-service-link {
  display: flex; flex-direction: column; gap: 0.5rem;
  padding: 2rem clamp(1.25rem, 2.5vw, 2rem) 2rem 0;
  border-right: 1px solid var(--border);
  text-decoration: none; transition: background 180ms;
  position: relative;
}
.ct-service-link:last-child { border-right: none; padding-right: 0; }
.ct-service-link:not(:first-child) { padding-left: clamp(1.25rem, 2.5vw, 2rem); }
.ct-service-link__title {
  font-family: var(--font-heading);
  font-size: clamp(1.0625rem, 1.5vw, 1.25rem);
  font-weight: 700; letter-spacing: -0.015em;
  color: var(--color-ink); line-height: 1.2;
  transition: color 180ms;
}
.ct-service-link:hover .ct-service-link__title { color: var(--color-primary); }
.ct-service-link__desc {
  font-size: 0.9rem; color: var(--color-muted); line-height: 1.60; flex: 1;
}
.ct-service-link__arrow {
  color: var(--color-primary); margin-top: 0.5rem;
  transition: transform 200ms;
}
.ct-service-link:hover .ct-service-link__arrow { transform: translateX(4px); }
@media (max-width: 860px) {
  .ct-body__grid { grid-template-columns: 1fr; }
  .ct-info { gap: 2rem; }
}
@media (max-width: 680px) {
  .ct-service-links { grid-template-columns: 1fr; }
  .ct-service-link {
    border-right: none; border-bottom: 1px solid var(--border);
    padding: 1.5rem 0;
  }
  .ct-service-link:not(:first-child) { padding-left: 0; }
  .ct-service-link:last-child { border-bottom: none; }
}

/* ─── SERVICES HUB PAGE ─── */
.sv-why-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem 3rem;
  margin: 3rem 0 2.5rem;
}
@media (max-width: 640px) { .sv-why-grid { grid-template-columns: 1fr; } }
.sv-why-item h3 { font-size: 1.125rem; font-weight: 600; margin-bottom: 0.375rem; }
.sv-why-item p { font-size: 0.9375rem; color: var(--color-muted); line-height: 1.65; margin: 0; }

.sv-why-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.875rem;
  justify-content: center;
  margin-top: 1rem;
}

.sv-blog-links {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
  margin-top: 2.5rem;
}
@media (max-width: 640px) { .sv-blog-links { grid-template-columns: 1fr; } }

.sv-blog-link {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  padding: 1.75rem;
  background: #fff;
  border: 1px solid var(--grey-200);
  border-radius: var(--r-lg);
  text-decoration: none;
  transition: box-shadow .2s var(--ease), transform .2s var(--ease);
}
.sv-blog-link:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.sv-blog-link__title { font-family: var(--font-heading); font-size: 1.125rem; font-weight: 500; color: var(--color-ink); }
.sv-blog-link__desc { font-size: 0.875rem; color: var(--color-muted); line-height: 1.6; flex: 1; }
.sv-blog-link__arrow {
  display: flex;
  align-items: center;
  color: var(--color-primary);
  margin-top: 0.75rem;
  transition: transform .2s var(--ease);
}
.sv-blog-link:hover .sv-blog-link__arrow { transform: translateX(4px); }

/* Related note (blog link footnote on service/FAQ pages) */
.ax-related-note {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--grey-200);
  font-size: 0.9375rem;
  color: var(--color-muted);
  text-align: center;
}
.ax-related-note a { color: var(--color-primary); text-decoration: underline; text-underline-offset: 3px; }

/* ─── Thank-you page ─── */
.ty-hero { padding: clamp(5rem, 10vw, 8rem) 0; }
.ty-hero__inner {
  max-width: 48rem;
  display: flex; flex-direction: column; gap: 1.25rem;
}
.ty-hero__icon {
  width: 72px; height: 72px; border-radius: 50%;
  display: grid; place-items: center;
  background: var(--teal-100); color: var(--teal-700);
  margin-bottom: .5rem;
}
.ty-hero h1 {
  font-family: var(--font-heading);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 700; line-height: 1.08; letter-spacing: -0.025em;
  color: var(--color-ink); text-wrap: balance; margin: 0;
}
.ty-hero__sub {
  font-size: clamp(1rem, 1.4vw, 1.125rem); line-height: 1.72;
  color: var(--color-muted); max-width: 52ch; margin: 0;
}
.ty-hero__actions { display: flex; flex-wrap: wrap; gap: 0.875rem; margin-top: .25rem; }
.ty-hero__next {
  margin-top: 2.5rem;
  padding-top: 2.5rem;
  border-top: 1px solid var(--border);
}
.ty-hero__next h2 {
  font-family: var(--font-heading); font-size: 1.125rem; font-weight: 600;
  color: var(--color-ink); margin: 0 0 1.25rem; letter-spacing: 0;
}
.ty-next-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .5rem; }
.ty-next-link {
  display: flex; align-items: center; gap: 1rem;
  padding: 1rem 1.25rem; border-radius: var(--r-lg);
  border: 1px solid var(--border); text-decoration: none;
  transition: border-color .16s var(--ease), background .16s var(--ease);
}
.ty-next-link:hover { border-color: var(--color-primary); background: var(--teal-50); text-decoration: none; }
.ty-next-link__title { font-weight: 600; color: var(--color-ink); font-size: 0.9375rem; }
.ty-next-link__desc { font-size: 0.875rem; color: var(--color-muted); margin-top: .15rem; }
.ty-next-link svg { margin-left: auto; flex: none; color: var(--color-primary); transition: transform .16s var(--ease); }
.ty-next-link:hover svg { transform: translateX(3px); }
.ty-next-link > span:first-of-type { display: flex; flex-direction: column; }

/* ─── Privacy / Terms prose pages ─── */
.ax-section--ink { background: var(--color-dark); }
.ax-section--ink .ax-eyebrow--light { color: var(--teal-500); }
.ax-section--ink h1 { color: #fff; }
.pp-hero { padding-block: clamp(3rem, 6vw, 5rem); }
.pp-hero__sub { color: rgb(223 240 238 / .55); font-size: .9rem; margin: .5rem 0 0; }
.pp-body { max-width: 48rem; }
.pp-body h2 {
  font-family: var(--font-heading); font-size: 1.25rem; font-weight: 600;
  color: var(--color-ink); margin: 2rem 0 .75rem;
  padding-top: 1rem; border-top: 1px solid var(--border);
}
.pp-body h2:first-of-type { border-top: none; padding-top: 0; }
.pp-body p, .pp-body li { font-size: 1rem; color: var(--color-muted); line-height: 1.75; }
.pp-body ul { margin: .75rem 0 .75rem 1.25rem; padding: 0; }
.pp-body li { margin-bottom: .35rem; }
.pp-body a { color: var(--color-primary); text-decoration: underline; text-underline-offset: 3px; }
.pp-disclaimer { font-size: .875rem; margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid var(--border); }
