/* ============================================================
   CanadaAML — Website UI kit
   Imports tokens from ../../colors_and_type.css
   ============================================================ */
@import url('/colors_and_type.css');

html, body { background: var(--surface-warm); }
* { box-sizing: border-box; }
.app { min-height: 100vh; display: flex; flex-direction: column; }
main { flex: 1; }

/* ---- shared bits ----------------------------------------- */
.eyebrow-row { display:flex; align-items:center; gap: 12px; margin-bottom: 18px; }
.eyebrow-row__bar { width: 28px; height: 2px; background: var(--accent-oxblood); display:block; flex-shrink: 0; }
.eyebrow {
  font-family: var(--font-body);
  font-size: 12px; font-weight: 600;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--eyebrow);
  line-height: 1;
  white-space: nowrap;
}
.eyebrow--on-dark { color: rgba(247, 244, 238, 0.62); }

.btn {
  display:inline-flex; align-items:center; gap: 8px;
  font-family: var(--font-body); font-size: 15px; font-weight: 500; line-height: 1;
  padding: 14px 22px; border-radius: 2px; border: 1px solid transparent;
  cursor: pointer; text-decoration: none;
  transition: background var(--dur-hover) var(--ease-quiet),
              color var(--dur-hover) var(--ease-quiet),
              border-color var(--dur-hover) var(--ease-quiet);
}
.btn--primary { background: var(--ink-navy); color: var(--fg-on-dark); }
.btn--primary:hover { background: var(--ink-slate); color: var(--fg-on-dark); }
.btn--secondary { background: transparent; color: var(--ink-navy); border-color: var(--ink-navy); }
.btn--secondary:hover { color: var(--accent-oxblood); border-color: var(--accent-oxblood); }
.btn--invert { background: var(--surface-warm); color: var(--ink-navy); }
.btn--invert:hover { background: #fff; }
.btn--ghost-light { background: transparent; color: var(--fg-on-dark); border-color: rgba(247, 244, 238, 0.5); text-decoration: none; }
.btn--ghost-light:hover { color: var(--accent-oxblood-on-dark); border-color: var(--accent-oxblood-on-dark); text-decoration: none; }
.btn--ghost {
  background: transparent;
  color: var(--ink-navy);
  border-color: transparent;
  padding: 14px 8px;
  text-decoration: none;
}
.btn--ghost .link-text {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
  text-decoration-color: var(--accent-oxblood);
  transition: text-decoration-thickness var(--dur-hover) var(--ease-quiet);
}
.btn--ghost:hover {
  color: var(--accent-oxblood);
  text-decoration: none;
}
.btn--ghost:hover .link-text {
  text-decoration-thickness: 2px;
  text-decoration-color: var(--accent-oxblood);
}
/* Suppress the motion package's animated scaleX underline on .link-text
   here — .btn--ghost carries a static underline; no double-underline. */
.btn--ghost .link-text::after { display: none; }
.btn--compact { padding: 10px 16px; font-size: 13.5px; }
.btn--pill { border-radius: 999px; padding: 13px 22px; }
.btn--pill.btn--compact { padding: 9px 18px; }
.btn__arrow { transform: translateY(-1px); }

.lead {
  font-size: var(--fs-lead);
  line-height: var(--lh-relaxed);
  color: var(--fg-3);
  max-width: 560px;
}

/* ---- header ---------------------------------------------- */
.site-header {
  position: sticky; top: 0; z-index: 50;
  background: var(--surface-warm);
  transition: box-shadow var(--dur-hover) var(--ease-quiet);
}
.site-header--scrolled { box-shadow: var(--shadow-header); }
.site-header__inner {
  max-width: var(--content-max);
  margin: 0 auto;
  height: var(--header-h);
  padding: 0 clamp(20px, 3vw, var(--space-6));
  display:flex; align-items:center;
  gap: clamp(32px, 4vw, 64px);
}
.brand {
  display:flex; align-items: center; gap: 14px;
  text-decoration: none; color: inherit;
  flex-shrink: 0;
}
.brand__mark {
  width: 32px; height: 32px;
  background: var(--surface-warm);
  border: 1.5px solid var(--ink-navy);
  position: relative; display:flex; align-items:center; justify-content:center;
  font-family: var(--font-display);
  font-size: 16px;
  line-height: 1;
  letter-spacing: -0.3px;
}
.brand__mark::after {
  content:''; position:absolute; left:6px; right:6px; bottom: 6px; height: 1.5px;
  background: var(--accent-oxblood);
}
.brand__mark-c { color: var(--ink-navy); }
.brand__mark-a { color: var(--accent-oxblood); }
.brand__word {
  font-family: var(--font-display);
  font-size: 28px; line-height: 1;
  color: var(--ink-navy);
  letter-spacing: -0.5px;
  display: inline-flex; align-items: baseline;
  font-weight: 400;
}
.brand__word--light { color: var(--fg-on-dark); }
.brand__aml {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: -0.3px;
  font-size: 28px;
  /* Wordmark "AML" — one copper, every surface. Brand rule, not a
     per-surface adjustment. Header (on cream) and Footer (on navy)
     resolve to the same hex so the name reads as one identity. */
  color: var(--accent-oxblood);
}
.brand__word--light .brand__aml { color: var(--accent-oxblood-on-dark); }

.site-nav {
  display:flex; align-items: center;
  gap: clamp(20px, 2.2vw, var(--space-6));
  margin-left: auto;
  flex-wrap: nowrap;
  min-width: 0;
}
.site-nav .btn--pill {
  flex-shrink: 0;
  margin-left: clamp(4px, 0.6vw, 12px);
  white-space: nowrap;
}
.site-nav__link {
  font-family: var(--font-body); font-size: 14px;
  color: var(--ink-navy);
  text-decoration: none;
  letter-spacing: 0.01em;
  position: relative;
  padding: 8px 0;
  transition: color var(--dur-hover) var(--ease-quiet);
}
.site-nav__link:hover { color: var(--accent-oxblood); }
.site-nav__link--active { color: var(--accent-oxblood); }
.site-nav__link--active::after {
  content:''; position:absolute; left:0; right:0; bottom: 0; height: 2px; background: var(--accent-oxblood);
}

/* ---- hero ------------------------------------------------ */
.hero { padding: var(--space-11) var(--space-6) var(--space-10); }
.hero__inner {
  max-width: var(--content-max); margin: 0 auto;
}
.hero__headline {
  font-family: var(--font-display);
  font-weight: 400;
  color: var(--ink-navy);
  font-size: 80px; line-height: 1.04; letter-spacing: -2px;
  margin: 0 0 var(--space-5);
  max-width: 18ch;
}
.hero__headline em { font-style: italic; color: var(--accent-oxblood); font-weight: 400; }
.hero__sub {
  font-size: var(--fs-lead); line-height: var(--lh-relaxed); color: var(--fg-3);
  margin: 0 0 var(--space-6); max-width: 640px;
}
.hero__ctas { display:flex; gap: 12px; flex-wrap: wrap; margin-top: var(--space-5); }

/* ---- proof bar ------------------------------------------- */
.proof-bar {
  background: var(--surface-cream);
  border-top: 1px solid var(--hairline-strong);
  border-bottom: 1px solid var(--hairline-strong);
}
.proof-bar__inner {
  max-width: var(--content-max); margin: 0 auto;
  padding: 75px var(--space-6);
  display:grid; grid-template-columns: 1fr 1fr 1fr; gap: var(--space-7);
}
.stat { display:flex; flex-direction:column; gap: 12px; }
.stat + .stat { border-left: 1px solid var(--hairline-strong); padding-left: var(--space-7); }
.stat__num {
  font-family: var(--font-display); font-weight: 400;
  color: var(--ink-navy); font-size: 56px; line-height: 1.05; letter-spacing: -1.2px;
}
.stat__num--small { font-size: 32px; line-height: 1.15; letter-spacing: -0.4px; }
.stat__plus { color: var(--accent-oxblood); }
.stat__meta { font-family: var(--font-body); font-size: 14px; color: var(--body); line-height: 1.55; max-width: 32ch; }
.proof-bar__token { display: flex; align-items: center; gap: 12px; }
.proof-bar__token .eyebrow { line-height: 1.3; }
/* Trust band — per-component sizing, decoupled from the --space-section
   rhythm (NOT a token change). The band is a TIGHT, compact heritage
   signature nested in a more spacious editorial rhythm:
       band internal (~75px)  <  band external (~115px)  <  section gap (192px)
   Its own rhythm padding is zeroed so internal beige = the inner padding
   alone; external cream = adjacent section padding (96) + 20px margin. */
main > section.proof-bar,
main > article > section.proof-bar {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin-top: 20px;
  margin-bottom: 20px;
}

/* ---- services -------------------------------------------- */
.services { padding: var(--space-11) var(--space-6); max-width: var(--content-max); margin: 0 auto; }
.services__head { margin-bottom: var(--space-8); max-width: 720px; }
.services__title {
  font-family: var(--font-display); font-weight: 400;
  color: var(--ink-navy); font-size: 56px; line-height: 1.1; letter-spacing: -1.2px; margin: 0;
}
.services__title em { font-style: italic; color: var(--accent-oxblood); }
/* When ServiceGrid is rendered as the page hero (Services hub /services),
   the H1 must match the sitewide hero scale, not the section-heading scale. */
.services--hero .services__title { font-size: 80px; line-height: 1.04; letter-spacing: -2px; }
.services__sub { margin: var(--space-5) 0 0; font-size: var(--fs-lead); line-height: 1.6; color: var(--fg-3); max-width: 64ch; }
.services__grid {
  display:grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-4);
}
.services__grid--4 {
  grid-template-columns: repeat(4, 1fr);
}
.services__grid + .services__row-label { margin-top: var(--space-7); }
.services__row-label {
  display: flex; align-items: baseline; gap: var(--space-3);
  margin-bottom: var(--space-4);
  padding-top: var(--space-3);
  border-top: 1px solid var(--hairline);
}
.services__row-num {
  font-family: var(--font-body);
  font-size: 11px; font-weight: 600;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--accent-oxblood);
  line-height: 1;
}
.services__row-name {
  font-family: var(--font-body);
  font-size: 12px; font-weight: 600;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--eyebrow);
  line-height: 1;
}
@media (max-width: 1180px) {
  .services__grid--4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 880px) {
  .services__grid,
  .services__grid--4 { grid-template-columns: 1fr; }
}
.service-card {
  background: var(--surface-paper);
  border: 1px solid var(--hairline);
  padding: var(--space-6) var(--space-6) var(--space-7);
  cursor: pointer;
  transition: border-color var(--dur-hover) var(--ease-quiet);
  display:flex; flex-direction:column; gap: 14px;
  min-height: 240px;
}
.service-card:hover { border-color: var(--ink-navy); }
.service-card__title {
  font-family: var(--font-display); font-weight: 400; color: var(--ink-navy);
  font-size: 24px; line-height: 1.2; letter-spacing: -0.4px; margin: 0;
}
.service-card__body { font-family: var(--font-body); font-size: 14.5px; line-height: 1.6; color: var(--body); margin: 0; }
.service-card__link {
  font-family: var(--font-body); font-size: 13px;
  color: var(--accent-oxblood);
  text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px;
  margin-top: auto;
  display:inline-flex; align-items:center; gap: 6px;
}
.service-card:hover .service-card__link { color: var(--ink-navy); text-decoration-thickness: 2px; }

/* CTA tile variant — visually distinct from service cards: cream
   surface, dashed hairline, no underline on the action label. Same
   typographic system, no new primitives. */
.service-card--cta {
  background: transparent;
  border: 1px dashed var(--hairline-strong);
}
.service-card--cta:hover {
  border-style: solid;
  border-color: var(--ink-navy);
  background: var(--surface-cream);
}
.service-card--cta .eyebrow { color: var(--accent-oxblood); }
.service-card--cta .service-card__title { color: var(--ink-navy); }
.service-card__link--cta {
  color: var(--ink-navy);
  text-decoration: none;
  font-weight: 500;
}
.service-card--cta:hover .service-card__link--cta {
  color: var(--accent-oxblood);
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
}

/* ---- industries ------------------------------------------ */
.industries { background: var(--surface-warm); padding: var(--space-11) var(--space-6); border-top: 1px solid var(--hairline); }
.industries__inner { max-width: var(--content-max); margin: 0 auto; }
.industries__head { margin-bottom: var(--space-8); max-width: 820px; }
.industries__title {
  font-family: var(--font-display); font-weight: 400; color: var(--ink-navy);
  font-size: 48px; line-height: 1.15; letter-spacing: -1px; margin: 0;
}
.industries__title em { font-style: italic; color: var(--accent-oxblood); }
.industries__grid {
  list-style: none; padding: 0; margin: 0;
  display:grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-4);
}
@media (max-width: 1080px) { .industries__grid { grid-template-columns: repeat(2, 1fr); } }
.industry {
  background: var(--surface-paper);
  border: 1px solid var(--hairline);
  padding: var(--space-6);
  display:flex; flex-direction:column; gap: 12px;
  min-height: 200px;
  transition: border-color var(--dur-hover) var(--ease-quiet);
}
.industry:hover { border-color: var(--ink-navy); }
.industry__icon { color: var(--ink-navy); }
.industry__icon svg { width: 26px; height: 26px; stroke-width: 1.5; }
.industry__label {
  font-family: var(--font-display); font-weight: 400; color: var(--ink-navy);
  font-size: 22px; line-height: 1.2; letter-spacing: -0.2px;
  margin-top: auto;
}
.industry__body { font-family: var(--font-body); font-size: 14px; color: var(--body); line-height: 1.55; }

/* ---- deficiency callout ---------------------------------- */
.deficiency {
  background: var(--surface-cream);
  border-top: 2px solid var(--accent-oxblood);
  border-bottom: 1px solid var(--hairline);
  padding: var(--space-10) var(--space-6);
}
.deficiency__inner {
  max-width: var(--content-max); margin: 0 auto;
  display:grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
  gap: var(--space-8);
  align-items: center;
}
.deficiency__title {
  font-family: var(--font-display); font-weight: 400; color: var(--ink-navy);
  font-size: 44px; line-height: 1.12; letter-spacing: -0.8px; margin: 0 0 var(--space-5);
}
.deficiency__title em { font-style: italic; color: var(--accent-oxblood); }
.deficiency__body { font-size: var(--fs-body); line-height: 1.65; color: var(--body); margin: 0; max-width: 56ch; }
.deficiency__action { display:flex; flex-direction:column; gap: 12px; align-items: center; width: fit-content; }
.deficiency__sla {
  font-family: var(--font-body); font-size: 11px; color: var(--eyebrow);
  letter-spacing: 0.12em; text-transform: uppercase; margin: 0;
}

/* ---- testimonials --------------------------------------- */
.testimonials { padding: var(--space-11) var(--space-6); }
.testimonials__inner { max-width: var(--content-max); margin: 0 auto; }
.testimonials__head { margin-bottom: var(--space-8); max-width: 720px; }
.testimonials__title {
  font-family: var(--font-display); font-weight: 400; color: var(--ink-navy);
  font-size: 48px; line-height: 1.12; letter-spacing: -1px; margin: 0;
}
.testimonials__title em { font-style: italic; color: var(--accent-oxblood); }
.testimonials__grid {
  display:grid; grid-template-columns: 1fr 1fr; gap: var(--space-7);
}
@media (max-width: 980px) { .testimonials__grid { grid-template-columns: 1fr; } }
.quote {
  margin: 0;
  border-top: 2px solid var(--accent-oxblood);
  padding: var(--space-6) 0 0;
}
.quote__text {
  /* Restrained testimonial styling — clients' words carry the weight, not the typography.
     Push 2 pull-quote treatment (italic Fraunces 24px) reverted on 2026-05-30 per Omer. */
  font-family: var(--font-body);
  font-style: normal;
  font-weight: 400;
  color: var(--body);
  font-size: var(--fs-body);
  line-height: var(--lh-relaxed);
  letter-spacing: 0;
  margin: 0;
  padding: 0;
  text-indent: 0;
}
.quote__attr-row { display:flex; align-items: center; gap: 14px; margin-top: var(--space-6); }
.quote__rule { width: 28px; height: 2px; background: var(--ink-navy); display:block; flex-shrink: 0; }
.quote__attr {
  font-family: var(--font-body); font-size: 11px; font-weight: 600;
  letter-spacing: 0.16em; text-transform: uppercase; color: var(--eyebrow);
}

/* ---- insights teaser ------------------------------------- */
.insights-teaser { background: var(--surface-paper); border-top: 1px solid var(--hairline); border-bottom: 1px solid var(--hairline); padding: var(--space-11) var(--space-6); }
.insights-teaser__inner { max-width: var(--content-max); margin: 0 auto; }
.insights-teaser__head { margin-bottom: var(--space-8); max-width: 720px; }
.insights-teaser__title {
  font-family: var(--font-display); font-weight: 400; color: var(--ink-navy);
  font-size: 44px; line-height: 1.15; letter-spacing: -0.8px; margin: 0;
}
.insights-teaser__title em { font-style: italic; color: var(--accent-oxblood); }
.insights-teaser__sub { margin: var(--space-5) 0 0; font-size: var(--fs-lead); line-height: 1.6; color: var(--fg-3); }
.insights-teaser__grid {
  display:grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-5);
  margin-top: var(--space-6);
}
@media (max-width: 980px) { .insights-teaser__grid { grid-template-columns: 1fr; } }
.post-card {
  display:flex; flex-direction:column; gap: 12px;
  padding: var(--space-6) 0 var(--space-6);
  border-top: 1px solid var(--hairline-strong);
  text-decoration: none; color: inherit;
  transition: border-color var(--dur-hover) var(--ease-quiet);
}
.post-card:hover { border-top-color: var(--ink-navy); }
.post-card__meta { display:flex; align-items: center; gap: 10px;
  font-family: var(--font-body); font-size: 11px; font-weight: 600;
  letter-spacing: 0.14em; text-transform: uppercase; color: var(--eyebrow);
  white-space: nowrap;
}
.post-card__dot { color: var(--hairline-strong); }
.post-card__title {
  font-family: var(--font-display); font-weight: 400; color: var(--ink-navy);
  font-size: 24px; line-height: 1.2; letter-spacing: -0.3px; margin: 0;
}
.post-card__dek { font-family: var(--font-body); font-size: 14.5px; line-height: 1.55; color: var(--body); margin: 0; }
.post-card__link { font-family: var(--font-body); font-size: 13px; color: var(--accent-oxblood); margin-top: auto; }
.post-card:hover .post-card__link { color: var(--ink-navy); }
.insights-teaser__all {
  display:inline-flex; align-items:center; gap: 8px;
  margin-top: var(--space-7);
  font-family: var(--font-body); font-size: 14px;
  color: var(--ink-navy);
  text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px;
}
.insights-teaser__all:hover { color: var(--accent-oxblood); text-decoration-thickness: 2px; }

/* ---- cta band -------------------------------------------- */
.cta-band { background: var(--ink-navy); color: var(--fg-on-dark); padding: var(--space-11) var(--space-6); }
.cta-band__inner { max-width: var(--content-max); margin: 0 auto; }
.cta-band__head {
  font-family: var(--font-display); font-weight: 400; color: var(--fg-on-dark);
  font-size: 56px; line-height: 1.1; letter-spacing: -1.2px;
  margin: 0 0 var(--space-5); max-width: 22ch;
}
.cta-band__head em { font-style: italic; color: var(--accent-oxblood-on-dark); }
.cta-band__sub { color: rgba(247, 244, 238, 0.78); font-size: 17px; line-height: 1.65; max-width: 640px; margin: 0 0 var(--space-6); }
.cta-band__row { display:flex; gap: 14px; flex-wrap: wrap; align-items: center; }

/* ---- footer ---------------------------------------------- */
.site-footer { background: var(--ink-navy); color: var(--fg-on-dark); }
.site-footer__inner {
  max-width: var(--content-max); margin: 0 auto; padding: var(--space-9) var(--space-6) var(--space-7);
  display:grid; grid-template-columns: 1.6fr 1.1fr 1.1fr 0.9fr 0.9fr 0.9fr; gap: var(--space-6);
}
.site-footer__brand { display:flex; flex-direction:column; gap: 12px; }
.site-footer__contact {
  font-family: var(--font-body);
  font-size: 14px;
  color: var(--accent-oxblood-on-dark);
  text-decoration: none;
  margin: 12px 0 0;
  align-self: flex-start;
  transition: text-decoration-thickness var(--dur-hover) var(--ease-quiet);
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}
.site-footer__contact:hover {
  color: var(--accent-oxblood-on-dark);
  text-decoration: underline;
  text-decoration-color: var(--accent-oxblood-on-dark);
}
.site-footer__tagline {
  font-family: var(--font-display); font-style: italic; font-weight: 400;
  font-size: 18px; color: var(--fg-on-dark); margin: 8px 0 0; max-width: 32ch; line-height: 1.4;
}
.site-footer__col { display:flex; flex-direction:column; gap: 14px; }
.site-footer__links { list-style: none; padding: 0; margin: 0; display:flex; flex-direction:column; gap: 10px; }
.site-footer__links a {
  font-family: var(--font-body); font-size: 14px;
  color: var(--fg-on-dark);
  text-decoration: none;
  transition: color var(--dur-hover) var(--ease-quiet);
}
.site-footer__links a:hover { color: var(--accent-oxblood-on-dark); }

.site-footer__credentials-row {
  max-width: var(--content-max); margin: 0 auto;
  padding: var(--space-5) var(--space-6) 0;
  border-top: 2px solid var(--accent-oxblood-on-dark);
}
.site-footer__credentials {
  font-family: var(--font-body); font-size: 11px; font-weight: 600;
  letter-spacing: 0.22em; text-transform: uppercase;
  color: rgba(247, 244, 238, 0.78);
}
.site-footer__credentials .sep { color: rgba(247, 244, 238, 0.4); margin: 0 8px; }
.site-footer__strip {
  max-width: var(--content-max); margin: 0 auto;
  padding: var(--space-6) var(--space-6) var(--space-6);
}
/* Brand wordmark utility — preserves mixed-case "CanadaAML" inside
   uppercase-transformed contexts (e.g. footer copy row). */
.brand-mixed { text-transform: none; letter-spacing: -0.01em; }

.site-footer__copy {
  font-family: var(--font-body); font-size: 11px;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: rgba(247, 244, 238, 0.5);
}
.site-footer__copy .sep { color: rgba(247, 244, 238, 0.3); margin: 0 10px; }

/* ============================================================
   SERVICE DETAIL PAGE
   Prop-driven sections shared across all six service routes.
   ============================================================ */

/* ---- service hero --------------------------------------- */
.svc-hero { padding: var(--space-10) var(--space-6) var(--space-9); }
.svc-hero__inner { max-width: var(--content-max); margin: 0 auto; }
.svc-hero__headline {
  font-family: var(--font-display);
  font-weight: 400;
  color: var(--ink-navy);
  font-size: 80px; line-height: 1.04; letter-spacing: -2px;
  margin: 0 0 var(--space-5);
  max-width: 22ch;
  text-wrap: pretty;
}
.svc-hero__headline em { font-style: italic; color: var(--accent-oxblood); font-weight: 400; }
.svc-hero__sub {
  font-size: var(--fs-lead); line-height: var(--lh-relaxed); color: var(--fg-3);
  margin: 0 0 var(--space-6); max-width: 640px;
}
.svc-hero__ctas {
  display: flex; gap: var(--space-3); flex-wrap: wrap;
  align-items: center;
  margin-top: var(--space-5);
}

/* ---- quick facts band ----------------------------------- */
.quick-facts {
  border-top: 1px solid var(--hairline-strong);
  border-bottom: 1px solid var(--hairline-strong);
}

/* Offices variant — three city cards, even-gap grid. Drops the
   per-cell border-left + padding-left from the generic 4-col facts
   layout so all three columns sit with identical column-gap. */
.quick-facts--offices .quick-facts__inner {
  grid-template-columns: repeat(3, 1fr);
  column-gap: var(--space-6);
}
.quick-facts--offices .quick-facts__col + .quick-facts__col {
  border-left: 0;
  padding-left: 0;
}
@media (max-width: 880px) {
  .quick-facts--offices .quick-facts__inner { grid-template-columns: 1fr; column-gap: 0; }
}
.quick-facts__inner {
  max-width: var(--content-max); margin: 0 auto;
  padding: var(--space-7) var(--space-6);
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: var(--space-6);
}
.quick-facts__col { display: flex; flex-direction: column; gap: 12px; }
.quick-facts__col + .quick-facts__col {
  border-left: 1px solid var(--hairline);
  padding-left: var(--space-6);
}
.quick-facts__label {
  font-family: var(--font-body);
  font-size: 11px; font-weight: 600;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--eyebrow); line-height: 1;
}
.quick-facts__value {
  font-family: var(--font-display); font-weight: 400;
  color: var(--ink-navy);
  font-size: 22px; line-height: 1.25; letter-spacing: -0.3px;
  max-width: 26ch;
}
@media (max-width: 880px) {
  .quick-facts__inner { grid-template-columns: 1fr 1fr; }
  .quick-facts__col + .quick-facts__col:nth-child(3) { border-left: 0; padding-left: 0; }
}
@media (max-width: 540px) {
  .quick-facts__inner { grid-template-columns: 1fr; }
  .quick-facts__col + .quick-facts__col { border-left: 0; padding-left: 0; padding-top: var(--space-5); border-top: 1px solid var(--hairline); }
}

/* ---- who this is for ------------------------------------ */
.who-for { padding: var(--space-10) var(--space-6); }
.who-for__inner { max-width: var(--content-max); margin: 0 auto; }
.who-for__head { margin-bottom: var(--space-7); max-width: 720px; }
.who-for__title {
  font-family: var(--font-display); font-weight: 400; color: var(--ink-navy);
  font-size: 44px; line-height: 1.12; letter-spacing: -0.8px; margin: 0;
}
.who-for__grid {
  list-style: none; padding: 0; margin: 0;
  display: grid; grid-template-columns: 1fr 1fr;
  column-gap: var(--space-7); row-gap: var(--space-6);
}
@media (max-width: 880px) {
  .who-for__grid { grid-template-columns: 1fr; }
}
.who-for__item {
  display: grid; grid-template-columns: 44px 1fr; gap: var(--space-4);
  padding: var(--space-5) 0 0;
  border-top: 1px solid var(--hairline-strong);
}
.who-for__icon { color: var(--accent-oxblood); }
.who-for__icon svg { width: 24px; height: 24px; stroke-width: 1.5; }
.who-for__label {
  font-family: var(--font-display); font-weight: 400; color: var(--ink-navy);
  font-size: 20px; line-height: 1.3; letter-spacing: -0.2px;
  margin: 0 0 8px;
}
.who-for__body {
  font-family: var(--font-body); font-size: 14.5px; line-height: 1.6;
  color: var(--body); margin: 0; max-width: 52ch;
}

/* ---- what you get --------------------------------------- */
.what-get { padding: var(--space-10) var(--space-6); background: var(--surface-paper); border-top: 1px solid var(--hairline); border-bottom: 1px solid var(--hairline); }
.what-get__inner { max-width: var(--content-max); margin: 0 auto; }
.what-get__head { margin-bottom: var(--space-7); max-width: 720px; }
.what-get__sub {
  margin: var(--space-4) 0 0;
  font-size: var(--fs-lead); line-height: var(--lh-relaxed); color: var(--fg-3);
  max-width: 60ch;
}
.what-get__title {
  font-family: var(--font-display); font-weight: 400; color: var(--ink-navy);
  font-size: 44px; line-height: 1.12; letter-spacing: -0.8px; margin: 0;
}
.what-get__list {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column;
}
.what-get__row {
  display: grid; grid-template-columns: 80px minmax(0, 1fr);
  gap: var(--space-6);
  padding: var(--space-6) 0;
  border-top: 1px solid var(--hairline-strong);
}
.what-get__row:last-child { border-bottom: 1px solid var(--hairline-strong); }
.what-get__num {
  font-family: var(--font-display); font-weight: 400;
  color: var(--accent-oxblood);
  font-size: 22px; line-height: 1.1; letter-spacing: -0.2px;
  padding-top: 4px;
}
.what-get__label {
  font-family: var(--font-display); font-weight: 400; color: var(--ink-navy);
  font-size: 26px; line-height: 1.2; letter-spacing: -0.3px;
  margin: 0 0 10px;
}
.what-get__body {
  font-family: var(--font-body); font-size: 15.5px; line-height: 1.65;
  color: var(--body); margin: 0; max-width: 68ch;
}
/* Sub-components of a single deliverable (e.g. the five parts of the
   independent-review report). Rendered as a labelled list beneath the
   row body — same type system, no new primitives. */
.what-get__parts {
  list-style: none; margin: var(--space-5) 0 0; padding: 0;
  display: flex; flex-direction: column;
  max-width: 68ch;
}
.what-get__part {
  display: grid; grid-template-columns: 200px minmax(0, 1fr);
  gap: var(--space-5);
  padding: 14px 0;
  border-top: 1px solid var(--hairline);
}
.what-get__part:first-child { border-top: 0; padding-top: 0; }
.what-get__part-k {
  font-family: var(--font-body); font-weight: 600;
  font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--accent-oxblood);
  padding-top: 3px;
}
.what-get__part-v {
  font-family: var(--font-body); font-size: 15px; line-height: 1.6;
  color: var(--body);
}
@media (max-width: 720px) {
  .what-get__row { grid-template-columns: 1fr; gap: var(--space-3); }
  .what-get__part { grid-template-columns: 1fr; gap: 4px; }
  .what-get__part:first-child { border-top: 0; }
}

/* ---- engagement modes (3-card; Outsourced AML Functions) ---- */
.eng-modes { padding: var(--space-10) var(--space-6); }
.eng-modes__inner { max-width: var(--content-max); margin: 0 auto; }
.eng-modes__head { margin-bottom: var(--space-7); max-width: 720px; }
.eng-modes__title {
  font-family: var(--font-display); font-weight: 400; color: var(--ink-navy);
  font-size: 44px; line-height: 1.12; letter-spacing: -0.8px; margin: 0;
}
.eng-modes__grid {
  list-style: none; padding: 0; margin: 0;
  display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-5);
}
.eng-mode {
  background: var(--surface-paper);
  border: 1px solid var(--hairline);
  border-top: 2px solid var(--accent-oxblood);
  padding: var(--space-6);
  display: flex; flex-direction: column; gap: 12px;
}
.eng-mode__num {
  font-family: var(--font-display); font-weight: 400; color: var(--hairline-strong);
  font-size: 22px; line-height: 1; letter-spacing: 0.04em;
}
.eng-mode__tag { color: var(--accent-oxblood); }
.eng-mode__label {
  font-family: var(--font-display); font-weight: 400; color: var(--ink-navy);
  font-size: 24px; line-height: 1.2; letter-spacing: -0.3px; margin: 4px 0 0;
}
.eng-mode__body {
  font-family: var(--font-body); font-size: 15px; line-height: 1.6; color: var(--body); margin: 0;
}
.eng-modes__note {
  margin: var(--space-6) 0 0;
  font-family: var(--font-body); font-size: 14.5px; line-height: 1.6;
  color: var(--fg-3); max-width: 72ch;
  padding-top: var(--space-5); border-top: 1px solid var(--hairline);
}
@media (max-width: 880px) {
  .eng-modes__grid { grid-template-columns: 1fr; }
}

/* ---- our approach (timeline) ---------------------------- */
.approach { padding: var(--space-10) var(--space-6); }
.approach__inner { max-width: var(--content-max); margin: 0 auto; }
.approach__head { margin-bottom: var(--space-8); max-width: 720px; }
.approach__title {
  font-family: var(--font-display); font-weight: 400; color: var(--ink-navy);
  font-size: 44px; line-height: 1.12; letter-spacing: -0.8px; margin: 0;
}
.approach__timeline {
  list-style: none; padding: 0; margin: 0;
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: var(--space-5);
  position: relative;
}
/* Horizontal hairline running through the dots on desktop */
.approach__timeline::before {
  content: '';
  position: absolute; left: 0; right: 0; top: 12px;
  height: 1px; background: var(--hairline-strong);
}
.approach__step {
  position: relative;
  padding-top: 36px;
  display: flex; flex-direction: column; gap: 10px;
}
.approach__marker {
  position: absolute; top: 0; left: 0;
  width: 24px; height: 24px;
  background: var(--surface-warm);
  display: flex; align-items: center; justify-content: center;
}
.approach__dot {
  display: block; width: 10px; height: 10px;
  background: var(--accent-oxblood);
  border-radius: 50%;
}
.approach__step-head {
  font-family: var(--font-display); font-weight: 400; color: var(--ink-navy);
  font-size: 22px; line-height: 1.25; letter-spacing: -0.25px;
  margin: 0;
  display: flex; flex-wrap: wrap; gap: 8px;
}
.approach__week { color: var(--accent-oxblood); }
.approach__sep   { color: var(--hairline-strong); }
.approach__label { color: var(--ink-navy); }
.approach__body {
  font-family: var(--font-body); font-size: 14.5px; line-height: 1.6;
  color: var(--body); margin: 0; max-width: 36ch;
}
@media (max-width: 980px) {
  .approach__timeline { grid-template-columns: 1fr; gap: 0; }
  .approach__timeline::before { display: none; }
  .approach__step {
    padding: var(--space-5) 0 var(--space-5) 40px;
    border-top: 1px solid var(--hairline-strong);
  }
  .approach__step:last-child { border-bottom: 1px solid var(--hairline-strong); }
  .approach__marker { top: var(--space-5); }
  .approach__body { max-width: 60ch; }
}

/* ---- what we test --------------------------------------- */
.whats-covered { padding: var(--space-10) var(--space-6); background: var(--surface-cream); }
.whats-covered__inner { max-width: var(--content-max); margin: 0 auto; }
.whats-covered__head { margin-bottom: var(--space-7); max-width: 720px; }
.whats-covered__title {
  font-family: var(--font-display); font-weight: 400; color: var(--ink-navy);
  font-size: 44px; line-height: 1.12; letter-spacing: -0.8px; margin: 0;
}
.whats-covered__sub {
  margin: var(--space-4) 0 0;
  font-size: var(--fs-lead); line-height: var(--lh-relaxed); color: var(--fg-3);
  max-width: 60ch;
}
.whats-covered__list {
  list-style: none; padding: 0; margin: 0;
  display: grid; grid-template-columns: 1fr 1fr;
  column-gap: var(--space-7);
}
@media (max-width: 880px) {
  .whats-covered__list { grid-template-columns: 1fr; }
}
.whats-covered__item {
  display: grid; grid-template-columns: 56px 1fr;
  align-items: baseline;
  gap: var(--space-4);
  padding: var(--space-5) 0;
  border-top: 1px solid var(--hairline-strong);
}
.whats-covered__list > .whats-covered__item:nth-last-child(1),
.whats-covered__list > .whats-covered__item:nth-last-child(2):nth-child(odd) {
  border-bottom: 1px solid var(--hairline-strong);
}
@media (max-width: 880px) {
  .whats-covered__list > .whats-covered__item:last-child { border-bottom: 1px solid var(--hairline-strong); }
}
.whats-covered__num {
  font-family: var(--font-body);
  font-size: 11px; font-weight: 600;
  letter-spacing: 0.18em; color: var(--accent-oxblood);
}
.whats-covered__pillar {
  font-family: var(--font-display); font-weight: 400; color: var(--ink-navy);
  font-size: 22px; line-height: 1.3; letter-spacing: -0.25px;
}

/* ---- proof block ---------------------------------------- */
.proof-block { padding: var(--space-10) var(--space-6); }
.proof-block__inner { max-width: var(--content-max); margin: 0 auto; }
.proof-block__head { margin-bottom: var(--space-8); max-width: 760px; }
.proof-block__title {
  font-family: var(--font-display); font-weight: 400; color: var(--ink-navy);
  font-size: 56px; line-height: 1.08; letter-spacing: -1.2px; margin: 0 0 var(--space-4);
}
.proof-block__sub {
  font-family: var(--font-body);
  font-size: var(--fs-lead); line-height: var(--lh-relaxed);
  color: var(--fg-3);
  margin: 0; max-width: 60ch;
}
.proof-block__grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-7);
}
@media (max-width: 980px) { .proof-block__grid { grid-template-columns: 1fr; } }

/* ---- FAQ accordion -------------------------------------- */
.faq { padding: var(--space-10) var(--space-6); background: var(--surface-paper); border-top: 1px solid var(--hairline); border-bottom: 1px solid var(--hairline); }
.faq__inner { max-width: var(--content-max); margin: 0 auto; }
.faq__head { margin-bottom: var(--space-7); max-width: 720px; }
.faq__title {
  font-family: var(--font-display); font-weight: 400; color: var(--ink-navy);
  font-size: 44px; line-height: 1.12; letter-spacing: -0.8px; margin: 0;
}
.faq__list {
  list-style: none; padding: 0; margin: 0;
  max-width: 960px;
}
.faq__item {
  border-top: 1px solid var(--hairline-strong);
}
.faq__item:last-child { border-bottom: 1px solid var(--hairline-strong); }
.faq__q {
  background: transparent; border: 0; cursor: pointer;
  width: 100%;
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--space-5);
  padding: var(--space-5) 0;
  text-align: left;
  font-family: var(--font-display); font-weight: 400;
  color: var(--ink-navy);
  font-size: 22px; line-height: 1.3; letter-spacing: -0.2px;
  transition: color var(--dur-hover) var(--ease-quiet);
}
.faq__q:hover { color: var(--accent-oxblood); }
.faq__q-text { flex: 1; padding-right: var(--space-3); }
.faq__q-toggle {
  font-family: var(--font-body);
  font-size: 22px; font-weight: 400;
  color: var(--accent-oxblood);
  line-height: 1; width: 24px; text-align: center;
  flex-shrink: 0;
}
.faq__item--open .faq__q-toggle { color: var(--ink-navy); }
.faq__a {
  padding: 0 0 var(--space-6);
  max-width: 72ch;
}
.faq__a p {
  font-family: var(--font-body);
  font-size: 16px; line-height: 1.7; color: var(--body);
  margin: 0;
}

/* ---- final CTA band (extends homepage cta-band) --------- */
.cta-band--final .cta-band__head { max-width: 26ch; }

/* ---- page header (sub-pages) ----------------------------- */
.page-header { padding: var(--space-10) var(--space-6) var(--space-9); }
.page-header__inner { max-width: var(--content-max); margin: 0 auto; }
.page-header__title {
  font-family: var(--font-display); font-weight: 400; color: var(--ink-navy);
  font-size: 80px; line-height: 1.04; letter-spacing: -2px; margin: 0;
  max-width: 14ch;
}
.page-header__title em { font-style: italic; color: var(--accent-oxblood); }
.page-header__sub {
  font-size: var(--fs-lead); line-height: var(--lh-relaxed); color: var(--fg-3);
  max-width: 640px; margin: var(--space-5) 0 0;
}

/* ============================================================
   Industry pages
   ============================================================ */

/* ---- visually hidden helper ----------------------------- */
.visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

/* ---- industry hero (extends .svc-hero) ----------------- */
.industry-hero__tagline {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 400;
  color: var(--accent-oxblood);
  font-size: 24px;
  line-height: 1.3;
  letter-spacing: -0.2px;
  margin: 0 0 var(--space-5);
  max-width: 720px;
}
.industry-hero__dek { max-width: 720px; }

/* ---- why AML here (prose + citable claim) -------------- */
.why-aml {
  padding: var(--space-10) var(--space-6);
  background: var(--surface-warm);
  border-top: 1px solid var(--hairline);
  border-bottom: 1px solid var(--hairline);
}
.why-aml__inner {
  max-width: var(--content-max);
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
  gap: var(--space-8);
  align-items: start;
}
@media (max-width: 980px) {
  .why-aml__inner { grid-template-columns: 1fr; gap: var(--space-6); }
}
.why-aml__title {
  font-family: var(--font-display); font-weight: 400; color: var(--ink-navy);
  font-size: 44px; line-height: 1.12; letter-spacing: -0.8px;
  margin: 0 0 var(--space-5);
  max-width: 22ch;
}
.why-aml__body {
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.7;
  color: var(--body);
  max-width: 64ch;
  margin: 0 0 var(--space-4);
}
.why-aml__body:last-child { margin-bottom: 0; }
.why-aml__cite {
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}
.why-aml__cite-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: var(--font-body);
  font-size: 12px; font-weight: 600;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--eyebrow);
  line-height: 1;
}
.why-aml__cite-eyebrow::before {
  content: '';
  display: inline-block;
  width: 28px;
  height: 2px;
  background: var(--accent-oxblood);
  flex-shrink: 0;
}
.why-aml__cite-quote {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 400;
  color: var(--ink-navy);
  font-size: 22px;
  line-height: 1.4;
  letter-spacing: -0.2px;
  margin: 0;
  text-wrap: pretty;
}
.why-aml__cite-attr {
  font-family: var(--font-body);
  font-size: 12px; font-weight: 600;
  letter-spacing: 0.01em;
  color: var(--eyebrow);
  line-height: 1.3;
}

/* ---- relevant services (3-up cards) -------------------- */
.relevant-services {
  padding: var(--space-10) var(--space-6);
  background: var(--surface-paper);
  border-top: 1px solid var(--hairline);
  border-bottom: 1px solid var(--hairline);
}
.relevant-services__inner { max-width: var(--content-max); margin: 0 auto; }
.relevant-services__head { margin-bottom: var(--space-7); max-width: 720px; }
.relevant-services__title {
  font-family: var(--font-display); font-weight: 400; color: var(--ink-navy);
  font-size: 40px; line-height: 1.15; letter-spacing: -0.6px; margin: 0;
}
.relevant-services__sub {
  margin: var(--space-4) 0 0;
  font-size: var(--fs-lead);
  line-height: 1.6;
  color: var(--fg-3);
  max-width: 64ch;
}
.relevant-services__grid {
  list-style: none; padding: 0; margin: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-4);
}
@media (max-width: 980px) {
  .relevant-services__grid { grid-template-columns: 1fr; }
}
.relevant-services__item { display: flex; }
.rel-service-card {
  background: var(--surface-warm);
  border: 1px solid var(--hairline);
  padding: var(--space-5);
  display: flex; flex-direction: column; gap: var(--space-3);
  min-height: 240px;
  text-decoration: none;
  color: inherit;
  width: 100%;
  transition: border-color var(--dur-hover) var(--ease-quiet),
              background var(--dur-hover) var(--ease-quiet);
}
.rel-service-card:hover {
  border-color: var(--ink-navy);
  background: var(--surface-cream);
  text-decoration: none;
}
.rel-service-card__title {
  font-family: var(--font-display); font-weight: 400; color: var(--ink-navy);
  font-size: 24px; line-height: 1.2; letter-spacing: -0.4px; margin: 0;
}
.rel-service-card__body {
  font-family: var(--font-body);
  font-size: 14.5px; line-height: 1.6;
  color: var(--body);
  margin: 0;
}
.rel-service-card__link {
  font-family: var(--font-body); font-size: 13px;
  color: var(--accent-oxblood);
  text-decoration: underline; text-decoration-thickness: 1px;
  text-underline-offset: 4px;
  margin-top: auto;
  display: inline-flex; align-items: center; gap: 6px;
}
.rel-service-card:hover .rel-service-card__link {
  color: var(--ink-navy);
  text-decoration-thickness: 2px;
}

/* ============================================================
   Industries hub (/industries)
   ============================================================ */
.ihub-hero { padding: var(--space-10) var(--space-6) var(--space-7); }
.ihub-hero__inner { max-width: var(--content-max); margin: 0 auto; }
.ihub-hero__h1 {
  font-family: var(--font-display); font-weight: 400; color: var(--ink-navy);
  font-size: 80px; line-height: 1.04; letter-spacing: -2px; margin: 0;
  max-width: 14ch;
}
/* Industries hub sub-header — match .hero__sub typography
   (Inter sans-serif body font, lead size, lighter color) so all
   hero sub-headers are typographically consistent across pages. */
.ihub-hero__h2 {
  font-family: var(--font-body); font-weight: 400; color: var(--fg-3);
  font-size: var(--fs-lead); line-height: var(--lh-relaxed); letter-spacing: 0;
  margin: var(--space-5) 0 0;
  max-width: 640px;
}
.ihub-hero__h2 em { font-style: italic; color: var(--accent-oxblood); }

.ihub-cite {
  /* Normalized to a standard section transition: no band bg / borders,
     no extra inner padding. Spacing now resolves entirely from the
     --space-section rhythm (96px each side desktop → 192px gaps),
     identical to the homepage CITABLE. Typography/attribution unchanged. */
  background: transparent;
}
.ihub-cite__inner {
  max-width: var(--content-max); margin: 0 auto;
  padding: 0 var(--space-6);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  align-items: flex-start;
}
.ihub-cite__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: var(--font-body);
  font-size: 12px; font-weight: 600;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--eyebrow);
  line-height: 1;
}
.ihub-cite__eyebrow::before {
  content: '';
  display: inline-block;
  width: 28px;
  height: 2px;
  background: var(--accent-oxblood);
  flex-shrink: 0;
}
.ihub-cite__quote {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 400;
  color: var(--ink-navy);
  font-size: 24px;
  line-height: 1.4;
  letter-spacing: -0.2px;
  margin: 0;
  max-width: 64ch;
  text-wrap: pretty;
}
.ihub-cite__attr {
  font-family: var(--font-body);
  font-size: 12px; font-weight: 600;
  letter-spacing: 0.01em;
  color: var(--eyebrow);
  line-height: 1.3;
  white-space: nowrap;
}

.ihub-grid { padding: var(--space-10) var(--space-6); background: var(--surface-warm); }
.ihub-grid__inner { max-width: var(--content-max); margin: 0 auto; }
.ihub-grid__list {
  list-style: none; padding: 0; margin: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-4);
}
@media (max-width: 1080px) { .ihub-grid__list { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 720px)  { .ihub-grid__list { grid-template-columns: 1fr; } }

.ihub-card { display: flex; }
.ihub-card__link {
  background: var(--surface-paper);
  border: 1px solid var(--hairline);
  padding: var(--space-5);
  display: flex; flex-direction: column; gap: var(--space-3);
  text-decoration: none;
  color: inherit;
  width: 100%;
  min-height: 280px;
  position: relative;
  transition: border-color var(--dur-hover) var(--ease-quiet),
              background var(--dur-hover) var(--ease-quiet);
}
.ihub-card__link:hover {
  border-color: var(--ink-navy);
  background: var(--surface-cream);
  text-decoration: none;
}
.ihub-card__icon { color: var(--accent-oxblood); }
.ihub-card__icon svg { width: 28px; height: 28px; stroke-width: 1.5; }
.ihub-card__num {
  position: absolute;
  top: var(--space-5); right: var(--space-5);
  font-family: var(--font-display);
  font-weight: 400;
  color: var(--hairline-strong);
  font-size: 14px;
  letter-spacing: 0.05em;
}
.ihub-card__title {
  font-family: var(--font-display); font-weight: 400; color: var(--ink-navy);
  font-size: 26px; line-height: 1.18; letter-spacing: -0.4px; margin: 0;
  max-width: 18ch;
}
.ihub-card__body {
  font-family: var(--font-body);
  font-size: 14.5px; line-height: 1.6;
  color: var(--body); margin: 0; max-width: 38ch;
}
.ihub-card__cta {
  font-family: var(--font-body); font-size: 13px;
  color: var(--accent-oxblood);
  text-decoration: underline; text-decoration-thickness: 1px;
  text-underline-offset: 4px;
  margin-top: auto;
  display: inline-flex; align-items: center; gap: 6px;
}
.ihub-card__link:hover .ihub-card__cta {
  color: var(--ink-navy);
  text-decoration-thickness: 2px;
}


/* ---- article cards (insights index) ----------------------- */
/* The /insights index page reuses the .post-card surface and
   layers a small set of additions: a category tag (oxblood,
   small caps), a non-link "Coming soon" status indicator, and
   an inert posture for unpublished entries (no hover lift). */
.article-card { padding-bottom: var(--space-7); }
.article-card.article-card--unpublished { cursor: default; }
.article-card.article-card--unpublished:hover { border-top-color: var(--hairline-strong); }
.article-card__tag {
  display: inline-block;
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent-oxblood);
}
.article-card__status {
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--fg-3);
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.article-card__status::before {
  content: '';
  width: 6px; height: 6px;
  background: var(--accent-oxblood);
  display: inline-block;
}

/* Two-row variant (6 cards) — keep the 3-col rhythm of
   .insights-teaser__grid; this hook is for future tuning. */
.insights-teaser__grid--two-row { row-gap: var(--space-6); }


/* ============================================================
   RESPONSIVE TREATMENT — publication-readiness fix.
   Activates on real devices (viewport meta = device-width).
   Breakpoints: tablet (≤900px) and mobile (≤640px).
   ============================================================ */

/* Prevent any stray horizontal scroll from sub-pixel overflow.
   Use `clip` (not `hidden`) so we don't establish a scroll container
   on html/body — which would break position: sticky on the header. */
html, body { overflow-x: clip; max-width: 100%; }
img, svg, video { max-width: 100%; height: auto; }

/* Hamburger button — hidden on desktop, revealed on tablet */
.site-header__hamburger {
  display: none;
  background: transparent;
  border: 1px solid var(--ink-navy);
  width: 44px; height: 44px;
  padding: 0;
  align-items: center; justify-content: center;
  flex-direction: column;
  gap: 4px;
  cursor: pointer;
  border-radius: var(--radius-1);
  transition: border-color var(--dur-hover) var(--ease-quiet);
}
.site-header__hamburger:hover { border-color: var(--accent-oxblood); }
.site-header__hamburger-bar {
  display: block;
  width: 18px; height: 1.5px;
  background: var(--ink-navy);
  transition: transform var(--dur-hover) var(--ease-quiet),
              opacity var(--dur-hover) var(--ease-quiet);
}
.site-header--nav-open .site-header__hamburger-bar:nth-child(1) { transform: translateY(5.5px) rotate(45deg); }
.site-header--nav-open .site-header__hamburger-bar:nth-child(2) { opacity: 0; }
.site-header--nav-open .site-header__hamburger-bar:nth-child(3) { transform: translateY(-5.5px) rotate(-45deg); }
.site-header__nav-scrim {
  position: fixed;
  top: var(--header-h);
  left: 0; right: 0; bottom: 0;
  background: rgba(15, 42, 68, 0.35);
  z-index: 40;
}

/* -------------------- Tablet (≤900px) -------------------- */
@media (max-width: 900px) {
  /* Header: show hamburger, collapse nav to slide-down panel */
  .site-header__inner { gap: var(--space-3); padding: 0 var(--space-5); }
  .brand { margin-right: auto; }
  .brand__word, .brand__aml { font-size: 22px; }

  .site-header__hamburger { display: inline-flex; order: 3; }

  .site-nav {
    position: fixed;
    top: var(--header-h);
    left: 0; right: 0;
    background: var(--surface-warm);
    border-top: 1px solid var(--hairline-strong);
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: var(--space-3) var(--space-5) var(--space-6);
    margin-left: 0;
    transform: translateY(-110%);
    opacity: 0;
    pointer-events: none;
    transition: transform 280ms var(--ease-quiet),
                opacity 200ms var(--ease-quiet);
    z-index: 45;
    max-height: calc(100vh - var(--header-h));
    overflow-y: auto;
    order: 4;
  }
  .site-nav--open {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
    box-shadow: 0 12px 24px rgba(15, 42, 68, 0.10);
  }
  .site-nav__link {
    padding: 18px 4px;
    font-size: 16px;
    border-bottom: 1px solid var(--hairline);
  }
  .site-nav__link--active::after { display: none; }
  .site-nav__link--active { border-bottom-color: var(--accent-oxblood); }
  .site-nav__cta { margin-top: var(--space-4); justify-content: center; }

  /* Hero typography */
  .hero { padding: var(--space-9) var(--space-5) var(--space-8); }
  .hero__headline { font-size: 56px; letter-spacing: -1.4px; max-width: 22ch; }
  .hero__sub { font-size: 18px; }

  /* Service / industry / page / industries-hub heros */
  .svc-hero { padding: var(--space-8) var(--space-5) var(--space-7); }
  .svc-hero__headline { font-size: 56px; letter-spacing: -1.4px; }
  .page-header { padding: var(--space-8) var(--space-5) var(--space-7); }
  .page-header__title { font-size: 56px; letter-spacing: -1.4px; }
  .ihub-hero { padding: var(--space-8) var(--space-5) var(--space-6); }
  .ihub-hero__h1 { font-size: 56px; letter-spacing: -1.4px; }

  /* Major H2-level section titles */
  .services { padding: var(--space-9) var(--space-5); }
  .services__title { font-size: 40px; letter-spacing: -0.8px; }
  .services--hero .services__title { font-size: 56px; letter-spacing: -1.4px; }
  .industries { padding: var(--space-9) var(--space-5); }
  .industries__title { font-size: 40px; letter-spacing: -0.7px; }
  .deficiency__title,
  .who-for__title,
  .what-get__title,
  .approach__title,
  .whats-covered__title,
  .testimonials__title,
  .insights-teaser__title,
  .why-aml__title,
  .relevant-services__title {
    font-size: 36px; letter-spacing: -0.6px;
  }
  .cta-band__head { font-size: 44px; letter-spacing: -0.8px; }
  .cta-band__sub { font-size: 16px; }

  /* Section padding tighter */
  .who-for, .what-get, .approach, .whats-covered, .proof-block,
  .why-aml, .ihub-grid, .ihub-cite, .relevant-services,
  .deficiency { padding-top: var(--space-8); padding-bottom: var(--space-8); padding-left: var(--space-5); padding-right: var(--space-5); }
  .testimonials { padding: var(--space-8) var(--space-5); }
  .insights-teaser { padding: var(--space-8) var(--space-5); }
  .cta-band { padding: var(--space-9) var(--space-5); }

  /* Proof bar — stack 3 cols to 1 */
  .proof-bar__inner {
    grid-template-columns: 1fr;
    padding: var(--space-6) var(--space-5);
    gap: var(--space-5);
  }
  .stat + .stat { border-left: 0; padding-left: 0; border-top: 1px solid var(--hairline-strong); padding-top: var(--space-5); }
  .stat__num { font-size: 44px; }

  /* Homepage industries grid — keep 2-col on tablet */
  .industries__grid { grid-template-columns: repeat(2, 1fr); }

  /* Deficiency callout — stack the 2-col grid */
  .deficiency__inner { grid-template-columns: 1fr; gap: var(--space-6); }

  /* Footer: 6-col → 2-col grid; brand column spans full width */
  .site-footer__inner {
    grid-template-columns: 1fr 1fr;
    padding: var(--space-8) var(--space-5) var(--space-6);
    gap: var(--space-6);
  }
  .site-footer__brand { grid-column: 1 / -1; }
  .site-footer__strip { padding-left: var(--space-5); padding-right: var(--space-5); }
}

/* -------------------- Mobile (≤640px) -------------------- */
@media (max-width: 640px) {
  /* Shorter header on mobile */
  :root { --header-h: 64px; }
  .site-header__inner { padding: 0 var(--space-4); }
  .brand__word, .brand__aml { font-size: 20px; }
  .site-header__hamburger { width: 40px; height: 40px; }
  .site-header__hamburger-bar { width: 16px; }

  /* Hero typography */
  .hero { padding: var(--space-8) var(--space-4) var(--space-7); }
  .hero__headline { font-size: 40px; letter-spacing: -0.9px; max-width: 20ch; }
  .hero__sub { font-size: 17px; }
  .hero__ctas { flex-direction: column; align-items: stretch; }
  .hero__ctas .btn { width: 100%; justify-content: center; }

  .svc-hero { padding: var(--space-7) var(--space-4) var(--space-6); }
  .svc-hero__headline { font-size: 40px; letter-spacing: -0.9px; }
  .svc-hero__sub { font-size: 17px; }
  .svc-hero__ctas { flex-direction: column; align-items: stretch; }
  .svc-hero__ctas .btn { width: 100%; justify-content: center; }

  .page-header { padding: var(--space-7) var(--space-4) var(--space-6); }
  .page-header__title { font-size: 40px; letter-spacing: -0.9px; }
  .page-header__sub { font-size: 17px; }

  .ihub-hero { padding: var(--space-7) var(--space-4); }
  .ihub-hero__h1 { font-size: 40px; letter-spacing: -0.9px; }

  .services { padding: var(--space-8) var(--space-4); }
  .services__title { font-size: 32px; letter-spacing: -0.6px; }
  .services--hero .services__title { font-size: 40px; letter-spacing: -0.9px; }
  .services__sub { font-size: 17px; }
  .industries { padding: var(--space-8) var(--space-4); }
  .industries__title { font-size: 32px; }
  .industries__grid { grid-template-columns: 1fr; }

  /* All major section H2s drop another step */
  .deficiency__title,
  .who-for__title,
  .what-get__title,
  .approach__title,
  .whats-covered__title,
  .testimonials__title,
  .insights-teaser__title,
  .why-aml__title,
  .relevant-services__title {
    font-size: 30px; letter-spacing: -0.5px;
  }
  .cta-band__head { font-size: 34px; letter-spacing: -0.6px; }
  .cta-band__sub { font-size: 16px; }
  .cta-band__row { flex-direction: column; align-items: stretch; }
  .cta-band__row .btn { width: 100%; justify-content: center; }

  .who-for, .what-get, .approach, .whats-covered, .proof-block,
  .why-aml, .ihub-grid, .ihub-cite, .relevant-services {
    padding-top: var(--space-7); padding-bottom: var(--space-7);
    padding-left: var(--space-4); padding-right: var(--space-4);
  }
  .deficiency { padding: var(--space-7) var(--space-4); }
  .testimonials, .insights-teaser { padding: var(--space-7) var(--space-4); }
  .cta-band { padding: var(--space-8) var(--space-4); }

  /* Deficiency callout — button + caption span full width */
  .deficiency__action { width: auto; align-items: stretch; }
  .deficiency__action .btn { justify-content: center; }
  .deficiency__sla { text-align: center; }

  /* Footer: 2-col → 1-col on mobile */
  .site-footer__inner {
    grid-template-columns: 1fr;
    padding: var(--space-7) var(--space-4) var(--space-6);
  }
  .site-footer__brand { grid-column: auto; }
  .site-footer__strip { padding-left: var(--space-4); padding-right: var(--space-4); }
  .site-footer__copy { line-height: 1.6; }
}


/* ============================================================
   MOTION PACKAGE — premium polish push.
   Tokens, six patterns, prefers-reduced-motion guard.
   No new colors / fonts / primitives — transitions only,
   plus an IntersectionObserver-driven reveal class.
   ============================================================ */

:root {
  --motion-fast:    200ms;
  --motion-card:    300ms;
  --motion-reveal:  500ms;
  --ease-editorial: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-out:       cubic-bezier(0.16, 1, 0.3, 1);
}

/* ---- PATTERN 1: arrow nudge ------------------------------ */
.arrow {
  display: inline-block;
  transition: transform var(--motion-fast) var(--ease-out);
  will-change: transform;
}
/* The arrow's parent (any interactive ancestor) on hover slides it right */
a:hover > .arrow,
button:hover > .arrow,
.service-card:hover .arrow,
.post-card:hover .arrow,
.rel-service-card:hover .arrow,
.ihub-card__link:hover .arrow {
  transform: translateX(6px);
}
/* btn__arrow keeps its existing -1px Y offset; on hover translate both */
.btn__arrow.arrow { transform: translateY(-1px); }
.btn:hover .btn__arrow.arrow,
.btn:focus-visible .btn__arrow.arrow {
  transform: translate(6px, -1px);
}

/* ---- PATTERN 2: editorial-link underline draw-in --------- */
/* Strip the static underline from the editorial-inline-link classes
   so the animated underline (on .link-text only) is the sole one. */
.service-card__link,
.service-card__link--cta,
.insights-teaser__all,
.ihub-card__cta,
.rel-service-card__link,
.post-card__link {
  text-decoration: none;
}
.service-card:hover .service-card__link,
.service-card--cta:hover .service-card__link--cta,
.post-card:hover .post-card__link,
.ihub-card__link:hover .ihub-card__cta,
.rel-service-card:hover .rel-service-card__link,
.insights-teaser__all:hover {
  text-decoration: none;
}

/* The text portion only carries the underline. */
.link-text {
  position: relative;
  display: inline-block;
}
.link-text::after {
  content: '';
  position: absolute;
  left: 0; right: 0;
  bottom: -2px;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform var(--motion-fast) var(--ease-out);
  pointer-events: none;
}
/* Hover triggers underline draw on the closest interactive ancestor */
.service-card:hover .link-text::after,
.service-card--cta:hover .link-text::after,
.post-card:hover .link-text::after,
.ihub-card__link:hover .link-text::after,
.rel-service-card:hover .link-text::after,
.insights-teaser__all:hover .link-text::after,
.site-footer__contact:hover .link-text::after {
  transform: scaleX(1);
}
/* The footer "Get in touch" link previously animated via text-decoration;
   neutralize the default to defer to the .link-text pseudo. */
.site-footer__contact:hover { text-decoration: none; }

/* ---- PATTERN 3: card lift -------------------------------- */
.industry,
.service-card,
.post-card,
.ihub-card__link,
.rel-service-card {
  transition:
    transform   var(--motion-card) var(--ease-editorial),
    box-shadow  var(--motion-card) var(--ease-editorial),
    border-color var(--motion-card) var(--ease-editorial),
    background  var(--motion-card) var(--ease-editorial);
}
.industry:hover,
.service-card:hover,
.post-card:hover,
.ihub-card__link:hover,
.rel-service-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(122, 46, 31, 0.06);
}

/* ---- PATTERN 4: section reveal --------------------------- */
.reveal {
  opacity: 0;
  transform: translateY(8px);
  transition:
    opacity   var(--motion-reveal) var(--ease-editorial),
    transform var(--motion-reveal) var(--ease-editorial);
  will-change: opacity, transform;
}
.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* ---- PATTERN 5: primary CTA pill hover ------------------- */
.btn--primary {
  transition:
    background var(--motion-fast) var(--ease-out),
    color      var(--motion-fast) var(--ease-out),
    transform  var(--motion-fast) var(--ease-out);
}
.btn--primary:hover {
  /* Overrides the base `.btn--primary:hover { background: var(--ink-slate); }`
     with a subtle warm shift toward the copper accent. */
  background: color-mix(in srgb, var(--ink-navy) 92%, var(--accent-oxblood) 8%);
  color: var(--fg-on-dark);
}

/* ---- PATTERN 6: active nav underline slide-in ------------ */
/* Every nav link gets an ::after; only the active one is scaled in. */
.site-nav__link {
  position: relative;
}
.site-nav__link::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 2px;
  background: var(--accent-oxblood);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform var(--motion-card) var(--ease-editorial);
}
.site-nav__link--active::after {
  transform: scaleX(1);
}

/* ---- ACCESSIBILITY: prefers-reduced-motion --------------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .reveal {
    opacity: 1 !important;
    transform: none !important;
  }
  .link-text::after {
    transform: scaleX(1) !important;
  }
  .site-nav__link--active::after {
    transform: scaleX(1) !important;
  }
}


/* ============================================================
   TYPOGRAPHY & DETAIL PACKAGE — premium polish push 2.
   Pure additive: tabular figures, smart-quote ligatures,
   pull-quote treatment on testimonials. No motion, no layout,
   no copy.

   NOTE: the Push 2 hairline experiment (copper-tinted --hairline /
   --hairline-strong token override + the hi-DPI 0.5px border
   downshift) was ROLLED BACK. Section dividers resolve to the
   foundations' original navy-tinted tokens again, and the
   heading-anchored section rhythm carries the primary separation.
   ============================================================ */

/* ---- PART B: ligatures + lining default ---------------- */
body,
h1, h2, h3, h4, h5, h6,
.hero__headline, .svc-hero__headline, .page-header__title,
.ihub-hero__h1, .ihub-hero__h2, .cta-band__head {
  font-feature-settings: 'liga' 1, 'kern' 1, 'calt' 1;
  text-rendering: optimizeLegibility;
}

/* ---- PART A: tabular figures on every numeric / list-numeral surface ---- */
.stat__num,
.stat__plus,
.proof-block__num,
.proof-block__sub,
.services__row-num,
.what-get__num,
.whats-covered__num,
.approach__week,
.approach__step-head,
.quick-facts__value,
.quick-facts__label,
.post-card__meta,
.post-card__date,
.post-card__read,
.article-card__meta,
.ihub-card__num,
.site-footer__copy {
  font-variant-numeric: tabular-nums lining-nums;
}

/* ---- PART F: optical sizing on Fraunces (REVERTED) ----
   The opsz axis tuning that previously rode on display headings
   has been removed; Fraunces now renders at its STAT-table default
   optical sizing on every heading. The body-tier opsz: 14 rule and
   the display-tier opsz: 72 rule are both gone. The pull-quote
   glyph below also no longer carries an opsz override. */

/* ---- PART D: pull-quote testimonial treatment ----
   Refactors .quote into an editorial pull-quote: oversized
   copper opening glyph at the top-left of the card, generous
   vertical breathing room, and a small copper rule before the
   small-caps attribution line.

   The existing 2px copper top border on .quote is removed so the
   oversized opening glyph carries the visual weight. The italic
   blockquote body stays italic Fraunces. */
.quote {
  /* Push 2 padding (var(--space-8) 0 var(--space-7)) removed 2026-05-30 —
     it was reserving space for the oversized ::before quote mark which is
     now hidden. Spacing now comes from .testimonials__head margin-bottom
     and the grid gap. */
  position: relative;
  border-top: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}
.quote::before {
  /* Push 2 oversize decorative quote mark — disabled 2026-05-30 per Omer (too flashy).
     Remove `display: none` to restore the pull-quote treatment. */
  display: none;
  content: '“';
  position: absolute;
  top: -16px;
  left: -8px;
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 400;
  font-size: 120px;
  line-height: 1;
  color: var(--accent-oxblood);
  pointer-events: none;
  user-select: none;
  letter-spacing: -0.04em;
}
.quote__text {
  /* Push 2 pull-quote padding override — reverted 2026-05-30.
     position: relative kept harmless. */
  position: relative;
  margin: 0;
}
.quote__attr-row {
  margin-top: 0;
}
.quote__rule {
  background: var(--accent-oxblood);
  width: 24px;
  height: 2px;
}
.quote__attr {
  letter-spacing: 0.18em;
}

/* ---- Reduced-motion / print parity (defensive) ---- */
@media print {
  .quote::before { color: var(--ink-navy); }
}


/* ---- Deficiency hero trust line (Part B) -------------------
   Small muted caption rendered directly below the hero CTA row
   on the FINTRAC Deficiency Response page. Matches the small-
   caps eyebrow rhythm but at body weight so it reads as a
   reassurance note, not a heading. */
.svc-hero__trust {
  font-family: var(--font-body);
  font-size: 12.5px;
  font-weight: 500;
  line-height: 1.55;
  letter-spacing: 0.01em;
  color: var(--eyebrow);
  margin: var(--space-5) 0 0;
  max-width: 56ch;
}


/* ============================================================
   SECTION-GAP RHYTHM — symmetric (task 31 Part A rolled back)
   ------------------------------------------------------------
   The heading-anchored asymmetric split was rolled back. Each body
   section contributes HALF of --space-section as top + bottom
   padding, so any two adjacent sections sum to exactly
   --space-section — the original uniform rhythm.

       desktop 192px (96 + 96), tablet 144px (72 + 72),
       mobile  96px (48 + 48).

   Mechanism: !important on padding-top / padding-bottom only —
   horizontal padding (content insets) untouched. Beats both the
   class rules and the inline-style sections. Page structure
   verified: HomePage is a bare fragment (main > section); every
   other page wraps sections in one <article> (main > article >
   section). Card elements are deeper descendants and not matched.

   Fully uniform: no first/last-section exceptions, no per-section
   overrides. The footer keeps its own top padding plus a
   border-top:0 guard so the closing navy band still flows continuous
   into the navy footer.
   ============================================================ */
:root {
  --space-section:        192px; /* uniform section gap — desktop         */
  --space-section-tablet: 144px; /* uniform section gap — tablet          */
  --space-section-mobile: 96px;  /* uniform section gap — mobile          */
}
@media (max-width: 1023px) {
  :root { --space-section: var(--space-section-tablet); }
}
@media (max-width: 767px) {
  :root { --space-section: var(--space-section-mobile); }
}

main > section,
main > article > section {
  padding-top:    calc(var(--space-section) / 2) !important;
  padding-bottom: calc(var(--space-section) / 2) !important;
}

/* Navy-to-navy continuity: the footer never carries a top hairline,
   so the closing navy band flows seamlessly into the navy footer.
   The closing section on every page is the navy FinalCTABand, so the
   footer is pulled up 1px to swallow any sub-pixel seam (a fractional-
   pixel sliver of the cream page background can otherwise show through
   between the two navy blocks on hi-DPI displays — the residual
   "hairline"). Navy-on-navy, so the 1px overlap is invisible.
   Light-surface section hairlines and the homepage stats-stack rules
   are defined elsewhere and stay. */
.site-footer { border-top: 0; margin-top: -1px; }

/* ============================================================
   Article body inline elements (rendered from MD-converted HTML)
   ============================================================ */
.page-header + section p a,
.page-header + section li a,
.page-header + section blockquote a,
.page-header + section h2 a,
.page-header + section h3 a,
.page-header + section a[href^="http"],
.page-header + section a[href^="/"] {
  color: var(--accent-oxblood);
  text-decoration: underline;
  text-decoration-thickness: 0.5px;
  text-underline-offset: 2.5px;
  text-decoration-color: rgba(122, 46, 31, 0.45);
  transition: text-decoration-color 0.15s ease;
}
.page-header + section p a:hover,
.page-header + section li a:hover,
.page-header + section a:hover {
  text-decoration-color: var(--accent-oxblood);
}
.page-header + section strong { font-weight: 600; color: var(--ink-navy); }
.page-header + section em { font-style: italic; }
.page-header + section code {
  font-family: var(--font-body);
  font-size: 0.92em;
  background: rgba(15, 42, 68, 0.05);
  padding: 1px 6px;
  border-radius: 3px;
  color: var(--ink-navy);
}
.page-header + section li { padding-left: 4px; }
