/* ============================================================
   Inner pages — shared premium components (px-inner)
   Page heroes, section helpers, headings, hover systems.
   Per-page styling lives in css/px-<page>.css (owned by that page).
   ============================================================ */
body.px-site:not(.px-home) { background: var(--px-paper); color: var(--px-navy); }
body.px-site:not(.px-home) .page-wrapper { overflow: clip; }

/* Hover systems (same contract as the homepage) ----------------------- */
[data-tilt] { transform: perspective(1000px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)); transition: transform .35s var(--px-ease); will-change: transform; transform-style: preserve-3d; }
[data-tilt].is-hot { transition: transform .08s linear; }
[data-spot] { position: relative; }
[data-spot]::after { content: ''; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; opacity: 0; transition: opacity .4s; background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 50%), rgba(214, 246, 90, .16), transparent 62%); }
[data-spot].is-hot::after { opacity: 1; }

/* Headings + split words ---------------------------------------------- */
.sec-h { font: 600 36px/1.02 var(--px-display); letter-spacing: -.02em; color: var(--px-navy); max-width: 16em; text-transform: none; margin: 0; }
.sec-h--sm { font-size: 30px; }
.sec-h--light { color: var(--px-ivory); }
.px-w { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .24em; margin-bottom: -.24em; }
.px-wi { display: inline-block; will-change: transform; }

/* Page hero ------------------------------------------------------------ */
.pg-hero { position: relative; isolation: isolate; display: flex; align-items: flex-end; min-height: min(62vh, 640px); padding: calc(var(--px-header-h) + 70px) 0 48px; background: var(--px-ink); color: #fff; overflow: hidden; }
.pg-hero-bg { position: absolute; inset: 0; z-index: -1; }
.pg-hero-bg img { width: 100%; height: 120%; object-fit: cover; }
.pg-hero-bg::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(7,16,51,.92) 0%, rgba(7,16,51,.62) 55%, rgba(7,16,51,.3) 100%), linear-gradient(0deg, var(--px-ink) 0%, rgba(7,16,51,0) 45%); }
.pg-hero h1 { font: 600 36px/.98 var(--px-display); letter-spacing: -.03em; color: #fff; max-width: 12em; margin: 0; text-transform: none; }
.pg-hero-lead { max-width: 36em; margin: 24px 0 0; font-size: 16px; line-height: 1.6; color: rgba(255,255,255,.78); }
.pg-crumbs { display: flex; gap: 12px; margin: 0 0 24px; padding: 0; list-style: none; font: 500 14px var(--px-body); color: var(--px-mist); }
.pg-crumbs a { color: var(--px-gold-hi); text-decoration: none; }
.pg-crumbs li + li::before { content: '/'; margin-right: 12px; opacity: .5; }

/* Section helpers ------------------------------------------------------ */
.pg-sec { position: relative; padding: 64px 0; }
.pg-sec--ink { background: var(--px-ink); color: var(--px-ivory); }
.pg-sec--navy { background: var(--px-navy); color: var(--px-ivory); }
.pg-sec--ivory { background: var(--px-ivory); }
.pg-card { position: relative; padding: 24px; border-radius: 24px; background: var(--px-navy); color: var(--px-ivory); overflow: hidden; }
.pg-card--light { background: #fff; color: var(--px-navy); box-shadow: 0 20px 60px rgba(11,20,55,.08); }


/* Fluid sizes snapped to fixed scale steps */
@media (min-width: 561px) and (max-width: 1080px) {
  .sec-h { font: 600 48px/1.02 var(--px-display); }
  .sec-h--sm { font-size: 48px; }
  .pg-hero { padding: calc(var(--px-header-h) + 70px) 0 64px; }
  .pg-hero h1 { font: 600 72px/.98 var(--px-display); }
  .pg-hero-lead { font-size: 18px; }
  .pg-sec { padding: 96px 0; }
  .pg-card { padding: 32px; }
}
@media (min-width: 1081px) {
  .sec-h { font: 600 72px/1.02 var(--px-display); }
  .sec-h--sm { font-size: 60px; }
  .pg-hero { padding: calc(var(--px-header-h) + 70px) 0 96px; }
  .pg-hero h1 { font: 600 96px/.98 var(--px-display); }
  .pg-hero-lead { font-size: 20px; }
  .pg-sec { padding: 96px 0; }
  .pg-card { padding: 40px; }
}

/* ============================================================
   BLENDED ATMOSPHERE (inner pages) — same system as the homepage.
   One continuous glow behind the page, hero and dark blocks that fade
   in and out of it, frosted cards, accent as a highlight.
   ============================================================ */
body.px-site:not(.px-home) { background: var(--px-page); }
body.px-site:not(.px-home)::before {
  content: ''; position: fixed; inset: 0; z-index: -1; pointer-events: none;
  background:
    radial-gradient(60vw 55vh at 96% 8%, rgba(200, 240, 60, .28), transparent 70%),
    radial-gradient(55vw 60vh at 2% 46%, rgba(47, 75, 255, .18), transparent 70%),
    radial-gradient(50vw 50vh at 88% 88%, rgba(200, 240, 60, .2), transparent 70%),
    radial-gradient(60vw 55vh at 16% 100%, rgba(110, 150, 255, .24), transparent 70%);
}
body.px-site em { font-style: normal; color: var(--px-gold-hi); }
body.px-site .pg-sec:not(.pg-sec--ink):not(.pg-sec--navy) em { color: var(--px-gold-text); }

/* Type: Heading 1 on the page hero, Heading 2 on section titles */
body.px-site .pg-hero h1 { font-size: 36px; line-height: 40px; font-weight: 600; max-width: 14em; text-wrap: balance; }
body.px-site .sec-h { font-size: 30px; line-height: 36px; font-weight: 600; text-wrap: balance; }
body.px-site .sec-h--sm { font-size: 24px; line-height: 32px; }
@media (min-width: 561px) {
  body.px-site .pg-hero h1 { font-size: 48px; line-height: 1; }
  body.px-site .sec-h { font-size: 36px; line-height: 40px; }
  body.px-site .sec-h--sm { font-size: 30px; line-height: 36px; }
}
@media (min-width: 1081px) {
  body.px-site .pg-hero h1 { font-size: 60px; }
  body.px-site .sec-h { font-size: 48px; line-height: 1; }
  body.px-site .sec-h--sm { font-size: 36px; line-height: 40px; }
}

/* Hero fades into the page instead of ending on a hard line */
body.px-site .pg-hero, body.px-site .cd-hero { padding-bottom: 144px; -webkit-mask-image: linear-gradient(180deg, #000 calc(100% - 128px), transparent 100%); mask-image: linear-gradient(180deg, #000 calc(100% - 128px), transparent 100%); }
body.px-site .pg-hero-bg::after { background: linear-gradient(180deg, rgba(7, 16, 51, .78) 0%, rgba(12, 26, 92, .64) 50%, rgba(42, 71, 232, .5) 100%); }

/* Light sections sit straight on the glow */
body.px-site .pg-sec, body.px-site .pg-sec--ivory { background: transparent; padding: var(--px-section) 0; }

/* Dark blocks: fade in from the page, glow inside, fade out again */
body.px-site .pg-sec--ink, body.px-site .pg-sec--navy, body.px-site .ab-stats, body.px-site .ab-cta, body.px-site .bl-cta, body.px-site .ba-404,
body.px-site .sv-stats, body.px-site .sv-cta, body.px-site .cd-section.dark, body.px-site .cd-cta-section, body.px-site .px-local .lo-sec--ink {
  background:
    radial-gradient(60vw 60% at 88% 22%, rgba(200, 240, 60, .24), transparent 65%),
    radial-gradient(55vw 70% at 8% 80%, rgba(47, 75, 255, .6), transparent 70%),
    linear-gradient(180deg, rgba(12, 26, 92, 0) 0, rgba(12, 26, 92, .97) 112px, rgba(7, 16, 51, .98) calc(100% - 112px), rgba(7, 16, 51, 0) 100%);
  border-top: 0; border-bottom: 0; padding-top: 144px; padding-bottom: 144px;
}
@media (max-width: 560px) { body.px-site .pg-sec--ink, body.px-site .pg-sec--navy, body.px-site .ab-stats, body.px-site .ab-cta, body.px-site .bl-cta, body.px-site .sv-stats, body.px-site .sv-cta, body.px-site .cd-section.dark, body.px-site .cd-cta-section { padding-top: 112px; padding-bottom: 112px; } }

/* Cards: navy cards carry the blue as a blend; light cards are frosted glass */
body.px-site .pg-card, body.px-site .sv-c--dark, body.px-site .lo-why article, body.px-site .pv-contact, body.px-site .rf-step--mid,
body.px-site .cd-enquiry, body.px-site .cd-strip-inner, body.px-site .ct-off--lead { background: linear-gradient(155deg, #0c1a5c 0%, #1f3bd0 100%); color: #fff; border-color: transparent; }
body.px-site .pg-card--light { background: rgba(255,255,255,.62); -webkit-backdrop-filter: blur(22px) saturate(170%); backdrop-filter: blur(22px) saturate(170%); border: 1px solid rgba(255,255,255,.85); box-shadow: inset 0 1px 0 #fff, 0 20px 48px rgba(12, 26, 92, .08); color: var(--px-navy); }

/* Hero polish: breathing room, a stronger left veil for legibility, and no white stripe
   when a dark block follows the hero (they merge instead of fading apart). */
body.px-site .pg-hero h1 { margin-bottom: 24px; }
body.px-site .pg-hero h1 + p, body.px-site .pg-hero .pg-hero-lead { margin-top: 0; }
body.px-site .pg-hero-bg::after {
  background:
    linear-gradient(90deg, rgba(7, 16, 51, .72) 0%, rgba(7, 16, 51, 0) 72%),
    linear-gradient(180deg, rgba(7, 16, 51, .78) 0%, rgba(12, 26, 92, .64) 50%, rgba(42, 71, 232, .5) 100%);
}
body.px-site .pg-hero:has(+ .ab-stats), body.px-site .pg-hero:has(+ .sv-stats), body.px-site .pg-hero:has(+ .pg-sec--ink), body.px-site .pg-hero:has(+ .pg-sec--navy) {
  -webkit-mask-image: none; mask-image: none; padding-bottom: 96px;
}
body.px-site .pg-hero + .ab-stats, body.px-site .pg-hero + .sv-stats, body.px-site .pg-hero + .pg-sec--ink, body.px-site .pg-hero + .pg-sec--navy {
  background:
    radial-gradient(60vw 60% at 88% 22%, rgba(200, 240, 60, .2), transparent 65%),
    linear-gradient(180deg, #2c40b0 0, rgba(12, 26, 92, .97) 96px, rgba(7, 16, 51, .98) calc(100% - 112px), rgba(7, 16, 51, 0) 100%);
  padding-top: 64px;
}

/* Accent words: blue on light surfaces, lime only on dark ones (lime can't be read on white) */
body.px-site em { color: var(--px-gold-text); }
body.px-site :is(.pg-hero, .cd-hero, .pg-sec--ink, .pg-sec--navy, .ab-stats, .ab-cta, .bl-cta, .ba-404, .sv-stats, .sv-cta, .cd-section.dark, .cd-cta-section, .lo-sec--ink, .pg-card:not(.pg-card--light), .sv-c--dark, .sv-v, .cd-enquiry) em { color: var(--px-gold-hi); }

/* The legacy theme paints .page-wrapper near-black; let the page glow show through */
body.px-site:not(.px-home) .page-wrapper { background: transparent; }

/* Headings inside dark blocks and dark cards are always white (per-page heading colours must not win there) */
body.px-site :is(.pg-sec--ink, .pg-sec--navy, .lo-sec--ink, .ab-stats, .ab-cta, .bl-cta, .ba-404, .sv-stats, .sv-cta, .cd-section.dark, .cd-cta-section, .pg-card:not(.pg-card--light), .lo-why article, .lo-visa, .pv-contact, .rf-step--mid, .cd-enquiry, .cd-strip-inner, .sv-c--dark) :is(h1, h2, h3, h4) { color: #fff; }
body.px-site :is(.pg-sec--ink, .pg-sec--navy, .lo-sec--ink, .ab-stats, .ab-cta, .bl-cta, .ba-404, .sv-stats, .sv-cta, .cd-section.dark, .cd-cta-section, .pg-card:not(.pg-card--light), .lo-why article, .lo-visa, .pv-contact, .rf-step--mid, .cd-enquiry, .cd-strip-inner, .sv-c--dark) p { color: rgba(255, 255, 255, .84); }

/* ============================================================
   DE-BLOCKED PAGES
   Only the hero and the closing call to action stay dark. Everything
   between sits on the shared glow, so pages read as one flow (like the
   homepage) instead of stacked blue and white strips. Contrast comes
   from cards and type, not from full-width bands.
   ============================================================ */
body.px-site :is(.pg-sec--ink, .pg-sec--navy, .ab-stats, .sv-stats, .cd-section.dark, .px-local .lo-sec--ink),
body.px-site .pg-hero + :is(.ab-stats, .sv-stats, .pg-sec--ink, .pg-sec--navy) {
  background: transparent; color: var(--px-navy); border: 0; padding-top: var(--px-section); padding-bottom: var(--px-section);
}
/* The hero fades into the page again (no dark block to merge with) */
body.px-site .pg-hero:has(+ .ab-stats), body.px-site .pg-hero:has(+ .sv-stats), body.px-site .pg-hero:has(+ .pg-sec--ink), body.px-site .pg-hero:has(+ .pg-sec--navy) {
  padding-bottom: 144px;
  -webkit-mask-image: linear-gradient(180deg, #000 calc(100% - 128px), transparent 100%); mask-image: linear-gradient(180deg, #000 calc(100% - 128px), transparent 100%);
}

/* Section copy outside cards: navy on the light page */
body.px-site :is(.pg-sec--ink, .pg-sec--navy, .ab-stats, .sv-stats, .cd-section.dark, .px-local .lo-sec--ink) :is(h1, h2, h3, h4) { color: var(--px-navy); }
body.px-site :is(.pg-sec--ink, .pg-sec--navy, .ab-stats, .sv-stats, .cd-section.dark, .px-local .lo-sec--ink) :is(p, li, small, label) { color: #3a4a86; }
body.px-site :is(.pg-sec--ink, .pg-sec--navy, .ab-stats, .sv-stats, .cd-section.dark, .px-local .lo-sec--ink) :is([class*="eyebrow"], [class*="kicker"]) { color: var(--px-gold-text); }
body.px-site :is(.pg-sec--ink, .pg-sec--navy, .ab-stats, .sv-stats, .cd-section.dark, .px-local .lo-sec--ink) em { color: var(--px-gold-text); }
body.px-site :is(.ab-stats, .sv-stats) :is(strong, b, span, div) { color: var(--px-navy); }

/* Feature cards stay blue; their copy stays light */
body.px-site .ct-formcard, body.px-site .rf-formcard { background: linear-gradient(155deg, #0c1a5c 0%, #1f3bd0 100%); border-color: transparent; box-shadow: 0 28px 64px rgba(42, 71, 232, .22); }
body.px-site :is(.pg-sec--ink, .pg-sec--navy, .ab-stats, .sv-stats, .px-local .lo-sec--ink) :is(.pg-card:not(.pg-card--light), .ct-formcard, .rf-formcard, .rf-step--mid, .cd-enquiry) :is(h1, h2, h3, h4) { color: #fff; }
body.px-site :is(.pg-sec--ink, .pg-sec--navy, .ab-stats, .sv-stats, .px-local .lo-sec--ink) :is(.pg-card:not(.pg-card--light), .ct-formcard, .rf-formcard, .rf-step--mid, .cd-enquiry) :is(p, li, small, label, span) { color: rgba(255, 255, 255, .84); }
body.px-site :is(.pg-sec--ink, .pg-sec--navy, .ab-stats, .sv-stats, .px-local .lo-sec--ink) :is(.pg-card:not(.pg-card--light), .ct-formcard, .rf-formcard, .rf-step--mid, .cd-enquiry) :is([class*="eyebrow"], [class*="kicker"], em) { color: var(--px-gold-hi); }

/* Small tiles become light frosted glass with navy text */
body.px-site :is(.rf-card, .lo-visa, .lo-card, .ct-tile, .cd-mara-point) {
  background: rgba(255, 255, 255, .64); -webkit-backdrop-filter: blur(22px) saturate(170%); backdrop-filter: blur(22px) saturate(170%);
  border: 1px solid rgba(255, 255, 255, .9); box-shadow: inset 0 1px 0 #fff, 0 16px 40px rgba(12, 26, 92, .08); color: var(--px-navy);
}
body.px-site :is(.pg-sec--ink, .pg-sec--navy, .sv-stats, .cd-section, .px-local .lo-sec--ink, .ct-main, .rf-main) :is(.rf-card, .lo-visa, .lo-card, .ct-tile, .cd-mara-point) :is(h1, h2, h3, h4, b, strong) { color: var(--px-navy); }
body.px-site :is(.pg-sec--ink, .pg-sec--navy, .sv-stats, .cd-section, .px-local .lo-sec--ink, .ct-main, .rf-main) :is(.rf-card, .lo-visa, .lo-card, .ct-tile, .cd-mara-point) :is(p, span, small, li) { color: #3a4a86; }
body.px-site :is(.rf-card, .lo-visa, .lo-card, .ct-tile, .cd-mara-point) :is([class*="ico"], [class*="icon"]) { color: var(--px-navy); background: var(--px-gold); }
body.px-site :is(.rf-card, .lo-visa, .lo-card, .ct-tile, .cd-mara-point):hover { background: rgba(255, 255, 255, .85); border-color: #fff; }
/* Map block fades in from the page instead of starting on a hard edge */
body.px-site .ct-map { -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 96px); mask-image: linear-gradient(180deg, transparent 0, #000 96px); }

/* About: principle cards are blue feature cards with white copy */
body.px-site .ab-pcard { background: linear-gradient(155deg, #0c1a5c 0%, #1f3bd0 100%); border-color: transparent; color: #fff; box-shadow: 0 24px 56px rgba(42, 71, 232, .2); }
body.px-site .ab-pcard h3 { color: #fff; }
body.px-site .ab-pcard p { color: rgba(255, 255, 255, .84); }
body.px-site .ab-pcard svg { color: var(--px-gold-hi); }

/* Numbers only where the content is a real sequence: drop decorative counters */
body.px-site .ab-pcard .n, body.px-site .sv-c-no { display: none; }

/* Labels above headings: plain sentence case instead of tracked all caps */
body.px-site:not(.px-home) :is([class*="eyebrow"], [class*="kicker"]) { text-transform: none; letter-spacing: 0; font-size: 14px; line-height: 20px; font-weight: 600; }

/* ---- Polish pass (interface feel + accessibility) ---- */
body.px-site h1, body.px-site h2, body.px-site h3 { text-wrap: balance; }
body.px-site :is(.pv-body p, .pv-body li, .ba-article p, .ba-article li, .pg-hero-lead, .lede, .cd-lede) { max-width: 75ch; text-wrap: pretty; }
body.px-site img:not([alt=""]) { outline: 1px solid rgba(7, 16, 51, .08); outline-offset: -1px; }
body.px-site :is([class*="count"], [class*="stat"] strong, [class*="num"]) { font-variant-numeric: tabular-nums; }
body.px-site .px-btn { min-height: 44px; }
body.px-site .px-btn--sm { min-height: 40px; }
/* Quote: a tinted block instead of a one-sided stripe */
body.px-site .ab-quote { border-left: 0; padding: 24px 32px; border-radius: 16px; background: rgba(255, 255, 255, .62); border: 1px solid rgba(255, 255, 255, .9); box-shadow: inset 0 1px 0 #fff, 0 16px 40px rgba(12, 26, 92, .06); }

/* Accessibility: icons that sit on light surfaces need dark ink (lime fails 3:1 on white) */
body.px-site .rf-aside-list svg { color: var(--px-gold-text); }
body.px-site .rf-aside-list li, body.px-site .rf-aside-list span { color: var(--px-navy); }
body.px-site .rf-aside-list li, body.px-site .rf-aside-list li:last-child { border-color: var(--px-line-dark); }

/* Local page: every band sits on the page glow; address card reads on light glass */
body.px-site .px-local .lo-sec, body.px-site .px-local .lo-sec--ivory, body.px-site .px-local .lo-sec--ink { background: transparent; color: var(--px-navy); padding-top: var(--px-section); padding-bottom: var(--px-section); }
body.px-site .px-local .lo-sec--ink .lo-lead { color: #3a4a86; }
body.px-site .lo-card dt { color: var(--px-gold-text); }
body.px-site .lo-card dd, body.px-site .lo-card dd a { color: var(--px-navy); }
/* Legacy theme upper-cases headings; this design uses sentence case */
body.px-site:not(.px-home) :is(h1, h2, h3, h4, h5, h6) { text-transform: none; }

/* Ghost buttons: navy on light sections, white on dark blocks and blue cards */
body.px-site :is(.pg-sec, .lo-sec) .px-btn--ghost { --bg: rgba(255, 255, 255, .7); --fg: var(--px-navy); --chip: var(--px-navy); --chip-fg: var(--px-gold); --glow: rgba(12, 26, 92, .14); box-shadow: inset 0 0 0 1px rgba(12, 26, 92, .22), inset 0 1px 0 #fff, 0 12px 28px var(--glow); }
body.px-site :is(.pg-sec, .lo-sec) .px-btn--ghost:hover { color: var(--px-ink) !important; }
body.px-site :is(.pg-hero, .ab-cta, .sv-cta, .bl-cta, .cd-cta-section, .ba-404, .cd-enquiry, .ct-formcard, .rf-formcard, .pg-card:not(.pg-card--light)) .px-btn--ghost { --bg: rgba(255, 255, 255, .1); --fg: #fff; --chip: #fff; --chip-fg: var(--px-ink); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .32), inset 0 1px 0 rgba(255, 255, 255, .4), 0 12px 28px rgba(7, 16, 51, .25); }
body.px-site :is(.pg-hero, .ab-cta, .sv-cta, .bl-cta, .cd-cta-section, .ba-404, .cd-enquiry, .ct-formcard, .rf-formcard, .pg-card:not(.pg-card--light)) .px-btn--ghost:hover { color: var(--px-ink) !important; }

/* No solid light bands: every section sits on the page glow */
body.px-site :is(.cd-section, .cd-section.alt, .sv-sec, .sv-sec--ivory, .ct-offices, .bl-grid-section, .bl-toolbar, .bl-featured) { background: transparent; }

/* Headings are semibold everywhere (one stray 300/400 weight per page was left over) */
body.px-site:not(.px-home) :is(h1, h2, h3, h4) { font-weight: 600; }

/* Contrast fixes found by the measured audit */
body.px-site .ab-marn b { color: #fff; }
body.px-site :is(.pg-sec--navy, .pg-sec--ink) [class="n"] { color: var(--px-gold-text); }

/* ============================================================
   LIQUID GLASS feature surfaces: principles, contact form, referral form.
   A vivid blue and lime backdrop sits behind frosted, bright-edged panels so
   the blur has something to refract. Concentric radii: 32 outer, 16 padding, 16 inner.
   ============================================================ */
body.px-site .ab-bento {
  padding: 16px; border-radius: 32px; isolation: isolate;
  background:
    radial-gradient(60% 70% at 8% 6%, rgba(200, 240, 60, .7), transparent 62%),
    radial-gradient(55% 60% at 96% 12%, rgba(110, 150, 255, .75), transparent 66%),
    radial-gradient(70% 80% at 80% 100%, rgba(120, 90, 255, .55), transparent 66%),
    linear-gradient(140deg, #1a2fa8 0%, #3452ee 100%);
  box-shadow: 0 32px 80px rgba(42, 71, 232, .25);
}
body.px-site :is(.ab-pcard, .ct-formcard, .rf-formcard) {
  background: rgba(255, 255, 255, .12);
  -webkit-backdrop-filter: blur(26px) saturate(190%) brightness(1.06); backdrop-filter: blur(26px) saturate(190%) brightness(1.06);
  border: 1px solid rgba(255, 255, 255, .34);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .6), inset 0 -1px 0 rgba(255, 255, 255, .1), inset 0 0 28px rgba(255, 255, 255, .06), 0 24px 60px rgba(12, 26, 92, .22);
}
body.px-site .ab-pcard { border-radius: 16px; }
body.px-site .ab-pcard h3 { color: #fff !important; }
body.px-site .ab-pcard p { color: rgba(255, 255, 255, .9) !important; }

/* Forms: the glass floats over a blue backdrop that bleeds out from behind it */
body.px-site :is(.ct-main, .rf-main) { position: relative; isolation: isolate; }
body.px-site :is(.ct-main, .rf-main)::before {
  content: ''; position: absolute; z-index: -1; left: -4%; top: 4%; width: 62%; height: 92%; pointer-events: none; filter: blur(28px);
  background:
    radial-gradient(closest-side at 28% 34%, rgba(31, 59, 208, .95), transparent 72%),
    radial-gradient(closest-side at 80% 82%, rgba(200, 240, 60, .6), transparent 70%),
    radial-gradient(closest-side at 70% 12%, rgba(110, 150, 255, .7), transparent 70%);
}
body.px-site :is(.ct-formcard, .rf-formcard) :is(h1, h2, h3, h4) { color: #fff !important; }
body.px-site :is(.ct-formcard, .rf-formcard) :is(p, label, span, small) { color: rgba(255, 255, 255, .9); }
body.px-site :is(.ct-formcard, .rf-formcard) :is(input, textarea) { background: rgba(255, 255, 255, .1); border-color: rgba(255, 255, 255, .3); color: #fff; }
body.px-site :is(.ct-formcard, .rf-formcard) :is(input, textarea)::placeholder { color: rgba(255, 255, 255, .78); }
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) { body.px-site :is(.ab-pcard, .ct-formcard, .rf-formcard) { background: rgba(12, 26, 92, .85); } }
@media (prefers-reduced-transparency: reduce) { body.px-site :is(.ab-pcard, .ct-formcard, .rf-formcard) { -webkit-backdrop-filter: blur(20px) saturate(160%); backdrop-filter: blur(20px) saturate(160%); background: rgba(255, 255, 255, .14); } }
body.px-site .rf-form-sec { position: relative; isolation: isolate; }
body.px-site .rf-form-sec::before {
  content: ''; position: absolute; z-index: -1; right: -4%; top: 6%; width: 62%; height: 88%; pointer-events: none; filter: blur(28px);
  background:
    radial-gradient(closest-side at 70% 34%, rgba(31, 59, 208, .95), transparent 72%),
    radial-gradient(closest-side at 22% 82%, rgba(200, 240, 60, .6), transparent 70%),
    radial-gradient(closest-side at 30% 12%, rgba(110, 150, 255, .7), transparent 70%);
}

/* No backdrop slabs: each glass card carries its own tint and highlight */
body.px-site .ab-bento { padding: 0; background: none; box-shadow: none; border-radius: 0; }
body.px-site :is(.ct-main, .rf-form-sec)::before { display: none; }
body.px-site .ab-pcard {
  border-radius: 24px;
  background:
    radial-gradient(60% 50% at 6% 4%, rgba(200, 240, 60, .38), transparent 64%),
    linear-gradient(150deg, rgba(26, 47, 168, .94) 0%, rgba(52, 82, 238, .84) 100%);
}
body.px-site :is(.ct-formcard, .rf-formcard) {
  background:
    radial-gradient(55% 40% at 4% 3%, rgba(200, 240, 60, .3), transparent 64%),
    linear-gradient(150deg, rgba(26, 47, 168, .94) 0%, rgba(52, 82, 238, .84) 100%);
}
body.px-site :is(.ct-formcard, .rf-formcard) :is(input, textarea)::placeholder { color: transparent; }
@media (prefers-reduced-transparency: reduce) { body.px-site :is(.ab-pcard, .ct-formcard, .rf-formcard) { background: linear-gradient(150deg, rgba(26, 47, 168, .94) 0%, rgba(52, 82, 238, .84) 100%); } }
body.px-site .ct-tile [class*="go"] { color: var(--px-navy); }

/* 404 page */
.nf-cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.nf-links { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; list-style: none; margin: 40px 0 0; padding: 0; }
.nf-links a { display: block; padding: 16px 24px; border-radius: 16px; background: rgba(255,255,255,.64); -webkit-backdrop-filter: blur(22px) saturate(170%); backdrop-filter: blur(22px) saturate(170%); border: 1px solid rgba(255,255,255,.9); box-shadow: inset 0 1px 0 #fff, 0 12px 32px rgba(12,26,92,.06); color: var(--px-navy); font-weight: 600; text-decoration: none; transition: transform .5s var(--px-ease), border-color .3s var(--px-ease); }
.nf-links a:hover { transform: translateY(-2px); border-color: var(--px-navy); }

/* Contact: head office card readability (white text over a stronger scrim) */
body.px-site .ct-off--lead::before { background: linear-gradient(0deg, rgba(7,16,51,.96) 0%, rgba(7,16,51,.88) 45%, rgba(7,16,51,.35) 100%); }
body.px-site .ct-off--lead img { opacity: .5; }
body.px-site .ct-off--lead h3 { color: #fff !important; -webkit-text-fill-color: #fff; background: none; }
body.px-site .ct-off--lead p { color: rgba(255,255,255,.9) !important; }
body.px-site .ct-off--lead .ct-off-tag { color: var(--px-gold-hi) !important; }
body.px-site .ct-off--lead .ct-off-link { color: #fff !important; }
