/* ══════════════════════════════════════════════════════════════════
   RISPRI · SITE REFINE LAYER  (site-refine.css)
   Loaded last on every public page, after site-system.css.
   One palette (company-profile navy + cyan), one rhythm, quiet
   surfaces, full-bleed image heroes, slow ambient motion.
   ══════════════════════════════════════════════════════════════════ */

:root {
  --r-ink: #0b2545;          /* primary ink / navy ground            */
  --r-ink-2: #0f2e57;        /* raised navy surface                  */
  --r-deep: #071a33;         /* deepest navy (footer, overlays)      */
  --r-blue: #0b6fa4;         /* brand blue: links, accents on light  */
  --r-blue-2: #1680b8;
  --r-cyan: #3cc2e6;         /* accent on dark grounds               */
  --r-ice: #9fdcf2;
  --r-paper: #f5f8fb;        /* page ground                          */
  --r-mist: #eef4f9;         /* tinted section                       */
  --r-white: #fff;
  --r-line: #dde6ef;
  --r-line-soft: rgba(11, 37, 69, .08);
  --r-line-dark: rgba(255, 255, 255, .12);
  --r-text: #1c3048;
  --r-muted: #51647a;
  --r-dim: #b6c8da;          /* body copy on dark                    */
  --r-radius: 10px;
  --r-radius-sm: 6px;
  --r-shadow: 0 1px 2px rgba(11, 37, 69, .04), 0 8px 24px -12px rgba(11, 37, 69, .14);
  --r-shadow-hover: 0 2px 4px rgba(11, 37, 69, .05), 0 22px 44px -20px rgba(11, 37, 69, .28);
  --r-gutter: clamp(20px, 4vw, 56px);
  --r-shell: min(1320px, calc(100% - 2 * var(--r-gutter)));
  --r-section: clamp(56px, 6.5vw, 96px);
  --r-display: "Archivo", "Inter", system-ui, sans-serif;
  --r-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --r-ease: cubic-bezier(.2, .7, .2, 1);
}

/* Re-point the older token families at the one palette. */
body.site-page {
  --site-ink: var(--r-ink);
  --site-ink-soft: #1d3f66;
  --site-teal: var(--r-blue);
  --site-teal-light: var(--r-ice);
  --site-paper: var(--r-paper);
  --site-tint: var(--r-mist);
  --site-line: var(--r-line);
  --site-muted: var(--r-muted);
  --site-radius: var(--r-radius);
  --primary: #0d3b73;
  --primary-dark: var(--r-ink);
  --primary-mid: var(--r-blue);
  --primary-light: #e8f2fb;
  --accent: var(--r-blue);
  --accent-dark: #0a5f8f;
  --accent-light: #e8f4fb;
  --teal: var(--r-blue);
  --ind-orange: var(--r-cyan);
  --hx-ink: var(--r-ink);
  --hx-teal: var(--r-blue);
  --hx-teal-deep: var(--r-blue);
  --hx-teal-bright: var(--r-cyan);
  --hx-orange: var(--r-cyan);
  --hx-paper: var(--r-paper);
  --hx-line: var(--r-line);
  --hx-ink-body: var(--r-muted);
  --pol-teal-bright: var(--r-cyan);
  background: var(--r-paper);
  color: var(--r-text);
  font-family: var(--r-body);
  text-rendering: optimizeLegibility;
}

html { scroll-padding-top: 96px; }
body.site-page ::selection { background: rgba(60, 194, 230, .28); color: var(--r-ink); }
body.site-page img { max-width: 100%; }

/* ─────────────────────────── Header ─────────────────────────── */
.rl-header {
  --nav-ink: var(--r-ink);
  --nav-teal: var(--r-blue);
  background: rgba(255, 255, 255, .86);
  -webkit-backdrop-filter: saturate(1.6) blur(14px);
  backdrop-filter: saturate(1.6) blur(14px);
  border-bottom: 1px solid var(--r-line-soft);
  transition: box-shadow .3s ease, background .3s ease;
}
.rl-header.is-scrolled { background: rgba(255, 255, 255, .94); box-shadow: 0 10px 30px -18px rgba(11, 37, 69, .35); }
.rl-header-inner { padding-top: 14px; padding-bottom: 14px; transition: padding .3s ease; }
.rl-header.is-scrolled .rl-header-inner { padding-top: 9px; padding-bottom: 9px; }
.rl-brand img { filter: none; }
.rl-brand small { color: var(--r-muted); }
.rl-nav-panel { background: #fff; border-color: var(--r-line); border-radius: 0 0 var(--r-radius) var(--r-radius); }
.rl-feature { background: var(--r-ink); border-radius: var(--r-radius-sm); }
.rl-feature::after { background: linear-gradient(180deg, rgba(7, 26, 51, .15), rgba(7, 26, 51, .92) 92%); }
.rl-feature img { opacity: .55; }
.rl-contact { border-radius: 999px; padding: 12px 20px; background: var(--r-ink); gap: 14px; }
.rl-contact span { color: var(--r-cyan); }
.rl-contact:hover { background: var(--r-blue); }
.rl-progress {
  position: absolute; left: 0; bottom: -1px; height: 2px; width: 100%;
  transform-origin: 0 50%; transform: scaleX(var(--rl-progress, 0));
  background: linear-gradient(90deg, var(--r-blue), var(--r-cyan));
  pointer-events: none;
}
.announce-ribbon { background: var(--r-deep) !important; }
.announce-ribbon-inner a:hover { color: var(--r-ice) !important; }

/* ─────────────────────────── Rhythm ─────────────────────────── */
body.site-page .container,
body.site-page .sol-shell,
body.site-page .sol-content-width {
  width: var(--r-shell);
  max-width: 1320px;
  margin-inline: auto;
}
body.site-page:not(.home-v3) main :is(.section, .career-section, .why-join-section, .geo-faq-section, .sol-section) {
  padding-top: var(--r-section) !important;
  padding-bottom: var(--r-section) !important;
}
body.site-page .section--sm { padding-top: clamp(32px, 4vw, 56px) !important; padding-bottom: clamp(32px, 4vw, 56px) !important; }
/* Neighbouring sections on the same ground should not double their space. */
body.site-page main :is(.section, .sol-section):not([class*="dark"]):not(.section--gray):not(.section--light):not(.sol-section--tint)
  + :is(.section, .sol-section):not([class*="dark"]):not(.section--gray):not(.section--light):not(.sol-section--tint) {
  padding-top: calc(var(--r-section) * .55) !important;
}
body.site-page main section:empty { display: none; }

/* Typography */
:where(body.site-page) :where(h1, h2, h3) { font-family: var(--r-display); color: var(--r-ink); }
body.site-page :where(.section, .sol-section) :is(h2, .sol-heading) { letter-spacing: -.025em !important; }
body.site-page main :where(.section-header, .sol-section-head) { margin-bottom: clamp(28px, 3.5vw, 48px); }
body.site-page .divider { width: 44px; height: 2px; background: linear-gradient(90deg, var(--r-blue), var(--r-cyan)); border-radius: 2px; }
body.site-page :is(.overline, .eyebrow, .sol-kicker, .sol-eyebrow, .hx-eyebrow, [class*="kicker"]) { color: var(--r-blue) !important; }
body.site-page :is([class*="dark"], .hx-hero, .hx-shift, .hx-cta, .cta-band, .ind-cta-band, .sol-index, .mega-footer, .page-hero, .cat-hero, .ind-page-hero, .story-hero, .career-hero, .job-page-hero) :is(.overline, .eyebrow, .sol-kicker, .hx-eyebrow, [class*="kicker"]) { color: var(--r-cyan) !important; }
body.site-page a { text-underline-offset: 3px; }

/* Lists: one bullet language (replaces orange dots). */
body.site-page main :is(.check-list, .bullet-list, .feature-list) li::before,
body.site-page main li::marker { color: var(--r-blue); }

/* ─────────────────────────── Surfaces ─────────────────────────── */
/* Quiet cards: hairline, soft depth on hover, one radius. */
body.site-page main :is(
  .bento-card, .consult-card, .course-card, .industry-card, .service-card, .blog-card,
  .career-card, .job-card, .cert-card, .client-card, .feature-card, .calc-card, .contact-card,
  .sol-card, .hx-service-mini, .info-card, .test-card, .param-card, .program-card, .value-card
) {
  border: 1px solid var(--r-line-soft) !important;
  border-radius: var(--r-radius) !important;
  background: #fff;
  box-shadow: var(--r-shadow) !important;
  transition: transform .35s var(--r-ease), box-shadow .35s var(--r-ease), border-color .35s ease !important;
}
body.site-page main :is(
  .bento-card, .consult-card, .course-card, .industry-card, .service-card, .blog-card,
  .career-card, .job-card, .cert-card, .client-card, .feature-card, .calc-card, .contact-card,
  .sol-card, .hx-service-mini, .info-card, .test-card, .param-card, .program-card, .value-card
):hover {
  transform: translateY(-3px) !important;
  border-color: rgba(11, 111, 164, .22) !important;
  box-shadow: var(--r-shadow-hover) !important;
}
body.site-page main .faq-item { border-radius: var(--r-radius-sm) !important; box-shadow: none !important; }
body.site-page main .faq-item:hover { transform: none !important; }

/* Tables */
body.site-page main :is(.table-wrap, .sol-table-wrap, .table-responsive) {
  border: 1px solid var(--r-line) !important;
  border-radius: var(--r-radius) !important;
  overflow: auto;
  box-shadow: none !important;
  background: #fff;
}
body.site-page table th { background: var(--r-ink) !important; }
body.site-page table tbody tr:nth-child(even) td { background: #f8fbfd; }
body.site-page table tbody tr:hover td { background: #eef6fb; }

/* Controls */
body.site-page :is(.btn, .ind-btn, .sol-button, .hx-btn, button[type="submit"]) {
  border-radius: 999px !important;
  transition: background .25s ease, color .25s ease, border-color .25s ease, transform .25s var(--r-ease), box-shadow .25s ease !important;
}
body.site-page :is(.btn-primary, .btn-orange, .ind-btn--dark, .sol-button, .hx-btn--primary, button[type="submit"]) {
  background: var(--r-ink) !important;
  border-color: var(--r-ink) !important;
  color: #fff !important;
}
body.site-page :is(.btn-primary, .btn-orange, .ind-btn--dark, .sol-button, .hx-btn--primary, button[type="submit"]):hover {
  background: var(--r-blue) !important;
  border-color: var(--r-blue) !important;
  transform: translateY(-1px);
  box-shadow: 0 10px 24px -12px rgba(11, 111, 164, .7) !important;
}
body.site-page :is([class*="dark"], .hx-hero, .hx-cta, .cta-band, .ind-cta-band, .page-hero, .ind-page-hero) :is(.btn-primary, .ind-btn--dark, .hx-btn--primary, .sol-button) {
  background: #fff !important; border-color: #fff !important; color: var(--r-ink) !important;
}
body.site-page :is([class*="dark"], .hx-hero, .hx-cta, .cta-band, .ind-cta-band, .page-hero, .ind-page-hero) :is(.btn-primary, .ind-btn--dark, .hx-btn--primary, .sol-button):hover {
  background: var(--r-cyan) !important; border-color: var(--r-cyan) !important; color: var(--r-deep) !important;
}
body.site-page .sol-button span { color: var(--r-cyan) !important; }
body.site-page :is(input, select, textarea) { border-color: #c9d6e3 !important; border-radius: var(--r-radius-sm) !important; }
body.site-page :is(input, select, textarea):focus { border-color: var(--r-blue) !important; outline: 3px solid rgba(11, 111, 164, .14) !important; }
body.site-page :focus-visible { outline-color: var(--r-blue); }

/* Tabs / pills */
body.site-page main :is(.tab-btn, .filter-btn, .pill, .chip, .tag):is(.active, [aria-selected="true"]) {
  background: var(--r-ink) !important; border-color: var(--r-ink) !important; color: #fff !important;
}

/* ───────────────────── Dark bands: readable type ───────────────────── */
body.site-page :is(.cta-band, .ind-cta-band, .clean-ind-cta, .post-cta-box--dark, .sol-section--dark, .section--dark, [class*="--dark"]) :is(h1, h2, h3, h4) {
  color: #fff !important;
}
body.site-page :is(.cta-band, .ind-cta-band, .clean-ind-cta, .sol-section--dark, .section--dark) p { color: var(--r-dim) !important; }
body.site-page :is(.cta-band, .ind-cta-band) {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  border-radius: var(--r-radius) !important;
  background:
    radial-gradient(70% 120% at 100% 0%, rgba(60, 194, 230, .22), transparent 60%),
    radial-gradient(60% 90% at 0% 100%, rgba(11, 111, 164, .35), transparent 60%),
    var(--r-ink) !important;
  border: 0 !important;
}
body.site-page :is(.cta-band, .ind-cta-band)::after {
  content: ""; position: absolute; inset: -40%; z-index: -1; pointer-events: none;
  background: conic-gradient(from 0deg at 50% 50%, transparent 0 70%, rgba(60, 194, 230, .10) 80%, transparent 90%);
  animation: r-sweep 28s linear infinite;
}
body.site-page :is(.ind-btn--outline-white, .btn-outline-white, .hx-btn--ghost) {
  border: 1px solid rgba(255, 255, 255, .45) !important; color: #fff !important; background: transparent !important;
}
body.site-page :is(.ind-btn--outline-white, .btn-outline-white, .hx-btn--ghost):hover { border-color: #fff !important; background: rgba(255, 255, 255, .08) !important; }

/* ───────────────────── Full-bleed image heroes ─────────────────────
   One hero language for inner pages: photograph edge to edge, navy
   veil from the left, light copy in the content shell, slow drift. */
body.site-page:not(.solution-page):not(.home-v3) .ind-page-hero {
  display: grid !important;
  grid-template-columns: 1fr !important;
  align-items: center;
  width: 100% !important;
  min-height: clamp(420px, 62svh, 620px) !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: var(--r-deep) !important;
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
body.site-page:not(.solution-page):not(.home-v3) .ind-page-hero-right {
  position: absolute !important;
  inset: 0 !important;
  z-index: 0;
  min-height: 0 !important;
  clip-path: none !important;
  background: var(--r-deep) !important;
  overflow: hidden;
}
body.site-page:not(.solution-page):not(.home-v3) .ind-page-hero-right-img {
  position: absolute; inset: -2%;
  opacity: 1 !important;
  filter: saturate(.9) contrast(1.04) brightness(.78);
  background-size: cover; background-position: center;
}
body.site-page:not(.solution-page):not(.home-v3) .ind-page-hero-right-overlay {
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(7, 26, 51, .92) 0%, rgba(7, 26, 51, .74) 38%, rgba(7, 26, 51, .28) 72%, rgba(7, 26, 51, .45) 100%),
    linear-gradient(180deg, rgba(7, 26, 51, .1) 55%, rgba(7, 26, 51, .7) 100%) !important;
}
body.site-page:not(.solution-page):not(.home-v3) .ind-page-hero-left {
  position: relative;
  z-index: 2;
  width: var(--r-shell) !important;
  max-width: 1320px;
  margin: 0 auto !important;
  min-height: 0 !important;
  padding: clamp(56px, 8vh, 96px) 0 !important;
  background: transparent !important;
  color: #fff !important;
  justify-content: center !important;
}
body.site-page:not(.solution-page):not(.home-v3) .ind-page-hero-left .ind-dot-grid { display: none; }
body.site-page:not(.solution-page):not(.home-v3) .ind-page-hero-eyebrow { color: var(--r-cyan) !important; }
body.site-page:not(.solution-page):not(.home-v3) .ind-page-hero-eyebrow::before { background: var(--r-cyan) !important; }
body.site-page:not(.solution-page):not(.home-v3) .ind-page-hero-title {
  max-width: 17ch !important;
  color: #fff !important;
  font-size: clamp(38px, 5vw, 68px) !important;
  font-weight: 600 !important;
  letter-spacing: -.035em !important;
  line-height: 1.02 !important;
}
body.site-page:not(.solution-page):not(.home-v3) .ind-page-hero-sub {
  max-width: 56ch !important;
  color: rgba(226, 236, 246, .86) !important;
  font-size: clamp(15px, 1.2vw, 17px) !important;
  line-height: 1.7 !important;
}
body.site-page:not(.solution-page):not(.home-v3) .ind-page-hero-breadcrumb,
body.site-page:not(.solution-page):not(.home-v3) .ind-page-hero-breadcrumb a { color: rgba(255, 255, 255, .6) !important; }
body.site-page:not(.solution-page):not(.home-v3) .ind-page-hero-badge {
  z-index: 3;
  right: max(var(--r-gutter), calc((100% - 1320px) / 2)) !important;
  bottom: clamp(24px, 4vh, 40px) !important;
  clip-path: none !important;
  border-radius: var(--r-radius) !important;
  background: rgba(255, 255, 255, .08) !important;
  border: 1px solid rgba(255, 255, 255, .22) !important;
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
}
body.site-page .ind-page-hero-badge strong { color: var(--r-cyan) !important; }
body.site-page:not(.solution-page):not(.home-v3) .ind-page-hero :is(a.btn, .ind-hero-actions a):not(.btn-primary):not(.ind-btn--dark) { color: #fff; }

/* Image-led article / sector heroes */
body.site-page:not(.solution-page):not(.home-v3) :is(.page-hero, .cat-hero) {
  width: 100% !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  min-height: clamp(380px, 52svh, 560px) !important;
  display: flex; align-items: center;
  background: var(--r-deep) !important;
  position: relative; overflow: hidden; isolation: isolate;
}
body.site-page:not(.solution-page):not(.home-v3) :is(.page-hero-content, .cat-hero-content) {
  position: relative; z-index: 2;
  width: var(--r-shell); max-width: 1320px; margin-inline: auto;
  padding-top: clamp(48px, 7vh, 88px); padding-bottom: clamp(48px, 7vh, 88px);
}
body.site-page:not(.solution-page):not(.home-v3) :is(.page-hero, .cat-hero) h1 {
  color: #fff !important; max-width: 18ch; letter-spacing: -.035em !important; font-weight: 600 !important;
}
body.site-page:not(.solution-page):not(.home-v3) :is(.page-hero, .cat-hero) p { color: rgba(226, 236, 246, .86) !important; }
body.site-page:not(.solution-page):not(.home-v3) .cat-hero :is(.cat-kicker, .overline) { color: var(--r-cyan) !important; }

/* Legal pages: centred reading surface on the page ground. */
body.site-page:not(.solution-page):not(.home-v3) #content {
  border: 1px solid var(--r-line-soft) !important;
  border-radius: var(--r-radius) !important;
  box-shadow: var(--r-shadow);
}

/* ───────────────────── Ambient motion (slow drift) ───────────────────── */
@keyframes r-drift {
  0%   { transform: scale(1.06) translate3d(0, 0, 0); }
  50%  { transform: scale(1.12) translate3d(-1.2%, -1%, 0); }
  100% { transform: scale(1.06) translate3d(0, 0, 0); }
}
@keyframes r-drift-alt {
  0%   { transform: scale(1.1) translate3d(-1%, 0, 0); }
  50%  { transform: scale(1.04) translate3d(1%, -1%, 0); }
  100% { transform: scale(1.1) translate3d(-1%, 0, 0); }
}
@keyframes r-sweep { to { transform: rotate(360deg); } }
@keyframes r-rise { from { opacity: 0; transform: translate3d(0, 22px, 0); } to { opacity: 1; transform: none; } }

.r-drift { animation: r-drift 36s ease-in-out infinite; will-change: transform; transform-origin: 50% 50%; }
.r-drift--alt { animation-name: r-drift-alt; animation-duration: 44s; }
.r-paused, .r-paused::after { animation-play-state: paused !important; }

/* Progressive reveal — only when the motion script is running. */
html.r-motion .r-reveal { opacity: 0; transform: translate3d(0, 22px, 0); }
html.r-motion .r-reveal.r-in { animation: r-rise .9s var(--r-ease) both; animation-delay: var(--r-delay, 0s); }

/* ─────────────────────────── Footer ─────────────────────────── */
body.site-page .mega-footer {
  position: relative;
  background:
    radial-gradient(60% 80% at 100% 0%, rgba(11, 111, 164, .22), transparent 60%),
    var(--r-deep) !important;
  border-top: 0 !important;
}
body.site-page .mega-footer::before {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(60, 194, 230, .6), transparent);
}
body.site-page .mega-footer .mega-inner { width: var(--r-shell); max-width: 1320px; }
body.site-page .mega-footer .brand-text { min-width: 0; }
body.site-page .mega-footer .brand-text span {
  display: block;
  max-width: 30ch;
  white-space: normal !important;
  overflow-wrap: anywhere;
  color: #93a7bb !important;
  font-size: 10px;
  line-height: 1.5;
  letter-spacing: .06em;
}
body.site-page .mega-footer .footer-brand { min-width: 0; }
body.site-page .mega-footer a:hover { color: #fff !important; }
body.site-page .mega-footer .cert-badge { border-radius: 999px; border-color: rgba(159, 220, 242, .28); color: var(--r-ice); }
body.site-page .mega-footer :is(.mega-legal, .newsletter-inner) { width: var(--r-shell); max-width: 1320px; }

/* ─────────────────────────── Floating widgets ─────────────────────────── */
body.site-page .whatsapp-float-btn { right: max(16px, env(safe-area-inset-right)) !important; }

/* ───────────────────── Solution pages ───────────────────── */
body.solution-page .sol-hero { background: var(--r-paper); padding-bottom: clamp(36px, 5vw, 56px); }
body.solution-page .sol-hero-grid { align-items: center; }
body.solution-page .sol-hero-visual {
  min-height: clamp(360px, 52svh, 520px);
  border-radius: var(--r-radius) var(--r-radius) 56px var(--r-radius);
  isolation: isolate;
}
body.solution-page .sol-hero h1 em { color: var(--r-blue) !important; }
body.solution-page .sol-eyebrow > span { background: var(--r-cyan) !important; box-shadow: 0 0 0 4px rgba(60, 194, 230, .18); }
body.solution-page .sol-index { background: var(--r-ink) !important; position: sticky; top: var(--rl-header-h, 72px); z-index: 20; }
body.solution-page .sol-index a:is(:hover, .is-active) { color: var(--r-ice) !important; border-bottom-color: var(--r-cyan) !important; }
body.solution-page .sol-section { border-bottom: 0 !important; }
body.solution-page .sol-section--tint { background: var(--r-mist) !important; }
body.solution-page .sol-section--dark,
body.solution-page .sol-section[style*="#001230"] {
  background:
    radial-gradient(60% 70% at 90% 0%, rgba(60, 194, 230, .14), transparent 60%),
    var(--r-ink) !important;
}

/* Section numerals: a quiet index, not a billboard. */
body.solution-page :is(.ez-sec-num, .pc-sec-num, .bg-sec-num, .sw-sec-num, .ch-sec-num, .ep-sec-num, .ws-sec-num) {
  font-size: clamp(13px, 1vw, 14px) !important;
  font-family: var(--r-body) !important;
  font-weight: 600 !important;
  letter-spacing: .2em !important;
  line-height: 1 !important;
  color: var(--r-blue) !important;
  margin: 0 0 14px !important;
}
body.solution-page :is(.ez-sec-num, .pc-sec-num, .bg-sec-num, .sw-sec-num, .ch-sec-num, .ep-sec-num, .ws-sec-num)[class*="--dark"],
body.solution-page :is([class*="dark"], .sol-section--dark) :is(.ez-sec-num, .pc-sec-num, .bg-sec-num, .sw-sec-num, .ch-sec-num, .ep-sec-num) { color: var(--r-cyan) !important; }
body.solution-page :is(.pc-bento-cell__bg-num) { opacity: .35; font-size: clamp(48px, 5vw, 72px) !important; }

/* Capability panels: one spec-sheet on dark, hairline dividers, no mixed fills. */
body.solution-page :is(.ez-bento, .pc-bento, .bg-bento, .sw-bento, .ep-bento) {
  display: grid !important;
  grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
  grid-auto-rows: auto !important;
  gap: 1px !important;
  overflow: hidden;
  border: 1px solid var(--r-line-dark) !important;
  border-radius: var(--r-radius) !important;
  background: var(--r-line-dark) !important;
}
body.solution-page :is(.ez-bento-cell, .pc-bento-cell, .bg-bento-cell, .sw-bento-cell, .ep-bento-cell) {
  grid-column: span 4 !important;
  min-height: 0 !important;
  padding: clamp(24px, 2.4vw, 34px) !important;
  display: flex; flex-direction: column;
  border: 0 !important;
  border-radius: 0 !important;
  background: rgba(11, 37, 69, .92) !important;
  color: #fff !important;
  box-shadow: none !important;
  transition: background .4s ease !important;
}
body.solution-page :is(.ez-bento-cell, .pc-bento-cell, .bg-bento-cell, .sw-bento-cell, .ep-bento-cell):nth-child(-n+2) { grid-column: span 6 !important; }
body.solution-page :is(.ez-bento-cell, .pc-bento-cell, .bg-bento-cell, .sw-bento-cell, .ep-bento-cell):hover {
  transform: none !important;
  background: #10335d !important;
}
body.solution-page :is(.ez-bento-cell__tag, .pc-bento-cell__tag, .bg-bento-cell__tag, .sw-bento-cell__tag, .ep-bento-cell__tag) {
  color: var(--r-cyan) !important; font-size: 10px !important; letter-spacing: .16em !important; margin: 0 0 18px !important;
}
body.solution-page :is(.ez-bento-cell__num, .pc-bento-cell__num, .bg-bento-cell__num, .sw-bento-cell__num, .ep-bento-cell__num) {
  margin: auto 0 10px !important;
  font-family: var(--r-display) !important;
  font-size: clamp(26px, 2.6vw, 40px) !important;
  font-weight: 600 !important;
  line-height: 1.02 !important;
  letter-spacing: -.03em !important;
  background: linear-gradient(90deg, #fff 0%, var(--r-ice) 100%);
  -webkit-background-clip: text; background-clip: text;
  color: transparent !important;
}
body.solution-page :is(.ez-bento-cell__title, .pc-bento-cell__title, .bg-bento-cell__title, .sw-bento-cell__title, .ep-bento-cell__title) {
  color: #fff !important; font-family: var(--r-body) !important; font-size: 14px !important; font-weight: 600 !important; letter-spacing: 0 !important; margin: 0 0 8px !important;
}
body.solution-page :is(.ez-bento-cell, .pc-bento-cell, .bg-bento-cell, .sw-bento-cell, .ep-bento-cell) p { color: var(--r-dim) !important; font-size: 13px !important; line-height: 1.7 !important; margin: 0 !important; }

/* Stat strips under solution heroes: open hairline figures. */
body.solution-page :is(.ez-stats-strip, .pc-stats-strip, .bg-stats-strip, .sw-stats-strip, .ep-stats-strip, .ch-stats-strip) { background: var(--r-paper) !important; border: 0 !important; }
body.solution-page :is(.ez-stat-cell, .pc-stat-cell, .bg-stat-cell, .sw-stat-cell, .ep-stat-cell, .ch-stat-cell) { background: transparent !important; border-left: 1px solid var(--r-line); }
body.solution-page :is(.ez-stat-cell__n, .pc-stat-cell__n, .bg-stat-cell__n, .sw-stat-cell__n, .ep-stat-cell__n, .ch-stat-cell__n) { color: var(--r-ink) !important; }
body.solution-page :is(.ez-stat-cell__u, .pc-stat-cell__u, .bg-stat-cell__u, .sw-stat-cell__u, .ep-stat-cell__u, .ch-stat-cell__u) { color: var(--r-blue) !important; }

/* ─────────────────────────── Responsive ─────────────────────────── */
@media (max-width: 900px) {
  body.solution-page :is(.ez-bento, .pc-bento, .bg-bento, .sw-bento, .ep-bento) { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  body.solution-page :is(.ez-bento-cell, .pc-bento-cell, .bg-bento-cell, .sw-bento-cell, .ep-bento-cell),
  body.solution-page :is(.ez-bento-cell, .pc-bento-cell, .bg-bento-cell, .sw-bento-cell, .ep-bento-cell):nth-child(-n+2) { grid-column: auto !important; }
  body.solution-page .sol-index { top: var(--rl-header-h, 64px); }
}
@media (max-width: 800px) {
  body.site-page:not(.solution-page):not(.home-v3) .ind-page-hero { min-height: clamp(420px, 72svh, 560px) !important; }
  body.site-page:not(.solution-page):not(.home-v3) .ind-page-hero-right-overlay {
    background: linear-gradient(180deg, rgba(7, 26, 51, .55) 0%, rgba(7, 26, 51, .88) 70%) !important;
  }
  body.site-page:not(.solution-page):not(.home-v3) .ind-page-hero-badge { position: relative !important; right: auto !important; bottom: auto !important; margin: 0 var(--r-gutter) 28px; align-self: start; }
  body.site-page .mega-footer .mega-inner { width: calc(100% - 40px); }
}
@media (max-width: 580px) {
  body.solution-page :is(.ez-bento, .pc-bento, .bg-bento, .sw-bento, .ep-bento) { grid-template-columns: 1fr !important; }
}

@media (prefers-reduced-motion: reduce) {
  .r-drift, :is(.cta-band, .ind-cta-band)::after { animation: none !important; }
  html.r-motion .r-reveal { opacity: 1 !important; transform: none !important; animation: none !important; }
}

/* ═══════════════════════════ HOMEPAGE ═══════════════════════════ */
/* Hero fits the first screen: copy centred in the space, figures on a
   hairline band along the bottom edge, photograph drifting slowly. */
body.home-v3 .hx-hero {
  margin-top: 0 !important;
  min-height: calc(100svh - var(--rl-header-h, 76px)) !important;
  max-height: none;
  align-items: stretch !important;
}
body.home-v3 .hx-hero__media { top: 0; bottom: 0; height: 100%; }
body.home-v3 .hx-hero__grad {
  background:
    radial-gradient(90% 80% at 8% 12%, rgba(11, 111, 164, .38), transparent 60%),
    linear-gradient(90deg, rgba(7, 26, 51, .9) 0%, rgba(7, 26, 51, .62) 42%, rgba(7, 26, 51, .28) 75%, rgba(7, 26, 51, .5) 100%),
    linear-gradient(180deg, rgba(7, 26, 51, .2) 0%, rgba(7, 26, 51, .1) 45%, rgba(7, 26, 51, .88) 100%);
}
body.home-v3 .hx-hero__inner {
  display: flex;
  padding: clamp(32px, 7vh, 88px) 0 0 !important;
}
body.home-v3 .hx-hero__inner > .hx-shell { display: flex; flex-direction: column; width: var(--r-shell); }
body.home-v3 .hx-hero__grid {
  flex: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: 1fr auto;
  gap: clamp(28px, 5vh, 56px);
  align-items: center;
}
body.home-v3 .hx-hero__title { font-size: clamp(2.6rem, 5.4vw, 5rem); font-weight: 700; letter-spacing: -.035em; }
body.home-v3 .hx-hero__title em { color: var(--r-cyan); }
body.home-v3 .hx-hero__sub { max-width: 58ch; color: rgba(226, 236, 246, .86); }
body.home-v3 .hx-hero__aside {
  align-self: end;
  border-left: 0 !important;
  border-top: 1px solid rgba(255, 255, 255, .16);
  padding: clamp(18px, 3vh, 28px) 0 clamp(20px, 3.5vh, 32px) !important;
}
body.home-v3 .hx-hero__stats { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(16px, 3vw, 48px); }
body.home-v3 .hx-stat { position: relative; padding-left: 16px; }
body.home-v3 .hx-stat::before { content: ""; position: absolute; left: 0; top: .35em; bottom: .35em; width: 2px; border-radius: 2px; background: linear-gradient(180deg, var(--r-cyan), rgba(60, 194, 230, 0)); }
body.home-v3 .hx-stat__n { font-size: clamp(1.8rem, 3vw, 2.8rem); }
body.home-v3 .hx-stat__l { color: rgba(214, 228, 240, .72); font-size: .84rem; line-height: 1.4; max-width: 24ch; }
body.home-v3 .hx-hero__scroll { display: none; }
body.home-v3 .hx-btn--primary { background: #fff !important; color: var(--r-ink) !important; }
body.home-v3 .hx-btn--primary:hover { background: var(--r-cyan) !important; color: var(--r-deep) !important; }

/* Trust: logos + sector reach on one open ground, no boxed tiles. */
body.home-v3 .hx-logos { padding: var(--r-section) 0 var(--r-section) !important; background: var(--r-paper); }
body.home-v3 .hx-logos .hx-shell,
body.home-v3 .hx-shell { width: var(--r-shell); }
body.home-v3 .hx-logo-lanes {
  gap: 14px; background: transparent; border: 0; height: 420px;
}
body.home-v3 .hx-logo-lane { background: transparent; }
body.home-v3 .hx-logo-lane__track { gap: 14px; }
body.home-v3 .hx-logo-lane img {
  height: 104px; padding: 1.1rem 1.3rem; background: #fff;
  border: 1px solid var(--r-line-soft); border-radius: var(--r-radius);
}
body.home-v3 .hx-trust-proof {
  display: grid; grid-template-columns: .85fr 1.5fr; gap: clamp(2rem, 4vw, 3.5rem);
  margin-top: clamp(40px, 5vw, 64px); padding-top: clamp(32px, 4vw, 48px);
  background: transparent !important; border: 0 !important; border-top: 1px solid var(--r-line) !important;
  border-radius: 0 !important; box-shadow: none !important; overflow: visible;
}
body.home-v3 .hx-trust-industries {
  grid-column: 1 / -1;
  display: grid; grid-template-columns: .85fr 1.5fr; gap: clamp(2rem, 4vw, 3.5rem); align-items: center;
  padding: 0 !important; background: transparent !important;
}
body.home-v3 .hx-trust-industries__heading {
  flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: .8rem;
  padding: 0; border: 0;
}
body.home-v3 .hx-trust-industries__heading p { color: var(--r-blue) !important; }
body.home-v3 .hx-trust-industries__heading span {
  text-align: left; font-family: var(--r-display); font-size: clamp(1.25rem, 2vw, 1.7rem);
  font-weight: 600; line-height: 1.25; letter-spacing: -.02em; color: var(--r-ink);
}
body.home-v3 .hx-trust-industries__cloud { margin: 0 !important; }
body.home-v3 .hx-trust-industries__cloud img { max-height: 330px; width: auto; max-width: 100%; margin-inline: auto; }

/* The global shift: figures on hairlines instead of filled boxes. */
body.home-v3 .hx-shift { padding: calc(var(--r-section) * 1.15) 0 !important; }
body.home-v3 .hx-figures {
  background: transparent !important; border: 0 !important; gap: clamp(16px, 3vw, 40px) !important;
}
body.home-v3 .hx-figure {
  background: transparent !important; padding: 22px 0 0 !important;
  border: 0 !important; border-top: 1px solid rgba(255, 255, 255, .18) !important; overflow: visible !important;
  border-radius: 0 !important; box-shadow: none !important;
}
body.home-v3 .hx-figure__n .u { color: var(--r-cyan); }
body.home-v3 .hx-figure__l { color: rgba(214, 228, 240, .7); }

/* Capabilities */
body.home-v3 .hx-approach { padding: var(--r-section) 0 !important; }
body.home-v3 .hx-approach__head { margin-bottom: clamp(28px, 4vw, 48px) !important; }
body.home-v3 .horizontal-cards-container { border-radius: var(--r-radius) !important; }
body.home-v3 .hx-num-circle { background: rgba(255, 255, 255, .1); border-color: rgba(255, 255, 255, .28); }
body.home-v3 .hx-expand-card.active .hx-num-circle { background: var(--r-cyan); border-color: var(--r-cyan); color: var(--r-deep); }
body.home-v3 .hx-expand-btn { background: #fff !important; color: var(--r-ink) !important; box-shadow: none !important; }
body.home-v3 .hx-expand-card:hover .hx-expand-btn { background: var(--r-cyan) !important; }
body.home-v3 .hx-expand-tag { color: var(--r-cyan) !important; }
body.home-v3 .hx-subgrid-header { margin-top: clamp(48px, 6vw, 72px) !important; }
body.home-v3 .hx-subgrid-header h2 { color: var(--r-ink) !important; }
body.home-v3 .hx-mini-badge { background: rgba(7, 26, 51, .72) !important; border-radius: 999px !important; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
body.home-v3 .hx-service-mini b { color: var(--r-blue) !important; }
body.home-v3 .hx-service-mini p { color: var(--r-muted) !important; }
body.home-v3 .hx-service-mini h3 { color: var(--r-ink) !important; }

/* Closing call to action with a slow-moving plant photograph. */
body.home-v3 .hx-cta { padding: calc(var(--r-section) * 1.2) 0 !important; background: var(--r-deep) !important; }
body.home-v3 .hx-cta::before {
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(7, 26, 51, .95) 0%, rgba(7, 26, 51, .78) 45%, rgba(7, 26, 51, .35) 100%),
    radial-gradient(60% 90% at 100% 100%, rgba(60, 194, 230, .22), transparent 60%) !important;
}
body.home-v3 .hx-cta__media { position: absolute; inset: 0; z-index: 0; overflow: hidden; }
body.home-v3 .hx-cta__media img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.85) brightness(.8); }
body.home-v3 .hx-cta .hx-shell { position: relative; z-index: 2; }
body.home-v3 .hx-cta__inner { max-width: 44rem; }
body.home-v3 .hx-cta__assure {
  display: flex; flex-wrap: wrap; gap: 10px; margin: clamp(28px, 4vw, 44px) 0 0; padding: 0; list-style: none;
}
body.home-v3 .hx-cta__assure li {
  padding: 8px 14px; border: 1px solid rgba(159, 220, 242, .3); border-radius: 999px;
  color: var(--r-ice); font-size: .74rem; font-weight: 600; letter-spacing: .04em;
  background: rgba(255, 255, 255, .04);
}

@media (max-width: 1000px) {
  body.home-v3 .hx-trust-proof,
  body.home-v3 .hx-trust-industries { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  body.home-v3 .hx-hero__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 20px; }
  body.home-v3 .hx-hero { min-height: auto !important; }
  body.home-v3 .hx-hero__inner { padding-top: 48px !important; }
  body.home-v3 .hx-logo-lanes { height: 340px; }
}

/* ═══════════════════ Shared inner-page patterns ═══════════════════ */
/* Figures strip: open numbers on navy, hairline dividers. */
body.site-page .stats-strip {
  background: radial-gradient(60% 120% at 100% 0%, rgba(60, 194, 230, .18), transparent 60%), var(--r-ink) !important;
  background-image: radial-gradient(60% 120% at 100% 0%, rgba(60, 194, 230, .18), transparent 60%) !important;
  background-color: var(--r-ink) !important;
  padding: clamp(24px, 3vw, 40px) 0 !important;
}
body.site-page .stats-strip::before { opacity: .5; }
body.site-page .stats-strip .stat-item {
  background: transparent !important; border: 0 !important; border-left: 1px solid rgba(255, 255, 255, .14) !important;
  border-radius: 0 !important; box-shadow: none !important; text-align: left; padding: 6px clamp(16px, 2vw, 28px) !important;
}
body.site-page .stats-strip .stat-item:first-child { border-left: 0 !important; }
body.site-page .stats-strip .stat-number { color: #fff !important; -webkit-text-fill-color: currentColor; background: none !important; font-family: var(--r-display); font-weight: 700; }
body.site-page .stats-strip .stat-suffix { color: var(--r-cyan) !important; -webkit-text-fill-color: currentColor; }
body.site-page .stats-strip .stat-label { color: rgba(214, 228, 240, .76) !important; text-transform: none; letter-spacing: 0; font-weight: 500; font-size: .84rem; line-height: 1.45; }

/* Process timelines: compact rows, no screen-height gaps. */
body.site-page .journey-stack { gap: 0 !important; border-top: 1px solid var(--r-line); }
body.site-page .journey-item {
  min-height: 0 !important; grid-template-columns: clamp(64px, 9vw, 120px) 1fr !important; gap: clamp(16px, 3vw, 40px) !important;
  padding: clamp(18px, 2.4vw, 28px) 0; border-bottom: 1px solid var(--r-line);
}
body.site-page .journey-year {
  position: static !important; font-family: var(--r-display) !important; font-size: clamp(1.6rem, 2.6vw, 2.4rem) !important;
  font-weight: 600 !important; color: var(--r-blue) !important; opacity: .55; letter-spacing: -.03em;
}
body.site-page .journey-story { border: 0 !important; background: transparent !important; padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; }
body.site-page .journey-story h3 { margin-top: 0; }

/* Plant showcase carousel (Ram Chemical): fits the screen, nothing clips. */
body.site-page .rce-ps-wrapper {
  height: clamp(540px, calc(100svh - var(--rl-header-h, 80px)), 780px) !important;
  background: var(--r-deep) !important;
}
body.site-page .rce-ps-panel { align-items: center; padding-block: clamp(40px, 6vh, 72px); }
body.site-page .rce-ps-content {
  width: var(--r-shell); max-width: 1320px !important; margin-inline: auto; padding: 0 !important;
  display: grid; grid-template-columns: minmax(0, 620px); max-height: 100%;
}
body.site-page .rce-ps-overlay {
  background: linear-gradient(95deg, rgba(7, 26, 51, .94) 0%, rgba(7, 26, 51, .82) 36%, rgba(7, 26, 51, .45) 62%, rgba(7, 26, 51, .12) 100%) !important;
}
body.site-page .rce-ps-tag {
  justify-self: start; color: var(--r-ice) !important; background: rgba(60, 194, 230, .12) !important;
  border-color: rgba(60, 194, 230, .35) !important; border-radius: 999px !important;
}
body.site-page .rce-ps-heading { font-family: var(--r-display) !important; font-size: clamp(1.9rem, 3.8vw, 3.1rem) !important; font-weight: 700 !important; letter-spacing: -.03em; line-height: 1.04 !important; }
body.site-page .rce-ps-desc { max-width: 54ch !important; }
body.site-page .rce-ps-features { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem 1.4rem !important; margin-bottom: 1.6rem !important; }
body.site-page .rce-ps-features li::before { background: var(--r-cyan) !important; }
body.site-page .rce-ps-arrow { border-radius: 999px !important; }
body.site-page .rce-ps-dot.rce-ps-dot-active { background: var(--r-cyan) !important; }
@media (max-width: 700px) {
  body.site-page .rce-ps-wrapper { height: clamp(560px, 92svh, 760px) !important; }
  body.site-page .rce-ps-features { grid-template-columns: 1fr; }
  body.site-page .rce-ps-panel { align-items: flex-end; }
  body.site-page .rce-ps-content { padding-bottom: 72px !important; }
}

/* Range figures beside the RCE overview: hairline list, not boxes. */
body.site-page .rce-range-card {
  background: transparent !important; border: 0 !important; border-top: 1px solid var(--r-line) !important;
  border-radius: 0 !important; box-shadow: none !important; padding: 18px 0 !important;
}
body.site-page .rce-range-num { color: var(--r-ink) !important; font-family: var(--r-display); }
body.site-page .rce-range-num span { color: var(--r-blue) !important; }

/* Capability accordion on phones: compact rows, only the open one expands. */
@media (max-width: 900px) {
  body.home-v3 .hx-expand-card { min-height: 0 !important; padding: 14px 16px !important; }
  body.home-v3 .hx-expand-content { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 12px; height: auto; }
  body.home-v3 .hx-card-badge-row { width: auto; }
  body.home-v3 .hx-num-circle { width: 36px; height: 36px; min-width: 36px; font-size: .9rem; }
  body.home-v3 .hx-collapsed-title { margin: 0 !important; font-size: 1rem; opacity: 1 !important; visibility: visible !important; transform: none !important; }
  body.home-v3 .hx-expand-card.active .hx-collapsed-title { display: none; }
  body.home-v3 .hx-expand-card:not(.active) .hx-expanded-body { display: none; }
  body.home-v3 .hx-expand-card.active { padding: 20px 18px 22px !important; min-height: 0 !important; }
  body.home-v3 .hx-expand-card.active .hx-expanded-body { flex-basis: 100%; margin-top: 4px; }
  body.home-v3 .hx-expand-card:hover:not(.active) .hx-expanded-body { display: none; }
}

/* Parts catalogue on phones: two columns, shorter imagery. */
@media (max-width: 640px) {
  body.site-page .comp-components-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px !important; }
  body.site-page .comp-category-card .comp-cat-img { height: 120px !important; }
  body.site-page .comp-category-card .comp-cat-body { padding: 12px !important; }
  body.site-page .comp-category-card .comp-cat-desc { font-size: 12px !important; }
}

/* ══════════════════ HOMEPAGE v2: first screen + full-width strips ══════════════════ */
/* The hero is exactly one screen tall. Type scales with the smaller of
   width and height, so the full message and the figures are visible on
   open at any window size, centred in the photograph. */
body.home-v3 .hx-hero {
  height: calc(100svh - var(--rl-header-h, 78px)) !important;
  min-height: 520px !important;
  max-height: 1100px;
}
body.home-v3 .hx-hero__grad {
  background:
    radial-gradient(70% 70% at 50% 42%, rgba(7, 26, 51, .55), rgba(7, 26, 51, .25) 70%),
    linear-gradient(180deg, rgba(7, 26, 51, .55) 0%, rgba(7, 26, 51, .35) 40%, rgba(7, 26, 51, .9) 100%) !important;
}
body.home-v3 .hx-hero__inner { padding: 0 !important; height: 100%; }
body.home-v3 .hx-hero__inner > .hx-shell { height: 100%; padding-block: 0 !important; }
body.home-v3 .hx-hero__grid {
  height: 100%;
  grid-template-rows: minmax(0, 1fr) auto !important;
  gap: 0 !important;
}
body.home-v3 .hx-hero__lead {
  align-self: center;
  justify-self: center;
  text-align: center;
  max-width: 980px;
  padding-block: clamp(12px, 3vh, 40px);
}
body.home-v3 .hx-hero__eyebrow {
  justify-content: center; margin-bottom: clamp(10px, 2.2vh, 24px) !important;
  font-size: clamp(.62rem, 1.4vh, .74rem) !important;
}
body.home-v3 .hx-hero__eyebrow::before { display: none; }
body.home-v3 .hx-hero__title {
  font-size: clamp(2rem, min(5.4vw, 8.4vh), 5.2rem) !important;
  line-height: 1.02 !important;
}
body.home-v3 .hx-hero__sub {
  margin: clamp(12px, 2.4vh, 26px) auto 0 !important;
  max-width: 62ch;
  font-size: clamp(.95rem, min(1.35vw, 2.3vh), 1.2rem) !important;
  line-height: 1.55;
}
body.home-v3 .hx-hero__cta { justify-content: center; margin-top: clamp(16px, 3.2vh, 34px) !important; }
body.home-v3 .hx-hero__cta .hx-btn { padding-block: clamp(10px, 1.7vh, 16px); }
body.home-v3 .hx-hero__aside { padding: clamp(12px, 2.4vh, 26px) 0 clamp(14px, 2.8vh, 30px) !important; }
body.home-v3 .hx-hero__stats { text-align: center; }
body.home-v3 .hx-stat { padding-left: 0; }
body.home-v3 .hx-stat::before { display: none; }
body.home-v3 .hx-stat + .hx-stat { border-left: 1px solid rgba(255, 255, 255, .14); }
body.home-v3 .hx-stat__n { font-size: clamp(1.5rem, min(2.8vw, 4.6vh), 2.7rem) !important; }
body.home-v3 .hx-stat__l { margin-inline: auto; font-size: clamp(.72rem, 1.5vh, .84rem) !important; }
@media (max-width: 760px) {
  body.home-v3 .hx-hero { height: auto !important; min-height: calc(100svh - var(--rl-header-h, 64px)) !important; }
  body.home-v3 .hx-hero__lead { padding-block: 40px 28px; }
  body.home-v3 .hx-hero__title { font-size: clamp(2.1rem, 10vw, 3rem) !important; }
  body.home-v3 .hx-stat:nth-child(3) { border-left: 0; }
}

/* Full-width marquee strips (clients, sectors). */
.rx-strip-head {
  display: flex; align-items: flex-end; justify-content: space-between; gap: 24px 48px; flex-wrap: wrap;
  margin-bottom: clamp(28px, 4vw, 48px);
}
.rx-strip-title {
  margin: .7rem 0 0; max-width: 30ch;
  font-family: var(--r-display); font-size: clamp(1.5rem, 2.6vw, 2.3rem); font-weight: 600;
  line-height: 1.15; letter-spacing: -.025em; color: var(--r-ink);
}
.rx-strip-link {
  display: inline-flex; align-items: center; gap: 10px; padding: 12px 20px; border-radius: 999px;
  border: 1px solid var(--r-line); color: var(--r-ink); font-size: .86rem; font-weight: 600; text-decoration: none;
  transition: background .25s ease, color .25s ease, border-color .25s ease;
}
.rx-strip-link:hover { background: var(--r-ink); border-color: var(--r-ink); color: #fff; }
.rx-marquee { position: relative; display: grid; gap: clamp(10px, 1.6vw, 20px); overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent); }
.rx-marquee__row { overflow: hidden; }
.rx-marquee__track { display: flex; width: max-content; animation: rx-scroll 70s linear infinite; }
.rx-marquee__row--rev .rx-marquee__track { animation-direction: reverse; animation-duration: 80s; }
.rx-marquee:hover .rx-marquee__track { animation-play-state: paused; }
.rx-marquee__set { display: flex; align-items: center; flex-shrink: 0; }
@keyframes rx-scroll { to { transform: translate3d(-50%, 0, 0); } }

body.home-v3 .rx-trust { padding: clamp(48px, 5.5vw, 80px) 0 clamp(44px, 5vw, 72px) !important; background: #fff !important; border-bottom: 1px solid var(--r-line); }
.rx-marquee--logos .rx-marquee__set { gap: clamp(40px, 5vw, 80px); padding-right: clamp(40px, 5vw, 80px); }
.rx-marquee--logos img {
  height: clamp(44px, 5vw, 64px); width: auto; max-width: 170px; object-fit: contain;
  filter: grayscale(1) contrast(1.05); opacity: .72; transition: filter .3s ease, opacity .3s ease;
}
.rx-marquee--logos img:hover { filter: none; opacity: 1; }

.rx-sectors {
  position: relative; overflow: hidden; isolation: isolate;
  padding: clamp(48px, 5.5vw, 80px) 0;
  background: radial-gradient(60% 90% at 90% 0%, rgba(60, 194, 230, .16), transparent 60%), var(--r-ink);
  color: #fff;
}
.rx-sectors .rx-strip-title { color: #fff; }
.rx-sectors .rx-strip-link { color: #fff; border-color: rgba(255, 255, 255, .3); }
.rx-sectors .rx-strip-link:hover { background: #fff; color: var(--r-ink); border-color: #fff; }
.rx-marquee--sectors .rx-marquee__set span {
  display: inline-flex; align-items: center; white-space: nowrap;
  font-family: var(--r-display); font-size: clamp(1.8rem, 4.4vw, 4rem); font-weight: 600; letter-spacing: -.03em;
  line-height: 1.15; color: rgba(255, 255, 255, .9); padding-right: clamp(22px, 3vw, 44px);
}
.rx-marquee--sectors .rx-marquee__set span::after {
  content: ""; width: .28em; height: .28em; margin-left: clamp(22px, 3vw, 44px); border-radius: 50%;
  background: var(--r-cyan); opacity: .8;
}
.rx-marquee--sectors .rx-marquee__row--rev span { color: transparent; -webkit-text-stroke: 1px rgba(159, 220, 242, .6); }

/* Capabilities: the accordion runs edge to edge. */
body.home-v3 .hx-approach { overflow: hidden; padding-top: clamp(48px, 5.5vw, 80px) !important; }
body.home-v3 .horizontal-cards-container {
  width: 100vw !important; max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important;
  height: clamp(460px, 64vh, 640px) !important;
  border-radius: 0 !important; border: 0 !important; box-shadow: none !important;
}
body.home-v3 .hx-expand-card { padding-inline: clamp(12px, 1.4vw, 24px) !important; }
body.home-v3 .hx-expand-card.active { padding: clamp(28px, 3vw, 48px) clamp(24px, 3.4vw, 64px) !important; }
body.home-v3 .hx-expand-title { font-size: clamp(1.4rem, 2.2vw, 2.1rem) !important; letter-spacing: -.02em; }
body.home-v3 .hx-expand-desc { font-size: clamp(.9rem, 1.05vw, 1.02rem) !important; max-width: 560px; }

@media (prefers-reduced-motion: reduce) {
  .rx-marquee__track { animation: none; }
  .rx-marquee__row { overflow-x: auto; }
}
@media (max-width: 900px) {
  body.home-v3 .horizontal-cards-container { height: auto !important; }
}

/* ══════════════════ SOLUTION KIT (sx-*): shared across every solution page ══════════════════ */
.sx-section { padding: var(--r-section) 0; background: #fff; color: var(--r-text); }
.sx-section--tint { background: var(--r-mist); }
.sx-eyebrow { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 14px; font: 650 11px/1.5 var(--r-body); letter-spacing: .16em; text-transform: uppercase; color: var(--r-blue); }
.sx-eyebrow::before { content: ""; width: 22px; height: 2px; border-radius: 2px; background: linear-gradient(90deg, var(--r-blue), var(--r-cyan)); }
.sx-head { max-width: 780px; margin-bottom: clamp(28px, 4vw, 52px); }
.sx-head h2, .sx-context h2 { margin: 0; font-family: var(--r-display); font-size: clamp(1.8rem, 3.4vw, 3rem); font-weight: 600; line-height: 1.08; letter-spacing: -.03em; color: var(--r-ink); }
.sx-head p { margin: 16px 0 0; font-size: clamp(1rem, 1.2vw, 1.12rem); line-height: 1.7; color: var(--r-muted); }

/* Market context: full-bleed navy band with drifting photograph */
.sx-context { position: relative; overflow: hidden; isolation: isolate; padding: calc(var(--r-section) * 1.05) 0; background: var(--r-deep); color: #fff; }
.sx-context__media { position: absolute; inset: 0; z-index: -2; }
.sx-context__media img { width: 100%; height: 100%; object-fit: cover; opacity: .28; filter: saturate(.8); }
.sx-context::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(100deg, rgba(7, 26, 51, .96) 0%, rgba(7, 26, 51, .86) 50%, rgba(7, 26, 51, .7) 100%); }
.sx-context .sx-eyebrow { color: var(--r-cyan); }
.sx-context__head { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(24px, 5vw, 80px); align-items: end; }
.sx-context h2 { color: #fff; }
.sx-context .sx-lede { margin: 0; font-size: clamp(1rem, 1.25vw, 1.14rem); line-height: 1.75; color: var(--r-dim); }
.sx-figures { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(18px, 3vw, 44px); margin: clamp(36px, 5vw, 64px) 0 0; }
.sx-figures > div { padding-top: 20px; border-top: 1px solid rgba(255, 255, 255, .2); position: relative; }
.sx-figures > div::before { content: ""; position: absolute; top: -1px; left: 0; width: 44px; height: 2px; background: var(--r-cyan); }
.sx-figures dt { font-family: var(--r-display); font-size: clamp(2rem, 3.6vw, 3.4rem); font-weight: 600; line-height: 1; letter-spacing: -.035em; color: #fff; }
.sx-figures dt span { margin-left: 4px; font-size: .42em; font-weight: 600; letter-spacing: 0; color: var(--r-cyan); }
.sx-figures dd { margin: 12px 0 0; font-size: .92rem; line-height: 1.5; color: rgba(214, 228, 240, .78); max-width: 28ch; }
.sx-sources { margin: clamp(28px, 3.5vw, 44px) 0 0; font-size: .78rem; line-height: 1.6; color: rgba(214, 228, 240, .55); }
.sx-sources a { color: rgba(214, 228, 240, .78); text-decoration: underline; text-decoration-color: rgba(159, 220, 242, .4); }
.sx-sources a:hover { color: #fff; }

/* Challenge and response rows */
.sx-rows { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--r-line); }
.sx-rows li {
  display: grid; grid-template-columns: 56px minmax(0, 1fr) 40px minmax(0, 1fr); gap: clamp(12px, 2vw, 28px); align-items: start;
  padding: clamp(20px, 2.4vw, 30px) clamp(8px, 1vw, 16px); border-bottom: 1px solid var(--r-line);
  transition: background .35s ease;
}
.sx-rows li:hover { background: linear-gradient(90deg, rgba(60, 194, 230, .07), transparent 70%); }
.sx-rows__n { font-family: var(--r-display); font-size: 1.05rem; font-weight: 600; color: var(--r-blue); opacity: .7; padding-top: 22px; }
.sx-tag { display: block; margin-bottom: 8px; font-size: 10.5px; font-weight: 650; letter-spacing: .14em; text-transform: uppercase; color: #8193a8; }
.sx-tag--r { color: var(--r-blue); }
.sx-rows p { margin: 0; font-size: clamp(.98rem, 1.15vw, 1.08rem); line-height: 1.6; color: var(--r-ink); }
.sx-rows__r p { color: var(--r-text); }
.sx-rows__arrow { padding-top: 22px; font-size: 1.3rem; color: var(--r-cyan); transition: transform .35s var(--r-ease); }
.sx-rows li:hover .sx-rows__arrow { transform: translateX(6px); }

/* Delivery steps */
.sx-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(var(--n, 5), minmax(0, 1fr)); gap: clamp(16px, 2vw, 28px); position: relative; }
.sx-steps::before { content: ""; position: absolute; top: 23px; left: 24px; right: 24px; height: 2px; background: linear-gradient(90deg, var(--r-blue), var(--r-cyan)); opacity: .35; }
.sx-steps li { position: relative; }
.sx-steps__n {
  position: relative; display: grid; place-items: center; width: 48px; height: 48px; margin-bottom: 20px; border-radius: 50%;
  background: #fff; border: 1px solid rgba(11, 111, 164, .3); font-family: var(--r-display); font-weight: 600; color: var(--r-blue);
  box-shadow: 0 0 0 6px var(--r-mist); transition: background .3s ease, color .3s ease;
}
.sx-steps li:hover .sx-steps__n { background: var(--r-ink); color: #fff; }
.sx-steps h3 { margin: 0 0 8px; font-family: var(--r-display); font-size: 1.08rem; font-weight: 600; letter-spacing: -.01em; color: var(--r-ink); }
.sx-steps p { margin: 0; font-size: .92rem; line-height: 1.65; color: var(--r-muted); }

/* Standards and regulations */
.sx-split { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(28px, 6vw, 96px); align-items: start; }
.sx-split .sx-head { position: sticky; top: calc(var(--rl-header-h, 80px) + 80px); margin-bottom: 0; }
.sx-standards { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--r-line); }
.sx-standards li { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 20px; padding: 20px 0; border-bottom: 1px solid var(--r-line); }
.sx-standards strong { font-family: var(--r-display); font-size: 1.02rem; font-weight: 600; color: var(--r-ink); }
.sx-standards span { font-size: .93rem; line-height: 1.65; color: var(--r-muted); }

/* Sectors served: full-width band of large links */
.sx-sectors { padding: clamp(48px, 5.5vw, 80px) 0; background: radial-gradient(60% 100% at 100% 0%, rgba(60, 194, 230, .16), transparent 60%), var(--r-ink); color: #fff; }
.sx-sectors .sx-eyebrow { color: var(--r-cyan); }
.sx-sectors h2 { margin: 0 0 clamp(24px, 3vw, 40px); font-family: var(--r-display); font-size: clamp(1.5rem, 2.6vw, 2.3rem); font-weight: 600; letter-spacing: -.025em; color: #fff; }
.sx-sectors__list { display: flex; flex-wrap: wrap; gap: 6px clamp(18px, 2.4vw, 36px); margin: 0; padding: 0; list-style: none; }
.sx-sectors__list a, .sx-sectors__list span {
  display: inline-flex; align-items: center; gap: 12px; font-family: var(--r-display); font-size: clamp(1.25rem, 2.3vw, 2.1rem); font-weight: 600;
  letter-spacing: -.02em; color: rgba(255, 255, 255, .88); text-decoration: none; padding: 4px 0; border-bottom: 1px solid transparent; transition: color .25s ease, border-color .25s ease;
}
.sx-sectors__list a::after { content: "↗"; font-size: .6em; color: var(--r-cyan); transition: transform .25s ease; }
.sx-sectors__list a:hover { color: #fff; border-bottom-color: var(--r-cyan); }
.sx-sectors__list a:hover::after { transform: translate(3px, -3px); }
.sx-sectors__list span { color: rgba(214, 228, 240, .6); }

/* Why Rispri */
.sx-why__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(20px, 3vw, 44px); }
.sx-why__item { padding-top: 22px; border-top: 1px solid var(--r-line); }
.sx-why__icon { display: grid; place-items: center; width: 44px; height: 44px; margin-bottom: 18px; border-radius: 12px; background: linear-gradient(135deg, rgba(11, 111, 164, .12), rgba(60, 194, 230, .16)); color: var(--r-blue); }
.sx-why__icon svg { width: 22px; height: 22px; }
.sx-why__item h3 { margin: 0 0 8px; font-family: var(--r-display); font-size: 1.08rem; font-weight: 600; color: var(--r-ink); }
.sx-why__item p { margin: 0; font-size: .93rem; line-height: 1.65; color: var(--r-muted); }

/* Service panels for the new solution pages */
.sx-services { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--r-line); border: 1px solid var(--r-line); border-radius: var(--r-radius); overflow: hidden; }
.sx-services article { background: #fff; padding: clamp(24px, 2.6vw, 36px); display: flex; flex-direction: column; gap: 10px; transition: background .3s ease; }
.sx-services article:hover { background: #f7fbfe; }
.sx-services .sx-tag { margin: 0; color: var(--r-blue); }
.sx-services h3 { margin: 0; font-family: var(--r-display); font-size: 1.2rem; font-weight: 600; letter-spacing: -.015em; color: var(--r-ink); }
.sx-services p { margin: 0; font-size: .94rem; line-height: 1.65; color: var(--r-muted); }
.sx-services ul { margin: 6px 0 0; padding: 0; list-style: none; display: grid; gap: 6px; }
.sx-services li { position: relative; padding-left: 16px; font-size: .88rem; line-height: 1.5; color: var(--r-text); }
.sx-services li::before { content: ""; position: absolute; left: 0; top: .55em; width: 6px; height: 6px; border-radius: 50%; background: var(--r-cyan); }

/* Simple FAQ (native disclosure) */
.sx-faq { max-width: 900px; border-top: 1px solid var(--r-line); }
.sx-faq details { border-bottom: 1px solid var(--r-line); }
.sx-faq summary { display: flex; justify-content: space-between; gap: 20px; padding: 20px 4px; cursor: pointer; list-style: none; font-family: var(--r-display); font-size: 1.06rem; font-weight: 600; color: var(--r-ink); }
.sx-faq summary::-webkit-details-marker { display: none; }
.sx-faq summary::after { content: "+"; color: var(--r-blue); font-size: 1.4rem; line-height: 1; }
.sx-faq details[open] summary::after { content: "−"; }
.sx-faq details p { margin: 0 4px 22px; font-size: .96rem; line-height: 1.75; color: var(--r-muted); }

@media (max-width: 1000px) {
  .sx-context__head, .sx-split { grid-template-columns: 1fr; }
  .sx-split .sx-head { position: static; }
  .sx-figures, .sx-why__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sx-services { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sx-steps { grid-template-columns: 1fr; gap: 0; }
  .sx-steps::before { top: 24px; bottom: 24px; left: 23px; right: auto; width: 2px; height: auto; background: linear-gradient(180deg, var(--r-blue), var(--r-cyan)); }
  .sx-steps li { display: grid; grid-template-columns: 48px 1fr; column-gap: 18px; padding-bottom: 24px; }
  .sx-steps__n { grid-row: span 2; margin: 0; }
}
@media (max-width: 640px) {
  .sx-rows li { grid-template-columns: 1fr; gap: 10px; }
  .sx-rows__n, .sx-rows__arrow { padding-top: 0; }
  .sx-rows__arrow { transform: rotate(90deg); width: max-content; }
  .sx-standards li { grid-template-columns: 1fr; gap: 6px; }
  .sx-figures, .sx-why__grid, .sx-services { grid-template-columns: 1fr; }
}

/* Older solution section heads follow the kit: left aligned, same type scale. */
body.solution-page :is(.ez-sec-head, .pc-sec-head, .bg-sec-head, .sw-sec-head, .ch-sec-head, .ep-sec-head, .section-header) {
  display: block !important; text-align: left !important; max-width: 820px; margin: 0 0 clamp(28px, 4vw, 52px) !important;
}
body.solution-page :is(.ez-sec-head, .pc-sec-head, .bg-sec-head, .sw-sec-head, .ch-sec-head, .ep-sec-head, .section-header) > div { text-align: left !important; }
body.solution-page :is(.ez-sec-head, .pc-sec-head, .bg-sec-head, .sw-sec-head, .ch-sec-head, .ep-sec-head) :is(h2, .sol-heading),
body.solution-page .section-header h2 {
  margin-inline: 0 !important; font-size: clamp(1.8rem, 3.4vw, 3rem) !important; font-weight: 600 !important; line-height: 1.08 !important;
  letter-spacing: -.03em !important; font-family: var(--r-display) !important; text-align: left !important;
}
body.solution-page :is(.ez-sec-head, .pc-sec-head, .bg-sec-head, .sw-sec-head, .ch-sec-head, .ep-sec-head) p,
body.solution-page .section-header p { margin-inline: 0 !important; text-align: left !important; max-width: 62ch; }
body.solution-page :is([class*="-sec-eyebrow"], .section-header .overline) {
  display: inline-flex !important; align-items: center; gap: 10px; justify-content: flex-start !important;
  font: 650 11px/1.5 var(--r-body) !important; letter-spacing: .16em !important; text-transform: uppercase;
}
body.solution-page [class*="-sec-eyebrow"]::before, body.solution-page [class*="-sec-eyebrow"]::after { display: none !important; }
body.solution-page :is(.ez-sec-num, .pc-sec-num, .bg-sec-num, .sw-sec-num, .ch-sec-num, .ep-sec-num) { display: inline-block !important; margin: 0 12px 0 0 !important; vertical-align: middle; }
body.solution-page .section-header .divider { margin-left: 0 !important; }
body.solution-page :is(.ez-split, .bg-split, .ep-split, .sw-split, .pc-split) :is(h2, .sol-heading, [class*="-sec-title"], [class*="__title"]) {
  text-align: left !important; margin-inline: 0 !important; font-size: clamp(1.6rem, 2.8vw, 2.5rem) !important; font-weight: 600 !important; letter-spacing: -.03em !important; line-height: 1.1 !important;
}
body.solution-page :is(.ez-split, .bg-split, .ep-split, .sw-split, .pc-split) > div { text-align: left !important; }
body.solution-page :is(.ez-split, .bg-split, .ep-split, .sw-split) [class*="__visual"] img { border-radius: var(--r-radius); }
