/*
 * nGülam Option A+ : UI layer.
 * Scope: components emitted by the page builders (ap-*), Avada header/mega/off-canvas/footer restyle, and archives.
 * Rules: class selectors only for components; Avada hooks are limited to header, page title bar and the
 * success-case layout. Every colour pair used here is WCAG 2.2 AA (see docs/qa for the contrast table).
 * Convention: every selector is prefixed with `body.ap` so it out-ranks Avada's `.post-content hN` and
 * `.fusion-*` typography rules (specificity 0,1,1) without !important. Keep the prefix on new rules.
 * This file loads after the dynamics plugin's structural CSS, so equal-specificity ties resolve here.
 */

/* ------------------------------------------------------------------ 0. Tokens */
:root {
  --ap-blue: #3269ff;
  --ap-btn: #2a5ae6;
  --ap-btn-h: #1f4fd6;
  --ap-link: #1f4fd6;
  --ap-deep: #0f2385;
  --ap-blue-deep: #0f2385;
  --ap-deep-2: #0a1a66;
  --ap-ink: #040922;
  --ap-text: #2a3358;
  --ap-muted: #4a5278;
  --ap-surface: #f4f7ff;
  --ap-line: #d6def5;
  --ap-amber: #ffe9b3;
  --ap-focus: #1f4fd6;
  --ap-focus-dk: #ffbf47;
  --ap-r: 18px;
  --ap-r-s: 12px;
  --ap-wrap: 1200px;
  --ap-gut: 24px;
  --ap-sp: 88px;
  --ap-shadow: 0 12px 32px rgba(15, 35, 133, .12);
  --ap-pad-l: max(var(--ap-gut), calc((100vw - var(--ap-wrap)) / 2));
}
@media (max-width: 1024px) { :root { --ap-sp: 64px; } }
@media (max-width: 640px) { :root { --ap-gut: 20px; --ap-sp: 44px; } }

/* ------------------------------------------------------------------ 1. Base */
body.ap :is(.ap-sec, .ap-hero, .ap-foot, .ap-mm, .ap-drawer, .ap-facts, .ap-news, .ap-grid, .ap-filters),
body.ap :is(.ap-sec, .ap-hero, .ap-foot, .ap-mm, .ap-drawer, .ap-facts, .ap-news, .ap-grid, .ap-filters) *,
body.ap :is(.ap-sec, .ap-hero, .ap-foot, .ap-mm, .ap-drawer, .ap-facts, .ap-news, .ap-grid, .ap-filters) *::before,
body.ap :is(.ap-sec, .ap-hero, .ap-foot, .ap-mm, .ap-drawer, .ap-facts, .ap-news, .ap-grid, .ap-filters) *::after { box-sizing: border-box; }

body.ap .ap-sec,
body.ap .ap-hero,
body.ap .ap-foot,
body.ap .ap-drawer,
body.ap .ap-facts,
body.ap .ap-news {
  font-size: 1.0625rem;
  line-height: 1.65;
  font-weight: 500;
  color: var(--ap-text);
}
body.ap :where(.ap-sec, .ap-hero, .ap-foot, .ap-drawer, .ap-facts, .ap-news, .ap-mm) p { margin: 0 0 1em; }
body.ap :where(.ap-sec, .ap-hero, .ap-foot, .ap-drawer, .ap-facts, .ap-news, .ap-mm) p:last-child { margin-bottom: 0; }
body.ap :where(.ap-sec, .ap-hero, .ap-foot, .ap-drawer, .ap-facts, .ap-news, .ap-mm) img { max-width: 100%; height: auto; }
body.ap :where(.ap-sec, .ap-hero, .ap-foot, .ap-drawer, .ap-facts, .ap-news, .ap-mm) figure { margin: 0; }

body.ap .ap-sr {
  position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0;
}
body.ap [hidden].ap-filters,
body.ap .ap-grid > li[hidden],
body.ap .ap-empty[hidden],
body.ap [data-ap-more][hidden],
body.ap .ap-filters__reset[hidden],
body.ap .ap-facts__index[hidden] { display: none !important; }
html.ap-js body.ap .ap-filters[hidden],
html.ap-js body.ap .ap-sort[hidden] { display: flex !important; visibility: hidden; }

body.ap :is(a, button, summary, input, select, textarea, [tabindex]):focus-visible {
  outline: 3px solid var(--ap-focus);
  outline-offset: 3px;
}
body.ap :is(.ap-sec--deep, .ap-sec--ink, .ap-banner, .ap-hero--home .ap-hero__panel, .ap-hero--deep .ap-hero__panel, .ap-foot, .ap-drawer__cta--dark) :is(a, button, summary, input):focus-visible {
  outline-color: var(--ap-focus-dk);
}
body.ap .ap-sec[id],
body.ap .ap-hero[id],
body.ap details[id],
body.ap .ap-faq h2[id],
body.ap .ap-faq h3[id],
body.ap .fusion-content-tb [id] { scroll-margin-top: 104px; }

/* ------------------------------------------------------------------ 2. Layout */
body.ap .ap-sec { width: 100%; padding: var(--ap-sp) 0; background: #fff; }
body.ap .ap-sec--surface { background: var(--ap-surface); }
body.ap .ap-sec--deep { background: linear-gradient(135deg, var(--ap-deep) 0%, var(--ap-deep-2) 100%); color: #e5ebff; }
body.ap .ap-sec--ink { background: var(--ap-ink); color: #e5ebff; }
body.ap .ap-sec--tight { padding: calc(var(--ap-sp) * .55) 0; }
body.ap .ap-wrap { width: 100%; max-width: calc(var(--ap-wrap) + 2 * var(--ap-gut)); margin: 0 auto; padding: 0 var(--ap-gut); }
body.ap .ap-wrap--narrow { max-width: calc(820px + 2 * var(--ap-gut)); }
/* WordPress can append an empty paragraph after the shared closing container. */
body.ap:has(.ap-close-to-footer) main#main .post-content > p:last-child:empty { display: none; }
/* Avada reserves mobile sidebar spacing even on these sidebar-free project pages. */
body.ap.ap-case.awb-no-sidebars:has(.ap-close-to-footer) #main #content { margin-bottom: 0; }
body.ap .ap-head { max-width: 780px; margin: 0 0 clamp(28px, 4vw, 48px); }
body.ap .ap-head .ap-lead { margin: 16px 0 0; }
body.ap .ap-head--center { margin-left: auto; margin-right: auto; text-align: center; }
body.ap .ap-head--center .ap-lead { margin-left: auto; margin-right: auto; }
body.ap .ap-lead + .ap-lead { margin-top: 1em; }
body.ap .ap-aside { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(20px, 5vw, 72px); align-items: start; }
body.ap .ap-aside__h .ap-h2 { max-width: 14ch; }
body.ap .ap-aside__b > :first-child { margin-top: 0; }
body.ap .ap-aside + .ap-aside { margin-top: clamp(32px, 4vw, 56px); padding-top: clamp(32px, 4vw, 56px); border-top: 1px solid var(--ap-line); }
body.ap .ap-small { margin: 20px 0 0; max-width: 62ch; font-size: .9375rem; line-height: 1.55; color: var(--ap-muted); }
@media (max-width: 900px) { body.ap .ap-aside { grid-template-columns: minmax(0, 1fr); } body.ap .ap-aside__h .ap-h2 { max-width: none; } }

/* ------------------------------------------------------------------ 3. Type */
body.ap .ap-eyebrow {
  margin: 0 0 14px; font-size: .8125rem; line-height: 1.4; font-weight: 700; letter-spacing: .12em;
  text-transform: uppercase; color: var(--ap-deep);
}
body.ap .ap-h1, body.ap .ap-h2, body.ap .ap-h3 { color: var(--ap-ink); font-weight: 600; letter-spacing: -.015em; text-wrap: balance; }
body.ap .ap-h1 { margin: 0 0 22px; font-size: clamp(2.125rem, 1.35rem + 2.7vw, 3.75rem); line-height: 1.08; letter-spacing: -.02em; }
body.ap .ap-h2 { margin: 0; font-size: clamp(1.75rem, 1.2rem + 1.9vw, 2.75rem); line-height: 1.15; }
body.ap .ap-h3 { margin: 0; font-size: clamp(1.25rem, 1.1rem + .6vw, 1.5rem); line-height: 1.25; letter-spacing: -.01em; }
body.ap .ap-lead { margin: 0; max-width: 62ch; font-size: clamp(1.0625rem, 1rem + .3vw, 1.25rem); line-height: 1.6; color: var(--ap-text); }
body.ap .ap-sec--deep .ap-eyebrow,
body.ap .ap-sec--ink .ap-eyebrow,
body.ap .ap-hero--home .ap-eyebrow,
body.ap .ap-hero--deep .ap-eyebrow { color: var(--ap-amber); }
body.ap .ap-sec--deep :is(.ap-h1, .ap-h2, .ap-h3),
body.ap .ap-sec--ink :is(.ap-h1, .ap-h2, .ap-h3),
body.ap .ap-hero--home .ap-h1,
body.ap .ap-hero--deep .ap-h1 { color: #fff; }
body.ap .ap-sec--deep .ap-lead,
body.ap .ap-sec--ink .ap-lead,
body.ap .ap-hero--home .ap-lead,
body.ap .ap-hero--deep .ap-lead { color: #e5ebff; }

body.ap :where(.ap-sec, .ap-faq__a, .ap-split__body, .ap-facts, .ap-news) p a, body.ap .ap-lead a { color: var(--ap-link); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
body.ap :where(.ap-sec--deep, .ap-sec--ink) p a { color: #fff; }

body.ap .ap-more {
  display: inline-flex; align-items: center; gap: 6px; font-weight: 600; color: var(--ap-link);
  text-decoration: none; text-underline-offset: 4px;
}
body.ap a.ap-more:hover { text-decoration: underline; }
body.ap .ap-sec--deep .ap-more { color: #fff; }

/* ------------------------------------------------------------------ 4. Buttons */
body.ap .ap-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 12px 28px;
  border: 2px solid var(--ap-btn); border-radius: 999px; background: var(--ap-btn); color: #fff !important;
  font: inherit; font-size: 1rem; font-weight: 600; line-height: 1.2; text-align: center; text-decoration: none !important;
  cursor: pointer; transition: background-color .18s, border-color .18s, color .18s, transform .18s;
}
body.ap .ap-btn:hover { background: var(--ap-btn-h); border-color: var(--ap-btn-h); }
body.ap .ap-btn:active { transform: translateY(1px); }
body.ap .ap-btn--light { background: #fff; border-color: #fff; color: var(--ap-deep) !important; }
body.ap .ap-btn--light:hover { background: var(--ap-amber); border-color: var(--ap-amber); }
body.ap .ap-btn--ghost { background: transparent; border-color: var(--ap-deep); color: var(--ap-deep) !important; }
body.ap .ap-btn--ghost:hover { background: var(--ap-deep); border-color: var(--ap-deep); color: #fff !important; }
body.ap .ap-btn--ghost-light { background: transparent; border-color: rgba(255, 255, 255, .8); color: #fff !important; }
body.ap .ap-btn--ghost-light:hover { background: #fff; border-color: #fff; color: var(--ap-deep) !important; }
body.ap .ap-btn--sm { min-height: 40px; padding: 8px 20px; font-size: .9375rem; }
body.ap .ap-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 16px; margin: 28px 0 0; }

/* ------------------------------------------------------------------ 5. Hero */
body.ap .ap-hero { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); width: 100%; min-height: clamp(520px, 74vh, 720px); background: #fff; }
body.ap .ap-hero__panel {
  position: relative; display: flex; align-items: center; overflow: hidden;
  padding: clamp(48px, 7vw, 88px) clamp(28px, 4.5vw, 64px) clamp(48px, 7vw, 88px) var(--ap-pad-l);
}
body.ap .ap-hero__in { position: relative; z-index: 1; width: 100%; max-width: 640px; }
body.ap .ap-hero__media { position: relative; min-height: 360px; background: var(--ap-surface); overflow: hidden; }
body.ap .ap-hero__media .ap-slot, body.ap .ap-hero__media .ap-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; }
body.ap .ap-hero__media :is(img, picture) { display: block; width: 100%; height: 100%; object-fit: cover; }

body.ap .ap-hero--home .ap-hero__panel, body.ap .ap-hero--deep .ap-hero__panel { background: linear-gradient(135deg, var(--ap-deep) 0%, var(--ap-deep-2) 100%); color: #fff; }
body.ap .ap-hero--home .ap-hero__panel::before, body.ap .ap-hero--deep .ap-hero__panel::before {
  content: ""; position: absolute; right: -22%; top: -34%; width: 96%; aspect-ratio: 1; border-radius: 50%;
  border: 2px solid rgba(255, 255, 255, .13); pointer-events: none;
}
body.ap .ap-hero--home .ap-hero__panel::after, body.ap .ap-hero--deep .ap-hero__panel::after {
  content: ""; position: absolute; right: -10%; bottom: -46%; width: 70%; aspect-ratio: 1; border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, rgba(50, 105, 255, .30), rgba(50, 105, 255, 0) 70%); pointer-events: none;
}
body.ap .ap-hero__aud { margin: 0 0 18px; font-size: .9375rem; line-height: 1.5; font-weight: 600; color: var(--ap-amber); }
body.ap .ap-hero__qual { margin: 20px 0 0; font-size: 1rem; line-height: 1.55; color: #dbe3ff; max-width: 52ch; }
body.ap .ap-hero__rtb { margin: 26px 0 0; padding-left: 14px; border-left: 3px solid var(--ap-amber); font-weight: 700; color: #fff; }
body.ap .ap-hero--home .ap-actions { margin-top: 30px; }
body.ap .ap-hero--home .ap-h1 { font-size: clamp(2.25rem, 1.2rem + 2.6vw, 3.5rem); }

body.ap .ap-hero--inner { min-height: clamp(420px, 56vh, 600px); }
body.ap .ap-hero--inner .ap-hero__panel { background: var(--ap-surface); }
body.ap .ap-hero--inner .ap-h1 { font-size: clamp(2rem, 1.3rem + 2.3vw, 3.25rem); }
body.ap .ap-hero--inner .ap-lead { max-width: 56ch; }
body.ap .ap-hero--inner.ap-hero--deep .ap-hero__panel { background: linear-gradient(135deg, var(--ap-deep) 0%, var(--ap-deep-2) 100%); }
body.ap .ap-hero--plain { grid-template-columns: minmax(0, 1fr); min-height: 0; }
body.ap .ap-hero--plain .ap-hero__panel { padding-right: var(--ap-pad-l); padding-top: clamp(44px, 6vw, 80px); padding-bottom: clamp(40px, 5vw, 64px); }
body.ap .ap-hero--plain .ap-hero__in { max-width: 820px; }
body.ap .ap-hero__tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 22px 0 0; padding: 0; list-style: none; }
body.ap .ap-hero__tags a {
  display: inline-block; padding: 6px 14px; border: 1.5px solid var(--ap-line); border-radius: 999px; background: #fff;
  font-size: .875rem; font-weight: 600; color: var(--ap-deep); text-decoration: none;
}
body.ap .ap-hero__tags a:hover { border-color: var(--ap-deep); }

@keyframes ap-rise { from { transform: translateY(14px); } to { transform: none; } }
@media (max-width: 900px) {
  body.ap .ap-hero { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  body.ap .ap-hero__panel { padding: 44px var(--ap-gut) 40px; }
  body.ap .ap-hero__media { min-height: 0; aspect-ratio: 4 / 3; }
}

/* ------------------------------------------------------------------ 6. Credibility strip, situations */
body.ap .ap-strip { padding: 26px 0; }
body.ap .ap-strip__t { margin: 0 auto; max-width: 900px; text-align: center; font-size: 1.125rem; font-weight: 600; color: var(--ap-deep); }
body.ap .ap-strip__chip { margin: 10px 0 0; text-align: center; }
body.ap .ap-trig { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 clamp(32px, 5vw, 72px); margin: 0; padding: 0; list-style: none; }
body.ap .ap-trig__item { position: relative; margin: 0; padding: 26px 0 28px; border-top: 1px solid var(--ap-line); }
body.ap .ap-trig__item:has(.ap-trig__n) { padding-left: 52px; }
body.ap .ap-trig__item:last-child:nth-child(odd) { grid-column: 1 / -1; }
body.ap .ap-trig__n { position: absolute; left: 0; top: 30px; font-size: .9375rem; font-weight: 700; letter-spacing: .06em; color: var(--ap-link); }
body.ap .ap-trig__q { margin: 0 0 8px; font-size: clamp(1.25rem, 1.05rem + .7vw, 1.5rem); line-height: 1.3; font-weight: 600; color: var(--ap-ink); }
body.ap p.ap-trig__q { font-size: 1.125rem; line-height: 1.5; font-weight: 600; }
body.ap .ap-trig__a { margin: 0; color: var(--ap-text); }
body.ap .ap-trig__route { display: inline-flex; gap: 6px; margin-top: 12px; font-weight: 600; color: var(--ap-link); text-decoration: none; text-underline-offset: 4px; }
body.ap .ap-trig__route:hover { text-decoration: underline; }
@media (max-width: 800px) { body.ap .ap-trig { grid-template-columns: minmax(0, 1fr); } }

/* audience preference control (rendered by [ap_prefs]) */
body.ap .ap-prefs { margin: 0 0 28px; font-size: .9375rem; }

/* ------------------------------------------------------------------ 7. Service cards, reasons, split, callout */
body.ap .ap-svc-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
body.ap .ap-svc-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
body.ap .ap-svc {
  position: relative; display: flex; flex-direction: column; overflow: hidden; background: #fff; border: 1px solid var(--ap-line);
  border-radius: var(--ap-r); transition: box-shadow .2s, transform .2s, border-color .2s;
}
body.ap .ap-svc:hover { box-shadow: var(--ap-shadow); transform: translateY(-3px); border-color: #b7c5f0; }
body.ap .ap-svc__media { position: relative; aspect-ratio: 16 / 10; background: var(--ap-surface); overflow: hidden; }
body.ap .ap-svc__media .ap-slot { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; }
body.ap .ap-svc__media :is(img) { display: block; width: 100%; height: 100%; object-fit: cover; }
body.ap .ap-svc__body { display: flex; flex: 1; flex-direction: column; gap: 10px; padding: 26px 26px 28px; }
body.ap .ap-svc__body p { margin: 0; }
body.ap .ap-svc__num { font-size: .875rem; font-weight: 700; letter-spacing: .08em; color: var(--ap-link); }
body.ap .ap-svc__link { color: var(--ap-ink); text-decoration: none; }
body.ap .ap-svc__link::after { content: ""; position: absolute; inset: 0; }
body.ap .ap-svc__tags { font-size: .9375rem; color: var(--ap-muted); }
body.ap .ap-svc__ex { margin: 0; font-size: .9375rem; color: var(--ap-muted); }
body.ap .ap-svc .ap-more { margin-top: auto; padding-top: 8px; }
body.ap .ap-svc:hover .ap-more { text-decoration: underline; }
@media (max-width: 1024px) { body.ap .ap-svc-grid { grid-template-columns: minmax(0, 1fr); } body.ap .ap-svc { flex-direction: row; } body.ap .ap-svc__media { flex: 0 0 38%; aspect-ratio: auto; } }
@media (max-width: 640px) { body.ap .ap-svc { flex-direction: column; } body.ap .ap-svc__media { flex: none; aspect-ratio: 16 / 9; } }

body.ap .ap-reasons { margin: 0; padding: 0; list-style: none; border-bottom: 1px solid var(--ap-line); }
body.ap .ap-reasons li { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.4fr); gap: 6px 40px; margin: 0; padding: 22px 0; border-top: 1px solid var(--ap-line); }
body.ap .ap-reasons__h { margin: 0; font-size: 1.1875rem; line-height: 1.35; font-weight: 600; color: var(--ap-ink); }
body.ap .ap-reasons li p { margin: 0; }
body.ap .ap-split__body .ap-reasons li { display: block; }
body.ap .ap-split__body .ap-reasons__h { margin-bottom: 6px; }
@media (max-width: 760px) { body.ap .ap-reasons li { display: block; } body.ap .ap-reasons__h { margin-bottom: 6px; } }

body.ap .ap-split { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(32px, 5vw, 72px); align-items: center; }
body.ap .ap-split--flip .ap-split__body { order: 2; }
body.ap .ap-split__media { position: relative; align-self: start; border-radius: var(--ap-r); background: var(--ap-surface); overflow: hidden; }
@media (min-width: 901px) { body.ap .ap-split__media { align-self: center; } }
body.ap .ap-split__media .ap-slot { border-radius: var(--ap-r); }
body.ap .ap-split--news { align-items: center; }
body.ap .ap-split--news .ap-split__media { align-self: center; background: none; overflow: visible; border-radius: 0; }
body.ap .ap-split--news .ap-news { max-width: none; }
body.ap .ap-split__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 900px) { body.ap .ap-split { grid-template-columns: minmax(0, 1fr); } body.ap .ap-split--flip .ap-split__body { order: 0; } }

body.ap .ap-callout { margin: 0; padding: 24px 28px; border-left: 4px solid var(--ap-blue); border-radius: 0 var(--ap-r-s) var(--ap-r-s) 0; background: var(--ap-surface); font-size: 1.1875rem; font-weight: 600; color: var(--ap-deep); }
body.ap .ap-callout > :last-child { margin-bottom: 0; }

body.ap .ap-jump { background: var(--ap-surface); border-bottom: 1px solid var(--ap-line); font-size: .9375rem; }
body.ap .ap-jump ul { display: flex; flex-wrap: wrap; gap: 0 28px; max-width: calc(var(--ap-wrap) + 2 * var(--ap-gut)); margin: 0 auto; padding: 4px var(--ap-gut); list-style: none; }
body.ap .ap-jump li { margin: 0; padding: 0; }
body.ap .ap-jump a { display: inline-flex; align-items: center; min-height: 44px; border-bottom: 2px solid transparent; font-weight: 600; color: var(--ap-deep); text-decoration: none; }
body.ap .ap-jump a:hover { border-bottom-color: var(--ap-blue); }

body.ap .ap-band { position: relative; overflow: hidden; border-radius: var(--ap-r); aspect-ratio: 21 / 9; background: var(--ap-surface); }
body.ap .ap-band .ap-slot { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; }
body.ap .ap-band img { display: block; width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 640px) { body.ap .ap-band { aspect-ratio: 16 / 9; } }

body.ap .ap-aud-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
body.ap .ap-aud { position: relative; display: flex; flex-direction: column; overflow: hidden; background: #fff; border: 1px solid var(--ap-line); border-radius: var(--ap-r); transition: box-shadow .2s, transform .2s; }
body.ap .ap-aud:hover { box-shadow: var(--ap-shadow); transform: translateY(-3px); }
body.ap .ap-aud__media { position: relative; aspect-ratio: 16 / 9; background: var(--ap-surface); overflow: hidden; }
body.ap .ap-aud__media .ap-slot { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; }
body.ap .ap-aud__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
body.ap .ap-aud__body { display: flex; flex: 1; flex-direction: column; gap: 12px; padding: 28px 30px 30px; }
body.ap .ap-aud__body p { margin: 0; }
body.ap .ap-aud__body .ap-more { margin-top: auto; padding-top: 6px; }
body.ap .ap-aud__link { color: var(--ap-ink); text-decoration: none; }
body.ap .ap-aud__link::after { content: ""; position: absolute; inset: 0; }
@media (max-width: 800px) { body.ap .ap-aud-grid { grid-template-columns: minmax(0, 1fr); } }
/* TVA-005, TVA-008: the compact selector keeps the photo but puts it beside the copy, so that the two routes and the problem groups share a screen. */
body.ap .ap-aud-grid--compact { gap: 20px; }
body.ap .ap-aud-grid--compact .ap-aud { flex-direction: row; }
body.ap .ap-aud-grid--compact .ap-aud__media { flex: 0 0 32%; min-height: 168px; aspect-ratio: auto; }
body.ap .ap-aud-grid--compact .ap-aud__body { gap: 8px; padding: 22px 24px 22px; }
body.ap .ap-aud-grid--compact .ap-aud__body .ap-h3 { font-size: 1.25rem; }
body.ap .ap-aud__fit { margin: 4px 0 0 !important; font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ap-muted); }
body.ap .ap-aud__signals { display: grid; gap: 4px; margin: 0; padding: 0; list-style: none; font-size: .9375rem; line-height: 1.5; }
body.ap .ap-aud__signals li { position: relative; margin: 0; padding-left: 18px; }
body.ap .ap-aud__signals li::before { content: ""; position: absolute; left: 0; top: .6em; width: 7px; height: 7px; border-radius: 50%; background: var(--ap-blue); }
body.ap .ap-aud__fams { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: 6px 8px; margin: 0; padding: 0; list-style: none; }
body.ap .ap-aud__fams li { margin: 0; }
body.ap .ap-aud__fams a { display: inline-block; padding: 6px 12px; border: 1px solid var(--ap-line); border-radius: 999px; color: var(--ap-link); font-size: .875rem; font-weight: 600; text-decoration: none; }
body.ap .ap-aud__fams a:hover { border-color: var(--ap-blue); background: var(--ap-surface); }
@media (max-width: 560px) {
  body.ap .ap-aud-grid--compact .ap-aud { flex-direction: column; }
  body.ap .ap-aud-grid--compact .ap-aud__media { flex: none; min-height: 0; aspect-ratio: 21 / 9; }
}

/* ------------------------------------------------------------------ 8. GrowthBridge */
body.ap .ap-bridge { color: var(--ap-text); }



/* ------------------------------------------------------------------ 9. FAQ */
body.ap .ap-faq { max-width: 860px; border-top: 1px solid var(--ap-line); }
body.ap .ap-faq__item { border-bottom: 1px solid var(--ap-line); }
body.ap .ap-faq__item summary {
  display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 22px 0; cursor: pointer; list-style: none;
  font-size: 1.1875rem; line-height: 1.4; font-weight: 600; color: var(--ap-ink);
}
body.ap .ap-faq__item summary::-webkit-details-marker { display: none; }
body.ap .ap-faq__item summary:hover { color: var(--ap-deep); }
body.ap .ap-faq__ico { position: relative; flex: 0 0 28px; height: 28px; border: 2px solid var(--ap-deep); border-radius: 50%; }
body.ap .ap-faq__ico::before, body.ap .ap-faq__ico::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 2px; margin: -1px 0 0 -6px; background: var(--ap-deep); transition: transform .2s; }
body.ap .ap-faq__ico::after { transform: rotate(90deg); }
body.ap .ap-faq__item[open] .ap-faq__ico::after { transform: rotate(0); }
body.ap .ap-faq__a { max-width: 70ch; padding: 0 52px 24px 0; }
body.ap .ap-faq-group + .ap-faq-group, body.ap .ap-faq-group + .ap-more-wrap { margin-top: 56px; }
body.ap .ap-faq-group__h { margin: 0 0 18px; }

/* ------------------------------------------------------------------ 10. Cards, grids, filters (archives, related, rotors) */
body.ap .ap-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; margin: 0; padding: 0; list-style: none; }
body.ap .ap-grid > li { min-width: 0; margin: 0; }
body.ap .ap-card {
  position: relative; display: flex; flex-direction: column; height: 100%; overflow: hidden; background: #fff;
  border: 1px solid var(--ap-line); border-radius: var(--ap-r); transition: box-shadow .2s, transform .2s, border-color .2s;
}
body.ap .ap-card:hover { box-shadow: var(--ap-shadow); transform: translateY(-3px); border-color: #b7c5f0; }
body.ap .ap-card__media { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--ap-surface); }
body.ap .ap-card__img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
body.ap .ap-card:hover .ap-card__img { transform: scale(1.03); }
body.ap .ap-card__body { display: flex; flex: 1; flex-direction: column; gap: 10px; padding: 22px 24px 24px; }
body.ap .ap-card__body > * { margin: 0 !important; }
body.ap .ap-card__kicker { font-size: .75rem; line-height: 1.4; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ap-link); }
body.ap .ap-card__title { font-size: 1.1875rem; line-height: 1.3; font-weight: 600; letter-spacing: -.005em; color: var(--ap-ink); }
body.ap .ap-card__link { color: var(--ap-ink); text-decoration: none; }
body.ap .ap-card__link::after { content: ""; position: absolute; inset: 0; }
/* The card clips the stretched link's ::after ring (overflow hidden), so the ring goes on the card itself; without :has() the title link keeps its own. */
@supports selector(:has(*)) {
  body.ap .ap-card:has(.ap-card__link:focus-visible) { outline: 3px solid var(--ap-focus); outline-offset: 3px; }
  body.ap :is(.ap-sec--deep, .ap-sec--ink, .ap-banner, .ap-foot) .ap-card:has(.ap-card__link:focus-visible) { outline-color: var(--ap-focus-dk); }
  body.ap .ap-card .ap-card__link:focus-visible, body.ap .ap-card .ap-card__link:focus-visible::after { outline: 0; }
}
body.ap .ap-card__link:hover { text-decoration: underline; text-underline-offset: 4px; }
body.ap .ap-card__excerpt { font-size: .9375rem; line-height: 1.55; color: var(--ap-muted); }
body.ap .ap-card__date { font-size: .8125rem; color: var(--ap-muted); }
body.ap .ap-card__cta { margin-top: auto !important; padding-top: 6px; font-weight: 600; color: var(--ap-link); }
@media (max-width: 1024px) { body.ap .ap-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { body.ap .ap-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; } }

body.ap .ap-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 40px; margin: 0 0 32px; padding: 20px 24px; border-radius: var(--ap-r); background: var(--ap-surface); }
body.ap .ap-filter { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
body.ap .ap-filter__label { font-size: .8125rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ap-deep); }
body.ap .ap-filter__opts { display: flex; flex-wrap: wrap; gap: 8px; }
body.ap .ap-fchip {
  min-height: 40px; padding: 8px 16px; border: 1.5px solid var(--ap-line); border-radius: 999px; background: #fff; color: var(--ap-ink);
  font: inherit; font-size: .9375rem; font-weight: 600; line-height: 1.2; cursor: pointer; transition: border-color .15s, background-color .15s, color .15s;
}
body.ap .ap-fchip:hover { border-color: var(--ap-deep); }
body.ap .ap-fchip[aria-pressed="true"] { border-color: var(--ap-deep); background: var(--ap-deep); color: #fff; }
body.ap .ap-filters__status { margin: 0 0 0 auto; font-size: .9375rem; color: var(--ap-muted); }
body.ap .ap-filters__reset, body.ap .ap-linkbtn { padding: 4px; border: 0; background: none; font: inherit; font-weight: 600; color: var(--ap-link); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
body.ap .ap-empty { margin: 8px 0 0; padding: 36px 24px; border: 1px dashed var(--ap-line); border-radius: var(--ap-r); text-align: center; }
body.ap .ap-more-wrap { margin: 36px 0 0; text-align: center; }
body.ap .ap-more-wrap--left { margin-top: 22px; text-align: left; }
html.ap-js .ap-late { display: none; }
body.ap .ap-index > .ap-chip { margin: 0 0 16px; }
@media (max-width: 640px) { body.ap .ap-filters { padding: 16px; gap: 14px; } body.ap .ap-filters__status { margin-left: 0; width: 100%; } }

/* Avada post cards (search and archive results): a linked category name is as tall as its line, so it is a 24px target without being hidden or moved. */
body.ap .post-card .fusion-title-size-div a { display: inline-block; min-height: 24px; }
/* The title above search and archive results: a long search term or name wraps inside the block instead of being clipped. */
body.ap .fusion-tb-page-title-bar .fusion-title-heading { overflow-wrap: anywhere; }
/* The byline of a single post (author, category) sits on the title bar's pale gradient, where Avada's link blue is under 3:1. Its links take the
   ink colour of the text around them and stay recognisable by the underline, which thickens on hover and focus. */
body.ap .fusion-tb-page-title-bar .fusion-meta-tb a { color: var(--ap-ink); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
body.ap .fusion-tb-page-title-bar .fusion-meta-tb a:is(:hover, :focus-visible) { color: var(--ap-ink); text-decoration-thickness: 2px; }

/* rotors and image slots: structure comes from the dynamics plugin (one rotor group = one card position in the row) */
body.ap .ap-rotor { gap: 28px; }
body.ap .ap-rotor--compact { gap: 16px; }
body.ap .ap-rotor__heading { margin: 0 0 20px; font-size: 1.5rem; font-weight: 600; color: var(--ap-ink); }
@media (min-width: 1025px) { body.ap .ap-rotor:not(.ap-rotor--compact) { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 640px) { body.ap .ap-rotor:not(.ap-rotor--compact) { gap: 20px; } }
body.ap .ap-slot { position: relative; margin: 0; }
body.ap .ap-slot__img { display: block; width: 100%; height: 100%; object-fit: cover; }
body:not(.ap-qa) .ap-slot__credit {
  position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}
body.ap-qa .ap-slot__credit { position: absolute; right: 10px; bottom: 8px; z-index: 2; max-width: 80%; padding: 2px 10px; border-radius: 999px; background: rgba(4, 9, 34, .72); color: #fff; font-size: .6875rem; line-height: 1.6; }

/* ------------------------------------------------------------------ 11. Success-case page (Single Project layout) */
body.ap-case .fusion-tb-page-title-bar, body.ap-noptb .fusion-tb-page-title-bar { display: none !important; }
body.ap .ap-hero--case { min-height: clamp(420px, 52vh, 560px); }
body.ap .ap-hero--case .ap-h1 { font-size: clamp(1.875rem, 1.2rem + 2.1vw, 2.875rem); line-height: 1.14; }
body.ap .ap-hero--case .ap-hero__in { max-width: 680px; }
body.ap .ap-case-body { padding-top: clamp(40px, 6vw, 72px) !important; padding-bottom: clamp(40px, 6vw, 72px) !important; }
/* Two-column rows: the case narrative with its facts rail, and the contact form with its side card. Avada stacks its own
   columns up to 1256px, so the grid sets the columns here: side by side from 1025px, one column below. */
body.ap :is(.ap-case-body, .ap-contact) > .fusion-builder-row {
  display: grid !important; grid-template-columns: minmax(0, 1fr); gap: 40px; align-items: start;
  max-width: calc(var(--ap-wrap) + 2 * var(--ap-gut)) !important; margin-left: auto !important; margin-right: auto !important;
  padding: 0 var(--ap-gut) !important;
}
body.ap :is(.ap-case-body, .ap-contact) > .fusion-builder-row::before,
body.ap :is(.ap-case-body, .ap-contact) > .fusion-builder-row::after { content: none !important; display: none !important; }
body.ap :is(.ap-case-body, .ap-contact) > .fusion-builder-row > .fusion-layout-column { width: auto !important; max-width: none !important; margin: 0 !important; }
body.ap :is(.ap-case-body, .ap-contact) > .fusion-builder-row > .fusion-layout-column > .fusion-column-wrapper { width: 100% !important; margin: 0 !important; padding: 0 !important; }
@media (min-width: 1025px) {
  body.ap .ap-case-body > .fusion-builder-row { grid-template-columns: minmax(0, 1fr) 360px; gap: 56px; }
  body.ap .ap-contact > .fusion-builder-row { grid-template-columns: minmax(0, 1fr) 400px; gap: 64px; }
  body.ap .ap-case-body > .fusion-builder-row > .fusion-layout-column:last-child { position: sticky; top: 104px; }
}
@media (max-width: 1024px) {
  body.ap .ap-case-body :is(.ap-case-prose, .ap-facts) { max-width: 760px; }
}
body.ap .ap-case-prose { font-size: 1.125rem; line-height: 1.7; color: var(--ap-text); }
body.ap .ap-case-prose :is(.fusion-fullwidth, .fusion-builder-row, .fusion-layout-column, .fusion-column-wrapper) { padding-left: 0 !important; padding-right: 0 !important; margin-left: 0 !important; margin-right: 0 !important; max-width: none !important; }
body.ap .ap-case-prose .fusion-fullwidth { padding-top: 0 !important; padding-bottom: 0 !important; background: none !important; }
body.ap .ap-case-prose .fusion-layout-column { width: 100% !important; margin-top: 0 !important; margin-bottom: 0 !important; }
body.ap .ap-case-prose .fusion-title { margin: clamp(32px, 4.5vw, 48px) 0 14px !important; }
body.ap .ap-case-prose .fusion-text { margin-bottom: 0 !important; }
body.ap:not(.ap-qa) .ap-case-prose .ap-gap { display: none !important; }
body.ap .ap-case-prose .fusion-text.ap-gap p { margin: 0; }
body.ap .ap-case-prose .awb-circles-info-title { font-size: clamp(1.05rem, 5.4vw, 2.25rem) !important; line-height: 1.15 !important; }
body.ap .ap-case-prose .fusion-title :is(h1, h2, h3, h4) { margin: 0 !important; font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem) !important; line-height: 1.2 !important; font-weight: 600 !important; color: var(--ap-ink) !important; text-align: left !important; }
body.ap .ap-case-prose .fusion-text, body.ap .ap-case-prose .fusion-text p { font-size: 1.125rem; line-height: 1.7; color: var(--ap-text); }
body.ap .ap-case-prose .fusion-text p { margin: 0 0 1.1em; }
body.ap .ap-case-prose .fusion-text a { color: var(--ap-link); text-decoration: underline; text-underline-offset: 3px; }
body.ap .ap-case-prose .fusion-checklist { margin: 1.2em 0 !important; }
body.ap .ap-case-prose .fusion-li-item { margin: 0 0 12px !important; padding: 16px 20px !important; border-left: 3px solid var(--ap-blue); border-radius: 0 var(--ap-r-s) var(--ap-r-s) 0; background: var(--ap-surface) !important; }
body.ap .ap-case-prose .fusion-li-item-content, body.ap .ap-case-prose .fusion-li-item-content p { color: var(--ap-text) !important; font-size: 1.0625rem !important; }
body.ap .ap-case-prose .fusion-li-item .icon-wrapper i, body.ap .ap-case-prose .fusion-li-item .icon-wrapper { color: var(--ap-blue) !important; background: none !important; }
body.ap .ap-case-prose .fusion-gallery { margin: 1.6em 0 !important; }
body.ap .ap-case-prose .fusion-imageframe { display: block; max-width: 100%; margin: 1.6em 0; }
body.ap .ap-case-prose .fusion-imageframe img { display: block; width: 100%; height: auto; border-radius: var(--ap-r-s); }
body.ap .ap-case-prose .fusion-gallery-image img { border-radius: var(--ap-r-s); }

body.ap .ap-facts { padding: 26px; border: 1px solid var(--ap-line); border-radius: var(--ap-r); background: #fff; box-shadow: 0 8px 24px rgba(15, 35, 133, .06); }
body.ap .ap-facts__back { display: inline-block; margin: 0 0 18px; font-weight: 600; color: var(--ap-link); text-decoration: none; }
body.ap .ap-facts__back:hover { text-decoration: underline; text-underline-offset: 3px; }
body.ap .ap-facts__h { margin: 0 0 12px; font-size: .8125rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--ap-deep); }
body.ap .ap-facts__list { margin: 0; }
body.ap .ap-facts__list > div { padding: 12px 0; border-top: 1px solid var(--ap-line); }
body.ap .ap-facts__list dt { margin: 0 0 2px; font-size: .8125rem; font-weight: 700; color: var(--ap-muted); }
body.ap .ap-facts__list dd { margin: 0; font-weight: 600; color: var(--ap-ink); }
body.ap .ap-facts__links { margin: 0; padding: 0; list-style: none; }
body.ap .ap-facts__links a { color: var(--ap-link); text-decoration: none; }
body.ap .ap-facts__links a:hover { text-decoration: underline; text-underline-offset: 3px; }
body.ap .ap-facts__note { margin: 14px 0 0; font-size: .875rem; line-height: 1.55; color: var(--ap-muted); }
body.ap .ap-facts__rev summary { cursor: pointer; font-size: .875rem; font-weight: 700; color: #5b4200; }
body.ap .ap-facts__rev .ap-chip { display: block; margin: 8px 0 0; }
body.ap .ap-facts__index { margin: 20px 0 0; padding: 18px 0 0; border-top: 1px solid var(--ap-line); }
body.ap .ap-facts__ih { margin: 0 0 8px; font-size: .8125rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--ap-deep); }
body.ap .ap-facts__index ol { margin: 0; padding: 0; list-style: none; }
body.ap .ap-facts__index .ap-facts__subsection { padding-left: calc(14px * var(--ap-toc-depth, 1)); }
body.ap .ap-release-artwork { display: block; width: 100%; height: auto; margin: 0 0 24px; border-radius: var(--ap-r); }
body.ap .ap-facts__index a { display: block; padding: 6px 0 6px 14px; border-left: 2px solid var(--ap-line); font-size: .9375rem; line-height: 1.4; color: var(--ap-text); text-decoration: none; }
body.ap .ap-facts__index a:hover { color: var(--ap-deep); }
body.ap .ap-facts__index a[aria-current="true"] { border-left-color: var(--ap-blue); font-weight: 700; color: var(--ap-deep); }
body.ap .ap-facts__cta { margin: 22px 0 0; padding: 20px; border-radius: var(--ap-r-s); background: var(--ap-deep); }
body.ap .ap-facts__ask { margin: 0 0 12px; font-size: 1.0625rem; font-weight: 700; color: #fff; }
body.ap .ap-facts__fam { margin: -4px 0 14px; font-size: .9375rem; line-height: 1.4; color: #fff; }
body.ap .ap-facts__cta .ap-btn { background: #fff; border-color: #fff; color: var(--ap-deep) !important; }
body.ap .ap-facts__cta .ap-btn:hover { background: var(--ap-amber); border-color: var(--ap-amber); }
body.ap .ap-facts__cta a:focus-visible { outline-color: var(--ap-focus-dk); }
@media (max-width: 1024px) { body.ap .ap-facts { margin-top: 0; } }

/* ------------------------------------------------------------------ 12. Newsletter */
body.ap .ap-news { max-width: 600px; }
body.ap .ap-news__row { display: flex; flex-wrap: wrap; gap: 10px; }
body.ap .ap-news__input {
  flex: 1 1 260px; min-width: 0; min-height: 48px; padding: 0 22px; border: 1.5px solid #8fa3e6; border-radius: 999px; background: #fff;
  font: inherit; font-size: 1rem; color: var(--ap-ink);
}
body.ap .ap-news__input::placeholder { color: #5a6385; opacity: 1; }
body.ap .ap-news__consent { margin: 14px 0 0; font-size: .9375rem; }
body.ap .ap-news__consent label { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; }
body.ap .ap-news__consent input { flex: 0 0 20px; width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--ap-btn); }
body.ap .ap-news__fine { margin: 10px 0 0; font-size: .875rem; color: var(--ap-muted); }
body.ap .ap-news__hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
body.ap .ap-news__msg { margin: 0 0 14px; padding: 10px 14px; border: 1px solid #c62828; border-radius: var(--ap-r-s); background: #fff4f4; font-weight: 600; color: #7a1010; }
body.ap .ap-news--dark { color: #e5ebff; }
body.ap .ap-news--dark .ap-news__fine, body.ap .ap-news--dark .ap-news__fine a { color: #dbe3ff; }
body.ap .ap-news--dark .ap-btn { background: #fff; border-color: #fff; color: var(--ap-deep) !important; }
body.ap .ap-news--dark .ap-btn:hover { background: var(--ap-amber); border-color: var(--ap-amber); }
body.ap .ap-news--dark :is(input, button):focus-visible { outline-color: var(--ap-focus-dk); }

/* ------------------------------------------------------------------ 12b. System pages: contact form and side card, press enquiries, legal text, 404 */
body.ap .ap-pad { padding-top: var(--ap-sp) !important; padding-bottom: var(--ap-sp) !important; }
body.ap .ap-pad:not(.ap-contact, .ap-case-body) > .fusion-builder-row { max-width: calc(var(--ap-wrap) + 2 * var(--ap-gut)) !important; padding: 0 var(--ap-gut) !important; }

body.ap .fusion-form :is(.fusion-form-label-wrapper > label, .fusion-form-field > label) { display: block; margin: 0 0 8px; font-size: 1rem; font-weight: 600; line-height: 1.4; color: var(--ap-ink); }
body.ap .fusion-form .fusion-form-element-required { color: #b3261e; text-decoration: none; }
body.ap .fusion-form .fusion-form-input:not([type="checkbox"], [type="radio"]) {
  width: 100%; min-height: 52px; padding: 12px 16px; border: 1.5px solid #8fa3e6 !important; border-radius: var(--ap-r-s) !important;
  background: #fff !important; font: inherit; font-size: 1rem; line-height: 1.4; color: var(--ap-ink) !important; box-shadow: none !important;
}
body.ap .fusion-form textarea.fusion-form-input { min-height: 150px; resize: vertical; }
body.ap .fusion-form .fusion-form-input:focus { border-color: var(--ap-link) !important; outline: 3px solid rgba(31, 79, 214, .28); outline-offset: 1px; }
body.ap .fusion-form .fusion-form-checkbox label { min-height: 24px; padding-left: 36px; line-height: 1.5; cursor: pointer; }
body.ap .fusion-form .fusion-form-checkbox label::before { width: 24px; height: 24px; min-width: 24px; border: 1.5px solid #8fa3e6 !important; border-radius: 6px; background: #fff; }
body.ap .fusion-form .fusion-form-checkbox input:checked + label::before { border-color: var(--ap-link) !important; background: var(--ap-link); }
body.ap .fusion-form .fusion-form-checkbox input:checked + label::after { left: 8px; width: 6px; height: 12px; border: solid #fff; border-width: 0 2.5px 2.5px 0; border-radius: 0; background: transparent; transform: translateY(-62%) rotate(45deg); }
body.ap .fusion-form .fusion-form-checkbox input:focus-visible + label::before { outline: 3px solid rgba(31, 79, 214, .35); outline-offset: 2px; }
body.ap .fusion-form .fusion-form-checkbox label { font-size: 1rem; font-weight: 500; color: var(--ap-text); }
body.ap .fusion-form .fusion-form-submit-field > div { text-align: left !important; }
body.ap .fusion-form .fusion-form-submit-field .fusion-button {
  display: inline-block !important; width: auto !important; min-width: 180px; min-height: 52px; padding: 12px 40px !important; border: 2px solid var(--ap-btn) !important;
  border-radius: 999px !important; background: var(--ap-btn) !important; color: #fff !important; font-size: 1rem; font-weight: 600;
}
body.ap .fusion-form .fusion-form-submit-field .fusion-button .fusion-button-text { color: #fff !important; }
body.ap .fusion-form .fusion-form-submit-field .fusion-button:hover { border-color: var(--ap-btn-h) !important; background: var(--ap-btn-h) !important; }

body.ap .ap-side, body.ap .ap-side * { box-sizing: border-box; }
body.ap .ap-side { overflow: hidden; border: 1px solid var(--ap-line); border-radius: var(--ap-r); background: #fff; box-shadow: 0 8px 24px rgba(15, 35, 133, .06); font-size: 1.0625rem; line-height: 1.6; font-weight: 500; color: var(--ap-text); }
body.ap .ap-side__media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--ap-surface); }
body.ap .ap-side__media .ap-slot { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; }
body.ap .ap-side__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
body.ap .ap-side__body { padding: 24px 26px 28px; }
body.ap .ap-side__body .ap-h3 { margin: 0 0 10px; }
body.ap .ap-side__body p { margin: 0 0 .8em; }
body.ap .ap-side__body a { font-weight: 600; color: var(--ap-link); text-decoration: underline; text-underline-offset: 3px; }
body.ap .ap-side__body .ap-side__small { margin-bottom: 0; font-size: .875rem; line-height: 1.55; color: var(--ap-muted); }

body.ap .ap-linkrow { display: flex; flex-wrap: wrap; gap: 14px 32px; margin: 28px 0 0; }
body.ap .ap-media-contact { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px 40px; }
body.ap .ap-media-contact .ap-eyebrow { margin-bottom: 8px; }
body.ap .ap-media-contact .ap-h3 { margin: 0 0 8px; }
body.ap .ap-media-contact p { margin: 0; }

body.ap .ap-prose { font-size: 1.0625rem; line-height: 1.7; color: var(--ap-text); }
body.ap .ap-prose :is(h1, h2, h3, h4) { margin: 2.2em 0 .6em; color: var(--ap-ink); font-weight: 600; letter-spacing: -.01em; line-height: 1.25; text-wrap: balance; }
body.ap .ap-prose h2 { font-size: clamp(1.5rem, 1.2rem + 1vw, 1.875rem); }
body.ap .ap-prose h3 { font-size: 1.3125rem; }
body.ap .ap-prose h4 { font-size: 1.125rem; }
body.ap .ap-prose > :first-child { margin-top: 0; }
body.ap .ap-prose p { margin: 0 0 1.1em; }
body.ap .ap-prose :is(ul, ol) { margin: 0 0 1.2em; padding-left: 1.3em; }
body.ap .ap-prose li { margin: 0 0 .5em; }
body.ap .ap-prose strong { font-weight: 700; color: var(--ap-ink); }
body.ap .ap-prose a { color: var(--ap-link); text-decoration: underline; text-underline-offset: 3px; }
body.ap .ap-prose table { width: 100%; margin: 0 0 1.4em; border-collapse: collapse; font-size: .9688rem; }
body.ap .ap-prose :is(th, td) { padding: 10px 12px; border: 1px solid var(--ap-line); text-align: left; vertical-align: top; }

body.ap .ap-notfound { padding-top: calc(var(--ap-sp) * 1.1); padding-bottom: calc(var(--ap-sp) * 1.1); }
body.ap .ap-notfound .ap-head { margin-bottom: 0; }
body.ap .ap-notfound .ap-actions { justify-content: center; }

/* ------------------------------------------------------------------ 13. Header and mega panels (Avada Layout Builder header, restyled) */
body.ap .fusion-tb-header { position: sticky; top: 0; z-index: 20050; border-bottom: 1px solid var(--ap-line); background: #fff; transition: box-shadow .2s ease; }
html.ap-scrolled body.ap .fusion-tb-header { box-shadow: 0 8px 28px rgba(15, 35, 133, .12); }
html { scroll-padding-top: 104px; }
body.ap .fusion-tb-header .awb-menu__main-ul > li.ap-mm-off > .awb-menu__mega-wrap { visibility: hidden !important; opacity: 0 !important; pointer-events: none !important; }
body.ap .fusion-tb-header > .fusion-fullwidth, body.ap .fusion-tb-header .fusion-fullwidth { padding-top: 10px !important; padding-bottom: 10px !important; background: #fff !important; }
body.ap .fusion-tb-header .fusion-builder-row { align-items: center; }
body.ap .fusion-tb-header .awb-menu__main-a { color: var(--ap-ink); font-weight: 600; }
body.ap .fusion-tb-header .awb-menu__main-li:hover > .awb-menu__main-a, body.ap .fusion-tb-header .awb-menu__main-li:focus-within > .awb-menu__main-a { color: var(--ap-btn-h); }
body.ap .fusion-tb-header .awb-menu__main-background-active { border-color: var(--ap-btn-h) !important; }
body.ap .fusion-tb-header .fusion-button.button-1 {
  min-height: 46px; padding: 11px 24px !important; border: 2px solid var(--ap-btn) !important; border-radius: 999px !important;
  background: var(--ap-btn) !important; color: #fff !important; font-weight: 600 !important; line-height: 1.2 !important; white-space: nowrap;
}
body.ap .fusion-tb-header .fusion-button.button-1 :is(.fusion-button-text, .awb-button__text) { color: #fff !important; }
body.ap .fusion-tb-header .fusion-button.button-1:hover { background: var(--ap-btn-h) !important; border-color: var(--ap-btn-h) !important; }
body.ap .fusion-tb-header a.fb-icon-element-1 { --awb-width: 46px !important; --awb-height: 46px !important; --awb-line-height: 46px !important; --awb-font-size: 22px !important; --awb-margin-right: 0px !important; }
body.ap .ap-hdr-util { margin: 0 20px 0 24px !important; }
body.ap .ap-hdr-util p { margin: 0; }
body.ap .ap-hdr-util a { font-size: .9375rem; font-weight: 600; color: var(--ap-ink); text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
body.ap .ap-hdr-util a:hover { color: var(--ap-btn-h); }
body.ap .fusion-column-wrapper:has(> .ap-hdr-util) { flex-wrap: nowrap !important; align-items: center; }
@media (max-width: 1100px) { body.ap .ap-hdr-util { display: none !important; } }
body.ap .fusion-tb-header .fusion-button { white-space: nowrap; }
@media (min-width: 1101px) {
  body.ap .fusion-tb-header .fusion-builder-row > .fusion-layout-column:has(.ap-hdr-util) { width: auto !important; flex: 0 0 auto !important; margin-left: auto !important; }
  body.ap .fusion-tb-header .fusion-builder-row > .fusion-layout-column:has(.awb-menu__main-ul) { width: auto !important; flex: 1 1 0 !important; min-width: 0; }
  body.ap .fusion-tb-header > .fusion-fullwidth > .fusion-builder-row > .fusion-layout-column:first-child { width: auto !important; flex: 0 0 auto !important; padding-right: 40px !important; }
  body.ap .fusion-tb-header .fusion-builder-row:has(.awb-menu__main-ul) { flex-wrap: nowrap !important; }
  body.ap .fusion-tb-header .awb-menu__main-ul { flex-wrap: nowrap !important; justify-content: flex-end !important; }
  body.ap .fusion-tb-header .awb-menu__main-ul > li { margin-right: 12px !important; }
  body.ap .fusion-tb-header .awb-menu__main-ul > li > a { font-size: 15px !important; white-space: nowrap !important; }
  body.ap .fusion-tb-header .awb-menu__main-ul > li .menu-text { white-space: nowrap !important; }
}
/* The desktop menu is Avada's large-visibility element, so it shows from 1257px (visibility_medium 1256 + 1).
   The menu button stays until then; hiding it earlier left 1101-1256px with no navigation at all. */
@media (min-width: 1257px) { body.ap .fusion-tb-header .corporation-menu { display: none !important; } }
/* Compact desktop header: logo, seven menu items, search, Contact and the CTA need ~1340px at full size.
   Below 1440px the side padding, logo and utility margins shrink, and the gap between menu items scales with the viewport. */
@media (min-width: 1257px) and (max-width: 1439px) {
  body.ap .fusion-tb-header > .fusion-fullwidth { padding-left: 24px !important; padding-right: 24px !important; }
  body.ap .fusion-tb-header > .fusion-fullwidth > .fusion-builder-row > .fusion-layout-column:first-child { padding-right: 20px !important; }
  body.ap .fusion-tb-header > .fusion-fullwidth > .fusion-builder-row > .fusion-layout-column:first-child :is(.fusion-imageframe, img) { max-width: 128px !important; height: auto !important; }
  body.ap .fusion-tb-header .awb-menu__main-ul { gap: clamp(10px, calc((100vw - 1113px) / 6 - 3px), 34px); }
  body.ap .fusion-tb-header .awb-menu__main-ul > li { margin-left: 0 !important; margin-right: 0 !important; }
  body.ap .ap-hdr-util { margin: 0 16px 0 14px !important; }
}
body.ap .awb-off-canvas li.menu-item:has(.fa-search) { display: none !important; }

body.ap .fusion-tb-header .awb-menu__mega-wrap { overflow: hidden; border: 1px solid var(--ap-line); border-top: 0; border-radius: 0 0 var(--ap-r) var(--ap-r); background: #fff; box-shadow: 0 28px 60px rgba(4, 9, 34, .2); }
body.ap .fusion-tb-header .awb-menu__mega-wrap .fusion-fullwidth { padding: 0 !important; background: #fff !important; }
body.ap .ap-mm { background: #fff; text-align: left; color: var(--ap-text); font-size: 1rem; line-height: 1.5; }
body.ap .ap-mm__main { display: grid; grid-template-columns: minmax(0, 1fr) 300px; }
body.ap .ap-mm__cols { display: grid; gap: 28px 40px; padding: 34px 40px 30px; align-content: start; }
body.ap .ap-mm__cols--1 { grid-template-columns: minmax(0, 1fr); }
body.ap .ap-mm__cols--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
body.ap .ap-mm__cols--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
body.ap .ap-mm__cols--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
/* Heading, intro and list rows are shared across the columns, so the lists start level however the intros wrap. */
@supports (grid-template-rows: subgrid) {
  body.ap .ap-mm__cols { row-gap: 0; }
  body.ap .ap-mm__cols > .ap-mm__col { display: grid; grid-row: span 3; grid-template-columns: minmax(0, 1fr); grid-template-rows: subgrid; }
}
body.ap .ap-mm__head { margin: 0 0 4px; font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--ap-deep); }
body.ap .ap-mm__head a { color: inherit; text-decoration: none; }
body.ap .ap-mm__head a:hover { text-decoration: underline; text-underline-offset: 3px; }
body.ap .ap-mm__sub { margin: 0 0 12px; min-height: 3em; font-size: .9rem; line-height: 1.5; color: var(--ap-muted); }
body.ap .ap-mm__list { margin: 0; padding: 0; list-style: none; }
body.ap .ap-mm__list li { margin: 0; padding: 0; }
body.ap .ap-mm__list a { display: block; padding: 8px 0; font-size: 1rem; line-height: 1.35; font-weight: 600; color: var(--ap-ink); text-decoration: none; }
body.ap .ap-mm__list a:hover { color: var(--ap-btn-h); text-decoration: underline; text-underline-offset: 4px; }
/* Two pills per row while each keeps room for its longest word; one per row (never an overflow) when the column or the text size leaves less. */
/* Workbook 2026-11-01: the five industries are a compact icon list under the Media and Tech Companies links. */
body.ap .ap-mm__stack { display: grid; align-content: start; gap: 14px; min-width: 0; }
body.ap .ap-mm__industries { padding-top: 14px; border-top: 1px solid var(--ap-line); }
body.ap .ap-mm__minihead { margin: 0 0 6px; font-size: .75rem; line-height: 1.4; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--ap-muted); }
body.ap .ap-mm__industry-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 11.5rem), 1fr)); gap: 0 16px; margin: 0; padding: 0; list-style: none; }
body.ap .ap-mm__industry-grid li { min-width: 0; margin: 0; }
body.ap .ap-mm__industry-grid a { display: flex; align-items: center; gap: 8px; min-height: 36px; padding: 4px 0; color: var(--ap-ink); font-size: .875rem; font-weight: 600; line-height: 1.25; text-decoration: none; }
body.ap .ap-mm__industry-grid a:hover { color: var(--ap-btn-h); text-decoration: underline; text-underline-offset: 4px; }
body.ap .ap-mm__industry-grid a > span:not(.ap-mm__industry-icon) { min-width: 0; overflow-wrap: anywhere; }
body.ap .ap-mm__industry-icon { display: grid; flex: 0 0 24px; width: 24px; height: 24px; place-items: center; border-radius: 6px; background: var(--ap-surface); color: var(--ap-link); }
body.ap .ap-mm__industry-icon svg { width: 16px; height: 16px; }
body.ap .ap-mm__feat { padding: 22px; border-left: 1px solid var(--ap-line); background: var(--ap-surface); }
body.ap .ap-mm__feat .ap-card { box-shadow: none; transform: none; }
body.ap .ap-mm__feat .ap-card__body { padding: 16px 18px 18px; gap: 8px; }
body.ap .ap-mm__feat .ap-card__title { font-size: 1rem; }
body.ap .ap-mm__feat .ap-card__excerpt { display: none; }
body.ap .ap-mm__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 28px; padding: 14px 40px; border-top: 1px solid var(--ap-line); background: #fff; }
body.ap .ap-mm__all { display: inline-flex; align-items: baseline; gap: 10px; color: var(--ap-ink); text-decoration: none; }
body.ap .ap-mm__all strong { font-weight: 700; }
body.ap .ap-mm__all span { font-weight: 600; color: var(--ap-link); }
body.ap .ap-mm__all:hover span { text-decoration: underline; text-underline-offset: 3px; }
body.ap .ap-mm__ask { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; font-size: .9375rem; font-weight: 600; color: var(--ap-deep); }
body.ap .ap-mm__ask .ap-btn { white-space: nowrap; }

/* ------------------------------------------------------------------ 14. Off-canvas drawer */
body.ap .ap-drawer { padding: 6px 4px 28px; }
body.ap .ap-drawer__brand { margin: 0 0 18px; font-size: 1.75rem; line-height: 1.2; font-weight: 700; letter-spacing: -.01em; color: var(--ap-deep); }
body.ap .ap-drawer__g { border-bottom: 1px solid var(--ap-line); }
body.ap .ap-drawer__g summary, body.ap .ap-drawer__top {
  display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 0; list-style: none; cursor: pointer;
  font-size: 1.25rem; line-height: 1.3; font-weight: 600; color: var(--ap-deep); text-decoration: none;
}
body.ap .ap-drawer__g summary::-webkit-details-marker { display: none; }
body.ap .ap-drawer__g[open] > summary { color: var(--ap-link); }
body.ap .ap-drawer__chev { flex: 0 0 auto; width: 10px; height: 10px; margin: -4px 6px 0 0; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform .2s; }
body.ap .ap-drawer__g[open] > summary .ap-drawer__chev, body.ap .ap-drawer__fam[open] > summary .ap-drawer__chev { margin-top: 4px; transform: rotate(-135deg); }
body.ap .ap-drawer__g ul { margin: 0 0 12px; padding: 0; list-style: none; }
body.ap .ap-drawer__content { padding-bottom: 12px; }
body.ap .ap-drawer__overview { display: block; margin: 0 0 16px; padding: 10px 12px; border-radius: var(--ap-r-s); background: var(--ap-surface); color: var(--ap-link); font-weight: 700; text-decoration: none; }
body.ap .ap-drawer__section { margin: 0 0 12px; }
body.ap .ap-drawer__section-label { margin: 0 0 4px; font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ap-muted); }
body.ap .ap-drawer__section--two ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
body.ap .ap-drawer__g li { margin: 0; }
body.ap .ap-drawer__g li a { display: block; padding: 10px 0 10px 2px; font-size: 1.0625rem; font-weight: 500; color: var(--ap-ink); text-decoration: none; }
body.ap .ap-drawer__g li a:hover { color: var(--ap-link); text-decoration: underline; text-underline-offset: 3px; }
body.ap .ap-drawer__cta { position: sticky; bottom: 0; z-index: 2; display: flex; flex-wrap: wrap; gap: 10px; margin: 20px 0 0; padding: 14px 0; border-top: 1px solid var(--ap-line); background: #fff; }
body.ap .ap-drawer__cta .ap-btn { flex: 1 1 auto; justify-content: center; }
body.ap .ap-drawer__mail { margin: 18px 0 0; text-align: center; }
body.ap .ap-drawer__mail a { font-weight: 600; color: var(--ap-link); text-underline-offset: 3px; }

/* ------------------------------------------------------------------ 15. Footer */
body.ap .fusion-tb-footer { margin: 0 !important; }
body.ap .ap-foot { width: 100%; padding: clamp(48px, 7vw, 80px) 0 28px; background: var(--ap-ink); color: #dbe3ff; }
body.ap .ap-foot__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2.3fr); gap: clamp(32px, 5vw, 72px); }
body.ap .ap-foot__brand > .ap-btn { white-space: nowrap; }
body.ap .ap-foot__line { margin: 0 0 24px; max-width: 38ch; font-size: 1.0625rem; line-height: 1.6; color: #dbe3ff; }
body.ap .ap-foot__talk { display: inline-block; margin-top: 18px; font-weight: 600; color: #fff; text-decoration: underline; text-underline-offset: 4px; }
body.ap .ap-foot__nav { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px clamp(20px, 3vw, 40px); align-content: start; }
body.ap .ap-foot__h { margin: 0 0 6px; padding: 0 0 10px; border-bottom: 1px solid rgba(255, 255, 255, .28); font-size: .75rem; line-height: 1.4; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #fff; }
body.ap .ap-foot__nav .ap-foot__h a { display: inline; padding: 0; font-weight: 700; }
body.ap .ap-foot__nav ul { margin: 0; padding: 0; list-style: none; }
body.ap .ap-foot__nav li { margin: 0; }
body.ap .ap-foot__nav a { display: block; padding: 7px 0; font-weight: 600; color: #fff; text-decoration: none; }
body.ap .ap-foot__nav a:hover { text-decoration: underline; text-underline-offset: 4px; }
body.ap .ap-foot__base { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; margin-top: clamp(32px, 5vw, 56px); padding-top: 22px; border-top: 1px solid rgba(255, 255, 255, .16); font-size: .875rem; color: #c9d3ff; }
body.ap .ap-foot__base p { margin: 0; }
body.ap .ap-foot__base ul { display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 0; padding: 0; list-style: none; }
body.ap .ap-foot__base a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 1000px) { body.ap .ap-foot__grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 640px) { body.ap .ap-foot__nav { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { body.ap .ap-foot__nav { grid-template-columns: minmax(0, 1fr); } }

/* ------------------------------------------------------------------ 16. QA-only helpers (visible only on the QA host) */
body.ap .ap-chip { display: none; }
body.ap-qa .ap-chip {
  display: inline-block; max-width: 100%; padding: 2px 9px; border: 1px dashed #b88a00; border-radius: 6px; background: #fff3cd; color: #5b4200;
  font-size: .75rem; font-weight: 600; letter-spacing: 0; line-height: 1.5; text-transform: none; vertical-align: middle;
}
body.ap .ap-qa-only { display: none !important; }
body.ap-qa .ap-qa-only { display: block !important; }

/* Sticky offsets are measured against the actual Avada header, including the admin bar. */
body.ap .ap-jump-wrap { position: sticky; top: var(--ap-header-offset, 90px); z-index: 98; overflow: visible !important; }
body.ap .ap-jump-wrap > .fusion-builder-row { overflow: visible; }
body.ap .ap-jump ul { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: thin; }
body.ap .ap-jump li { flex: 0 0 auto; }
body.ap .ap-jump a[aria-current] { border-bottom-color: var(--ap-blue); color: var(--ap-link); }
body.ap [id] { scroll-margin-top: var(--ap-anchor-offset, 160px); }
html.ap-has-jump { scroll-padding-top: var(--ap-anchor-offset, 160px); }
html.ap-has-jump body.ap [id] { scroll-margin-top: 0; }
body.ap .ap-trig[data-ap-prefs], body.ap .ap-trig--families { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
body.ap .ap-trig[data-ap-prefs] .ap-trig__item, body.ap .ap-trig--families .ap-trig__item { display: flex; flex-direction: column; padding: 28px; border: 1px solid var(--ap-line); border-radius: var(--ap-r); background: #fff; transition: box-shadow .2s, border-color .2s; }
body.ap .ap-trig[data-ap-prefs] .ap-trig__item:hover, body.ap .ap-trig--families .ap-trig__item:hover,
body.ap .ap-trig[data-ap-prefs] .ap-trig__item:focus-within, body.ap .ap-trig--families .ap-trig__item:focus-within { border-color: var(--ap-blue); box-shadow: var(--ap-shadow); }
body.ap .ap-trig__icon { display: grid; place-items: center; width: 52px; height: 52px; margin-bottom: 20px; border-radius: 14px; background: var(--ap-surface); color: var(--ap-link); font-size: 1.8rem; }
body.ap .ap-trig[data-ap-prefs] .ap-trig__route, body.ap .ap-trig--families .ap-trig__route { margin-top: auto; padding-top: 18px; }
body.ap .ap-bridge__art { height: clamp(110px, 18vw, 220px); margin-bottom: 0; }
body.ap .ap-offerings { display: grid; gap: 32px; }
body.ap .ap-offering { padding: clamp(24px, 4vw, 44px); border: 1px solid var(--ap-line); border-radius: var(--ap-r); background: #fff; transition: box-shadow .2s, border-color .2s; }
body.ap .ap-offering:hover, body.ap .ap-offering:target { border-color: var(--ap-blue); box-shadow: var(--ap-shadow); }
body.ap .ap-offering__head { display: grid; grid-template-columns: minmax(0, 300px) minmax(0, 1fr); gap: clamp(20px, 3vw, 40px); align-items: start; }
body.ap .ap-offering__media { position: relative; border-radius: var(--ap-r-s); overflow: hidden; background: var(--ap-surface); }
body.ap .ap-offering__media .ap-slot { border-radius: var(--ap-r-s); }
body.ap .ap-offering header { max-width: 760px; }
body.ap .ap-offering header .ap-eyebrow { display: flex; align-items: center; gap: 10px; }
body.ap .ap-offering__n { display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--ap-deep); color: #fff; font-size: .8125rem; font-weight: 700; letter-spacing: 0; }
body.ap .ap-offering header .ap-h3 { margin: 6px 0 8px; font-size: clamp(1.5rem, 1.2rem + 1vw, 1.9rem); }
body.ap .ap-offering__link { color: var(--ap-ink); text-decoration: none; }
body.ap .ap-offering__link:hover { color: var(--ap-link); text-decoration: underline; text-underline-offset: 4px; }
body.ap .ap-offering header .ap-more { display: inline-flex; margin-top: 6px; }
body.ap .ap-offering__detail { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 28px; margin-top: 28px; }
body.ap .ap-offering__detail > div { padding: 24px 26px; border-radius: var(--ap-r-s); background: var(--ap-surface); border-top: 3px solid var(--ap-blue); }
body.ap .ap-offering__detail > div:last-child { border-top-color: var(--ap-amber); }
body.ap .ap-offering__detail h4 { display: flex; align-items: center; gap: 10px; margin: 0 0 12px; font-size: 1.0625rem; }
body.ap .ap-offering__detail h3 { margin: 0 0 14px; font-size: clamp(1.25rem, 1.1rem + .5vw, 1.5rem); line-height: 1.25; }
body.ap .ap-sec--surface .ap-offering__detail > div { background: #fff; }
body.ap .ap-offering__ico { display: inline-block; width: 22px; height: 22px; border-radius: 6px; background: var(--ap-deep); position: relative; }
body.ap .ap-offering__ico::after { content: ""; position: absolute; left: 6px; top: 5px; width: 10px; height: 10px; border: 2px solid #fff; border-radius: 2px; }
body.ap .ap-offering__ico--how::after { border-radius: 50%; }
body.ap .ap-offering__ico--get { background: #b8860b; }
body.ap .ap-offering__ico--get::after { border-width: 0 2px 2px 0; border-radius: 0; transform: rotate(45deg); width: 6px; height: 11px; left: 8px; top: 3px; }
body.ap .ap-offering__detail ul { padding-left: 1.2em; margin-bottom: 0; }
body.ap .ap-offering__detail li { margin-bottom: .65em; }
@media (max-width: 760px) { body.ap .ap-offering__head { grid-template-columns: minmax(0, 1fr); } body.ap .ap-offering__media { max-width: 420px; } }
body.ap .ap-faq > details { padding: 20px 0; border-bottom: 1px solid var(--ap-line); }
body.ap .ap-faq > details > summary { cursor: pointer; font-weight: 700; color: var(--ap-deep); min-height: 44px; }
body.ap .ap-sort { display: flex; gap: 12px; align-items: center; justify-content: flex-end; margin-bottom: 20px; font-weight: 600; }
body.ap .ap-sort[hidden] { display: none; }
body.ap .ap-sort select { min-height: 44px; max-width: 100%; padding: 8px 32px 8px 12px; border: 1px solid var(--ap-line); border-radius: 8px; background: white; color: var(--ap-ink); font: inherit; }
body.ap .ap-article-native-prose { min-width: 0; }
body.ap .ap-article-native-prose blockquote a { color: var(--ap-link); text-decoration: underline; text-underline-offset: 3px; }
body.ap .ap-article-native-prose blockquote a:is(:hover, :focus-visible) { color: var(--ap-ink); }
/* The retained article's coral accent needs a darker text variant on white. */
body.ap.postid-6209 .ngulam-article .article-eyebrow,
body.ap.postid-6209 .ngulam-article a { color: #a84730; }
body.ap.postid-6209 .ngulam-article a:is(:hover, :focus-visible) { color: #893e2a; }
body.ap .ap-article-native-rail { position: sticky; top: 110px; max-height: calc(100vh - 130px); overflow-y: auto; }
body.ap .ap-article-rail { position: static; max-height: none; overflow: visible; }
body.ap .ap-article-native-rail .ap-rotor { grid-template-columns: minmax(0, 1fr); }
body.ap .ap-article-native-rail .ap-news { margin: 28px 0; }
body.ap .ap-article-rail .ap-more { display: block; margin-top: 18px; }
body.ap .ap-article-rail .ap-facts__cta .ap-more { color: #fff; }
body.ap .ap-case-draft { border-left: 3px solid var(--ap-blue); padding: 12px 16px; background: var(--ap-surface); }
body.ap .ap-social { display: flex; flex-wrap: wrap; gap: 12px; padding: 24px 0 0; margin: 0; list-style: none; }
body.ap .ap-social a { min-height: 44px; padding: 8px 12px; display: inline-flex; align-items: center; border: 1px solid rgba(255,255,255,.35); border-radius: 8px; color: white; }
@media (max-width: 1024px) {
  body.ap .ap-trig[data-ap-prefs], body.ap .ap-trig--families { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  body.ap .ap-article-native-rail { position: static; max-height: none; }
}
@media (max-width: 640px) {
  body.ap .ap-trig[data-ap-prefs], body.ap .ap-trig--families, body.ap .ap-offering__detail { grid-template-columns: minmax(0, 1fr); }
  body.ap .ap-sort { flex-wrap: wrap; justify-content: flex-start; }
}

/* ------------------------------------------------------------------ 17. Motion and print */
@media (prefers-reduced-motion: reduce) {
  body.ap *, body.ap *::before, body.ap *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media print {
  body.ap .fusion-tb-header,
body.ap .ap-foot,
body.ap .ap-qa-banner,
body.ap .ap-facts__index,
body.ap .ap-filters,
body.ap .ap-news,
body.ap .ap-cta { display: none !important; }
  body.ap .ap-hero { min-height: 0; }
  body.ap .ap-hero__media { display: none; }
}
/* Avada's entrance animations must not hide content when scripting is unavailable. */
html:not(.ap-js) body.ap .fusion-animated {
    visibility: visible !important;
    animation: none !important;
}

/* ------------------------------------------------------------------ 18. Founder feedback v2 (28 Oct 2026) */
/* Logo marquee: one frameless line moving slowly; pauses on hover/focus and manual pause; static under reduced motion / no JS. */
body.ap .ap-logos--marquee { position: relative; margin: 20px 0 0; }
body.ap .ap-logos__track { display: flex; width: max-content; gap: 0; }
body.ap .ap-logos__list { display: flex; flex: 0 0 auto; align-items: center; gap: 0; margin: 0; padding: 0; list-style: none; }
body.ap .ap-logos__list li { flex: 0 0 auto; width: 220px; margin: 0; padding: 0 22px; border: 0; background: none; }
body.ap .ap-logos__list img { display: block; width: 100%; height: 76px; object-fit: contain; }
body.ap .ap-logos--marquee { overflow: hidden; mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
@keyframes ap-marquee { to { transform: translateX(-50%); } }
html.ap-js body.ap .ap-logos--marquee .ap-logos__track { animation: ap-marquee var(--ap-marquee, 90s) linear infinite; }
html.ap-js body.ap .ap-logos--marquee:hover .ap-logos__track,
html.ap-js body.ap .ap-logos--marquee:focus-within .ap-logos__track,
html.ap-js body.ap .ap-logos--marquee.is-paused .ap-logos__track { animation-play-state: paused; }
html:not(.ap-js) body.ap .ap-logos__list--dup, html:not(.ap-js) body.ap .ap-logos__pause { display: none; }
html:not(.ap-js) body.ap .ap-logos--marquee { mask-image: none; -webkit-mask-image: none; }
html:not(.ap-js) body.ap .ap-logos__track { width: 100%; }
html:not(.ap-js) body.ap .ap-logos__list { flex-wrap: wrap; justify-content: center; width: 100%; }
body.ap .ap-logos__pause:focus { position: absolute !important; left: 50%; top: 100%; width: auto; height: auto; margin: 8px 0 0; padding: 8px 14px; transform: translateX(-50%); clip: auto; clip-path: none; overflow: visible; background: #fff; color: var(--ap-deep); border: 2px solid var(--ap-blue); border-radius: 999px; font-weight: 600; z-index: 2; }
body.ap .ap-logos--marquee:has(.ap-logos__pause:focus) { margin-bottom: 52px; }
body.ap .ap-press .ap-head { margin-bottom: 8px; }
body.ap .ap-press .ap-logos__track { --ap-marquee: 60s; }
body.ap .ap-press .ap-logos__list li { width: 260px; padding: 0 24px; }
body.ap .ap-press .ap-logos__list img { height: 96px; }
body.ap .ap-press .ap-more { display: inline-flex; margin-top: 28px; }
@media (prefers-reduced-motion: reduce) {
  body.ap .ap-logos--marquee .ap-logos__track { animation: none !important; transform: none; flex-wrap: wrap; width: 100%; }
  body.ap .ap-logos--marquee .ap-logos__list { flex-wrap: wrap; justify-content: center; }
  body.ap .ap-logos__list--dup, body.ap .ap-logos__pause { display: none; }
  body.ap .ap-logos--marquee { mask-image: none; -webkit-mask-image: none; }
}
@media (max-width: 640px) { body.ap .ap-logos__list li { width: 164px; padding: 0 14px; } body.ap .ap-logos__list img { height: 58px; } }

/* Buyer situations as the shared card. */
body.ap .ap-trig--cards.ap-trig--families { gap: 28px; }
body.ap .ap-trig--cards.ap-trig--families .ap-trig__item { display: block; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; }
body.ap .ap-trig--cards.ap-trig--families .ap-trig__item:hover, body.ap .ap-trig--cards.ap-trig--families .ap-trig__item:focus-within { border: 0; box-shadow: none; }
body.ap .ap-trig--cards .ap-trig__item--rest .ap-card { opacity: .78; }
body.ap .ap-card--situation .ap-card__media--icon { display: grid; place-items: center; color: var(--ap-link); background: var(--ap-surface); }
body.ap .ap-card--situation .ap-card__media--icon svg { width: 58px; height: 58px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
body.ap .ap-trig--cards.ap-trig--families .ap-trig__item:nth-child(3n + 2) .ap-card__media--icon { color: var(--ap-deep); background: #edf1ff; }
body.ap .ap-trig--cards.ap-trig--families .ap-trig__item:nth-child(3n) .ap-card__media--icon { color: #806000; background: #fff7df; }
body.ap .ap-card--situation .ap-card__title { font-size: 1.25rem; }
body.ap .ap-card--situation .ap-card__excerpt { color: var(--ap-text); }
@media (max-width: 1024px) { body.ap .ap-trig--cards.ap-trig--families { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { body.ap .ap-trig--cards.ap-trig--families { grid-template-columns: minmax(0, 1fr); gap: 20px; } }

/* Home capability cards: four animated GrowthBridge stages retain the existing experience proof points below. */
body.ap .ap-cap-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; margin: 0; padding: 0; list-style: none; }
body.ap .ap-cap-grid li { margin: 0; }
body.ap .ap-cap-card { display: flex; flex-direction: column; height: 100%; padding: 24px; border: 1px solid var(--ap-line); border-radius: var(--ap-r); background: #fff; transition: border-color .2s, box-shadow .2s, transform .2s; }
body.ap .ap-cap-card:hover { border-color: #b7c5f0; box-shadow: var(--ap-shadow); transform: translateY(-3px); }
body.ap .ap-cap-card__step { margin: 0 0 12px; color: var(--ap-link); font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
body.ap .ap-cap-card h3 { margin: 0; color: var(--ap-ink); font-size: 1.1875rem; line-height: 1.35; }
body.ap .ap-cap-card > p:not(.ap-cap-card__step) { margin: 12px 0 0; color: var(--ap-text); }
body.ap .ap-cap-card__outcome { padding-top: 12px; border-top: 1px solid var(--ap-line); }
body.ap .ap-cap-card__more { display: inline-flex; gap: 6px; align-items: center; margin-top: auto; padding-top: 18px; color: var(--ap-link); font-weight: 700; text-decoration: none; }
body.ap .ap-cap-card__more:hover { text-decoration: underline; text-underline-offset: 4px; }
body.ap .ap-cap-proof { margin-top: 36px; padding: 26px 28px; border-radius: var(--ap-r); background: var(--ap-surface); }
body.ap .ap-cap-proof > h3 { margin: 0 0 18px; color: var(--ap-ink); font-size: 1.125rem; }
body.ap .ap-cap-proof ul { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 20px; margin: 0; padding: 0; list-style: none; }
body.ap .ap-cap-proof li { margin: 0; }
body.ap .ap-cap-proof li h3 { margin: 0; color: var(--ap-ink); font-size: .9375rem; line-height: 1.4; }
body.ap .ap-cap-proof li p { margin: 6px 0 0; color: var(--ap-muted); font-size: .875rem; line-height: 1.5; }
html.ap-js body.ap .ap-cap-grid li:nth-child(2) [data-ap-reveal] { transition-delay: .1s; }
html.ap-js body.ap .ap-cap-grid li:nth-child(3) [data-ap-reveal] { transition-delay: .2s; }
html.ap-js body.ap .ap-cap-grid li:nth-child(4) [data-ap-reveal] { transition-delay: .3s; }
@media (max-width: 1024px) { body.ap .ap-cap-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } body.ap .ap-cap-proof ul { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { body.ap .ap-cap-grid, body.ap .ap-cap-proof ul { grid-template-columns: minmax(0, 1fr); } }

/* Experience / "who we are": legacy-homepage treatment (ngulam.com): deep-blue angled panel with a pale arc, a portrait photo
   sliding in from the right, text and check list beside it. */
body.ap .ap-exp { position: relative; overflow: hidden; padding-top: clamp(56px, 8vw, 110px); padding-bottom: clamp(56px, 8vw, 110px); background: #fff; }
body.ap .ap-exp::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 44%; background: var(--ap-deep); clip-path: polygon(0 0, 100% 0, 84% 100%, 0 100%); }
body.ap .ap-exp__arc { position: absolute; left: 26%; top: -30%; width: 62vw; height: 62vw; max-width: 1100px; max-height: 1100px; border-radius: 50%; border: 110px solid #eef0f8; pointer-events: none; }
body.ap .ap-exp__arc::after { content: ""; position: absolute; inset: 60px; border-radius: 50%; border: 60px solid #f5f6fb; }
body.ap .ap-exp .ap-wrap { position: relative; z-index: 1; }
body.ap .ap-exp__grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(32px, 6vw, 96px); align-items: center; }
body.ap .ap-exp__media { position: relative; width: min(100%, 460px); justify-self: end; border-radius: 6px; overflow: hidden; box-shadow: 0 34px 70px -30px rgba(4, 9, 34, .6); }
body.ap .ap-exp__media .ap-slot { border-radius: 6px; }
body.ap .ap-exp__tag { display: inline-block; padding: 4px 10px; border-radius: 6px; background: var(--ap-amber); color: var(--ap-ink); }
body.ap .ap-exp__body .ap-h2 { margin-bottom: 20px; }
body.ap .ap-exp__list { margin: 28px 0 0; padding: 28px 0 0; border-top: 1px solid var(--ap-line); list-style: none; }
body.ap .ap-exp__list li { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 14px; margin: 0 0 18px; }
body.ap .ap-exp__list p { margin: 4px 0 0; color: var(--ap-text); }
body.ap .ap-exp__h { margin: 0; font-size: 1.125rem; line-height: 1.35; font-weight: 600; color: var(--ap-ink); }
body.ap .ap-exp__check { display: block; width: 24px; height: 24px; margin-top: 2px; border-radius: 50%; background: var(--ap-surface); position: relative; }
body.ap .ap-exp__check::after { content: ""; position: absolute; left: 8px; top: 4px; width: 6px; height: 11px; border: solid var(--ap-link); border-width: 0 2.5px 2.5px 0; transform: rotate(45deg); }
/* Closing invitation on every page: the founder's "Services - Banner" (workbook 2026-11-01). Navy, a photo from the conversation slot
   (a new one on each visit) under Avada's mask-14 (the angled stripes, flipped as in the container), the copy on the right half. */
body.ap .ap-banner { position: relative; isolation: isolate; overflow: hidden; padding-top: clamp(72px, 9vw, 140px); padding-bottom: clamp(72px, 9vw, 140px); background: var(--ap-ink); color: #fff; }
body.ap .ap-banner__media { position: absolute; inset: 0; z-index: -2; }
body.ap .ap-banner__media .ap-slot { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; background: var(--ap-ink); }
body.ap .ap-banner__media::after { content: ""; position: absolute; inset: 0; background: rgba(4, 9, 34, .3); }
body.ap .ap-banner__mask { position: absolute; inset: 0; z-index: -1; background: url("data:image/svg+xml;utf8,%3Csvg%20width%3D%221920%22%20height%3D%22954%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20clip-path%3D%22url%28%23prefix__clip0_75_23245%29%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M2351.91%20237.689l-852.66-492.288L1352.25%200H0v954h801.461l-.689%201.194%20852.668%20492.286%2010.79-18.7L841.885%20954h136.628l719.877%20415.62%2016.46-28.51L1044.35%20954h109.29l588.53%20339.79%2020.98-36.33L1237.53%20954h81.97l464.14%20267.97%2030.74-53.25L1442.47%20954h54.66l330.91%20191.06%2046.45-80.46L1682.93%20954h27.3l171.09%2098.78%2054.86-95.016-16.18-9.339v-7.881l19.59%2011.31%20412.32-714.165zM1920%20948.425l-836.49-482.948-54.86%2095.015L1710.23%20954H1920v-5.575zM1682.93%20954l-661.1-381.686-46.453%2080.454L1497.13%20954h185.8zm-240.46%200L961.712%20676.436l-30.743%2053.248L1319.5%20954h122.97zm-204.94%200L910.479%20765.174%20889.506%20801.5%201153.64%20954h83.89zm-193.18%200L862.184%20848.824l-16.46%2028.51L978.513%20954h65.837zm-202.465%200l-30.318-17.504L801.461%20954h40.424zM1920%20940.544l-833.08-480.978L1352.25%200H1920v940.544zm-307.55%20577.926l-852.666-492.28-6.215%2010.76%20852.671%20492.29%206.21-10.77zm-906.694-398.7l852.664%20492.28-2.6%204.51-852.663-492.29%202.599-4.5z%22%20fill%3D%22rgba%284%2C9%2C34%2C1%29%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CclipPath%20id%3D%22prefix__clip0_75_23245%22%3E%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M0%200h1920v954H0z%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E") center / cover no-repeat; transform: scaleX(-1); pointer-events: none; }
body.ap .ap-banner .ap-wrap { display: flex; justify-content: flex-end; }
body.ap .ap-banner__body { box-sizing: border-box; width: 50%; padding-left: clamp(24px, 6vw, 88px); }
body.ap .ap-banner__tags { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 28px; margin: 0 0 18px; }
body.ap .ap-banner__tag { margin: 0; padding: 4px 8px; background: #fff; color: var(--ap-ink); font-size: .875rem; font-weight: 600; line-height: 1.4; }
body.ap .ap-banner .ap-closing__kicker { margin: 0; color: #fff; font-size: .875rem; font-weight: 600; line-height: 1.4; }
body.ap .ap-banner .ap-h2 { margin: 0 0 24px; color: #fff; }
body.ap .ap-banner .ap-lead { max-width: 34em; margin: 0; color: #fff; }
body.ap .ap-banner .ap-actions { margin-top: 36px; }
body.ap .ap-banner .ap-btn--ghost { border-color: rgba(255, 255, 255, .85); color: #fff !important; }
body.ap .ap-banner .ap-btn--ghost:hover { background: #fff; border-color: #fff; color: var(--ap-deep) !important; }
body.ap .ap-banner .ap-small { color: #fff; }
body.ap .ap-banner a:not(.ap-btn) { color: #fff; text-decoration: underline; }
@media (max-width: 1024px) { body.ap .ap-banner__body { width: 60%; padding-left: 20px; } }
@media (max-width: 800px) {
  body.ap .ap-banner__body { width: 100%; padding-left: 0; }
  body.ap .ap-banner__media::after { background: rgba(4, 9, 34, .74); }
}
/* Home's experience section is the founder's native Avada "About Us" container (build/avada/home-about.txt); only its checks and
   link need the site's type. */
body.ap .ap-about-home .fusion-checklist .fusion-li-item-content p { margin: 0; }
body.ap .ap-about-home .fusion-checklist strong { color: var(--ap-ink); font-weight: 700; }
body.ap .ap-about-home .ap-more { font-weight: 700; }
body.ap .ap-about-image .ap-split__media { background: var(--ap-surface); border: 0; box-shadow: none; }
body.ap .ap-about-image .ap-split__media .ap-slot { background: var(--ap-surface); border-radius: 0; }
body.ap .ap-about-image .ap-split__media .ap-slot__img { background: var(--ap-surface); }
body.ap .ap-hero__media.ap-about-image { background: var(--ap-surface); box-shadow: none; }
body.ap .ap-hero__media.ap-about-image .ap-slot,
body.ap .ap-hero__media.ap-about-image .ap-slot__img { background: var(--ap-surface); }
/* Reveal on scroll (and the hero entrance): legacy fadeIn / fadeInRight. */
html.ap-js body.ap [data-ap-reveal] { opacity: 0; transform: translateY(26px); transition: opacity .8s ease, transform .8s ease; }
html.ap-js body.ap [data-ap-reveal="right"] { transform: translateX(60px); transition-duration: 1.3s; }
html.ap-js body.ap [data-ap-reveal].is-in { opacity: 1; transform: none; }
html.ap-js body.ap .ap-exp__body[data-ap-reveal] { transition-delay: .2s; }
@keyframes ap-enter-right { from { opacity: 0; transform: translateX(48px); } to { opacity: 1; transform: none; } }
html.ap-js body.ap .ap-enter > * { animation: ap-enter-right .8s cubic-bezier(.2, .7, .2, 1) both; }
html.ap-js body.ap .ap-enter > :nth-child(2) { animation-delay: .1s; }
html.ap-js body.ap .ap-enter > :nth-child(3) { animation-delay: .2s; }
html.ap-js body.ap .ap-enter > :nth-child(4) { animation-delay: .3s; }
html.ap-js body.ap .ap-enter > :nth-child(5) { animation-delay: .4s; }
@media (max-width: 900px) {
  body.ap .ap-exp { isolation: isolate; }
  body.ap .ap-exp::before, body.ap .ap-exp__arc { display: none; }
  body.ap .ap-exp__grid { grid-template-columns: minmax(0, 1fr); }
  body.ap .ap-exp__media { justify-self: start; width: min(100%, 420px); overflow: visible; margin-right: 12%; }
  body.ap .ap-exp__media .ap-slot { overflow: hidden; }
  body.ap .ap-exp__media::before { content: ""; position: absolute; z-index: -1; inset: -32px -14% 22% -100vw; background: var(--ap-deep); }
}
@media (prefers-reduced-motion: reduce) {
  html.ap-js body.ap [data-ap-reveal] { opacity: 1; transform: none; transition: none; }
  html.ap-js body.ap .ap-enter > * { animation: none; }
}

/* Conversation band (legacy "let's work together"): photo left that drifts on scroll, dark panel right. */
body.ap .ap-conv { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: 560px; padding: 0; background: var(--ap-ink); color: #fff; overflow: hidden; }
body.ap .ap-conv__media { position: relative; overflow: hidden; clip-path: polygon(0 0, 100% 0, 86% 100%, 0 100%); }
body.ap .ap-conv__media .ap-slot { position: absolute; inset: -12% 0; height: 124%; width: 100%; margin: 0; aspect-ratio: auto; will-change: transform; }
body.ap .ap-conv__media .ap-slot__img { width: 100%; height: 100%; object-fit: cover; }
body.ap .ap-conv__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(135deg, rgba(4, 9, 34, .05), rgba(4, 9, 34, .35)); }
body.ap .ap-conv__panel { display: flex; align-items: center; padding: clamp(48px, 7vw, 96px) clamp(24px, 6vw, 96px) clamp(48px, 7vw, 96px) clamp(24px, 4vw, 64px); }
body.ap .ap-conv__in { max-width: 560px; }
body.ap .ap-conv__tags { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin: 0 0 18px; font-size: .9375rem; font-weight: 600; }
body.ap .ap-conv__tag { padding: 6px 12px; background: #fff; color: var(--ap-ink); border-radius: 4px; }
body.ap .ap-conv .ap-h2, body.ap .ap-conv .ap-lead { color: #fff; }
body.ap .ap-conv .ap-lead { color: #dbe3ff; }
body.ap .ap-conv .ap-actions { align-items: center; gap: 18px 28px; }
body.ap .ap-conv__talk { font-weight: 600; color: #fff; text-decoration: none; border-bottom: 2px solid rgba(255,255,255,.5); }
body.ap .ap-conv__talk:hover { border-bottom-color: #fff; }
@media (max-width: 900px) {
  body.ap .ap-conv { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  body.ap .ap-conv__media { aspect-ratio: 4 / 3; clip-path: polygon(0 0, 100% 0, 100% 86%, 0 100%); }
  body.ap .ap-conv__media .ap-slot { inset: 0; height: 100%; }
}

/* Industries (Media and Tech): grid tiles, chips under the audience card, offering list on industry pages. */
body.ap .ap-ind-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 20px; margin: 0; padding: 0; list-style: none; }
body.ap .ap-ind-grid--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
body.ap .ap-ind-grid li { margin: 0; }
body.ap .ap-ind { display: flex; flex-direction: column; gap: 10px; height: 100%; padding: 24px; background: #fff; border: 1px solid var(--ap-line); border-radius: var(--ap-r); color: var(--ap-ink); text-decoration: none; transition: box-shadow .2s, transform .2s, border-color .2s; }
body.ap .ap-ind:hover, body.ap .ap-ind:focus-visible { box-shadow: var(--ap-shadow); transform: translateY(-3px); border-color: #b7c5f0; }
body.ap .ap-ind__media { display: block; width: calc(100% + 48px); margin: -24px -24px 4px; overflow: hidden; aspect-ratio: 16 / 10; background: var(--ap-surface); }
body.ap .ap-ind__media .ap-slot { width: 100%; height: 100%; aspect-ratio: auto; margin: 0; }
body.ap .ap-ind__media .ap-slot__img { display: block; width: 100%; height: 100%; object-fit: cover; }
body.ap .ap-ind__name { font-size: 1.125rem; line-height: 1.3; font-weight: 700; }
body.ap .ap-ind__line { font-size: .9375rem; line-height: 1.5; color: var(--ap-muted); }
body.ap .ap-ind .ap-more { margin-top: auto; padding-top: 8px; }
body.ap .ap-ind-chips { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 0; padding: 0; list-style: none; font-size: .875rem; }
body.ap .ap-ind-chips li { margin: 0; }
body.ap .ap-ind-chips li > span { display: inline-block; padding: 6px 0; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; font-size: .75rem; color: var(--ap-muted); margin-right: 4px; }
body.ap .ap-ind-chips a { display: inline-block; padding: 6px 12px; border: 1px solid var(--ap-line); border-radius: 999px; color: var(--ap-link); text-decoration: none; }
body.ap .ap-ind-chips a:hover { border-color: var(--ap-blue); background: var(--ap-surface); }
body.ap .ap-media-industries { margin-top: clamp(32px, 5vw, 56px); padding-top: clamp(26px, 4vw, 40px); border-top: 1px solid var(--ap-line); }
body.ap .ap-media-industries__head { margin-bottom: 20px; }
body.ap .ap-stuck { margin: 28px 0 0; padding: 20px 24px; border-left: 4px solid var(--ap-amber); background: #fff; border-radius: 0 var(--ap-r-s) var(--ap-r-s) 0; }
body.ap .ap-ind-off { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
body.ap .ap-ind-off__item { display: flex; flex-direction: column; gap: 6px; padding: 22px; background: var(--ap-surface); border-radius: var(--ap-r-s); color: var(--ap-ink); text-decoration: none; border: 1px solid transparent; transition: border-color .2s, box-shadow .2s; }
body.ap .ap-ind-off__item:hover { border-color: var(--ap-blue); box-shadow: var(--ap-shadow); }
body.ap .ap-ind-off__pillar { font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ap-link); }
body.ap .ap-ind-off__t { font-size: 1.0625rem; font-weight: 700; }
body.ap .ap-ind-off__d { font-size: .9375rem; color: var(--ap-text); }
body.ap .ap-ind-problem-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px 40px; }
body.ap .ap-ind-problem-family { min-width: 0; }
body.ap .ap-ind-problem-family__title { margin: 0 0 14px; padding-bottom: 10px; border-bottom: 1px solid var(--ap-line); font-size: 1.125rem; line-height: 1.35; }
body.ap .ap-ind-problem-family__title a { color: var(--ap-ink); text-decoration: none; }
body.ap .ap-ind-problem-family__title a:hover { text-decoration: underline; text-underline-offset: 3px; }
body.ap .ap-ind-problem-family .ap-problem-grid { grid-template-columns: minmax(0, 1fr); }
body.ap .ap-problem-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 20px; margin: 0; padding: 0; list-style: none; }
body.ap .ap-problem-grid li { display: grid; grid-template-columns: 40px minmax(0, 1fr); align-items: center; gap: 12px; margin: 0; padding: 14px 16px; border: 1px solid var(--ap-line); border-radius: var(--ap-r-s); background: #fff; }
body.ap .ap-problem__mark { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 10px; background: var(--ap-surface); color: var(--ap-link); }
body.ap .ap-problem__icon { display: block; width: 24px; height: 24px; }
body.ap .ap-problem__link { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; color: var(--ap-ink); font-weight: 600; line-height: 1.4; text-decoration: none; }
body.ap .ap-problem__link:hover, body.ap .ap-problem__link:focus-visible { color: var(--ap-link); text-decoration: underline; text-underline-offset: 3px; }
body.ap .ap-problem__link span { flex: 0 0 auto; color: var(--ap-link); }
body.ap .ap-family-problems { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 20px; margin: 0; padding: 0; list-style: none; }
body.ap .ap-family-problems li { display: grid; grid-template-columns: 40px minmax(0, 1fr); align-items: start; gap: 12px; margin: 0; padding: 16px; border: 1px solid var(--ap-line); border-radius: var(--ap-r-s); background: #fff; }
body.ap .ap-family-problems h3 { margin: 0; font-size: 1.0625rem; line-height: 1.35; }
body.ap .ap-family-problems h3 a { color: var(--ap-ink); text-decoration: none; }
body.ap .ap-family-problems h3 a:hover, body.ap .ap-family-problems h3 a:focus-visible { color: var(--ap-link); text-decoration: underline; text-underline-offset: 3px; }
body.ap .ap-family-problems p { margin: 6px 0 0; color: var(--ap-muted); font-size: .875rem; }
body.ap .ap-family-evidence { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
body.ap .ap-family-evidence__type { min-width: 0; }
body.ap .ap-family-evidence__type > .ap-h3 { margin: 0 0 14px; }
body.ap .ap-family-evidence__grid { grid-template-columns: minmax(0, 1fr); }
body.ap .ap-family-filter-links { margin-top: 24px; font-size: .9375rem; font-weight: 600; }
body.ap .ap-family-filter-links a { color: var(--ap-link); text-underline-offset: 3px; }
@media (max-width: 1024px) { body.ap .ap-ind-grid, body.ap .ap-ind-grid--four { grid-template-columns: repeat(3, minmax(0, 1fr)); } body.ap .ap-ind-off { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 800px) { body.ap .ap-family-problems, body.ap .ap-family-evidence { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 800px) { body.ap .ap-ind-problem-groups { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 640px) { body.ap .ap-ind-grid, body.ap .ap-ind-grid--four, body.ap .ap-ind-off, body.ap .ap-problem-grid { grid-template-columns: minmax(0, 1fr); } }

/* GrowthBridge diagram (vector; the stage list below it is the accessible version). */
body.ap .ap-bridge__art { height: auto; margin: 0 0 28px; color: var(--ap-text); }
body.ap .ap-gb { display: block; width: 100%; height: auto; font-family: inherit; }
body.ap .ap-gb__bed { fill: var(--ap-deep); }
body.ap .ap-gb__bedh { fill: var(--ap-amber); font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
body.ap .ap-gb__bedt { fill: #fff; font-size: 15px; font-weight: 600; }
body.ap .ap-gb__dot { fill: var(--ap-amber); }
body.ap .ap-gb__pier { fill: var(--ap-deep); }
body.ap .ap-gb__num { fill: #fff; font-size: 34px; font-weight: 700; text-anchor: middle; }
body.ap .ap-gb__tick { stroke: var(--ap-line); stroke-width: 2; stroke-dasharray: 3 5; }
body.ap .ap-gb__t { fill: var(--ap-ink); font-size: 20px; font-weight: 700; text-anchor: middle; letter-spacing: -.01em; }
body.ap .ap-gb__o { fill: var(--ap-muted); font-size: 13.5px; font-weight: 500; text-anchor: middle; }
body.ap .ap-gb__shadow { fill: none; stroke: rgba(15, 35, 133, .12); stroke-width: 18; stroke-linecap: round; }
body.ap .ap-gb__deck { fill: none; stroke: url(#apgb-deck); stroke-width: 12; stroke-linecap: round; }
body.ap .ap-gb__chev { fill: none; stroke: #fff; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
body.ap .ap-gb__bank { fill: var(--ap-ink); }
body.ap .ap-gb__bank--to { fill: var(--ap-link); }
body.ap .ap-gb__bankt { fill: #fff; font-size: 16px; font-weight: 700; text-anchor: middle; }
body.ap .ap-gb__brand { fill: var(--ap-link); font-size: 12.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; text-anchor: middle; }
/* The four descriptions sit under the piers (desktop) and become a numbered list where the diagram is hidden. */
body.ap .ap-bridge__under { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin: 0 clamp(16px, 7.5vw, 110px); padding: 0; list-style: none; }
body.ap .ap-bridge__under li { margin: 0; }
body.ap .ap-bridge__link { display: flex; flex-direction: column; gap: 8px; height: 100%; padding: 20px; color: var(--ap-text); text-decoration: none; border: 1px solid var(--ap-line); border-radius: var(--ap-r); background: #fff; transition: border-color .2s, box-shadow .2s, transform .2s; }
body.ap .ap-bridge__link:hover, body.ap .ap-bridge__link:focus-visible { border-color: var(--ap-blue); box-shadow: var(--ap-shadow); transform: translateY(-2px); }
body.ap .ap-bridge__link:hover .ap-bridge__name { text-decoration: underline; text-underline-offset: 4px; }
body.ap .ap-bridge__m, body.ap .ap-bridge__name, body.ap .ap-bridge__outm { display: none; }
body.ap .ap-bridge__text { font-size: .9688rem; line-height: 1.55; text-align: center; }
body.ap .ap-bridge__learn { display: inline-flex; gap: 6px; align-items: center; justify-content: center; margin-top: auto; padding-top: 6px; color: var(--ap-link); font-size: .875rem; font-weight: 700; }
body.ap .ap-bridge__foundm { display: none; }
@media (max-width: 640px) {
  body.ap .ap-bridge__art { display: none; }
  body.ap .ap-bridge__under { display: block; margin: 0; }
  body.ap .ap-bridge__under li { margin: 0 0 0 19px; padding: 0 0 28px 28px; border-left: 3px solid var(--ap-blue); position: relative; }
  body.ap .ap-bridge__under li:last-child { border-left-color: var(--ap-line); padding-bottom: 6px; }
  body.ap .ap-bridge__link { padding: 0; border: 0; }
  body.ap .ap-bridge__m { display: inline-grid; place-items: center; position: absolute; left: -22px; top: 0; width: 40px; height: 40px; border-radius: 50%; background: var(--ap-deep); color: #fff; font-weight: 700; }
  body.ap .ap-bridge__name { display: flex; align-items: center; min-height: 40px; font-size: 1.1875rem; font-weight: 700; color: var(--ap-ink); }
  body.ap .ap-bridge__text { text-align: left; }
  body.ap .ap-bridge__outm { display: block; padding-top: 10px; border-top: 1px dashed var(--ap-line); font-size: .9375rem; }
  body.ap .ap-bridge__outm span { display: block; margin-bottom: 4px; font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ap-link); }
  body.ap .ap-bridge__foundm { display: block; margin: 20px 0 0; padding: 16px 20px; border-radius: var(--ap-r); background: var(--ap-deep); color: #fff; }
  body.ap .ap-bridge__foundm span { display: block; margin-bottom: 4px; font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ap-amber); }
}

/* Footer: emblem and wordmark, icon-only social links. */
body.ap .ap-foot__logo { display: inline-flex; align-items: center; gap: 12px; margin: 0 0 14px; color: #fff; text-decoration: none; }
body.ap .ap-foot__mark { width: 44px; height: 44px; flex: 0 0 auto; }
body.ap .ap-foot__word { font-size: 1.9rem; line-height: 1; font-weight: 800; letter-spacing: -.02em; color: #fff; }
body.ap .ap-foot__word span { font-weight: 600; }
body.ap .ap-social--icons { gap: 10px; }
body.ap .ap-social--icons a { width: 44px; min-height: 44px; padding: 0; justify-content: center; border-radius: 50%; border-color: rgba(255,255,255,.28); color: #fff; transition: background .2s, border-color .2s; }
body.ap .ap-social--icons a:hover, body.ap .ap-social--icons a:focus-visible { background: rgba(255,255,255,.12); border-color: #fff; }
body.ap .ap-social--icons svg { width: 20px; height: 20px; fill: currentColor; }

/* ------------------------------------------------------------------ 19. Founder feedback v4 */
/* Engagement shapes */
body.ap .ap-shapes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
body.ap .ap-shape { display: flex; flex-direction: column; gap: 12px; padding: 28px; background: #fff; border: 1px solid var(--ap-line); border-radius: var(--ap-r); transition: box-shadow .2s, border-color .2s; }
body.ap .ap-shape:hover { border-color: var(--ap-blue); box-shadow: var(--ap-shadow); }
body.ap .ap-shape p { margin: 0; }
body.ap .ap-shape__when { color: var(--ap-text); }
body.ap .ap-shape__get { padding-top: 12px; border-top: 1px dashed var(--ap-line); }
body.ap .ap-shape__get span, body.ap .ap-shape__stages > span, body.ap .ap-shape__pillars > span { display: block; margin-bottom: 6px; font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ap-link); }
body.ap .ap-shape__stages { margin-top: auto; padding-top: 14px; }
body.ap .ap-shape__stages ol { display: flex; gap: 8px; margin: 0; padding: 0; list-style: none; }
body.ap .ap-shape__stages li { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; border: 2px solid var(--ap-line); color: var(--ap-muted); font-weight: 700; font-size: .9375rem; }
body.ap .ap-shape__stages li.is-on { background: var(--ap-deep); border-color: var(--ap-deep); color: #fff; }
body.ap .ap-shape__pillars a { display: inline-block; margin: 0 8px 6px 0; padding: 4px 10px; border: 1px solid var(--ap-line); border-radius: 999px; font-size: .875rem; color: var(--ap-link); text-decoration: none; }
body.ap .ap-shape__pillars a:hover { border-color: var(--ap-blue); background: var(--ap-surface); }
@media (max-width: 900px) { body.ap .ap-shapes { grid-template-columns: minmax(0, 1fr); } }
/* Offering sub-pages: phases and outputs */
body.ap .ap-phases { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; margin: 0; padding: 0; list-style: none; }
body.ap .ap-phase { position: relative; display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 26px 22px 24px; background: #fff; border: 1px solid var(--ap-line); border-radius: var(--ap-r); }
body.ap .ap-phase:not(:last-child)::after { content: ""; position: absolute; top: 46px; right: -23px; width: 24px; height: 2px; background: var(--ap-blue); }
body.ap .ap-phase p { margin: 0; font-size: .9688rem; }
body.ap .ap-phase__n { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--ap-deep); color: #fff; font-weight: 700; }
body.ap .ap-phase__out { margin-top: auto !important; padding-top: 14px; border-top: 1px dashed var(--ap-line); }
body.ap .ap-phase__out span { display: block; margin-bottom: 4px; font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ap-link); }
@media (max-width: 1024px) { body.ap .ap-phases { grid-template-columns: repeat(2, minmax(0, 1fr)); } body.ap .ap-phase::after { display: none; } }
@media (max-width: 640px) { body.ap .ap-phases { grid-template-columns: minmax(0, 1fr); } }
body.ap .ap-outputs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 28px; margin: 0; padding: 0; list-style: none; }
body.ap .ap-outputs li { position: relative; margin: 0; padding: 18px 20px 18px 52px; background: var(--ap-surface); border-radius: var(--ap-r-s); font-weight: 600; color: var(--ap-ink); }
body.ap .ap-outputs li::before { content: ""; position: absolute; left: 20px; top: 20px; width: 20px; height: 20px; border-radius: 50%; background: var(--ap-deep); }
body.ap .ap-outputs li::after { content: ""; position: absolute; left: 27px; top: 23px; width: 5px; height: 10px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
@media (max-width: 640px) { body.ap .ap-outputs { grid-template-columns: minmax(0, 1fr); } }
/* Problems we solve: four families (Home with icons, Who We Help with photos); every sub-problem links to its offering. */
body.ap .ap-trig.ap-trig--families { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
body.ap .ap-trig--families .ap-trig__item { display: block; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; }
body.ap .ap-trig--families .ap-trig__item:hover, body.ap .ap-trig--families .ap-trig__item:focus-within { border: 0; box-shadow: none; }
body.ap .ap-card--family:hover { transform: none; }
body.ap .ap-card--family .ap-card__media--icon { width: 64px; height: 64px; aspect-ratio: auto; margin: 24px 24px 0; border-radius: 14px; }
body.ap .ap-card--family .ap-card__media--icon svg { width: 34px; height: 34px; }
body.ap .ap-card--family .ap-card__media:not(.ap-card__media--icon) { aspect-ratio: 21 / 9; }
body.ap .ap-card__includes { margin: 4px 0 0 !important; padding: 0; list-style: none; border-top: 1px solid var(--ap-line); }
body.ap .ap-card__includes li { margin: 0; border-bottom: 1px solid var(--ap-line); }
body.ap .ap-card__includes a { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 10px 0; font-size: .9375rem; line-height: 1.45; font-weight: 600; color: var(--ap-ink); text-decoration: none; }
body.ap .ap-card__includes a::after { content: "\2192"; flex: none; color: var(--ap-link); transition: transform .2s; }
body.ap .ap-card__includes a:hover, body.ap .ap-card__includes a:focus-visible { color: var(--ap-link); text-decoration: underline; text-underline-offset: 3px; }
body.ap .ap-card__includes a:hover::after { transform: translateX(3px); }
body.ap .ap-card--family .ap-card__links { margin-top: auto !important; padding-top: 6px; }
body.ap .ap-card__links { font-size: .9375rem; color: var(--ap-muted); }
body.ap .ap-card__links a { position: relative; z-index: 1; color: var(--ap-link); font-weight: 600; text-decoration: none; }
body.ap .ap-card__links a:hover { text-decoration: underline; text-underline-offset: 3px; }
body.ap .ap-families { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px clamp(32px, 5vw, 72px); margin: 0; padding: 0; list-style: none; }
body.ap .ap-families__item { margin: 0; }
body.ap .ap-families__item .ap-h3 { margin: 0 0 12px; }
body.ap .ap-families__item .ap-h3 a { color: var(--ap-link); }
@media (max-width: 800px) {
  body.ap .ap-trig.ap-trig--families, body.ap .ap-families { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  body.ap .ap-families { gap: 32px; }
}
/* Static logo grid (partners) */
body.ap .ap-logos--static .ap-logos__track { width: 100%; }
body.ap .ap-logos--static .ap-logos__list { flex-wrap: wrap; width: 100%; gap: 12px 0; }
body.ap .ap-logos--static .ap-logos__list--dup { display: none; }
body.ap .ap-logos--static .ap-logos__list img { height: 56px; }

/* ------------------------------------------------------------------ 20. Full-site review (29 Oct 2026) */
/* Cookie notice (TVA-040). This is Avada's own privacy bar; only its layout changes, so the choices and the consent
   cookie behave as before. The rules are complete in themselves and do not lean on Avada's compiled mobile media
   query. The review measured the text squeezed beside fixed-width buttons at 390 px and clipped controls at 320 px. */
body.ap .fusion-privacy-bar {
  box-sizing: border-box;
  max-height: 70vh;
  max-height: 70dvh;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding-left: max(var(--privacy_bar_padding-left, 30px), env(safe-area-inset-left));
  padding-right: max(var(--privacy_bar_padding-right, 30px), env(safe-area-inset-right));
  padding-bottom: max(var(--privacy_bar_padding-bottom, 15px), env(safe-area-inset-bottom));
}
body.ap .fusion-privacy-bar .fusion-privacy-bar-main { flex-wrap: wrap; }
body.ap .fusion-privacy-bar .fusion-privacy-bar-main > span a { text-decoration: underline; text-underline-offset: .15em; }
body.ap .fusion-privacy-bar .fusion-privacy-bar-buttons .fusion-button { min-width: 7.5rem; justify-content: center; text-align: center; }
body.ap .fusion-privacy-bar :is(a, button):focus-visible { outline-color: var(--ap-focus-dk); outline-offset: 2px; }
@media (max-width: 640px) {
  body.ap .fusion-privacy-bar { padding-left: max(var(--ap-gut), env(safe-area-inset-left)); padding-right: max(var(--ap-gut), env(safe-area-inset-right)); }
  body.ap .fusion-privacy-bar .fusion-privacy-bar-main { flex-direction: column; align-items: stretch; gap: 12px; }
  body.ap .fusion-privacy-bar .fusion-privacy-bar-main > span { display: block; flex: none; width: 100%; font-size: .9375rem; line-height: 1.5; }
  body.ap .fusion-privacy-bar .fusion-privacy-bar-buttons { flex: none; flex-wrap: wrap; align-items: stretch; width: 100%; gap: 10px; }
  body.ap .fusion-privacy-bar .fusion-privacy-bar-buttons .fusion-button { flex: 1 1 7.5rem; min-width: 0; margin: 0; padding-left: .75rem; padding-right: .75rem; white-space: normal; text-align: center; }
}
/* While the notice is open, ui.js publishes its height so the end of the page and a focused control are never hidden behind it. */
html.ap-consent-open { scroll-padding-bottom: calc(var(--ap-consent-h, 0px) + 16px); }
html.ap-consent-open body.ap { padding-bottom: var(--ap-consent-h, 0px); }
/* The open menu drawer sits above the notice, so its call to action is never covered. */
body.ap:has(.awb-off-canvas-wrap.awb-show) .fusion-privacy-bar { z-index: 99980; }
/* A press release is a company announcement (TVA-029): the label sits above the unchanged text of the release. */
body.ap .ap-release-label { margin: 0 0 28px; padding: 14px 18px; border-left: 4px solid var(--ap-blue); border-radius: 0 var(--ap-r-s) var(--ap-r-s) 0; background: var(--ap-surface); }
body.ap .ap-release-label p { margin: 0; }
body.ap .ap-release-label__type { font-size: .8125rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ap-ink); }
body.ap .ap-release-label__note { margin-top: 4px; font-size: .9375rem; line-height: 1.5; color: var(--ap-muted); }

/* ------------------------------------------------------------------ 21. How We Help (TVA release 2) */
/* Breadcrumb trail (GLB-03). The names are the ones in the page's BreadcrumbList. */
body.ap .ap-crumbs { margin: 0 0 14px; font-size: .875rem; line-height: 1.4; }
body.ap .ap-crumbs ol { display: flex; flex-wrap: wrap; align-items: center; margin: 0; padding: 0; list-style: none; }
body.ap .ap-crumbs li { display: inline-flex; align-items: center; margin: 0; padding: 0; color: var(--ap-muted); }
body.ap .ap-crumbs li + li::before { content: "\203A"; content: "\203A" / ""; margin: 0 8px; color: var(--ap-muted); }
body.ap .ap-crumbs a { display: inline-block; padding: 3px 0; color: var(--ap-link); font-weight: 600; text-decoration: none; }
body.ap .ap-crumbs a:hover { text-decoration: underline; text-underline-offset: 3px; }
/* Family page: the problems in the hero, "Sound familiar?" beside "What we see". */
body.ap .ap-hero__tags li { margin: 0; }
body.ap .ap-fsplit { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
body.ap .ap-fsplit .ap-h2 { margin: 0 0 22px; }
body.ap .ap-flist { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }
body.ap .ap-flist li { margin: 0; padding: 4px 0 4px 18px; border-left: 3px solid var(--ap-blue); font-weight: 600; color: var(--ap-ink); }
body.ap .ap-flist__when { display: block; margin-bottom: 2px; font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ap-link); }
body.ap .ap-fcost { margin: 22px 0 0; padding: 14px 18px; border-radius: var(--ap-r-s); background: var(--ap-surface); color: var(--ap-text); }
body.ap .ap-fcost__label { display: block; margin-bottom: 2px; font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ap-link); }
body.ap .ap-fsplit__b > p:last-child { margin-top: 18px; }
/* One block per problem: the menu links and the hero pills land on these (their id is the problem's slug). */
body.ap .ap-fblocks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin: 0; padding: 0; }
body.ap .ap-fblock { display: flex; flex-direction: column; gap: 16px; margin: 0; padding: 28px 28px 26px; background: #fff; border: 1px solid var(--ap-line); border-radius: var(--ap-r); }
body.ap .ap-fblock:last-child:nth-child(odd) { grid-column: 1 / -1; }
body.ap .ap-fblock > * { margin: 0; }
body.ap .ap-fblock__row > * { margin: 0; }
body.ap .ap-fblock__row > * + * { margin-top: 8px; }
body.ap .ap-fblock__label { display: block; margin: 0 0 6px; font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ap-link); }
body.ap .ap-fblock__row ul { display: grid; gap: 6px; margin: 0; padding: 0 0 0 1.1em; }
body.ap .ap-fblock__row li { margin: 0; padding-left: 2px; }
body.ap .ap-fblock__result { padding: 12px 16px; border-radius: var(--ap-r-s); background: var(--ap-surface); }
body.ap .ap-fblock__result .ap-fblock__label { margin-bottom: 4px; }
body.ap .ap-fblock__result a { font-weight: 600; }
body.ap .ap-fblock__note, body.ap .ap-fblock__also { font-size: .9375rem; line-height: 1.55; color: var(--ap-muted); }
body.ap .ap-fblock__do { display: flex; flex-direction: column; gap: 8px; margin-top: auto; padding-top: 16px; border-top: 1px dashed var(--ap-line); }
body.ap .ap-fblock__do > * { margin: 0; }
body.ap .ap-fblock__do .ap-fblock__label { margin-bottom: 0; }
/* The first step of an engagement */
body.ap .ap-fstep { margin: 28px 0 0; padding: 18px 22px; border-left: 4px solid var(--ap-blue); border-radius: 0 var(--ap-r-s) var(--ap-r-s) 0; background: #fff; font-weight: 600; color: var(--ap-ink); }
body.ap .ap-sec--surface .ap-fstep { background: #fff; }
body.ap .ap-fstep + .ap-more-wrap { margin-top: 18px; }
/* Who this is for, and who it is not for */
body.ap .ap-ffit { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
body.ap .ap-ffit__col { padding: 26px 28px; background: #fff; border: 1px solid var(--ap-line); border-radius: var(--ap-r); }
body.ap .ap-ffit__col .ap-h3 { margin: 0 0 16px; }
body.ap .ap-ffit__col ul { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
body.ap .ap-ffit__col li { position: relative; margin: 0; padding-left: 34px; }
body.ap .ap-ffit__col li::before { content: ""; position: absolute; left: 0; top: .22em; width: 20px; height: 20px; box-sizing: border-box; border-radius: 50%; }
body.ap .ap-ffit__col--for li::before { background: var(--ap-deep); }
body.ap .ap-ffit__col--for li::after { content: ""; position: absolute; left: 7px; top: calc(.22em + 3px); width: 5px; height: 10px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
body.ap .ap-ffit__col--not li::before { border: 2px solid var(--ap-muted); }
body.ap .ap-ffit__col--not li::after { content: ""; position: absolute; left: 5px; top: calc(.22em + 9px); width: 10px; height: 2px; background: var(--ap-muted); }
body.ap .ap-ffit__note { margin: 16px 0 0; font-size: .9375rem; line-height: 1.55; color: var(--ap-muted); }
/* The other three problem families */
body.ap .ap-fother { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin: 0; padding: 0; list-style: none; }
body.ap .ap-fother li { margin: 0; }
body.ap .ap-fother a { display: flex; flex-direction: column; gap: 6px; height: 100%; padding: 22px 24px; background: #fff; border: 1px solid var(--ap-line); border-radius: var(--ap-r); text-decoration: none; transition: border-color .2s, box-shadow .2s; }
body.ap .ap-fother a:hover { border-color: #b7c5f0; box-shadow: var(--ap-shadow); }
body.ap .ap-fother__aud { font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ap-link); }
body.ap .ap-fother__name { font-size: 1.1875rem; line-height: 1.3; font-weight: 600; color: var(--ap-ink); }
body.ap .ap-fother__go { margin-top: auto; padding-top: 6px; font-weight: 600; color: var(--ap-link); }
/* The hub: family cards carry a link of their own, then the filtered cases and insights. */
body.ap .ap-card--family .ap-card__title a { color: var(--ap-ink); text-decoration: none; }
body.ap .ap-card--family .ap-card__title a:hover { color: var(--ap-link); text-decoration: underline; text-underline-offset: 4px; }
body.ap .ap-card--family .ap-card__cta { margin: auto 0 0 !important; padding-top: 12px; }
body.ap .ap-card--family .ap-card__cta + .ap-card__links { margin-top: 0 !important; padding-top: 0; }
body.ap .ap-fbeliefs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin: 0; padding: 0; list-style: none; }
body.ap .ap-fbelief { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 24px 26px; background: #fff; border: 1px solid var(--ap-line); border-left: 4px solid var(--ap-blue); border-radius: 0 var(--ap-r) var(--ap-r) 0; }
body.ap .ap-fbelief > * { margin: 0; }
body.ap .ap-fbelief__fam { font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ap-link); }
body.ap .ap-fbelief__t { font-size: 1.25rem; line-height: 1.4; font-weight: 600; color: var(--ap-ink); }
body.ap .ap-fbelief__more { margin-top: auto; padding-top: 6px; }
/* A long article title wraps as text, with the arrow after its last word (the shared .ap-more is a flex row). */
body.ap .ap-fbelief__more .ap-more, body.ap .ap-fsplit .ap-more, body.ap .ap-fblock__do .ap-more { display: inline; }
/* Browse by service: three services, each with its four offerings and the problems each one solves. */
body.ap .ap-fsvc { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
body.ap .ap-fsvc__g { display: flex; flex-direction: column; gap: 6px; padding: 26px 26px 10px; background: #fff; border: 1px solid var(--ap-line); border-radius: var(--ap-r); }
body.ap .ap-fsvc__g > * { margin: 0; }
body.ap .ap-fsvc__g .ap-h3 a { color: var(--ap-ink); text-decoration: none; }
body.ap .ap-fsvc__g .ap-h3 a:hover { color: var(--ap-link); text-decoration: underline; text-underline-offset: 4px; }
body.ap .ap-fsvc__line { font-size: .9375rem; line-height: 1.55; color: var(--ap-muted); }
body.ap .ap-fsvc__list { margin: 12px 0 0; padding: 0; list-style: none; }
body.ap .ap-fsvc__o { margin: 0; padding: 18px 0 20px; border-top: 1px solid var(--ap-line); }
body.ap .ap-fsvc__o > * { margin: 0; }
body.ap .ap-fsvc__oh { margin: 0 0 6px; font-size: 1.0625rem; line-height: 1.35; font-weight: 700; }
body.ap .ap-fsvc__oh a { color: var(--ap-link); text-decoration: none; }
body.ap .ap-fsvc__oh a:hover { text-decoration: underline; text-underline-offset: 3px; }
body.ap .ap-fsvc__o p { font-size: .9375rem; line-height: 1.55; }
body.ap .ap-fsvc__sl { margin-top: 10px !important; font-size: .75rem !important; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ap-muted); }
body.ap .ap-fsvc__solves { display: grid; gap: 4px; margin: 4px 0 0; padding: 0; list-style: none; }
body.ap .ap-fsvc__solves li { margin: 0; font-size: .9375rem; line-height: 1.5; }
body.ap .ap-fsvc__solves a { color: var(--ap-ink); font-weight: 600; text-decoration: underline; text-decoration-color: var(--ap-line); text-underline-offset: 3px; }
body.ap .ap-fsvc__solves a:hover { color: var(--ap-link); text-decoration-color: currentColor; }
/* How we work: the ways to start, kept short (the full text is on Our approach). */
body.ap .ap-fways__h { margin: 36px 0 18px; }
body.ap .ap-fways { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin: 0; padding: 0; list-style: none; }
body.ap .ap-fways li { margin: 0; padding: 20px 22px; background: #fff; border: 1px solid var(--ap-line); border-radius: var(--ap-r); }
body.ap .ap-fways li > * { margin: 0; }
body.ap .ap-fways__n { margin-bottom: 6px !important; font-size: 1.125rem; font-weight: 700; color: var(--ap-ink); }
body.ap .ap-fways li p:last-child { font-size: .9688rem; line-height: 1.55; }
body.ap .ap-fwork__links { display: flex; flex-wrap: wrap; gap: 8px 32px; margin: 26px 0 0; }
@media (max-width: 1023px) { body.ap .ap-fsvc { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 900px) {
  body.ap .ap-fsplit, body.ap .ap-fblocks, body.ap .ap-ffit, body.ap .ap-fbeliefs, body.ap .ap-fways, body.ap .ap-fother { grid-template-columns: minmax(0, 1fr); }
  body.ap .ap-fblock { padding: 24px 22px 22px; }
}
@media (max-width: 640px) {
  body.ap .ap-ffit__col, body.ap .ap-fbelief, body.ap .ap-fsvc__g { padding-left: 20px; padding-right: 20px; }
}
/* Offering hero: what the service answers (OFF-01). "Solves" lists the sub-problems, "Part of" the problem family. */
body.ap .ap-solves { display: grid; gap: 6px; margin: 0 0 16px; max-width: 72ch; font-size: .9375rem; line-height: 1.45; }
body.ap .ap-solves > div { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 12px; }
body.ap .ap-solves dt { flex: 0 0 5.75em; margin: 0; font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--ap-deep); }
body.ap .ap-solves dd { flex: 1 1 14em; margin: 0; }
body.ap .ap-solves ul { display: flex; flex-wrap: wrap; margin: 0; padding: 0; list-style: none; }
body.ap .ap-solves li { margin: 0; }
body.ap .ap-solves li:not(:last-child)::after { content: "\00B7"; content: "\00B7" / ""; margin: 0 .55em; color: var(--ap-muted); }
body.ap .ap-solves a { display: inline-block; padding: 3px 0; color: var(--ap-link); font-weight: 600; text-decoration: none; }
body.ap .ap-solves a:hover { text-decoration: underline; text-underline-offset: 3px; }
body.ap .ap-solves--wide dt { flex-basis: 9.5em; }
body.ap .ap-pe-cycle .ap-solves { margin: 14px 0 0; max-width: none; }
body.ap .ap-pe-cycle .ap-solves ul { display: grid; gap: 2px; }
body.ap .ap-pe-cycle .ap-solves li:not(:last-child)::after { content: none; }
body.ap .ap-pe-start { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px clamp(32px, 5vw, 72px); margin: 36px 0 0; }
body.ap .ap-pe-start .ap-h3 { margin: 0 0 8px; }
body.ap .ap-pe-start p { margin: 0; }
body.ap .ap-pe-start__not { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
body.ap .ap-pe-start__not li { position: relative; margin: 0; padding-left: 20px; }
body.ap .ap-pe-start__not li::before { content: ""; position: absolute; left: 0; top: .78em; width: 9px; height: 2px; background: var(--ap-muted); }
body.ap .ap-families__cross { margin: 28px 0 0; padding-top: 20px; border-top: 1px solid var(--ap-line); font-weight: 600; }
body.ap .ap-closing__views { margin: 18px 0 0; }
@media (max-width: 800px) { body.ap .ap-pe-start { grid-template-columns: minmax(0, 1fr); } }
/* TVA release 3: Home's Browse by service lists the offering names only; a service page's offering chooser keeps the head of each offering
   (picture, commercial question, what it solves, the link) and leaves the detail to the offering's own page. */
body.ap .ap-fsvc--index .ap-fsvc__o { padding: 10px 0; }
body.ap .ap-fsvc--index .ap-fsvc__oh { margin: 0; font-size: 1rem; }
body.ap .ap-fsvc--index .ap-fsvc__g { padding-bottom: 14px; }
body.ap .ap-offerings--chooser { gap: 20px; }
body.ap .ap-offerings--chooser .ap-offering { padding: clamp(18px, 3vw, 28px); }
body.ap .ap-offerings--chooser .ap-offering__head { grid-template-columns: minmax(0, 220px) minmax(0, 1fr); }
body.ap .ap-offerings--chooser .ap-offering header .ap-h3 { font-size: clamp(1.25rem, 1.1rem + .6vw, 1.5rem); }
body.ap .ap-offerings--chooser .ap-solves { margin: 12px 0 0; }
@media (max-width: 720px) { body.ap .ap-offerings--chooser .ap-offering__head { grid-template-columns: minmax(0, 1fr); } }
/* About (TVA release 2): the four problem families as links, the values as one row. */
body.ap .ap-flinks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 36px; margin: 32px 0 0; padding: 0; list-style: none; }
body.ap .ap-flinks li { margin: 0; padding: 16px 0 0; border-top: 3px solid var(--ap-blue); }
body.ap .ap-flinks__aud { margin: 0 0 6px; font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--ap-deep); }
body.ap .ap-flinks .ap-h3 { margin: 0 0 8px; font-size: clamp(1.125rem, 1.05rem + .4vw, 1.3125rem); }
body.ap .ap-flinks .ap-h3 a { color: var(--ap-ink); text-decoration: none; }
body.ap .ap-flinks .ap-h3 a:hover { text-decoration: underline; text-underline-offset: 4px; }
body.ap .ap-flinks li > p:last-child { margin: 0; font-size: .9375rem; line-height: 1.55; color: var(--ap-text); }
body.ap .ap-values { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 24px 28px; margin: 32px 0 0; padding: 0; list-style: none; }
body.ap .ap-values li { margin: 0; padding: 14px 0 0; border-top: 2px solid var(--ap-blue); }
body.ap .ap-values__h { margin: 0 0 6px; font-size: 1.0625rem; line-height: 1.3; font-weight: 600; color: var(--ap-ink); }
body.ap .ap-values p { margin: 0; font-size: .9375rem; line-height: 1.5; color: var(--ap-text); }
@media (max-width: 1099px) { body.ap .ap-values { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 720px) { body.ap .ap-values { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { body.ap .ap-flinks { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 480px) { body.ap .ap-values { grid-template-columns: minmax(0, 1fr); } }
/* TVA release 3: service pages (PIL-02 to PIL-08) and offering pages (OFF-03 to OFF-10). */
body.ap .ap-solves--after { margin: 28px 0 0; max-width: none; }
body.ap .ap-solves--after dt { flex: 0 0 auto; }
body.ap .ap-solves--after ul { display: grid; gap: 2px; }
body.ap .ap-solves--after li:not(:last-child)::after { content: none; }
body.ap .ap-decision { display: grid; gap: 6px; margin: 0 0 20px; }
body.ap .ap-decision__k { font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--ap-deep); }
body.ap .ap-decision__v { max-width: 46ch; font-size: clamp(1.375rem, 1.2rem + .8vw, 1.75rem); font-weight: 600; line-height: 1.25; letter-spacing: -.01em; color: var(--ap-ink); }
body.ap .ap-how__h { margin: clamp(32px, 4vw, 48px) 0 18px; }
body.ap .ap-ind-off--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
body.ap .ap-sec--surface .ap-ind-off .ap-ind-off__item { background: #fff; border-color: var(--ap-line); }
body.ap .ap-sec--surface .ap-ind-off .ap-ind-off__item:hover { border-color: var(--ap-blue); }
body.ap .ap-who2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
body.ap .ap-who2__part { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 22px 26px; border-left: 4px solid var(--ap-blue); border-radius: 0 var(--ap-r-s) var(--ap-r-s) 0; background: var(--ap-surface); }
body.ap .ap-who2__h { margin: 0; font-size: 1.0625rem; font-weight: 700; color: var(--ap-deep); }
body.ap .ap-who2__part p { margin: 0; }
body.ap .ap-who2__part .ap-more { margin-top: 4px; font-weight: 600; }
body.ap .ap-ind-problems > .ap-lead { margin: 0 0 18px; }
/* TVA release 3: Our approach. What a stage leaves you with, your team's part in it and the problems it usually solves (TVA-011). */
body.ap .ap-stage__outcome { margin: 0 0 10px; font-weight: 600; color: var(--ap-ink); }
body.ap .ap-stage__meta { display: grid; gap: 14px; margin-top: 22px; }
body.ap .ap-stage__client { margin: 0; max-width: 72ch; }
body.ap .ap-stage__client strong { color: var(--ap-deep); }
body.ap .ap-stage__meta .ap-solves { margin: 0; max-width: none; }
body.ap .ap-solves--stack > div { display: block; }
body.ap .ap-solves--stack dt { margin: 0 0 6px; }
body.ap .ap-solves--stack ul { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: 0 28px; }
body.ap .ap-solves--stack li:not(:last-child)::after { content: none; }
body.ap :is(.ap-offerings--chooser, .ap-next__item) .ap-solves ul { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); gap: 0 24px; }
body.ap :is(.ap-offerings--chooser, .ap-next__item) .ap-solves li:not(:last-child)::after { content: none; }
body.ap .ap-values--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1099px) { body.ap .ap-values--four { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { body.ap .ap-values--four { grid-template-columns: minmax(0, 1fr); } }
body.ap .ap-req { display: grid; gap: 20px clamp(24px, 4vw, 48px); margin: 36px 0 0; }
body.ap .ap-req--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
body.ap .ap-req--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
body.ap .ap-req--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
body.ap .ap-req__col { padding: 20px 22px; background: #fff; border: 1px solid var(--ap-line); border-top: 3px solid var(--ap-blue); border-radius: var(--ap-r-s); }
body.ap .ap-req__col--not { border-top-color: var(--ap-muted); }
body.ap .ap-req__col .ap-h3 { margin: 0 0 10px; font-size: 1.125rem; }
body.ap .ap-req__col ul { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
body.ap .ap-req__col li { position: relative; margin: 0; padding-left: 18px; font-size: .9688rem; line-height: 1.5; }
body.ap .ap-req__col li::before { content: ""; position: absolute; left: 0; top: .62em; width: 8px; height: 8px; border-radius: 50%; background: var(--ap-blue); }
body.ap .ap-req__col--not li::before { top: .78em; width: 9px; height: 2px; border-radius: 0; background: var(--ap-muted); }
body.ap .ap-next { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin: 0; padding: 0; list-style: none; }
body.ap .ap-next__item { display: grid; align-content: start; gap: 8px; margin: 0; padding: 22px 24px; background: #fff; border: 1px solid var(--ap-line); border-radius: var(--ap-r-s); }
body.ap .ap-next__item > * { margin: 0; }
body.ap .ap-next__item .ap-h3 a { color: var(--ap-ink); text-decoration: none; }
body.ap .ap-next__item .ap-h3 a:hover { text-decoration: underline; text-underline-offset: 4px; }
body.ap .ap-next__item .ap-solves { margin: 4px 0 0; }
@media (max-width: 1024px) { body.ap .ap-req--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 800px) { body.ap :is(.ap-req--2, .ap-req--3, .ap-req--4, .ap-next, .ap-ind-off--two, .ap-who2) { grid-template-columns: minmax(0, 1fr); } }

/* ------------------------------------------------------------------ 22. Navigation surfaces (TVA release 2) */
/* A panel that is taller than the space under the header scrolls inside itself instead of running off the screen (IA 01 section 3). */
body.ap .ap-mm { max-height: calc(100vh - var(--ap-header-offset, 90px) - 12px); max-height: calc(100dvh - var(--ap-header-offset, 90px) - 12px); overflow-y: auto; overscroll-behavior: contain; }
/* No featured case in the panel: the columns take the whole width instead of leaving an empty 300px track. */
body.ap .ap-mm__main--solo { grid-template-columns: minmax(0, 1fr); }
/* How We Help: the intro, four problem families, then the services and the way we work; the featured case on the right. */
body.ap .ap-mm--hwh .ap-mm__body { min-width: 0; }
body.ap .ap-mm--hwh .ap-mm__intro { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 8px 32px; padding: 26px 40px 0; }
body.ap .ap-mm__title { margin: 0 0 2px; font-size: 1.25rem; line-height: 1.3; font-weight: 700; color: var(--ap-ink); }
body.ap .ap-mm__lead { margin: 0; font-size: .9375rem; color: var(--ap-muted); }
body.ap .ap-mm--hwh .ap-mm__cols { padding-top: 22px; padding-bottom: 26px; }
body.ap .ap-mm__aud { margin: 0 0 6px; font-size: .75rem; line-height: 1.4; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--ap-muted); }
body.ap .ap-mm--hwh .ap-mm__cols .ap-mm__head { margin: 0 0 8px; padding-bottom: 10px; border-bottom: 2px solid var(--ap-blue); font-size: 1.0625rem; line-height: 1.3; letter-spacing: 0; text-transform: none; color: var(--ap-ink); }
body.ap .ap-mm--hwh .ap-mm__cols .ap-mm__list a { padding: 6px 0; font-size: .9375rem; font-weight: 500; }
body.ap .ap-mm__rows { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 40px; padding: 20px 40px 22px; border-top: 1px solid var(--ap-line); background: var(--ap-surface); }
body.ap .ap-mm__rows .ap-mm__col { min-width: 0; }
body.ap .ap-mm__rows .ap-mm__list { display: flex; flex-wrap: wrap; gap: 0 26px; }
body.ap .ap-mm__rows .ap-mm__list a { padding: 5px 0; font-size: .9375rem; }
body.ap .ap-mm__rows .ap-mm__list a span { color: var(--ap-link); }
/* The desktop menu starts at 1257px, so the IA's 1024-1279px band (two by two, the second row beneath) is 1257-1279px here. */
@media (max-width: 1279px) {
  body.ap .ap-mm--hwh .ap-mm__cols--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.ap .ap-mm--hwh .ap-mm__cols > .ap-mm__col:nth-child(n+3) { margin-top: 22px; }
}
@media (max-height: 640px) {
  body.ap .ap-mm--hwh .ap-mm__intro { padding-top: 16px; }
  body.ap .ap-mm__bar { padding-top: 10px; padding-bottom: 10px; }
}
/* Drawer: a problem family opens inside its group (overview link, then its problems); the assessment and Talk to us stay in view. */
body.ap .ap-drawer__fam { border-top: 1px solid var(--ap-line); }
body.ap .ap-drawer__g .ap-drawer__fam > summary { padding: 13px 0; font-size: 1.0625rem; font-weight: 600; color: var(--ap-ink); }
body.ap .ap-drawer__g .ap-drawer__fam[open] > summary { color: var(--ap-link); }
body.ap .ap-drawer__famcontent { padding: 0 0 8px 12px; }
body.ap .ap-drawer__famcontent li a { font-size: 1rem; }
body.ap .ap-drawer__g .ap-drawer__famcontent > a.ap-drawer__famlink { display: flex; align-items: center; min-height: 44px; padding: 0 0 0 2px; font-size: .9375rem; font-weight: 700; color: var(--ap-link); text-decoration: none; }
body.ap .ap-drawer__g .ap-drawer__famcontent > a.ap-drawer__famlink:hover { text-decoration: underline; text-underline-offset: 3px; }
/* 404: the four problem areas as plain links under the buttons. */
body.ap .ap-notfound__label { margin: 28px 0 6px; text-align: center; font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--ap-muted); }
body.ap .ap-flinks--compact { display: flex; flex-wrap: wrap; justify-content: center; gap: 2px 28px; margin: 0; }
body.ap .ap-flinks--compact li { padding: 0; border-top: 0; }
body.ap .ap-flinks--compact a { display: inline-block; padding: 8px 0; font-weight: 600; color: var(--ap-link); text-decoration: underline; text-underline-offset: 3px; }

/* ------------------------------------------------------------------ 23. TVA release 3: journeys */
/* What happens after an enquiry (TVA-038): three numbered steps on Contact, the same list compact on Thank you. */
body.ap .ap-form-hint { margin: 0 0 24px; max-width: 46em; font-size: 1rem; line-height: 1.6; color: var(--ap-muted); }
body.ap .ap-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; margin: 0; padding: 0; list-style: none; }
body.ap .ap-step { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 24px 22px 22px; background: #fff; border: 1px solid var(--ap-line); border-radius: var(--ap-r); }
body.ap .ap-step .ap-h3 { margin: 0; }
body.ap .ap-step p { margin: 0; font-size: .9688rem; }
body.ap .ap-step__n { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--ap-deep); color: #fff; font-weight: 700; }
body.ap .ap-steps__alt { margin: 28px 0 0; }
body.ap .ap-steps--compact { grid-template-columns: minmax(0, 1fr); gap: 12px; margin-top: 14px; }
body.ap .ap-steps--compact .ap-step { display: grid; grid-template-columns: 40px minmax(0, 1fr); column-gap: 16px; row-gap: 4px; align-items: start; padding: 16px 18px; }
body.ap .ap-steps--compact .ap-step__n { grid-row: 1 / span 2; }
body.ap .ap-thanks__h { margin: 36px 0 0; }
@media (max-width: 900px) {
  body.ap .ap-steps { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  body.ap .ap-step { display: grid; grid-template-columns: 40px minmax(0, 1fr); column-gap: 16px; row-gap: 4px; align-items: start; padding: 16px 18px; }
  body.ap .ap-step__n { grid-row: 1 / span 2; }
}
/* The assessment landing (TVA-036): what happens next and how far to rely on a result, and what the assessment covers. */
body.ap .ap-aside__b .ap-steps--compact { margin-top: 0; }
body.ap .ap-limits { display: grid; gap: 10px; max-width: 62ch; margin: 0; padding: 0; list-style: none; }
body.ap .ap-limits li { position: relative; margin: 0; padding-left: 22px; line-height: 1.6; }
body.ap .ap-limits li::before { content: ""; position: absolute; left: 4px; top: .72em; width: 7px; height: 7px; border-radius: 50%; background: var(--ap-deep); }
body.ap .ap-covers { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin: 0; padding: 0; list-style: none; }
body.ap .ap-cover { display: grid; grid-template-columns: 40px minmax(0, 1fr); column-gap: 16px; row-gap: 4px; align-content: start; align-items: start; margin: 0; padding: 20px 22px; background: #fff; border: 1px solid var(--ap-line); border-radius: var(--ap-r); }
body.ap .ap-cover__n { grid-row: 1 / span 3; display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--ap-deep); color: #fff; font-weight: 700; }
body.ap .ap-cover .ap-h3 { margin: 0; }
body.ap .ap-cover p { margin: 0; font-size: .9688rem; line-height: 1.55; }
@media (max-width: 640px) { body.ap .ap-press .ap-logos__list li { width: 180px; padding: 0 14px; } body.ap .ap-press .ap-logos__list img { height: 72px; } }
body.ap .ap-cover__help a { font-weight: 600; color: var(--ap-link); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 900px) {
  body.ap .ap-covers { grid-template-columns: minmax(0, 1fr); }
}

/* ------------------------------------------------------------------ 24. TVA release 4: self-checks in articles */
/* The note before the questions and the limits line after the result, shared by the four self-checks in the legacy articles (posts
   6209, 6329, 7184 and 7292, TVA-026). Their widgets are light surfaces with their own type, so colour and size are set here. */
body.ap p.ap-selfcheck-note,
body.ap p.ap-selfcheck-limits { margin: 14px 0; padding: 10px 14px; border-left: 3px solid var(--ap-blue); border-radius: 0 var(--ap-r-s) var(--ap-r-s) 0; background: var(--ap-surface); color: var(--ap-text); font-size: .9375rem; font-style: normal; line-height: 1.55; text-align: left; }
body.ap p.ap-selfcheck-note strong { color: var(--ap-ink); }
body.ap p.ap-selfcheck-limits a { color: var(--ap-link); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }

/* ------------------------------------------------------------------ 25. TVA release 4: search results and retained FAQ pages */
/* Search (site-search.php): a count, a retry form, a ranked list with the type of each result, and a pager that keeps the query. */
body.ap .ap-search { max-width: 880px; margin: 0 auto; padding: 4px 0 var(--ap-sp); font-size: 1.0625rem; line-height: 1.65; font-weight: 500; color: var(--ap-text); }
body.ap .ap-search *, body.ap .ap-search *::before, body.ap .ap-search *::after { box-sizing: border-box; }
body.ap .ap-search__count { margin: 0 0 16px; font-weight: 700; color: var(--ap-ink); }
body.ap .ap-search__help { margin: 0 0 20px; color: var(--ap-muted); }
body.ap .ap-search__help a { color: var(--ap-link); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
body.ap .ap-search__h { margin: 28px 0 4px; font-size: .75rem; line-height: 1.4; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--ap-muted); }
body.ap .ap-flinks--left { justify-content: flex-start; }
body.ap .ap-results { margin: 0; padding: 0; list-style: none; }
body.ap .ap-result { margin: 0; padding: 22px 0; border-top: 1px solid var(--ap-line); }
body.ap .ap-result:first-child { border-top: 0; padding-top: 6px; }
body.ap .ap-result__type { margin: 0 0 4px; font-size: .75rem; line-height: 1.4; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ap-link); }
body.ap .ap-result__title { margin: 0 0 6px; font-size: clamp(1.1875rem, 1.1rem + .4vw, 1.4375rem); line-height: 1.3; }
body.ap .ap-result__title a { color: var(--ap-ink); text-decoration: none; }
body.ap .ap-result__title a:hover { color: var(--ap-link); text-decoration: underline; text-underline-offset: 4px; }
body.ap .ap-result__summary { margin: 0; }
body.ap .ap-result__date { margin: 6px 0 0; font-size: .875rem; color: var(--ap-muted); }
body.ap .ap-pager { margin: 28px 0 0; }
body.ap .ap-pager__list { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin: 0; padding: 0; list-style: none; }
body.ap .ap-pager__list li { margin: 0; }
body.ap .ap-pager__now { font-weight: 600; color: var(--ap-muted); }
/* A retained legacy FAQ page (legacy-faq-template.php): the answer, then two ways on. */
body.ap .ap-legacy-faq__next { margin: 48px 0 0; padding: 24px 28px; border: 1px solid var(--ap-line); border-radius: var(--ap-r); background: var(--ap-surface); color: var(--ap-text); }
body.ap .ap-legacy-faq__h { margin: 0 0 8px; font-size: 1.25rem; line-height: 1.3; color: var(--ap-ink); }
body.ap .ap-legacy-faq__next p { margin: 0; }
body.ap .ap-legacy-faq__next p.ap-legacy-faq__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 18px; }
@media (max-width: 640px) { body.ap .ap-legacy-faq__next { padding: 20px; } }

/* ------------------------------------------------------------------ 26. TVA release 4: related thinking and the way into Insights by problem */
/* Related thinking (insights-editorial.php): below an article, one to three cards chosen by the article's problem. */
body.ap .ap-related { margin: 0; }
body.ap .ap-related__h { margin: 0 0 14px; font-size: 1.25rem; line-height: 1.3; color: var(--ap-ink); }
/* The lead of the Insights page: the four problems, each with the articles put forward for it and a way to the filtered archive. */
body.ap .ap-lead-problems { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin: 0; padding: 0; list-style: none; }
body.ap .ap-lead-problem { display: flex; flex-direction: column; margin: 0; padding: 24px; border: 1px solid var(--ap-line); border-radius: var(--ap-r); background: #fff; box-shadow: 0 8px 24px rgba(15, 35, 133, .06); }
body.ap .ap-lead-problem__h { margin: 0 0 8px; font-size: 1.1875rem; line-height: 1.3; color: var(--ap-ink); }
body.ap .ap-lead-problem__line { margin: 0 0 14px; color: var(--ap-text); }
body.ap .ap-lead-problem__list { margin: 0 0 14px; padding: 0; list-style: none; border-top: 1px solid var(--ap-line); }
body.ap .ap-lead-problem__list li { display: flex; flex-direction: column; gap: 2px; margin: 0; padding: 10px 0; border-bottom: 1px solid var(--ap-line); }
body.ap .ap-lead-problem__link { font-weight: 600; line-height: 1.4; color: var(--ap-link); text-decoration: none; }
body.ap .ap-lead-problem__link:hover, body.ap .ap-lead-problem__link:focus-visible { text-decoration: underline; text-underline-offset: 3px; }
body.ap .ap-lead-problem__date { font-size: .875rem; color: var(--ap-muted); }
body.ap .ap-lead-problem__more { margin: auto 0 0; }
@media (max-width: 800px) {
  body.ap .ap-lead-problems { grid-template-columns: minmax(0, 1fr); }
  body.ap .ap-lead-problem { padding: 20px; }
}
