
/* ============================================================
   SELF-HOSTED FONTS — Latin variable subsets (no third-party request).
   font-display:swap + metric-matched fallbacks to minimise CLS.
   ============================================================ */
@font-face{ font-family:"Inter"; font-style:normal; font-weight:300 800; font-display:swap;
  src:url("/fonts/inter-latin.woff2") format("woff2"); }
@font-face{ font-family:"Fraunces"; font-style:normal; font-weight:400 600; font-display:swap;
  src:url("/fonts/fraunces-latin.woff2") format("woff2"); }
@font-face{ font-family:"Fraunces"; font-style:italic; font-weight:400 500; font-display:swap;
  src:url("/fonts/fraunces-italic-latin.woff2") format("woff2"); }
/* Fallbacks tuned to the web-font metrics so text does not reflow on load. */
@font-face{ font-family:"Inter-fallback"; src:local("Arial");
  ascent-override:90%; descent-override:22.43%; line-gap-override:0%; size-adjust:107.4%; }
@font-face{ font-family:"Fraunces-fallback"; src:local("Georgia");
  ascent-override:95%; descent-override:26%; line-gap-override:0%; size-adjust:104%; }

/* ============================================================
   Design tokens: the single source of truth for this file.

   These were previously spread across six :root blocks and three
   dark blocks, several of which redefined the same token with a
   different value. Only the last definition of each was ever live,
   so the earlier ones were dead weight and a trap: editing one did
   nothing. Every value below is the value the browser was already
   resolving, so this is a collapse, not a retune.

   server.py's page sheet uses the same names and the same values.
   ============================================================ */
:root{
  /* stacking order */
  --z-base:0;            /* in-flow content */
  --z-dropdown:1000;     /* mega-menu panels, hang below the header */
  --z-sticky:1100;       /* sticky site header, above the dropdowns */
  --z-fab:1150;          /* floating buttons, scroll progress, back-to-top */
  --z-overlay:1200;      /* mobile drawer, cookie banner, non-modal scrim */
  --z-modal:1300;        /* modal dialogs */
  --z-toast:1400;        /* toasts and notifications */

  /* motion */
  --ease:cubic-bezier(.2, .7, .2, 1);
  --dur-micro:.15s;      /* presses, colour shifts */
  --dur-ui:.3s;          /* hovers, fades, dropdowns */
  --dur-reveal:.6s;      /* scroll reveals, cascades */
  --dur-hero:1s;         /* entrances, curtain, headline */

  --max:1280px;

  /* brand. The three-step red is derived from the ink measured out
     of logo.png: #A0171C IS the logo's red. */
  --red:#A0171C;
  --red-l:#BC1B22;
  --red-h:#7F1216;
  --blue:#0063BF;
  --blue-l:#edf3f7;

  /* grounds */
  --white:#ffffff;
  --paper:#FBFAF7;
  --off:#F6F4F0;         /* warmed from the cool #F7F8FA */
  --shade:#1d1d1f;
  --shade-2:#131315;
  --shade-3:#2c2c2e;

  /* text */
  --ink:#1d1d1f;
  --body:#424245;
  --muted:#636368;       /* Apple grey, kept above 4.5:1 on #F6F4F0 */
  --text-strong:#1d1d1f; /* strong heading/label text; lightens in dark */

  /* lines */
  --border:#e6e6eb;
  --border2:#d9d9de;

  /* ported component tokens */
  --premium-gold:#2E86E8;
  --premium-gold-soft:#a5d1ff;
  --premium-teal:#5e9d97;
  --premium-shadow:0 22px 70px rgba(0, 0, 0, .14);
  --premium-shadow-soft:0 12px 34px rgba(0, 0, 0, .09);
  --v2-hairline:rgba(17, 24, 39, .14);
  --v2-hairline-strong:rgba(17, 24, 39, .3);
  --v2-accent:#2E86E8;
  --v2-accent-soft:#a5d1ff;
  --v2-accent-text:#0063BF;
  --v2-glow:0 0 0 1px rgba(41, 151, 255, .4), 0 18px 60px rgba(0, 0, 0, .12);
  --v2-canvas:#ffffff;
  --v2-canvas-2:#F6F4F0;
}

/* Dark. Only the tokens that actually change are restated. The
   brand colours are lifted so they still pass as TEXT on the warm
   black: #e8484f measured 4.04:1 on section labels, #ef5a61 clears. */
:root[data-theme="dark"]{
  color-scheme: dark;
  --red:#ef5a61;
  --red-h:#f4777d;
  --blue:#2E86E8;
  --blue-l:#1a1f29;
  --white:#121212;       /* base page surface */
  --paper:#1a1a1c;       /* default body ground */
  --off:#141415;         /* alternating section ground */
  --ink:#ececec;
  --body:#c7c7cc;
  --muted:#98989d;       /* muted text, AA on dark surfaces */
  --text-strong:#ededed;
  --border:#2f2f32;      /* hairline separation */
  --border2:#3a3a3a;     /* stronger separation */
  --premium-shadow:0 22px 70px rgba(0, 0, 0, .5);
  --premium-shadow-soft:0 12px 34px rgba(0, 0, 0, .34);
  --v2-hairline:rgba(235, 240, 248, .12);
  --v2-hairline-strong:rgba(235, 240, 248, .26);
  --v2-accent-text:#6bb7ff;
  --v2-glow:0 0 0 1px rgba(41, 151, 255, .45), 0 24px 80px rgba(0, 0, 0, .5);
  --v2-canvas:#0a0a0a;
  --v2-canvas-2:#101010;
}



*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: "Inter", "Inter-fallback", sans-serif; background: var(--white); color: var(--ink); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
a { text-decoration: none; color: inherit; }
ul { list-style: none; }
img { display: block; }

/* 
   TOPBAR
 */
.topbar {
  background: var(--shade);
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: 0 clamp(1.5rem, 5vw, 4rem);
  gap: 0;
}
.topbar a {
  font-size: 0.72rem;
  font-weight: 400;
  color: rgba(255,255,255,0.5);
  padding: 0 1rem;
  border-right: 1px solid rgba(255,255,255,0.12);
  transition: color .2s;
  white-space: nowrap;
}
.topbar a:first-child { border-left: 1px solid rgba(255,255,255,0.12); }

/* Small logo on the dark topbar (left) */
.topbar { justify-content: space-between !important; }

/* Small phones: keep only the logo + language switcher in the top bar so its
   links never overflow and clip. Contact and callback remain reachable from the
   mobile menu and the page body. */
@media (max-width: 600px) {
  .topbar > a[data-i18n="topbar_irdai"],
  .topbar > a[data-i18n="topbar_contact"],
  .topbar > a[data-open-modal="callback"] { display: none; }
}
.topbar-logo {
  display: inline-flex; align-items: center;
  padding: 4px 0;
  margin-right: auto; /* push the rest of the topbar links to the right */
  transition: opacity .15s ease;
}
.topbar-logo:hover { opacity: .8; }
.topbar-logo-img {
  height: 22px; width: auto;
  display: block;
  /* If the logo PNG has a light background, this filter keeps it legible
     on the navy topbar. Comment out if the logo PNG has transparent bg. */
  filter: brightness(1.08);
}
@media (max-width: 640px) {
  .topbar-logo-img { height: 18px; }
}
.topbar a:hover { color: rgba(255,255,255,0.9); }

/* 
   NAVBAR
 */
.navbar {
  position: sticky;
  top: 0;
  z-index: var(--z-sticky);
  background: var(--white);
  border-bottom: 1px solid var(--border);
  height: 70px;
  display: flex;
  align-items: center;
  padding: 0 clamp(1.5rem,5vw,4rem);
  transition: box-shadow .3s;
}
.navbar.scrolled { box-shadow: 0 1px 12px rgba(0,0,0,.08); }
.navbar-inner {
  width: 100%;
  max-width: var(--max);
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}
.nb-logo {
  flex-shrink: 0; line-height: 0;
  display: inline-flex; align-items: center; gap: .7rem;
  transition: opacity .2s ease;
}
.nb-logo:hover { opacity: .85; }
.nb-logo img { height: 44px; width: auto; display: block; }

/* ── RFS LETTER MARK (inline SVG) ── */
.rfs-logo-img {
  display: block;
  height: 40px; width: auto; max-width: 180px;
  user-select: none;
  object-fit: contain;
}
.footer .footer-logo-img {
  height: 56px;
  margin-bottom: 1.1rem;
  /* Footer is dark navy; if your logo PNG has a transparent background
     this will look great. If your PNG has a white background, swap to:
     background: var(--white); padding: .35rem .55rem; border-radius: 3px; */
}

/* Navbar wordmark beside the letter mark */
.nb-logo-word {
  display: flex; flex-direction: column; line-height: 1.05;
}
.nb-logo-word strong {
  font-size: .82rem; font-weight: 700; letter-spacing: -.01em; color: var(--ink);
}
.nb-logo-word span {
  font-size: .58rem; font-weight: 500; letter-spacing: .14em;
  text-transform: uppercase; color: var(--muted); margin-top: 1px;
}
@media (max-width: 720px) { .nb-logo-word { display: none; } }
.nb-links { display: flex; align-items: stretch; gap: 0; list-style: none; }
.nb-links li { display: flex; align-items: stretch; }
.nb-links li a {
  display: flex;
  align-items: center;
  gap: .3rem;
  padding: 0 1.15rem;
  height: 70px;
  font-size: .82rem;
  font-weight: 400;
  color: var(--body);
  border-bottom: 2px solid transparent;
  transition: color .15s, border-color .15s;
  white-space: nowrap;
  letter-spacing: .005em;
}
.nb-links li a:hover { color: var(--ink); border-bottom-color: var(--red); }
.nb-right { display: flex; align-items: center; gap: .75rem; flex-shrink: 0; }

/* ===== Mobile navigation (hamburger + drawer); collapses at/below 1280px ===== */
.nb-burger { display: none; }
.nb-mobile { display: none; }
@media (max-width: 1259px) {
  .navbar .nb-links,
  .navbar .nb-right { display: none !important; }
  .nb-burger {
    display: inline-flex; flex-direction: column; justify-content: center; gap: 5px;
    width: 46px; height: 46px; margin-left: auto; padding: 11px;
    background: none; border: 0; cursor: pointer;
  }
  .nb-burger span { display: block; width: 100%; height: 2px; background: var(--ink); border-radius: 2px; transition: transform .25s ease, opacity .2s ease; }
  body.nb-open .nb-burger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  body.nb-open .nb-burger span:nth-child(2) { opacity: 0; }
  body.nb-open .nb-burger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .nb-mobile {
    display: block; position: fixed; top: 70px; left: 0; right: 0; bottom: 0;
    background: var(--white); z-index: var(--z-overlay); overflow-y: auto;
    opacity: 0; visibility: hidden; transform: translateY(-6px);
    transition: opacity .2s ease, transform .2s ease, visibility 0s .2s;
  }
  body.nb-open .nb-mobile { opacity: 1; visibility: visible; transform: none; transition: opacity .2s ease, transform .2s ease; }
  body.nb-open { overflow: hidden; }
  body.nb-open .wa-widget,
  body.nb-open .sticky-cta { display: none !important; }
}
.nb-mobile-inner { display: flex; flex-direction: column; padding: 3.2rem clamp(1.5rem,6vw,2.5rem) 3rem; max-width: 620px; margin: 0 auto; }
.nbm-link { display: flex; align-items: center; justify-content: space-between; padding: 1.05rem .25rem; font-size: 1.1rem; font-weight: 600; color: var(--ink); letter-spacing: -.01em; border-bottom: 1px solid var(--border); }
.nbm-link:hover { color: var(--red); }
.nbm-link .nbm-arrow { color: var(--muted); font-size: 1rem; font-weight: 400; }
.nbm-actions { display: flex; flex-direction: column; gap: .8rem; margin-top: 1.8rem; }
.nbm-contact, .nbm-quote { text-align: center; padding: 1rem 1.5rem; border-radius: 2px; font-size: .92rem; font-weight: 600; letter-spacing: .01em; }
.nbm-contact { border: 1.5px solid var(--border2); color: var(--ink); }
.nbm-contact:hover { border-color: var(--ink); }
.nbm-quote { background: var(--red); color: #fff; }
.nbm-quote:hover { background: var(--red-h); }
.nb-contact {
  font-size: .81rem;
  font-weight: 400;
  color: var(--body);
  transition: color .15s;
  white-space: nowrap;
  letter-spacing: .005em;
}
.nb-contact:hover { color: var(--ink); }
.nb-quote {
  background: var(--shade);
  color: #fff;
  font-size: .79rem;
  font-weight: 500;
  padding: .55rem 1.3rem;
  border-radius: 2px;
  transition: background .15s;
  white-space: nowrap;
  letter-spacing: .01em;
}
.nb-quote:hover { background: #1c1c1e; }

/* 
   MEGA DROPDOWN
 */
.has-mega { position: static; display: flex; align-items: stretch; }
.mega-toggle {
  display: flex !important;
  align-items: center;
  gap: .28rem;
  cursor: pointer;
}
.mega-toggle .chevron {
  transition: transform .2s ease;
  flex-shrink: 0;
  color: #9ca3af;
  margin-top: 1px;
}
.has-mega.open .mega-toggle .chevron { transform: rotate(180deg); }
.has-mega.open > a {
  color: var(--ink) !important;
  border-bottom-color: var(--red) !important;
}

/* Panel, full width, clean Marsh style */
.mega-panel {
  position: fixed;
  top: 70px;
  left: 0;
  right: 0;
  background: var(--white);
  border-top: 1px solid var(--border);
  box-shadow: 0 8px 32px rgba(0,0,0,.07);
  z-index: var(--z-dropdown);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity .18s ease, transform .18s ease, visibility 0s .18s;
  pointer-events: none;
}
.has-mega.open .mega-panel {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  transition: opacity .18s ease, transform .18s ease, visibility 0s 0s;
  pointer-events: all;
}
.mega-inner {
  max-width: var(--max);
  margin: 0 auto;
  padding: 0 clamp(1.5rem,5vw,4rem);
  display: grid;
  grid-template-columns: 1.6fr 0.85fr 1.1fr;
  gap: 0;
}
@media (max-width: 1100px) {
  .mega-inner { grid-template-columns: 1.6fr 1fr; }
  .mega-preview-col { display: none; }
}
@media (max-width: 820px) {
  .mega-inner { grid-template-columns: 1fr; }
}

/* Left 2/3: unified Business Insurance entity */
.mega-left {
  display: flex;
  flex-direction: column;
  padding: 2.2rem 3rem 2.2rem 0;
  border-right: 1px solid var(--border);
}

/* Master header */
.mega-biz-head {
  padding-bottom: .9rem;
  margin-bottom: 1.4rem;
  border-bottom: 1px solid var(--border);
}
.mega-biz-icon { display: none; }
.mega-biz-title {
  font-size: .78rem;
  font-weight: 600;
  color: var(--ink);
  letter-spacing: .01em;
  margin-bottom: .2rem;
  text-transform: uppercase;
  letter-spacing: .07em;
}
.mega-biz-sub {
  font-size: .73rem;
  color: #9ca3af;
  line-height: 1.5;
}

/* Two sub-columns */
.mega-biz-cols {
  display: grid;
  grid-template-columns: 1fr 1px 1fr;
  flex: 1;
  gap: 0;
}
.mega-sub-divider { background: var(--border); margin: 0 2rem; }
.mega-sub-col { padding: 0; text-align: left; }
.mega-sub-head {
  display: flex;
  align-items: center;
  gap: .45rem;
  font-size: .67rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .09em;
  color: #9ca3af;
  margin-bottom: .8rem;
  padding-bottom: .7rem;
  border-bottom: 1px solid var(--border);
}
.msh-dot { display: none; }

/* Right panel aliases */
.mega-col-head {
  padding-bottom: .9rem;
  margin-bottom: 1.1rem;
  border-bottom: 1px solid #f0f0f0;
}
.mega-col-icon { display: none; }
.mega-col-title {
  font-size: .67rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .09em;
  color: #9ca3af;
  margin-bottom: .15rem;
}
.mega-col-sub { font-size: .72rem; color: #9ca3af; line-height: 1.45; }

/* Item links, Marsh flat list style */
.mega-list { display: flex; flex-direction: column; gap: 0; list-style: none; }
.mega-list li { display: block; text-align: left; }
.mega-item {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: .12rem;
  padding: .62rem .5rem;
  border-radius: 2px;
  transition: background .12s;
  text-align: left;
  align-items: flex-start;
}
/* Override .nb-links li a specificity */
.mega-list .mega-item { align-items: flex-start !important; }
.mega-item:hover { background: #f9fafb; }
.mega-item:hover .mi-name { color: var(--text-strong); }
.mi-name {
  font-size: .84rem;
  font-weight: 400;
  color: var(--ink);
  transition: color .12s;
  line-height: 1.3;
}
.mi-desc {
  font-size: .72rem;
  color: #9ca3af;
  line-height: 1.45;
}

/* Right 1/3, Consumer Insurance */
.mega-right {
  background: #f9fafb;
  padding: 2.2rem 2rem;
  display: flex;
  flex-direction: column;
}
.mega-right-head {
  padding-bottom: .9rem;
  margin-bottom: 1.1rem;
  border-bottom: 1px solid #ececec;
}
.mega-right-list { display: flex; flex-direction: column; gap: 0; flex: 1; }
.mega-right-item {
  display: flex;
  align-items: flex-start;
  gap: 0;
  padding: .55rem .5rem;
  text-align: left;
  border-radius: 2px;
  transition: background .12s;
}
.mega-right-item:hover { background: #f0f1f2; }
.mega-right-item::before { display: none; }
.mega-right-item:hover .mri-name { color: var(--text-strong); }
.mri-icon { display: none; }
.mri-name {
  font-size: .84rem;
  font-weight: 400;
  color: var(--ink);
  line-height: 1.3;
  transition: color .12s;
  display: block;
}
.mri-desc {
  font-size: .72rem;
  color: #9ca3af;
  line-height: 1.45;
  margin-top: .12rem;
  display: block;
}

/* Right panel CTA, text link, not filled button */
.mega-right-cta {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  margin-top: 1.6rem;
  align-self: flex-start;
  font-size: .8rem;
  font-weight: 500;
  color: var(--text-strong);
  padding-bottom: 1px;
  border-bottom: 1px solid var(--shade);
  transition: color .15s, border-color .15s;
  background: none;
  border-radius: 0;
  padding-left: 0;
  padding-right: 0;
}
.mega-right-cta:hover { color: var(--red); border-color: var(--red); }

/* Backdrop, very subtle */
.mega-backdrop {
  position: fixed;
  inset: 0;
  top: 106px;
  background: rgba(0,0,0,.12);
  z-index: calc(var(--z-dropdown) - 1);
  opacity: 0;
  visibility: hidden;
  transition: opacity .18s, visibility 0s .18s;
}
.mega-backdrop.active {
  opacity: 1;
  visibility: visible;
  transition: opacity .18s, visibility 0s 0s;
}

/* 
   HERO
 */
.hero {
  background: var(--shade);
  min-height: 88vh;
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: hidden;
}
/* Geometric SVG pattern: right side atmosphere */
.hero-bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}
.hero-bg svg {
  position: absolute;
  right: -80px;
  top: -60px;
  width: 700px;
  height: 700px;
  opacity: .07;
}
/* Subtle horizontal lines at bottom */
.hero-lines {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 180px;
  background: linear-gradient(to bottom, transparent, rgba(200,32,42,.04));
  pointer-events: none;
}
.hero-body {
  flex: 1;
  display: flex;
  align-items: center;
  padding: clamp(4rem,9vw,6rem) clamp(1.5rem,5vw,4rem) clamp(2.5rem,6vw,4rem);
}
.hero-inner {
  max-width: var(--max);
  margin: 0 auto;
  width: 100%;
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 5rem;
  align-items: center;
  position: relative;
  z-index: 1;
}
/* Stack the hero on tablets and phones so the fixed 380px credentials panel
   never gets pushed off-screen. */
@media (max-width: 900px) {
  .hero-inner { grid-template-columns: 1fr; gap: 2.5rem; }
  .hero-panel { max-width: 460px; }
}
.hero-category {
  display: inline-flex;
  align-items: center;
  gap: .65rem;
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(255,255,255,.5);
  margin-bottom: 1.8rem;
}
.hero-category-dot {
  width: 18px; height: 1px;
  background: var(--red);
  flex-shrink: 0;
  border-radius: 0;
}
.hero h1 {
  font-size: clamp(2.6rem, 4.6vw, 4.4rem);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -.035em;
  color: #fff;
  margin-bottom: 1.7rem;
}
.hero h1 span { color: var(--red); }
.hero-purpose {
  font-family: "Inter", "Inter-fallback", sans-serif;
  font-size: 1.05rem;
  font-weight: 300;
  font-style: italic;
  line-height: 1.5;
  letter-spacing: -.005em;
  color: rgba(255,255,255,.78);
  max-width: 460px;
  margin-top: -.4rem;
  margin-bottom: 1.4rem;
  padding-left: 1rem;
  border-left: 2px solid var(--red);
}
.hero-desc {
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.8;
  color: rgba(255,255,255,.6);
  max-width: 520px;
  margin-bottom: 2.5rem;
}
.hero-triad {
  display: flex; align-items: center; gap: .8rem;
  margin-bottom: 1.8rem;
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(255,255,255,.5);
}
.hero-triad .triad-w { color: rgba(255,255,255,.85); }
.hero-triad .triad-sep { color: var(--red); font-weight: 700; }
.hero-actions { display: flex; gap: .85rem; flex-wrap: wrap; }
.btn-red {
  background: var(--red);
  color: #fff;
  font-size: .84rem;
  font-weight: 600;
  padding: .9rem 2rem;
  border-radius: 2px;
  display: inline-block;
  transition: background .2s;
  white-space: nowrap;
}
.btn-red:hover { background: var(--red-h); }
.btn-ghost-w {
  color: #fff;
  font-size: .84rem;
  font-weight: 600;
  padding: .9rem 2rem;
  border-radius: 2px;
  border: 1.5px solid rgba(255,255,255,.25);
  display: inline-block;
  transition: border-color .2s, background .2s;
  white-space: nowrap;
}
.btn-ghost-w:hover { border-color: rgba(255,255,255,.6); background: rgba(255,255,255,.05); }

/* Hero right: credentials panel */
.hero-panel {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 3px;
}
.hp-head {
  padding: 1.4rem 1.6rem;
  border-bottom: 1px solid rgba(255,255,255,.08);
  font-size: .68rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: rgba(255,255,255,.35);
}
.hp-stats {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
}
.hp-stat {
  padding: 1.5rem 1.6rem;
  border-bottom: 1px solid rgba(255,255,255,.06);
  transition: background .2s;
}
.hp-stat:last-child { border-bottom: none; }
.hp-stat:hover { background: rgba(255,255,255,.04); }
.hp-n {
  font-size: 2.1rem;
  font-weight: 800;
  letter-spacing: -.03em;
  color: #fff;
  line-height: 1;
  display: block;
  margin-bottom: .3rem;
}
.hp-n em { font-style: normal; color: var(--red); }
.hp-l {
  font-size: .7rem;
  color: rgba(255,255,255,.4);
  line-height: 1.4;
  font-weight: 400;
}
.hp-foot {
  padding: 1.2rem 1.6rem;
  border-top: 1px solid rgba(255,255,255,.08);
  display: flex;
  align-items: center;
  gap: .6rem;
}
.hp-badge {
  background: rgba(200,32,42,.2);
  border: 1px solid rgba(200,32,42,.35);
  color: rgba(255,255,255,.75);
  font-size: .68rem;
  font-weight: 700;
  padding: .22rem .65rem;
  border-radius: 2px;
  text-transform: uppercase;
  letter-spacing: .07em;
  flex-shrink: 0;
}
.hp-foot p { font-size: .72rem; color: rgba(255,255,255,.35); line-height: 1.4; }

/* Hero bottom strip */
.hero-strip {
  background: rgba(255,255,255,.02);
  border-top: 1px solid rgba(255,255,255,.06);
  padding: 1.9rem clamp(1.5rem,5vw,4rem);
}
.hero-strip-inner {
  max-width: var(--max);
  margin: 0 auto;
  display: flex;
  gap: 3.6rem;
  align-items: center;
  flex-wrap: wrap;
}
.hs-item {
  display: flex;
  align-items: center;
  gap: .55rem;
  font-size: .76rem;
  font-weight: 500;
  color: rgba(255,255,255,.4);
}
.hs-item::before {
  content: "";
  width: 5px; height: 5px;
  background: var(--red);
  border-radius: 50%;
  flex-shrink: 0;
}

/* 
   SHARED
 */
.sec { padding: clamp(3.5rem,7vw,5.5rem) clamp(1.5rem,5vw,4rem); }
.sec-inner { max-width: var(--max); margin: 0 auto; }
.sec-label {
  font-size: .72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--red);
  margin-bottom: .6rem;
  display: flex;
  align-items: center;
  gap: .55rem;
}
.sec-label::before { content: ""; width: 18px; height: 2px; background: var(--red); flex-shrink: 0; }
.sec-h2 {
  font-size: clamp(1.7rem, 2.8vw, 2.5rem);
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -.025em;
  color: var(--ink);
  margin-bottom: .9rem;
}
.sec-lead {
  font-size: .97rem;
  font-weight: 400;
  line-height: 1.8;
  color: var(--muted);
  max-width: 520px;
}
.sec-hdr {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 2rem;
  margin-bottom: 3rem;
  flex-wrap: wrap;
}
.link-more {
  font-size: .82rem;
  font-weight: 600;
  color: var(--text-strong);
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  transition: gap .2s, color .2s;
  white-space: nowrap;
}
.link-more:hover { gap: .65rem; color: var(--blue); }

/* 
   ABOUT
 */
#about { background: var(--white); }
.about-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5rem;
  align-items: start;
}
@media(max-width:820px){ .about-grid { grid-template-columns: 1fr; gap: 3rem; } }
.about-copy p {
  font-size: .96rem;
  line-height: 1.85;
  color: var(--body);
  margin-bottom: 1rem;
}
.about-copy p strong { color: var(--ink); font-weight: 600; }
.about-read {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  margin-top: 1.2rem;
  font-size: .84rem;
  font-weight: 600;
  color: var(--text-strong);
  padding-bottom: 1px;
  border-bottom: 1.5px solid var(--red);
  transition: color .2s;
}
.about-read:hover { color: var(--red); }

.about-right { display: flex; flex-direction: column; gap: 1px; }
.kpi-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: var(--border);
  border: 1px solid var(--border);
  margin-bottom: 1.5rem;
}
.kpi {
  background: var(--white);
  padding: 1.5rem 1.6rem;
  transition: background .2s;
}
.kpi:hover { background: var(--blue-l); }
.kpi .n {
  font-size: 1.7rem;
  font-weight: 800;
  color: var(--text-strong);
  letter-spacing: -.025em;
  line-height: 1;
  display: block;
  margin-bottom: .25rem;
}
.kpi .l {
  font-size: .7rem;
  font-weight: 500;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: .06em;
}
.about-pledge {
  background: var(--shade);
  padding: 2rem;
  border-radius: 2px;
}
.about-pledge h4 {
  font-size: 1.1rem;
  font-weight: 700;
  color: #fff;
  line-height: 1.35;
  margin-bottom: .9rem;
  letter-spacing: -.01em;
}
.about-pledge p {
  font-size: .86rem;
  color: rgba(255,255,255,.55);
  line-height: 1.75;
  margin-bottom: 1.2rem;
}
.pledge-check {
  display: flex;
  align-items: center;
  gap: .6rem;
  font-size: .76rem;
  font-weight: 600;
  color: rgba(255,255,255,.45);
  border-top: 1px solid rgba(255,255,255,.08);
  padding-top: 1rem;
}
.pledge-check::before {
  content: "";
  width: 20px; height: 20px;
  background: rgba(200,32,42,.25);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .65rem;
  color: #fff;
  flex-shrink: 0;
}

.about-quote {
  margin: 1.6rem 0 0;
  padding: .2rem 0 .2rem 1.1rem;
  border-left: 3px solid var(--red);
  font-family: "Fraunces", serif;
  font-size: 1.02rem;
  font-style: italic;
  line-height: 1.65;
  color: var(--text-strong);
  max-width: 46ch;
}
.about-triad {
  display: inline-flex; align-items: center; gap: .65rem;
  margin: 1.6rem 0 0;
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--text-strong);
}
.about-triad .triad-sep { color: var(--red); font-weight: 700; }
.footer-social {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem 1.4rem;
  margin-top: 1.1rem;
  max-width: 100%;
}
.footer-social a {
  font-size: .72rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(255,255,255,.45);
  text-decoration: none;
  transition: color .15s;
}
.footer-social a:hover { color: #fff; }
.footer-triad {
  display: inline-flex; align-items: center; gap: .55rem;
  margin: .9rem 0 0;
  font-size: .64rem;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(255,255,255,.55);
}
.footer-triad .triad-sep { color: var(--red); font-weight: 700; }
.about-pillars {
  margin-top: 1.8rem;
  border-top: 1px solid var(--border);
}
.pillar {
  display: flex;
  gap: 1rem;
  padding: 1.2rem 0;
  border-bottom: 1px solid var(--border);
  align-items: flex-start;
}
.pillar-num {
  width: 28px; height: 28px;
  background: var(--blue-l);
  border-radius: 2px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .7rem;
  font-weight: 700;
  color: var(--text-strong);
  margin-top: .1rem;
}
.pillar h5 {
  font-size: .9rem;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: .2rem;
  letter-spacing: -.005em;
}
.pillar p { font-size: .83rem; color: var(--muted); line-height: 1.6; }

/* 
   SERVICES
 */
#services { background: var(--off); }
.svc-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--border2);
  border: 1px solid var(--border2);
}
@media(max-width:900px){ .svc-grid { grid-template-columns: 1fr 1fr; } }
@media(max-width:560px){ .svc-grid { grid-template-columns: 1fr; } }
.svc-card {
  background: var(--white);
  padding: 2rem 1.8rem;
  display: flex;
  flex-direction: column;
  position: relative;
  transition: background .2s;
}
.svc-card:hover { background: var(--blue-l); }
.svc-card:hover .svc-arrow { opacity: 1; transform: translateX(0); }
.svc-card:hover .svc-num { color: var(--text-strong); }
.svc-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 1.2rem;
}
.svc-num {
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .1em;
  color: var(--muted);
  text-transform: uppercase;
  background: var(--off);
  padding: .22rem .55rem;
  border-radius: 2px;
  transition: color .2s;
}
.svc-arrow {
  font-size: .95rem;
  color: var(--text-strong);
  opacity: 0;
  transform: translateX(-6px);
  transition: opacity .2s, transform .2s;
}
.svc-card h4 {
  font-size: 1rem;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: .55rem;
  letter-spacing: -.01em;
  line-height: 1.3;
}
.svc-card p {
  font-size: .84rem;
  color: var(--body);
  line-height: 1.72;
  flex: 1;
  margin-bottom: 1.4rem;
}
.svc-chips { display: flex; flex-wrap: wrap; gap: .3rem; margin-bottom: 1.2rem; }
.svc-chip {
  font-size: .63rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--text-strong);
  background: var(--blue-l);
  border: 1px solid var(--border);
  padding: .15rem .5rem;
  border-radius: 2px;
}
.svc-link {
  font-size: .8rem;
  font-weight: 600;
  color: var(--text-strong);
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  margin-top: auto;
  transition: gap .2s, color .2s;
}
.svc-card:hover .svc-link { gap: .6rem; color: var(--blue); }

/* 
   WHY RFS: dark
 */
#why { background: var(--shade-2); padding: clamp(3.5rem,7vw,5.5rem) clamp(1.5rem,5vw,4rem); }
#why .sec-label { color: rgba(255,255,255,.4); }
#why .sec-label::before { background: var(--red); }
#why .sec-h2 { color: #fff; }
#why .sec-lead { color: rgba(255,255,255,.45); }
.why-layout {
  display: grid;
  grid-template-columns: 340px 1fr;
  gap: 5rem;
  align-items: start;
}
@media(max-width:860px){ .why-layout { grid-template-columns: 1fr; gap: 3rem; } }
.why-left { position: sticky; top: 88px; }
/* Single column: a sticky intro would pin and slide over the items below it. */
@media(max-width:860px){ .why-left { position: static; } }
.why-left .sec-lead { margin-top: .9rem; }
.why-quote {
  margin-top: 2.2rem;
  border-left: 2px solid var(--red);
  padding: .8rem 0 .8rem 1.3rem;
}
.why-quote p {
  font-size: .93rem;
  font-style: italic;
  color: rgba(255,255,255,.55);
  line-height: 1.7;
}
.why-cta {
  display: inline-block;
  margin-top: 2rem;
  background: var(--red);
  color: #fff;
  font-size: .82rem;
  font-weight: 600;
  padding: .85rem 1.7rem;
  border-radius: 2px;
  transition: background .2s;
}
.why-cta:hover { background: var(--red-h); }
.why-items { display: flex; flex-direction: column; }
.wi {
  display: grid;
  grid-template-columns: 36px 1fr;
  gap: 1.2rem;
  padding: 1.7rem 0;
  border-bottom: 1px solid rgba(255,255,255,.06);
  align-items: start;
  transition: padding-left .2s;
}
.wi:first-child { border-top: 1px solid rgba(255,255,255,.06); }
.wi:hover { padding-left: .5rem; }
.wi:hover .wi-n { background: var(--red); color: #fff; }
.wi-n {
  width: 28px; height: 28px;
  background: rgba(255,255,255,.07);
  border-radius: 2px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .68rem;
  font-weight: 700;
  color: rgba(255,255,255,.4);
  flex-shrink: 0;
  transition: background .2s, color .2s;
}
.wi h4 {
  font-size: .97rem;
  font-weight: 700;
  color: #fff;
  margin-bottom: .4rem;
  letter-spacing: -.01em;
  line-height: 1.3;
}
.wi p { font-size: .84rem; color: rgba(255,255,255,.42); line-height: 1.78; }

/* 
   INDUSTRIES
 */
#industries { background: var(--white); }
.ind-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--border);
  border: 1px solid var(--border);
  margin-top: .5rem;
}
@media(max-width:900px){ .ind-grid { grid-template-columns: repeat(2,1fr); } }
.ind-c {
  background: var(--white);
  padding: 1.7rem 1.5rem;
  transition: background .2s;
  position: relative;
}
.ind-c:hover { background: var(--blue-l); }
.ind-c:hover .ind-ic { background: var(--shade); }
.ind-c:hover .ind-arrow { opacity: 1; transform: translateX(0); }
.ind-ic {
  width: 38px; height: 38px;
  background: var(--blue-l);
  border-radius: 3px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  margin-bottom: .9rem;
  transition: background .2s;
}
.ind-arrow {
  position: absolute;
  top: 1.5rem;
  right: 1.3rem;
  font-size: .9rem;
  color: var(--text-strong);
  opacity: 0;
  transform: translateX(-5px);
  transition: opacity .2s, transform .2s;
}
.ind-c h5 {
  font-size: .9rem;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: .3rem;
  letter-spacing: -.01em;
}
.ind-c p { font-size: .77rem; color: var(--muted); line-height: 1.55; margin-bottom: .75rem; }
.ind-chips { display: flex; flex-wrap: wrap; gap: .25rem; }
.ind-chip {
  font-size: .6rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--text-strong);
  background: var(--blue-l);
  border: 1px solid var(--border);
  padding: .12rem .42rem;
  border-radius: 2px;
}

/* INDUSTRIES, Complete sector coverage (24-card inventory grid) */
.ind-full {
  margin-top: 4rem;
  padding-top: 3.5rem;
  border-top: 1px solid var(--border);
}
.ind-full-head {
  text-align: center;
  margin-bottom: 2.5rem;
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}
.ind-full-label {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-size: .65rem;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--red);
  margin-bottom: 1rem;
}
.ind-full-h3 {
  font-size: clamp(1.3rem, 2.4vw, 1.7rem);
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -.02em;
  color: var(--ink);
  margin: 0;
}
.ind-full-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--border);
  border: 1px solid var(--border);
}
@media (max-width: 920px) { .ind-full-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 680px) { .ind-full-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 420px) { .ind-full-grid { grid-template-columns: 1fr; } }
.ind-min {
  background: var(--white);
  padding: 1.15rem 1.25rem 1.2rem;
  display: flex;
  flex-direction: column;
  gap: .35rem;
  transition: background .2s ease;
  position: relative;
}
.ind-min::after {
  content: "→";
  position: absolute;
  top: 1.05rem; right: 1.1rem;
  font-size: .75rem;
  color: var(--border2);
  transition: color var(--dur-micro) var(--ease), transform .2s ease;
}
.ind-min:hover { background: var(--off); }
.ind-min:hover::after { color: var(--red); transform: translateX(2px); }
.ind-min-name {
  font-size: .86rem;
  font-weight: 600;
  letter-spacing: -.005em;
  color: var(--ink);
  line-height: 1.35;
  padding-right: 1.4rem;
  transition: color var(--dur-micro) var(--ease);
}
.ind-min:hover .ind-min-name { color: var(--text-strong); }
.ind-min-tags {
  font-size: .68rem;
  font-weight: 500;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--muted);
  line-height: 1.5;
}
.ind-full-foot {
  margin-top: 2.5rem;
  font-size: .9rem;
  font-weight: 400;
  color: var(--muted);
  line-height: 1.75;
  text-align: center;
  max-width: 680px;
  margin-left: auto;
  margin-right: auto;
}
.ind-full-foot a {
  color: var(--text-strong);
  font-weight: 600;
  padding-bottom: 1px;
  border-bottom: 1px solid var(--shade);
  transition: color var(--dur-micro) var(--ease), border-color .15s ease;
}
.ind-full-foot a:hover { color: var(--red); border-bottom-color: var(--red); }

/* 
   CTA BAND
 */
.cta-band {
  position: relative;
  background: linear-gradient(135deg, var(--shade) 0%, var(--shade-2) 55%, var(--shade-3) 100%);
  padding: 4.5rem clamp(1.5rem,5vw,4rem);
  overflow: hidden;
  border-top: 1px solid rgba(255,255,255,.05);
  border-bottom: 1px solid rgba(255,255,255,.05);
}
.cta-band::before {
  content: "";
  position: absolute;
  left: clamp(1.5rem,5vw,4rem);
  top: 0;
  width: 36px;
  height: 2px;
  background: var(--red);
}
.cta-band-inner {
  max-width: var(--max);
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2.5rem;
  flex-wrap: wrap;
  position: relative;
  z-index: 1;
}
.cta-band h3 {
  font-size: clamp(1.45rem, 2.4vw, 1.75rem);
  font-weight: 800;
  color: #fff;
  letter-spacing: -.02em;
  line-height: 1.25;
  max-width: 580px;
}
.cta-band p {
  font-size: .92rem;
  color: rgba(255,255,255,.55);
  margin-top: .65rem;
  max-width: 520px;
  line-height: 1.75;
}
.btn-white {
  background: var(--white);
  color: var(--text-strong);
  font-size: .84rem;
  font-weight: 700;
  padding: .9rem 1.9rem;
  border-radius: 2px;
  display: inline-block;
  white-space: nowrap;
  transition: background .2s;
}
.btn-white:hover { background: var(--blue-l); }

/* 
   CONTACT
 */
#contact { background: var(--off); padding-bottom: 0; }
.contact-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5rem;
  padding-bottom: 5.5rem;
}
@media(max-width:800px){ .contact-layout { grid-template-columns: 1fr; gap: 3rem; } }
.ci .sec-lead { max-width: 100%; margin-bottom: 2.5rem; }
.ci-list { display: flex; flex-direction: column; gap: .9rem; }
.ci-item {
  display: flex;
  gap: .9rem;
  align-items: flex-start;
  padding: 1rem 1.2rem;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 2px;
  transition: border-color .2s;
}
.ci-item:hover { border-color: var(--border2); }
.ci-icon {
  width: 32px; height: 32px;
  background: var(--blue-l);
  border-radius: 3px;
  display: flex; align-items: center; justify-content: center;
  font-size: .9rem;
  flex-shrink: 0;
}
.ci-item strong {
  display: block;
  font-size: .68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--ink);
  margin-bottom: .1rem;
}
.ci-item span { font-size: .86rem; color: var(--muted); }
.ci-item span a { color: var(--blue); text-decoration: none; }
.ci-item span a:hover { text-decoration: underline; }
.ci-desks { padding: 1rem 1.2rem; background: var(--white); border: 1px solid var(--border); border-radius: 2px; }
.ci-desks-h { display: block; font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--ink); margin-bottom: .7rem; }
.ci-desks-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .55rem; }
.ci-desks-list li { display: flex; flex-wrap: wrap; align-items: baseline; gap: .1rem .6rem; }
.ci-desks-list a { font-size: .85rem; font-weight: 600; color: var(--blue); text-decoration: none; }
.ci-desks-list a:hover { text-decoration: underline; }
.ci-desks-list em { font-style: normal; font-size: .73rem; color: var(--muted); }

.cf {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 2px;
  padding: 2.2rem 2rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.cf-title { font-size: 1rem; font-weight: 700; color: var(--ink); letter-spacing: -.01em; }
.cf-sub { font-size: .82rem; color: var(--muted); margin-top: -.5rem; margin-bottom: .2rem; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media(max-width:500px){ .form-row { grid-template-columns: 1fr; } }
.fg { display: flex; flex-direction: column; gap: .3rem; }
.fg label {
  font-size: .68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--ink);
}
.fg input, .fg select, .fg textarea {
  font-family: "Inter", "Inter-fallback", sans-serif;
  font-size: .88rem;
  color: var(--ink);
  background: var(--off);
  border: 1.5px solid var(--border);
  border-radius: 2px;
  padding: .7rem .85rem;
  outline: none;
  transition: border-color .2s, box-shadow .2s, background .2s;
  resize: none;
  appearance: none;
}
.fg input:focus, .fg select:focus, .fg textarea:focus {
  border-color: var(--blue);
  background: var(--white);
  box-shadow: 0 0 0 3px rgba(41,151,255,.08);
}
.btn-submit {
  background: var(--shade);
  color: #fff;
  font-family: "Inter", "Inter-fallback", sans-serif;
  font-size: .84rem;
  font-weight: 700;
  border: none;
  padding: .9rem;
  border-radius: 2px;
  cursor: pointer;
  letter-spacing: .01em;
  transition: background .2s;
}
.btn-submit:hover { background: var(--shade-3); }
.btn-submit.cf-btn-error { background: var(--red); animation: cfShake .4s; }
@keyframes cfShake { 0%,100%{transform:translateX(0)} 25%{transform:translateX(-5px)} 75%{transform:translateX(5px)} }
/* Invalid-field highlight (set by JS form validation; cleared on next input). */
.field-invalid,
input.field-invalid, select.field-invalid, textarea.field-invalid {
  border-color: var(--red, #A0171C) !important;
  box-shadow: 0 0 0 3px rgba(200, 32, 42, 0.14) !important;
}
.cf-success { margin-top: .9rem; padding: .75rem .95rem; background: rgba(16,122,72,.08); border: 1px solid rgba(16,122,72,.28); border-radius: 8px; color: #0c6b40; font-size: .86rem; font-weight: 500; }

/* 
   FOOTER
 */
.footer { background: var(--shade); }
.footer-main {
  max-width: var(--max);
  margin: 0 auto;
  padding: 3.5rem clamp(1.5rem,5vw,4rem) 2.5rem;
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 4rem;
  border-bottom: 1px solid rgba(255,255,255,.07);
}
@media(max-width:860px){ .footer-main { grid-template-columns: 1fr; gap: 2.5rem; } }
.fb-logo {
  display: block;
  height: 40px;
  width: auto;
  /* invert for white version on dark bg */
  filter: brightness(0) invert(1);
  opacity: .55;
  margin-bottom: 1rem;
}
.footer-brand p {
  font-size: .77rem;
  color: rgba(255,255,255,.35);
  line-height: 1.7;
  max-width: 200px;
}
.footer-cols {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}
@media(max-width:860px){ .footer-cols { grid-template-columns: 1fr 1fr; } }
@media(max-width:440px){ .footer-cols { grid-template-columns: 1fr; } }
.fc h6 {
  font-size: .68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: rgba(255,255,255,.38);
  margin-bottom: 1rem;
  padding-bottom: .6rem;
  border-bottom: 1px solid rgba(255,255,255,.07);
}
.fc ul { display: flex; flex-direction: column; gap: .5rem; }
.fc ul li a {
  font-size: .8rem;
  color: rgba(255,255,255,.42);
  transition: color .2s;
}
.fc ul li a:hover { color: rgba(255,255,255,.85); }
.footer-regulatory {
  max-width: var(--max);
  margin: 0 auto;
  padding: 2.4rem clamp(1.5rem,5vw,4rem) 1.8rem;
  border-top: 1px solid rgba(255,255,255,.06);
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.freg-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.8rem 2rem;
  margin-bottom: 1.6rem;
}
@media (max-width: 800px) { .freg-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) { .freg-grid { grid-template-columns: 1fr; } }
.freg-cell {}
.freg-label {
  font-size: .6rem;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(255,255,255,.32);
  margin-bottom: .45rem;
}
.freg-val {
  font-size: .78rem;
  font-weight: 500;
  color: rgba(255,255,255,.68);
  line-height: 1.55;
}
.freg-note {
  font-size: .72rem;
  color: rgba(255,255,255,.42);
  line-height: 1.7;
  max-width: 920px;
  margin: 0;
}
.footer-bottom {
  max-width: var(--max);
  margin: 0 auto;
  padding: 1.4rem clamp(1.5rem,5vw,4rem);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}
.footer-bottom p { font-size: .7rem; color: rgba(255,255,255,.28); }
.footer-bottom p span { color: rgba(255,255,255,.5); }
.footer-bottom ul { display: flex; gap: 1.5rem; }
.footer-bottom ul li a {
  font-size: .68rem;
  color: rgba(255,255,255,.28);
  text-transform: uppercase;
  letter-spacing: .07em;
  transition: color .2s;
}
.footer-bottom ul li a:hover { color: rgba(255,255,255,.7); }
.footer-red { height: 3px; background: var(--red); }

/* 
   INDUSTRIES MEGA DROPDOWN
 */
.ind-panel { top: 70px; }

.ind-panel-inner {
  max-width: var(--max);
  margin: 0 auto;
  padding: 0 clamp(1.5rem,5vw,4rem);
}
.ind-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.4rem 0 1.1rem;
  border-bottom: 1px solid var(--border);
  gap: 2rem;
}
.ind-panel-head-left {
  display: flex;
  align-items: baseline;
  gap: 1.2rem;
  flex-wrap: wrap;
}
.ind-panel-title {
  font-size: .78rem;
  font-weight: 600;
  color: var(--ink);
  text-transform: uppercase;
  letter-spacing: .07em;
}
.ind-panel-sub { font-size: .73rem; color: #9ca3af; }
.ind-panel-cta {
  font-size: .78rem;
  font-weight: 400;
  color: var(--text-strong);
  white-space: nowrap;
  flex-shrink: 0;
  transition: color .15s;
  border-bottom: 1px solid transparent;
}
.ind-panel-cta:hover { color: var(--red); border-color: var(--red); }

.ind-grid-dd {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  padding: 1rem 0 1.8rem;
}
.ind-dd-item {
  display: flex;
  align-items: center;
  gap: .5rem;
  padding: .55rem .6rem;
  border-radius: 2px;
  transition: background .12s;
  cursor: pointer;
  text-align: left;
}
.ind-dd-item::before { display: none; }
.ind-dd-item:hover { background: #f9fafb; }
.ind-dd-item:hover .idd-name { color: var(--text-strong); }
.idd-icon { display: none; }
.idd-name {
  font-size: .82rem;
  font-weight: 400;
  color: var(--body);
  line-height: 1.35;
  transition: color .12s;
}

/* 
   SERVICES MEGA DROPDOWN
 */
.svc-dd-panel { top: 70px; }

.svc-dd-inner {
  max-width: var(--max);
  margin: 0 auto;
  padding: 0 clamp(1.5rem,5vw,4rem);
}
.svc-dd-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.4rem 0 1.1rem;
  border-bottom: 1px solid var(--border);
  gap: 2rem;
}
.svc-dd-head-left {
  display: flex;
  align-items: baseline;
  gap: 1.2rem;
  flex-wrap: wrap;
}
.svc-dd-title {
  font-size: .78rem;
  font-weight: 600;
  color: var(--ink);
  text-transform: uppercase;
  letter-spacing: .07em;
}
.svc-dd-sub { font-size: .73rem; color: #9ca3af; }
.svc-dd-cta {
  font-size: .78rem;
  font-weight: 400;
  color: var(--text-strong);
  white-space: nowrap;
  flex-shrink: 0;
  transition: color .15s;
  border-bottom: 1px solid transparent;
}
.svc-dd-cta:hover { color: var(--red); border-color: var(--red); }

/* 3-column grid, clean Marsh-style cards */
.svc-dd-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  padding: 1.2rem 0 1.8rem;
}
.svc-dd-card {
  background: var(--white);
  padding: 1.1rem 2rem 1.1rem 0;
  display: flex;
  flex-direction: column;
  gap: .22rem;
  transition: background .12s;
  position: relative;
  border-right: 1px solid var(--border);
  border-radius: 0;
}
.svc-dd-card:nth-child(3n) { border-right: none; }
.svc-dd-card:nth-child(3n+1) { padding-left: 0; }
.svc-dd-card:nth-child(3n) { padding-right: 0; }
.svc-dd-card:hover { background: #f9fafb; }
.svc-dd-card:hover .svc-dd-name { color: var(--text-strong); }
.svc-dd-card:hover .svc-dd-link { color: var(--text-strong); }

.svc-dd-card-top {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  margin-bottom: .35rem;
}
.svc-dd-num {
  font-size: .65rem;
  font-weight: 600;
  letter-spacing: .08em;
  color: #9ca3af;
}
.svc-dd-tag { display: none; }
.svc-dd-name {
  font-size: .86rem;
  font-weight: 500;
  color: var(--ink);
  line-height: 1.3;
  letter-spacing: -.005em;
  transition: color .12s;
  margin-bottom: .15rem;
}
.svc-dd-desc {
  font-size: .75rem;
  color: #9ca3af;
  line-height: 1.6;
  flex: 1;
}
.svc-dd-link {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  margin-top: .6rem;
  font-size: .75rem;
  font-weight: 500;
  color: #6b7280;
  transition: color .15s;
}
.svc-dd-card:hover .svc-dd-link { gap: .5rem; }


/* ══════════════════════════════════════
   LANGUAGE SWITCHER
══════════════════════════════════════ */
.lang-switcher {
  position: relative;
  display: flex;
  align-items: center;
}
/* Language switcher re-enabled (English + 9 Indian languages). The non-English
   dictionaries are machine-assisted and can still be proofed by native speakers. */
.lang-btn {
  display: flex;
  align-items: center;
  gap: .35rem;
  background: none;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 3px;
  padding: .22rem .55rem;
  cursor: pointer;
  font-family: "Inter", "Inter-fallback", sans-serif;
  font-size: .72rem;
  font-weight: 700;
  color: rgba(255,255,255,.55);
  letter-spacing: .07em;
  transition: border-color .18s, color .18s, background .18s;
}
.lang-btn:hover {
  border-color: rgba(255,255,255,.55);
  color: rgba(255,255,255,.9);
  background: rgba(255,255,255,.07);
}
.lang-btn svg { flex-shrink: 0; transition: transform .2s; }
.lang-switcher.open .lang-btn svg { transform: rotate(180deg); }
.lang-switcher.open .lang-btn {
  border-color: rgba(255,255,255,.55);
  color: rgba(255,255,255,.9);
  background: rgba(255,255,255,.07);
}

.lang-dropdown {
  position: absolute;
  z-index: var(--z-overlay);   /* open above the sticky navbar */
  top: calc(100% + 6px);
  right: 0;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 3px;
  box-shadow: 0 8px 24px rgba(0,0,0,.12);
  min-width: 150px;
  max-height: 380px;
  overflow-y: auto;
  overflow-x: hidden;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity .18s, transform .18s, visibility 0s .18s;
  z-index: var(--z-dropdown);
}
.lang-switcher.open .lang-dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  z-index: var(--z-overlay);   /* ensure the open menu clears the sticky navbar */
  transition: opacity .18s, transform .18s, visibility 0s 0s;
}
.lang-opt {
  display: flex;
  align-items: center;
  gap: .6rem;
  width: 100%;
  padding: .65rem 1rem;
  background: none;
  border: none;
  cursor: pointer;
  font-family: "Inter", "Inter-fallback", sans-serif;
  text-align: left;
  transition: background .15s;
}
.lang-opt:hover { background: var(--blue-l); }
.lang-opt.active { background: var(--off); }
.lang-opt-code {
  font-size: .7rem;
  font-weight: 800;
  color: var(--text-strong);
  letter-spacing: .06em;
  width: 22px;
  flex-shrink: 0;
}
.lang-opt-name {
  font-size: .82rem;
  font-weight: 500;
  color: var(--body);
}
.lang-opt.active .lang-opt-name { color: var(--text-strong); font-weight: 600; }

/* ══════════════════════════════════════
   MEGA-MENU SUB-ITEMS (bracketed products)
══════════════════════════════════════ */
.mega-has-sub { position: relative; }
.mega-parent-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .4rem;
  width: 100%;
}
.mi-chevron {
  color: #c0c7d2;
  flex-shrink: 0;
  margin-top: 1px;
  transition: transform .2s, color .15s;
}
.mega-has-sub:hover .mi-chevron { transform: rotate(90deg); color: var(--text-strong); }
.mega-sub-items {
  display: none;
  flex-direction: column;
  padding: .3rem 0 .15rem .9rem;
  border-left: 2px solid var(--border);
  margin-left: .55rem;
  margin-top: .1rem;
}
.mega-has-sub:hover .mega-sub-items { display: flex; }
.mega-sub-link {
  font-size: .78rem;
  color: #6b7280;
  padding: .27rem .5rem;
  border-radius: 2px;
  display: flex;
  align-items: center;
  gap: .4rem;
  transition: color .12s, background .12s;
}
.mega-sub-link::before {
  content: "";
  width: 4px; height: 4px;
  border-radius: 50%;
  background: #9ca3af;
  flex-shrink: 0;
  transition: background .12s;
}
.mega-sub-link:hover { color: var(--text-strong); background: #f0f4ff; }
.mega-sub-link:hover::before { background: var(--shade); }

/* ══════════════════════════════════════
   PARTNERS STRIP
══════════════════════════════════════ */
/* SCROLL REVEAL, subtle on-enter motion. Only active when JS sets html.has-reveal */
@media (prefers-reduced-motion: no-preference) {
  html.has-reveal .reveal {
    opacity: 0;
    transform: translateY(14px);
    transition: opacity .6s cubic-bezier(.2,0,.2,1), transform .6s cubic-bezier(.2,0,.2,1);
    will-change: opacity, transform;
  }
  html.has-reveal .reveal.is-in {
    opacity: 1;
    transform: translateY(0);
  }
  html.has-reveal .reveal-d1 { transition-delay: .08s; }
  html.has-reveal .reveal-d2 { transition-delay: .16s; }
  html.has-reveal .reveal-d3 { transition-delay: .24s; }
}

/* PRODUCTS, closing footer line */
.prod-foot {
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 1px solid var(--border);
  font-size: .92rem;
  font-weight: 400;
  color: var(--muted);
  line-height: 1.75;
  text-align: center;
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}
.prod-foot a {
  color: var(--text-strong);
  font-weight: 600;
  padding-bottom: 1px;
  border-bottom: 1px solid var(--shade);
  transition: color var(--dur-micro) var(--ease), border-color .15s ease;
}
.prod-foot a:hover { color: var(--red); border-bottom-color: var(--red); }

/* SERVICES, Marsh-style 9-discipline capability grid */
.svc-sec {
  background: var(--white);
  padding: 6rem clamp(1.5rem,5vw,4rem) 5.5rem;
  border-top: 1px solid var(--border);
}
.svc-inner {
  max-width: var(--max);
  margin: 0 auto;
}
.svc-head {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: end;
  margin-bottom: 3.5rem;
}
@media (max-width: 820px) {
  .svc-head { grid-template-columns: 1fr; gap: 1.5rem; }
}
.svc-rule {
  width: 36px; height: 2px; background: var(--red);
  margin-bottom: 1.4rem;
}
.svc-label {
  display: block;
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 1rem;
}
.svc-h2 {
  font-size: clamp(1.7rem, 3vw, 2.4rem);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -.025em;
  color: var(--ink);
  margin: 0;
}
.svc-lead {
  font-size: .98rem;
  font-weight: 400;
  color: var(--muted);
  line-height: 1.8;
  margin: 0;
  max-width: 460px;
}
.svc-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--border);
  border: 1px solid var(--border);
}
@media (max-width: 900px) { .svc-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .svc-grid { grid-template-columns: 1fr; } }
.svc-card {
  background: var(--white);
  padding: 1.9rem 1.85rem 2rem;
  display: flex;
  flex-direction: column;
  text-align: left;
  transition: background .22s ease;
  position: relative;
  min-height: 280px;
}
.svc-card:hover { background: var(--off); }
.svc-card-top {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 1.2rem;
}
.svc-num {
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .08em;
  color: var(--red);
}
.svc-tag {
  font-size: .6rem;
  font-weight: 600;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--muted);
  padding: .25rem .6rem;
  border: 1px solid var(--border2);
  border-radius: 2px;
  background: var(--white);
}
.svc-card:hover .svc-tag { color: var(--text-strong); border-color: var(--text-strong); }
.svc-name {
  font-size: 1.08rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -.01em;
  color: var(--ink);
  margin: 0 0 .8rem;
  transition: color var(--dur-micro) var(--ease);
}
.svc-card:hover .svc-name { color: var(--text-strong); }
.svc-desc {
  font-size: .85rem;
  font-weight: 400;
  color: var(--muted);
  line-height: 1.7;
  margin: 0 0 1.4rem;
  flex: 1;
}
.svc-link {
  font-size: .76rem;
  font-weight: 600;
  letter-spacing: .03em;
  color: var(--text-strong);
  display: inline-flex; align-items: center; gap: .35rem;
  transition: color var(--dur-micro) var(--ease);
}
.svc-arr { transition: transform .2s ease; display: inline-block; }
.svc-card:hover .svc-link { color: var(--red); }
.svc-card:hover .svc-arr { transform: translateX(3px); }
.svc-foot {
  margin-top: 2.4rem;
  padding-top: 2rem;
  border-top: 1px solid var(--border);
  text-align: center;
}
.svc-foot p {
  font-size: .88rem;
  font-weight: 400;
  color: var(--muted);
  line-height: 1.7;
  margin: 0;
}
.svc-foot p a {
  color: var(--text-strong);
  font-weight: 600;
  padding-bottom: 1px;
  border-bottom: 1px solid var(--shade);
  transition: color var(--dur-micro) var(--ease), border-color .15s ease;
}
.svc-foot p a:hover { color: var(--red); border-bottom-color: var(--red); }

/* INSIGHTS, Marsh-style featured perspective grid */
.ins-today {
  display: flex;
  align-items: baseline;
  gap: 1rem;
  flex-wrap: wrap;
  max-width: var(--max);
  margin: 2.6rem auto 0;
  padding-top: 1.4rem;
  border-top: 1px solid var(--border);
  font-size: .9rem;
}
.ins-today-tag {
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--red);
  white-space: nowrap;
}
.ins-today-link { color: var(--text-strong); font-weight: 600; text-decoration: none; }
.ins-today-link:hover { text-decoration: underline; }
.ins-today-all { margin-left: auto; color: var(--muted); text-decoration: none; white-space: nowrap; }
.ins-today-all:hover { color: var(--text-strong); }
.insights-sec {
  background: var(--white);
  padding: 6rem clamp(1.5rem,5vw,4rem) 5rem;
  border-top: 1px solid var(--border);
}
.insights-inner {
  max-width: var(--max);
  margin: 0 auto;
}
.insights-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 2rem;
  margin-bottom: 3.5rem;
  flex-wrap: wrap;
}
.insights-rule {
  width: 36px; height: 2px; background: var(--red);
  margin-bottom: 1.4rem;
}
.insights-label {
  display: block;
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 1rem;
}
.insights-h2 {
  font-size: clamp(1.6rem, 3vw, 2.3rem);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -.025em;
  color: var(--ink);
  margin: 0;
  max-width: 560px;
}
.insights-link {
  font-size: .8rem;
  font-weight: 500;
  color: var(--text-strong);
  padding-bottom: 2px;
  border-bottom: 1px solid var(--shade);
  transition: color .15s, border-color .15s;
  white-space: nowrap;
}
.insights-link:hover { color: var(--red); border-bottom-color: var(--red); }
.insights-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--border);
  border: 1px solid var(--border);
}
@media (max-width: 900px) {
  .insights-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .insights-grid { grid-template-columns: 1fr; }
}
.insight-card {
  display: flex;
  flex-direction: column;
  background: var(--white);
  transition: background .25s ease;
  cursor: pointer;
}
.insight-card:hover { background: var(--off); }
.insight-thumb {
  width: 100%;
  aspect-ratio: 16 / 9;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transition: filter .35s ease;
}
.insight-card:hover .insight-thumb { filter: brightness(.96) saturate(1.05); }
.insight-body {
  padding: 1.8rem 1.7rem 2rem;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.insight-meta {
  display: flex;
  align-items: center;
  gap: .85rem;
  margin-bottom: 1rem;
  font-size: .66rem;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--muted);
}
.insight-tag {
  font-weight: 700;
  color: var(--red);
  padding: .2rem .55rem;
  border: 1px solid rgba(200,32,42,.25);
  background: rgba(200,32,42,.04);
  border-radius: 2px;
}
.insight-date {
  font-weight: 500;
  letter-spacing: .12em;
}
.insight-title {
  font-size: 1.1rem;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: -.01em;
  color: var(--ink);
  margin: 0 0 .9rem;
}
.insight-card:hover .insight-title { color: var(--text-strong); }
.insight-sum {
  font-size: .88rem;
  color: var(--muted);
  line-height: 1.7;
  margin: 0 0 1.2rem;
  flex: 1;
}
.insight-cta {
  font-size: .76rem;
  font-weight: 600;
  letter-spacing: .04em;
  color: var(--text-strong);
  transition: color .15s, transform .2s;
}
.insight-card:hover .insight-cta { color: var(--red); }


/* CASE STUDIES, client stories block */
.case-thumb {
  width: 100%;
  aspect-ratio: 16/9;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  margin: -2rem -2rem 1.4rem;
  width: calc(100% + 4rem);
  filter: grayscale(.15) saturate(.95);
  transition: filter .3s ease;
}
.case-card:hover .case-thumb { filter: grayscale(0) saturate(1.05); }

.cases-sec {
  background: var(--white);
  padding: 6rem clamp(1.5rem,5vw,4rem) 5rem;
  border-top: 1px solid var(--border);
}
.cases-inner { max-width: var(--max); margin: 0 auto; }
.cases-head {
  display: grid; grid-template-columns: 1fr 1fr; gap: 4rem;
  align-items: end; margin-bottom: 3.5rem;
}
@media (max-width: 820px) { .cases-head { grid-template-columns: 1fr; gap: 1.5rem; } }
.cases-rule { width: 36px; height: 2px; background: var(--red); margin-bottom: 1.4rem; }
.cases-label {
  display: block; font-size: .7rem; font-weight: 600; letter-spacing: .22em;
  text-transform: uppercase; color: var(--muted); margin-bottom: 1rem;
}
.cases-h2 {
  font-size: clamp(1.7rem, 3vw, 2.4rem); font-weight: 700; line-height: 1.2;
  letter-spacing: -.025em; color: var(--ink); margin: 0;
}
.cases-lead {
  font-size: .98rem; font-weight: 400; color: var(--muted);
  line-height: 1.8; margin: 0; max-width: 460px;
}
.cases-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 1px;
  background: var(--border2); border: 1px solid var(--border2);
}
@media (max-width: 820px) { .cases-grid { grid-template-columns: 1fr; } }
/* Cases: headline chips ride a slow marquee; clicking one swaps the full
   case shown in the stage below. Pauses on hover/focus; static wrap under
   prefers-reduced-motion. */
.cases-marquee { overflow: hidden; margin: 2.4rem 0 2rem; }
.cases-mq-row { display: flex; gap: .9rem; width: max-content; animation: cases-mq 80s linear infinite; }
.cases-mq-row:hover, .cases-mq-row:focus-within { animation-play-state: paused; }
.cmq-group { display: flex; gap: .9rem; }
@keyframes cases-mq { from { transform: translateX(0); } to { transform: translateX(calc(-50% - .45rem)); } }
.case-chip {
  display: flex; align-items: center; gap: .85rem;
  padding: .75rem 1.15rem; white-space: nowrap; cursor: pointer;
  background: var(--white); border: 1px solid var(--border2);
  font: inherit; color: var(--muted); transition: border-color .15s, color .15s;
}
.case-chip:hover { border-color: var(--red); color: var(--text-strong); }
.case-chip.is-active { border-color: var(--red); color: var(--text-strong); box-shadow: inset 0 -2px 0 var(--red); }
.cc-tag { font-size: .62rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--red); }
.cc-title { font-weight: 600; font-size: .9rem; }
.cc-year { font-size: .74rem; color: var(--muted); }
.cases-stage .case-card { max-width: 900px; margin: 0 auto; border: 1px solid var(--border2); }
.cases-stage .case-card[hidden] { display: none; }
@media (prefers-reduced-motion: reduce) {
  .cases-mq-row { animation: none; width: auto; flex-wrap: wrap; }
  .cmq-dup { display: none; }
}
.case-card {
  background: var(--white);
  padding: 2rem 2rem 2.2rem;
  display: flex; flex-direction: column; gap: 1.2rem;
  transition: background .22s ease;
}
.case-card:hover { background: var(--off); }
.case-meta {
  display: flex; align-items: center; gap: .85rem;
  font-size: .66rem; letter-spacing: .15em; text-transform: uppercase;
  color: var(--muted); margin-bottom: -.3rem;
}
.case-tag {
  font-weight: 700; color: var(--red);
  padding: .22rem .6rem;
  border: 1px solid rgba(200,32,42,.25);
  background: rgba(200,32,42,.04);
  border-radius: 2px;
}
.case-sector { font-weight: 500; letter-spacing: .12em; }
.case-card .case-section a { color: var(--red); font-weight: 600; text-decoration: none; border-bottom: 1px solid rgba(200,32,42,.3); }
.case-card .case-section a:hover { border-bottom-color: var(--red); }
.case-title {
  font-size: 1.18rem; font-weight: 700; line-height: 1.3;
  letter-spacing: -.015em; color: var(--ink); margin: 0;
}
.case-body { display: flex; flex-direction: column; gap: 1rem; }
.case-section { padding-left: .8rem; border-left: 2px solid var(--border); }
.case-section-label {
  font-size: .62rem; font-weight: 700; letter-spacing: .15em;
  text-transform: uppercase; color: var(--red);
  margin-bottom: .35rem;
}
.case-section p {
  font-size: .87rem; color: var(--body); line-height: 1.7; margin: 0;
}
.cases-foot {
  margin-top: 2.8rem; padding-top: 2rem;
  border-top: 1px solid var(--border);
  font-size: .88rem; font-weight: 400; color: var(--muted);
  line-height: 1.75; text-align: center;
  max-width: 680px; margin-left: auto; margin-right: auto;
}
.cases-foot a {
  color: var(--text-strong); font-weight: 600;
  padding-bottom: 1px; border-bottom: 1px solid var(--shade);
  transition: color .15s, border-color .15s;
}
.cases-foot a:hover { color: var(--red); border-bottom-color: var(--red); }

/* FAQ, plain-language differentiation block */
.faq-sec {
  background: var(--off);
  padding: 6rem clamp(1.5rem,5vw,4rem) 5.5rem;
}
.faq-inner {
  max-width: 920px;
  margin: 0 auto;
}
.faq-head { margin-bottom: 3rem; }
.faq-rule {
  width: 36px; height: 2px; background: var(--red);
  margin-bottom: 1.6rem;
}
.faq-label {
  display: block;
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 1rem;
}
.faq-h2 {
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -.025em;
  color: var(--ink);
  margin: 0;
}
.faq-list-hp {
  display: flex;
  flex-direction: column;
  border-top: 1px solid var(--border);
}
.faq-q-hp {
  border-bottom: 1px solid var(--border);
  padding: 0;
}
.faq-q-hp summary {
  list-style: none;
  cursor: pointer;
  padding: 1.6rem 0;
  display: flex; align-items: flex-start; justify-content: space-between; gap: 1.2rem;
  transition: color var(--dur-micro) var(--ease);
}
.faq-q-hp summary::-webkit-details-marker { display: none; }
.faq-q-hp summary:hover { color: var(--text-strong); }
.faq-q-text {
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: -.01em;
  color: var(--ink);
  flex: 1;
}
.faq-chev {
  position: relative;
  width: 18px; height: 18px;
  flex-shrink: 0; margin-top: .25rem;
  transition: transform .25s ease;
}
.faq-chev::before, .faq-chev::after {
  content: ""; position: absolute; top: 50%; left: 50%;
  width: 12px; height: 1.5px;
  background: var(--ink);
  transform-origin: center;
  transition: transform .25s ease, background .15s ease;
}
.faq-chev::before { transform: translate(-50%,-50%); }
.faq-chev::after  { transform: translate(-50%,-50%) rotate(90deg); }
.faq-q-hp[open] .faq-chev::after { transform: translate(-50%,-50%) rotate(0deg); }
.faq-q-hp[open] .faq-chev::before { background: var(--red); }
.faq-a-hp {
  padding: 0 0 1.8rem;
  max-width: 760px;
}
.faq-a-hp p {
  font-size: .96rem;
  font-weight: 400;
  line-height: 1.8;
  color: var(--body);
  margin: 0;
}

/* HERITAGE, short origin story tying founding to today */
.heritage {
  background: var(--white);
  padding: 6rem clamp(1.5rem,5vw,4rem) 5rem;
  border-bottom: 1px solid var(--border);
}
.heritage-inner {
  max-width: 820px;
  margin: 0 auto;
  text-align: left;
}
.heritage-rule {
  width: 36px; height: 2px; background: var(--red);
  margin-bottom: 2rem;
}
.heritage-label {
  display: block;
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 1.1rem;
}
.heritage-h3 {
  font-size: clamp(1.5rem, 2.8vw, 2.1rem);
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -.02em;
  color: var(--ink);
  margin: 0 0 1.4rem;
}
.heritage-p {
  font-size: 1.02rem;
  font-weight: 400;
  line-height: 1.8;
  color: var(--body);
  max-width: 720px;
  margin: 0;
}

/* SCALE BAND, minimalist 3-number proof of scale */
.scale-band {
  background: var(--white);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  padding: 6rem clamp(1.5rem,5vw,4rem) 5.5rem;
}
.scale-inner {
  max-width: var(--max);
  margin: 0 auto;
}
.scale-eyebrow {
  display: inline-flex; align-items: center; gap: .75rem;
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 3rem;
}
.scale-eyebrow-sep {
  width: 28px; height: 1px; background: var(--red); display: inline-block;
}
.scale-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border-top: 1px solid var(--border);
}
@media(max-width: 760px) {
  .scale-grid { grid-template-columns: 1fr; }
}
.scale-item {
  padding: 2.5rem 0 .5rem;
  border-right: 1px solid var(--border);
}
.scale-item:last-child { border-right: none; }
.scale-item:not(:first-child) { padding-left: 2.5rem; }
@media(max-width: 760px) {
  .scale-item {
    border-right: none;
    border-bottom: 1px solid var(--border);
    padding: 2rem 0 1.5rem !important;
  }
  .scale-item:last-child { border-bottom: none; }
}
.scale-n {
  font-size: clamp(2.6rem, 5.5vw, 4rem);
  font-weight: 800;
  line-height: 1;
  letter-spacing: -.035em;
  color: var(--ink);
  margin-bottom: .9rem;
}
.scale-n em {
  font-style: normal;
  color: var(--red);
  font-weight: 700;
  letter-spacing: -.02em;
}
.scale-l {
  font-size: .82rem;
  font-weight: 400;
  color: var(--muted);
  line-height: 1.65;
  max-width: 280px;
}


/* INSURER LOGO MARQUEE, wordmark cards (v3) */
.logos-strip {
  background: var(--white);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  padding: 2.6rem 0;
  overflow: hidden;
}
.logos-strip-head {
  max-width: var(--max);
  margin: 0 auto 1.8rem;
  padding: 0 clamp(1.5rem, 5vw, 4rem);
  display: flex; align-items: center; justify-content: center;
}
.logos-strip-label {
  font-size: .68rem; font-weight: 600;
  text-transform: uppercase; letter-spacing: .2em;
  color: var(--muted);
  margin: 0; text-align: center;
}

.logos-marquee {
  position: relative;
  -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 6%, #000 94%, transparent 100%);
          mask-image: linear-gradient(to right, transparent 0%, #000 6%, #000 94%, transparent 100%);
}
.logos-track {
  display: flex; align-items: stretch;
  gap: 0;
  width: max-content;
  animation: logos-scroll 70s linear infinite;
}
.logos-track:hover { animation-play-state: paused; }
@keyframes logos-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

.logo-item {
  flex-shrink: 0;
  position: relative;
  display: inline-flex;
  align-items: center; justify-content: center;
  width: 210px;
  height: 80px;
  padding: 0 1.8rem;
  border-right: 1px solid var(--border);
  transition: background .2s ease;
}
.logo-item:hover { background: var(--off); }

/* When a real logo file exists, show only the image */
.logo-real {
  position: absolute;
  inset: 50% 1.8rem auto 1.8rem;
  transform: translateY(-50%);
  max-height: 46px; width: auto;
  max-width: calc(100% - 3.6rem);
  object-fit: contain;
  filter: grayscale(1) opacity(.78);
  transition: filter .2s ease, transform .2s ease;
  display: none;
}
.logo-item.has-real-logo .logo-real { display: block; }
.logo-item.has-real-logo .logo-wordmark { display: none; }
.logo-item:hover .logo-real { filter: grayscale(0) opacity(1); }

/* Wordmark, the intentional typographic treatment shown until a real
   logo file is present. Designed to look polished, not placeholder. */
.logo-wordmark {
  display: flex; flex-direction: column;
  align-items: center; text-align: center;
  gap: .25rem;
  width: 100%;
  position: relative;
}
.logo-wordmark::before {
  content: "";
  position: absolute;
  top: -.6rem;
  left: 50%; transform: translateX(-50%);
  width: 18px; height: 1px;
  background: var(--red);
  opacity: .55;
  transition: width .2s ease, opacity .2s ease, background .2s ease;
}
.logo-item:hover .logo-wordmark::before {
  width: 28px; opacity: 1;
}
.logo-primary {
  font-family: 'Inter', 'Inter-fallback', sans-serif;
  font-size: .82rem;
  font-weight: 800;
  letter-spacing: .04em;
  color: var(--text-strong);
  line-height: 1.1;
  transition: color var(--dur-micro) var(--ease);
}
.logo-item:hover .logo-primary { color: var(--ink); }
.logo-secondary {
  font-family: 'Inter', 'Inter-fallback', sans-serif;
  font-size: .58rem;
  font-weight: 500;
  letter-spacing: .14em;
  color: var(--muted);
  text-transform: uppercase;
  line-height: 1.2;
}

@media (max-width: 720px) {
  .logo-item { width: 170px; height: 70px; padding: 0 1.2rem; }
  .logo-primary { font-size: .74rem; }
  .logo-secondary { font-size: .54rem; }
  .logo-real { max-height: 38px; }
}
@media (prefers-reduced-motion: reduce) {
  .logos-track { animation-duration: 200s; }
}


/* ══════════════════════════════════════
   ABOUT IMAGE BLOCK
══════════════════════════════════════ */
.about-img-block {
  border-radius: 3px;
  overflow: hidden;
  margin-bottom: 1.5rem;
  position: relative;
  background: linear-gradient(135deg, var(--shade) 0%, var(--shade-3) 60%, #262628 100%);
  min-height: 200px;
}
.about-img-block img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  opacity: .22;
  mix-blend-mode: luminosity;
}
.about-img-overlay-pat {
  position: absolute; inset: 0;
  background-image: radial-gradient(circle at 70% 30%, rgba(200,32,42,.15) 0%, transparent 60%);
  pointer-events: none;
}
.about-img-data {
  position: relative;
  padding: 1.4rem 1.5rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: rgba(0,0,0,.55);
  width: 100%;
}
.aid-item { padding: .85rem 1rem; }
.aid-n { font-size: 1.5rem; font-weight: 800; color: #fff; letter-spacing: -.025em; display: block; }
.aid-n em { color: var(--red); font-style: normal; }
.aid-l { font-size: .6rem; color: rgba(255,255,255,.42); text-transform: uppercase; letter-spacing: .07em; margin-top: .1rem; display: block; }

/* ══════════════════════════════════════
   PRODUCTS SECTION (Tabbed)
══════════════════════════════════════ */
#products { background: var(--off); }
.prod-tabs-nav {
  display: flex;
  gap: 0;
  border-bottom: 2px solid var(--border);
  margin-bottom: 2.5rem;
}
.prod-tab-btn {
  padding: .75rem 2rem;
  font-size: .82rem;
  font-weight: 600;
  color: var(--muted);
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  cursor: pointer;
  font-family: "Inter", "Inter-fallback", sans-serif;
  transition: color .15s, border-color .15s;
  letter-spacing: .01em;
}
.prod-tab-btn.active { color: var(--text-strong); border-bottom-color: var(--red); }
.prod-tab-btn:hover:not(.active) { color: var(--ink); }
.prod-tab-pane { display: none; }
.prod-tab-pane.active { display: block; }

/* Business insurance card grid, 4-col */
.prod-biz-grid {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 1px;
  background: var(--border2);
  border: 1px solid var(--border2);
}
@media(max-width:1100px){ .prod-biz-grid { grid-template-columns: repeat(3,1fr); } }
@media(max-width:720px)  { .prod-biz-grid { grid-template-columns: repeat(2,1fr); } }
@media(max-width:480px)  { .prod-biz-grid { grid-template-columns: 1fr; } }

/* Personal insurance card grid, 3-col */
.prod-per-grid {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 1px;
  background: var(--border2);
  border: 1px solid var(--border2);
}
@media(max-width:780px){ .prod-per-grid { grid-template-columns: repeat(2,1fr); } }
@media(max-width:480px){ .prod-per-grid { grid-template-columns: 1fr; } }

.pc {
  background: var(--white);
  padding: 1.6rem 1.5rem;
  display: flex;
  flex-direction: column;
  position: relative;
  transition: background .2s;
}
.pc:hover { background: var(--blue-l); }
.pc:hover .pc-arr { opacity: 1; transform: translateX(0); }
.pc-arr {
  position: absolute; top: 1.2rem; right: 1.2rem;
  font-size: .85rem; color: var(--text-strong);
  opacity: 0; transform: translateX(-5px);
  transition: opacity .2s, transform .2s;
}
.pc-ic {
  width: 42px; height: 42px;
  background: var(--blue-l);
  border-radius: 3px;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.15rem;
  margin-bottom: .9rem;
  transition: background .2s;
}
.pc:hover .pc-ic { background: rgba(41,151,255,.15); }
.pc-title {
  font-size: .92rem;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: .3rem;
  letter-spacing: -.01em;
  line-height: 1.3;
}
.pc-desc {
  font-size: .79rem;
  color: var(--muted);
  line-height: 1.65;
  flex: 1;
  margin-bottom: .8rem;
}
.pc-subs { display: flex; flex-direction: column; gap: .2rem; margin-bottom: .85rem; }
.pc-sub {
  display: flex; align-items: center; gap: .4rem;
  font-size: .75rem; font-weight: 500; color: var(--blue);
}
.pc-sub::before {
  content: ""; width: 4px; height: 4px;
  border-radius: 50%; background: var(--blue); flex-shrink: 0;
}
.pc-lnk {
  font-size: .77rem;
  font-weight: 600;
  color: var(--text-strong);
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  margin-top: auto;
  transition: gap .2s, color .2s;
}
.pc:hover .pc-lnk { gap: .55rem; color: var(--blue); }

/* ══════════════════════════════════════
   CRM / CLIENT PORTAL SECTION
══════════════════════════════════════ */
.crm-sec {
  background: var(--shade-2);
  padding: clamp(3.5rem,7vw,5.5rem) clamp(1.5rem,5vw,4rem);
}
.crm-layout {
  max-width: var(--max);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 400px;
  gap: 5rem;
  align-items: center;
}
@media(max-width:960px){ .crm-layout { grid-template-columns: 1fr; gap: 3rem; } }
.crm-label {
  font-size: .72rem; font-weight: 600;
  text-transform: uppercase; letter-spacing: .1em;
  color: rgba(255,255,255,.35);
  display: flex; align-items: center; gap: .55rem;
  margin-bottom: .6rem;
}
.crm-label::before { content: ""; width: 18px; height: 2px; background: var(--red); flex-shrink: 0; }
.crm-h2 {
  font-size: clamp(1.6rem,2.6vw,2.2rem);
  font-weight: 800; color: #fff;
  line-height: 1.2; letter-spacing: -.025em;
  margin-bottom: 1rem;
}
.crm-lead {
  font-size: .95rem; color: rgba(255,255,255,.48);
  line-height: 1.8; margin-bottom: 2.2rem;
}
.crm-feats { display: flex; flex-direction: column; gap: .75rem; }
.crm-feat {
  display: flex; align-items: flex-start; gap: .85rem;
  padding: .85rem 1rem;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 2px;
  transition: background .2s;
}
.crm-feat:hover { background: rgba(255,255,255,.07); }
.crm-feat-ic {
  width: 30px; height: 30px;
  background: rgba(200,32,42,.12);
  border: 1px solid rgba(200,32,42,.25);
  border-radius: 2px;
  display: flex; align-items: center; justify-content: center;
  font-size: .85rem; flex-shrink: 0;
}
.crm-feat-body h5 { font-size: .86rem; font-weight: 700; color: rgba(255,255,255,.82); margin-bottom: .15rem; }
.crm-feat-body p  { font-size: .77rem; color: rgba(255,255,255,.38); line-height: 1.55; }
.crm-cta-wrap { margin-top: 2rem; display: flex; gap: .75rem; flex-wrap: wrap; }
.crm-cta-primary {
  display: inline-flex; align-items: center; gap: .5rem;
  background: var(--red); color: #fff;
  font-size: .82rem; font-weight: 600;
  padding: .85rem 1.8rem; border-radius: 2px;
  transition: background .2s;
}
.crm-cta-primary:hover { background: var(--red-h); }
.crm-cta-ghost {
  display: inline-flex; align-items: center; gap: .5rem;
  color: rgba(255,255,255,.6);
  font-size: .82rem; font-weight: 500;
  padding: .85rem 1.5rem; border-radius: 2px;
  border: 1px solid rgba(255,255,255,.18);
  transition: border-color .2s, color .2s;
}
.crm-cta-ghost:hover { border-color: rgba(255,255,255,.45); color: rgba(255,255,255,.9); }

/* Portal mock UI */
.pm-bar {
  background: rgba(255,255,255,.07);
  padding: .8rem 1.1rem;
  display: flex; align-items: center; gap: .5rem;
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.pm-dot { width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0; }
.pm-title { font-size: .67rem; font-weight: 600; color: rgba(255,255,255,.38); text-transform: uppercase; letter-spacing: .09em; margin-left: .35rem; }
.pm-body { padding: 1rem 1.1rem; display: flex; flex-direction: column; gap: .6rem; }
.pm-sec-label { font-size: .6rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: rgba(255,255,255,.28); margin-bottom: .1rem; margin-top: .2rem; }
.pm-row {
  display: flex; justify-content: space-between; align-items: center;
  padding: .6rem .8rem;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 2px;
}
.pm-rl { font-size: .72rem; color: rgba(255,255,255,.4); }
.pm-rv { font-size: .78rem; font-weight: 600; color: rgba(255,255,255,.8); }
.pm-badge {
  font-size: .6rem; font-weight: 700;
  padding: .15rem .45rem; border-radius: 2px;
  text-transform: uppercase; letter-spacing: .05em;
}
.pm-g { background: rgba(16,185,129,.15); color: #6ee7b7; }
.pm-a { background: rgba(245,158,11,.15); color: #fcd34d; }
.pm-r { background: rgba(200,32,42,.2); color: #fca5a5; }
.pm-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: .45rem; margin-top: .4rem; }
.pm-stat { background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.06); border-radius: 2px; padding: .7rem .6rem; text-align: center; }
.pm-sn { font-size: 1.05rem; font-weight: 800; color: #fff; display: block; margin-bottom: .12rem; letter-spacing: -.02em; }
.pm-sn em { color: var(--red); font-style: normal; }
.pm-sl { font-size: .57rem; color: rgba(255,255,255,.3); text-transform: uppercase; letter-spacing: .07em; }

/* ══════════════════════════════════════
   HERO VISUAL IMPROVEMENT
══════════════════════════════════════ */
.hero-img-bg {
  position: absolute; inset: 0;
  background: url('/assets/refresh/rfs-hero-advisory.webp') center/cover no-repeat;
  opacity: .14;
  pointer-events: none;
}

/* ── Visual Feature Sections ── */
.vfeat {
  position: relative;
  padding: 4.5rem clamp(1.5rem,5vw,4rem);
  background: var(--shade);
  overflow: hidden;
}
.vfeat-bg {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  opacity: .18;
}
.vfeat-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, var(--shade) 0%, rgba(0,0,0,.7) 50%, rgba(41,151,255,.4) 100%);
}
.vfeat-inner {
  max-width: var(--max); margin: 0 auto;
  position: relative; z-index: 1;
  display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center;
}
@media(max-width:800px){ .vfeat-inner { grid-template-columns: 1fr; gap: 2rem; } }
.vfeat-label { font-size: .72rem; font-weight: 600; text-transform: uppercase; letter-spacing: .1em; color: rgba(255,255,255,.38); display: flex; align-items: center; gap: .55rem; margin-bottom: .6rem; }
.vfeat-label::before { content:""; width:18px; height:2px; background:var(--red); flex-shrink:0; }
.vfeat-h2 { font-size: clamp(1.6rem,3vw,2.4rem); font-weight: 800; color: #fff; line-height: 1.15; letter-spacing: -.025em; margin-bottom: 1rem; }
.vfeat-lead { font-size: .95rem; color: rgba(255,255,255,.52); line-height: 1.8; margin-bottom: 2rem; }
.vfeat-items { display: flex; flex-direction: column; gap: .6rem; }
.vfeat-item { display: flex; align-items: flex-start; gap: .75rem; }
.vfeat-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--red); flex-shrink: 0; margin-top: .45rem; }
.vfeat-item span { font-size: .88rem; color: rgba(255,255,255,.62); line-height: 1.6; }
.vfeat-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.09); border-radius: 3px; overflow: hidden; }
.vfeat-stat { padding: 1.6rem 1.5rem; background: rgba(255,255,255,.04); transition: background .2s; }
.vfeat-stat:hover { background: rgba(255,255,255,.08); }
.vfeat-stat-n { font-size: 2rem; font-weight: 800; color: #fff; display: block; letter-spacing: -.025em; margin-bottom: .3rem; }
.vfeat-stat-n em { color: var(--red); font-style: normal; }
.vfeat-stat-l { font-size: .68rem; color: rgba(255,255,255,.38); text-transform: uppercase; letter-spacing: .07em; line-height: 1.4; }

/* ── Industry card image treatment ── */
.ind-c .ind-bg { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: .06; border-radius: 0; z-index: 0; transition: opacity .3s; }
.ind-c:hover .ind-bg { opacity: .1; }
.ind-c { position: relative; overflow: hidden; }
.ind-c .ind-ic, .ind-c h5, .ind-c p, .ind-c .ind-chips, .ind-c .ind-arrow { position: relative; z-index: 1; }

/* ── Product card colorful accent top-border ── */
.pc[data-cat="marine"]    { border-top: 3px solid #0063BF; }
.pc[data-cat="fire"]      { border-top: 3px solid #A0171C; }
.pc[data-cat="workmen"]   { border-top: 3px solid #0A6E4F; }
.pc[data-cat="group"]     { border-top: 3px solid #7C3AED; }
.pc[data-cat="vehicle"]   { border-top: 3px solid #D97706; }
.pc[data-cat="liability"] { border-top: 3px solid #0891B2; }
.pc[data-cat="cyber"]     { border-top: 3px solid #0063BF; }
.pc[data-cat="office"]    { border-top: 3px solid #0A6E4F; }
.pc[data-cat="plant"]     { border-top: 3px solid #7C3AED; }
.pc[data-cat="car"]       { border-top: 3px solid #D97706; }
.pc[data-cat="shop"]      { border-top: 3px solid #A0171C; }
.pc[data-cat="health"]    { border-top: 3px solid #0A6E4F; }
.pc[data-cat="term"]      { border-top: 3px solid #1d1d1f; }
.pc[data-cat="motor"]     { border-top: 3px solid #D97706; }
.pc[data-cat="pa"]        { border-top: 3px solid #0891B2; }
.pc[data-cat="ci"]        { border-top: 3px solid #A0171C; }
.pc[data-cat="home"]      { border-top: 3px solid #7C3AED; }

/* ── Product hero image strip (tab image banners) ── */
.prod-tab-img {
  width: 100%; height: 260px;
  position: relative; overflow: hidden; margin-bottom: 2rem;
  border: 1px solid var(--border2);
}
.prod-tab-img img { width:100%; height:100%; object-fit:cover; display:block; }
.prod-tab-img-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to right, var(--shade) 0%, rgba(0,0,0,.82) 40%, rgba(0,0,0,.3) 100%);
}
.prod-tab-img-text {
  position: absolute; bottom: 0; left: 0; padding: 2rem 2.5rem;
}
.prod-tab-img-text h3 { font-size: clamp(1.4rem,2.5vw,2rem); font-weight: 800; color: #fff; letter-spacing: -.025em; margin-bottom: .4rem; }
.prod-tab-img-text p { font-size: .9rem; color: rgba(255,255,255,.55); max-width: 500px; }


/* ══════════════════════════════════════════════
   MEGA PANEL, HOVER BACKGROUND PREVIEW
══════════════════════════════════════════════ */
.mega-panel { overflow: hidden; }
.mega-bg-layer {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  opacity: 0;
  transition: opacity .45s cubic-bezier(.4,0,.2,1), transform .8s cubic-bezier(.4,0,.2,1);
  transform: scale(1.04);
  z-index: 0;
  pointer-events: none;
  will-change: opacity, transform;
}
.mega-bg-layer.show {
  opacity: 1;
  transform: scale(1.0);
}
.mega-bg-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(100deg,
      rgba(255,255,255,0.985) 0%,
      rgba(255,255,255,0.94) 28%,
      rgba(255,255,255,0.82) 52%,
      rgba(255,255,255,0.62) 78%,
      rgba(255,255,255,0.42) 100%);
  opacity: 0;
  transition: opacity .45s cubic-bezier(.4,0,.2,1);
  z-index: 1;
  pointer-events: none;
}
.mega-bg-overlay.show { opacity: 1; }
.mega-inner { position: relative; z-index: 2; }

/* Right panel becomes a translucent glass tile when preview is active */
.mega-right {
  background: #f9fafb;
  transition: background .35s ease, backdrop-filter .35s ease;
  position: relative;
}
.mega-panel.has-preview .mega-right {
  background: rgba(249, 250, 251, 0.82);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}
.mega-panel.has-preview .mega-left { background: transparent; }

/* Hovered item highlight stays subtle but visible over image */
.mega-panel.has-preview .mega-item:hover,
.mega-panel.has-preview .mega-right-item:hover { background: rgba(255,255,255,0.85); }

/* Floating product badge in bottom-right of panel when previewing */
.mega-preview-tag {
  position: absolute;
  right: clamp(1.5rem, 5vw, 4rem);
  bottom: 1.4rem;
  z-index: 3;
  display: flex;
  align-items: center;
  gap: .55rem;
  padding: .42rem .85rem .42rem .55rem;
  background: rgba(0, 0, 0, 0.92);
  color: #fff;
  border-radius: 999px;
  font-size: .72rem;
  font-weight: 500;
  letter-spacing: .02em;
  opacity: 0;
  transform: translateY(6px);
  transition: opacity .35s ease, transform .35s ease;
  pointer-events: none;
  box-shadow: 0 8px 24px rgba(0,0,0,.18);
}
.mega-preview-tag.show {
  opacity: 1;
  transform: translateY(0);
}
.mega-preview-tag .mpt-dot {
  width: 6px; height: 6px; border-radius: 50%; background: var(--red);
  flex-shrink: 0;
}
.mega-preview-tag .mpt-cat {
  color: rgba(255,255,255,.6);
  font-size: .66rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  padding-right: .55rem;
  border-right: 1px solid rgba(255,255,255,.15);
}
.mega-preview-tag .mpt-name {
  color: #fff;
  font-weight: 600;
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
  .mega-bg-layer { transition: opacity .2s linear; transform: none; }
  .mega-bg-layer.show { transform: none; }
  .mega-bg-overlay { transition: opacity .2s linear; }
  .mega-preview-tag { transition: opacity .2s linear; transform: none; }
  .mega-preview-tag.show { transform: none; }
}


/* SVG ICON SYSTEM, replaces native emojis with currentColor line icons */
.ic-svg{display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em;line-height:1;vertical-align:middle;}
.ic-svg svg{width:100%;height:100%;display:block;}
.ph-panel-ic .ic-svg{width:16px;height:16px;color:var(--red);}
.cov-ic .ic-svg{width:22px;height:22px;color:var(--blue);}
.ben-ic .ic-svg{width:18px;height:18px;color:var(--blue);}
.rel-ic .ic-svg{width:22px;height:22px;color: var(--text-strong);}
.mpt-dot ~ .ic-svg{width:14px;height:14px;color:var(--gold,#C8972B);}
/* Per-container sizing for homepage SVG icons */
.pc-ic .ic-svg{width:22px;height:22px;color:var(--blue);}
.ind-ic .ic-svg{width:20px;height:20px;color:var(--blue);}
.ci-icon .ic-svg{width:18px;height:18px;color:var(--blue);}
.crm-feat-ic .ic-svg{width:16px;height:16px;color:var(--red);}


/* ══════════════════════════════════════════════
   MEGA DROPDOWN, PREVIEW TILE (v3 dedicated column)
══════════════════════════════════════════════ */
.mega-right { position: relative; padding: 2.2rem 1.8rem; }

/* Dedicated preview column (sibling of mega-right) */
.mega-preview-col {
  position: relative;
  background: var(--shade);
  overflow: hidden;
  min-height: 380px;
  display: flex; flex-direction: column;
}

/* Preview tile, now always-visible inside its dedicated column */
.mega-right-preview {
  position: relative; inset: auto;
  display: flex; flex-direction: column; justify-content: flex-end;
  background: var(--shade);
  width: 100%; height: 100%;
  min-height: 380px;
  overflow: hidden;
  opacity: 1; visibility: visible; pointer-events: all;
}
.mrp-image {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  background-repeat: no-repeat;
  transform: scale(1.02);
  opacity: .55;
  transition: transform .6s cubic-bezier(.2,0,.2,1), background-image .35s ease, opacity .3s ease;
  will-change: transform, opacity;
}
.mega-panel.has-preview .mrp-image { transform: scale(1.0); opacity: .9; }
.mrp-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to bottom,
    rgba(0,0,0,0.05) 0%,
    rgba(0,0,0,0.40) 35%,
    rgba(0,0,0,0.85) 75%,
    rgba(0,0,0,0.95) 100%);
}
.mrp-content {
  position: relative; z-index: 1;
  padding: 1.6rem 1.8rem;
  color: #fff;
  opacity: 1;
  transform: none;
  transition: opacity .25s ease;
}
.mrp-content > * { transition: opacity .2s ease; }
.mrp-cat {
  display: inline-flex; align-items: center; gap: .5rem;
  font-size: .64rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase;
  color: rgba(255,255,255,.65);
  margin-bottom: .65rem;
}
.mrp-cat::before {
  content: ""; width: 18px; height: 1px; background: var(--red);
}
.mrp-name {
  font-size: 1.25rem; font-weight: 700; line-height: 1.2;
  letter-spacing: -.015em; margin-bottom: .55rem; color: #fff;
}
.mrp-desc {
  font-size: .82rem; color: rgba(255,255,255,.78);
  line-height: 1.6; margin-bottom: 1.1rem;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden;
}
.mrp-link {
  display: inline-flex; align-items: center; gap: .4rem;
  font-size: .8rem; font-weight: 600; color: #fff;
  padding: .55rem 1.1rem; border: 1px solid rgba(255,255,255,.35);
  border-radius: 2px;
  background: rgba(255,255,255,.04);
  backdrop-filter: blur(4px);
  transition: background .2s ease, border-color .2s ease, color .2s ease;
}
.mrp-link:hover {
  background: var(--red); border-color: var(--red); color: #fff;
}
.mrp-link svg {
  width: 12px; height: 12px; transition: transform .2s ease;
}
.mrp-link:hover svg { transform: translateX(2px); }

/* The whole-panel bg layer is now obsolete, soften it to a tiny accent */
.mega-bg-layer { opacity: 0 !important; }
.mega-bg-overlay { opacity: 0 !important; }
.mega-preview-tag { display: none; }

@media (prefers-reduced-motion: reduce) {
  .mega-right-default, .mega-right-preview, .mrp-image, .mrp-content {
    transition-duration: .15s;
  }
  .mrp-image { transform: none !important; }
}

/* Make the product card whole feel clickable */
.pc { cursor: pointer; }
.pc:hover .pc-lnk { color: var(--red); }
.pc:hover .pc-arr { color: var(--red); transform: translate(2px,-2px); }
.pc-arr { transition: color var(--dur-micro) var(--ease), transform .2s ease; }


    *,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
    html{scroll-behavior:smooth;}
    body{font-family:"Inter",sans-serif;background:var(--white);color:var(--ink);-webkit-font-smoothing:antialiased;overflow-x:hidden;}
    a{text-decoration:none;color:inherit;}
    ul{list-style:none;}
    img{display:block;max-width:100%;}
    .topbar{background:var(--shade);height:36px;display:flex;align-items:center;justify-content:flex-end;padding:0 clamp(1.5rem,5vw,4rem);gap:0;}
    .topbar a{font-size:.72rem;color:rgba(255,255,255,.5);padding:0 1rem;border-right:1px solid rgba(255,255,255,.12);transition:color .2s;white-space:nowrap;}
    .topbar a:first-child{border-left:1px solid rgba(255,255,255,.12);}
    .topbar a:hover{color:rgba(255,255,255,.9);}
    .navbar{position:sticky;top:0;z-index: var(--z-sticky);background: var(--white);border-bottom:1px solid var(--border);height:70px;display:flex;align-items:center;padding:0 clamp(1.5rem,5vw,4rem);transition:box-shadow .3s;}
    .navbar.scrolled{box-shadow:0 1px 12px rgba(0,0,0,.08);}
    .navbar-inner{width:100%;max-width:var(--max);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:2rem;}
    .nb-logo{flex-shrink:0;}
    .nb-logo-text{font-size:1.1rem;font-weight:800;color: var(--text-strong);letter-spacing:-.02em;line-height:1;}
    .nb-logo-sub{font-size:.55rem;font-weight:500;color:var(--muted);letter-spacing:.04em;text-transform:uppercase;display:block;margin-top:1px;}
    .nb-links{display:flex;align-items:stretch;gap:0;}
    .nb-links li{display:flex;align-items:stretch;}
    .nb-links li a{display:flex;align-items:center;padding:0 1.1rem;height:70px;font-size:.82rem;color: var(--body);border-bottom:2px solid transparent;transition:color .15s,border-color .15s;white-space:nowrap;}
    .nb-links li a:hover,.nb-links li a.active{color: var(--ink);border-bottom-color:var(--red);}
    .nb-right{display:flex;align-items:center;gap:.75rem;flex-shrink:0;}
    .nb-quote{background:var(--shade);color:#fff;font-size:.79rem;font-weight:500;padding:.55rem 1.3rem;border-radius:2px;transition:background .15s;white-space:nowrap;}
    .nb-quote:hover{background:#1c1c1e;}
    .prod-hero{background:var(--shade);min-height:68vh;display:flex;flex-direction:column;position:relative;overflow:hidden;}
    .ph-bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.14;pointer-events:none;}
    .ph-grad{position:absolute;inset:0;background:linear-gradient(135deg,rgba(0,0,0,.95) 0%,rgba(0,0,0,.7) 60%,rgba(41,151,255,.3) 100%);pointer-events:none;}
    .ph-body{flex:1;display:flex;align-items:center;padding:5rem clamp(1.5rem,5vw,4rem) 4rem;}
    .ph-inner{max-width:var(--max);margin:0 auto;width:100%;position:relative;z-index:1;display:grid;grid-template-columns:1fr 340px;gap:4rem;align-items:center;}
    @media(max-width:900px){.ph-inner{grid-template-columns:1fr;}}
    .ph-breadcrumb{display:flex;align-items:center;gap:.5rem;font-size:.72rem;color:rgba(255,255,255,.38);margin-bottom:1.2rem;flex-wrap:wrap;}
    .ph-breadcrumb a{color:rgba(255,255,255,.38);transition:color .2s;}
    .ph-breadcrumb a:hover{color:rgba(255,255,255,.7);}
    .ph-breadcrumb .sep{color:rgba(255,255,255,.2);}
    .ph-category{display:inline-flex;align-items:center;gap:.55rem;font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.42);margin-bottom:1rem;}
    .ph-dot{width:6px;height:6px;border-radius:50%;background:var(--red);flex-shrink:0;}
    .prod-hero h1,.prod-hero h2[data-route-h1]{font-size:clamp(2rem,4vw,3.2rem);font-weight:800;line-height:1.1;letter-spacing:-.03em;color: #fff;margin-bottom:1.2rem;}
    .prod-hero h1 em,.prod-hero h2[data-route-h1] em{color:var(--red);font-style:normal;}
    .ph-desc{font-size:.97rem;color:rgba(255,255,255,.58);line-height:1.85;max-width:540px;margin-bottom:2rem;}
    .ph-actions{display:flex;gap:.85rem;flex-wrap:wrap;}
    .btn-red{background:var(--red);color:#fff;font-size:.84rem;font-weight:600;padding:.9rem 2rem;border-radius:2px;display:inline-block;transition:background .2s;white-space:nowrap;}
    .btn-red:hover{background:var(--red-h);}
    .btn-ghost-w{color:#fff;font-size:.84rem;font-weight:600;padding:.9rem 2rem;border-radius:2px;border:1.5px solid rgba(255,255,255,.25);display:inline-block;transition:border-color .2s,background .2s;white-space:nowrap;}
    .btn-ghost-w:hover{border-color:rgba(255,255,255,.6);background:rgba(255,255,255,.05);}
    .ph-panel{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:3px;overflow:hidden;}
    .ph-panel-head{padding:1.2rem 1.4rem;border-bottom:1px solid rgba(255,255,255,.07);font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.32);}
    .ph-panel-items{display:flex;flex-direction:column;}
    .ph-panel-item{padding:1rem 1.4rem;border-bottom:1px solid rgba(255,255,255,.05);display:flex;align-items:flex-start;gap:.75rem;}
    .ph-panel-item:last-child{border-bottom:none;}
    .ph-panel-ic{width:28px;height:28px;background:rgba(200,32,42,.15);border-radius:2px;display:flex;align-items:center;justify-content:center;font-size:.8rem;flex-shrink:0;margin-top:.1rem;}
    .ph-panel-item h5{font-size:.82rem;font-weight:600;color:rgba(255,255,255,.75);margin-bottom:.15rem;}
    .ph-panel-item p{font-size:.72rem;color:rgba(255,255,255,.36);line-height:1.5;}
    .ph-strip{background:rgba(255,255,255,.03);border-top:1px solid rgba(255,255,255,.07);padding:1.4rem clamp(1.5rem,5vw,4rem);}
    .ph-strip-inner{max-width:var(--max);margin:0 auto;display:flex;gap:0;align-items:stretch;flex-wrap:wrap;border:1px solid rgba(255,255,255,.07);border-radius:2px;overflow:hidden;}
    .ph-stat{flex:1;min-width:140px;padding:1.2rem 1.5rem;border-right:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.02);}
    .ph-stat:last-child{border-right:none;}
    .ph-stat-n{font-size:1.5rem;font-weight:800;color:#fff;letter-spacing:-.025em;display:block;margin-bottom:.2rem;}
    .ph-stat-n em{color:var(--red);font-style:normal;}
    .ph-stat-l{font-size:.62rem;color:rgba(255,255,255,.35);text-transform:uppercase;letter-spacing:.07em;}
    .sec{padding:clamp(3.5rem,7vw,5.5rem) clamp(1.5rem,5vw,4rem);}
    .sec-inner{max-width:var(--max);margin:0 auto;}
    .sec-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--red);margin-bottom:.6rem;display:flex;align-items:center;gap:.55rem;}
    .sec-label::before{content:"";width:18px;height:2px;background:var(--red);flex-shrink:0;}
    .sec-h2{font-size:clamp(1.7rem,2.8vw,2.4rem);font-weight:800;line-height:1.15;letter-spacing:-.025em;color:var(--ink);margin-bottom:.9rem;}
    .sec-lead{font-size:.97rem;color:var(--muted);line-height:1.8;max-width:560px;}
    .cov-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border2);border:1px solid var(--border2);margin-top:3rem;}
    @media(max-width:820px){.cov-grid{grid-template-columns:1fr 1fr;}}
    @media(max-width:480px){.cov-grid{grid-template-columns:1fr;}}
    .cov-item{background:var(--white);padding:1.8rem 1.6rem;display:flex;flex-direction:column;gap:.6rem;transition:background .2s;}
    .cov-item:hover{background:var(--blue-l);}
    .cov-ic{width:44px;height:44px;background:var(--blue-l);border-radius:3px;display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0;transition:background .2s;}
    .cov-item:hover .cov-ic{background:rgba(41,151,255,.18);}
    .cov-title{font-size:.95rem;font-weight:700;color:var(--ink);letter-spacing:-.01em;line-height:1.3;}
    .cov-desc{font-size:.82rem;color:var(--muted);line-height:1.65;}
    .img-split{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center;}
    @media(max-width:820px){.img-split{grid-template-columns:1fr;gap:3rem;}}
    .img-block{position:relative;border-radius:3px;overflow:hidden;background:var(--shade);}
    .img-block img{width:100%;height:380px;object-fit:cover;display:block;}
    .img-badge{position:absolute;bottom:1.2rem;left:1.2rem;background:var(--shade);color:#fff;font-size:.68rem;font-weight:700;padding:.4rem .9rem;border-radius:2px;text-transform:uppercase;letter-spacing:.08em;}
    .split-points{display:flex;flex-direction:column;gap:1.1rem;margin-top:1.6rem;}
    .split-point{display:flex;align-items:flex-start;gap:.75rem;font-size:.88rem;color:var(--body);line-height:1.7;}
    .split-point::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--red);flex-shrink:0;margin-top:.55rem;}
    .who-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border2);border:1px solid var(--border2);margin-top:2.5rem;}
    @media(max-width:700px){.who-grid{grid-template-columns:1fr 1fr;}}
    .who-card{background:var(--white);padding:1.8rem 1.5rem;display:flex;flex-direction:column;gap:.5rem;transition:background .2s;}
    .who-card:hover{background:var(--blue-l);}
    .who-num{font-size:.63rem;font-weight:700;letter-spacing:.1em;color:var(--muted);text-transform:uppercase;background:var(--off);padding:.2rem .55rem;border-radius:2px;align-self:flex-start;margin-bottom:.2rem;}
    .who-title{font-size:.95rem;font-weight:700;color:var(--ink);letter-spacing:-.01em;}
    .who-desc{font-size:.82rem;color:var(--muted);line-height:1.65;}
    .hiw-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:3rem;margin-top:3rem;}
    @media(max-width:700px){.hiw-steps{grid-template-columns:1fr;gap:2rem;}}
    .hiw-step{position:relative;}
    .hiw-num{width:48px;height:48px;background:var(--shade);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:800;margin-bottom:1.2rem;letter-spacing:-.01em;}
    .hiw-title{font-size:.98rem;font-weight:700;color:var(--ink);margin-bottom:.4rem;letter-spacing:-.01em;}
    .hiw-desc{font-size:.84rem;color:var(--muted);line-height:1.7;}
    .ben-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border2);border:1px solid var(--border2);margin-top:2.5rem;}
    @media(max-width:600px){.ben-grid{grid-template-columns:1fr;}}
    .ben-card{background:var(--white);padding:1.6rem 1.5rem;display:flex;gap:.9rem;align-items:flex-start;transition:background .2s;}
    .ben-card:hover{background:var(--blue-l);}
    .ben-ic{width:36px;height:36px;background:var(--blue-l);border-radius:3px;display:flex;align-items:center;justify-content:center;font-size:.95rem;flex-shrink:0;transition:background .2s;}
    .ben-card:hover .ben-ic{background:rgba(41,151,255,.18);}
    .ben-title{font-size:.92rem;font-weight:700;color:var(--ink);margin-bottom:.25rem;}
    .ben-desc{font-size:.8rem;color:var(--muted);line-height:1.6;}
    .faq-list{margin-top:2.5rem;border-top:1px solid var(--border);}
    .faq-item{border-bottom:1px solid var(--border);}
    .faq-q{width:100%;display:flex;justify-content:space-between;align-items:center;padding:1.2rem 0;font-size:.95rem;font-weight:600;color:var(--ink);cursor:pointer;background:none;border:none;text-align:left;font-family:"Inter",sans-serif;gap:1rem;transition:color .15s;}
    .faq-q:hover{color: var(--text-strong);}
    .faq-icon{width:24px;height:24px;background:var(--blue-l);border-radius:2px;display:flex;align-items:center;justify-content:center;font-size:.9rem;color: var(--text-strong);flex-shrink:0;transition:background .2s,transform .3s;}
    .faq-item.open .faq-icon{background:var(--shade);color:#fff;transform:rotate(45deg);}
    .faq-a{display:none;padding:0 0 1.2rem;font-size:.88rem;color:var(--muted);line-height:1.78;max-width:720px;}
    .faq-item.open .faq-a{display:block;}
    .dark-cta{background:var(--blue);padding:4rem clamp(1.5rem,5vw,4rem);}
    .dark-cta-inner{max-width:var(--max);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap;}
    .dark-cta h3{font-size:1.55rem;font-weight:800;color:#fff;letter-spacing:-.02em;line-height:1.25;}
    .dark-cta p{font-size:.9rem;color:rgba(255,255,255,.6);margin-top:.5rem;max-width:480px;}
    .btn-white{background: var(--white);color: var(--text-strong);font-size:.84rem;font-weight:700;padding:.9rem 2rem;border-radius:2px;display:inline-block;white-space:nowrap;transition:background .2s;}
    .btn-white:hover{background:var(--blue-l);}
    .footer{background:var(--shade);}
    .footer-main{max-width:var(--max);margin:0 auto;padding:3.5rem clamp(1.5rem,5vw,4rem) 2.5rem;display:grid;grid-template-columns:220px 1fr;gap:4rem;border-bottom:1px solid rgba(255,255,255,.07);}
    @media(max-width:860px){.footer-main{grid-template-columns:1fr;gap:2.5rem;}}
    .footer-brand p{font-size:.77rem;color:rgba(255,255,255,.35);line-height:1.7;max-width:200px;margin-top:.8rem;}
    .fb-name{font-size:1.1rem;font-weight:800;color:rgba(255,255,255,.8);letter-spacing:-.02em;}
    .fb-name span{color:var(--red);}
    .fb-tagline{font-size:.65rem;color:rgba(255,255,255,.3);text-transform:uppercase;letter-spacing:.08em;margin-top:.25rem;}
    /* Five tracks, not four: Business Insurance carries 16 links against 7, 7
       and 8 in the other columns, so as a single column it set the height of
       the entire footer and left three columns of white space beside it. It
       spans two tracks and splits its list 8 + 8, which halves the footer. */
    .footer-cols{display:grid;grid-template-columns:repeat(5,1fr);gap:2rem;}
    .fc-wide{grid-column:span 2;}
    /* grid-auto-flow:column with an explicit 8 rows fills the first column top
       to bottom, then the second, so the reading order down each column is
       preserved. `columns:2` would balance by height instead and split the
       list at an arbitrary point.
       Written as .fc.fc-wide, not .fc-wide: the generic `.fc ul` rule below is
       declared later in this sheet and carries the same specificity, so a
       single-class selector here would lose the cascade and silently fall back
       to the one-column flex list.
       column-gap is 1.25rem rather than the 2rem used between the outer
       columns: at 2rem each sub-column came out 148px and the longest label,
       "Workmen Compensation", needs 150px, so it alone wrapped and pushed its
       row taller in both sub-columns. 1.25rem gives 154px and clears it. */
    .fc.fc-wide ul{display:grid;grid-auto-flow:column;grid-template-rows:repeat(8,auto);
      grid-template-columns:1fr 1fr;column-gap:1.25rem;row-gap:.5rem;}
    /* Five tracks need room. The longest labels in the narrow columns
       ("Hospitals & Healthcare", "Professional Indemnity") measure 138px, so
       each track wants ~140px: 5x140 + 4x32 of gap = 828px of column area,
       which with the 220px brand block, its 64px gap and the page padding
       needs roughly a 1200px viewport.
       Below that the split is abandoned entirely and the footer reverts to
       exactly what it was before. Two other arrangements were measured and
       both were worse: five tracks at 1000px squeezed the narrow columns to
       98px and wrapped 26 of the 38 links, and falling back to two wide
       columns there made the footer 916px tall against the 436px it had been.
       Shortening the footer on the wide screens where it is actually read,
       and changing nothing anywhere else, beats both. */
    @media(max-width:1200px){
      .footer-cols{grid-template-columns:repeat(4,1fr);}
      .fc-wide{grid-column:span 1;}
      .fc.fc-wide ul{display:flex;flex-direction:column;gap:.5rem;}
    }
    @media(max-width:860px){.footer-cols{grid-template-columns:1fr 1fr;}}
    @media(max-width:440px){.footer-cols{grid-template-columns:1fr;}}
    .fc h6{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.38);margin-bottom:1rem;padding-bottom:.6rem;border-bottom:1px solid rgba(255,255,255,.07);}
    .fc ul{display:flex;flex-direction:column;gap:.5rem;}
    .fc ul li a{font-size:.8rem;color:rgba(255,255,255,.42);transition:color .2s;}
    .fc ul li a:hover{color:rgba(255,255,255,.85);}
    .footer-bottom{max-width:var(--max);margin:0 auto;padding:1.4rem clamp(1.5rem,5vw,4rem);display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;}
    .footer-bottom p{font-size:.7rem;color:rgba(255,255,255,.28);}
    .footer-btm-links{display:flex;gap:1.5rem;}
    .footer-btm-links a{font-size:.68rem;color:rgba(255,255,255,.28);text-transform:uppercase;letter-spacing:.07em;transition:color .2s;}
    .footer-btm-links a:hover{color:rgba(255,255,255,.7);}
    .footer-red{height:3px;background:var(--red);}
    .rel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border2);border:1px solid var(--border2);margin-top:2.5rem;}
    @media(max-width:680px){.rel-grid{grid-template-columns:1fr 1fr;}}
    .rel-card{background:var(--white);padding:1.6rem 1.4rem;display:flex;flex-direction:column;gap:.5rem;transition:background .2s;position:relative;}
    .rel-card:hover{background:var(--blue-l);}
    .rel-ic{font-size:1.2rem;margin-bottom:.4rem;}
    .rel-name{font-size:.9rem;font-weight:700;color:var(--ink);letter-spacing:-.01em;}
    .rel-desc{font-size:.78rem;color:var(--muted);line-height:1.55;flex:1;}
    .rel-lnk{font-size:.77rem;font-weight:600;color: var(--text-strong);display:inline-flex;align-items:center;gap:.3rem;margin-top:.5rem;transition:gap .2s,color .2s;}
    .rel-card:hover .rel-lnk{gap:.55rem;color:var(--blue);}
    .sec-alt{background:var(--off);}

/* SVG ICON SYSTEM, replaces native emojis with currentColor line icons */
.ic-svg{display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em;line-height:1;vertical-align:middle;}
.ic-svg svg{width:100%;height:100%;display:block;}
.ph-panel-ic .ic-svg{width:16px;height:16px;color:var(--red);}
.cov-ic .ic-svg{width:22px;height:22px;color:var(--blue);}
.ben-ic .ic-svg{width:18px;height:18px;color:var(--blue);}
.rel-ic .ic-svg{width:22px;height:22px;color: var(--text-strong);}
.mpt-dot ~ .ic-svg{width:14px;height:14px;color:var(--gold,#C8972B);}


/* INDUSTRIES, sector deep-dive page styling */
.ind-narrow { max-width: 820px; }
.ind-intro-p {
  font-size: 1.06rem; font-weight: 400; line-height: 1.85;
  color: var(--body); margin: 0;
}
.ind-risk-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  background: var(--border2);
  border: 1px solid var(--border2);
  margin-top: 2.5rem;
}
@media (max-width: 720px) { .ind-risk-grid { grid-template-columns: 1fr; } }
.ind-risk-card {
  background: var(--white);
  padding: 1.8rem 1.7rem 2rem;
  display: flex;
  flex-direction: column;
  gap: .55rem;
  transition: background .22s ease;
}
.ind-risk-card:hover { background: var(--blue-l); }
.ind-risk-num {
  font-size: .68rem; font-weight: 700; letter-spacing: .14em;
  color: var(--red); text-transform: uppercase;
  margin-bottom: .35rem;
}
.ind-risk-name {
  font-size: 1rem; font-weight: 700; line-height: 1.35;
  letter-spacing: -.01em;
  color: var(--ink);
}
.ind-risk-desc {
  font-size: .87rem; font-weight: 400;
  color: var(--muted); line-height: 1.7;
}

.ind-prod-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--border2);
  border: 1px solid var(--border2);
  margin-top: 2.5rem;
}
@media (max-width: 920px) { .ind-prod-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .ind-prod-grid { grid-template-columns: 1fr; } }
.ind-prod-card {
  background: var(--white);
  padding: 1.7rem 1.65rem 1.85rem;
  display: flex; flex-direction: column;
  gap: .55rem;
  text-align: left;
  transition: background .22s ease;
  position: relative;
  min-height: 220px;
}
.ind-prod-card:hover { background: var(--off); }
.ind-prod-num {
  font-size: .68rem; font-weight: 700; letter-spacing: .14em;
  color: var(--red); text-transform: uppercase;
  margin-bottom: .25rem;
}
.ind-prod-name {
  font-size: 1.02rem; font-weight: 700; line-height: 1.3;
  letter-spacing: -.01em;
  color: var(--ink);
  transition: color var(--dur-micro) var(--ease);
}
.ind-prod-card:hover .ind-prod-name { color: var(--text-strong); }
.ind-prod-desc {
  font-size: .85rem; color: var(--muted);
  line-height: 1.65; flex: 1;
  margin-bottom: .75rem;
}
.ind-prod-link {
  font-size: .76rem; font-weight: 600;
  letter-spacing: .03em;
  color: var(--text-strong);
  display: inline-flex; align-items: center; gap: .3rem;
  transition: color var(--dur-micro) var(--ease), gap .2s ease;
}
.ind-prod-card:hover .ind-prod-link {
  color: var(--red);
  gap: .55rem;
}



/* Industries dropdown items, clean wrapping in narrower 3-col grid */
.ind-grid-dd .ind-dd-item { min-height: 38px; line-height: 1.3; }
.ind-grid-dd .ind-dd-item .idd-name { display: block; }

/* INDUSTRIES MEGA DROPDOWN, hover preview tile */
.ind-panel-layout {
  display: grid;
  grid-template-columns: 1.7fr 1fr;
  gap: 0;
  min-height: 320px;
  align-items: stretch;
  margin-top: .25rem;
}
@media (max-width: 1000px) { .ind-panel-layout { grid-template-columns: 1fr; } }
.ind-panel-main { padding-right: 0; }
.ind-panel-preview {
  position: relative;
  background: var(--shade);
  overflow: hidden;
  min-height: 360px;
}
@media (max-width: 1000px) { .ind-panel-preview { display: none; } }
.iddp-image {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  background-repeat: no-repeat;
  opacity: .42;
  transform: scale(1.04);
  transition: opacity .35s ease, transform .8s cubic-bezier(.2,0,.2,1), background-image .35s ease;
  will-change: opacity, transform;
}
.ind-panel-preview.has-preview .iddp-image { opacity: .9; transform: scale(1.0); }
.iddp-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to bottom,
    rgba(0,0,0,.1) 0%,
    rgba(0,0,0,.55) 50%,
    rgba(0,0,0,.92) 100%);
}
.iddp-content {
  position: relative; z-index: 1;
  padding: 1.9rem 1.8rem;
  height: 100%;
  display: flex; flex-direction: column; justify-content: flex-end;
  color: #fff;
}
.iddp-cat {
  display: inline-flex; align-items: center; gap: .5rem;
  font-size: .62rem; font-weight: 600; letter-spacing: .15em;
  text-transform: uppercase;
  color: rgba(255,255,255,.65);
  margin-bottom: .75rem;
}
.iddp-cat::before {
  content: ""; width: 18px; height: 1px; background: var(--red);
}
.iddp-name {
  font-size: 1.15rem; font-weight: 700; line-height: 1.25;
  letter-spacing: -.015em; color: #fff;
  margin-bottom: .6rem;
}
.iddp-desc {
  font-size: .82rem; color: rgba(255,255,255,.78);
  line-height: 1.6; margin-bottom: 1.1rem;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical;
  overflow: hidden;
}
.iddp-link {
  display: inline-flex; align-items: center; gap: .4rem;
  font-size: .78rem; font-weight: 600; color: #fff;
  padding: .5rem 1rem;
  border: 1px solid rgba(255,255,255,.32);
  border-radius: 2px;
  background: rgba(255,255,255,.04);
  align-self: flex-start;
  transition: background .2s, border-color .2s, color .2s;
}
.iddp-link svg { width: 12px; height: 12px; transition: transform .2s; }
.iddp-link:hover { background: var(--red); border-color: var(--red); }
.iddp-link:hover svg { transform: translateX(2px); }


/* RISKS MEGA DROPDOWN */
.risk-dd-panel { background: var(--white); }
.risk-dd-inner { max-width: var(--max); margin: 0 auto; padding: 1.6rem clamp(1.5rem,5vw,4rem) 2.2rem; }
.risk-dd-head { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: .7rem 0 1.4rem; border-bottom: 1px solid var(--border); margin-bottom: 1.4rem; flex-wrap: wrap; }
.risk-dd-title { display: block; font-size: .78rem; font-weight: 600; color: var(--ink); text-transform: uppercase; letter-spacing: .07em; margin-bottom: .25rem; }
.risk-dd-sub { font-size: .73rem; color: #9ca3af; max-width: 540px; display: block; line-height: 1.55; }
.risk-dd-cta { font-size: .78rem; font-weight: 500; color: var(--text-strong); white-space: nowrap; border-bottom: 1px solid var(--shade); padding-bottom: 1px; transition: color .15s, border-color .15s; }
.risk-dd-cta:hover { color: var(--red); border-color: var(--red); }
.risk-dd-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; }
@media (max-width: 900px) { .risk-dd-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .risk-dd-grid { grid-template-columns: 1fr; } }
.risk-dd-item { display: flex; flex-direction: column; gap: .35rem; padding: 1rem 1.1rem; border-radius: 2px; transition: background .15s ease; text-align: left; border: 1px solid transparent; }
.risk-dd-item:hover { background: var(--off); border-color: var(--border); }
.rdd-name { font-size: .94rem; font-weight: 700; color: var(--ink); letter-spacing: -.01em; line-height: 1.3; transition: color var(--dur-micro) var(--ease); }
.risk-dd-item:hover .rdd-name { color: var(--text-strong); }
.rdd-teaser { font-size: .78rem; font-weight: 400; color: var(--muted); line-height: 1.55; }

/* Product page visibility + back-to-home link */
.prod-page { display: block; }
.prod-page[hidden] { display: none; }
body.viewing-product #home-main { display: none !important; }

/* Legal & compliance pages (Privacy, Disclaimer, IRDAI registration) */
.legal-wrap { max-width: 880px; margin: 0 auto; }
.prod-hero.is-legal { min-height: auto; }
.legal-draft-note { display: flex; gap: .75rem; align-items: flex-start; background: #FFF7E8; border: 1px solid #EBC97A; border-left: 4px solid #D38A12; color: #6A4B10; border-radius: 12px; padding: 1rem 1.15rem; margin: 0 0 2.4rem; font-size: .85rem; line-height: 1.6; }
.legal-draft-note strong { color: #875600; }
.legal-doc { color: var(--body); font-size: .98rem; line-height: 1.8; }
.legal-doc h2 { color: var(--text-strong); font-size: 1.16rem; font-weight: 700; margin: 2.2rem 0 .75rem; padding-top: 1.5rem; border-top: 1px solid var(--border); }
.legal-doc h2:first-of-type { padding-top: 0; border-top: 0; margin-top: 0; }
.legal-doc p { margin: 0 0 1rem; }
.legal-doc ul { margin: 0 0 1.1rem; padding-left: 1.25rem; }
.legal-doc li { margin: 0 0 .55rem; }
.legal-doc a { color: var(--blue); text-decoration: underline; }
.legal-ph { color: var(--red); font-weight: 600; }
.legal-grid { display: grid; grid-template-columns: max-content 1fr; gap: .55rem 1.6rem; margin: 0 0 1.2rem; }
.legal-grid dt { color: var(--ink); font-weight: 600; }
.legal-grid dd { margin: 0; }
.legal-meta { margin-top: 2.4rem; padding-top: 1.25rem; border-top: 1px solid var(--border); color: var(--muted); font-size: .84rem; }
@media (max-width: 560px) { .legal-grid { grid-template-columns: 1fr; gap: .15rem 0; } .legal-grid dd { margin-bottom: .7rem; } }

/* ABOUT US / OUR STORY page, name showpiece */
.au-accent { color: var(--red); font-style: normal; }
.au-etym { display: grid; grid-template-columns: 340px 1fr; gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
@media (max-width: 860px) { .au-etym { grid-template-columns: 1fr; gap: 2.6rem; } }
.au-glyph-card { position: relative; background: linear-gradient(150deg, var(--shade) 0%, var(--shade-2) 100%); border-radius: 3px; padding: 3.6rem 2rem 2.6rem; text-align: center; overflow: hidden; }
.au-glyph-card::before { content: ""; position: absolute; left: 0; top: 0; width: 44px; height: 3px; background: var(--red); }
.au-glyph-card::after { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 50% 22%, rgba(41,151,255,.42), transparent 68%); pointer-events: none; }
.au-deva { position: relative; z-index: 1; font-size: clamp(3.2rem, 8vw, 4.8rem); line-height: 1.04; color: #fff; font-weight: 600; }
.au-translit { position: relative; z-index: 1; margin-top: 1.15rem; font-size: 1rem; color: rgba(255,255,255,.6); letter-spacing: .02em; }
.au-translit strong { color: #fff; font-weight: 700; }
.au-deva-tag { position: relative; z-index: 1; margin-top: 1.4rem; display: inline-block; font-size: .6rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: rgba(255,255,255,.46); border: 1px solid rgba(255,255,255,.18); border-radius: 2px; padding: .45rem .85rem; }
.au-etym-body p { font-size: .98rem; color: var(--body); line-height: 1.85; margin: 0 0 1rem; }
.au-etym-body p:last-of-type { margin-bottom: 0; }
.au-etym-body p strong { color: var(--ink); font-weight: 700; }
.au-defs { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: 1.6rem; }
.au-def { display: inline-flex; align-items: baseline; gap: .45rem; background: var(--blue-l); border: 1px solid var(--border); border-radius: 3px; padding: .5rem .85rem; font-size: .82rem; }
.au-def b { color: var(--blue); font-weight: 700; font-size: .98rem; }
.au-def span { color: var(--muted); }
.prod-back {
  display: inline-flex; align-items: center; gap: .45rem;
  font-size: .72rem; font-weight: 600;
  letter-spacing: .12em; text-transform: uppercase;
  color: rgba(255,255,255,.55);
  padding: .4rem 0;
  margin-bottom: 1rem;
  transition: color var(--dur-micro) var(--ease);
}
.prod-back:hover { color: var(--red); }
.prod-back-arrow { display: inline-block; transition: transform .2s ease; }
.prod-back:hover .prod-back-arrow { transform: translateX(-3px); }


.hero-quiz-link {
  display: inline-block; margin-top: 1rem;
  font-size: .82rem; font-weight: 500;
  color: rgba(255,255,255,.65);
  padding-bottom: 1px; border-bottom: 1px solid rgba(255,255,255,.18);
  transition: color .15s, border-color .15s;
  flex-basis: 100%;
}
.hero-quiz-link:hover { color: var(--red); border-color: var(--red); }

/* COVER FINDER QUIZ, modal overlay */
.quiz-overlay {
  position: fixed; inset: 0;
  background: rgba(0, 0, 0, 0.78);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  z-index: var(--z-modal);
  display: none; align-items: center; justify-content: center;
  padding: 1.5rem;
}
.quiz-overlay.is-open { display: flex; animation: quiz-in .25s ease-out; }
@keyframes quiz-in { from { opacity: 0; } to { opacity: 1; } }
.quiz-modal {
  position: relative;
  background: var(--white);
  width: 100%; max-width: 720px;
  max-height: 92vh;
  overflow-y: auto;
  border-radius: 3px;
  box-shadow: 0 30px 80px rgba(0,0,0,.4);
  padding: 2.5rem 2.5rem 2rem;
  animation: quiz-pop .35s cubic-bezier(.2,.8,.2,1) backwards;
}
@keyframes quiz-pop { from { transform: translateY(20px) scale(.98); opacity: 0; } to { transform: none; opacity: 1; } }
@media (max-width: 640px) { .quiz-modal { padding: 1.8rem 1.4rem 1.6rem; } }

.quiz-close {
  position: absolute; top: 1rem; right: 1.1rem;
  background: none; border: none; cursor: pointer;
  font-size: 1.1rem; color: var(--muted);
  width: 32px; height: 32px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 50%; transition: background .15s, color .15s;
}
.quiz-close:hover { background: var(--off); color: var(--red); }

.quiz-header { margin-bottom: 1.8rem; }
.quiz-eyebrow {
  display: flex; align-items: center; gap: .55rem;
  font-size: .68rem; font-weight: 600; letter-spacing: .22em;
  text-transform: uppercase; color: var(--muted); margin-bottom: .9rem;
}
.quiz-rule { width: 24px; height: 1.5px; background: var(--red); display: inline-block; }
.quiz-h2 {
  font-size: clamp(1.25rem, 2.4vw, 1.6rem); font-weight: 700;
  line-height: 1.25; letter-spacing: -.02em;
  color: var(--ink); margin: 0 0 1.2rem;
}
.quiz-progress {
  height: 3px; background: var(--border); border-radius: 2px; overflow: hidden;
  margin-bottom: .6rem;
}
.quiz-progress-bar {
  height: 100%; background: var(--red); width: 20%;
  transition: width .35s cubic-bezier(.2,.8,.2,1);
}
.quiz-step-marker { font-size: .68rem; color: var(--muted); letter-spacing: .1em; text-transform: uppercase; }

.quiz-body { position: relative; }
.quiz-step { display: none; }
.quiz-step.is-active { display: block; animation: quiz-step-in .3s ease-out; }
@keyframes quiz-step-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.quiz-q {
  font-size: 1.1rem; font-weight: 700; line-height: 1.35;
  letter-spacing: -.01em; color: var(--ink); margin: 0 0 .35rem;
}
.quiz-q-sub { font-size: .82rem; font-weight: 400; color: var(--muted); margin: 0 0 1.2rem; }
.quiz-options { display: flex; flex-direction: column; gap: .75rem; margin-top: 1.2rem; }
.quiz-options-compact { gap: .55rem; }
.quiz-options-multi { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; }
@media (max-width: 540px) { .quiz-options-multi { grid-template-columns: 1fr; } }
.quiz-opt {
  display: flex; flex-direction: column; gap: .25rem;
  padding: .9rem 1.1rem; text-align: left;
  background: var(--white); border: 1px solid var(--border);
  border-radius: 3px; cursor: pointer;
  transition: border-color .15s, background .15s, transform .1s;
  font-family: inherit; color: inherit;
}
.quiz-opt:hover { border-color: var(--text-strong); background: var(--off); }
.quiz-opt.is-selected { border-color: var(--red); background: rgba(200,32,42,.04); }
.quiz-opt:active { transform: scale(.99); }
.quiz-opt-label { font-size: .92rem; font-weight: 700; color: var(--ink); letter-spacing: -.01em; }
.quiz-opt-desc { font-size: .78rem; color: var(--muted); line-height: 1.5; }

.quiz-step-actions { margin-top: 1.6rem; display: flex; justify-content: flex-end; }
.quiz-next, .quiz-restart {
  font-family: inherit; font-size: .85rem; font-weight: 600;
  padding: .75rem 1.6rem; border-radius: 2px; cursor: pointer;
  transition: background .15s ease, color .15s ease, transform .1s;
}
.quiz-next {
  background: var(--red); color: #fff; border: none;
}
.quiz-next:hover:not(:disabled) { background: var(--red-h); }
.quiz-next:disabled { opacity: .35; cursor: not-allowed; }
.quiz-restart { background: none; border: 1px solid var(--border); color: var(--muted); }
.quiz-restart:hover { color: var(--ink); border-color: var(--ink); }

.quiz-note {
  width: 100%; padding: .9rem 1rem;
  border: 1px solid var(--border); border-radius: 3px;
  font-family: inherit; font-size: .9rem; line-height: 1.55;
  color: var(--ink); background: var(--white);
  resize: vertical; min-height: 100px;
  margin-top: 1rem;
}
.quiz-note:focus { border-color: var(--text-strong); outline: none; }

.quiz-result-head { margin-bottom: 1.6rem; }
.quiz-result-h3 {
  font-size: 1.2rem; font-weight: 700; line-height: 1.3;
  letter-spacing: -.01em; color: var(--ink); margin: 0 0 .55rem;
}
.quiz-result-lead { font-size: .86rem; color: var(--muted); line-height: 1.7; margin: 0; }
.quiz-recs { display: flex; flex-direction: column; gap: .5rem; margin: 1.4rem 0 1.8rem; }
.quiz-rec-group-label { font-size: .66rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); margin: 0; }
.quiz-rec-group-label:not(:first-child) { margin-top: .7rem; }
.quiz-rec {
  display: flex; align-items: flex-start; gap: 1rem;
  padding: 1rem 1.15rem;
  background: var(--off); border-radius: 3px;
  text-decoration: none;
  transition: background .15s, transform .12s;
}
.quiz-rec:hover { background: var(--blue-l); transform: translateX(2px); }
.quiz-rec-num {
  flex-shrink: 0; font-size: .68rem; font-weight: 700;
  letter-spacing: .12em; color: var(--red);
  text-transform: uppercase; min-width: 24px;
}
.quiz-rec-body { flex: 1; }
.quiz-rec-name {
  font-size: .95rem; font-weight: 700; color: var(--ink);
  letter-spacing: -.01em; margin-bottom: .2rem;
}
.quiz-rec-why { font-size: .8rem; color: var(--muted); line-height: 1.55; }
.quiz-rec-arrow { color: var(--muted); transition: transform .15s, color .15s; flex-shrink: 0; align-self: center; }
.quiz-rec:hover .quiz-rec-arrow { color: var(--red); transform: translateX(2px); }

.quiz-result-actions {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; flex-wrap: wrap;
  padding-top: 1.4rem; border-top: 1px solid var(--border);
}


/* Contact routing band */
.cf-routes {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: .55rem;
  margin-bottom: 1.4rem;
}
@media (max-width: 640px) { .cf-routes { grid-template-columns: 1fr; } }
.cf-route {
  display: flex; flex-direction: column; gap: .25rem;
  padding: .9rem 1rem; text-align: left;
  background: var(--white); border: 1px solid var(--border);
  border-radius: 3px; cursor: pointer;
  transition: border-color .15s, background .15s;
  font-family: inherit; color: inherit;
}
.cf-route:hover { border-color: var(--text-strong); background: var(--off); }
.cf-route.is-active {
  border-color: var(--red); background: rgba(200,32,42,.04);
  box-shadow: 0 0 0 1px var(--red);
}
.cf-route-label { font-size: .88rem; font-weight: 700; color: var(--ink); letter-spacing: -.01em; }
.cf-route-desc { font-size: .76rem; color: var(--muted); line-height: 1.5; }

.cf-context {
  background: var(--off); border-left: 3px solid var(--red);
  padding: .85rem 1rem;
  font-size: .82rem; color: var(--body); line-height: 1.6;
  margin-bottom: 1.5rem;
  border-radius: 0 2px 2px 0;
}
.cf-context-msg { margin: 0; }
.cf-context-msg[hidden] { display: none; }

/* Renewal-date widget on the CRM section */
.crm-renewal-widget {
  margin-top: 2rem;
  padding: 1.4rem 1.5rem;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 3px;
}
.crm-renewal-eyebrow {
  font-size: .68rem; font-weight: 600; letter-spacing: .14em;
  text-transform: uppercase; color: rgba(255,255,255,.5);
  margin-bottom: .55rem;
}
.crm-renewal-title {
  font-size: 1rem; font-weight: 700; color: #fff; line-height: 1.3;
  margin-bottom: .9rem;
}
.crm-renewal-form {
  display: flex; gap: .55rem; flex-wrap: wrap; align-items: stretch;
}
.crm-renewal-form input[type="date"] {
  flex: 1; min-width: 180px;
  padding: .7rem .9rem; border-radius: 2px;
  border: 1px solid rgba(255,255,255,.15);
  background: rgba(255,255,255,.04); color: #fff;
  font-family: inherit; font-size: .85rem;
  color-scheme: dark;
}
.crm-renewal-form input[type="date"]:focus {
  border-color: var(--red); outline: none;
}
.crm-renewal-form button {
  background: var(--red); color: #fff;
  font-size: .82rem; font-weight: 600;
  padding: .7rem 1.4rem; border: none; border-radius: 2px;
  cursor: pointer; font-family: inherit;
  transition: background .15s ease;
}
.crm-renewal-form button:hover { background: var(--red-h); }
.crm-renewal-note {
  font-size: .72rem; color: rgba(255,255,255,.45);
  line-height: 1.6; margin-top: .7rem; margin-bottom: 0;
}

/* POLICY REVIEW, lead-gen section */
.prv-sec {
  background: var(--white);
  padding: 6rem clamp(1.5rem,5vw,4rem) 5.5rem;
  border-top: 1px solid var(--border);
}
.prv-inner { max-width: var(--max); margin: 0 auto; }
.prv-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4.5rem;
  align-items: start;
}
@media (max-width: 920px) { .prv-grid { grid-template-columns: 1fr; gap: 2.5rem; } }

.prv-left { padding-top: 1rem; }
.prv-rule { width: 36px; height: 2px; background: var(--red); margin-bottom: 1.4rem; }
.prv-label {
  display: block; font-size: .7rem; font-weight: 600;
  letter-spacing: .22em; text-transform: uppercase; color: var(--muted);
  margin-bottom: 1rem;
}
.prv-h2 {
  font-size: clamp(1.7rem, 3vw, 2.4rem); font-weight: 700;
  line-height: 1.2; letter-spacing: -.025em; color: var(--ink); margin: 0 0 1.2rem;
}
.prv-lead { font-size: 1rem; color: var(--body); line-height: 1.8; margin: 0 0 1.6rem; }
.prv-bullets { list-style: none; padding: 0; margin: 0 0 1.6rem; display: flex; flex-direction: column; gap: .6rem; }
.prv-bullets li {
  display: flex; align-items: flex-start; gap: .65rem;
  font-size: .9rem; color: var(--body); line-height: 1.55;
}
.prv-bullet {
  width: 5px; height: 5px; background: var(--red); border-radius: 50%;
  flex-shrink: 0; margin-top: .55rem;
}
.prv-trust {
  font-size: .82rem; color: var(--muted); line-height: 1.7; margin: 0;
  padding: .9rem 1rem;
  background: var(--off); border-left: 3px solid var(--red);
  border-radius: 0 2px 2px 0;
}

.prv-right {}
.prv-card {
  background: var(--white);
  border: 1px solid var(--border2);
  border-radius: 3px;
  padding: 2rem 2rem 1.8rem;
  box-shadow: 0 8px 32px rgba(0,0,0,.06);
  position: relative;
}
.prv-step { display: none; }
.prv-step.is-active { display: block; animation: prv-in .3s ease-out; }
@keyframes prv-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

.prv-step-head {
  display: flex; align-items: center; gap: .85rem; margin-bottom: 1.5rem;
}
.prv-step-num {
  font-size: .68rem; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; color: var(--red);
}
.prv-step-title {
  font-size: 1.05rem; font-weight: 700; letter-spacing: -.01em; color: var(--ink);
}

.prv-field { display: flex; flex-direction: column; gap: .35rem; margin-bottom: 1rem; }
.prv-field-label {
  font-size: .72rem; font-weight: 600; color: var(--muted);
  text-transform: uppercase; letter-spacing: .08em;
}
.prv-opt { font-weight: 400; letter-spacing: .04em; color: var(--muted); text-transform: none; }
.prv-row { display: grid; grid-template-columns: 1fr 1fr; gap: .85rem; }
@media (max-width: 540px) { .prv-row { grid-template-columns: 1fr; } }

.prv-input {
  font-family: inherit; font-size: .9rem;
  padding: .7rem .85rem; border: 1px solid var(--border);
  border-radius: 2px; background: var(--white); color: var(--ink);
  transition: border-color .15s;
}
.prv-input:focus { border-color: var(--text-strong); outline: none; }

.prv-upload {
  display: flex; align-items: center; gap: 1rem;
  padding: 1rem 1.1rem;
  border: 2px dashed var(--border2); border-radius: 3px;
  cursor: pointer; background: var(--off);
  transition: border-color .15s, background .15s;
}
.prv-upload:hover { border-color: var(--text-strong); background: var(--white); }
.prv-upload.is-loaded { border-color: var(--red); background: rgba(200,32,42,.04); }
.prv-upload-ic {
  width: 36px; height: 36px; flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--white); border: 1px solid var(--border); border-radius: 50%;
  color: var(--text-strong);
}
.prv-upload-ic svg { width: 18px; height: 18px; }
.prv-upload-text { display: flex; flex-direction: column; gap: 2px; }
.prv-upload-text strong { font-size: .88rem; font-weight: 700; color: var(--ink); letter-spacing: -.01em; }
.prv-upload-text span { font-size: .76rem; color: var(--muted); }

.prv-submit {
  width: 100%; margin-top: .8rem;
  background: var(--red); color: #fff;
  font-family: inherit; font-size: .92rem; font-weight: 600;
  padding: .9rem 1.4rem; border: none; border-radius: 2px;
  cursor: pointer;
  transition: background .15s;
}
.prv-submit:hover { background: var(--red-h); }
.prv-submit:disabled { opacity: .4; cursor: not-allowed; }

.prv-fineprint {
  font-size: .72rem; color: var(--muted);
  line-height: 1.6; margin: .9rem 0 0;
}

/* Step 2, thanks + sample */
.prv-thanks-icon {
  width: 56px; height: 56px;
  display: inline-flex; align-items: center; justify-content: center;
  background: rgba(34, 197, 94, .12); color: rgb(34, 150, 80);
  border-radius: 50%; margin-bottom: 1.2rem;
}
.prv-thanks-icon svg { width: 28px; height: 28px; }
.prv-thanks-h3 {
  font-size: 1.35rem; font-weight: 700; letter-spacing: -.01em;
  color: var(--ink); margin: 0 0 .7rem;
}
.prv-thanks-p {
  font-size: .93rem; color: var(--body); line-height: 1.7; margin: 0 0 1.4rem;
}
.prv-thanks-p strong { color: var(--ink); font-weight: 600; }

.prv-sample {
  background: var(--off); border-radius: 3px;
  padding: 1.1rem 1.2rem;
  margin-bottom: 1.4rem;
}
.prv-sample-head {
  font-size: .68rem; font-weight: 700; letter-spacing: .12em;
  text-transform: uppercase; color: var(--muted);
  margin-bottom: .9rem;
}
.prv-sample-head span { color: var(--text-strong); }
.prv-sample-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: .65rem; }
.prv-sample-list li {
  display: flex; align-items: flex-start; gap: .65rem;
  font-size: .85rem; color: var(--body); line-height: 1.55;
}
.prv-sample-tag {
  flex-shrink: 0;
  font-size: .62rem; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase;
  padding: .25rem .55rem;
  border-radius: 2px;
  white-space: nowrap;
  min-width: 90px; text-align: center;
}
.prv-tag-red { color: var(--red); background: rgba(200,32,42,.08); border: 1px solid rgba(200,32,42,.2); }
.prv-tag-amber { color: rgb(180,110,20); background: rgba(255,180,40,.1); border: 1px solid rgba(255,180,40,.3); }
.prv-tag-green { color: rgb(30,130,60); background: rgba(34,197,94,.08); border: 1px solid rgba(34,197,94,.25); }

.prv-thanks-actions {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; flex-wrap: wrap;
  padding-top: 1.2rem; border-top: 1px solid var(--border);
}
.prv-restart {
  font-family: inherit; font-size: .8rem; font-weight: 500;
  padding: .55rem 1rem;
  background: none; border: 1px solid var(--border); color: var(--muted);
  border-radius: 2px; cursor: pointer;
  transition: color .15s, border-color .15s;
}
.prv-restart:hover { color: var(--ink); border-color: var(--ink); }
.prv-thanks-cta {
  font-size: .85rem; font-weight: 600; color: var(--text-strong);
  padding-bottom: 1px; border-bottom: 1px solid var(--shade);
  transition: color .15s, border-color .15s;
}
.prv-thanks-cta:hover { color: var(--red); border-color: var(--red); }

/* ANNUAL OUTLOOK REPORT */
.rep-sec {
  background: var(--off);
  padding: 6rem clamp(1.5rem,5vw,4rem) 5.5rem;
}
.rep-inner { max-width: var(--max); margin: 0 auto; }
.rep-grid {
  display: grid; grid-template-columns: 1fr 1.4fr;
  gap: 4.5rem; align-items: start;
}
@media (max-width: 920px) { .rep-grid { grid-template-columns: 1fr; gap: 3rem; } }

/* Cover, a stylised faux-magazine cover, all CSS/SVG */
.rep-cover-wrap {
  position: relative;
  display: flex; justify-content: center;
  padding-top: 1rem;
}
.rep-cover {
  position: relative;
  width: 320px;
  aspect-ratio: 3/4;
  background: var(--shade);
  background:
    linear-gradient(160deg, var(--shade-2) 0%, var(--shade) 50%, var(--shade-3) 100%);
  border-radius: 3px;
  overflow: hidden;
  padding: 1.8rem 1.7rem 1.6rem;
  display: flex; flex-direction: column;
  box-shadow:
    0 30px 70px rgba(0,0,0,.35),
    0 12px 25px rgba(0,0,0,.25);
  color: #fff;
  transform: rotate(-1.5deg);
  transition: transform .4s cubic-bezier(.2,.8,.2,1);
}
.rep-cover-wrap:hover .rep-cover { transform: rotate(0deg) translateY(-4px); }
.rep-cover::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: var(--red);
}
.rep-cover-strip {
  display: flex; justify-content: space-between; align-items: center;
  font-size: .58rem; font-weight: 600; letter-spacing: .18em;
  text-transform: uppercase; color: rgba(255,255,255,.45);
  margin-bottom: 1.8rem;
}
.rep-cover-mark {
  font-family: 'Inter', 'Inter-fallback', sans-serif; font-weight: 900;
  font-size: 3.4rem; line-height: 1; letter-spacing: -.06em;
  margin-bottom: 1.5rem;
}
.rep-cover-mark-r, .rep-cover-mark-f { color: #fff; }
.rep-cover-mark-s { color: var(--red); }
.rep-cover-title { flex: 1; }
.rep-cover-eyebrow {
  display: block; font-size: .68rem; font-weight: 600;
  letter-spacing: .18em; text-transform: uppercase;
  color: rgba(255,255,255,.55);
  margin-bottom: .9rem;
}
.rep-cover-h1 {
  display: block; font-size: 1.55rem; font-weight: 800;
  line-height: 1.18; letter-spacing: -.025em; color: #fff;
}
.rep-cover-foot {
  display: flex; align-items: center; gap: .85rem;
  padding-top: 1rem; border-top: 1px solid rgba(255,255,255,.12);
}
.rep-cover-foot-left { display: flex; flex-direction: column; gap: 2px; }
.rep-cover-foot-label {
  font-size: .56rem; font-weight: 500; letter-spacing: .12em;
  text-transform: uppercase; color: rgba(255,255,255,.45);
}
.rep-cover-foot-firm {
  font-size: .72rem; font-weight: 700; color: #fff; letter-spacing: -.005em;
}
.rep-cover-foot-line { flex: 1; height: 1px; background: rgba(255,255,255,.18); }
.rep-cover-shadow {
  position: absolute; bottom: -20px; left: 50%; transform: translateX(-50%);
  width: 75%; height: 30px;
  background: radial-gradient(ellipse at center, rgba(0,0,0,.18), transparent 70%);
  filter: blur(2px);
  z-index: -1;
}

/* Right column content */
.rep-content {}
.rep-rule { width: 36px; height: 2px; background: var(--red); margin-bottom: 1.4rem; }
.rep-label {
  display: block; font-size: .7rem; font-weight: 600;
  letter-spacing: .22em; text-transform: uppercase; color: var(--muted);
  margin-bottom: 1rem;
}
.rep-h2 {
  font-size: clamp(1.55rem, 2.7vw, 2.1rem); font-weight: 700;
  line-height: 1.2; letter-spacing: -.025em; color: var(--ink);
  margin: 0 0 1.1rem;
}
.rep-lead {
  font-size: 1rem; color: var(--body); line-height: 1.75;
  margin: 0 0 1.8rem;
}

.rep-toc {
  background: var(--white); border-radius: 3px;
  padding: 1.4rem 1.5rem; margin-bottom: 1.8rem;
  border: 1px solid var(--border);
}
.rep-toc-label {
  font-size: .66rem; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; color: var(--red);
  margin-bottom: 1rem;
}
.rep-toc-list { list-style: none; counter-reset: chapter; padding: 0; margin: 0; display: flex; flex-direction: column; gap: .7rem; }
.rep-toc-list li {
  display: grid; grid-template-columns: 40px 1fr; gap: .85rem;
  font-size: .87rem; color: var(--body); line-height: 1.55;
  padding-bottom: .65rem; border-bottom: 1px solid var(--border);
}
.rep-toc-list li:last-child { border-bottom: none; padding-bottom: 0; }
.rep-toc-pg {
  font-size: .7rem; font-weight: 700; letter-spacing: .08em;
  color: var(--red); padding-top: 1px;
}
.rep-toc-ch { color: var(--ink); font-weight: 500; }

.rep-form {
  background: var(--white); border: 1px solid var(--border);
  border-radius: 3px; padding: 1.6rem 1.6rem 1.4rem;
}
.rep-form-head { margin-bottom: 1.1rem; }
.rep-form-head strong {
  display: block; font-size: 1.02rem; font-weight: 700;
  color: var(--ink); letter-spacing: -.01em; margin-bottom: .25rem;
}
.rep-form-head span { display: block; font-size: .82rem; color: var(--muted); }
.rep-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; margin-bottom: .7rem; }
@media (max-width: 520px) { .rep-form-row { grid-template-columns: 1fr; } }
.rep-input {
  font-family: inherit; font-size: .88rem;
  padding: .65rem .8rem; border: 1px solid var(--border);
  border-radius: 2px; background: var(--white); color: var(--ink);
  transition: border-color .15s;
}
.rep-input:focus { border-color: var(--text-strong); outline: none; }
.rep-consent {
  display: flex; align-items: flex-start; gap: .55rem;
  font-size: .78rem; color: var(--muted); line-height: 1.55;
  margin: .9rem 0 1.1rem; cursor: pointer;
}
.rep-consent input { margin-top: 3px; cursor: pointer; }
.rep-submit {
  width: 100%; background: var(--red); color: #fff;
  font-family: inherit; font-size: .92rem; font-weight: 600;
  padding: .8rem 1.4rem; border: none; border-radius: 2px;
  cursor: pointer; transition: background .15s;
}
.rep-submit:hover { background: var(--red-h); }
.rep-fineprint {
  font-size: .72rem; color: var(--muted);
  line-height: 1.6; margin: .9rem 0 0;
}

/* Success state */
.rep-success {
  background: var(--white); border: 1px solid var(--border);
  border-radius: 3px; padding: 1.8rem;
  text-align: center;
}
.rep-success-icon {
  width: 56px; height: 56px;
  display: inline-flex; align-items: center; justify-content: center;
  background: rgba(34, 197, 94, .12); color: rgb(34, 150, 80);
  border-radius: 50%; margin-bottom: 1rem;
}
.rep-success-icon svg { width: 28px; height: 28px; }
.rep-success h3 {
  font-size: 1.25rem; font-weight: 700; color: var(--ink);
  letter-spacing: -.01em; margin: 0 0 .6rem;
}
.rep-success p {
  font-size: .9rem; color: var(--body); line-height: 1.7; margin: 0;
}
.rep-success p strong { color: var(--ink); font-weight: 700; }
.rep-success p a { color: var(--text-strong); border-bottom: 1px solid var(--shade); }

/* Newsletter band inside Insights */
.news-band {
  margin-top: 3rem; padding-top: 2.5rem;
  border-top: 1px solid var(--border);
}
.news-band-inner {
  display: grid; grid-template-columns: 1.5fr 1fr; gap: 2.5rem;
  align-items: center;
}
@media (max-width: 760px) { .news-band-inner { grid-template-columns: 1fr; gap: 1.5rem; } }
.news-band-eyebrow {
  font-size: .66rem; font-weight: 700; letter-spacing: .18em;
  text-transform: uppercase; color: var(--red); margin-bottom: .55rem;
}
.news-band-title {
  font-size: 1.2rem; font-weight: 700; color: var(--ink);
  letter-spacing: -.015em; margin-bottom: .55rem; line-height: 1.3;
}
.news-band-sub { font-size: .85rem; color: var(--muted); line-height: 1.65; }
.news-band-form { display: flex; gap: .55rem; }
.news-input {
  flex: 1; min-width: 0;
  padding: .75rem 1rem; border: 1px solid var(--border);
  border-radius: 2px; font-size: .88rem; font-family: inherit;
}
.news-input:focus { border-color: var(--text-strong); outline: none; }
.news-submit {
  background: var(--red); color: #fff; border: none;
  padding: .75rem 1.4rem; border-radius: 2px;
  font-size: .85rem; font-weight: 600; font-family: inherit;
  cursor: pointer; transition: background .15s;
  white-space: nowrap;
}
.news-submit:hover { background: var(--red-h); }
.news-band-thanks {
  font-size: .88rem; color: var(--ink);
  padding: 1rem 1.2rem; background: rgba(34,197,94,.08);
  border-radius: 2px; border-left: 3px solid rgb(34,150,80);
}

/* ===== WhatsApp conversational widget (bottom-left launcher + chat panel) ===== */
.wa-widget { position: fixed; left: 1.5rem; bottom: 1.5rem; z-index: var(--z-fab);
  display: flex; flex-direction: column; align-items: flex-start; gap: 14px;
  transition: bottom .25s var(--ease), opacity .25s var(--ease); }
.wa-fab { order: 2; position: relative; width: 56px; height: 56px; padding: 0;
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
  background: #a8e6c1; color: #0b5d3b; border: none; border-radius: 50%; cursor: pointer;
  box-shadow: 0 10px 26px rgba(0, 0, 0, .28), 0 0 0 1px rgba(0, 0, 0, .04); transition: transform .2s, box-shadow .2s; }
.wa-fab:hover { transform: translateY(-2px) scale(1.04); box-shadow: 0 14px 32px rgba(0, 0, 0, .36), 0 0 0 1px rgba(255, 255, 255, .07); }
.wa-fab-icon { width: 28px; height: 28px; transition: transform .25s var(--ease); }
.wa-widget.open .wa-fab-icon { transform: rotate(8deg) scale(.92); }
/* unread pulse dot on the launcher until first open */
.wa-fab::after { content: ""; position: absolute; top: 2px; right: 2px; width: 13px; height: 13px;
  background: var(--red); border: 2px solid var(--bg, #0a0a09); border-radius: 50%;
  transform: scale(0); transition: transform .3s var(--ease); }
.wa-widget.has-unread .wa-fab::after { transform: scale(1); }

/* greeting nudge bubble (to the right of the launcher) */
.wa-nudge { order: 3; position: absolute; left: 68px; bottom: 9px; white-space: nowrap;
  background: var(--v2-panel, #15151a); color: var(--ink, #f5f7fa);
  border: 1px solid var(--v2-hairline, rgba(255,255,255,.1)); border-radius: 12px 12px 12px 4px;
  padding: .6rem .8rem; font-size: .8rem; font-weight: 500; display: flex; align-items: center; gap: .6rem;
  box-shadow: 0 12px 34px rgba(0,0,0,.35); opacity: 0; transform: translateX(-8px) scale(.96);
  transition: opacity .3s var(--ease), transform .3s var(--ease); pointer-events: none; }
.wa-nudge.show { opacity: 1; transform: none; pointer-events: auto; }
.wa-nudge-x { background: none; border: none; color: var(--muted, #98989d); font-size: 1rem;
  line-height: 1; cursor: pointer; padding: 0 2px; }
.wa-nudge-x:hover { color: var(--ink); }

/* chat panel */
.wa-panel { order: 1; width: 330px; max-width: calc(100vw - 3rem);
  background: var(--v2-panel, #15151a); border: 1px solid var(--v2-hairline, rgba(255,255,255,.1));
  border-radius: 12px; overflow: hidden; box-shadow: 0 30px 70px rgba(0,0,0,.5);
  transform-origin: bottom left; opacity: 0; transform: translateY(12px) scale(.96);
  transition: opacity .28s var(--ease), transform .28s var(--ease); pointer-events: none; }
.wa-widget.open .wa-panel { opacity: 1; transform: none; pointer-events: auto; }
.wa-panel[hidden] { display: none; }
.wa-head { display: flex; align-items: center; gap: .7rem; padding: 1rem 1.1rem;
  background: linear-gradient(135deg, #c7f0d8, #a8e6c1); color: #0b5d3b; }
.wa-avatar { width: 40px; height: 40px; border-radius: 50%; flex-shrink: 0;
  background: rgba(11,74,55,.14); display: flex; align-items: center; justify-content: center;
  font: 700 .82rem Georgia, serif; letter-spacing: .02em; }
.wa-head-meta { flex: 1; line-height: 1.3; }
.wa-head-meta strong { display: block; font-size: .88rem; font-weight: 600; }
.wa-status { display: flex; align-items: center; gap: .35rem; font-size: .68rem; opacity: .9; }
.wa-status .wa-dot { width: 7px; height: 7px; border-radius: 50%; background: #0a8a55; box-shadow: 0 0 5px rgba(10,138,85,.5); }
.wa-status.away .wa-dot { background: #a6741a; box-shadow: 0 0 5px rgba(166,116,26,.5); }
.wa-close { background: none; border: none; color: rgba(11,74,55,.6); font-size: 1.3rem;
  line-height: 1; cursor: pointer; padding: 0 .2rem; }
.wa-close:hover { color: #0b5d3b; }
.wa-body { padding: 1.1rem 1.1rem .3rem;
  background:
    radial-gradient(circle at 100% 0, rgba(168, 230, 193,.12), transparent 60%),
    var(--v2-panel, #15151a); }
.wa-bubble { background: var(--off, rgba(255,255,255,.04)); border: 1px solid var(--v2-hairline, rgba(255,255,255,.08));
  border-radius: 4px 14px 14px 14px; padding: .7rem .85rem; font-size: .82rem; line-height: 1.6;
  color: var(--body, #c7c7cc); max-width: 92%; }
.wa-chips { display: flex; flex-wrap: wrap; gap: .45rem; margin: .9rem 0 1rem; }
.wa-chip { font: 600 .76rem Inter, sans-serif; padding: .5rem .8rem; border-radius: 999px;
  border: 1px solid var(--v2-hairline, rgba(255,255,255,.12)); background: transparent;
  color: var(--ink, #f5f7fa); cursor: pointer; transition: all .18s var(--ease); }
.wa-chip:hover { border-color: #6fcaa3; background: rgba(168, 230, 193,.18); }
.wa-go { display: flex; align-items: center; justify-content: center; gap: .5rem;
  margin: 0 1.1rem 1rem; padding: .8rem; background: #a8e6c1; color: #0b5d3b;
  border-radius: 12px; font: 700 .85rem Inter, sans-serif; text-decoration: none; transition: filter .2s; }
.wa-go:hover { filter: brightness(1.08); }
.wa-go svg { width: 18px; height: 18px; }
.wa-foot { padding: 0 1.1rem 1rem; font-size: .64rem; line-height: 1.5; color: var(--muted, #98989d); }

@media (prefers-reduced-motion: reduce) {
  .wa-panel, .wa-nudge, .wa-fab-icon { transition: opacity .2s ease; transform: none !important; }
}
@media (max-width: 640px) {
  .wa-widget { left: 1rem; bottom: 1rem; }
  .wa-fab { width: 50px; height: 50px; }
  .wa-panel { width: calc(100vw - 2rem); }
}

/* Cookie consent banner */
.cookie-banner {
  position: fixed; left: 1.5rem; right: 1.5rem; bottom: 1.5rem;
  background: var(--shade);
  color: #fff;
  border-radius: 3px;
  box-shadow: 0 20px 50px rgba(0,0,0,.3);
  padding: 1rem 1.4rem;
  z-index: var(--z-overlay);
  animation: cookie-in .35s ease-out;
  max-width: 760px;
  margin: 0 auto;
}
@keyframes cookie-in { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }
.cookie-inner {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1.5rem; flex-wrap: wrap;
}
.cookie-text { flex: 1; min-width: 240px; }
.cookie-text strong {
  display: block; font-size: .88rem; font-weight: 700;
  color: #fff; margin-bottom: .25rem;
}
.cookie-text span { display: block; font-size: .78rem; color: rgba(255,255,255,.7); line-height: 1.6; }
.cookie-link { color: var(--red); border-bottom: 1px solid var(--red); padding-bottom: 1px; }
.cookie-link:hover { color: #ff7878; border-color: #ff7878; }
.cookie-actions { display: flex; gap: .55rem; align-items: center; flex-shrink: 0; }
.cookie-decline, .cookie-accept {
  font-family: inherit; font-size: .8rem; font-weight: 600;
  padding: .55rem 1.1rem; border-radius: 2px; cursor: pointer;
  transition: background .15s, color .15s;
}
.cookie-decline { background: transparent; border: 1px solid rgba(255,255,255,.25); color: rgba(255,255,255,.85); }
.cookie-decline:hover { border-color: rgba(255,255,255,.5); }
.cookie-accept { background: var(--red); border: none; color: #fff; }
.cookie-accept:hover { background: var(--red-h); }
@media (max-width: 520px) { .cookie-banner { left: .75rem; right: .75rem; bottom: 4.5rem; } }

/* Sticky bottom CTA bar */
.sticky-cta {
  position: fixed; left: 0; right: 0; bottom: -100px;
  background: var(--white);
  border-top: 3px solid var(--red);
  box-shadow: 0 -12px 30px rgba(0,0,0,.12);
  z-index: var(--z-fab);
  transition: bottom .35s ease;
}
.sticky-cta.is-visible { bottom: 0; }
body.viewing-product .sticky-cta { display: none; }
.sticky-cta-inner {
  max-width: var(--max); margin: 0 auto;
  padding: .75rem clamp(1rem, 5vw, 2rem);
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; flex-wrap: wrap;
}
.sticky-cta-text strong {
  display: block; font-size: .92rem; font-weight: 700; color: var(--ink);
}
.sticky-cta-text span { display: block; font-size: .78rem; color: var(--muted); }
.sticky-cta-actions { display: flex; align-items: center; gap: .5rem; }
.sticky-cta-btn {
  background: var(--red); color: #fff;
  font-family: inherit; font-size: .82rem; font-weight: 600;
  padding: .65rem 1.3rem; border-radius: 2px;
  transition: background .15s;
}
.sticky-cta-btn:hover { background: var(--red-h); }
.sticky-cta-dismiss {
  background: none; border: none; cursor: pointer;
  width: 32px; height: 32px;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: .9rem; color: var(--muted); border-radius: 50%;
  transition: background .15s, color .15s;
}
.sticky-cta-dismiss:hover { background: var(--off); color: var(--ink); }
@media (max-width: 640px) {
  .sticky-cta-text { width: 100%; }
  .sticky-cta-actions { width: 100%; justify-content: space-between; }
}

/* Bump the WhatsApp FAB up when sticky CTA is visible */
.sticky-cta.is-visible ~ .wa-widget,
body:has(.sticky-cta.is-visible) .wa-widget { bottom: 5rem; }

/* LEADERSHIP DIRECTORY */
.lead-sec {
  background: var(--white);
  padding: 6rem clamp(1.5rem,5vw,4rem) 5.5rem;
  border-top: 1px solid var(--border);
}
.lead-inner { max-width: var(--max); margin: 0 auto; }
.lead-head {
  display: grid; grid-template-columns: 1fr 1fr; gap: 4rem;
  align-items: end; margin-bottom: 3.5rem;
}
@media (max-width: 820px) { .lead-head { grid-template-columns: 1fr; gap: 1.5rem; } }
.lead-rule { width: 36px; height: 2px; background: var(--red); margin-bottom: 1.4rem; }
.lead-label {
  display: block; font-size: .7rem; font-weight: 600;
  letter-spacing: .22em; text-transform: uppercase; color: var(--muted);
  margin-bottom: 1rem;
}
.lead-h2 {
  font-size: clamp(1.7rem, 3vw, 2.4rem); font-weight: 700;
  line-height: 1.2; letter-spacing: -.025em; color: var(--ink); margin: 0;
}
.lead-lead {
  font-size: .98rem; color: var(--muted); line-height: 1.8;
  margin: 0; max-width: 460px;
}
.lead-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 1px; background: var(--border2); border: 1px solid var(--border2);
}
@media (max-width: 920px) { .lead-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .lead-grid { grid-template-columns: 1fr; } }
.lead-card {
  background: var(--white);
  padding: 1.75rem 1.6rem;
  display: flex; flex-direction: column; gap: .9rem;
  transition: background .2s;
}
.lead-card:hover { background: var(--off); }
.lead-avatar {
  width: 48px; height: 48px;
  border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: .92rem; font-weight: 700; color: #fff; letter-spacing: -.01em;
  background: var(--shade);
  flex-shrink: 0;
}
.lead-avatar[style*="--lead-tint:1"] { background: linear-gradient(135deg, var(--shade), var(--shade-2)); }
.lead-avatar[style*="--lead-tint:2"] { background: linear-gradient(135deg, var(--shade-2), var(--blue)); }
.lead-avatar[style*="--lead-tint:3"] { background: linear-gradient(135deg, var(--red), var(--red-h)); }
.lead-avatar[style*="--lead-tint:4"] { background: linear-gradient(135deg, var(--shade-3), var(--blue)); }
.lead-avatar[style*="--lead-tint:5"] { background: linear-gradient(135deg, var(--shade), var(--red-h)); }
.lead-avatar[style*="--lead-tint:6"] { background: linear-gradient(135deg, var(--blue), var(--shade-2)); }
.lead-name {
  font-size: .94rem; font-weight: 700; color: var(--ink);
  letter-spacing: -.01em; line-height: 1.3;
}
.lead-role { font-size: .77rem; color: var(--red); font-weight: 600; letter-spacing: .03em; }
.lead-email {
  display: inline-block; font-size: .78rem; color: var(--text-strong);
  border-bottom: 1px solid var(--shade);
  align-self: flex-start;
  padding-bottom: 1px;
  transition: color .15s, border-color .15s;
}
.lead-email:hover { color: var(--red); border-color: var(--red); }
.lead-bio {
  font-size: .82rem; color: var(--muted); line-height: 1.65; margin: 0;
}
.lead-foot {
  margin-top: 2.6rem; padding-top: 1.8rem;
  border-top: 1px solid var(--border);
  font-size: .87rem; color: var(--muted); line-height: 1.7;
  text-align: center;
  max-width: 740px; margin-left: auto; margin-right: auto;
}
.lead-foot a {
  color: var(--text-strong); font-weight: 600;
  border-bottom: 1px solid var(--shade);
  transition: color .15s, border-color .15s;
}
.lead-foot a:hover { color: var(--red); border-bottom-color: var(--red); }

/* AWARDS / MEMBERSHIPS STRIP */
.awards-strip {
  background: var(--white);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  padding: 2rem clamp(1.5rem,5vw,4rem);
}
.awards-inner { max-width: var(--max); margin: 0 auto; }
.awards-label {
  text-align: center;
  font-size: .62rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .14em;
  color: var(--muted); margin-bottom: 1.4rem;
}
.awards-row {
  display: flex; align-items: center; justify-content: center;
  gap: 2rem; flex-wrap: wrap;
}
.award-item {
  display: flex; align-items: center; gap: .55rem;
  padding: .5rem .9rem;
  border: 1px solid var(--border);
  border-radius: 2px;
  transition: border-color .15s, background .15s;
}
.award-item:hover { border-color: var(--text-strong); background: var(--off); }
.award-mark {
  font-size: .7rem; font-weight: 800; letter-spacing: .04em;
  color: var(--red); padding: .2rem .5rem;
  background: rgba(200,32,42,.06); border-radius: 2px;
}
.award-text { font-size: .76rem; font-weight: 500; color: var(--ink); }

/* OFFICE MAP */
.office-sec { background: var(--off); padding: 6rem clamp(1.5rem,5vw,4rem); }
.office-inner { max-width: var(--max); margin: 0 auto; }
.office-grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 4rem; align-items: center;
}
@media (max-width: 820px) { .office-grid { grid-template-columns: 1fr; gap: 2.5rem; } }
.office-content {}
.office-rule { width: 36px; height: 2px; background: var(--red); margin-bottom: 1.4rem; }
.office-label {
  display: block; font-size: .7rem; font-weight: 600;
  letter-spacing: .22em; text-transform: uppercase; color: var(--muted);
  margin-bottom: 1rem;
}
.office-h2 {
  font-size: clamp(1.55rem, 2.7vw, 2.1rem); font-weight: 700;
  line-height: 1.2; letter-spacing: -.025em; color: var(--ink); margin: 0 0 1.1rem;
}
.office-lead { font-size: .98rem; color: var(--body); line-height: 1.8; margin: 0 0 1.8rem; }
.office-card {
  background: var(--white);
  border: 1px solid var(--border); border-radius: 3px;
  padding: 1.6rem 1.7rem;
  margin-bottom: 1.4rem;
}
.office-card-title { font-size: 1.02rem; font-weight: 700; color: var(--ink); margin-bottom: .8rem; }
.office-card-addr { display: flex; flex-direction: column; gap: 3px; margin-bottom: 1rem; }
.office-card-addr span { font-size: .85rem; color: var(--body); line-height: 1.55; }
.office-card-row {
  display: flex; flex-wrap: wrap; gap: 1.4rem;
  padding-top: 1rem; border-top: 1px solid var(--border);
}
.office-card-pair { display: flex; flex-direction: column; gap: 2px; }
.office-card-label {
  font-size: .58rem; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; color: var(--muted);
}
.office-card-val { font-size: .82rem; color: var(--ink); }
.office-card-val a { color: var(--text-strong); border-bottom: 1px solid var(--shade); }
.office-foot { font-size: .82rem; color: var(--muted); line-height: 1.65; margin: 0; }
.office-map-wrap {
  display: flex; justify-content: center; align-items: center;
  padding: 1rem;
}
.office-map {
  width: 100%; max-width: 320px; height: auto;
  filter: drop-shadow(0 8px 20px rgba(0,0,0,.08));
}

/* GLOSSARY, A-Z index + grouped definitions */
.glo-sec { padding-top: 4rem; }
.glo-index {
  display: flex; flex-wrap: wrap; gap: .35rem;
  padding: 1rem 1.2rem;
  background: var(--off); border-radius: 3px;
  margin-bottom: 3rem; position: sticky; top: 70px; z-index: 5;
  border: 1px solid var(--border);
}
.glo-index a {
  display: inline-flex; align-items: center; justify-content: center;
  width: 32px; height: 32px; border-radius: 3px;
  font-size: .82rem; font-weight: 700; color: var(--text-strong);
  letter-spacing: -.01em;
  transition: background .15s, color .15s;
}
.glo-index a:hover { background: var(--red); color: #fff; }

.glo-groups { display: flex; flex-direction: column; gap: 3rem; }
.glo-group {}
.glo-letter {
  font-size: 2.4rem; font-weight: 800; color: var(--red);
  letter-spacing: -.04em; line-height: 1; margin-bottom: 1.2rem;
  padding-bottom: .5rem; border-bottom: 2px solid var(--red);
}
.glo-list {
  display: grid; grid-template-columns: 1fr; gap: 0;
  margin: 0; padding: 0;
}
.glo-item {
  padding: 1.2rem 0; border-bottom: 1px solid var(--border);
  display: grid; grid-template-columns: 280px 1fr; gap: 2rem;
}
@media (max-width: 720px) { .glo-item { grid-template-columns: 1fr; gap: .4rem; } }
.glo-term {
  font-size: .96rem; font-weight: 700; color: var(--ink);
  letter-spacing: -.01em; margin: 0; line-height: 1.4;
}
.glo-defn {
  margin: 0; font-size: .88rem; color: var(--body); line-height: 1.7;
}
.glo-foot {
  margin-top: 3rem; padding-top: 1.6rem;
  border-top: 1px solid var(--border);
  font-size: .85rem; color: var(--muted); line-height: 1.7;
  text-align: center;
}
.glo-foot a { color: var(--text-strong); border-bottom: 1px solid var(--shade); padding-bottom: 1px; }
.glo-foot a:hover { color: var(--red); border-color: var(--red); }

/* SECTOR DASHBOARDS, index section */
.dash-sec {
  background: var(--white);
  padding: 6rem clamp(1.5rem,5vw,4rem) 5.5rem;
  border-top: 1px solid var(--border);
}
.dash-inner { max-width: var(--max); margin: 0 auto; }
.dash-head {
  display: grid; grid-template-columns: 1.4fr 1fr;
  gap: 4rem; align-items: end; margin-bottom: 3.5rem;
}
@media (max-width: 820px) { .dash-head { grid-template-columns: 1fr; gap: 1.5rem; } }
.dash-rule { width: 36px; height: 2px; background: var(--red); margin-bottom: 1.4rem; }
.dash-label {
  display: block; font-size: .7rem; font-weight: 600;
  letter-spacing: .22em; text-transform: uppercase; color: var(--muted);
  margin-bottom: 1rem;
}
.dash-h2 {
  font-size: clamp(1.7rem, 3vw, 2.4rem); font-weight: 700;
  line-height: 1.2; letter-spacing: -.025em; color: var(--ink); margin: 0;
}
.dash-lead {
  font-size: .98rem; color: var(--muted); line-height: 1.8;
  margin: 0; max-width: 460px;
}
.dash-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px;
  background: var(--border); border: 1px solid var(--border);
}
@media (max-width: 920px) { .dash-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .dash-grid { grid-template-columns: 1fr; } }
.dash-card {
  display: flex; flex-direction: column;
  background: var(--white);
  transition: background .2s;
  cursor: pointer;
}
.dash-card:hover { background: var(--off); }
.dash-card-thumb {
  width: 100%; aspect-ratio: 16/9;
  background-size: cover; background-position: center;
}
.dash-card-body { padding: 1.5rem 1.5rem 1.7rem; display: flex; flex-direction: column; gap: .8rem; flex: 1; }
.dash-card-meta { display: flex; align-items: center; gap: .85rem; font-size: .62rem; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.dash-card-tag {
  color: var(--red); font-weight: 700;
  padding: .22rem .6rem; border: 1px solid rgba(200,32,42,.25);
  background: rgba(200,32,42,.04); border-radius: 2px;
}
.dash-card-quarter { font-weight: 500; }
.dash-card-title {
  font-size: 1.08rem; font-weight: 700; color: var(--ink);
  letter-spacing: -.015em; line-height: 1.3; margin: 0;
}
.dash-card:hover .dash-card-title { color: var(--text-strong); }
.dash-card-stats {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: .55rem;
  padding: .85rem 0; border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  margin: .35rem 0 .3rem;
}
.dash-card-stats > div { display: flex; flex-direction: column; gap: 2px; }
.dash-card-stats strong { font-size: .92rem; font-weight: 800; color: var(--text-strong); letter-spacing: -.01em; }
.dash-card-stats span { font-size: .65rem; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); }
.dash-card-cta {
  font-size: .76rem; font-weight: 600; color: var(--text-strong);
  letter-spacing: .02em;
  transition: color .15s;
}
.dash-card:hover .dash-card-cta { color: var(--red); }
.dash-foot {
  margin-top: 2.4rem; padding-top: 1.6rem;
  border-top: 1px solid var(--border);
  font-size: .88rem; color: var(--muted); text-align: center;
}
.dash-foot a { color: var(--text-strong); border-bottom: 1px solid var(--shade); padding-bottom: 1px; }
.dash-foot a:hover { color: var(--red); border-color: var(--red); }

/* Inside-dashboard styling (per dashboard page) */
.dash-stats {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 1px; background: var(--border2); border: 1px solid var(--border2);
  margin: 2rem 0 2.5rem;
}
@media (max-width: 640px) { .dash-stats { grid-template-columns: 1fr; } }
.dash-stat {
  background: var(--white);
  padding: 1.6rem 1.5rem;
}
.dash-stat-n {
  font-size: clamp(1.8rem, 3.5vw, 2.6rem); font-weight: 800;
  letter-spacing: -.03em; color: var(--ink);
  margin-bottom: .35rem;
}
.dash-stat-unit { font-size: .9rem; font-weight: 600; color: var(--muted); letter-spacing: 0; }
.dash-stat-l { font-size: .78rem; color: var(--muted); line-height: 1.5; }
.dash-exposures { margin-bottom: 2.5rem; }
.dash-exposures-label {
  font-size: .68rem; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; color: var(--red);
  margin-bottom: .9rem;
}
.dash-exp {
  display: flex; align-items: flex-start; gap: .75rem;
  padding: .9rem 0; border-bottom: 1px solid var(--border);
  font-size: .9rem; line-height: 1.55; color: var(--body);
}
.dash-exp:last-child { border-bottom: none; }
.dash-exp-arrow { font-weight: 700; font-size: .85rem; flex-shrink: 0; padding-top: 2px; }
.dash-callout {
  background: var(--off); border-left: 3px solid var(--red);
  padding: 1.2rem 1.4rem; border-radius: 0 2px 2px 0;
}
.dash-callout-label {
  font-size: .66rem; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; color: var(--red);
  margin-bottom: .55rem;
}
.dash-callout p { margin: 0; font-size: .92rem; color: var(--body); line-height: 1.75; }

/* RISKS landing section */
.risks-sec {
  background: var(--white);
  padding: 6rem clamp(1.5rem,5vw,4rem) 5.5rem;
  border-top: 1px solid var(--border);
}
.risks-inner { max-width: var(--max); margin: 0 auto; }
.risks-head {
  display: grid; grid-template-columns: 1.4fr 1fr;
  gap: 4rem; align-items: end;
  margin-bottom: 3.5rem;
}
@media (max-width: 820px) { .risks-head { grid-template-columns: 1fr; gap: 1.5rem; } }
.risks-rule { width: 36px; height: 2px; background: var(--red); margin-bottom: 1.4rem; }
.risks-label {
  display: block; font-size: .7rem; font-weight: 600;
  letter-spacing: .22em; text-transform: uppercase; color: var(--muted);
  margin-bottom: 1rem;
}
.risks-h2 {
  font-size: clamp(1.7rem, 3vw, 2.4rem); font-weight: 700;
  line-height: 1.2; letter-spacing: -.025em; color: var(--ink); margin: 0;
}
.risks-lead {
  font-size: .98rem; color: var(--muted); line-height: 1.8;
  margin: 0; max-width: 480px;
}
.risks-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px;
  background: var(--border2); border: 1px solid var(--border2);
}
@media (max-width: 900px) { .risks-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .risks-grid { grid-template-columns: 1fr; } }
/* Risks marquee: two slow counter-scrolling rows; pauses on hover and
   keyboard focus; falls back to a static wrapped grid when the user
   prefers reduced motion. */
.risks-marquee { display: flex; flex-direction: column; gap: 1.1rem; overflow: hidden; }
.risks-row { display: flex; gap: 1.1rem; width: max-content; animation: risks-ltr 70s linear infinite; }
.risks-row[data-dir="rtl"] { animation-name: risks-rtl; animation-duration: 84s; }
.risks-row:hover, .risks-row:focus-within { animation-play-state: paused; }
.rm-group { display: flex; gap: 1.1rem; }
.risks-marquee .risk-card { width: 330px; flex: none; }
@keyframes risks-ltr { from { transform: translateX(0); } to { transform: translateX(calc(-50% - .55rem)); } }
@keyframes risks-rtl { from { transform: translateX(calc(-50% - .55rem)); } to { transform: translateX(0); } }
@media (prefers-reduced-motion: reduce) {
  .risks-row { animation: none; width: auto; flex-wrap: wrap; }
  .rm-dup { display: none; }
  .risks-marquee .risk-card { width: auto; flex: 1 1 300px; }
}
.risk-card {
  background: var(--white);
  padding: 1.8rem 1.7rem 2rem;
  display: flex; flex-direction: column;
  gap: .65rem;
  transition: background .2s ease, transform .15s ease;
  position: relative;
}
.risk-card:hover {
  background: var(--off);
  transform: translateY(-1px);
}
.risk-card-num {
  font-size: .68rem; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; color: var(--red);
  margin-bottom: .25rem;
}
.risk-card-name {
  font-size: 1.08rem; font-weight: 700; color: var(--ink);
  letter-spacing: -.015em; line-height: 1.3; margin: 0;
  transition: color .15s;
}
.risk-card:hover .risk-card-name { color: var(--text-strong); }
.risk-card-desc {
  font-size: .85rem; color: var(--muted); line-height: 1.7;
  margin: 0; flex: 1;
}
.risk-card-cta {
  font-size: .76rem; font-weight: 600; color: var(--text-strong);
  letter-spacing: .02em;
  transition: color .15s, transform .15s;
}
.risk-card:hover .risk-card-cta { color: var(--red); }

/* Mobile: sticky CTA + WhatsApp FAB anti-collision */
@media (max-width: 720px) {
  .sticky-cta.is-visible ~ .wa-widget,
  body:has(.sticky-cta.is-visible) .wa-widget { bottom: 6rem; }
  body:has(.cookie-banner:not([hidden])) .wa-widget { bottom: 10rem; }
}
/* Z-index hierarchy — single source of truth, mapped to the scale tokens.
   modal > overlay > dropdown > fab > sticky (see the scale in :root). */
.quiz-overlay { z-index: var(--z-modal); }
.cookie-banner { z-index: var(--z-overlay); }
.wa-widget { z-index: var(--z-fab); }
.sticky-cta { z-index: var(--z-fab); }
.mega-panel { z-index: var(--z-dropdown); }
.mega-backdrop { z-index: calc(var(--z-dropdown) - 1); }
.mega-preview-tag { z-index: var(--z-dropdown); }

/* KEYBOARD FOCUS, visible outlines for non-mouse users */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid var(--red);
  outline-offset: 2px;
  border-radius: 2px;
}
.btn-red:focus-visible,
.btn-white:focus-visible,
.btn-ghost-w:focus-visible {
  outline-offset: 3px;
}
button:focus-visible:not(:focus) { outline: none; }

/* === High-quality imagery enhancements === */

.about-discover-banner {
  position: relative;
  margin: 3rem 0 0;
  border-radius: 3px;
  overflow: hidden;
  min-height: 280px;
  display: flex; align-items: center;
}
.about-discover-img {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  filter: grayscale(.4);
}
.about-discover-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(110deg, rgba(0,0,0,.92) 0%, rgba(0,0,0,.75) 45%, rgba(0,0,0,.4) 100%);
}
.about-discover-quote {
  position: relative; z-index: 1;
  max-width: 620px;
  padding: 3rem 3rem;
  color: #fff;
}
.about-discover-quote p {
  font-size: clamp(1.1rem, 2vw, 1.4rem);
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: -.015em;
  margin: 0 0 1rem;
  color: #fff;
}
.about-discover-attr {
  font-size: .68rem; font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--red);
}

.heritage-image-wrap {
  position: relative;
  margin-top: 2.5rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  background: var(--off);
  border-radius: 3px;
  overflow: hidden;
  min-height: 320px;
}
@media (max-width: 720px) { .heritage-image-wrap { grid-template-columns: 1fr; min-height: auto; } }
.heritage-image {
  background-size: cover; background-position: center;
  filter: grayscale(.55) sepia(.1);
  min-height: 320px;
}
.heritage-image-meta {
  padding: 2.4rem 2.5rem;
  display: flex; flex-direction: column; justify-content: center;
}
.heritage-image-label {
  font-size: .66rem; font-weight: 700; letter-spacing: .2em;
  text-transform: uppercase; color: var(--red);
  margin-bottom: .9rem;
}
.heritage-image-line {
  font-size: clamp(1.1rem, 2vw, 1.3rem); font-weight: 700;
  line-height: 1.35; letter-spacing: -.015em;
  color: var(--ink);
}

.svc-banner {
  position: relative;
  height: 220px;
  border-radius: 3px;
  overflow: hidden;
  margin: 0 0 3rem;
  display: flex; align-items: center;
}
.svc-banner-img {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  filter: grayscale(.3);
}
.svc-banner-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(105deg, rgba(0,0,0,.92) 0%, rgba(0,0,0,.7) 50%, rgba(41,151,255,.35) 100%);
}
.svc-banner-text {
  position: relative; z-index: 1;
  padding: 0 2.5rem;
  max-width: 640px;
  color: #fff;
}
.svc-banner-eyebrow {
  display: block; font-size: .66rem; font-weight: 600;
  letter-spacing: .2em; text-transform: uppercase;
  color: rgba(255,255,255,.7);
  margin-bottom: .55rem;
}
.svc-banner-h3 {
  font-size: clamp(1.4rem, 2.4vw, 1.8rem); font-weight: 700;
  letter-spacing: -.02em; line-height: 1.2;
  color: #fff; margin: 0;
}
@media (max-width: 640px) { .svc-banner { height: 180px; } .svc-banner-text { padding: 0 1.5rem; } }

.prv-thumb {
  width: 100%; aspect-ratio: 16/9;
  background-size: cover; background-position: center;
  border-radius: 3px; overflow: hidden;
  filter: grayscale(.3);
  margin-bottom: 2rem;
}

.crm-media-image {
  width: 100%; aspect-ratio: 16/9;
  background-size: cover; background-position: center;
  border-radius: 3px;
  margin-bottom: 1.5rem;
  filter: grayscale(.5) brightness(.85);
  border: 1px solid rgba(255,255,255,.1);
}

.contact-image {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  filter: grayscale(.3) brightness(.92);
  z-index: 0;
}
.contact-image-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,.92) 0%, rgba(255,255,255,.85) 60%, rgba(255,255,255,.6) 100%);
  z-index: 1;
}
.contact-image-tag {
  position: absolute; top: 1rem; right: 1rem;
  z-index: 2;
  font-size: .62rem; font-weight: 700;
  letter-spacing: .15em; text-transform: uppercase;
  color: var(--text-strong);
  background: rgba(255,255,255,.92);
  padding: .35rem .8rem; border-radius: 2px;
  border: 1px solid var(--border);
}
.ci { position: relative; padding: 2rem 2.2rem; }
.ci > *:not(.contact-image):not(.contact-image-overlay):not(.contact-image-tag) { position: relative; z-index: 2; }

section#why { position: relative; overflow: hidden; }
.why-bg-image {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  opacity: .08;
  filter: grayscale(1);
  pointer-events: none;
}
.why-bg-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(0,0,0,.94) 0%, rgba(0,0,0,.92) 60%, rgba(20,20,21,.94) 100%);
  pointer-events: none;
}
section#why .sec-inner { position: relative; z-index: 1; }

/* PRODUCTS, header banner */
.prod-banner {
  position: relative;
  height: 200px;
  border-radius: 3px;
  overflow: hidden;
  margin: 0 0 2.5rem;
  display: flex; align-items: center;
}
.prod-banner-img {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  filter: grayscale(.4) brightness(.95);
}
.prod-banner-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(110deg, rgba(0,0,0,.92) 0%, rgba(0,0,0,.7) 50%, rgba(41,151,255,.4) 100%);
}
.prod-banner-text {
  position: relative; z-index: 1;
  padding: 0 2.5rem;
  max-width: 640px; color: #fff;
}
.prod-banner-eyebrow {
  display: block; font-size: .66rem; font-weight: 600;
  letter-spacing: .2em; text-transform: uppercase;
  color: rgba(255,255,255,.7);
  margin-bottom: .55rem;
}
.prod-banner-h3 {
  font-size: clamp(1.4rem, 2.4vw, 1.8rem); font-weight: 700;
  letter-spacing: -.02em; line-height: 1.2;
  color: #fff; margin: 0 0 .5rem;
}
.prod-banner-sub {
  font-size: .92rem; font-weight: 400;
  color: rgba(255,255,255,.78);
  line-height: 1.55; margin: 0; max-width: 520px;
}
@media (max-width: 640px) {
  .prod-banner { height: 170px; }
  .prod-banner-text { padding: 0 1.5rem; }
}

/* FAQ, header banner */
.faq-banner {
  position: relative;
  height: 180px;
  border-radius: 3px;
  overflow: hidden;
  margin: 0 0 3rem;
  display: flex; align-items: center;
}
.faq-banner-img {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  filter: grayscale(.5) brightness(.85);
}
.faq-banner-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(110deg, rgba(0,0,0,.94) 0%, rgba(0,0,0,.82) 60%, rgba(20,20,21,.55) 100%);
}
.faq-banner-text {
  position: relative; z-index: 1;
  padding: 0 2.5rem;
  max-width: 720px; color: #fff;
}
.faq-banner-eyebrow {
  display: block; font-size: .66rem; font-weight: 600;
  letter-spacing: .2em; text-transform: uppercase;
  color: var(--red);
  margin-bottom: .65rem;
}
.faq-banner-h3 {
  font-size: clamp(1.4rem, 2.6vw, 2rem); font-weight: 700;
  letter-spacing: -.025em; line-height: 1.2;
  color: #fff; margin: 0;
}
@media (max-width: 640px) {
  .faq-banner { height: 160px; }
  .faq-banner-text { padding: 0 1.5rem; }
}

/* SCALE BAND, subtle bg image */
.scale-band { position: relative; overflow: hidden; }
.scale-band-bg {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  opacity: .04;
  filter: grayscale(1);
  pointer-events: none;
}
.scale-band > .scale-inner { position: relative; z-index: 1; }

/* CTA BAND, subtle bg image with overlay */
.cta-band { position: relative; overflow: hidden; }
.cta-band-bg {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  opacity: .12;
  filter: grayscale(1);
  pointer-events: none;
}
.cta-band > .cta-band-inner { position: relative; z-index: 1; }

/* Products dropdown, reuses .ind-panel-* layout, with minor item refinements */
.prod-dd-item {
  display: flex;
  align-items: center;
  min-height: 42px;
}
.prod-grid-dd {
  grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 720px) {
  .prod-grid-dd { grid-template-columns: 1fr 1fr; }
}
/* Products dropdown, Business / Personal group separation */
.prod-dd-group + .prod-dd-group {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(0,0,0,.10);
}
.prod-dd-group-label {
  display: block;
  font-size: .66rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--red);
  margin: 0 0 .65rem .15rem;
}

/* ════════════════════════════════════════════════════════════
   LOGO FALLBACK, clean wordmark when logo.png is missing
   When image loads, the parent gains .has-real-logo and the
   wordmark hides automatically.
═══════════════════════════════════════════════════════════════ */

/* Hide all wordmark fallbacks by default, only show if image fails */
.topbar-logo-mark, .nb-logo-mark, .footer-logo-mark {
  display: inline-block;
  font-family: 'Inter', 'Inter-fallback', sans-serif;
  font-weight: 900;
  letter-spacing: -.03em;
  line-height: 1;
  user-select: none;
}

/* Topbar mark, small on dark navy strip */
.topbar-logo-mark {
  font-size: 1.05rem;
  color: #fff;
}

/* Navbar mark, large, two-tone (RF navy + S red) */
.nb-logo-mark {
  font-size: 1.65rem;
  color: var(--text-strong);
  position: relative;
}
.nb-logo-mark::after {
  /* Use ::after to color the last letter red without an extra span */
  content: "";
}
/* Two-tone via background-clip trick on the wordmark, first 2 chars navy, last char red */
.nb-logo-mark {
  background: linear-gradient(90deg, var(--shade) 0%, var(--shade) 66%, var(--red) 66%, var(--red) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}

/* Footer mark, white-and-red on dark navy footer bg */
.footer-logo-mark {
  font-size: 1.85rem;
  background: linear-gradient(90deg, #fff 0%, #fff 66%, var(--red) 66%, var(--red) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  margin-bottom: 1rem;
  display: inline-block;
}

/* When the image successfully loads, hide the wordmark */
.topbar-logo.has-real-logo .topbar-logo-mark,
.nb-logo.has-real-logo .nb-logo-mark,
.footer-brand.has-real-logo .footer-logo-mark { display: none; }

/* When image fails (no .has-real-logo class), make sure img is hidden, done inline via onerror */

/* Robust sizing tweaks for img */
.topbar-logo-img {
  height: 22px; width: auto;
  display: block;
  max-width: 130px;
  object-fit: contain;
}
.nb-logo .rfs-logo-img {
  height: 42px; width: auto;
  display: block;
  max-width: 180px;
  object-fit: contain;
}
.footer .footer-logo-img {
  height: 56px; width: auto;
  display: block;
  max-width: 200px;
  margin-bottom: 1rem;
  object-fit: contain;
}

@media (max-width: 720px) {
  .nb-logo-mark { font-size: 1.4rem; }
  .footer-logo-mark { font-size: 1.55rem; }
}
/* ── Quote / callback modal ── */
.qm-overlay { position: fixed; inset: 0; z-index: var(--z-modal); display: flex; align-items: flex-start; justify-content: center; padding: 5vh 1rem; background: rgba(0,0,0,.55); backdrop-filter: blur(3px); overflow-y: auto; }
.qm-overlay[hidden] { display: none; }
.qm-dialog { position: relative; width: 100%; max-width: 720px; background: var(--white); border-radius: 12px; box-shadow: 0 30px 80px rgba(0,0,0,.35); padding: clamp(1.5rem, 4vw, 2.6rem); animation: qmIn .25s ease; }
.qm-overlay[data-modal="callback"] .qm-dialog { max-width: 460px; }
@keyframes qmIn { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }
.qm-close { position: absolute; top: .7rem; right: 1rem; background: none; border: none; font-size: 1.9rem; line-height: 1; color: #98a2b3; cursor: pointer; }
.qm-close:hover { color: var(--text-strong); }
.qm-eyebrow { display: block; font-size: .7rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--red); margin-bottom: .4rem; }
.qm-head h2 { font-size: clamp(1.4rem, 3vw, 1.9rem); color: var(--text-strong); line-height: 1.15; margin: 0; }
.qm-sub { color: #5b6472; font-size: .9rem; margin: .6rem 0 1.3rem; }
.qm-seg { display: inline-flex; background: var(--off); border: 1px solid var(--border); border-radius: 8px; padding: 3px; margin-bottom: 1.1rem; }
.qm-seg-btn { border: none; background: none; padding: .5rem 1.3rem; font-size: .85rem; font-weight: 600; color: #5b6472; border-radius: 7px; cursor: pointer; }
.qm-seg-btn.is-active { background: var(--white); color: var(--text-strong); box-shadow: 0 1px 4px rgba(0,0,0,.1); }
.qm-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem 1rem; }
.qm-fg { display: flex; flex-direction: column; gap: .3rem; }
.qm-col2 { grid-column: 1 / -1; }
.qm-fg label { font-size: .78rem; font-weight: 600; color: var(--text-strong); }
.qm-opt { font-weight: 400; color: #98a2b3; }
.qm-fg input, .qm-fg select, .qm-fg textarea { width: 100%; padding: .6rem .7rem; border: 1px solid #d7dbe0; border-radius: 8px; font: inherit; font-size: .9rem; background: var(--white); box-sizing: border-box; }
.qm-fg input:focus, .qm-fg select:focus, .qm-fg textarea:focus { outline: none; border-color: var(--text-strong); box-shadow: 0 0 0 3px rgba(0,0,0,.08); }
.qm-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.qm-err { color: var(--red); font-size: .82rem; margin: .8rem 0 0; }
.qm-submit { margin-top: 1.2rem; width: 100%; padding: .85rem; background: var(--red); color: #fff; border: none; border-radius: 8px; font-size: .95rem; font-weight: 600; cursor: pointer; transition: background .2s; }
.qm-submit:hover { background: var(--red-h, #7F1216); }
/* Quote modal, conversion pass 2026-08-04. The events table showed 9 opens
   and 1 submit. The cause was not field count alone: validation asks for a
   name plus EITHER phone or email, but both carried a "*", so the form read
   as three demands. Labels corrected, the four detail fields folded away, and
   the assistant offered up front because agent_open/agent_msg (34/54) dwarf
   every other interaction on the site. */
.qm-alt { margin:.55rem 0 0; font-size:.82rem; color:var(--muted); display:flex;
          flex-wrap:wrap; align-items:center; gap:.4rem .5rem; }
.qm-alt-ai { background:none; border:0; padding:0; cursor:pointer; font:inherit;
             color:var(--blue); font-weight:600; }
.qm-alt-ai:hover { text-decoration:underline; }
.qm-alt-sep { opacity:.55; }
.qm-alt-wa { color:var(--blue); font-weight:600; text-decoration:none; }
.qm-alt-wa:hover { text-decoration:underline; }
.qm-more { margin:.2rem 0 .1rem; border-top:1px solid var(--border); padding-top:.7rem; }
.qm-more > summary { cursor:pointer; font-size:.84rem; font-weight:600; color:var(--body);
                     list-style:none; padding:.15rem 0; }
.qm-more > summary::-webkit-details-marker { display:none; }
.qm-more > summary::before { content:"+"; color:var(--red); font-weight:700;
                             display:inline-block; width:1em; }
.qm-more[open] > summary::before { content:"\2212"; }
.qm-more-grid { display:grid; grid-template-columns:1fr 1fr; gap:.75rem; margin-top:.7rem; }
@media (max-width:560px){ .qm-more-grid { grid-template-columns:1fr; } }
.qm-submit:disabled { opacity: .6; cursor: default; }
.qm-fineprint { font-size: .72rem; color: #98a2b3; text-align: center; margin: .8rem 0 0; }
.qm-success { text-align: center; padding: 1.5rem .5rem; }
.qm-success-ic { width: 56px; height: 56px; margin: 0 auto 1rem; border-radius: 50%; background: rgba(16,122,72,.12); color: #0c6b40; font-size: 1.8rem; display: flex; align-items: center; justify-content: center; }
.qm-success h3 { color: var(--text-strong); font-size: 1.4rem; margin: 0 0 .5rem; }
.qm-success p { color: #5b6472; font-size: .92rem; margin: .3rem 0; }
.qm-ref { margin-top: .8rem !important; font-size: .9rem; }
.qm-ref strong { color: var(--text-strong); letter-spacing: .04em; }
/* premium estimator (qualitative guide; no figures) */
.qm-est { margin-top: .1rem; }
.qm-est-card { border: 1px solid var(--border); background: var(--off, #f7f8fa); border-radius: 8px; padding: .9rem 1rem; }
.qm-est-head { display: flex; align-items: center; justify-content: space-between; gap: .8rem; }
.qm-est-title { font-size: .8rem; font-weight: 700; color: var(--text-strong); letter-spacing: .01em; }
.qm-est-band { font-size: .66rem; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; padding: .26rem .6rem; border-radius: 999px; white-space: nowrap; background: #eef0f3; color: #5b6472; }
.qm-est-band[data-level="1"] { background: rgba(12,107,64,.12); color: #0c6b40; }
.qm-est-band[data-level="2"] { background: rgba(151,96,10,.14); color: #97600a; }
.qm-est-band[data-level="3"] { background: rgba(200,32,42,.12); color: var(--red); }
.qm-est-drivers { list-style: none; margin: .75rem 0 0; padding: 0; display: grid; gap: .38rem; }
.qm-est-drivers li { position: relative; padding-left: 1.05rem; font-size: .82rem; color: #5b6472; line-height: 1.35; }
.qm-est-drivers li::before { content: ""; position: absolute; left: 0; top: .52em; width: 5px; height: 5px; border-radius: 50%; background: var(--red); }
.qm-est-scale { display: flex; gap: 4px; margin: .85rem 0 .55rem; }
.qm-est-step { flex: 1; height: 4px; border-radius: 999px; background: #e1e4e8; transition: background .2s; }
.qm-est-card[data-level="1"] .qm-est-step[data-step="1"] { background: #0c6b40; }
.qm-est-card[data-level="2"] .qm-est-step[data-step="1"], .qm-est-card[data-level="2"] .qm-est-step[data-step="2"] { background: #c7820c; }
.qm-est-card[data-level="3"] .qm-est-step { background: var(--red); }
.qm-est-note { font-size: .8rem; color: var(--text-strong); margin: .25rem 0 0; font-weight: 600; line-height: 1.4; }
.qm-est-foot { font-size: .72rem; color: #98a2b3; margin: .45rem 0 0; line-height: 1.4; }
@media (max-width: 560px) { .qm-grid { grid-template-columns: 1fr; } }

/* ============================================================
   MOTION LAYER  (light theme; animation only, content unchanged)
   ============================================================ */
/* Card hover-lift base transition (transform applied only on hover) */
.who-card,.ben-card,.cov-item,.rel-card,.ind-prod-card,.ind-risk-card,.case-card,.risk-card,
.svc-card,.svc-dd-card,.insight-card,.lead-card,.award-item,.dash-card,.prv-card,.glo-item,.pm-card,.pillar{
  transition: transform .4s var(--ease), box-shadow .4s ease, border-color .4s ease, background .22s ease;
}
.case-card{ overflow:hidden; }
.btn-red{ position:relative; overflow:hidden; }
.nb-links li a, .mega-toggle{ position:relative; }

@media (prefers-reduced-motion: no-preference){

  html{ scroll-behavior:smooth; }

  /* ---- Hero entrance: staggered rise/fade on load ---- */
  .hero-category,.hero-purpose,.hero-desc,.hero-triad,.hero-actions{
    opacity:0; animation: rfsRise var(--dur-hero) var(--ease) both;
  }
  .hero-category{ animation-delay:.10s; }
  .hero-purpose { animation-delay:.20s; }
  .hero-desc    { animation-delay:.34s; }
  .hero-triad   { animation-delay:.48s; }
  .hero-actions { animation-delay:.60s; }
  .hero-panel   { opacity:0; animation: rfsRisePanel 1s var(--ease) .42s both; }
  @keyframes rfsRise{ from{ opacity:0; transform:translateY(24px); } to{ opacity:1; transform:translateY(0); } }
  @keyframes rfsRisePanel{ from{ opacity:0; transform:translateY(28px) scale(.985); } to{ opacity:1; transform:translateY(0) scale(1); } }

  /* ---- Pulsing live dot ---- */
  .hero-category-dot{ animation: rfsPulse 2.6s ease-in-out infinite; }
  @keyframes rfsPulse{
    0%,100%{ box-shadow:0 0 0 0 rgba(200,32,42,.5); }
    50%    { box-shadow:0 0 0 8px rgba(200,32,42,0); }
  }

  /* ---- Scroll-reveal: vertical travel only. The prior scale(.99) shrank
     full-bleed sections ~7px on reveal, so their content briefly sat off
     the shared left rail while every other section sat on it. Vertical-only
     keeps sections pinned to the rail throughout the animation. ---- */
  html.has-reveal .reveal{
    transform:translateY(28px);
    transition:opacity .75s var(--ease), transform .75s var(--ease);
  }
  html.has-reveal .reveal.is-in{ transform:translateY(0); }
  html.has-reveal .reveal-d4{ transition-delay:.32s; }
  html.has-reveal .reveal-d5{ transition-delay:.40s; }
  html.has-reveal .reveal-d6{ transition-delay:.48s; }

  /* ---- Card hover: lift + soft navy shadow + subtle red border (keeps each card's own bg-hover) ---- */
  .who-card:hover,.ben-card:hover,.cov-item:hover,.rel-card:hover,.ind-prod-card:hover,.ind-risk-card:hover,
  .case-card:hover,.risk-card:hover,.svc-card:hover,.svc-dd-card:hover,.insight-card:hover,.lead-card:hover,
  .award-item:hover,.dash-card:hover,.prv-card:hover,.glo-item:hover,.pm-card:hover,.pillar:hover{
    transform:translateY(-6px);
    box-shadow:0 18px 42px rgba(0,0,0,.16), 0 2px 10px rgba(0,0,0,.08);
    border-color:rgba(200,32,42,.30);
  }
  /* Case image zoom inside its (now clipped) card */
  .case-thumb{ transition:filter .3s ease, transform var(--dur-reveal) var(--ease); }
  .case-card:hover .case-thumb{ transform:scale(1.06); }

  /* ---- Primary button: lift + light sheen sweep ---- */
  .btn-red{ transition:background .2s ease, transform .2s ease, box-shadow .3s ease; }
  .btn-red::before{
    content:""; position:absolute; top:0; left:-130%; width:65%; height:100%;
    background:linear-gradient(120deg, transparent, rgba(255,255,255,.4), transparent);
    transform:skewX(-20deg); transition:left .65s ease; pointer-events:none;
  }
  .btn-red:hover{ transform:translateY(-2px); box-shadow:0 12px 28px rgba(200,32,42,.35); }
  .btn-red:hover::before{ left:150%; }
  .btn-red:active{ transform:translateY(0); }
  .btn-ghost:hover{ transform:translateY(-2px); box-shadow:0 10px 24px rgba(0,0,0,.16); }
  .btn-ghost-w:hover{ transform:translateY(-2px); box-shadow:0 10px 24px rgba(0,0,0,.18); }

  /* ---- Nav link animated underline ---- */
  .nb-links li a::after, .mega-toggle::after{
    content:""; position:absolute; left:0; bottom:-3px; height:2px; width:100%;
    background:linear-gradient(90deg,var(--red),#BC1B22);
    transform:scaleX(0); transform-origin:left; transition:transform var(--dur-ui) var(--ease);
    border-radius:2px;
  }
  .nb-links li a:hover::after, .mega-toggle:hover::after, .nb-links li.is-active a::after{ transform:scaleX(1); }
}


/* ============================================================
   DESIGN POLISH v2  (light theme; richer CTAs, depth, refined motion)
   ============================================================ */
/* Primary CTA: subtle gradient + resting depth (sheen/lift added in motion layer) */
.btn-red{
  background:linear-gradient(135deg, #BC1B22 0%, #A0171C 45%, #7F1216 100%);
  box-shadow:0 4px 14px rgba(200,32,42,.22);
}
/* Give cards a stacking context so the hover-float layers cleanly above hairline neighbours */
.who-card,.ben-card,.cov-item,.rel-card,.ind-prod-card,.ind-risk-card,.case-card,.risk-card,
.svc-card,.svc-dd-card,.insight-card,.lead-card,.award-item,.dash-card,.prv-card,.glo-item,.pm-card,.pillar{
  position:relative;
}

@media (prefers-reduced-motion: no-preference){

  /* ---- Refined card hover: clean float above the grid (replaces the earlier lift) ---- */
  .who-card:hover,.ben-card:hover,.cov-item:hover,.rel-card:hover,.ind-prod-card:hover,.ind-risk-card:hover,
  .case-card:hover,.risk-card:hover,.svc-card:hover,.svc-dd-card:hover,.insight-card:hover,.lead-card:hover,
  .award-item:hover,.dash-card:hover,.prv-card:hover,.glo-item:hover,.pm-card:hover,.pillar:hover{
    transform:translateY(-4px); z-index:2;
    box-shadow:0 16px 36px rgba(0,0,0,.16), 0 2px 8px rgba(0,0,0,.07);
    border-color:rgba(200,32,42,.28);
  }
  .btn-red:hover{ background:linear-gradient(135deg,#BC1B22,#7F1216); }

  /* ---- Section accent rules: sweep in when the section reveals ---- */
  html.has-reveal .reveal :is(.cases-rule,.risks-rule,.svc-rule,.insights-rule,.prv-rule,.heritage-rule,.faq-rule,.quiz-rule){
    transform:scaleX(0); transform-origin:left;
    transition:transform var(--dur-reveal) var(--ease) .12s;
  }
  html.has-reveal .reveal.is-in :is(.cases-rule,.risks-rule,.svc-rule,.insights-rule,.prv-rule,.heritage-rule,.faq-rule,.quiz-rule){
    transform:scaleX(1);
  }

  /* ---- CTA arrows nudge forward on hover ---- */
  .svc-arr,.ind-arrow{ display:inline-block; transition:transform .25s ease; }
  .svc-card:hover .svc-arr,.svc-dd-card:hover .svc-arr,
  .ind-prod-card:hover .ind-arrow,.ind-c-link:hover .ind-arrow{ transform:translateX(5px); }
}


/* ============================================================
   MOTION LAYER v3  (light theme; cascade reveals, cursor spotlight,
   back-to-top, FAQ entrance.  Reduced-motion aware & fail-safe:
   JS only hides grid children after confirming it can animate them.)
   ============================================================ */
/* Floating back-to-top (element built by JS; sits below modal overlays) */
#rfs-top{
  position:fixed; right:22px; bottom:24px; z-index: var(--z-fab);
  width:46px; height:46px; border-radius:50%; padding:0;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,#BC1B22,#7F1216); color:#fff;
  border:none; cursor:pointer;
  box-shadow:0 8px 22px rgba(200,32,42,.34);
  opacity:0; transform:translateY(14px) scale(.85); pointer-events:none;
  transition:opacity .35s ease, transform var(--dur-ui) var(--ease), box-shadow .3s ease;
}
#rfs-top.is-show{ opacity:1; transform:none; pointer-events:auto; }
#rfs-top:hover{ box-shadow:0 12px 30px rgba(200,32,42,.48); }
#rfs-top svg{ width:18px; height:18px; display:block; transition:transform .25s ease; }
#rfs-top:hover svg{ transform:translateY(-2px); }

@media (prefers-reduced-motion: no-preference){

  /* ---- Grid cascade: children pour in one after another (delays set by JS) ---- */
  .rfs-cascade > *{
    opacity:0; transform:translateY(20px);
    transition:opacity var(--dur-reveal) var(--ease), transform var(--dur-reveal) var(--ease);
    will-change:opacity, transform;
  }
  .rfs-cascade.rfs-in > *{ opacity:1; transform:none; }
  /* While the cards arrive, paint the 1px hairline backing white so it does
     not flash grey through the gaps; JS removes .rfs-mask once they settle. */
  .rfs-cascade.rfs-mask{ background: var(--white) !important; }

  /* ---- FAQ answer eases open (both the <details> and JS-toggled variants) ---- */
  .faq-q-hp[open] .faq-a-hp, .faq-item.open .faq-a{
    animation: rfsFaqIn .4s var(--ease) both;
  }
  @keyframes rfsFaqIn{ from{ opacity:0; transform:translateY(-6px); } to{ opacity:1; transform:none; } }
}


/* ============================================================
   MOTION LAYER v4  (light theme; hover interactions — icon pops,
   link underlines, footer nudge. Reduced-motion aware.)
   ============================================================ */
@media (prefers-reduced-motion: no-preference){

  /* ---- Card icons pop on hover: lift + scale + soft red ring.
     (Additive to the existing tint/colour shifts — different properties,
     so those rules still apply; we only add transform + ring here.) ---- */
  .cov-ic,.ben-ic,.pc-ic,.ind-ic,.svc-num{
    transition: transform var(--dur-ui) var(--ease),
                background .25s ease, color .25s ease, box-shadow .3s ease;
  }
  .cov-item:hover .cov-ic,
  .ben-card:hover .ben-ic,
  .pc:hover .pc-ic,
  .ind-c:hover .ind-ic{
    transform: translateY(-2px) scale(1.04);
  }
  .svc-card:hover .svc-num{ transform: translateY(-2px) scale(1.05); }

  /* ---- Text links: an underline grows in from the left on hover ---- */
  .link-more,.insights-link,.about-read{ position:relative; }
  .link-more::after,.insights-link::after,.about-read::after{
    content:""; position:absolute; left:0; bottom:-2px; height:2px; width:100%;
    background:currentColor; opacity:.55; border-radius:2px;
    transform:scaleX(0); transform-origin:left;
    transition:transform var(--dur-ui) var(--ease);
  }
  .link-more:hover::after,.insights-link:hover::after,.about-read:hover::after{
    transform:scaleX(1);
  }

  /* ---- Footer column links slide a touch toward their target on hover ---- */
  .fc ul li a{
    display:inline-block;
    transition:color .2s ease, transform var(--dur-ui) var(--ease);
  }
  .fc ul li a:hover{ transform:translateX(4px); }
}


/* ============================================================
   MOTION LAYER v5  (mega-dropdown choreography — Products, Industries,
   Services, Risks. The panels previously appeared as one instant block;
   this gives them a premium descent + a staggered item reveal.
   Reduced-motion aware. Item hidden-state is gated on a JS-added class
   (.mega-stagger) so the menus stay fully visible if JS is unavailable.)
   ============================================================ */
/* Deeper, navy-tinted floating shadow — reads more premium than the flat
   light shadow. (Not motion-related, so applies regardless of motion pref.) */
.mega-panel{
  box-shadow: 0 22px 52px -10px rgba(0,0,0,.20), 0 6px 18px rgba(0,0,0,.08);
}

@media (prefers-reduced-motion: no-preference){

  /* ---- Panel descent: a touch more travel + premium easing (overrides the
     base .18s / 6px slide further up the sheet) ---- */
  .mega-panel{
    transform: translateY(-13px);
    transform-origin: top center;
    transition: opacity var(--dur-ui) var(--ease),
                transform var(--dur-ui) var(--ease),
                visibility 0s .32s;
  }
  .has-mega.open .mega-panel{
    transform: translateY(0);
    transition: opacity var(--dur-ui) var(--ease),
                transform var(--dur-ui) var(--ease),
                visibility 0s 0s;
  }

  /* ---- Header + preview blocks rise in with the panel ---- */
  .mega-panel .ind-panel-head,
  .mega-panel .ind-panel-preview{
    opacity:0; transform:translateY(10px);
    transition: opacity .4s var(--ease) .03s,
                transform .4s var(--ease) .03s;
  }
  .has-mega.open .mega-panel .ind-panel-head,
  .has-mega.open .mega-panel .ind-panel-preview{ opacity:1; transform:none; }

  /* ---- Staggered item reveal. Opacity for every item; a rise is added only
     for the non-lifting items (.ind-dd-item / .risk-dd-item) so the
     .svc-dd-card hover-lift transform is never overridden. Per-item
     transition-delay is set inline by the v5 JS on open, cleared on close. ---- */
  .mega-panel .mega-stagger{
    opacity:0;
    transition: opacity .45s var(--ease),
                transform .45s var(--ease);
    will-change: opacity, transform;
  }
  .has-mega.open .mega-panel .mega-stagger{ opacity:1; }
  .mega-panel .ind-dd-item.mega-stagger,
  .mega-panel .risk-dd-item.mega-stagger{ transform: translateY(12px); }
  .has-mega.open .mega-panel .ind-dd-item.mega-stagger,
  .has-mega.open .mega-panel .risk-dd-item.mega-stagger{ transform: none; }
}


/* ============================================================
   LUXE LAYER  (sophistication pass — editorial serif display,
   warm paper canvas, italic serif pull-quote, and a focus-in
   headline entrance. Layered over the existing system; the
   motion is reduced-motion aware.)
   ============================================================ */


body{ background: var(--paper); }



/* ---- Editorial serif for display headings. Fraunces holds gravitas at
   a medium weight, so we step down from 800 (sans) to 600 (serif) and
   let optical sizing tune the cut at large sizes. Sizes/colours are left
   to the existing responsive rules; body copy stays Inter. ---- */
.hero h1,
.sec-h2, .svc-h2, .prv-h2, .risks-h2, .insights-h2, .cases-h2, .faq-h2{
  font-family: "Fraunces", "Fraunces-fallback", "Inter", Georgia, serif;
  font-optical-sizing: auto;
  font-weight: 500;
}
/* Hero: pin the optical size to the max so the display cut shows its
   highest stroke contrast (delicate hairlines), with a little more line
   breathing room and slightly opened tracking. Reads couture-editorial. */
.hero h1{
  font-weight: 500;
  font-variation-settings: "opsz" 144, "wght" 500;
  letter-spacing: -.015em;
  /* Fraunces' display cut has a tall natural line box (~1.23x at this opsz);
     1.12 made descenders collide with the next line's caps. 1.28 gives clean
     positive leading and reads airy/editorial, matching the chosen direction. */
  line-height: 1.28;
}
.sec-h2, .svc-h2, .prv-h2, .risks-h2, .insights-h2, .cases-h2, .faq-h2{
  letter-spacing: -.012em;
  line-height: 1.2;
}

/* ---- The hero pull-quote becomes an italic serif: the single most
   "advisory house" detail on the page. ---- */
.hero-purpose{
  font-family: "Fraunces", "Fraunces-fallback", Georgia, serif;
  font-style: italic;
  font-weight: 400;
  font-size: 1.14rem;
  letter-spacing: 0;
  color: rgba(255,255,255,.82);
}

@media (prefers-reduced-motion: no-preference){
  /* ---- Signature entrance: the serif headline resolves out of a soft
     blur and rise. The rest of the hero already cascades in (rfsRise);
     this gives the headline itself a premium focus-in moment, timed just
     after the eyebrow so the reveal reads top to bottom. ---- */
  .hero h1{
    opacity:0;
    animation: rfsHeroHead var(--dur-hero) var(--ease) .16s both;
    will-change: opacity, transform, filter;
  }
  @keyframes rfsHeroHead{
    from{ opacity:0; transform:translateY(26px); filter:blur(8px); }
    to  { opacity:1; transform:translateY(0);    filter:blur(0);   }
  }
}

/* ============================================================
   LUXE LAYER · theme-cohesion pass
   Makes the warm-editorial system consistent end to end:
   1) Warm the remaining stark-white (#FFF) sections to the paper
      tone, so the whole page shares one warm ground. The off-white
      (#F5F3EE) sections keep a quiet alternating rhythm against it.
   2) Carry the Fraunces serif onto the section-level statement
      headings that were still bold sans, so every major heading
      speaks in one editorial voice. Card and UI titles stay Inter
      on purpose, to preserve hierarchy.
   ============================================================ */

/* 1 · warm the white content sections. background-color only, so a
   section that also carries a background image keeps it. */
section.scale-band,
#about,
section.heritage,
#industries,
#policy-review,
#risks,
#insights,
#cases{
  background-color: var(--paper);
}

/* 2 · serif for the section-statement headings (peers of .sec-h2).
   Colours are inherited and untouched: navy on paper for heritage /
   industries, white over the dark image banners for svc/prod/faq.
   600 weight holds presence at their smaller display sizes. */
.heritage-h3,
.ind-full-h3,
.svc-banner-h3,
.prod-banner-h3,
.faq-banner-h3{
  font-family: "Fraunces", "Fraunces-fallback", "Inter", Georgia, serif;
  font-optical-sizing: auto;
  font-weight: 600;
  letter-spacing: -.01em;
  line-height: 1.2;
}

/* ════════════════════════════════════════════════
   LUXE LAYER · final polish pass (additive, reversible)
   Fills genuine micro-gaps without changing the design
   direction: sticky-nav scroll offset, branded text
   selection, on-brand form accents, clean touch feedback.
   ════════════════════════════════════════════════ */

/* The navbar is sticky at 70px and in-page links scroll
   smoothly, so anchored section headings were landing
   tucked behind it. Reserve the navbar height plus a
   little air for every scroll-to-anchor. */
html{ scroll-padding-top: calc(70px + 1rem); }

/* Text selection had no rule, so it showed the browser's
   default blue. A faint Action-Red wash tints rather than
   recolours, staying legible on warm paper and dark navy
   sections alike. */
::selection{ background: rgba(200, 32, 42, .16); }
::-moz-selection{ background: rgba(200, 32, 42, .16); }

/* Native form controls (checkboxes, radios, range) follow
   the brand navy instead of the browser default. */
:root{ accent-color: var(--shade, #1d1d1f); }

/* Remove the grey tap flash on touch devices; hover and
   :focus-visible already carry the interaction states. */
*{ -webkit-tap-highlight-color: transparent; }

/* ════════════════════════════════════════════════
   LUXE LAYER · print stylesheet
   Scoped entirely to @media print, so the on-screen
   experience is untouched. Goal: a clean, ink-light,
   black-on-white document when a client prints a page
   or saves it to PDF (common for B2B coverage review).
   ════════════════════════════════════════════════ */
@media print {
  /* Ink-on-white reset. Strips dark section backgrounds and
     decorative background images (no wasted ink, and no
     white-text-on-white), and forces legible black text. */
  *, *::before, *::after{
    background: transparent !important;
    background-image: none !important;
    color: #000 !important;
    box-shadow: none !important;
    text-shadow: none !important;
  }
  html, body{ background: var(--white) !important; }

  /* Hide interactive chrome and overlays that carry no
     meaning on paper: header, nav dropdowns, floating
     buttons, cookie bar, sticky CTA, progress bar, modals. */
  .topbar, .navbar, .mega-panel, .mega-backdrop,
  .quiz-overlay, .wa-widget, .cookie-banner,
  .sticky-cta, .qm-overlay, #rfs-top,
  [role="dialog"], [aria-modal="true"]{ display: none !important; }

  /* Keep visual units whole across page breaks, and never
     strand a heading at the foot of a page. */
  img, figure, table, blockquote{
    break-inside: avoid; page-break-inside: avoid;
  }
  h1, h2, h3, h4{ break-after: avoid; page-break-after: avoid; }

  /* Content images stay within the printable width. */
  img{ max-width: 100% !important; height: auto !important; }

  /* Readable links and a paper-appropriate base. */
  a{ text-decoration: underline; }
  body{ font-size: 12pt; line-height: 1.5; }
  @page{ margin: 16mm; }
}

/* ============================================================
   ACCESSIBILITY, WCAG 2.1 AA contrast lifts for secondary text.
   Centralised here so these win the cascade over both style copies.
   ============================================================ */
/* Muted body/label text on light backgrounds is handled by darkening
   the --muted token at the top of this stylesheet. The rules below lift
   low-opacity white text sitting on navy backgrounds to >= 4.5:1. */
.freg-label, .freg-note, .hp-head, .hp-l, .hs-item, .wi-n, .pledge-check,
.fc h6, .fc ul li a, #why .sec-label, .pm-sec-label,
.footer-bottom p, .footer-btm-links a, .footer-bottom ul li a, .footer-bottom a,
.ph-category, .ph-breadcrumb, .ph-breadcrumb a, .ph-stat-l,
.ph-panel-head, .ph-panel-item p {
  color: rgba(255,255,255,.6);
}
/* White section labels on dark sections */
#why .sec-label, .scale-band .sec-label, .news-band .sec-label,
.cta-band .sec-label, [style*="navy"] .sec-label { color: rgba(255,255,255,.62); }

/* IMAGE LOADING, shimmer skeleton then reveal for content photos (JS-gated; not logos) */
img.rfs-img{ background-color:#e6eaf0; background-image:linear-gradient(100deg,#e6eaf0 28%,#eef1f5 50%,#e6eaf0 72%); background-size:200% 100%; background-repeat:no-repeat; animation:rfsImgShim 1.5s linear infinite; color:transparent; }
img.rfs-img.rfs-ready{ animation:none; background:none; color:inherit; }
@keyframes rfsImgShim{ to{ background-position:-200% 0; } }
@media (prefers-reduced-motion: reduce){ img.rfs-img{ animation:none; } }

/* ============================================================
   SECTION EYEBROW STANDARDISATION
   Six sections (Services, Risks, Insights, Cases, FAQ, Heritage) shipped a
   bespoke muted, wide-tracked eyebrow with a separate rule bar. Converge them
   on the canonical .sec-label: red text, .1em tracking, inline 18px red rule.
   ============================================================ */
.svc-label, .risks-label, .insights-label, .cases-label, .faq-label, .heritage-label {
  font-size: .72rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;
  color: var(--red); margin-bottom: .85rem; display: flex; align-items: center; gap: .55rem;
}
.svc-label::before, .risks-label::before, .insights-label::before,
.cases-label::before, .faq-label::before, .heritage-label::before {
  content: ""; width: 18px; height: 2px; background: var(--red); flex-shrink: 0;
}
.svc-rule, .risks-rule, .insights-rule, .cases-rule, .faq-rule, .heritage-rule { display: none; }
/* unify vertical rhythm with .sec (these shipped a fixed 6rem/5rem instead of the fluid scale) */
.svc-sec, .risks-sec, .insights-sec, .cases-sec, .faq-sec {
  padding-top: clamp(3.5rem,7vw,5.5rem); padding-bottom: clamp(3.5rem,7vw,5.5rem);
}

/* ============================================================
   INTERACTION CONSISTENCY + POLISH
   ============================================================ */
/* The consolidated premium card-hover (lift + soft shadow) omitted the product
   and industry grids; extend it so every card on the page responds the same. */
.pc, .ind-c { transition: background .2s ease, transform var(--dur-ui) var(--ease), box-shadow .3s ease; }
@media (prefers-reduced-motion: no-preference){
  .pc:hover, .ind-c:hover { transform: translateY(-4px); z-index: 2;
    box-shadow: 0 16px 36px rgba(0,0,0,.16), 0 2px 8px rgba(0,0,0,.07); }
  /* subtle icon lift on the icon-card grids */
  .pc-ic, .ind-ic, .cov-ic { transition: background .2s ease, transform var(--dur-ui) var(--ease); }
  .pc:hover .pc-ic, .ind-c:hover .ind-ic, .cov-item:hover .cov-ic { transform: translateY(-2px) scale(1.05); }
}
/* CTA links: finish the migration onto the brand red so every link hover matches
   (these two were the last left on blue; the rest already shift to red). */
.link-more:hover { color: var(--red); }
.rel-card:hover .rel-lnk { color: var(--red); }

/* radius: align the modal and form surfaces with the 2-3px editorial system */
.qm-dialog { border-radius: 3px; }
.qm-seg, .qm-submit, .qm-fg input, .qm-fg select, .qm-fg textarea, .cf-success { border-radius: 2px; }
.legal-draft-note { border-radius: 3px; }

/* ============================================================
   INTERACTIVE LAYER — insight image zoom on hover
   ============================================================ */
/* Insight cards: clip the thumb and zoom the photo on hover. The image moves to
   a ::before (fed by the --img custom property set inline) so the frame stays
   fixed while only the photo scales. */
.insight-thumb { position: relative; overflow: hidden; }
.insight-thumb::before {
  content: ""; position: absolute; inset: 0;
  background: var(--img) center / cover no-repeat;
  transform: scale(1.001);   /* hide sub-pixel edges */
}
@media (prefers-reduced-motion: no-preference){
  .insight-thumb::before { transition: transform .65s var(--ease); }
  .insight-card:hover .insight-thumb::before { transform: scale(1.06); }
}

/* ============================================================
   MARSH-STYLE PREMIUM PASS — type discipline + restraint
   Appended last so it sets the final, consistent rhythm.
   ============================================================ */
/* 1 · One confident, consistent scale for the section-statement headings.
   They already share the Fraunces serif; this removes the size drift that
   made each section feel slightly different. */
.sec-h2, .risks-h2, .prv-h2, .ind-full-h3, .heritage-h3 {
  font-size: clamp(1.9rem, 2.9vw, 2.6rem);
  line-height: 1.14;
  letter-spacing: -.02em;
}
/* A little more air between a section's header and its content. */
.sec-hdr { margin-bottom: clamp(2.6rem, 4vw, 3.6rem); }

/* 2 · Slim the decorative photo banners so the writing leads, not the
   imagery (marsh-style restraint; they were 200-220px tall). */
.prod-banner { height: 150px; }
.svc-banner  { height: 160px; }

/* 3 · More generous, consistent vertical rhythm. Big-broker sites breathe;
   this opens the sections up without changing any content. */
.sec,
.svc-sec, .risks-sec, .insights-sec, .cases-sec, .faq-sec {
  padding-top: clamp(4.25rem, 7.5vw, 7rem);
  padding-bottom: clamp(4.25rem, 7.5vw, 7rem);
}

/* ============================================================
   STEP 11 — SMART NAVIGATION
   ============================================================ */
/* Anchor targets clear the sticky header (70px) when jumped to, so a
   section heading is never hidden behind the nav bar. */
[id] { scroll-margin-top: 88px; }

/* In-page smooth scrolling, but only when motion is welcome. */
@media (prefers-reduced-motion: reduce){
  html { scroll-behavior: auto !important; }
}

/* Header hides on scroll-down and reveals on scroll-up (JS toggles
   body.nav-hidden). It never hides near the top or while a menu is open. */
.navbar { transition: transform var(--dur-ui) var(--ease), box-shadow .3s ease; will-change: transform; }
body.nav-hidden .navbar { transform: translateY(-100%); }
@media (prefers-reduced-motion: reduce){
  .navbar { transition: box-shadow .3s ease; }
  body.nav-hidden .navbar { transform: none; }   /* stay put under reduced motion */
}

/* ============================================================
   STEP 13 — MICRO-TYPOGRAPHY & FINISHING CSS
   ============================================================ */
/* Balance headings (no lonely last word) and tidy the paragraph rag
   (kills widows/orphans where supported; degrades to normal wrap). */
h1, h2, h3, h4, h5, h6 { text-wrap: balance; }
p, li, blockquote, .sec-lead, figcaption { text-wrap: pretty; }

/* Brand text selection. */
::selection    { background: var(--red); color: #fff; }
::-moz-selection { background: var(--red); color: #fff; }

/* Subtle, on-brand, theme-aware scrollbars (Firefox + Chromium). */
* { scrollbar-width: thin; scrollbar-color: var(--border2) transparent; }
::-webkit-scrollbar { width: 12px; height: 12px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
  background: var(--border2); border-radius: 999px;
  border: 3px solid var(--paper); background-clip: padding-box;
}
::-webkit-scrollbar-thumb:hover { background: var(--muted); }

/* ============================================================
   STEP 10 — ACCESSIBILITY
   ============================================================ */
/* Skip-to-content link: hidden until keyboard focus, then pinned top-left. */
.skip-link {
  position: fixed; top: 10px; left: 10px; z-index: var(--z-toast);
  background: var(--shade); color: #fff; padding: .7rem 1.1rem;
  border-radius: 3px; font-weight: 600; font-size: .9rem; text-decoration: none;
  transform: translateY(-160%); transition: transform .18s ease;
}
.skip-link:focus { transform: translateY(0); outline: 2px solid #fff; outline-offset: 2px; }
#home-main:focus { outline: none; }   /* programmatic focus target, no ring */
@media (prefers-reduced-motion: reduce){ .skip-link { transition: none; } }

/* ============================================================
   STEP 12 — FORM UX
   ============================================================ */
/* Inline validity feedback. :user-invalid only flags a field the user has
   actually interacted with, so a form never looks angry on load. */
input:user-invalid, select:user-invalid, textarea:user-invalid {
  border-color: var(--red);
  box-shadow: 0 0 0 3px rgba(200,32,42,.14);
}
input:user-valid, select:user-valid, textarea:user-valid {
  border-color: #1a7f4b;
}
/* Keep autofilled fields on-brand: defeat the yellow flash, and follow the
   theme (surface via --white, text via --ink). */
input:-webkit-autofill, input:-webkit-autofill:hover,
input:-webkit-autofill:focus, textarea:-webkit-autofill, select:-webkit-autofill {
  -webkit-text-fill-color: var(--ink);
  -webkit-box-shadow: 0 0 0 1000px var(--white) inset;
  caret-color: var(--ink);
  transition: background-color 9999s ease-out 0s;
}

/* ============================================================
   STEP 15 — PERFORMANCE
   Fonts are self-hosted (Latin variable woff2, font-display:swap, preloaded,
   metric-matched fallbacks) so there is no third-party request. Here we skip
   rendering the long bottom sections until they near the viewport;
   contain-intrinsic-size reserves space so the scrollbar and anchor offsets
   stay stable.
   ============================================================ */
[role="contentinfo"], #faq, #contact {
  content-visibility: auto;
  contain-intrinsic-size: auto 600px;
}

/* ============================================================
   STEP 14 — TRANSITIONS & FEEDBACK
   ============================================================ */
/* Product-route crossfade (View Transitions API; degrades to instant). */
@media (prefers-reduced-motion: no-preference){
  ::view-transition-old(root), ::view-transition-new(root) { animation-duration: .28s; }
}
/* Toast notifications (window.rfsToast). */
#rfs-toasts {
  position: fixed; right: 18px; bottom: 18px; z-index: var(--z-toast);
  display: flex; flex-direction: column; gap: 10px;
  max-width: min(92vw, 380px); pointer-events: none;
}
.rfs-toast {
  pointer-events: auto; cursor: pointer;
  background: var(--shade); color: #fff; padding: .85rem 1.05rem; border-radius: 3px;
  font-size: .9rem; font-weight: 500; line-height: 1.45;
  box-shadow: 0 12px 30px rgba(0,0,0,.28);
  opacity: 0; transform: translateY(10px);
  transition: opacity .3s ease, transform var(--dur-ui) var(--ease);
}
.rfs-toast.is-in     { opacity: 1; transform: none; }
.rfs-toast.is-success { background: #0f6b40; }
.rfs-toast.is-error   { background: var(--red); }
@media (prefers-reduced-motion: reduce){
  .rfs-toast { transition: opacity .2s ease; transform: none; }
}

/* ============================================================
   STEP 18 — RESTRAINED VISUAL RICHNESS (deliberately subtle)
   Card hover-lift, image hover-zoom and scroll-triggered counters already
   ship; modals/dropdowns already use backdrop-blur. This adds only a faint
   film grain for depth. (Frosted-glass nav is intentionally left off: it
   needs a transparent header + visual tuning best judged by eye.)
   ============================================================ */
body::after {
  content: ""; position: fixed; inset: 0; z-index: 1; pointer-events: none;
  opacity: .02; mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size: 150px 150px;
}

/* ============================================================
   STEP 8 — DARK THEME TOGGLE (sits in the navy utility bar)
   ============================================================ */
.theme-toggle {
  display: inline-flex; align-items: center; justify-content: center;
  width: 34px; height: 30px; padding: 0;
  background: none; border: 0; cursor: pointer;
  color: rgba(255,255,255,.62); transition: color .2s;
}
.theme-toggle:hover { color: #fff; }
.theme-toggle svg { width: 15px; height: 15px; }
.theme-toggle .th-moon { display: none; }
:root[data-theme="dark"] .theme-toggle .th-sun  { display: none; }
:root[data-theme="dark"] .theme-toggle .th-moon { display: inline; }
/* keep "IRDAI Registered Advisor" on the left, cluster the utilities right */
.topbar { justify-content: flex-start !important; }
.topbar > a[data-i18n="topbar_irdai"] { margin-right: auto; }

/* ============================================================
   STEP 9 — FLUID & RESPONSIVE (touch targets)
   Fluid type/spacing already uses clamp() throughout (88 uses). Here we
   guarantee comfortable touch targets on coarse pointers for the small
   icon-only controls. (Per-breakpoint layout reconsideration and
   container queries are follow-ups best done with on-device testing.)
   ============================================================ */
@media (pointer: coarse){
  .qm-close, [data-qm-close], .quiz-close, .lang-btn {
    min-width: 44px; min-height: 44px;
  }
  .theme-toggle { min-width: 44px; }   /* wider tap area; bar height stays */
  /* generous hit area on the mobile-nav rows */
  .nbm-link { min-height: 48px; }
}

/* ============================================================
   POLISH — frosted nav, container queries, nested-radius note
   ============================================================ */
/* Frosted-glass sticky header. Theme-aware via --white; only engaged where
   both backdrop-filter and color-mix are supported, otherwise the solid
   surface from the base .navbar rule stands. */
@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) and (background: color-mix(in srgb, white, black)) {
  .navbar {
    background: color-mix(in srgb, var(--white) 82%, transparent);
    -webkit-backdrop-filter: blur(12px) saturate(1.15);
    backdrop-filter: blur(12px) saturate(1.15);
  }
}

/* Container queries: the insight + case cards adapt to their container width
   (not just the viewport), so they stay comfortable if ever placed in a
   narrower column than the main grid. */
.insights-grid, .cases-grid { container-type: inline-size; }
@container (max-width: 330px) {
  .insight-body, .case-body { padding-left: 1rem; padding-right: 1rem; }
  .insight-sum, .case-meta { font-size: .86rem; }
}

/* Nested radius: the system uses small 2-4px outer radii, so inner elements
   stay sharp (inner = outer - padding <= 0). Concentric by construction. */

/* Dark-mode contrast fix: this tag is a near-opaque white pill over a photo
   in BOTH themes, so its text must stay dark (it was caught by the navy->
   text-strong migration, which would otherwise lighten it onto white). */
.contact-image-tag { color: var(--shade); }

/* ============================================================
   LOGO PLATE — a constant white trapezium behind the brand mark + name,
   so the logo always sits on its intended white in BOTH themes (the navy
   parts of the mark stay defined on the dark bar). The drop-shadow follows
   the clip-path, giving the plate definition on the light bar too.
   ============================================================ */
.nb-logo {
  position: relative; isolation: isolate;
  /* The red shows only as a crisp accent line along the diagonal (the white
     ::before face sits 3px inset, parallel to the cut). */
  background: var(--red);
  /* Bleed the plate to the page's left edge (centred max-width bar; body has
     overflow-x:hidden so this adds no scrollbar). */
  margin-left: calc(50% - 50vw);
  height: 70px;                                    /* fill the bar top-to-bottom, no gap */
  padding: 0 46px 0 clamp(1.1rem, 3vw, 2.1rem);
  border-radius: 0;                                                /* crisp corners */
  clip-path: polygon(0 0, 100% 0, calc(100% - 40px) 100%, 0 100%); /* sharp diagonal */
  filter: drop-shadow(0 3px 6px rgba(0, 0, 0, .24)) drop-shadow(0 0 1px rgba(0, 0, 0, .38));
}
.nb-logo::before {
  content: ""; position: absolute; inset: 0; z-index: -1; background: #fff;
  clip-path: polygon(0 0, calc(100% - 3px) 0, calc(100% - 43px) 100%, 0 100%);
}
.nb-logo:hover { opacity: 1; filter: drop-shadow(0 4px 9px rgba(0, 0, 0, .30)) drop-shadow(0 0 1px rgba(0, 0, 0, .38)); }
/* On the white plate the wordmark + fallback mark stay dark in both themes. */
.nb-logo .nb-logo-word strong { color: var(--shade); }
.nb-logo .nb-logo-word span   { color: #5b6472; }
.nb-logo .nb-logo-mark        { color: var(--shade); }

/* ============================================================
   VISIBILITY FIX — quote-modal helper text used hardcoded greys
   (#98a2b3 failed on white in light; #5b6472 failed on dark in dark).
   Route them through the theme-adaptive --muted so they pass AA in both.
   ============================================================ */
.qm-opt, .qm-est-foot, .qm-fineprint, .qm-seg-btn, .qm-est-band { color: var(--muted); }

/* Soft status badges (translucent tint + same-hue text) lose contrast over a
   dark surface; give them a stronger tint and brighter text in dark mode. */
:root[data-theme="dark"] .qm-est-band { background: #242424; color: var(--body); }
:root[data-theme="dark"] .qm-est-band[data-level="1"],
:root[data-theme="dark"] .cf-success { background: rgba(46,160,100,.16); color: #6bd6a0; border-color: rgba(46,160,100,.40); }
:root[data-theme="dark"] .qm-est-band[data-level="2"] { background: rgba(214,158,46,.18); color: #edc06a; }
:root[data-theme="dark"] .qm-est-band[data-level="3"] { background: rgba(232,72,79,.18); color: #f59498; }

/* ============================================================
   HEADER REFINEMENT — legible utility bar, a CTA that pops on dark,
   and a touch more presence for the logo plate.
   ============================================================ */
/* Brighter, more confident utility-bar links. */
.topbar a { color: rgba(255,255,255,.66); }
.topbar a:hover { color: #fff; }
/* The navy "Get a Quote" reads on the light bar but blends into the dark bar;
   switch the primary CTA to brand red in dark so it always stands out. */
:root[data-theme="dark"] .nb-quote { background: var(--red); }
:root[data-theme="dark"] .nb-quote:hover { background: var(--red-h); }
/* A hair more shadow so the white plate has presence even on the light bar. */
.nb-logo { filter: drop-shadow(0 3px 7px rgba(0, 0, 0, .30)) drop-shadow(0 0 1px rgba(0, 0, 0, .48)); }

/* ============================================================
   IMAGERY VIBRANCY — the photos were grayscaled and washed in navy, so
   everything read as a flat, dull blue. Keep the photos in colour and use
   NEUTRAL dark scrims (not navy) so they stay legible and look good in
   BOTH themes, while the image's own colour comes through.
   ============================================================ */
/* Photos in full colour, with a touch of pop. */
.case-thumb { filter: saturate(1.08) contrast(1.02) !important; }
.svc-banner-img, .prod-banner-img, .faq-banner-img { filter: saturate(1.12) !important; }
.scale-band-bg { filter: none !important; opacity: .07; }
.cta-band-bg   { filter: none !important; opacity: .18; }
/* Let the hero photo actually read instead of being 86% navy. */
.hero-img-bg   { opacity: .26; }
/* Neutral text scrim on the photo banners: dark where the copy sits, fading
   to reveal the photo's colour on the open side. */
.svc-banner-overlay, .prod-banner-overlay, .faq-banner-overlay {
  background: linear-gradient(100deg,
    rgba(10,10,11,.88) 0%, rgba(10,10,11,.66) 50%, rgba(10,10,11,.24) 100%) !important;
}
/* Contact image: colour + a theme-aware scrim (light in light mode for the
   dark caption, dark in dark mode so it doesn't sit as a bright patch). */
.contact-image { filter: saturate(1.05) !important; }
:root[data-theme="dark"] .contact-image-overlay {
  background: linear-gradient(135deg,
    rgba(10,10,10,.85) 0%, rgba(10,10,10,.66) 55%, rgba(10,10,10,.32) 100%) !important;
}



body {
  background:
    linear-gradient(180deg, #ffffff 0%, #F6F4F0 48%, #ffffff 100%);
  color: var(--ink);
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: -1;
  background-image:
    linear-gradient(rgba(0, 0, 0, .035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0, 0, 0, .028) 1px, transparent 1px);
  background-size: 44px 44px;
  mask-image: linear-gradient(to bottom, rgba(0,0,0,.45), transparent 52%);
}

.topbar {
  height: 38px;
  background: #0b0b0c;
  border-bottom: 1px solid rgba(255, 255, 255, .08);
}

.topbar a {
  color: rgba(255, 255, 255, .66);
  border-color: rgba(255, 255, 255, .12);
}

.navbar {
  height: 78px;
  background: rgba(255, 255, 255, .92);
  border-bottom: 1px solid rgba(17, 24, 39, .1);
  backdrop-filter: blur(18px);
}

.navbar.scrolled {
  box-shadow: 0 18px 45px rgba(0, 0, 0, .1);
}

.nb-logo img,
.rfs-logo-img {
  max-height: 46px;
}

.nb-links > li > a,
.nb-contact {
  color: rgba(17, 24, 39, .76);
  font-weight: 650;
}

.nb-links > li > a:hover,
.nb-contact:hover {
  color: var(--shade);
}

.nb-quote,
.btn-red,
.btn-submit,
.qm-submit,
.quiz-next {
  border-radius: 3px;
  background: var(--red);
  box-shadow: 0 10px 24px rgba(169, 31, 43, .2);
}

.nb-quote:hover,
.btn-red:hover,
.btn-submit:hover,
.qm-submit:hover,
.quiz-next:hover {
  background: var(--red-h);
}

.hero {
  min-height: 560px;
  background: #0b0b0c;
}

.hero-img-bg {
  opacity: .78 !important;
  filter: saturate(.92) contrast(1.05);
  background-position: center right !important;
}

.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(10,10,11,.96) 0%, rgba(10,10,11,.82) 42%, rgba(10,10,11,.28) 78%, rgba(10,10,11,.2) 100%),
    linear-gradient(180deg, rgba(10,10,11,.1) 0%, rgba(10,10,11,.18) 62%, rgba(10,10,11,.82) 100%);
}

.hero-body,
.hero-strip {
  position: relative;
  z-index: 1;
}

.hero-bg,
.hero-lines {
  position: absolute;
  z-index: 0;
}

.hero-bg svg {
  opacity: .055;
}

.hero-body {
  padding-top: 40px;
  padding-bottom: 16px;
}

.hero-inner {
  grid-template-columns: minmax(0, 1fr) minmax(320px, 390px);
  gap: 68px;
}

.hero-category,
.sec-label,
.crm-label,
.vfeat-label {
  color: var(--premium-gold);
  letter-spacing: .13em;
}

.hero-category-dot,
.sec-label::before,
.crm-label::before,
.vfeat-label::before {
  background: var(--premium-gold);
}

.hero h1 {
  max-width: 760px;
  font-family: "Fraunces", "Fraunces-fallback", Georgia, serif;
  font-size: 68px;
  font-weight: 500;
  line-height: .98;
  letter-spacing: 0;
}

.hero h1 span {
  color: var(--premium-gold-soft);
}

.hero-purpose {
  max-width: 620px;
  padding-left: 1.15rem;
  border-color: var(--premium-gold);
  color: rgba(255, 255, 255, .84);
  font-size: 18px;
  font-style: normal;
}

.hero-desc {
  max-width: 650px;
  color: rgba(255, 255, 255, .72);
  font-size: 16px;
  line-height: 1.65;
  margin-bottom: 24px;
}

.btn-ghost-w {
  border-color: rgba(255, 255, 255, .34);
  border-radius: 3px;
  background: rgba(255, 255, 255, .06);
}

.hero-quiz-link {
  color: rgba(165, 209, 255, .9);
}

.hero-panel {
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 8px;
  background: rgba(10, 10, 11, .58);
  box-shadow: 0 28px 80px rgba(0, 0, 0, .26);
  backdrop-filter: blur(18px);
}

.hp-head {
  padding: 1rem 1.35rem;
}

.hp-stat {
  padding: 1.05rem 1.35rem;
}

.hp-n {
  font-size: 1.82rem;
}

.hp-foot {
  padding: .9rem 1.35rem;
}

.hp-head,
.hp-foot {
  border-color: rgba(255, 255, 255, .12);
}

.hp-stat {
  border-color: rgba(255, 255, 255, .1);
}

.hp-n {
  font-family: "Fraunces", "Fraunces-fallback", Georgia, serif;
  font-weight: 500;
}

.hp-n em,
.triad-sep {
  color: var(--premium-gold);
}

.hp-badge {
  color: #111113;
  border-color: rgba(165, 209, 255, .6);
  background: var(--premium-gold-soft);
}

.hero-strip {
  border-top-color: rgba(255, 255, 255, .12);
  background: rgba(10, 10, 11, .54);
  backdrop-filter: blur(14px);
  padding-top: 14px;
  padding-bottom: 14px;
}

.hs-item {
  color: rgba(255, 255, 255, .68);
}

.hs-item::before {
  background: var(--premium-gold);
}

.sec {
  padding-top: 96px;
  padding-bottom: 96px;
}

.sec-h2,
.heritage-h3,
.prod-hero h1,.prod-hero h2[data-route-h1],
.crm-h2,
.brief-panel h2,
.glo-title,
.legal-title {
  font-family: "Fraunces", "Fraunces-fallback", Georgia, serif;
  font-weight: 500;
  letter-spacing: 0;
}

.sec-h2 {
  max-width: 760px;
  font-size: 48px;
  line-height: 1.04;
}

.sec-lead,
.about-copy p,
.ind-intro-p,
.legal-body p,
.glo-def {
  color: rgba(17, 24, 39, .68);
}

.awards-strip,
.logos-strip {
  background: rgba(255, 255, 255, .86);
  border-color: rgba(17, 24, 39, .08);
}

.logo-item,
.award-item {
  border-radius: 8px;
  background: #ffffff;
  border: 1px solid rgba(17, 24, 39, .08);
}

.about-img-block,
.about-discover-banner,
.prod-banner,
.prod-tab-img,
.svc-banner,
.faq-banner,
.cta-band,
.scale-band,
.contact-card,
.ci,
.img-block,
.case-card,
.insight-card,
.heritage-image-wrap {
  overflow: hidden;
  border-radius: 8px;
  box-shadow: var(--premium-shadow-soft);
}

.about-img-block img,
.prod-tab-img img,
.img-block img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.92) contrast(1.04);
  transition: transform .7s ease, filter .25s ease;
}

.about-img-block:hover img,
.prod-tab-img:hover img,
.img-block:hover img {
  transform: scale(1.035);
  filter: saturate(1) contrast(1.06);
}

.prod-banner-img,
.svc-banner-img,
.faq-banner-img,
.cta-band-bg,
.scale-band-bg,
.why-bg-image,
.about-discover-img,
.contact-image,
.ph-bg,
.ind-bg,
.case-thumb,
.insight-thumb,
.prv-thumb,
.iddp-image,
.mrp-image {
  filter: saturate(.9) contrast(1.04);
}

.prod-banner-overlay,
.prod-tab-img-overlay {
  background: linear-gradient(90deg, rgba(10,10,11,.9) 0%, rgba(10,10,11,.65) 44%, rgba(10,10,11,.18) 100%);
}

.pc,
.svc-card,
.ind-c,
.why-item,
.kpi,
.pillar,
.crm-feat,
.experience-grid article,
.ind-min,
.ind-risk-card,
.ind-prod-card,
.cov-item,
.who-card,
.ben-card,
.rel-card,
.glo-card,
.legal-card,
.faq-item,
.quiz-opt,
.qm-est-card {
  border-radius: 8px;
  border-color: rgba(17, 24, 39, .1);
  background: rgba(255, 255, 255, .92);
  box-shadow: 0 1px 0 rgba(255,255,255,.85) inset;
}

.pc,
.svc-card,
.ind-c,
.insight-card,
.case-card,
.rel-card,
.ind-prod-card,
.ind-risk-card {
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease, background .22s ease;
}

.pc:hover,
.svc-card:hover,
.ind-c:hover,
.insight-card:hover,
.case-card:hover,
.rel-card:hover,
.ind-prod-card:hover,
.ind-risk-card:hover {
  transform: translateY(-4px);
  border-color: rgba(41, 151, 255, .42);
  background: #ffffff;
  box-shadow: var(--premium-shadow-soft);
}

.pc-ic,
.ind-ic,
.ben-ic,
.cov-ic,
.ph-panel-ic {
  color: var(--shade);
  background: rgba(41, 151, 255, .18);
}

.pc-arr,
.ind-arrow {
  color: var(--premium-gold);
}

#why,
.crm-band,
.brief-section,
.prod-hero,
.footer {
  background:
    linear-gradient(135deg, #0b0b0c 0%, #131315 60%, #1a1a1c 100%);
}

.why-card,
.crm-feat,
.ph-panel,
.freg-cell {
  border-color: rgba(255, 255, 255, .14);
  background: rgba(255, 255, 255, .055);
}

.prod-hero {
  min-height: 72svh;
}

.ph-bg {
  opacity: .5 !important;
  transform: scale(1.01);
}

.ph-grad {
  background:
    linear-gradient(90deg, rgba(10,10,11,.96) 0%, rgba(10,10,11,.74) 54%, rgba(10,10,11,.22) 100%),
    linear-gradient(180deg, rgba(10,10,11,.14) 0%, rgba(10,10,11,.72) 100%);
}

.ph-panel {
  border-radius: 8px;
  backdrop-filter: blur(14px);
}

.mega-panel,
.ind-panel,
.risk-dd-panel,
.svc-dd-panel {
  border-color: rgba(17, 24, 39, .12);
  border-radius: 0 0 8px 8px;
  box-shadow: 0 34px 90px rgba(0, 0, 0, .18);
}

.ind-panel-preview,
.mega-right-preview {
  border-radius: 8px;
}

.ind-dd-item,
.prod-dd-item,
.mega-item,
.mega-right-item,
.risk-dd-item {
  border-radius: 6px;
}

.contact-card,
.qm-dialog,
.quiz-modal {
  border-radius: 8px;
  box-shadow: var(--premium-shadow);
}

input,
textarea,
select,
.qm-fg input,
.qm-fg textarea,
.qm-fg select {
  border-radius: 6px;
  border-color: rgba(17, 24, 39, .16);
  background: #ffffff;
}

input:focus,
textarea:focus,
select:focus,
.qm-fg input:focus,
.qm-fg textarea:focus,
.qm-fg select:focus {
  border-color: var(--premium-gold);
  box-shadow: 0 0 0 4px rgba(41, 151, 255, .16);
}

.footer-logo-img {
  filter: none;
}

@media (max-width: 980px) {
  .hero {
    min-height: 620px;
  }

  .hero-inner {
    grid-template-columns: 1fr;
    gap: 34px;
  }

  .hero h1 {
    font-size: 54px;
  }

  .sec-h2 {
    font-size: 40px;
  }

  .navbar {
    height: 70px;
  }
}

@media (max-width: 640px) {
  .topbar {
    height: 34px;
  }

  .hero-body {
    padding: 48px 20px 38px;
  }

  .hero-inner {
    gap: 0;
  }

  .hero h1 {
    font-size: 40px;
    line-height: 1.02;
  }

  .hero-purpose {
    font-size: 16px;
    margin-bottom: 18px;
  }

  .hero-desc {
    margin-bottom: 18px;
    font-size: 15px;
  }

  .hero-panel {
    display: none;
  }

  .hero-actions {
    gap: 8px;
  }

  .hero-actions .btn-red,
  .hero-actions .btn-ghost-w {
    padding: .78rem 1rem;
    font-size: .78rem;
  }

  .hero-quiz-link {
    flex-basis: 100%;
    font-size: .82rem;
  }

  .hero-strip {
    display: none;
  }

  .sec {
    padding-top: 68px;
    padding-bottom: 68px;
  }

  .sec-h2 {
    font-size: 34px;
  }
}

/* Gold section labels: #2E86E8 is a graphic accent, not a text colour, on
   cream (2.26:1). Small label TEXT uses this deeper bronze (4.8:1); the
   gold ::before bars stay bright. The hero label sits on navy and keeps
   the bright gold via the .hero-category rule above. */
.sec-label,
.crm-label,
.vfeat-label {
  color: #0063BF;   /* 5.1:1 even on the deeper --off surface */
}



/* Red as a FILL under white text: the bright text-red only manages ~3.3:1,
   so solid controls keep a deeper shade (white on #A0171C is ~6:1). */
:root[data-theme="dark"] .btn-red,
:root[data-theme="dark"] .nb-quote,
:root[data-theme="dark"] .nbm-quote,
:root[data-theme="dark"] .why-cta,
:root[data-theme="dark"] .btn-submit,
:root[data-theme="dark"] .qm-submit,
:root[data-theme="dark"] .quiz-next,
:root[data-theme="dark"] .prv-submit,
:root[data-theme="dark"] .news-submit,
:root[data-theme="dark"] .wi:hover .wi-n {
  background: #A0171C;
}

:root[data-theme="dark"] .btn-red:hover,
:root[data-theme="dark"] .nb-quote:hover,
:root[data-theme="dark"] .nbm-quote:hover,
:root[data-theme="dark"] .why-cta:hover,
:root[data-theme="dark"] .btn-submit:hover,
:root[data-theme="dark"] .qm-submit:hover,
:root[data-theme="dark"] .quiz-next:hover,
:root[data-theme="dark"] .prv-submit:hover,
:root[data-theme="dark"] .news-submit:hover {
  background: #BC1B22;
}

:root[data-theme="dark"] body {
  background: linear-gradient(180deg, #121212 0%, #1a1a1c 48%, #121212 100%);
}

:root[data-theme="dark"] body::before {
  background-image:
    linear-gradient(rgba(255, 255, 255, .04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .032) 1px, transparent 1px);
}

:root[data-theme="dark"] .navbar {
  background: rgba(18, 17, 16, .92);
  border-bottom: 1px solid rgba(255, 255, 255, .1);
}

:root[data-theme="dark"] .nb-links > li > a,
:root[data-theme="dark"] .nb-contact {
  color: rgba(236, 233, 228, .78);
}

:root[data-theme="dark"] .nb-links > li > a:hover,
:root[data-theme="dark"] .nb-contact:hover {
  color: #ffffff;
}

/* On the warm black the bright gold itself clears AA for the small labels. */
:root[data-theme="dark"] .sec-label,
:root[data-theme="dark"] .crm-label,
:root[data-theme="dark"] .vfeat-label {
  color: var(--premium-gold);
}

:root[data-theme="dark"] .sec-lead,
:root[data-theme="dark"] .about-copy p,
:root[data-theme="dark"] .ind-intro-p,
:root[data-theme="dark"] .legal-body p,
:root[data-theme="dark"] .glo-def {
  color: rgba(236, 233, 228, .66);
}

:root[data-theme="dark"] .awards-strip,
:root[data-theme="dark"] .logos-strip {
  background: rgba(20, 19, 18, .88);
  border-color: rgba(255, 255, 255, .08);
}

:root[data-theme="dark"] .logo-item,
:root[data-theme="dark"] .award-item {
  background: #1b1b1d;
  border: 1px solid rgba(255, 255, 255, .09);
}

/* Card surfaces: same warm hue family as the light theme, inverted. */
:root[data-theme="dark"] .pc,
:root[data-theme="dark"] .svc-card,
:root[data-theme="dark"] .ind-c,
:root[data-theme="dark"] .why-item,
:root[data-theme="dark"] .kpi,
:root[data-theme="dark"] .pillar,
:root[data-theme="dark"] .experience-grid article,
:root[data-theme="dark"] .ind-min,
:root[data-theme="dark"] .ind-risk-card,
:root[data-theme="dark"] .ind-prod-card,
:root[data-theme="dark"] .cov-item,
:root[data-theme="dark"] .who-card,
:root[data-theme="dark"] .ben-card,
:root[data-theme="dark"] .rel-card,
:root[data-theme="dark"] .glo-card,
:root[data-theme="dark"] .legal-card,
:root[data-theme="dark"] .faq-item,
:root[data-theme="dark"] .quiz-opt,
:root[data-theme="dark"] .qm-est-card {
  border-color: rgba(255, 255, 255, .1);
  background: rgba(27, 25, 23, .92);
  box-shadow: 0 1px 0 rgba(255, 255, 255, .04) inset;
}

:root[data-theme="dark"] .pc:hover,
:root[data-theme="dark"] .svc-card:hover,
:root[data-theme="dark"] .ind-c:hover,
:root[data-theme="dark"] .insight-card:hover,
:root[data-theme="dark"] .case-card:hover,
:root[data-theme="dark"] .rel-card:hover,
:root[data-theme="dark"] .ind-prod-card:hover,
:root[data-theme="dark"] .ind-risk-card:hover {
  background: #222224;
  border-color: rgba(41, 151, 255, .45);
  box-shadow: var(--premium-shadow-soft);
}

/* Icon chips: navy is invisible on dark; use the gold accent instead. */
:root[data-theme="dark"] .pc-ic,
:root[data-theme="dark"] .ind-ic,
:root[data-theme="dark"] .ben-ic,
:root[data-theme="dark"] .cov-ic,
:root[data-theme="dark"] .ph-panel-ic {
  color: var(--premium-gold-soft);
  background: rgba(41, 151, 255, .14);
}

:root[data-theme="dark"] input,
:root[data-theme="dark"] textarea,
:root[data-theme="dark"] select,
:root[data-theme="dark"] .qm-fg input,
:root[data-theme="dark"] .qm-fg textarea,
:root[data-theme="dark"] .qm-fg select {
  background: #1b1b1d;
  border-color: rgba(255, 255, 255, .16);
  color: var(--ink);
}

:root[data-theme="dark"] .mega-panel,
:root[data-theme="dark"] .ind-panel,
:root[data-theme="dark"] .risk-dd-panel,
:root[data-theme="dark"] .svc-dd-panel {
  border-color: rgba(255, 255, 255, .12);
  box-shadow: 0 34px 90px rgba(0, 0, 0, .55);
}

/* The cascade's hairline mask paints the light surface; match it. */
:root[data-theme="dark"] .rfs-cascade.rfs-mask {
  background: #1a1a1c !important;
}

/* ============================================================
   MOTION FINISH — image skeletons, press feedback, theme cross-fade
   ============================================================ */
/* Shimmer placeholder injected by JS over media that is still loading;
   fades away and removes itself once the image arrives. Cached images
   never get one. */
.rfs-skel {
  position: absolute; inset: 0; z-index: 2; pointer-events: none;
  background: #ece5d8;
  opacity: 1; transition: opacity .45s ease;
}
:root[data-theme="dark"] .rfs-skel { background: #222224; }
.rfs-skel.is-done { opacity: 0; }

@media (prefers-reduced-motion: no-preference) {
  .rfs-skel::after {
    content: ""; position: absolute; inset: 0;
    background: linear-gradient(100deg, transparent 32%, rgba(255, 255, 255, .4) 50%, transparent 68%);
    background-size: 200% 100%;
    animation: rfsShimmer 1.25s linear infinite;
  }
  :root[data-theme="dark"] .rfs-skel::after {
    background: linear-gradient(100deg, transparent 32%, rgba(255, 255, 255, .07) 50%, transparent 68%);
    background-size: 200% 100%;
  }
  @keyframes rfsShimmer { from { background-position: 150% 0; } to { background-position: -50% 0; } }

  /* Solid press feedback on the primary controls. */
  .btn-red:active, .nb-quote:active, .btn-submit:active, .qm-submit:active,
  .quiz-next:active, .prv-submit:active, .news-submit:active, .why-cta:active,
  .btn-ghost-w:active {
    transform: translateY(0) scale(.985);
    transition-duration: .08s;
  }
}

/* Theme switch cross-fades where View Transitions are supported;
   everywhere else it simply switches instantly, as before. */
::view-transition-old(root),
::view-transition-new(root) { animation-duration: .35s; }

/* Hairline grids with an orphan in the last row exposed the grid's
   backing as a blank tan block; the trailing card now closes the row
   full-width instead (the products CTA reads as a deliberate band). */
.prod-biz-grid > :last-child,
.risks-grid > :last-child {
  grid-column: 1 / -1;
}

/* ════════════════════════════════════════════════════════════════
   RFS V2 — DARK-FIRST LUXE LAYER
   A different design language from v1: one continuous near-black
   canvas, champagne-gold hairlines and glow, oversized Fraunces
   editorial headings, airy hairline cards instead of filled panels.
   Light theme remains supported as the secondary mode.
   ════════════════════════════════════════════════════════════════ */




body {
  background: linear-gradient(180deg, var(--v2-canvas) 0%, var(--v2-canvas-2) 50%, var(--v2-canvas) 100%);
}
body::before { display: none; }   /* v1's grid texture: off in v2 */

::selection { background: rgba(41, 151, 255, .35); color: inherit; }

/* One continuous canvas: sections separate with hairlines, not fills. */
.sec, .svc-sec, .prv-sec, .risks-sec, .insights-sec, .cases-sec, .faq-sec {
  background: transparent !important;
  border-top: 1px solid var(--v2-hairline);
}
#products { background: transparent !important; }

/* ---- V2 section header system: oversized serif + gold rule ---- */
.sec-label, .svc-label, .insights-label, .cases-label, .faq-label,
.prv-label, .risks-label, .cont-label, .about-label, .why-label, .ind-label {
  color: var(--v2-accent-text);
  letter-spacing: .24em;
  font-size: .68rem;
}
.sec-h2, .svc-h2, .prv-h2, .risks-h2, .insights-h2, .cases-h2, .faq-h2, .cont-h2 {
  font-family: "Fraunces", "Fraunces-fallback", Georgia, serif;
  font-weight: 480;
  font-size: clamp(2.4rem, 4.6vw, 4rem);
  line-height: 1.02;
  letter-spacing: -.02em;
}

/* ════════════════ HEADER ════════════════ */
.v2h {
  position: sticky; top: 0; z-index: var(--z-nav, 1100);
  background: color-mix(in srgb, var(--v2-canvas) 86%, transparent);
  backdrop-filter: blur(20px) saturate(1.1);
  -webkit-backdrop-filter: blur(20px) saturate(1.1);
  border-bottom: 1px solid var(--v2-hairline);
  transition: transform var(--dur-ui) var(--ease), box-shadow .3s ease;
}
.v2h.scrolled { box-shadow: 0 18px 50px rgba(0, 0, 0, .22); }
.v2h.nav-hidden { transform: translateY(-100%); }

.v2h-top {
  display: flex; align-items: center; justify-content: space-between;
  height: 38px; padding: 0 clamp(1.2rem, 4vw, 3rem);
  border-bottom: 1px solid var(--v2-hairline);
  font-size: .72rem; letter-spacing: .06em;
}
.v2h-reg { display: inline-flex; align-items: center; gap: .5rem; color: var(--muted); text-transform: uppercase; letter-spacing: .14em; font-size: .62rem; font-weight: 600; }
.v2h-reg i { width: 5px; height: 5px; border-radius: 50%; background: var(--v2-accent); box-shadow: 0 0 8px rgba(110,168,220,.8); }
.v2h-utils { display: inline-flex; align-items: center; gap: 1.1rem; }
.v2h-call { color: var(--muted); }
/* declutter the utility bar on phones; CTAs remain in the hero, INDEX menu and the floating widgets */
@media (max-width: 560px){ .v2h-call { display: none; } }
.v2h-call:hover { color: var(--ink); }
.v2h .theme-toggle { background: none; border: none; cursor: pointer; color: var(--muted); display: inline-flex; padding: .2rem; }
.v2h .theme-toggle:hover { color: var(--v2-accent); }
.v2h .theme-toggle svg { width: 15px; height: 15px; }
.v2h .th-moon { display: none; }
:root[data-theme="dark"] .v2h .th-sun { display: none; }
:root[data-theme="dark"] .v2h .th-moon { display: inline; }
.v2h .lang-switcher { position: relative; }
.v2h .lang-btn {
  background: none; border: 1px solid var(--v2-hairline); border-radius: 2px;
  color: var(--muted); cursor: pointer; display: inline-flex; align-items: center; gap: .4rem;
  font-size: .66rem; font-weight: 600; letter-spacing: .1em; padding: .28rem .55rem;
}
.v2h .lang-btn:hover { color: var(--ink); border-color: var(--v2-hairline-strong); }

.v2h-bar {
  display: flex; align-items: stretch; justify-content: space-between; gap: 1.5rem;
  height: 76px; padding-right: clamp(1.2rem, 4vw, 3rem);
}

/* Brand: the trapezium plate, carried over and refined for v2. */
.v2h-brand { display: flex; align-items: stretch; }
.v2h-plate {
  position: relative; isolation: isolate;
  display: inline-flex; align-items: center; gap: .8rem;
  background: var(--red);
  padding: 0 44px 0 clamp(1.2rem, 3vw, 2.4rem);
  clip-path: polygon(0 0, 100% 0, calc(100% - 38px) 100%, 0 100%);
  filter: drop-shadow(0 4px 10px rgba(0, 0, 0, .3));
}
.v2h-plate::before {
  content: ""; position: absolute; inset: 0; z-index: -1; background: #fff;
  clip-path: polygon(0 0, calc(100% - 3px) 0, calc(100% - 41px) 100%, 0 100%);
}
.v2h-plate strong {
  font-family: "Fraunces", Georgia, serif; font-weight: 600;
  font-size: 1.9rem; letter-spacing: -.02em; color: #0b1326; line-height: 1;
}
.v2h-plate strong b { color: #A0171C; font-weight: 600; }
.v2h-word { display: flex; flex-direction: column; gap: .18rem; }
.v2h-word { font-size: .78rem; font-weight: 700; color: #1c2433; letter-spacing: .01em; line-height: 1; }
.v2h-word em { font-style: normal; font-size: .56rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: #5b5b60; }

.v2h-links { display: flex; align-items: center; gap: clamp(1.1rem, 2.2vw, 2.2rem); }
.v2h-links a {
  position: relative; color: var(--body); font-size: .82rem; font-weight: 550; letter-spacing: .04em;
  padding: .4rem 0;
}
.v2h-links a::after {
  content: ""; position: absolute; left: 0; right: 100%; bottom: 0; height: 1px;
  background: var(--v2-accent); transition: right var(--dur-ui) var(--ease);
}
.v2h-links a:hover { color: var(--ink); }
.v2h-links a:hover::after { right: 0; }

.v2h-actions { display: flex; align-items: center; gap: 1.1rem; }
.v2h-contact { color: var(--body); font-size: .8rem; font-weight: 550; }
.v2h-contact:hover { color: var(--ink); }
.v2h-quote {
  border: 1px solid rgba(200, 32, 42, .65); color: var(--red);
  font-size: .76rem; font-weight: 650; letter-spacing: .12em; text-transform: uppercase;
  padding: .62rem 1.35rem; border-radius: 999px;
  transition: background var(--dur-micro) var(--ease), color var(--dur-micro) var(--ease), border-color .2s ease, box-shadow .25s ease;
}
.v2h-quote:hover { background: #A0171C; border-color: #A0171C; color: #fff; box-shadow: 0 6px 24px rgba(200,32,42,.35); }
.v2h-ix {
  display: inline-flex; align-items: center; gap: .55rem; background: none; border: none; cursor: pointer;
  color: var(--body); padding: .4rem 0;
}
.v2h-ix:hover { color: var(--ink); }
.v2h-ix-lines { display: inline-flex; flex-direction: column; gap: 5px; width: 22px; }
.v2h-ix-lines i { height: 1.5px; background: currentColor; transition: width .25s ease; }
.v2h-ix-lines i:last-child { width: 60%; align-self: flex-end; }
.v2h-ix:hover .v2h-ix-lines i:last-child { width: 100%; }
.v2h-ix-word { font-size: .72rem; font-weight: 650; letter-spacing: .18em; text-transform: uppercase; }

/* ════════════════ INDEX OVERLAY ════════════════ */
body.v2ix-open { overflow: hidden; }
.v2ix[hidden] { display: none; }
.v2ix {
  position: fixed; inset: 0; z-index: var(--z-modal, 1300);
  background: color-mix(in srgb, var(--v2-canvas) 96%, transparent);
  backdrop-filter: blur(26px);
  -webkit-backdrop-filter: blur(26px);
  display: flex; flex-direction: column;
  padding: 0 clamp(1.2rem, 5vw, 4.5rem);
  opacity: 0; transition: opacity .25s ease;
  overflow-y: auto;
}
/* Open instantly opaque so the sheet covers the page from the first frame
   (no hero bleeding through a half-faded panel); the staggered columns below
   still provide the entrance. Closing keeps the .25s fade-out, which correctly
   reveals the page behind. */
.v2ix.is-in { opacity: 1; transition: none; }
.v2ix-head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 1.6rem 0 1.2rem; border-bottom: 1px solid var(--v2-hairline);
}
.v2ix-brand { font-family: "Fraunces", Georgia, serif; font-size: 1.5rem; font-weight: 600; color: var(--ink); }
.v2ix-brand b { color: #A0171C; }
.v2ix-brand em { font-style: normal; font-family: Inter, sans-serif; font-size: .7rem; letter-spacing: .2em; text-transform: uppercase; color: var(--v2-accent-text); }
.v2ix-close { background: none; border: 1px solid var(--v2-hairline); border-radius: 2px; color: var(--body); cursor: pointer; font-size: .72rem; font-weight: 650; letter-spacing: .14em; text-transform: uppercase; padding: .55rem 1rem; }
.v2ix-close:hover { border-color: var(--v2-accent); color: var(--v2-accent-text); }
.v2ix-grid {
  flex: 1; display: grid; grid-template-columns: 1fr 1fr 1.6fr 1fr; gap: clamp(1.5rem, 4vw, 4rem);
  padding: clamp(1.6rem, 4vh, 3.2rem) 0;
}
.v2ix-col h3 {
  display: flex; align-items: baseline; gap: .6rem;
  font-size: .66rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase;
  color: var(--v2-accent-text); margin: 0 0 1rem; padding-bottom: .7rem;
  border-bottom: 1px solid var(--v2-hairline);
}
.v2ix-col h3 span { font-family: "Fraunces", Georgia, serif; font-size: .9rem; color: var(--muted); letter-spacing: 0; }
.v2ix-h2 { margin-top: 2rem !important; }
.v2ix-col > a, .v2ix-2col a {
  display: block; color: var(--body); font-size: .86rem; line-height: 1.45;
  padding: .34rem 0; transition: color var(--dur-micro) var(--ease), padding-left var(--dur-ui) var(--ease);
}
.v2ix-col > a:hover, .v2ix-2col a:hover { color: var(--v2-accent-text); padding-left: .55rem; }
.v2ix-2col { columns: 2; column-gap: 2rem; }
.v2ix-cta { margin-top: 2.2rem; display: flex; flex-direction: column; gap: .7rem; }
.v2ix-cta a { color: var(--red); font-size: .84rem; font-weight: 650; letter-spacing: .04em; }
.v2ix-cta a:hover { color: var(--red-h); }
.v2ix-foot {
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .6rem;
  padding: 1.1rem 0 1.6rem; border-top: 1px solid var(--v2-hairline);
  color: var(--muted); font-size: .72rem; letter-spacing: .08em;
}
@media (max-width: 1080px) {
  .v2h-links, .v2h-contact { display: none; }
  .v2ix-grid { grid-template-columns: 1fr 1fr; }
  .v2ix-col-wide { grid-column: span 2; }
}
@media (max-width: 640px) {
  .v2ix-grid { grid-template-columns: 1fr; }
  .v2ix-col-wide { grid-column: auto; }
  .v2h-quote { display: none; }
  .v2h-word { display: none; }
  .v2h-bar { height: 64px; }
  .v2h-plate strong { font-size: 1.55rem; }
}

/* ════════════════ HERO ════════════════ */
.v2hero { position: relative; isolation: isolate; min-height: 92svh; display: flex; flex-direction: column; justify-content: flex-end; overflow: hidden; }
.v2hero-media { position: absolute; inset: 0; z-index: -2; }
.v2hero-img {
  position: absolute; inset: 0;
  background: url('/assets/refresh/rfs-hero-advisory.webp') center 30%/cover no-repeat;
  filter: saturate(.88) contrast(1.06) brightness(.92);
}
.v2hero-scrim {
  position: absolute; inset: 0;
  background:
    linear-gradient(75deg, rgba(8, 8, 9, .96) 0%, rgba(8, 8, 9, .8) 38%, rgba(8, 8, 9, .3) 72%, rgba(8, 8, 9, .42) 100%),
    linear-gradient(180deg, rgba(8, 8, 9, .55) 0%, rgba(8, 8, 9, .08) 30%, rgba(8, 8, 9, .88) 96%);
}
.v2hero-grain { position: absolute; inset: 0; opacity: .28; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.16'/%3E%3C/svg%3E"); }
.v2hero-frame { display: none; }
.v2hero-body {
  position: relative; z-index: 2;
  padding: clamp(7rem, 16vh, 11rem) clamp(1.6rem, 6vw, 5.5rem) clamp(2.6rem, 5vh, 4rem);
  max-width: 1080px;
}
.v2hero-eyebrow {
  display: flex; align-items: center; gap: .9rem; margin: 0 0 1.6rem;
  font-size: .66rem; font-weight: 650; letter-spacing: .3em; text-transform: uppercase;
  color: var(--v2-accent-soft);
}
.v2hero-rule { width: 44px; height: 2px; background: #A0171C; }
/* The headline is set over a photograph. Measured on the source file, the
   right-hand figure's HEAD begins at 64.6% of the image width; the band from
   52% to 58% is the empty chair beside him and the shoulder line starts at
   58%. Type crossing a chair is unremarkable, type crossing a face is not, so
   64.6% is the line to stay behind.

   Because the image is width-constrained under `cover`, that head position
   lands at a steady fraction of the VIEWPORT at every desktop size. The
   second line is fixed copy behind a hard <br/> and measures a constant 8.56x
   the font-size, so one clamp value solves it at all widths. At 7.4vw the
   line ran past the head: measured overlap of 40px at 1280 and 16px at 1440.
   6.2vw clears the head by ~60px at 1280 and 1440 (6.6vw left only 28px
   at 1280), and keeps the headline within 16% of its original scale.

   max-width is a guard, not the mechanism: the copy is translated, and a
   longer language must wrap rather than reach the figures. It applies only
   where the wide crop is in use, since portrait viewports load a different
   file with a different composition. */
.v2hero-h1 {
  margin: 0 0 1.6rem;
  font-family: "Fraunces", "Fraunces-fallback", Georgia, serif;
  font-weight: 440; font-size: clamp(3rem, 6.2vw, 6.4rem);
  line-height: .99; letter-spacing: -.022em; color: #f5f7fa;
  /* no text-wrap:balance here. The break is already authored with <br/>, so
     balance has no line-length problem to solve -- it just re-broke the
     second line into two once the size came down. */
}
@media (min-aspect-ratio: 1/1) and (min-width: 981px) {
  .v2hero-h1 { max-width: 60vw; }
}
.v2hero-h1 span { font-style: italic; font-weight: 420; color: var(--v2-accent-soft); }
.v2hero-purpose {
  margin: 0 0 1.1rem; padding-left: 1.1rem; border-left: 2px solid #A0171C;
  font-family: "Fraunces", Georgia, serif; font-style: italic; font-weight: 420;
  font-size: clamp(1.02rem, 1.6vw, 1.25rem); color: rgba(245, 247, 250, .88);
}
.v2hero-desc { margin: 0 0 2rem; max-width: 600px; font-size: .98rem; line-height: 1.75; color: rgba(245, 247, 250, .62); }
.v2hero-cta { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem; }
.v2hero-finder { color: rgba(165, 209, 255, .75); font-size: .84rem; }
.v2hero-finder:hover { color: var(--v2-accent-soft); }
.v2hero-ledger {
  position: relative; z-index: 2;
  display: grid; grid-template-columns: repeat(5, 1fr);
  border-top: 1px solid rgba(235, 240, 248, .16);
  background: rgba(8, 8, 9, .4); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
}
.v2hero-ledger .hp-stat {
  padding: 1.3rem clamp(1rem, 2.4vw, 2.2rem);
  border-right: 1px solid rgba(235, 240, 248, .1);
  display: flex; flex-direction: column; gap: .35rem;
}
.v2hero-ledger .hp-stat:last-child { border-right: none; }
.v2hero-ledger .hp-n {
  font-family: "Fraunces", Georgia, serif; font-weight: 480; font-size: clamp(1.4rem, 2.4vw, 2rem);
  color: #f5f7fa; line-height: 1;
}
.v2hero-ledger .hp-n em { font-style: normal; color: var(--v2-accent); }
.v2hero-ledger .hp-l { font-size: .64rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: rgba(245, 247, 250, .52); }
@media (max-width: 980px) {
  .v2hero-ledger { grid-template-columns: repeat(2, 1fr); border-top: none; }
  .v2hero-ledger .hp-stat { border-top: 1px solid rgba(235,240,248,.1); }
  .v2hero-ledger .hp-stat:nth-child(5) { grid-column: 1 / -1; }
}
@media (prefers-reduced-motion: no-preference) {
  .v2hero-eyebrow, .v2hero-purpose, .v2hero-desc, .v2hero-cta { opacity: 0; animation: rfsRise var(--dur-hero) var(--ease) both; }
  .v2hero-eyebrow { animation-delay: .1s; }
  .v2hero-purpose { animation-delay: .34s; }
  .v2hero-desc { animation-delay: .46s; }
  .v2hero-cta { animation-delay: .58s; }
  .v2hero-h1 { opacity: 0; animation: rfsHeroHead var(--dur-hero) var(--ease) .18s both; }
  .v2hero-ledger { opacity: 0; animation: rfsRise 1s var(--ease) .7s both; }
  .v2hero-img { animation: v2HeroSettle 2.2s var(--ease) both; }
  @keyframes v2HeroSettle { from { transform: scale(1.06); } to { transform: scale(1); } }
}

/* ════════════════ V2 BUTTONS ════════════════ */
.v2btn-gold {
  display: inline-block; background: #A0171C; color: #fff;
  font-size: .8rem; font-weight: 650; letter-spacing: .08em; text-transform: uppercase;
  padding: 1rem 2.1rem; border-radius: 999px;
  transition: background .2s ease, box-shadow .25s ease, transform .2s ease;
}
.v2btn-gold:hover { background: #BC1B22; box-shadow: 0 8px 34px rgba(200, 32, 42, .35); transform: translateY(-1px); }
.v2btn-line {
  display: inline-block; border: 1px solid rgba(235, 240, 248, .32); color: #f5f7fa;
  font-size: .8rem; font-weight: 650; letter-spacing: .08em; text-transform: uppercase;
  padding: 1rem 1.9rem; border-radius: 999px; background: rgba(245, 247, 250, .05);
  transition: border-color .2s ease, background .2s ease;
}
.v2btn-line:hover { border-color: var(--v2-accent); background: rgba(41, 151, 255, .12); }

/* Apple-calm rhythm: more air between chapters. */
.sec, .svc-sec, .prv-sec, .risks-sec, .insights-sec, .cases-sec, .faq-sec {
  padding-top: clamp(96px, 12vh, 132px);
  padding-bottom: clamp(96px, 12vh, 132px);
}

/* ════════════════ KEPT SECTIONS, RESTYLED ════════════════ */
/* Cards become airy hairline plates with a gold glow on hover. */
.pc, .svc-card, .ind-c, .risk-card, .insight-card, .case-card,
.cov-item, .who-card, .ben-card, .rel-card, .glo-card, .faq-item,
.ind-prod-card, .ind-risk-card, .ind-min {
  background: transparent !important;
  border: 1px solid var(--v2-hairline) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
.pc:hover, .svc-card:hover, .ind-c:hover, .risk-card:hover, .insight-card:hover,
.case-card:hover, .rel-card:hover, .ind-prod-card:hover, .ind-risk-card:hover {
  background: transparent !important;
  border-color: rgba(41, 151, 255, .55) !important;
  box-shadow: var(--v2-glow) !important;
  transform: translateY(-3px);
}
.pc-ic, .ind-ic, .ben-ic, .cov-ic {
  background: transparent !important;
  border: 1px solid var(--v2-hairline);
  color: var(--v2-accent-text) !important;
  border-radius: 0 !important;
}
/* Hairline-backing grids: gaps read as gold-tinted hairlines now. */
.prod-biz-grid, .prod-per-grid, .risks-grid, .svc-grid, .cases-grid {
  background: var(--v2-hairline) !important;
  border: 1px solid var(--v2-hairline) !important;
}
.prod-biz-grid > *, .prod-per-grid > *, .risks-grid > *, .svc-grid > *, .cases-grid > * {
  border: none !important;
}
.risk-card, .svc-card, .case-card, .pc { background: var(--v2-canvas) !important; }
.risk-card:hover, .svc-card:hover, .case-card:hover, .pc:hover { background: var(--v2-canvas-2) !important; }

/* Product tabs: minimal editorial tabs. */
.prod-tab-btn {
  background: none; border: none; border-bottom: 1px solid transparent;
  font-size: .8rem; font-weight: 650; letter-spacing: .14em; text-transform: uppercase;
  color: var(--muted); padding: .8rem 0; margin-right: 2.4rem;
}
.prod-tab-btn.active { color: var(--text-strong); border-bottom-color: #A0171C; }

/* Insurer logo strip: quiet hairline cells. */
.logo-item, .award-item {
  background: transparent !important; border: 1px solid var(--v2-hairline) !important; border-radius: 0 !important;
}
.logos-strip, .awards-strip { background: transparent !important; border-color: var(--v2-hairline) !important; }

/* Footer: deepest canvas + hairlines (keeps v1 markup). */
.footer { background: #050506 !important; border-top: 1px solid var(--v2-hairline); }
:root:not([data-theme="dark"]) .footer { background: #0b0b0c !important; }
.footer-red { background: linear-gradient(90deg, #A0171C 0%, #0063BF 100%) !important; height: 2px !important; }

/* ── FOOTER, LIGHT GROUND ─────────────────────────────────────────────────
   The footer was the last surface still running the dark-first build: a
   #0b0b0c ground forced with !important over the light theme, and the
   white-red logo. Every child rule below it assumed white-on-dark, so this
   is one scoped override rather than twenty scattered edits.

   Scoped to :root:not([data-theme="dark"]) so the dark theme keeps its own
   footer untouched. The logo swaps with the ground: colour mark on light,
   the light mark on dark, matching what the loader already does. */
:root:not([data-theme="dark"]) .footer {
  background: var(--off) !important;              /* #F6F4F0, warm, matches --paper */
  border-top: 3px solid var(--red) !important;    /* a deliberate close, not a fade-out */
}
:root:not([data-theme="dark"]) .footer-main { border-bottom-color: rgba(0,0,0,.10); }
:root:not([data-theme="dark"]) .footer-brand p { color: var(--muted); }
:root:not([data-theme="dark"]) .fc h6 { color: var(--ink); }
:root:not([data-theme="dark"]) .fc ul li a { color: var(--body); }
:root:not([data-theme="dark"]) .fc ul li a:hover { color: var(--red); }
:root:not([data-theme="dark"]) .footer-social a { color: var(--body); }
:root:not([data-theme="dark"]) .footer-social a:hover { color: var(--red); }
:root:not([data-theme="dark"]) .footer-triad { color: var(--blue); }
:root:not([data-theme="dark"]) .footer-triad .triad-sep { color: var(--red); }
:root:not([data-theme="dark"]) .footer-bottom { background: #EDEAE4; }
:root:not([data-theme="dark"]) .footer-bottom p { color: var(--muted); }
:root:not([data-theme="dark"]) .footer-bottom p span { color: var(--body); }
:root:not([data-theme="dark"]) .footer-btm-links a { color: var(--muted); }
:root:not([data-theme="dark"]) .footer-btm-links a:hover { color: var(--red); }
/* the red hairline above is the close now, so the gradient bar is redundant */
:root:not([data-theme="dark"]) .footer-red { display: none !important; }
/* the footnotes were rgba(255,255,255,.42), invisible on the light ground */
:root:not([data-theme="dark"]) .rfs-footnotes p { color: var(--muted); }
:root:not([data-theme="dark"]) .rfs-footnotes p span { color: var(--red); }
:root:not([data-theme="dark"]) .rfs-footnotes a { color: var(--blue); }
/* the last two white-on-dark holdouts: the bottom bar list and the
   regulatory block hairlines, which were white at 6% and vanish on paper */
:root:not([data-theme="dark"]) .footer-bottom ul li a { color: var(--muted); }
:root:not([data-theme="dark"]) .footer-bottom ul li a:hover { color: var(--red); }
:root:not([data-theme="dark"]) .footer-regulatory {
  border-top-color: rgba(0,0,0,.09); border-bottom-color: rgba(0,0,0,.09); }
:root:not([data-theme="dark"]) .footer-regulatory,
:root:not([data-theme="dark"]) .footer-regulatory p { color: var(--muted); }
:root:not([data-theme="dark"]) .footer-regulatory strong,
:root:not([data-theme="dark"]) .footer-regulatory b { color: var(--ink); }
/* the regulatory rows use their own classes (.freg-*, .hs-*), which the
   contrast probe caught rendering white-on-white at ratio 1.0 */
:root:not([data-theme="dark"]) .freg-label { color: var(--muted); }
:root:not([data-theme="dark"]) .freg-val { color: var(--ink); }
:root:not([data-theme="dark"]) .hs-item { color: var(--body); }

/* ── HERO, LIGHT GROUND ───────────────────────────────────────────────────
   The last dark surface. Everything below existed to make WHITE type legible
   on a near-black photograph: a brightness(.92) filter, a 96%-opaque black
   gradient, and light-on-dark text throughout. With a high-key photograph all
   three work against us, so this block inverts the whole treatment.

   Measured on the new file: the headline zone reads 10.20:1 against #1D1D1F,
   so the scrim below is insurance for odd crops, not a legibility crutch.

   The hero box is min-height:86svh, so its aspect follows the viewport:
   ~2.07 on a desktop but ~0.54 on a phone. One 16:9 file cannot serve both --
   cover would crop a phone to a middle slice and lose both subjects entirely.
   Hence the portrait file below max-aspect-ratio:1/1. */
:root:not([data-theme="dark"]) .v2hero-img {
  background-image: url('/assets/refresh/rfs-hero-2026-wide.webp');
  background-position: center center;
  filter: saturate(.96) contrast(1.02);      /* brightness(.92) removed */
}
@media (max-aspect-ratio: 1/1) {
  :root:not([data-theme="dark"]) .v2hero-img {
    background-image: url('/assets/refresh/rfs-hero-2026-tall.webp');
    background-position: center top;
  }
}
/* paper, not pitch. Strong where the headline sits, clear over the subjects. */
:root:not([data-theme="dark"]) .v2hero-scrim {
  background: linear-gradient(75deg,
    rgba(251,250,247,.62) 0%, rgba(251,250,247,.34) 34%,
    rgba(251,250,247,.06) 62%, rgba(251,250,247,0) 100%) !important;
}
/* grain and the blurred atmosphere canvas were tuned for a dark plate */
:root:not([data-theme="dark"]) .v2hero-grain { opacity: .10; }
:root:not([data-theme="dark"]) .v2hero-atmos { opacity: .18; }

:root:not([data-theme="dark"]) .v2hero-eyebrow { color: var(--blue); }
:root:not([data-theme="dark"]) .v2hero-h1 { color: var(--ink); }
:root:not([data-theme="dark"]) .v2hero-h1 span { color: var(--ink); }
:root:not([data-theme="dark"]) .v2hero-purpose { color: var(--ink); }
:root:not([data-theme="dark"]) .v2hero-desc { color: var(--muted); }
:root:not([data-theme="dark"]) .v2hero-finder { color: var(--blue); }
/* the ledger sits at the foot of the hero, over whatever the photograph
   happens to be there -- table, floor, a chair. Ink on a mid-tone
   photograph is unreadable, so it gets its own paper backing rather than
   depending on the image behind it. */
:root:not([data-theme="dark"]) .v2hero-ledger {
  border-top-color: rgba(0,0,0,.10);
  background: rgba(251,250,247,.86);
  -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px);
}
:root:not([data-theme="dark"]) .v2hero-ledger * { color: var(--body); }
:root:not([data-theme="dark"]) .v2hero-ledger strong,
:root:not([data-theme="dark"]) .v2hero-ledger b { color: var(--ink); }
:root:not([data-theme="dark"]) .v2btn-line {
  border-color: rgba(0,0,0,.22); color: var(--ink);
}
:root:not([data-theme="dark"]) .v2btn-line:hover {
  border-color: var(--red); color: var(--red); background: transparent;
}
:root:not([data-theme="dark"]) .v2hero-frame { border-color: rgba(0,0,0,.08); }

/* ── LIGHT THEME: the four homepage photo blocks ─────────────────────
   All four were built as dark plates: a photograph hidden under a near
   black overlay so white type could sit on it. On a paper page they read
   as leftovers. New photographs were generated for each, graded bright
   (measured 0.42-0.50 luminance against the 0.058 and 0.157 they replace),
   so the overlay can become paper and the type can become ink.

   Everything here is scoped to light. Dark theme keeps its own plates. */

/* 1. ABOUT PANEL. The photograph was drawn at opacity .22 with
      mix-blend-mode:luminosity over a black gradient -- a dark-theme
      device that reduced two advisors to a grey smudge. Nothing covers
      this block, so it simply shows the picture now. */
:root:not([data-theme="dark"]) .about-img-block {
  background: var(--paper);
  border: 1px solid rgba(0,0,0,.08);
}
:root:not([data-theme="dark"]) .about-img-block img {
  opacity: 1;
  mix-blend-mode: normal;
}
/* the red radial was there to lift a black plate; on a bright photograph
   it only casts a pink film */
:root:not([data-theme="dark"]) .about-img-overlay-pat { opacity: 0; }

/* 2. PRODUCTS BANNER. Headline occupies the left 3%-50% at every desktop
      width, so the wash is strongest there and clears by the right edge
      where the desks and windows are. */
/* the refresh layer sets `filter: saturate(1.12) !important` on this class,
   so this has to carry !important too or it is silently discarded */
:root:not([data-theme="dark"]) .prod-banner-img {
  filter: saturate(1.02) contrast(1.01) !important;
}
:root:not([data-theme="dark"]) .prod-banner-overlay {
  background: linear-gradient(100deg,
    rgba(251,250,247,.93) 0%, rgba(251,250,247,.86) 34%,
    rgba(251,250,247,.55) 62%, rgba(251,250,247,.30) 100%) !important;
}
:root:not([data-theme="dark"]) .prod-banner-eyebrow { color: var(--blue); }
:root:not([data-theme="dark"]) .prod-banner-h3 { color: var(--ink); }
:root:not([data-theme="dark"]) .prod-banner-sub { color: var(--body); }
/* phones stack the copy across the whole banner, so the wash goes flat */
@media (max-width: 860px) {
  :root:not([data-theme="dark"]) .prod-banner-overlay {
    background: rgba(251,250,247,.90) !important;
  }
}

/* 3. PRACTICE-PRINCIPLE BAND. Same geometry as the banner: quote left,
      light from the right. */
:root:not([data-theme="dark"]) .about-discover-img {
  filter: saturate(1.02);
}
:root:not([data-theme="dark"]) .about-discover-overlay {
  background: linear-gradient(100deg,
    rgba(251,250,247,.94) 0%, rgba(251,250,247,.88) 38%,
    rgba(251,250,247,.58) 66%, rgba(251,250,247,.32) 100%) !important;
}
:root:not([data-theme="dark"]) .about-discover-quote { color: var(--ink); }
:root:not([data-theme="dark"]) .about-discover-quote p { color: var(--ink); }
:root:not([data-theme="dark"]) .about-discover-attr { color: var(--red); }
@media (max-width: 860px) {
  :root:not([data-theme="dark"]) .about-discover-overlay {
    background: rgba(251,250,247,.91) !important;
  }
}

/* 4. CONTACT BLOCK needed no work -- its white wash already measured
      9.8:1. It only changes photograph, so the homepage stops running
      on two images used twice each. The old grade was cut for a darker
      plate, so the brightness reduction comes off. */
:root:not([data-theme="dark"]) .contact-image {
  filter: grayscale(.12) !important;
}

/* the white-red mark is invisible on a light ground, so the ground picks the
   mark. Only the matching theme's file is ever fetched. */
.footer-logo-img2 {
  display: block; width: 5.2rem; height: 2.1rem; margin-bottom: 1rem;
  background: url("/logo-light.png") left center / contain no-repeat;
}
:root:not([data-theme="dark"]) .footer-logo-img2 {
  background-image: url("/logo-320.png");
}

/* Inputs: hairline underline style for the on-page contact form. */
#contact input, #contact textarea, #contact select {
  border-radius: 10px !important;
}
#contact input:focus, #contact textarea:focus, #contact select:focus {
  border-color: var(--v2-accent) !important;
  box-shadow: 0 0 0 3px rgba(41, 151, 255, .18) !important;
}

/* CTA + banners keep photos; align their radius with v2's square language. */
.about-img-block, .about-discover-banner, .prod-banner, .prod-tab-img, .svc-banner,
.faq-banner, .cta-band, .scale-band, .contact-card, .img-block, .insight-card, .heritage-image-wrap {
  border-radius: 18px !important;
}
.mega-panel, .ind-panel, .risk-dd-panel, .svc-dd-panel, .contact-card, .qm-dialog, .quiz-modal {
  border-radius: 18px !important;
}
input, textarea, select { border-radius: 10px !important; }
.ind-c, .faq-item, .glo-card, .cov-item, .who-card, .ben-card, .rel-card { border-radius: 14px !important; }

/* Light theme: keep the same architecture on warm paper. */
:root:not([data-theme="dark"]) .v2hero-scrim {
  background:
    linear-gradient(75deg, rgba(8, 8, 9, .94) 0%, rgba(8, 8, 9, .76) 38%, rgba(8, 8, 9, .26) 72%, rgba(8, 8, 9, .4) 100%),
    linear-gradient(180deg, rgba(8, 8, 9, .5) 0%, rgba(8, 8, 9, .06) 30%, rgba(8, 8, 9, .85) 96%);
}


/* Product card details: gold accents instead of v1 blue. */
.pc .pc-ic, .pc:hover .pc-ic, .ind-c .ind-ic, .ind-c:hover .ind-ic {
  color: var(--v2-accent-text) !important;
  background: transparent !important;
}
.pc-sub { color: var(--muted) !important; }
.pc-sub::before { background: var(--v2-accent) !important; border-radius: 0 !important; width: 5px !important; height: 1px !important; }
.pc-lnk, .svc-link, .ind-c-link { color: var(--v2-accent-text) !important; }
.pc:hover .pc-lnk, .svc-card:hover .svc-link { color: var(--v2-accent) !important; }

/* Industry tile/list secondary text sat at 3.99:1 in light; pin both themes AA. */
.ind-c p, .ind-min p, .ind-min-tags { color: #4f5b6b !important; }
:root[data-theme="dark"] .ind-c p,
:root[data-theme="dark"] .ind-min p,
:root[data-theme="dark"] .ind-min-tags { color: #9aa6b5 !important; }

/* ── Light-default contrast repairs ──────────────────────────────────
   Found by a computed-contrast audit of the live site after light became
   the default theme. All three are scoped to light only, so dark theme
   is untouched. */

/* 1. WhatsApp nudge: its panel background is hardcoded dark (#15151a) while
      its text uses var(--ink), which is DARK in light theme -> dark-on-dark,
      measured 1.08:1 (invisible). Give it a light panel in light theme. */
:root:not([data-theme="dark"]) .wa-nudge {
  background: #ffffff;
  color: #1d1d1f;
  border-color: rgba(0,0,0,.12);
  box-shadow: 0 12px 34px rgba(0,0,0,.16);
}
:root:not([data-theme="dark"]) .wa-nudge-x { color: #636368; }
:root:not([data-theme="dark"]) .wa-nudge-x:hover { color: #1d1d1f; }

/* 2. The "Not sure which cover applies?" CTA card.
      History: it was authored as a deliberate dark accent among white product
      cards -- inline background:var(--shade) with inline white text. An
      earlier pass here restored that dark card so its white text would read.
      That was the right repair for a dark-first page and the wrong one for
      this page: on a paper ground it is a black slab at the foot of a white
      grid. It becomes the pale-blue note card instead, so it still reads as
      the one different cell without being a hole in the page.

      Every declaration needs !important: the colours are INLINE on the
      elements, and an inline style beats any selector that is not important.
      The card keeps its identity through the ground and the red link, not
      through darkness. */
:root:not([data-theme="dark"]) .pc[style*="--shade"] {
  background: #F1F5FB !important;
  border-color: rgba(0,99,191,.18) !important;
}
:root:not([data-theme="dark"]) .pc[style*="--shade"]:hover {
  background: #E8F0FA !important;
  border-color: rgba(0,99,191,.32) !important;
}
:root:not([data-theme="dark"]) .pc[style*="--shade"] .pc-title { color: var(--ink) !important; }
:root:not([data-theme="dark"]) .pc[style*="--shade"] .pc-desc  { color: var(--body) !important; }
/* the icon chip and the corner arrow were tinted for a dark ground */
:root:not([data-theme="dark"]) .pc[style*="--shade"] .pc-ic {
  background: rgba(0,99,191,.10) !important;
  color: var(--blue) !important;
}
:root:not([data-theme="dark"]) .pc[style*="--shade"] .pc-arr { color: rgba(0,99,191,.45) !important; }
/* the action returns to brand red, which is what it is on every other card */
:root:not([data-theme="dark"]) .pc[style*="--shade"] .pc-quote,
:root:not([data-theme="dark"]) .pc[style*="--shade"] .pc-lnk {
  color: var(--red) !important;
  border-bottom-color: rgba(160,23,28,.45) !important;
}
:root:not([data-theme="dark"]) .pc[style*="--shade"]:hover .pc-quote,
:root:not([data-theme="dark"]) .pc[style*="--shade"]:hover .pc-lnk {
  color: var(--red-h, #8d1419) !important;
}

/* 2b. The "Your interests, at every step." pledge card, same story: a solid
       var(--shade) slab in the About column, directly under a photograph that
       is now bright. Same pale-blue ground so the two blocks in that column
       read as one family. Its second paragraph carries an INLINE
       rgba(255,255,255,.6), hence !important on the paragraph rule. */
:root:not([data-theme="dark"]) .about-pledge {
  background: #F1F5FB;
  border: 1px solid rgba(0,99,191,.16);
}
:root:not([data-theme="dark"]) .about-pledge h4 { color: var(--ink); }
:root:not([data-theme="dark"]) .about-pledge p { color: var(--body) !important; }
:root:not([data-theme="dark"]) .pledge-check {
  color: var(--ink);
  border-top-color: rgba(0,0,0,.10);
}
:root:not([data-theme="dark"]) .pledge-check::before {
  background: rgba(160,23,28,.16);
}

/* 3. Blue CTA band body copy sat at 2.98:1 (below AA) in BOTH themes. */
.dark-cta p { color: rgba(255,255,255,.82) !important; }

/* 4. DARK-theme bug (pre-existing, found while regression-testing the above):
      the selected sort/tool chips paint --v2-accent-soft, which is a LIGHT blue
      (#a5d1ff) in dark theme, while their text is var(--ink) = #ececec ->
      light-on-light at 1.35:1. Pin dark text on the light chip. */
:root[data-theme="dark"] .csr-sort.on,
:root[data-theme="dark"] .tools-tab.on { color: #10161f !important; }

/* ════════════════ V2 MOTION PASS ════════════════ */
/* First-visit brand curtain: monogram resolves, a red-to-blue line draws,
   then the veil lifts to the hero entrance. Once per tab session; never
   for reduced-motion visitors (decided pre-paint in <head>). */
#rfs-veil { display: none; }
html.rfs-veil #rfs-veil {
  display: grid; place-items: center; position: fixed; inset: 0; z-index: 9999;
  /* the page's own ground, so the curtain dissolves rather than cutting from
     black to paper -- and so a dark-theme visitor never gets a white flash */
  background: var(--paper);
  transition: opacity .6s ease .05s, visibility 0s .7s;
}
html.rfs-veil.veil-out #rfs-veil { opacity: 0; visibility: hidden; }
#rfs-veil .veil-inner { display: flex; flex-direction: column; align-items: center; }
#rfs-veil .veil-mark {
  font-family: "Fraunces", Georgia, serif; font-weight: 500;
  font-size: clamp(2.8rem, 6vw, 4.2rem); letter-spacing: -.02em; color: #f5f7fa;
  opacity: 0; animation: veilMark var(--dur-hero) var(--ease) .05s both;
}
#rfs-veil .veil-mark b { color: #A0171C; font-weight: 500; }
#rfs-veil .veil-word {
  margin-top: .5rem; font-size: .62rem; font-weight: 650; letter-spacing: .34em;
  text-transform: uppercase;
  /* muted via the colour, not opacity: the element's opacity is already owned
     by the veilMark entrance animation, so a second declaration here is dead */
  color: var(--body);
  color: color-mix(in srgb, var(--body) 58%, transparent);
  opacity: 0; animation: veilMark .8s var(--ease) .28s both;
}
#rfs-veil .veil-line {
  position: relative; overflow: hidden; margin-top: 1.2rem;
  width: clamp(130px, 18vw, 230px); height: 2px; background: rgba(128,132,140,.16);
}
#rfs-veil .veil-line i {
  position: absolute; inset: 0; transform: scaleX(0); transform-origin: left;
  background: linear-gradient(90deg, #A0171C 0%, #A0171C 34%, #0063BF 66%, #0063BF 100%);
  animation: veilLine .85s var(--ease) .3s both;
}
@keyframes veilMark { from { opacity: 0; transform: perspective(700px) rotateX(58deg) translateY(22px); filter: blur(7px); }
                      to   { opacity: 1; transform: perspective(700px) rotateX(0); filter: none; } }
@keyframes veilLine { to { transform: scaleX(1); } }
/* Hold the hero entrance until the curtain starts lifting. */
html.rfs-veil:not(.veil-out) .v2hero-eyebrow,
html.rfs-veil:not(.veil-out) .v2hero-h1,
html.rfs-veil:not(.veil-out) .v2hero-purpose,
html.rfs-veil:not(.veil-out) .v2hero-desc,
html.rfs-veil:not(.veil-out) .v2hero-cta,
html.rfs-veil:not(.veil-out) .v2hero-ledger,
html.rfs-veil:not(.veil-out) .v2hero-img { animation-play-state: paused !important; }

@media (prefers-reduced-motion: no-preference) {

  /* Index overlay: columns cascade in after the blur lands. */
  .v2ix .v2ix-col, .v2ix .v2ix-foot {
    opacity: 0; transform: translateY(16px);
    transition: opacity var(--dur-reveal) var(--ease), transform var(--dur-reveal) var(--ease);
  }
  .v2ix.is-in .v2ix-col, .v2ix.is-in .v2ix-foot { opacity: 1; transform: none; }
  .v2ix.is-in .v2ix-col:nth-child(1) { transition-delay: .06s; }
  .v2ix.is-in .v2ix-col:nth-child(2) { transition-delay: .13s; }
  .v2ix.is-in .v2ix-col:nth-child(3) { transition-delay: .2s; }
  .v2ix.is-in .v2ix-col:nth-child(4) { transition-delay: .27s; }
  .v2ix.is-in .v2ix-foot { transition-delay: .34s; }

  /* Section label rules draw in as their section reveals. */
  html.has-reveal .reveal .sec-label::before {
    transform: scaleX(0); transform-origin: left;
    transition: transform var(--dur-reveal) var(--ease) .12s;
  }
  html.has-reveal .reveal.is-in .sec-label::before { transform: scaleX(1); }

  /* Modern modal entrance (@starting-style; older browsers switch instantly). */
  .qm-dialog, .quiz-modal {
    transition: opacity var(--dur-ui) var(--ease), transform var(--dur-ui) var(--ease);
  }
  @starting-style {
    .qm-overlay:not([hidden]) .qm-dialog { opacity: 0; transform: translateY(16px) scale(.985); }
    .quiz-overlay.is-open .quiz-modal   { opacity: 0; transform: translateY(16px) scale(.985); }
  }

  /* Cover-finder link nudges forward. */
  .v2hero-finder { display: inline-block; transition: transform var(--dur-ui) var(--ease), color .2s ease; }
  .v2hero-finder:hover { transform: translateX(4px); }
}

/* Scroll-driven drift on the photo bands (Chromium; others stay static). */
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .svc-banner-img, .prod-banner-img, .faq-banner-img, .about-discover-img {
      animation: v2BannerDrift linear both;
      animation-timeline: view();
      animation-range: entry 0% exit 100%;
    }
    .scale-band-bg, .cta-band-bg {
      animation: v2BandDrift linear both;
      animation-timeline: view();
      animation-range: entry 0% exit 100%;
    }
  }
}
@keyframes v2BannerDrift { from { transform: scale(1.12) translateY(-2.5%); } to { transform: scale(1.04) translateY(2.5%); } }
@keyframes v2BandDrift   { from { transform: translateY(-3%) scale(1.06); }  to { transform: translateY(3%) scale(1.06); } }

/* Footnotes + Apple-style keyboard focus */
.fn-ref { margin-left: .2rem; }
.fn-ref a { color: var(--v2-accent); font-size: .85em; text-decoration: none; }
.rfs-footnotes { max-width: var(--max); margin: 0 auto; padding: 1.4rem clamp(1.5rem,5vw,4rem) 0; }
.rfs-footnotes p { margin: 0 0 .35rem; font-size: .7rem; line-height: 1.6; color: rgba(255,255,255,.42); }
.rfs-footnotes p span { color: var(--v2-accent); margin-right: .3rem; }
:focus-visible { outline: 2px solid var(--v2-accent); outline-offset: 3px; border-radius: 3px; }
:focus:not(:focus-visible) { outline: none; }

/* Route action bar */
#rfs-rab {
  position: fixed; left: 50%; bottom: 14px; transform: translate(-50%, 80px);
  z-index: var(--z-fab, 1000);
  display: flex; align-items: center; gap: 1.4rem;
  max-width: min(92vw, 760px);
  padding: .65rem .7rem .65rem 1.3rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--v2-canvas) 78%, transparent);
  backdrop-filter: blur(22px) saturate(1.15);
  -webkit-backdrop-filter: blur(22px) saturate(1.15);
  border: 1px solid var(--v2-hairline);
  box-shadow: 0 18px 50px rgba(0, 0, 0, .35);
  opacity: 0; pointer-events: none;
  transition: transform .4s var(--ease), opacity .3s ease;
}
#rfs-rab.is-on { transform: translate(-50%, 0); opacity: 1; pointer-events: auto; }
#rfs-rab .rab-name {
  font-family: "Fraunces", Georgia, serif; font-size: .95rem; color: var(--ink);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 46vw;
}
#rfs-rab .rab-actions { display: inline-flex; gap: .5rem; margin-left: auto; }
#rfs-rab .rab-wa {
  font-size: .74rem; font-weight: 650; color: var(--body);
  padding: .55rem 1rem; border: 1px solid var(--v2-hairline); border-radius: 999px;
}
#rfs-rab .rab-wa:hover { color: var(--ink); border-color: var(--v2-hairline-strong); }
#rfs-rab .rab-quote {
  font-size: .74rem; font-weight: 700; letter-spacing: .04em; color: #fff;
  background: #A0171C; padding: .55rem 1.15rem; border-radius: 999px;
}
#rfs-rab .rab-quote:hover { background: #BC1B22; }
body.rab-on .wa-widget, body.rab-on #rfs-top { opacity: 0; pointer-events: none; }

/* Dual CTA on product tiles */
.pc-cta-row { display: flex; align-items: center; gap: 1.1rem; }
.pc-quote { font-size: .77rem; font-weight: 650; color: var(--red) !important; }
.pc-quote:hover { text-decoration: underline; }

/* Search palette */
.v2h-search { background: none; border: none; cursor: pointer; color: var(--muted); display: inline-flex; padding: .2rem; }
.v2h-search:hover { color: var(--v2-accent); }
.v2h-search svg { width: 15px; height: 15px; }
.rfs-cmdk[hidden] { display: none; }
.rfs-cmdk {
  position: fixed; inset: 0; z-index: 1400;
  background: rgba(0, 0, 0, .45);
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  display: flex; align-items: flex-start; justify-content: center;
  padding: 14vh 1rem 0;
  opacity: 0; transition: opacity .25s ease;
}
.rfs-cmdk.is-in { opacity: 1; }
.cmdk-panel {
  width: min(620px, 100%); border-radius: 12px; overflow: hidden;
  background: color-mix(in srgb, var(--v2-canvas) 92%, transparent);
  backdrop-filter: blur(30px) saturate(1.2); -webkit-backdrop-filter: blur(30px) saturate(1.2);
  border: 1px solid var(--v2-hairline-strong);
  box-shadow: 0 40px 100px rgba(0, 0, 0, .5);
  transform: translateY(0); transition: transform var(--dur-ui) var(--ease);
}
.rfs-cmdk:not(.is-in) .cmdk-panel { transform: translateY(10px); }
.cmdk-input {
  width: 100%; background: none; border: none !important; outline: none;
  font: 500 1.05rem/1 Inter, sans-serif; color: var(--ink);
  padding: 1.15rem 1.3rem; border-bottom: 1px solid var(--v2-hairline) !important;
  border-radius: 0 !important; box-shadow: none !important;
}
.cmdk-list { max-height: 46vh; overflow-y: auto; padding: .4rem; }
.cmdk-item {
  display: flex; align-items: center; justify-content: space-between; width: 100%;
  background: none; border: none; cursor: pointer; text-align: left;
  font: 500 .9rem/1.3 Inter, sans-serif; color: var(--body);
  padding: .7rem .9rem; border-radius: 8px;
}
.cmdk-item em { font-style: normal; font-size: .64rem; font-weight: 650; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.cmdk-item.is-sel, .cmdk-item:hover { background: rgba(41, 151, 255, .14); color: var(--ink); }
.cmdk-item.is-sel em { color: var(--v2-accent); }
.cmdk-empty { padding: 1rem; color: var(--muted); font-size: .85rem; }
.cmdk-foot {
  display: flex; gap: 1.2rem; padding: .6rem 1.1rem;
  border-top: 1px solid var(--v2-hairline);
  font-size: .64rem; color: var(--muted); letter-spacing: .04em;
}
body.cmdk-open { overflow: hidden; }

/* Partner marquee: quiet social-proof band seated under the hero. */
.logos-strip {
  padding: 1.9rem 0 2rem;
  border-top: none;                     /* hero ledger already draws the line */
  border-bottom: 1px solid var(--v2-hairline);
}
.logos-strip-head { margin-bottom: 1.3rem; }
.logos-strip-label { color: var(--muted); letter-spacing: .22em; font-size: .62rem; }
.logo-item { width: 188px; height: 64px; border: none !important; background: transparent !important; }
.logo-item:hover { background: transparent !important; }
@media (prefers-reduced-motion: reduce) {
  .logos-track { animation: none; }
  .logos-marquee { overflow-x: auto; -webkit-mask-image: none; mask-image: none; }
}

/* Real partner logos: white chips so every brand reads on both themes. */
.logo-real {
  display: none; max-height: 38px; max-width: 150px; object-fit: contain;
  background: #fff; padding: 7px 14px; border-radius: 8px;
  box-shadow: 0 2px 10px rgba(0,0,0,.18);
}
.logo-item.has-real-logo .logo-real { display: block; filter: saturate(.85); transition: filter .25s ease; }
.logo-item.has-real-logo:hover .logo-real { filter: saturate(1); }
.logo-item.has-ico { gap: .6rem; }
.logo-ico {
  width: 26px; height: 26px; object-fit: contain; flex-shrink: 0;
  background: #fff; padding: 3px; border-radius: 7px;
  filter: saturate(.85); transition: filter .25s ease;
}
.logo-item.has-ico:hover .logo-ico { filter: saturate(1); }

/* 3D card system */
.tilt3d { transform-style: preserve-3d; will-change: transform; position: relative; overflow: hidden; }
.tilt3d::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0;
  background: radial-gradient(420px circle at var(--mx,50%) var(--my,50%),
    rgba(255,255,255,.09), rgba(41,151,255,.05) 40%, transparent 70%);
  transition: opacity .3s ease;
}
.tilt3d:hover::after { opacity: 1; }
.tilt3d:hover { transition: box-shadow .25s ease, border-color .25s ease; }



/* Reduced motion: one global switch ends every animation and transition. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}

/* Social section */
.soc-sec { border-top: 1px solid var(--v2-hairline); padding: clamp(80px,10vh,110px) clamp(1.5rem,5vw,4rem); }
.soc-inner { max-width: var(--max); margin: 0 auto; }
.soc-lead { color: var(--muted); max-width: 480px; margin: .8rem 0 1.6rem; }
.soc-links { display: flex; flex-wrap: wrap; gap: .7rem; margin-bottom: 2.2rem; }
.soc-btn { display: inline-flex; align-items: center; gap: .55rem; border: 1px solid var(--v2-hairline);
  border-radius: 999px; padding: .6rem 1.2rem .6rem .7rem; color: var(--body);
  font-size: .8rem; font-weight: 650; transition: border-color var(--dur-ui) var(--ease), color var(--dur-ui) var(--ease), transform var(--dur-ui) var(--ease); }
.soc-btn::first-letter { text-transform: none; }
.soc-btn:hover { border-color: var(--v2-accent); color: var(--ink); transform: translateY(-2px); }
.soc-btn { text-transform: none; }
.soc-grid { display: grid; grid-template-columns: repeat(6,1fr); gap: 12px; }
@media (max-width:1100px){ .soc-grid { grid-template-columns: repeat(3,1fr); } }
@media (max-width:620px){ .soc-grid { grid-template-columns: repeat(2,1fr); } }
.soc-card { position: relative; display: block; aspect-ratio: 4/5; border-radius: 12px; overflow: hidden;
  border: 1px solid var(--v2-hairline); }
.soc-thumb { position: absolute; inset: 0; background-size: cover; background-position: center;
  transition: transform var(--dur-reveal) var(--ease); }
.soc-card:hover .soc-thumb { transform: scale(1.06); }
.soc-card::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 35%,rgba(0,0,0,.78)); }
.soc-play { position: absolute; top: 10px; right: 10px; z-index: 2; width: 30px; height: 30px;
  display: grid; place-items: center; border-radius: 50%; background: rgba(0,0,0,.55);
  color: #fff; font-size: .6rem; backdrop-filter: blur(6px); }
.soc-cap { position: absolute; left: 12px; right: 12px; bottom: 11px; z-index: 2; color: #f5f7fa;
  font-size: .74rem; line-height: 1.4; font-weight: 550; }
.soc-cap em { display: block; font-style: normal; font-size: .56rem; letter-spacing: .18em;
  text-transform: uppercase; color: var(--v2-accent); margin-bottom: .25rem; }

/* Daily blog segment */
.blog-sec { border-top: 1px solid var(--v2-hairline); padding: clamp(80px,10vh,110px) clamp(1.5rem,5vw,4rem) 70px; }
.blog-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; margin: 1.6rem 0 1.4rem; }
@media (max-width:900px){ .blog-grid { grid-template-columns: 1fr; } }
.blog-card { display: flex; flex-direction: column; gap: .55rem; padding: 1.4rem 1.4rem 1.2rem;
  border: 1px solid var(--v2-hairline); border-radius: 12px; }
.blog-card.is-today { border-color: rgba(200,32,42,.5); }
.blog-date { font-size: .62rem; font-weight: 650; letter-spacing: .16em; text-transform: uppercase; color: var(--v2-accent); }
.blog-card.is-today .blog-date { color: var(--red); }
.blog-title { font-family: "Fraunces", Georgia, serif; font-size: 1.18rem; line-height: 1.2; color: var(--ink); }
.blog-intro { font-size: .82rem; line-height: 1.6; color: var(--muted);
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.blog-more { margin-top: auto; font-size: .76rem; font-weight: 650; color: var(--v2-accent-text); }
.blog-all { font-size: .82rem; font-weight: 650; color: var(--body); }
.blog-all:hover { color: var(--ink); }

/* ════════ 3D MOTION UPLIFT ════════ */
.v2hero-img, .v2hero-body { transition: transform .45s var(--ease); will-change: transform; }
@media (prefers-reduced-motion: no-preference) {
  .v2ix-grid { perspective: 1200px; }
  .v2ix .v2ix-col { transform: rotateX(14deg) translateY(26px); transform-origin: top center; }
  .v2ix.is-in .v2ix-col { transform: none; }
  @starting-style {
    .qm-overlay:not([hidden]) .qm-dialog { transform: perspective(1000px) rotateX(8deg) translateY(18px) scale(.97); }
    .quiz-overlay.is-open .quiz-modal   { transform: perspective(1000px) rotateX(8deg) translateY(18px) scale(.97); }
  }
  .v2btn-gold:active, .v2h-quote:active, .rab-quote:active {
    transform: perspective(600px) translateZ(-14px) scale(.97) !important;
  }
  .soc-card.tilt3d:hover .soc-thumb { transform: scale(1.1); }
}

/* ════════ MARQUEE REFINEMENT ════════
   Uniform chip system + JS velocity marquee (eased slowdown on hover
   instead of the abrupt play-state pause). */
.logo-item { width: auto; padding: 0 26px; height: 72px; }
.logo-real {
  max-height: 44px; max-width: 170px; height: 44px; width: auto;
  object-fit: contain; padding: 8px 18px; border-radius: 12px;
  background: #fff; box-shadow: none; border: 1px solid rgba(0,0,0,.06);
  filter: none; image-rendering: auto;
}
.logo-ico { width: 30px; height: 30px; padding: 4px; border-radius: 8px; filter: none; }
.logo-item.has-real-logo:hover .logo-real,
.logo-item.has-ico:hover .logo-ico { filter: none; }
.logos-track.js-run { animation: none !important; }
.logos-marquee {
  -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 10%, #000 90%, transparent 100%);
          mask-image: linear-gradient(to right, transparent 0%, #000 10%, #000 90%, transparent 100%);
}

/* ════════ DENSITY PASS — close the oversized gaps ════════ */
.sec, .svc-sec, .prv-sec, .risks-sec, .insights-sec, .cases-sec, .faq-sec {
  padding-top: clamp(40px, 6vh, 56px) !important;
  padding-bottom: clamp(40px, 6vh, 56px) !important;
}
.soc-sec, .blog-sec { padding-top: clamp(56px, 7vh, 80px); padding-bottom: clamp(56px, 7vh, 80px); }
.sec-h2, .svc-h2, .prv-h2, .risks-h2, .insights-h2, .cases-h2, .faq-h2 { margin-bottom: .9rem; }
.sec-lead { margin-bottom: 1.6rem; }
.v2hero { min-height: 86svh; }
.v2hero-body { padding-top: clamp(5.5rem, 12vh, 8rem); padding-bottom: clamp(1.8rem, 3vh, 2.6rem); }
.logos-strip { padding: 1.4rem 0 1.5rem; }
.blog-grid { margin: 1.2rem 0 1rem; }
.soc-links { margin-bottom: 1.6rem; }
#why { padding-top: clamp(56px, 7vh, 80px) !important; padding-bottom: clamp(56px, 7vh, 80px) !important; }
.faq-banner, .svc-banner, .prod-banner { margin-bottom: 2.2rem; }
.rfs-footnotes { padding-top: 1rem; }

/* ════════ EMPHASIS + ACCENT BORDERS ════════ */
/* Bold what carries the message. */
.pc-title, .case-title, .blog-title, .svc-card h3, .ind-c h3,
.risk-card h3, .faq-q-hp summary, .soc-cap, .rab-name { font-weight: 700 !important; }
.hp-l, .kpi span, .sec-label, .v2hero-eyebrow { font-weight: 700; }
.v2hero-purpose { font-weight: 500; }
.about-copy strong, .v2hero-desc strong { color: var(--ink); font-weight: 650; }

/* Highlight-colour borders on the animated surfaces (theme-aware:
   --v2-accent holds the blue accent, --red the brand red). */
.tilt3d:hover { border: 1px solid var(--v2-accent) !important; }
.blog-card.is-today { border-color: var(--red) !important; }
.logo-item.has-real-logo:hover .logo-real { border-color: var(--red); }
.rfs-skel { border: 1px solid color-mix(in srgb, var(--v2-accent) 30%, transparent); border-radius: inherit; }
.v2ix.is-in .v2ix-col { outline: 1px solid color-mix(in srgb, var(--v2-accent) 22%, transparent); outline-offset: 10px; border-radius: 3px; }
.qm-dialog, .quiz-modal { border: 1px solid color-mix(in srgb, var(--v2-accent) 45%, transparent) !important; }
#rfs-rab.is-on { border-color: color-mix(in srgb, var(--red) 55%, transparent); }
.cmdk-panel { border-color: var(--v2-accent) !important; }
.v2hero-ledger .hp-stat { transition: box-shadow var(--dur-ui) var(--ease); }
.v2hero-ledger .hp-stat:hover { box-shadow: inset 0 2px 0 var(--v2-accent); }

/* ════════ MARQUEE v3: 25 insurers, uniform premium chips ════════ */
.logo-item { width: auto; padding: 0 16px; height: 84px; }
.logo-real { height: 50px; max-height: 50px; max-width: 200px; width: auto;
  padding: 9px 20px; border-radius: 13px; background: #fff;
  border: 1px solid rgba(0,0,0,.07); object-fit: contain; }
.logo-chip { display: inline-flex; align-items: center; gap: 10px; height: 50px;
  padding: 0 18px; border-radius: 13px; background: #fff; border: 1px solid rgba(0,0,0,.07); }
.logo-ico2 { width: 28px; height: 28px; object-fit: contain; }
.logo-nm { font: 700 13px/1.1 Inter, Arial; color: #15264a; letter-spacing: .02em; white-space: nowrap; }
.logo-nm i { display: block; font: 600 8px/1 Inter; font-style: normal; letter-spacing: .18em;
  text-transform: uppercase; color: #8a93a6; margin-top: 3px; }
.logo-item .logo-wordmark { display: none !important; }
@keyframes logos-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.logos-track { animation-duration: 70s; }

/* ════════ SYMMETRY & ALIGNMENT PASS ════════ */
/* Marquee: one optical row, equal rhythm */
.logos-strip { padding: 1.6rem 0; }
.logos-strip-head { margin-bottom: 1.2rem; }
.logos-track { align-items: center; }
.logo-item { height: 74px; padding: 0 14px; display: inline-flex; align-items: center; }
.logo-real, .logo-chip { height: 50px; box-sizing: border-box; vertical-align: middle; }
.logo-chip { min-width: 150px; justify-content: center; }
.logo-real { min-width: 110px; }

/* CSR cards: equal heights, aligned numerals, clamped names */
#csr-grid { grid-template-columns: repeat(auto-fit, minmax(172px, 1fr)) !important; align-items: stretch; }
#csr-grid > div { min-height: 132px; display: flex; flex-direction: column; }
#csr-grid b { line-height: 1; margin-bottom: .45rem; }
#csr-grid > div > span { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden; min-height: 2.1em; line-height: 1.35; }
#csr-src { max-width: 880px; line-height: 1.7; }
/* Animated sortable claim-settlement bar chart */
#csr-controls { display: flex; gap: .5rem; margin: .2rem 0 1.2rem; flex-wrap: wrap; }
.csr-sort { font: 600 .72rem Inter, sans-serif; padding: .42rem .95rem; border-radius: 999px;
  border: 1px solid var(--v2-hairline); background: transparent; color: var(--muted);
  cursor: pointer; transition: all .2s var(--ease); }
.csr-sort.on { border-color: var(--v2-accent); color: var(--ink); background: var(--v2-accent-soft, rgba(41,151,255,.08)); }
.csr-chart { display: flex; flex-direction: column; gap: .8rem; }
.csr-bar { display: flex; flex-direction: column; gap: .45rem; padding: .5rem .4rem;
  border-radius: 8px; transition: background .2s var(--ease); }
.csr-bar:hover { background: rgba(127,127,127,.06); }
.csr-head { display: flex; align-items: baseline; gap: .65rem; }
.csr-rank { font: 700 .74rem Inter, sans-serif; color: var(--muted); min-width: 26px; }
.csr-bar.top .csr-rank { color: var(--red); }
.csr-name { font-size: .85rem; font-weight: 600; color: var(--ink); flex: 1; line-height: 1.25; }
.csr-val { font: 600 1rem Fraunces, Georgia, serif; color: var(--ink); white-space: nowrap; }
.csr-val.na { font: 400 .66rem Inter, sans-serif; color: var(--muted); }
.csr-track { height: 11px; border-radius: 999px; background: rgba(127,127,127,.16);
  overflow: hidden; box-shadow: inset 0 0 0 1px rgba(127,127,127,.08); }
.csr-fill { display: block; height: 100%; width: 0; border-radius: 999px;
  background: linear-gradient(90deg, #0063BF, #6bb7ff); transition: width .8s var(--ease);
  box-shadow: 0 0 12px rgba(41,151,255,.4); }
.csr-bar.top .csr-fill { background: linear-gradient(90deg, #A0171C, #ef5a61); box-shadow: 0 0 12px rgba(200,32,42,.4); }
.csr-axis { display: flex; justify-content: space-between; font-size: .6rem; color: var(--muted); margin-top: .7rem; padding: 0 .4rem; }

/* Ledger + KPI grids: equalized cells.

   The key-number row was centring each cell's stack vertically, which only
   looks equalized when every stack is the same height. Two things made them
   different heights, so the five numbers sat on five different baselines
   (measured at 1280: 20.8 / 21.3 / 28 / 31.6 / 38.8px from the cell top):

   1. The footnote marker is a THIRD flex child, not part of the label, so
      the three cells carrying one were taller -- and the marker was landing
      on its own line under the label rather than riding on it. It cannot be
      moved inside .hp-l, because renderLanguage() assigns el.innerHTML on
      every [data-i18n] node and would delete it on the first language
      switch. So it comes out of the flow instead.
   2. Labels wrap to two lines at some widths and one at others, and which
      ones wrap changes with the viewport.

   Anchoring the stack to the top makes the numbers share a baseline no
   matter how the labels wrap. The label min-height keeps the cells evenly
   filled on the multi-column layout; the phone layout is one line per label
   and does not need it. */
.v2hero-ledger .hp-stat {
  position: relative;
  justify-content: flex-start;
}
.v2hero-ledger .fn-ref {
  position: absolute;
  top: .55rem; right: .75rem;
  line-height: 1;
}
/* ₹18,930 Cr+ is the widest value and the one at risk of breaking in a
   narrow column; it stays on one line. */
.v2hero-ledger .hp-n { white-space: nowrap; }
@media (min-width: 981px) {
  .v2hero-ledger .hp-l { min-height: 2.9em; }
}
.kpis { gap: 12px !important; }

/* Section header block: consistent stack rhythm everywhere */
.sec-label, .svc-label, .cases-label, .faq-label { margin-bottom: .85rem; display: inline-flex; }
.sec-lead { margin-top: .2rem; }

/* Social + blog grids: equal card heights */
.blog-grid { align-items: stretch; }
.blog-card { min-height: 178px; }

/* Marquee v4: identical tiles, real logos */
.logo-item .logo-real { display: block; position: static; inset: auto; transform: none; filter: none; }
.logo-item .logo-real, .logo-item .logo-chip { width: 204px; height: 64px; max-height: 64px; box-sizing: border-box; min-width: 0; }
.logo-real { padding: 9px 16px; object-fit: contain; }
/* Uniform slim padding: contain-fit then draws every mark at its max size */
.logo-item .logo-real.lg-sq, .logo-item .logo-real.lg-md, .logo-item .logo-real.lg-wide,
.logo-item .logo-real { padding: 6px 14px; }
.logos-marquee .logo-item { height: 88px; }
.logo-item { height: 80px; padding: 0 12px; }

/* ==== INSURER NETWORK: tile links, entrance + hover animation, profile pages ==== */
.logos-track a.logo-item { text-decoration: none; -webkit-tap-highlight-color: transparent; cursor: pointer; }
.logos-track .logo-item { transition: transform var(--dur-ui) var(--ease), opacity var(--dur-reveal) var(--ease); }
.logos-track .logo-item .logo-real { transition: border-color var(--dur-ui) var(--ease), box-shadow var(--dur-ui) var(--ease); }
.logos-track .logo-item:hover { transform: translateY(-4px); }
.logos-track .logo-item:hover .logo-real { border-color: var(--red); box-shadow: 0 12px 26px rgba(0,0,0,.16); }
.logos-track .logo-item:focus-visible { outline: 2px solid var(--red); outline-offset: 4px; border-radius: 12px; }
.logos-marquee.lm-anim .logo-item { opacity: 0; transform: translateY(18px) scale(.94); }
.logos-marquee.lm-anim.lm-in .logo-item { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .logos-marquee.lm-anim .logo-item { opacity: 1; transform: none; transition: none; }
}
.ins-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 14px; margin-top: 28px; }
.ins-fact { background: rgba(127,127,127,.07); border: 1px solid rgba(127,127,127,.16); border-left: 3px solid var(--red); padding: 14px 16px; border-radius: 8px; }
.ins-fact b { display: block; font: 700 11px/1.4 Inter, sans-serif; letter-spacing: .09em; text-transform: uppercase; opacity: .62; margin-bottom: 4px; }
.ins-fact span { font-size: 15px; font-weight: 600; overflow-wrap: anywhere; }
.ins-fact a { color: var(--v2-accent-text, var(--v2-accent)); text-decoration: none; }
.ins-fact a:hover { text-decoration: underline; }
.ins-claims { margin-top: 24px; }
.ins-claims-stat { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; }
.ins-claims-n { font: 700 clamp(40px, 6vw, 64px)/1 Fraunces, serif; color: var(--red); }
.ins-claims-n i { font-style: normal; font-size: .55em; }
.ins-claims-l { font-size: 16px; font-weight: 600; }
.ins-claims-src, .ins-claims-pending, .ins-note, .ins-legal { font-size: 13.5px; line-height: 1.65; opacity: .72; max-width: 760px; }
.ins-claims-src { margin-top: 12px; }
.ins-note { margin-top: 18px; }
.ins-legal { margin-top: 26px; font-size: 12.5px; }

/* ==== MOTION PASS: automatic scroll reveals, image life, accordion ease ==== */
.mrv { opacity: 0; transform: translateY(22px); transition: opacity var(--dur-reveal) var(--ease), transform var(--dur-reveal) var(--ease); transition-delay: var(--mrv-d, 0s); }
.mrv.mrv-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .mrv { opacity: 1 !important; transform: none !important; transition: none !important; }
}
.img-block { overflow: hidden; }
.img-block img { transition: transform .7s var(--ease); }
.img-block:hover img { transform: scale(1.035); }
.rel-card, .who-card, .ben-card, .cov-item { transition: transform var(--dur-ui) var(--ease), box-shadow var(--dur-ui) var(--ease), border-color var(--dur-ui) var(--ease); }
.rel-card:hover, .who-card:hover, .ben-card:hover, .cov-item:hover { transform: translateY(-4px); }

/* ==== Backend-connected options: claim modal extras, quiz capture, claim CTA ==== */
.qm-fine { font-size: 12px; opacity: .65; margin-top: 12px; line-height: 1.6; }
.claim-cta-line { font-size: 14px; margin-top: 10px; opacity: .85; }
.claim-cta-line a { color: var(--red); text-decoration: none; }
.claim-cta-line a:hover { text-decoration: underline; }
.quiz-capture { margin: 1.2rem 0 1.4rem; padding: 1rem 1.1rem; border: 1px solid rgba(127,127,127,.22); border-left: 3px solid var(--red); border-radius: 8px; }
.quiz-capture-row { display: flex; gap: .55rem; flex-wrap: wrap; margin-top: .6rem; }
.quiz-capture-row input { flex: 1 1 150px; padding: .6rem .75rem; border: 1px solid rgba(127,127,127,.3); border-radius: 8px; background: transparent; color: inherit; font: inherit; font-size: .85rem; }
.quiz-capture-row .btn-red { flex: 0 0 auto; padding: .6rem 1rem; font-size: .82rem; border: none; border-radius: 8px; cursor: pointer; }
.quiz-capture-note { font-size: .74rem; opacity: .65; margin: .6rem 0 0; line-height: 1.6; }
.quiz-capture-ok { font-size: .85rem; opacity: .95; }

/* ===================================================================
   ATELIER LAYER — living hero atmosphere, magnetic cursor, scroll rail
   Self-contained. Everything below is gated by JS on pointer:fine and
   prefers-reduced-motion, so touch users and reduced-motion users get
   the clean static experience.
   =================================================================== */
.v2hero-atmos {
  position: absolute; inset: 0; width: 100%; height: 100%;
  filter: blur(36px) saturate(1.18);
  opacity: .6; mix-blend-mode: screen; pointer-events: none;
}
@media (prefers-reduced-motion: reduce) { .v2hero-atmos { opacity: .4; } }

/* Cursor-follow spotlight: native cursor stays; a soft brand-blue light
   tracks the pointer 1:1 (no easing, no lag) over always-dark zones only.
   Screen blend can only lighten, so it never reduces text contrast. */
.cursor-glow {
  position: fixed; top: 0; left: 0; width: 540px; height: 540px;
  margin: -270px 0 0 -270px; border-radius: 50%;
  pointer-events: none; z-index: 1; opacity: 0;
  background: radial-gradient(circle,
    rgba(41, 151, 255, .15) 0%, rgba(41, 151, 255, .06) 38%, transparent 70%);
  mix-blend-mode: screen; will-change: transform;
  transition: opacity .4s var(--ease);
}
.cursor-glow.show { opacity: 1; }

/* Scroll-progress rail (brand gradient, fixed at very top) */
.scroll-rail { position: fixed; top: 0; left: 0; right: 0; height: 2px;
  z-index: 99998; pointer-events: none; background: transparent; }
.scroll-rail i { display: block; height: 100%; transform-origin: left center;
  transform: scaleX(0);
  background: linear-gradient(90deg, #A0171C 0%, #6bb7ff 100%);
  box-shadow: 0 0 9px rgba(41, 151, 255, .55); }

/* Magnetic CTAs: re-declare transitions so transform springs while colour
   fades keep working. */
.v2btn-gold.magnetic, .v2btn-line.magnetic, .nb-quote.magnetic, .v2btn-white.magnetic {
  transition: transform .32s var(--ease), background .3s var(--ease),
              color .3s var(--ease), border-color .3s var(--ease),
              box-shadow .3s var(--ease) !important;
  will-change: transform;
}

/* ===== Planning tools (calculators) ===== */
.tools-tabs { display: flex; gap: .5rem; margin: .2rem 0 1.3rem; flex-wrap: wrap; }
.tools-tab { font: 600 .8rem Inter, sans-serif; padding: .55rem 1.2rem; border-radius: 999px;
  border: 1px solid var(--v2-hairline); background: transparent; color: var(--muted);
  cursor: pointer; transition: all .2s var(--ease); }
.tools-tab.on { border-color: var(--v2-accent); color: var(--ink); background: var(--v2-accent-soft, rgba(41,151,255,.08)); }
.tools-wrap { position: relative; }
.tool-card { display: grid; grid-template-columns: 1fr 1fr; gap: 1.4rem; align-items: stretch;
  border: 1px solid var(--v2-hairline); border-radius: 12px; padding: 1.5rem; background: var(--off, rgba(127,127,127,.03)); }
.tool-form { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; align-content: start; }
.tool-form label { display: flex; flex-direction: column; gap: .3rem; font-size: .68rem;
  font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); }
.tool-form input { font: 500 1rem Inter, sans-serif; padding: .6rem .75rem; border-radius: 8px;
  border: 1px solid var(--v2-hairline); background: var(--bg, transparent); color: var(--ink); outline: 0;
  transition: border-color .2s; -moz-appearance: textfield; }
.tool-form input::-webkit-outer-spin-button, .tool-form input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.tool-form input:focus { border-color: var(--v2-accent); }
.tool-go { grid-column: 1 / -1; margin-top: .3rem; font: 600 .85rem Inter, sans-serif;
  padding: .75rem; border: none; border-radius: 8px; background: var(--red); color: #fff;
  cursor: pointer; transition: filter .2s; }
.tool-go:hover { filter: brightness(1.12); }
.tool-out { display: flex; flex-direction: column; justify-content: center;
  border-left: 1px solid var(--v2-hairline); padding-left: 1.4rem; }
.tool-hint { font-size: .82rem; line-height: 1.7; color: var(--muted); }
.tool-result .tr-label { font-size: .66rem; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; color: var(--muted); }
.tool-result .tr-big { font: 600 clamp(2rem, 5vw, 2.9rem)/1.05 Fraunces, Georgia, serif; color: var(--ink); margin: .25rem 0 .1rem; }
.tool-result .tr-big span { color: var(--v2-accent); }
.tool-result .tr-sub { font-size: .76rem; color: var(--muted); margin-bottom: 1rem; }
.tool-result .tr-rows { font-size: .8rem; line-height: 1.9; border-top: 1px solid var(--v2-hairline); padding-top: .7rem; }
.tool-result .tr-rows .tr-row { display: flex; justify-content: space-between; gap: 1rem; color: var(--body); }
.tool-result .tr-rows .tr-row b { color: var(--ink); font-weight: 600; }
.tool-result .tr-rows .tr-row.tot { border-top: 1px solid var(--v2-hairline); margin-top: .4rem; padding-top: .4rem; }
.tool-cta { display: inline-flex; align-items: center; gap: .4rem; margin-top: 1.1rem;
  font: 600 .8rem Inter, sans-serif; color: var(--red); cursor: pointer; }
.tool-cta:hover { text-decoration: underline; }
.tool-err { color: var(--red); font-size: .76rem; margin-top: .5rem; }
.tool-note { max-width: 820px; font-size: .68rem; line-height: 1.7; color: var(--muted); margin-top: 1.1rem; }
@media (max-width: 720px) {
  .tool-card { grid-template-columns: 1fr; gap: 1.1rem; }
  .tool-out { border-left: none; border-top: 1px solid var(--v2-hairline); padding-left: 0; padding-top: 1.1rem; }
}

/* ===== Original RFS logo (image) ===== */
.v2h-logo-img { display: block; width: auto; height: clamp(1.95rem, 4.4vw, 2.55rem); }
@media (max-width: 720px) { .v2h-logo-img { height: 1.9rem; } }
.v2h-brand .v2h-logo-img { transition: transform .3s var(--ease), filter .3s var(--ease); }
.v2h-brand:hover .v2h-logo-img { transform: scale(1.03); filter: drop-shadow(0 2px 6px rgba(0,0,0,.18)); }

/* width:auto was fine for an <img>; the element is now a span with a
   background, so it needs a real width or it stretches to the column. */
.footer-logo-img2 { display: block; width: 5.2rem; height: 2.1rem; margin-bottom: 1rem; }

#rfs-veil .veil-mark {
  display: block; font-size: 0;
  width: clamp(158px, 24vw, 252px); height: clamp(2.6rem, 6.5vw, 4.2rem);
  background: url("/logo-320.png") center center / contain no-repeat;
  opacity: 0; clip-path: inset(0 100% 0 0);
  animation: rfsLogoReveal .95s var(--ease) .12s both;
}
/* the full-colour mark would sit at poor contrast on the dark ground */
:root[data-theme="dark"] #rfs-veil .veil-mark {
  background-image: url("/logo-light.png");
  filter: drop-shadow(0 8px 30px rgba(0,0,0,.4));
}
@keyframes rfsLogoReveal {
  0%   { opacity: 0; clip-path: inset(0 100% 0 0); transform: translateY(10px) scale(.99); }
  60%  { opacity: 1; }
  100% { opacity: 1; clip-path: inset(0 0 0 0); transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  #rfs-veil .veil-mark { opacity: 1; clip-path: none; animation: none; }
}

/* ===== RFS ASSISTANT  --  on-site AI advisory chatbot ===== */
.rfsa{ --b:22px; --a-bg:#15151a; --a-surf:#1d1d23; --a-line:rgba(255,255,255,.10);
  --a-ink:#f4f5f7; --a-mut:#9a9aa2; --a-accent:#a5d1ff; --a-user:#a5d1ff; --a-userink:#0a3a6b; }
:root:not([data-theme="dark"]) .rfsa{ --a-bg:#ffffff; --a-surf:#f3f4f6; --a-line:rgba(0,0,0,.10);
  --a-ink:#16161a; --a-mut:#5c5c64; --a-accent:#3f8fe0; --a-user:#a5d1ff; --a-userink:#0a3a6b; }
.rfsa-fab{ position:fixed; right:22px; bottom:var(--b); z-index:var(--z-fab,1150);
  height:56px; border-radius:999px; border:none; cursor:pointer; padding:0 1.15rem 0 .9rem; gap:.5rem;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,#c2e0ff,#a5d1ff); color:#0a3a6b;
  box-shadow:0 10px 26px rgba(120,170,225,.5), 0 0 0 1px rgba(255,255,255,.55);
  transition:transform .2s var(--ease,ease), box-shadow .3s ease; }
.rfsa-fab:hover{ transform:translateY(-2px) scale(1.04); }
.rfsa-fab svg{ width:25px; height:25px; }
.rfsa-fab .rfsa-close-ic{ display:none; }
.rfsa.open .rfsa-fab .rfsa-open-ic{ display:none; }
.rfsa.open .rfsa-fab .rfsa-close-ic{ display:block; }
.rfsa-fab-label{ font:600 .92rem Inter,system-ui,sans-serif; white-space:nowrap; }
.rfsa.open .rfsa-fab{ width:56px; padding:0; border-radius:50%; }
.rfsa.open .rfsa-fab .rfsa-fab-label{ display:none; }
.rfsa-dot{ position:absolute; top:0; right:0; width:13px; height:13px; border-radius:50%;
  background:var(--red,#A0171C); border:2px solid #a5d1ff; }
.rfsa.open .rfsa-dot, .rfsa.seen .rfsa-dot{ display:none; }
.rfsa-panel{ position:fixed; right:22px; bottom:calc(var(--b) + 70px); z-index:var(--z-fab,1150);
  width:370px; max-width:calc(100vw - 2.2rem); height:min(72vh,560px);
  display:flex; flex-direction:column; overflow:hidden;
  background:var(--a-bg); color:var(--a-ink); border:1px solid var(--a-line);
  border-radius:12px; box-shadow:0 24px 60px rgba(0,0,0,.40);
  opacity:0; transform:translateY(14px) scale(.98); pointer-events:none;
  transition:opacity .25s var(--ease,ease), transform .25s var(--ease,ease); }
.rfsa.open .rfsa-panel{ opacity:1; transform:none; pointer-events:auto; }
.rfsa-head{ display:flex; align-items:center; gap:.6rem; padding:.8rem 1rem;
  background:linear-gradient(135deg,#a5d1ff,#c2e0ff); color:#0a3a6b; }
.rfsa-av{ width:34px; height:34px; border-radius:50%; flex:0 0 auto; display:flex;
  align-items:center; justify-content:center; background:rgba(10,58,107,.14); }
.rfsa-av svg{ width:18px; height:18px; }
.rfsa-head b{ display:block; font:600 .9rem Inter,system-ui,sans-serif; }
.rfsa-head small{ display:block; font-size:.69rem; opacity:.88; }
.rfsa-x{ margin-left:auto; background:none; border:none; color:#0a3a6b; font-size:1.35rem;
  line-height:1; cursor:pointer; opacity:.85; padding:.1rem .3rem; }
.rfsa-x:hover{ opacity:1; }
.rfsa-log{ flex:1; overflow-y:auto; padding:1rem .9rem; display:flex; flex-direction:column;
  gap:.7rem; font:400 .85rem/1.5 Inter,system-ui,sans-serif; }
.rfsa-msg{ max-width:86%; padding:.6rem .8rem; border-radius:13px; white-space:pre-wrap;
  overflow-wrap:anywhere; }
.rfsa-msg.bot{ align-self:flex-start; background:var(--a-surf); color:var(--a-ink);
  border:1px solid var(--a-line); border-bottom-left-radius:4px; }
.rfsa-msg.me{ align-self:flex-end; background:var(--a-user); color:var(--a-userink);
  border-bottom-right-radius:4px; }
.rfsa-src{ align-self:flex-start; font-size:.66rem; color:var(--a-mut); max-width:86%; margin-top:-.4rem; }
.rfsa-chips,.rfsa-cta{ display:flex; flex-wrap:wrap; gap:.4rem; align-self:flex-start; max-width:96%; }
.rfsa-chip{ font:500 .73rem Inter,system-ui,sans-serif; color:var(--a-accent);
  background:transparent; border:1px solid var(--a-line); border-radius:999px;
  padding:.34rem .7rem; cursor:pointer; transition:background .15s, border-color .15s; }
.rfsa-chip:hover{ border-color:var(--a-accent); background:color-mix(in srgb,var(--a-accent) 12%,transparent); }
.rfsa-cta a{ font:600 .74rem Inter,system-ui,sans-serif; text-decoration:none; cursor:pointer;
  padding:.42rem .8rem; border-radius:999px; }
.rfsa-cta .rfsa-pri{ background:var(--red,#A0171C); color:#fff; }
.rfsa-cta .rfsa-sec{ border:1px solid var(--a-line); color:var(--a-ink); }

/* Inline callback capture.
   The CTA used to be two buttons that closed the chat and opened a modal
   form. Someone mid-conversation was being asked to abandon it and start
   filling fields, which is why the assistant opened 35 times, took 55
   messages and captured one lead. This asks for one thing, in place, and
   never takes them out of the conversation. */
.rfsa-lead{ align-self:flex-start; width:96%; background:var(--a-surf);
  border:1px solid var(--a-line); border-radius:13px; padding:.7rem .75rem; }
.rfsa-lead p{ font:500 .74rem Inter,system-ui,sans-serif; color:var(--a-ink);
  margin:0 0 .5rem; line-height:1.45; }
.rfsa-lead-row{ display:flex; gap:.4rem; }
.rfsa-lead input{ flex:1 1 auto; min-width:0; font:500 .78rem Inter,system-ui,sans-serif;
  color:var(--a-ink); background:var(--a-bg,transparent); border:1px solid var(--a-line);
  border-radius:999px; padding:.44rem .8rem; outline:0; transition:border-color .15s; }
.rfsa-lead input:focus{ border-color:var(--a-accent); }
.rfsa-lead button{ flex:0 0 auto; font:600 .74rem Inter,system-ui,sans-serif; cursor:pointer;
  background:var(--red,#A0171C); color:#fff; border:0; border-radius:999px; padding:.44rem .9rem; }
.rfsa-lead button:disabled{ opacity:.55; cursor:default; }
.rfsa-lead small{ display:block; margin-top:.45rem; font-size:.66rem; color:var(--a-mut); }
.rfsa-lead small a{ color:var(--a-accent); cursor:pointer; text-decoration:none; }
.rfsa-lead-err{ margin-top:.4rem; font-size:.68rem; color:var(--red,#A0171C); }
.rfsa-typing{ align-self:flex-start; display:flex; gap:4px; padding:.65rem .8rem;
  background:var(--a-surf); border:1px solid var(--a-line); border-radius:13px; border-bottom-left-radius:4px; }
.rfsa-typing i{ width:6px; height:6px; border-radius:50%; background:var(--a-mut);
  animation:rfsaBlink 1.2s infinite both; }
.rfsa-typing i:nth-child(2){ animation-delay:.2s; } .rfsa-typing i:nth-child(3){ animation-delay:.4s; }
@keyframes rfsaBlink{ 0%,80%,100%{ opacity:.25; } 40%{ opacity:1; } }
.rfsa-foot{ border-top:1px solid var(--a-line); padding:.6rem .7rem .45rem; background:var(--a-bg); }
.rfsa-form{ display:flex; gap:.5rem; align-items:center; }
.rfsa-in{ flex:1; background:var(--a-surf); border:1px solid var(--a-line); color:var(--a-ink);
  border-radius:999px; padding:.6rem .9rem; font:400 .85rem Inter,system-ui,sans-serif; outline:none; }
.rfsa-in:focus{ border-color:var(--a-accent); }
.rfsa-send{ flex:0 0 auto; width:38px; height:38px; border-radius:50%; border:none; cursor:pointer;
  background:#a5d1ff; color:#0a3a6b; display:flex; align-items:center; justify-content:center; }
.rfsa-send:disabled{ opacity:.5; cursor:default; }
.rfsa-send svg{ width:17px; height:17px; }
.rfsa-note{ margin:.45rem .2rem 0; font-size:.6rem; color:var(--a-mut); text-align:center; }
#rfs-top{ bottom:92px; }
body:has(.sticky-cta.is-visible) .rfsa{ --b:5.5rem; }
body:has(.cookie-banner:not([hidden])) .rfsa{ --b:10.5rem; }
body:has(.sticky-cta.is-visible) #rfs-top{ bottom:calc(5.5rem + 70px); }
body:has(.cookie-banner:not([hidden])) #rfs-top{ bottom:calc(10.5rem + 70px); }
body:has(.rfsa.open) #rfs-top{ opacity:0 !important; pointer-events:none !important; }
@media (max-width:560px){ .rfsa-panel{ height:min(80vh,560px); } .rfsa-fab{ height:50px; padding:0 .95rem 0 .72rem; } .rfsa-fab-label{ font-size:.85rem; } .rfsa.open .rfsa-fab{ width:50px; padding:0; } }
@media (prefers-reduced-motion:reduce){ .rfsa-fab,.rfsa-panel{ transition:none; } .rfsa-typing i{ animation:none; } }


/* Cover Finder AI brief (advisor's note) */
.quiz-brief{ margin:1.2rem 0 0; padding:1rem 1.1rem; border:1px solid rgba(41,151,255,.28);
  border-left:3px solid var(--v2-accent,#2E86E8); border-radius:8px; background:rgba(41,151,255,.06); }
.quiz-brief-head{ display:flex; align-items:center; gap:.5rem; font-size:.7rem; font-weight:600;
  letter-spacing:.09em; text-transform:uppercase; color:var(--v2-accent,#2E86E8); margin-bottom:.6rem; }
.quiz-brief-mark{ width:15px; height:15px; flex:0 0 auto; }
.quiz-brief-body p{ font-size:.86rem; line-height:1.7; margin:0 0 .55rem; }
.quiz-brief-body p:last-child{ margin:0; }
.quiz-brief.is-loading{ opacity:.65; }
.quiz-brief-dots{ display:inline-flex; gap:4px; }
.quiz-brief-dots i{ width:5px; height:5px; border-radius:50%; background:var(--v2-accent,#2E86E8);
  animation:rfsaBlink 1.2s infinite both; }
.quiz-brief-dots i:nth-child(2){ animation-delay:.2s; } .quiz-brief-dots i:nth-child(3){ animation-delay:.4s; }

/* Instant AI policy check (in the Free Policy Review section) */
.prv-ai{ max-width:var(--max,1180px); margin:2.2rem auto 0; padding:1.4rem clamp(1.1rem,5vw,2rem); }
.prv-ai-head{ display:flex; align-items:center; gap:.5rem; font:600 .98rem Inter,system-ui,sans-serif; color:var(--ink,#f4f5f7); margin-bottom:.35rem; }
.prv-ai-head svg{ width:18px; height:18px; color:var(--v2-accent,#2E86E8); flex:0 0 auto; }
.prv-ai-sub{ font-size:.82rem; color:var(--muted,#9a9aa2); line-height:1.6; margin:0 0 .85rem; max-width:660px; }
.prv-ai-text{ width:100%; box-sizing:border-box; min-height:120px; resize:vertical; padding:.8rem .9rem;
  border:1px solid var(--border,rgba(127,127,127,.25)); border-radius:8px; background:rgba(127,127,127,.06);
  color:var(--ink,#f4f5f7); font:400 .85rem/1.6 Inter,system-ui,sans-serif; outline:none; }
.prv-ai-text:focus{ border-color:var(--v2-accent,#2E86E8); }
.prv-ai-go{ margin-top:.75rem; background:var(--red,#A0171C); color:#fff; border:none; border-radius:999px;
  padding:.62rem 1.35rem; font:600 .8rem Inter,system-ui,sans-serif; cursor:pointer; transition:filter .2s; }
.prv-ai-go:hover{ filter:brightness(1.1); } .prv-ai-go:disabled{ opacity:.5; cursor:default; }
.prv-ai-out{ margin-top:1.1rem; padding:1.1rem 1.2rem; border:1px solid var(--border,rgba(127,127,127,.25));
  border-left:3px solid var(--v2-accent,#2E86E8); border-radius:8px; background:rgba(41,151,255,.05); }
.prv-ai-out p{ font-size:.85rem; line-height:1.65; margin:0 0 .45rem; color:var(--ink,#f4f5f7); white-space:pre-wrap; }
.prv-ai-out p:last-child{ margin:0; }
.prv-ai-cta{ display:flex; gap:.55rem; margin-top:.9rem; flex-wrap:wrap; }
.prv-ai-cta a{ font:600 .78rem Inter,system-ui,sans-serif; text-decoration:none; padding:.5rem 1rem; border-radius:999px; cursor:pointer; }
.prv-ai-cta .pri{ background:var(--red,#A0171C); color:#fff; } .prv-ai-cta .sec{ border:1px solid var(--border,rgba(127,127,127,.3)); color:var(--ink,#f4f5f7); }
.prv-ai-note{ font-size:.68rem; color:var(--muted,#9a9aa2); margin:.7rem 0 0; line-height:1.6; }

/* ---- Density pass: tighter vertical rhythm sitewide (homepage + pages) ---- */
.sec-hdr { margin-bottom: 1.8rem; }
.pc { padding: 1.25rem 1.3rem; }
.svc-card { padding: 1.5rem 1.5rem; }
.insight-thumb { aspect-ratio: 21 / 9; }
/* Calculators: stack on phones (two rigid 1fr columns overflowed 384px) */
@media (max-width: 640px) {
  .tool-card { grid-template-columns: 1fr; }
  .tool-form input { min-width: 0; width: 100%; }
  .tool-form, .tool-go, .tool-out, .tool-hint { max-width: 100%; }
}

/* ---- Polish pass: layout balance + component states ---- */
.v2hero-finders { display: flex; flex-direction: column; gap: .4rem; margin-top: 1rem; }
.about-right, .prv-right { position: sticky; top: 110px; align-self: start; }
.pc-cta-row, .pc > .pc-lnk { margin-top: auto; }
.pc-cta-row { display: flex; gap: 1.1rem; align-items: baseline; padding-top: .9rem; }
#industries .sec-hdr { margin-bottom: 1.1rem; }
#industries .ind-full { margin-top: 0; padding-top: 0; border-top: 0; }
.tool-card[hidden] { display: none; }
.tool-out { display: flex; flex-direction: column; justify-content: center; }

/* Industries: categorised pill cloud (replaces the 24-tile wall) */
.ind-cloud { display: flex; flex-direction: column; gap: 1.35rem; }
.ind-group-label { font-size: .66rem; font-weight: 700; letter-spacing: .18em;
  text-transform: uppercase; color: var(--muted); margin-bottom: .55rem; }
.ind-pills { display: flex; flex-wrap: wrap; gap: .5rem; }
.ind-pill { font: 500 .84rem Inter, system-ui, sans-serif; color: var(--text-strong);
  text-decoration: none; padding: .48rem .95rem; border: 1px solid var(--border2);
  border-radius: 999px; background: var(--white);
  transition: border-color .15s, color .15s, background .15s; }
.ind-pill:hover { border-color: var(--red); color: var(--red); }

/* Industries: live filter */
.ind-search { position: relative; max-width: 430px; margin: 0 0 1.5rem; color: var(--muted); }
.ind-search svg { position: absolute; left: .95rem; top: 50%; width: 17px; height: 17px; transform: translateY(-50%); pointer-events: none; }
.ind-search input { width: 100%; font: 500 .9rem Inter, system-ui, sans-serif; color: var(--text-strong);
  background: var(--white); border: 1px solid var(--border2); border-radius: 999px;
  padding: .72rem 1.1rem .72rem 2.55rem; outline: none; transition: border-color .15s; }
.ind-search input:focus { border-color: var(--red); }
.ind-search input::placeholder { color: var(--muted); }
.ind-nores { font-size: .9rem; color: var(--muted); margin: 0 0 1.2rem; }
.ind-nores a { color: var(--text-strong); font-weight: 600; }
.ind-pill[hidden], .ind-group[hidden] { display: none; }

.ind-nores { display: flex; align-items: center; gap: .8rem; flex-wrap: wrap; }
.ind-pill-sugg { border-color: var(--red); color: var(--red); font-weight: 600; }

/* ---- Density pass 2: content-first cards ---- */
.insight-thumb { display: none; }
.svc-card { padding: 1.15rem 1.3rem; }
.svc-desc, .pc-desc { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
.insight-card { border-top: 3px solid var(--red); }

/* ---- ROI treatments: merged disciplines, editorial insights, lean faq/footer ---- */
.about-disc { margin-top: 2rem; }
.about-disc-label { font-size: .68rem; font-weight: 700; letter-spacing: .16em;
  text-transform: uppercase; color: var(--red); margin-bottom: .9rem; }
.disc-row { display: grid; grid-template-columns: 230px 1fr; gap: 1rem;
  padding: .8rem 0; border-top: 1px solid var(--border); }
.disc-row h5 { font-size: .92rem; font-weight: 700; color: var(--text-strong); margin: 0; }
.disc-row p { font-size: .85rem; color: var(--muted); line-height: 1.6; margin: 0;
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
@media (max-width: 640px) { .disc-row { grid-template-columns: 1fr; gap: .25rem; } }
.insights-grid { display: block; }
.insight-card { display: block; padding: .85rem 0 !important; border: 0 !important;
  border-top: 1px solid var(--border) !important; border-radius: 0 !important;
  background: transparent !important; box-shadow: none !important; transform: none !important; }
.insight-body { display: flex; align-items: baseline; gap: 1.1rem; padding: 0 !important; }
.insight-meta { flex: 0 0 auto; }
.insight-title { flex: 1; font-size: .96rem; margin: .15rem 0 !important; }
.insight-meta { margin: 0 !important; }
.insight-cta { margin-top: .15rem !important; }
.insight-sum { display: none; }
.insight-cta { flex: 0 0 auto; white-space: nowrap; }
@media (max-width: 700px) { .insight-body { flex-wrap: wrap; gap: .3rem .9rem; } .insight-title { flex-basis: 100%; } }


/* csr & tools place content bare in the section (flush at the 64px gutter)
   while every other section wraps content in a centered 1280 rail (80px).
   Center their content the same way so all headlines share one left edge. */
#csr > .sec-label, #csr > .sec-h2, #csr > .sec-lead, #csr > .csr-chart,
#csr > .csr-axis, #csr > .muted, #csr > div,
#tools > .sec-label, #tools > .sec-h2, #tools > .sec-lead,
#tools > .tools-tabs, #tools > .tools-wrap, #tools > .tool-note, #tools > .tool-perma {
  max-width: 1280px; margin-left: auto; margin-right: auto;
}
/* Permalinks to the standalone calculator pages. Deliberately quiet: this
   row is here so the pages are crawlable and shareable, not to compete
   with the tabs above it. */
.tool-perma { font-size: .72rem; line-height: 2.1; color: var(--muted); margin-top: .9rem; }
.tool-perma a { color: var(--muted); text-decoration: none; padding: .25rem .6rem; margin: 0 .18rem;
  border: 1px solid var(--line, rgba(0,0,0,.12)); border-radius: 99px; white-space: nowrap;
  display: inline-block; transition: color .18s, border-color .18s; }
.tool-perma a:hover, .tool-perma a:focus-visible { color: var(--red, #A0171C); border-color: currentColor; }
.tool-perma a b { font-weight: 600; }

/* ================= DESIGN STANDARD TOKENS =================
   One component language across every section. Audit found seven corner
   radii (0/2/4/10/18/99/999), two different primary-button reds (#A0171C
   vs #A0171C) and three primary-button shapes. Standard:
   - BUTTONS & chips: pill (999px), single red var(--red), no drop shadows
   - PANELS/cards: 4px radius, white + hairline border
   - INPUTS/controls: 10px radius (already dominant)
   - Data-viz (csr bars) exempt. */
.btn-red, .tool-go, .prv-submit, .btn-white, .btn-ghost-w, .why-cta, .qm-submit,
.quiz-cta, .prv-ai-btn {
  border-radius: 999px !important;
  box-shadow: none !important;
}
.btn-red, .tool-go, .prv-submit { background: var(--red) !important; }
.case-chip { border-radius: 999px; }
.tool-card {
  background: var(--white, #fff) !important;
  border-radius: 4px !important;
  border: 1px solid var(--border2, rgba(17,24,39,.12)) !important;
}
.about-pledge { border-radius: 4px !important; }

/* ================= SECTION RHYTHM & VOICE =================
   MNC-standard page rhythm: alternating white / soft-grey bands so each
   section reads as a deliberate chapter instead of one continuous sheet.
   One lead-paragraph voice everywhere (sec-lead's 0.97rem / ink-68%), and
   the FAQ joins the shared left rail instead of floating centered. */
#industries, #csr, #tools, #insights, #contact {
  background: var(--off, #F6F4F0) !important;
}
:root[data-theme="dark"] #industries,
:root[data-theme="dark"] #csr,
:root[data-theme="dark"] #tools,
:root[data-theme="dark"] #insights,
:root[data-theme="dark"] #contact {
  background: rgba(255,255,255,.03) !important;
}
.risks-lead, .prv-lead, .insights-lead, .faq-lead, .cases-lead {
  font-size: .97rem !important;
  line-height: 1.8 !important;
  color: rgba(17, 24, 39, 0.68) !important;
}
:root[data-theme="dark"] .risks-lead, :root[data-theme="dark"] .prv-lead,
:root[data-theme="dark"] .insights-lead, :root[data-theme="dark"] .faq-lead,
:root[data-theme="dark"] .cases-lead {
  color: rgba(237, 237, 237, 0.66) !important;
}
#faq .faq-inner {
  max-width: 1280px !important;
  margin-left: auto !important; margin-right: auto !important;
}
#faq .faq-head, #faq .faq-rule { text-align: left !important; margin-left: 0 !important; }
#faq .faq-list-hp { max-width: 920px; margin-left: 0; }

/* ================= PER-PAGE HERO DIFFERENTIATION ================= */
.ph-cat-group{ color:rgba(255,255,255,.55); font-weight:500; letter-spacing:inherit; }
.ph-chips{ display:flex; flex-wrap:wrap; gap:8px; margin:18px 0 2px; }
.ph-chip{
  display:inline-flex; align-items:center;
  padding:6px 14px; border-radius:999px;
  font-size:.74rem; font-weight:600; letter-spacing:.02em;
  color:rgba(255,255,255,.85);
  background:rgba(255,255,255,.09);
  border:1px solid rgba(255,255,255,.22);
  backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px);
  white-space:nowrap;
}
@media (max-width:560px){ .ph-chips{ gap:6px; } .ph-chip{ font-size:.68rem; padding:5px 11px; } }

/* ================= INTERACTIVE CALCULATORS ================= */
.tool-result{ animation: toolIn .32s ease; }
@keyframes toolIn{ from{ opacity:0; transform:translateY(6px);} to{ opacity:1; transform:none;} }
@media (prefers-reduced-motion: reduce){ .tool-result{ animation:none; } }
.fire-play{ margin-top:1rem; padding-top:.9rem; border-top:1px solid var(--v2-hairline, rgba(127,127,127,.22)); }
.fp-row{ display:flex; justify-content:space-between; align-items:baseline; gap:1rem; font-size:.86rem; color:var(--body,#444); }
.fp-row b{ color:var(--ink,#111); font-variant-numeric:tabular-nums; }
.fire-play input[type=range]{ width:100%; margin:.55rem 0 .6rem; accent-color:var(--red); cursor:pointer; }
.fp-bar{ height:10px; border-radius:999px; overflow:hidden;
  background:color-mix(in srgb, var(--red) 22%, transparent); }
.fp-bar i{ display:block; height:100%; border-radius:999px; background:var(--shade,#1d3557);
  transition:width .25s ease; min-width:0; }
:root[data-theme="dark"] .fp-bar i{ background:#7ea8d8; }
.fp-legend{ display:flex; justify-content:space-between; gap:1rem; font-size:.78rem; color:var(--muted,#777); margin-top:.45rem; }
.fp-legend b{ color:var(--ink,#111); font-variant-numeric:tabular-nums; }

/* Links out to the insurer datasets and the two free tools. Deliberately
   plain: these earn clicks on what they say, not on decoration, and the
   homepage was already long. */
.csr-more{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;margin:.9rem 0 0}
.csr-more a{font-size:.82rem;color:var(--muted);text-decoration:none;
  border-bottom:1px solid transparent;padding:.15rem 0}
.csr-more a:hover{color:var(--red);border-bottom-color:var(--red)}
.act-strip{padding:0 clamp(1.5rem,5vw,4rem);margin:0 auto 4.5rem;max-width:1180px}
.act-inner{display:grid;gap:1rem;grid-template-columns:1fr}
@media(min-width:760px){.act-inner{grid-template-columns:1fr 1fr;gap:1.4rem}}
@media(min-width:1040px){.act-inner{grid-template-columns:repeat(3,1fr)}}
.act{display:flex;flex-direction:column;gap:.32rem;padding:1.4rem 1.5rem;
  border:1px solid var(--v2-hairline);border-radius:12px;text-decoration:none;
  color:inherit;transition:border-color .2s var(--ease),transform .2s var(--ease)}
.act:hover{border-color:var(--red);transform:translateY(-2px)}
.act-k{font:600 .68rem/1 Inter,sans-serif;letter-spacing:.14em;text-transform:uppercase;
  color:var(--red)}
.act-h{font:600 1.18rem/1.3 Georgia,serif;margin-top:.15rem}
.act-d{font-size:.9rem;line-height:1.6;color:var(--muted)}
.act-c{font-size:.85rem;font-weight:600;color:var(--red);margin-top:.35rem}
