:root {
  --blue: #031f94;
  --blue-deep: #010823;
  --blue-hover: #021663;
  --orange: #ec6c2d;
  --orange-hover: #d75a1d;
  --violet: #aeb9f9;
  --violet-light: #eef0fe;
  --beige: #f4f0ea;
  --beige-dark: #e7dfd2;
  --ink: #17161b;
  --body: #4a4750;
  --muted: #6f6a62;
  --white: #ffffff;
  --green: #17754a;
  --line: rgba(23, 22, 27, 0.11);
  --line-blue: rgba(3, 31, 148, 0.18);
  --shadow-card: 0 28px 70px -34px rgba(3, 18, 82, 0.34), 0 16px 36px -24px rgba(23, 22, 27, 0.2);
  --shadow-button: 0 12px 28px -14px rgba(3, 31, 148, 0.6);
  --radius-large: 24px;
  --radius-card: 18px;
  --radius-control: 12px;
  --container: 1200px;
  --header-height: 78px;
}

/* Final proof-rail overrides: keep these last so legacy responsive rules cannot restore card layouts. */
@media (min-width: 901px) {
  .partner-marquee { overflow: visible; }
  .partner-marquee .partner-logos { display: grid; width: auto; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; padding: 0; }
  .partner-marquee .partner-logos > span { width: auto; min-height: 92px; padding: 10px; }
  .press-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; }
  .press-grid a { min-height: 92px; flex-direction: row; justify-content: center; padding: 12px; }
}

.partner-marquee .partner-logos > span strong,
.press-grid a span { display: none; }
.partner-marquee .partner-logo { width: 54px; height: 54px; margin: 0; filter: grayscale(1); opacity: .72; }
.press-grid img { width: 58px; height: 58px; border-radius: 0; filter: grayscale(1); opacity: .66; }

@media (max-width: 900px) {
  .partner-marquee { overflow-x: auto; }
  .partner-marquee .partner-logos { display: grid; width: max-content; grid-template-columns: repeat(6, 104px); grid-template-rows: repeat(2, 92px); grid-auto-flow: column; gap: 10px; }
  .partner-marquee .partner-logos > span { width: auto; min-height: 92px; padding: 10px; }
  .press-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .press-grid a { min-height: 82px; flex-direction: row; }
}

/* Keep review refinements last so they override legacy responsive rules. */
.hero-partner-proof span { min-width: 106px; justify-content: center; padding: 7px 14px; }
.hero-partner-proof img { display:block; width:auto; max-width:92px; height:25px; object-fit:contain; }
.legacy-stat-grid strong { display:flex; align-items:flex-end; justify-content:center; gap:12px; font-size:clamp(2.7rem,4.5vw,4.35rem); }
.metric-sparkline { width:68px; height:31px; margin-bottom:.18em; overflow:visible; }
.comparison-result { display:inline-flex; align-items:center; gap:8px; margin-top:15px; padding:9px 14px; border:1px solid rgba(236,108,45,.32); border-radius:999px; background:rgba(236,108,45,.09); color:var(--blue); font-size:12px; font-weight:800; white-space:nowrap; }
.comparison-result i { width:9px; height:9px; border-radius:50%; background:var(--orange); box-shadow:0 0 0 5px rgba(236,108,45,.12); }
.partner-marquee .partner-logos > span strong { display:block !important; position:absolute; left:50%; bottom:-28px; z-index:3; width:max-content; max-width:170px; padding:5px 8px; border-radius:7px; background:var(--ink); color:white; font-size:10px; line-height:1.1; opacity:0; pointer-events:none; transform:translate(-50%,5px); transition:opacity .18s ease,transform .18s ease; }
.partner-marquee .partner-logos > span:hover strong { opacity:1; transform:translate(-50%,0); }
.partner-marquee .partner-logos > span.is-best { z-index:2; border-color:rgba(236,108,45,.75) !important; background:white !important; box-shadow:0 16px 36px rgba(236,108,45,.2) !important; transform:scale(1.12); }
.partner-marquee .partner-logos > span.is-best .partner-logo { filter:grayscale(0); opacity:1; transform:scale(1.1); }
.press-proof { overflow:hidden; }
.press-grid a { position:relative; }
.press-grid a span { display:block !important; position:absolute; left:50%; bottom:6px; width:max-content; max-width:150px; padding:4px 7px; border-radius:6px; background:var(--ink); color:white; font-size:10px; line-height:1.1; opacity:0; pointer-events:none; transform:translate(-50%,5px); transition:opacity .18s ease,transform .18s ease; }
.press-grid a:hover span,.press-grid a:focus-visible span { opacity:1; transform:translate(-50%,0); }
.adviser-card { min-height:430px; }
.adviser-photo { position:relative; height:430px; min-height:0; overflow:hidden; }
.adviser-photo img { width:100%; height:100%; object-fit:cover; object-position:center 23%; filter:saturate(.78) contrast(1.08) brightness(1.025) sepia(.035); }
.guide-card > img { height:220px; object-fit:cover; object-position:center 22%; filter:saturate(.78) contrast(1.08) brightness(1.025) sepia(.035); }
.brand { position:relative; }
.brand:hover img { animation:brand-bounce .62s cubic-bezier(.2,.8,.2,1); filter:drop-shadow(0 5px 9px rgba(236,108,45,.28)) saturate(1.2); }
.brand:hover::after { animation:brand-sparkle .72s ease-out; }
@media (min-width:901px) {
  .partner-marquee { overflow:hidden; padding:24px 6px; }
  .partner-marquee .partner-logos { display:flex !important; width:max-content !important; grid-template:none !important; gap:14px !important; padding:0 !important; animation:partner-loop 38s linear infinite; }
  .partner-marquee .partner-logos > span { position:relative; display:flex !important; width:128px !important; flex:0 0 128px !important; min-height:86px !important; padding:12px !important; border:1px solid transparent; background:transparent; box-shadow:none; transition:transform .45s cubic-bezier(.2,.8,.2,1),border-color .3s ease,background .3s ease,box-shadow .3s ease; }
  .press-grid { display:flex !important; width:max-content !important; grid-template:none !important; gap:12px !important; animation:press-loop 30s linear infinite; }
  .press-grid > a { width:138px !important; flex:0 0 138px !important; min-height:88px; }
}
@media (max-width:900px) { .adviser-card,.adviser-photo { height:auto; min-height:0; } .adviser-photo { aspect-ratio:4/3; } .legacy-stat-grid strong { font-size:3rem; } .metric-sparkline { width:58px; } }

/* Review refinements: compact proof, resolved comparison and polished portraits. */
.hero-partner-proof span {
  min-width: 106px;
  justify-content: center;
  padding: 7px 14px;
}
.hero-partner-proof img { display: block; width: auto; max-width: 92px; height: 25px; object-fit: contain; }

.legacy-stat-grid strong {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 12px;
  font-size: clamp(2.7rem, 4.5vw, 4.35rem);
}
.metric-sparkline { width: 68px; height: 31px; margin-bottom: .18em; overflow: visible; }
.metric-sparkline .metric-area { fill: rgba(236,108,45,.10); }
.metric-sparkline .metric-line {
  fill: none;
  stroke: var(--orange);
  stroke-width: 2.6;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 100;
  animation: metric-draw 2.4s ease-in-out infinite alternate;
}
.metric-sparkline circle { fill: var(--orange); transform-origin: center; animation: metric-pulse 1.8s ease-in-out infinite; }
@keyframes metric-draw { from { stroke-dashoffset: 100; opacity: .45; } to { stroke-dashoffset: 0; opacity: 1; } }
@keyframes metric-pulse { 50% { transform: scale(1.55); opacity: .65; } }

.comparison-result {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 15px;
  padding: 9px 14px;
  border: 1px solid rgba(236,108,45,.32);
  border-radius: 999px;
  background: rgba(236,108,45,.09);
  color: var(--blue);
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}
.comparison-result i { width: 9px; height: 9px; border-radius: 50%; background: var(--orange); box-shadow: 0 0 0 5px rgba(236,108,45,.12); }

@media (min-width: 901px) {
  .partner-marquee { overflow: hidden; padding: 24px 6px; }
  .partner-marquee .partner-logos {
    display: flex !important;
    width: max-content !important;
    grid-template: none !important;
    gap: 14px !important;
    padding: 0 !important;
    animation: partner-loop 38s linear infinite;
  }
  .partner-marquee .partner-logos > span {
    position: relative;
    display: flex !important;
    width: 128px !important;
    flex: 0 0 128px !important;
    min-height: 86px !important;
    padding: 12px !important;
    border: 1px solid transparent;
    background: transparent;
    box-shadow: none;
    transition: transform .45s cubic-bezier(.2,.8,.2,1), border-color .3s ease, background .3s ease, box-shadow .3s ease;
  }
}
.partner-marquee .partner-logos > span strong {
  display: block !important;
  position: absolute;
  left: 50%;
  bottom: -28px;
  z-index: 3;
  width: max-content;
  max-width: 170px;
  padding: 5px 8px;
  border-radius: 7px;
  background: var(--ink);
  color: white;
  font-size: 10px;
  line-height: 1.1;
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, 5px);
  transition: opacity .18s ease, transform .18s ease;
}
.partner-marquee .partner-logos > span:hover strong { opacity: 1; transform: translate(-50%, 0); }
.partner-marquee .partner-logos > span.is-best {
  z-index: 2;
  border-color: rgba(236,108,45,.75) !important;
  background: white !important;
  box-shadow: 0 16px 36px rgba(236,108,45,.2) !important;
  transform: scale(1.12);
}
.partner-marquee .partner-logos > span.is-best .partner-logo { filter: grayscale(0); opacity: 1; transform: scale(1.1); }

.press-proof { overflow: hidden; }
.press-grid a { position: relative; }
.press-grid a span {
  display: block !important;
  position: absolute;
  left: 50%;
  bottom: 6px;
  width: max-content;
  max-width: 150px;
  padding: 4px 7px;
  border-radius: 6px;
  background: var(--ink);
  color: white;
  font-size: 10px;
  line-height: 1.1;
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, 5px);
  transition: opacity .18s ease, transform .18s ease;
}
.press-grid a:hover span, .press-grid a:focus-visible span { opacity: 1; transform: translate(-50%, 0); }
@media (min-width: 901px) {
  .press-grid { display: flex !important; width: max-content !important; grid-template: none !important; gap: 12px !important; animation: press-loop 30s linear infinite; }
  .press-grid > a { width: 138px !important; flex: 0 0 138px !important; min-height: 88px; }
}

.adviser-card { min-height: 430px; }
.adviser-photo { position: relative; height: 430px; min-height: 0; overflow: hidden; }
.adviser-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(145deg, rgba(3,31,148,.08), transparent 44%, rgba(236,108,45,.08));
  mix-blend-mode: soft-light;
}
.adviser-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 23%;
  filter: saturate(.78) contrast(1.08) brightness(1.025) sepia(.035);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.32);
}
.guide-card > img {
  height: 220px;
  object-fit: cover;
  object-position: center 22%;
  filter: saturate(.78) contrast(1.08) brightness(1.025) sepia(.035);
}

.brand { position: relative; }
.brand:hover img { animation: brand-bounce .62s cubic-bezier(.2,.8,.2,1); filter: drop-shadow(0 5px 9px rgba(236,108,45,.28)) saturate(1.2); }
.brand::after {
  content: "";
  position: absolute;
  top: -3px;
  right: -8px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--orange);
  box-shadow: -9px 8px 0 -1px #ffb18d, 5px 12px 0 -2px var(--orange);
  opacity: 0;
  pointer-events: none;
}
/* Replaced by the calmer lift + halo at the end of this stylesheet. */
@keyframes brand-bounce { 0%,100% { transform: translateY(0) scale(1); } 38% { transform: translateY(-6px) scale(1.05); } 66% { transform: translateY(2px) scale(.99); } }
@keyframes brand-sparkle { 0% { opacity: 0; transform: scale(.3) rotate(0); } 35% { opacity: 1; } 100% { opacity: 0; transform: scale(1.5) rotate(28deg); } }

@media (max-width: 900px) {
  .adviser-card, .adviser-photo { height: auto; min-height: 0; }
  .adviser-photo { aspect-ratio: 4 / 3; }
  .legacy-stat-grid strong { font-size: 3rem; }
  .metric-sparkline { width: 58px; }
}
@media (prefers-reduced-motion: reduce) {
  .metric-sparkline *, .brand:hover img, .brand:hover::after { animation: none !important; }
}

/* Current feedback: continuous comparison and press rails override legacy proof grids. */
.partner-marquee { overflow: hidden !important; }
.partner-marquee .partner-logos { display: flex !important; width: max-content !important; grid-template: none !important; gap: 12px !important; animation: partner-loop 34s linear infinite; }
.partner-marquee .partner-logos > span { display: flex !important; width: 150px !important; flex: 0 0 150px !important; min-height: 104px !important; }
.partner-marquee .partner-logos > span strong, .press-grid a span { display: block !important; }
.press-grid { display: flex !important; width: max-content !important; grid-template-columns: none !important; gap: 12px !important; animation: press-loop 28s linear infinite; }
.press-grid > a { width: 170px !important; flex: 0 0 170px !important; }
@media (prefers-reduced-motion: reduce) { .partner-marquee .partner-logos, .press-grid { animation: none !important; } }

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--header-height) + 24px);
}

body {
  margin: 0;
  background: var(--beige);
  color: var(--ink);
  font-family: "Poppins", system-ui, sans-serif;
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

body.menu-open {
  overflow: hidden;
}

button,
input,
select {
  font: inherit;
}

button,
a {
  -webkit-tap-highlight-color: transparent;
}

button {
  border: 0;
}

a {
  color: var(--blue);
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}

img {
  display: block;
  max-width: 100%;
}

svg {
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.9;
}

[hidden] {
  display: none !important;
}

:focus-visible {
  outline: 3px solid var(--orange);
  outline-offset: 3px;
}

.skip-link {
  position: fixed;
  left: 16px;
  top: 10px;
  z-index: 1000;
  transform: translateY(-150%);
  border-radius: 8px;
  background: var(--white);
  color: var(--blue);
  padding: 10px 14px;
  font-weight: 700;
}

.skip-link:focus {
  transform: translateY(0);
}

.container {
  width: min(calc(100% - 48px), var(--container));
  margin-inline: auto;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  height: var(--header-height);
  border-bottom: 1px solid rgba(3, 31, 148, 0.09);
  background: rgba(250, 248, 244, 0.96);
  backdrop-filter: blur(16px);
  transition: box-shadow 180ms ease, background 180ms ease;
}

.site-header.is-scrolled {
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 12px 34px -28px rgba(3, 18, 82, 0.55);
}

.nav-shell {
  display: flex;
  align-items: center;
  gap: 32px;
  height: 100%;
}

.brand {
  display: inline-flex;
  flex: none;
  align-items: center;
}

.brand img {
  width: auto;
  height: 32px;
}

.main-nav {
  display: flex;
  align-items: center;
  gap: 2px;
  position: relative;
}

.main-nav > a,
.nav-mega-trigger > a {
  border-radius: 9px;
  color: var(--ink);
  padding: 9px 11px;
  font-family: "League Spartan", sans-serif;
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  transition: color 160ms ease, background 160ms ease;
}

.main-nav > a:hover,
.nav-mega-trigger > a:hover {
  background: var(--violet-light);
  color: var(--blue);
}

.nav-mega,
.nav-mega-trigger {
  display: flex;
  align-items: center;
}

.nav-mega {
  position: relative;
}

.nav-mega-toggle {
  display: inline-grid;
  width: 27px;
  height: 34px;
  place-items: center;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--blue);
  cursor: pointer;
}

.nav-mega-toggle:hover,
.nav-mega-toggle:focus-visible {
  background: var(--violet-light);
}

.nav-mega-toggle svg {
  width: 15px;
  height: 15px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2;
  transition: transform 180ms ease;
}

.nav-mega-panel {
  position: fixed;
  top: var(--header-height);
  left: 50%;
  z-index: 130;
  display: grid;
  width: min(1180px, calc(100vw - 32px));
  grid-template-columns: minmax(235px, .78fr) minmax(420px, 1.52fr) minmax(190px, .7fr);
  gap: 26px;
  border: 1px solid rgba(3, 31, 148, .12);
  border-top: 0;
  border-radius: 0 0 30px 30px;
  background: var(--white);
  padding: 28px 32px 30px;
  box-shadow: 0 34px 80px -30px rgba(3, 18, 82, .32), 0 18px 32px -24px rgba(23, 22, 27, .18);
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, -5px);
  visibility: hidden;
  transition: opacity 180ms ease, transform 180ms ease, visibility 180ms ease;
}

.nav-mega-overview {
  display: flex;
  min-height: 224px;
  flex-direction: column;
  border-radius: 14px;
  background: var(--beige);
  padding: 23px;
  color: var(--ink);
}

.nav-mega-overview > span {
  display: block;
  margin-bottom: 13px;
  color: var(--muted);
  font-family: "League Spartan", sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.nav-mega-overview > strong {
  display: block;
  color: var(--ink);
  font-family: "League Spartan", sans-serif;
  font-size: 23px;
  line-height: 1.08;
}

.nav-mega-overview p {
  margin: 11px 0 18px;
  color: var(--body);
  font-size: 12px;
  line-height: 1.55;
}

.nav-mega-overview a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: auto;
  color: var(--ink);
  font-family: "League Spartan", sans-serif;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
}

.nav-mega-overview a svg,
.nav-mega-link-grid a > svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.nav-mega-link-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 14px;
  align-content: center;
}

.nav-mega-link-grid a {
  position: relative;
  display: grid;
  min-height: 82px;
  grid-template-columns: 32px minmax(0, 1fr) 18px;
  gap: 12px;
  align-items: center;
  border: 0;
  border-radius: 12px;
  background: transparent;
  padding: 13px 12px;
  color: var(--ink);
  text-decoration: none;
  transition: border-color 180ms ease, background 180ms ease, transform 180ms ease;
}

.nav-mega-link-grid a:hover,
.nav-mega-link-grid a:focus-visible {
  background: rgba(238, 240, 254, .72);
  transform: translateX(2px);
}

.nav-mega-link-grid strong {
  display: block;
  color: var(--ink);
  font-family: "League Spartan", sans-serif;
  font-size: 16px;
  line-height: 1.15;
}

.nav-mega-link-grid small {
  display: block;
  margin-top: 5px;
  color: var(--body);
  font-size: 10px;
  line-height: 1.42;
}

.nav-mega-link-grid .nav-link-icon {
  width: 26px;
  height: 26px;
  border-radius: 8px;
  background: rgba(3, 31, 148, .06);
  color: var(--blue);
  padding: 5px;
}

.nav-mega-link-grid a > svg:not(.nav-link-icon) {
  width: 17px;
  height: 17px;
  color: var(--ink);
}

.nav-mega-spotlight {
  position: relative;
  display: flex;
  min-height: 224px;
  overflow: hidden;
  flex-direction: column;
  border-radius: 14px;
  background: #eaf0fb;
  color: var(--ink);
  padding: 22px;
  text-decoration: none;
}

.nav-mega-spotlight span {
  position: relative;
  z-index: 2;
  color: var(--muted);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.nav-mega-spotlight strong {
  position: relative;
  z-index: 2;
  margin-top: 5px;
  font-family: "League Spartan", sans-serif;
  font-size: 22px;
}

.nav-mega-spotlight img {
  position: absolute;
  right: -18px;
  bottom: -30px;
  width: 168px;
  height: 168px;
  object-fit: contain;
  transition: transform 220ms ease;
}

.nav-mega-spotlight > svg {
  position: absolute;
  z-index: 2;
  bottom: 20px;
  left: 21px;
  width: 18px;
  height: 18px;
}

.nav-mega-spotlight:hover img,
.nav-mega-spotlight:focus-visible img {
  transform: translate(-4px, -3px) rotate(-2deg) scale(1.04);
}

@media (min-width: 921px) {
  .nav-mega:hover .nav-mega-panel,
  .nav-mega:focus-within .nav-mega-panel,
  .nav-mega.is-hovering .nav-mega-panel,
  .nav-mega.is-open .nav-mega-panel {
    opacity: 1;
    pointer-events: auto;
    transform: translate(-50%, 0);
    visibility: visible;
  }

  .nav-mega:hover .nav-mega-toggle svg,
  .nav-mega:focus-within .nav-mega-toggle svg,
  .nav-mega.is-hovering .nav-mega-toggle svg,
  .nav-mega.is-open .nav-mega-toggle svg {
    transform: rotate(180deg);
  }
}

@media (min-width: 921px) and (max-width: 1100px) {
  .nav-mega-panel {
    grid-template-columns: minmax(220px, .72fr) minmax(0, 1.4fr);
  }

  .nav-mega-spotlight {
    display: none;
  }
}

.nav-actions {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-left: auto;
}

.phone-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--blue);
  font-family: "League Spartan", sans-serif;
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
}

.phone-link svg {
  width: 17px;
  height: 17px;
}

.menu-toggle {
  display: none;
  width: 44px;
  height: 44px;
  border-radius: 10px;
  background: transparent;
  cursor: pointer;
}

.menu-toggle span {
  display: block;
  width: 22px;
  height: 2px;
  margin: 4px auto;
  border-radius: 99px;
  background: var(--blue);
  transition: transform 180ms ease, opacity 180ms ease;
}

.menu-toggle[aria-expanded="true"] span:first-child {
  transform: translateY(6px) rotate(45deg);
}

.menu-toggle[aria-expanded="true"] span:nth-child(2) {
  opacity: 0;
}

.menu-toggle[aria-expanded="true"] span:last-child {
  transform: translateY(-6px) rotate(-45deg);
}

.button {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-control);
  padding: 13px 21px;
  font-family: "League Spartan", sans-serif;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.15;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: transform 160ms ease, background 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.button:hover {
  transform: translateY(-1px);
}

.button:active {
  transform: scale(0.985);
}

.button-primary {
  background: var(--blue);
  color: var(--white);
  box-shadow: var(--shadow-button);
}

.button-primary:hover {
  background: var(--blue-hover);
}

.button-accent {
  background: var(--orange);
  color: #111017;
  box-shadow: 0 12px 28px -15px rgba(236, 108, 45, 0.75);
}

.button-accent:hover {
  background: var(--orange-hover);
}

.button-small {
  min-height: 42px;
  padding: 11px 17px;
  font-size: 15px;
}

.button-block {
  width: 100%;
}

.simulator-launcher { padding: 22px; background: #fbfaf7; }
.launcher-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.launcher-card { display: grid; gap: 10px; min-height: 190px; place-items: center; border: 1px solid var(--line-blue); border-radius: 18px; background: var(--white); padding: 16px 12px; color: var(--blue); cursor: pointer; transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease; }
.launcher-card:hover, .launcher-card:focus-visible { border-color: var(--blue); box-shadow: var(--shadow-card); transform: translateY(-3px); }
.simulator-launcher.is-refining .launcher-card { opacity: .38; filter: grayscale(.45); transform: none; box-shadow: none; }
.simulator-launcher.is-refining .launcher-card[data-launch-category="retirement"] { opacity: .58; border-color: rgba(3, 31, 148, .28); }
.simulator-launcher.is-refining .launcher-subchoices { position: relative; z-index: 1; }
.launcher-card img { width: 92px; height: 92px; border-radius: 18px; object-fit: cover; }
.launcher-card span { display: grid; gap: 2px; }
.launcher-card strong { font-family: "League Spartan", sans-serif; font-size: 20px; }
.launcher-card small { color: var(--muted); font-size: 11px; }
.launcher-subchoices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 12px; }
.launcher-subchoices button { display: grid; grid-template-columns: 68px minmax(0, 1fr); align-items: center; gap: 10px; border: 1px solid var(--line-blue); border-radius: 14px; background: var(--violet-light); padding: 10px 12px; color: var(--blue); cursor: pointer; text-align: left; }
.launcher-subchoices button > img { width: 68px; height: 68px; object-fit: contain; }
.launcher-subchoices .subchoice-copy { display: grid; gap: 3px; }
.launcher-subchoices small { color: var(--body); font-size: 12px; }
.simulator-back { display: inline-flex; align-items: center; margin: 20px 26px 16px; border: 1px solid var(--line-blue); border-radius: 999px; background: var(--white); color: var(--blue); cursor: pointer; padding: 7px 12px; font-family: "League Spartan", sans-serif; font-size: 13px; font-weight: 700; }
.simulator-back:hover { border-color: var(--blue); background: var(--violet-light); }

@media (max-width: 620px) {
  .launcher-grid { grid-template-columns: 1fr; }
  .launcher-card { min-height: 112px; grid-template-columns: 82px 1fr; justify-items: start; text-align: left; }
  .launcher-card img { width: 76px; height: 76px; }
  .launcher-subchoices { grid-template-columns: 1fr; }
  .simulator-back { margin: 16px 18px 12px; }
}

.solution-grid-four {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.partner-strip {
  padding: 10px 0 72px;
}

.partner-strip-grid {
  display: grid;
  grid-template-columns: minmax(240px, 0.7fr) minmax(0, 1.3fr);
  gap: 40px;
  align-items: center;
  border: 1px solid var(--line-blue);
  border-radius: var(--radius-large);
  background: rgba(255, 255, 255, 0.72);
  padding: clamp(28px, 4vw, 44px);
}

.partner-strip h2,
.reviews-heading h2,
.press-proof h2 {
  margin: 0;
  color: var(--blue-deep);
  font-family: "League Spartan", sans-serif;
  font-size: clamp(28px, 3vw, 42px);
  line-height: 1.05;
}

.partner-logos {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.partner-logos > a,
.partner-logos > span {
  display: flex;
  min-height: 88px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-radius: 14px;
  background: var(--white);
  color: var(--blue);
  font-family: "League Spartan", sans-serif;
  font-size: 20px;
  font-weight: 800;
  text-align: center;
  text-decoration: none;
}

.partner-logo {
  width: 38px;
  height: 38px;
  margin-bottom: 8px;
  border-radius: 9px;
  background: var(--white);
  object-fit: contain;
}

.partner-logos > a > span,
.partner-logos > span > span {
  display: grid;
  gap: 1px;
}

.partner-logos small {
  margin-top: 3px;
  color: var(--muted);
  font-family: "Poppins", sans-serif;
  font-size: 10px;
  font-weight: 500;
}

.partner-marquee { min-width: 0; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: thin; scroll-snap-type: x proximity; }
.partner-marquee .partner-logos { display: flex; width: max-content; gap: 12px; padding: 4px 2px 12px; }
.partner-marquee .partner-logos > span { width: 180px; min-height: 112px; flex: 0 0 180px; justify-content: center; scroll-snap-align: start; padding: 12px; }
.partner-marquee .partner-logos > span strong { max-width: 146px; font-size: 13px; line-height: 1.25; }
.value-strip .fee-card { align-items: start; }
.value-strip .fee-card h2 { margin: 0; color: var(--blue-deep); font-family: "League Spartan", sans-serif; font-size: clamp(30px, 3.4vw, 44px); line-height: 1.05; }

/* Compact monochrome proof rails from client review. */
.partner-marquee { overflow: visible; }
.partner-marquee .partner-logos { display: grid; width: auto; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; padding: 0; }
.partner-marquee .partner-logos > span { width: auto; min-height: 92px; padding: 10px; }
.partner-marquee .partner-logos > span strong { display: none; }
.partner-marquee .partner-logo { width: 54px; height: 54px; margin: 0; filter: grayscale(1); opacity: .72; transition: filter 180ms ease, opacity 180ms ease, transform 180ms ease; }
.partner-marquee .partner-logos > span:hover .partner-logo { filter: grayscale(0); opacity: 1; transform: scale(1.05); }

.press-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; }
.press-grid a { min-height: 92px; justify-content: center; border-color: var(--line-blue); padding: 12px; }
.press-grid a span { display: none; }
.press-grid img { width: 58px; height: 58px; border-radius: 0; filter: grayscale(1); opacity: .66; transition: filter 180ms ease, opacity 180ms ease, transform 180ms ease; }
.press-grid a:hover img, .press-grid a:focus-visible img { filter: grayscale(0); opacity: 1; transform: scale(1.06); }

@media (max-width: 900px) {
  .partner-marquee { overflow-x: auto; }
  .partner-marquee .partner-logos { width: max-content; grid-template-columns: repeat(6, 104px); grid-template-rows: repeat(2, 92px); grid-auto-flow: column; }
  .press-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 520px) {
  .press-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .press-grid a { min-height: 76px; }
  .press-grid img { width: 46px; height: 46px; }
}

.proof-stack {
  display: grid;
  gap: 40px;
}

.reviews-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
}

.google-review-link {
  display: flex;
  flex: none;
  align-items: center;
  gap: 12px;
  border: 1px solid var(--line-blue);
  border-radius: 14px;
  background: var(--white);
  padding: 12px 16px;
  text-decoration: none;
}

.google-review-link > img { width: 34px; height: 34px; object-fit: contain; }
.google-review-link > span { color: var(--ink); font-family: "League Spartan", sans-serif; font-size: 14px; font-weight: 700; line-height: 1.1; }
.google-review-link strong { color: #4285f4; font-size: 18px; line-height: 1; }
.google-review-link small { color: var(--ink); font-size: 12px; font-weight: 600; }
.google-review-link > img:only-child { width: 44px; height: 44px; }
.adviser-call-line { display: flex; align-items: center; gap: 10px; }
.adviser-call-line svg { width: 22px; height: 22px; flex: none; color: var(--orange); }
.faq-item:not(.is-open) .faq-answer { display: none; }

.review-track { min-height: 255px; }
.review-track .testimonial-card { display: none; max-width: none; }
.review-track .testimonial-card.is-active { display: block; animation: review-in 320ms ease both; }
.testimonial-card footer small { display: block; margin-top: 4px; color: rgba(255,255,255,.66); font-weight: 400; }
.testimonial-card footer .review-source { display: flex; align-items: center; gap: 7px; }
.review-source img { width: auto; max-width: 38px; height: 18px; border-radius: 4px; object-fit: contain; }
.review-controls { display: flex; align-items: center; justify-content: center; gap: 18px; margin-top: 18px; }
.review-controls > button { background: transparent; color: var(--blue); font-weight: 700; cursor: pointer; }
.review-controls div { display: flex; gap: 8px; }
.review-controls div button { width: 9px; height: 9px; border-radius: 99px; background: rgba(3,31,148,.2); padding: 0; cursor: pointer; }
.review-controls div button[aria-current="true"] { width: 26px; background: var(--orange); }
.press-proof { border-top: 1px solid var(--line); padding-top: 36px; }

@keyframes review-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }

.data-story {
  background: #fbfaf7;
  color: var(--ink);
  padding: clamp(82px, 9vw, 124px) 0;
  transition: background-color 620ms cubic-bezier(.22, .61, .36, 1);
}

.data-story[data-phone-state="0"] { background-color: #fbfaf7; }
.data-story[data-phone-state="1"] { background-color: #f2f4fc; }
.data-story[data-phone-state="2"] { background-color: #f7f0e9; }

.data-story-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 18px;
  align-items: start;
}

.data-story-intro { margin-bottom: 50px; text-align: center; }
.data-story-intro .eyebrow { justify-content: center; }
.data-story-intro .eyebrow::before { display: none; }
.data-story-intro h2 { margin: 0 0 16px; color: var(--blue-deep); font-family: "League Spartan", sans-serif; font-size: clamp(42px, 5.2vw, 72px); line-height: .98; letter-spacing: -.04em; }
.data-story-intro > p:last-child { margin: 0; color: var(--body); font-size: 18px; }
.data-story-copy { display: grid; gap: 16px; padding-bottom: clamp(150px, 25vh, 270px); }
.data-step { display: flex; min-height: min(54vh, 500px); flex-direction: column; justify-content: center; border: 1px solid var(--line-blue); border-radius: 24px; background: #f2f2f8; padding: clamp(32px, 4vw, 54px); opacity: .5; transform: scale(.985); transition: opacity 260ms ease, background 260ms ease, transform 260ms ease; }
.data-step.is-active { background: #eef0fe; opacity: 1; transform: scale(1); }
.data-step > span { align-self: flex-start; border-radius: 999px; background: #c7a14a; color: #fff; padding: 7px 14px; font-size: 13px; font-weight: 600; }
.data-step h3 { max-width: 500px; margin: 24px 0 16px; color: var(--blue-deep); font-family: "League Spartan", sans-serif; font-size: clamp(32px, 3.6vw, 48px); line-height: 1.02; }
.data-step p { max-width: 500px; margin: 0; color: var(--body); font-size: 17px; }
.data-step > small { max-width: 500px; margin-top: 12px; color: var(--muted); font-size: 11px; line-height: 1.5; }
.phone-stage { position: sticky; top: calc(var(--header-height) + 32px); height: calc(100vh - var(--header-height) - 64px); min-height: 560px; }
.phone-visual-panel { position: relative; display: grid; height: 100%; overflow: hidden; place-items: start center; border: 1px solid rgba(3,31,148,.1); border-radius: 24px; background: radial-gradient(circle at 22% 12%,rgba(255,255,255,.9),transparent 26%),linear-gradient(145deg,#e7d5c9 0%,#eadfd5 46%,#cdd4f2 100%); padding-top: 28px; transition: background 620ms cubic-bezier(.22,.61,.36,1), border-color 620ms ease; }
.data-story[data-phone-state="1"] .phone-visual-panel { border-color: rgba(3,31,148,.14); background: radial-gradient(circle at 78% 16%,rgba(255,255,255,.92),transparent 27%),linear-gradient(145deg,#e2e7fb 0%,#d9e0f8 48%,#c9d2f3 100%); }
.data-story[data-phone-state="2"] .phone-visual-panel { border-color: rgba(236,108,45,.12); background: radial-gradient(circle at 28% 16%,rgba(255,255,255,.9),transparent 27%),linear-gradient(145deg,#efe0d4 0%,#ead8ce 48%,#d9d9f2 100%); }
.phone-visual-panel::before,
.phone-visual-panel::after { position: absolute; border: 1px solid rgba(3,31,148,.12); border-radius: 50%; content: ""; pointer-events: none; }
.phone-visual-panel::before { top: 9%; right: -18%; width: 54%; aspect-ratio: 1; }
.phone-visual-panel::after { bottom: -12%; left: -14%; width: 46%; aspect-ratio: 1; }
.phone-shell { position: relative; z-index: 1; width: min(66%, 320px, calc((100vh - var(--header-height) - 110px) * .5)); aspect-ratio: 887 / 1774; filter: drop-shadow(0 34px 28px rgba(0,0,0,.3)) drop-shadow(0 0 38px rgba(3,31,148,.15)); transition: filter 380ms ease, transform 380ms ease; }
.phone-shell.is-switching { transform: translateY(-4px) scale(1.008); filter: drop-shadow(0 39px 34px rgba(0,0,0,.34)) drop-shadow(0 0 48px rgba(3,31,148,.25)); }
.phone-device-photo { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; object-fit: contain; pointer-events: none; user-select: none; }
.phone-speaker { position: absolute; z-index: 4; top: 4.4%; left: 50%; width: 80px; height: 22px; transform: translateX(-50%); border-radius: 99px; background: #050507; box-shadow: inset 0 0 0 1px rgba(255,255,255,.035); }
.phone-speaker::after { position: absolute; top: 7px; right: 10px; width: 8px; height: 8px; border-radius: 50%; background: radial-gradient(circle at 35% 35%,#4064a8,#071022 58%,#000); content: ""; }
.phone-screen { position: absolute; z-index: 1; inset: 4.7% 11.25% 4.35%; overflow: hidden; border: 1px solid rgba(255,255,255,.2); border-radius: 30px; background: linear-gradient(160deg,#fff 0%,#f2f3ff 100%); box-shadow: inset 0 0 0 1px rgba(3,18,82,.035), inset 0 -22px 42px rgba(39,54,136,.035); color: var(--ink); padding: 48px 18px 24px; }
.phone-top { display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(3,31,148,.1); padding-bottom: 16px; }
.phone-top img { width: 76px; height: auto; }
.phone-top span { border-radius: 99px; background: var(--violet-light); color: var(--blue); padding: 5px 9px; font-size: 10px; font-weight: 700; }
.phone-flow { position: absolute; inset: 108px 18px 24px; }
.phone-view { position: absolute; inset: 0; display: flex; flex-direction: column; visibility: hidden; opacity: 0; }
.phone-view.is-active { z-index: 1; visibility: visible; opacity: 1; animation: phone-screen-in 440ms cubic-bezier(.2,.8,.2,1) both; }
.phone-view > p { margin: 0 0 7px; color: var(--muted); font-size: 12px; font-weight: 600; }
.phone-view > strong { color: var(--blue-deep); font-family: "League Spartan", sans-serif; font-size: 27px; line-height: 1.05; }
.phone-view > small { color: var(--muted); font-size: 10px; line-height: 1.5; }
.phone-live-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.phone-live-row p { margin: 0; color: var(--muted); font-size: 11px; font-weight: 600; }
.phone-live-row > span { display: inline-flex; align-items: center; gap: 5px; border-radius: 99px; background: rgba(23,117,74,.09); color: var(--green); padding: 4px 7px; font-size: 8px; font-weight: 700; }
.phone-live-row i { width: 6px; height: 6px; border-radius: 50%; background: #28a36a; box-shadow: 0 0 0 0 rgba(40,163,106,.38); animation: phone-status-pulse 2s infinite; }
.phone-account-total { margin-top: 6px; color: var(--blue-deep); font-family: "League Spartan", sans-serif; font-size: 29px !important; letter-spacing: -.02em; }
.phone-account-change { margin-top: 1px; color: var(--green); font-size: 10px; font-weight: 700; }
.phone-account-change small { color: var(--muted); font-size: 8px; font-weight: 500; }
.phone-allocation-card { display: grid; grid-template-columns: minmax(0,1fr) 61px; gap: 8px; align-items: center; margin-top: 13px; border: 1px solid rgba(255,255,255,.16); border-radius: 15px; background: linear-gradient(135deg,#031f94 0%,#243cb7 58%,#6676dc 100%); padding: 12px; color: #fff; box-shadow: 0 18px 30px -22px rgba(3,31,148,.7); }
.phone-allocation-card > div:first-child { display: grid; gap: 3px; }
.phone-allocation-card small { color: #cfd6ff; font-size: 8px; }
.phone-allocation-card b { font-family: "League Spartan", sans-serif; font-size: 12px; line-height: 1.05; }
.phone-allocation-card span { color: #e9ecff; font-size: 8px; }
.phone-donut { position: relative; display: grid; width: 58px; aspect-ratio: 1; place-items: center; border-radius: 50%; background: conic-gradient(var(--orange) 0 68%,var(--violet) 68% 88%,rgba(255,255,255,.2) 88%); transform: rotate(-18deg); }
.phone-donut::before { position: absolute; inset: 7px; border-radius: inherit; background: #1732a6; content: ""; }
.phone-donut > span { position: relative; z-index: 1; color: #fff; font-family: "League Spartan", sans-serif; font-size: 14px; font-weight: 800; transform: rotate(18deg); }
.phone-donut > span small { color: #fff; font-size: 7px; }
.phone-contracts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; margin-top: 8px; }
.phone-contracts > span { position: relative; display: grid; min-width: 0; gap: 2px; overflow: hidden; border: 1px solid rgba(3,31,148,.09); border-radius: 11px; background: rgba(255,255,255,.84); padding: 9px; box-shadow: 0 12px 24px -22px rgba(3,18,82,.55); }
.phone-contracts > span::after { position: absolute; right: -12px; bottom: -13px; width: 36px; aspect-ratio: 1; border: 6px solid rgba(236,108,45,.12); border-radius: 50%; content: ""; }
.phone-contracts small { overflow: hidden; color: var(--muted); font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.phone-contracts b { color: var(--blue-deep); font-family: "League Spartan", sans-serif; font-size: 11px; }
.phone-contracts em { color: var(--green); font-size: 8px; font-style: normal; font-weight: 700; }
.phone-periods { display: grid; grid-template-columns: repeat(4,1fr); gap: 3px; margin-top: 10px; border-radius: 9px; background: rgba(3,31,148,.055); padding: 3px; color: var(--muted); font-size: 7px; font-weight: 700; text-align: center; }
.phone-periods span { border-radius: 6px; padding: 4px 1px; }
.phone-periods span.is-active { background: #fff; color: var(--blue); box-shadow: 0 4px 10px -7px rgba(3,18,82,.7); }
.phone-periods + .phone-chart-card { margin-top: 9px; }
.phone-goal-progress { display: grid; gap: 6px; margin-top: 12px; }
.phone-goal-progress > span { display: flex; justify-content: space-between; color: var(--muted); font-size: 8px; }
.phone-goal-progress > span b { color: var(--blue); }
.phone-goal-progress > i { height: 5px; overflow: hidden; border-radius: 99px; background: rgba(3,31,148,.09); }
.phone-goal-progress > i b { display: block; width: 82%; height: 100%; border-radius: inherit; background: linear-gradient(90deg,var(--violet),var(--orange)); transform-origin: left; }
.phone-goal-progress + .phone-chart-card { margin-top: 12px; }
.phone-kpi-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin-top: 34px; }
.phone-kpi-grid > span { display: grid; gap: 5px; border: 1px solid rgba(3,31,148,.1); border-radius: 13px; background: rgba(255,255,255,.8); padding: 13px 11px; box-shadow: 0 12px 24px -22px rgba(3,18,82,.5); }
.phone-kpi-grid small { color: var(--muted); font-size: 9px; }
.phone-kpi-grid b { color: var(--blue-deep); font-size: 11px; }
.phone-status { display: flex; align-items: center; gap: 8px; margin-top: 18px; border-radius: 10px; background: rgba(23,117,74,.09); color: var(--green); padding: 10px 12px; font-size: 10px; font-weight: 700; }
.phone-status i { width: 7px; height: 7px; border-radius: 50%; background: #28a36a; box-shadow: 0 0 0 0 rgba(40,163,106,.4); animation: phone-status-pulse 2s infinite; }
.phone-performance { display: flex; align-items: end; gap: 8px; color: var(--orange) !important; font-size: 42px !important; }
.phone-performance small { margin-bottom: 4px; color: var(--muted); font-family: "Poppins", sans-serif; font-size: 10px; font-weight: 600; }
.phone-chart-card { position: relative; margin: 18px 0 12px; border: 1px solid rgba(3,31,148,.1); border-radius: 16px; background: rgba(255,255,255,.82); padding: 12px; box-shadow: 0 20px 34px -28px rgba(3,18,82,.55); }
.phone-chart-card-projection { margin-top: 26px; }
.phone-chart-head { display: flex; justify-content: space-between; color: var(--muted); font-size: 9px; }
.phone-chart-head b { color: var(--orange); font-size: 10px; }
.phone-chart-tooltip { position: absolute; z-index: 2; top: 50px; right: 7px; border-radius: 7px; background: var(--blue-deep); color: #fff; padding: 4px 6px; font-size: 7px; font-weight: 700; box-shadow: 0 8px 18px -10px rgba(3,18,82,.8); }
.phone-chart-tooltip::after { position: absolute; right: 11px; bottom: -3px; width: 6px; height: 6px; background: inherit; content: ""; transform: rotate(45deg); }
.phone-line-chart { display: block; width: 100%; height: auto; margin-top: 3px; overflow: visible; }
.phone-chart-grid { color: rgba(3,31,148,.09); }
.phone-chart-area { fill: url(#phone-performance-fill); stroke: none; }
.phone-chart-line,
.phone-projection-total { fill: none; stroke: var(--orange); stroke-width: 3; stroke-dasharray: 390; stroke-dashoffset: 390; }
.phone-projection-invested { fill: none; stroke: var(--violet); stroke-width: 2; stroke-dasharray: 5 6; }
.phone-chart-dot { fill: var(--orange); stroke: white; stroke-width: 3; opacity: 0; transform-origin: center; }
.phone-view.is-active .phone-chart-line,
.phone-view.is-active .phone-projection-total { animation: phone-draw-line 900ms 180ms ease forwards; }
.phone-view.is-active .phone-chart-dot { animation: phone-dot-in 320ms 850ms ease forwards, phone-dot-pulse 1.8s 1.2s ease-in-out infinite; }
.phone-view.is-active .phone-donut { animation: phone-donut-in 620ms 180ms cubic-bezier(.2,.8,.2,1) both; }
.phone-view.is-active .phone-goal-progress > i b { animation: phone-goal-in 760ms 260ms cubic-bezier(.2,.8,.2,1) both; }
.phone-chart-axis { display: flex; justify-content: space-between; margin-top: -5px; color: var(--muted); font-size: 8px; }
.phone-legend { display: flex; gap: 18px; margin-bottom: 10px; color: var(--muted); font-size: 9px; }
.phone-legend span::before { display: inline-block; width: 10px; height: 2px; margin-right: 5px; background: var(--violet); content: ""; vertical-align: middle; }
.phone-legend span:last-child::before { background: var(--orange); }
.phone-scroll-progress { position: absolute; z-index: 3; top: 50%; right: 20px; display: flex; flex-direction: column; gap: 9px; transform: translateY(-50%); }
.phone-scroll-progress span { display: grid; width: 31px; height: 31px; place-items: center; border: 1px solid rgba(3,31,148,.14); border-radius: 50%; background: rgba(255,255,255,.58); color: rgba(3,31,148,.45); font-family: "League Spartan", sans-serif; font-size: 10px; font-weight: 700; transition: border-color 220ms ease, background 220ms ease, color 220ms ease, transform 220ms ease; }
.phone-scroll-progress span.is-active { border-color: var(--orange); background: var(--orange); color: #17161b; transform: scale(1.12); }

@keyframes phone-draw-line { to { stroke-dashoffset: 0; } }
@keyframes phone-dot-in { to { opacity: 1; } }
@keyframes phone-dot-pulse { 50% { filter: drop-shadow(0 0 5px rgba(236,108,45,.8)); transform: scale(1.22); } }
@keyframes phone-status-pulse { 70% { box-shadow: 0 0 0 7px rgba(40,163,106,0); } 100% { box-shadow: 0 0 0 0 rgba(40,163,106,0); } }
@keyframes phone-screen-in { from { filter: blur(3px); transform: translateY(9px) scale(.985); } to { filter: blur(0); transform: translateY(0) scale(1); } }
@keyframes phone-donut-in { from { opacity: 0; transform: rotate(-58deg) scale(.72); } to { opacity: 1; transform: rotate(-18deg) scale(1); } }
@keyframes phone-goal-in { from { transform: scaleX(0); } to { transform: scaleX(1); } }

@media (max-width: 900px) {
  .data-story-grid { display: block; }
  .phone-stage { position: sticky; z-index: 1; top: calc(var(--header-height) + 10px); height: min(70svh, 630px); min-height: 570px; }
  .phone-visual-panel { padding-top: 10px; }
  .phone-shell { width: min(74vw, 280px); }
  .phone-scroll-progress { top: auto; right: 50%; bottom: 15px; flex-direction: row; transform: translateX(50%); }
  .data-story-copy { position: relative; z-index: 2; gap: 44vh; padding: 10vh 0 62vh; }
  .data-step { width: calc(100% - 10px); min-height: auto; margin-inline: auto; border-color: rgba(3,31,148,.16); background: rgba(255,255,255,.96); padding: 26px 24px; opacity: 1; box-shadow: 0 26px 60px -36px rgba(3,18,82,.56); backdrop-filter: blur(14px); }
  .data-step.is-active { background: rgba(238,240,254,.97); }
  .data-step h3 { margin: 20px 0 14px; font-size: 34px; }
  .solution-grid-four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .partner-strip-grid { grid-template-columns: 1fr; }
  .partner-logos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
  .data-story { padding: 72px 0 28px; }
  .data-story-intro { margin-bottom: 30px; }
  .data-story-intro h2 { font-size: 42px; }
  .data-story-intro > p:last-child { font-size: 16px; }
  .phone-stage { min-height: 570px; }
  .phone-screen { padding-inline: 15px; }
  .phone-flow { inset-inline: 15px; }
  .phone-view > strong { font-size: 24px; }
  .phone-performance { font-size: 36px !important; }
  .data-story-copy { gap: 38vh; padding-top: 9vh; padding-bottom: 68vh; }
  .data-step h3 { font-size: 30px; }
  .data-step p { font-size: 15px; }
  .solution-grid-four { grid-template-columns: 1fr; }
  .reviews-heading { align-items: stretch; flex-direction: column; }
  .google-review-link { justify-content: center; }
  .review-controls > button { font-size: 12px; }
}

/* Keep the expanded solution taxonomy authoritative over the legacy three-card grid. */
.solution-grid.solution-grid-four {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

@media (max-width: 1100px) {
  .solution-grid.solution-grid-four {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .regulatory-marks {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .regulatory-address {
    grid-column: 1 / -1;
  }
}

@media (max-width: 680px) {
  .solution-grid.solution-grid-four {
    grid-template-columns: 1fr;
  }

  .regulatory-marks {
    grid-template-columns: 1fr;
  }

  .regulatory-address {
    grid-column: auto;
  }
}

.button-outline-light,
.button-secondary-dark {
  border: 1px solid rgba(174, 185, 249, 0.55);
  background: rgba(255, 255, 255, 0.06);
  color: var(--white);
}

.button-outline-light:hover,
.button-secondary-dark:hover {
  border-color: rgba(255, 255, 255, 0.75);
  background: rgba(255, 255, 255, 0.12);
}

.button-outline {
  border: 1px solid rgba(3, 31, 148, 0.28);
  background: rgba(255, 255, 255, 0.72);
  color: var(--blue);
}

.button-outline:hover {
  border-color: var(--blue);
  background: var(--white);
}

.hero {
  position: relative;
  overflow: hidden;
  background: linear-gradient(180deg, #fbfaf7 0%, var(--beige) 100%);
  padding: clamp(64px, 8vw, 104px) 0 82px;
}

.hero-glow {
  position: absolute;
  border-radius: 50%;
  filter: blur(16px);
  pointer-events: none;
}

.hero-glow-one {
  top: -180px;
  right: -120px;
  width: 520px;
  height: 520px;
  background: rgba(174, 185, 249, 0.22);
}

.hero-glow-two {
  bottom: -240px;
  left: 16%;
  width: 470px;
  height: 470px;
  background: rgba(236, 108, 45, 0.08);
}

.hero-grid {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(520px, 1fr);
  gap: clamp(32px, 3.5vw, 48px);
  align-items: start;
}

.hero-copy {
  padding-top: 28px;
}

.eyebrow {
  display: flex;
  align-items: center;
  gap: 13px;
  margin: 0 0 18px;
  color: var(--blue);
  font-family: "League Spartan", sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.16em;
  line-height: 1.2;
  text-transform: uppercase;
}

.eyebrow::before {
  width: 44px;
  height: 1px;
  background: currentColor;
  content: "";
  opacity: 0.5;
}

.eyebrow-accent {
  color: var(--orange);
}

.hero h1,
.section-heading h2,
.adviser-copy h2,
.final-cta h2 {
  margin: 0;
  color: var(--blue);
  font-family: "Anton", sans-serif;
  font-weight: 400;
  letter-spacing: 0.005em;
  line-height: 1.04;
  text-transform: uppercase;
}

.hero h1 {
  max-width: 14ch;
  font-size: clamp(3.15rem, 5.2vw, 4.75rem);
  text-wrap: balance;
}

.hero h1 em {
  color: var(--orange);
  font-style: normal;
}

.hero-lede {
  max-width: 46ch;
  margin: 25px 0 29px;
  color: var(--body);
  font-size: clamp(1.05rem, 1.6vw, 1.2rem);
  line-height: 1.7;
}

.benefit-list,
.dark-benefits {
  display: grid;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.benefit-list li {
  display: flex;
  align-items: center;
  gap: 11px;
  color: var(--ink);
  font-size: 16px;
}

.hero-copy .benefit-list {
  margin-top: 34px;
}

.check-icon {
  display: inline-flex;
  width: 24px;
  height: 24px;
  flex: none;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(23, 117, 74, 0.11);
  color: var(--green);
}

.check-icon svg {
  width: 15px;
  height: 15px;
  stroke-width: 2.5;
}

.credential-row {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-top: 30px;
  border-top: 1px solid var(--line);
  padding-top: 22px;
  font-family: "League Spartan", sans-serif;
}

.credential-row span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.credential-row strong {
  color: var(--blue);
  font-size: 16px;
}

.credential-logo {
  width: 28px;
  height: 28px;
  border-radius: 7px;
  object-fit: contain;
}

.simulator {
  margin-top: 42px;
  overflow: hidden;
  border: 1px solid rgba(3, 31, 148, 0.13);
  border-radius: var(--radius-large);
  background: var(--white);
  box-shadow: var(--shadow-card);
}

.simulator-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 24px 26px 17px;
}

.simulator-kicker {
  display: block;
  margin-bottom: 5px;
  color: var(--muted);
  font-family: "League Spartan", sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.simulator-head h2 {
  margin: 0;
  color: var(--ink);
  font-family: "League Spartan", sans-serif;
  font-size: 21px;
  line-height: 1.2;
}

.privacy-chip {
  display: inline-flex;
  flex: none;
  align-items: center;
  gap: 7px;
  border-radius: 999px;
  background: rgba(23, 117, 74, 0.08);
  color: var(--green);
  padding: 7px 10px;
  font-family: "League Spartan", sans-serif;
  font-size: 12px;
  font-weight: 700;
}

.privacy-chip img {
  width: 24px;
  height: 24px;
  border-radius: 4px;
  object-fit: contain;
}

.simulator-tabs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 7px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #faf9f6;
  padding: 12px 14px;
}

.simulator-tabs button,
.choice-grid button,
.segmented button {
  min-height: 48px;
  border: 1px solid transparent;
  border-radius: 11px;
  background: transparent;
  color: var(--body);
  cursor: pointer;
  transition: background 150ms ease, color 150ms ease, border-color 150ms ease, transform 150ms ease;
}

.simulator-tabs button {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 10px 11px;
  text-align: left;
}

.simulator-tabs button strong {
  font-family: "League Spartan", sans-serif;
  font-size: 14px;
  line-height: 1.2;
}

.simulator-tabs button span {
  margin-top: 2px;
  font-size: 10px;
  line-height: 1.3;
  opacity: 0.72;
}

.simulator-tabs button[aria-selected="true"] {
  border-color: var(--blue);
  background: var(--blue);
  color: var(--white);
  box-shadow: 0 8px 22px -15px rgba(3, 31, 148, 0.9);
}

.simulator-tabs button:not([aria-selected="true"]):hover,
.choice-grid button:not(.is-active):hover,
.segmented button:not(.is-active):hover {
  border-color: var(--line-blue);
  background: var(--violet-light);
  color: var(--blue);
}

.simulator-body {
  background: linear-gradient(180deg, #fffaf6 0%, #fdf5ed 100%);
}

.simulator-screen {
  padding: 25px 26px 27px;
  animation: rise 220ms ease-out;
}

.simulator-input-layout {
  display: grid;
  gap: 24px;
}

.simulator-controls {
  min-width: 0;
}

.simulator-live-preview {
  min-width: 0;
  border: 1px solid rgba(3, 31, 148, 0.11);
  border-radius: 18px;
  background: #fff;
  padding: 22px;
  box-shadow: 0 24px 52px -38px rgba(3, 18, 82, 0.42);
}

.live-preview-head,
.live-chart-head,
.live-chart-axis,
.live-chart-legend {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.live-preview-head > span {
  color: var(--ink);
  font-family: "League Spartan", sans-serif;
  font-size: 18px;
  font-weight: 800;
}

.live-preview-head > small {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border-radius: 99px;
  background: rgba(23, 117, 74, 0.08);
  color: var(--green);
  padding: 6px 9px;
  font-size: 9px;
  font-weight: 700;
}

.live-preview-head i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #28a36a;
  box-shadow: 0 0 0 0 rgba(40, 163, 106, 0.35);
  animation: phone-status-pulse 2s infinite;
}

.live-preview-primary {
  border-bottom: 1px solid var(--line);
  padding: 24px 0 20px;
}

.live-preview-primary > small {
  display: block;
  color: var(--muted);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.live-preview-primary > strong {
  display: block;
  margin-top: 4px;
  color: var(--blue-deep);
  font-family: "League Spartan", sans-serif;
  font-size: clamp(34px, 4vw, 48px);
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

.live-preview-primary p {
  margin: 8px 0 0;
  color: var(--body);
  font-size: 11px;
  line-height: 1.45;
}

.live-preview-metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  padding: 18px 0;
}

.live-preview-metrics > span {
  display: grid;
  gap: 5px;
  border: 1px solid var(--line-blue);
  border-radius: 12px;
  background: #fbfbfe;
  padding: 11px;
}

.live-preview-metrics small {
  color: var(--muted);
  font-size: 8px;
  line-height: 1.35;
}

.live-preview-metrics b {
  color: var(--blue-deep);
  font-family: "League Spartan", sans-serif;
  font-size: 14px;
  font-variant-numeric: tabular-nums;
  line-height: 1.15;
}

.live-madelin-breakdown {
  display: grid;
  gap: 14px;
  margin: 2px 0 18px;
  border-radius: 14px;
  background: var(--violet-light);
  padding: 15px;
}

.live-madelin-breakdown > div {
  display: grid;
  gap: 8px;
}

.live-madelin-breakdown span {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
}

.live-madelin-breakdown small {
  max-width: 180px;
  color: var(--body);
  font-size: 9px;
  line-height: 1.35;
}

.live-madelin-breakdown span > b {
  color: var(--blue);
  font-family: "League Spartan", sans-serif;
  font-size: 15px;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.live-madelin-breakdown i {
  display: block;
  height: 7px;
  overflow: hidden;
  border-radius: 99px;
  background: rgba(3, 31, 148, 0.1);
}

.live-madelin-breakdown i b {
  display: block;
  min-width: 5px;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--blue), var(--orange));
  transition: width 180ms ease;
}

.live-preview-chart {
  border-top: 1px solid var(--line);
  padding-top: 17px;
}

.live-chart-head {
  color: var(--muted);
  font-size: 10px;
}

.live-chart-head strong {
  color: var(--blue);
  font-size: 10px;
}

.live-preview-chart svg {
  display: block;
  width: 100%;
  height: auto;
  margin-top: 8px;
  overflow: visible;
}

.live-chart-grid {
  color: rgba(3, 31, 148, 0.09);
}

.live-chart-grid path {
  fill: none;
  stroke: currentColor;
  stroke-width: 1;
}

.chart-bar-invested {
  fill: rgba(174, 185, 249, 0.78);
}

.chart-bar-generated {
  fill: rgba(236, 108, 45, 0.7);
}

.live-chart-total {
  fill: none;
  stroke: var(--blue-deep);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 3;
}

.live-chart-axis {
  margin-top: -2px;
  color: var(--muted);
  font-size: 8px;
}

.live-chart-legend {
  justify-content: flex-start;
  flex-wrap: wrap;
  margin-top: 10px;
  color: var(--muted);
  font-size: 8px;
}

.live-chart-legend span::before {
  display: inline-block;
  width: 8px;
  height: 8px;
  margin-right: 5px;
  border-radius: 2px;
  background: var(--violet);
  content: "";
  vertical-align: -1px;
}

.live-chart-legend span:nth-child(2)::before {
  background: var(--orange);
}

.live-chart-legend span:last-child::before {
  height: 2px;
  border-radius: 99px;
  background: var(--blue-deep);
  vertical-align: 2px;
}

.live-preview-note {
  margin: 14px 0 0;
  color: var(--muted);
  font-size: 8px;
  line-height: 1.5;
}

@media (min-width: 1180px) {
  .simulator-input-layout {
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    align-items: start;
  }
}

.mode-panel h3,
.contact-screen h3,
.confirmation-screen h3 {
  margin: 0 0 19px;
  font-family: "League Spartan", sans-serif;
  font-size: 21px;
  line-height: 1.25;
}

.field-group,
.callback-time {
  margin: 0 0 18px;
  border: 0;
  padding: 0;
}

.field-group legend,
.select-group > label,
.range-field label,
.contact-screen label,
.callback-time legend,
.counter-row > span {
  display: block;
  margin-bottom: 8px;
  color: var(--muted);
  font-family: "League Spartan", sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.13em;
  line-height: 1.3;
  text-transform: uppercase;
}

.segmented,
.choice-grid {
  display: grid;
  gap: 7px;
}

.segmented {
  grid-template-columns: repeat(2, 1fr);
  border: 1px solid rgba(236, 108, 45, 0.22);
  border-radius: 13px;
  background: rgba(255, 255, 255, 0.72);
  padding: 5px;
}

.segmented button,
.choice-grid button {
  padding: 11px 9px;
  font-family: "League Spartan", sans-serif;
  font-size: 14px;
  font-weight: 650;
}

.segmented button.is-active,
.choice-grid button.is-active {
  border-color: var(--blue);
  background: var(--blue);
  color: var(--white);
}

.choice-grid-three {
  grid-template-columns: repeat(3, 1fr);
}

.choice-grid button strong,
.choice-grid button span {
  display: block;
}

.choice-grid button span {
  margin-top: 1px;
  font-family: "Poppins", sans-serif;
  font-size: 11px;
  font-weight: 400;
  opacity: 0.75;
}

.range-field {
  margin-bottom: 20px;
}

.compact-range {
  margin-bottom: 17px;
}

.tns-options {
  margin: -3px 0 20px;
  border: 1px solid var(--line-blue);
  border-radius: 13px;
  background: rgba(255, 255, 255, 0.68);
  padding: 0 14px;
}

.tns-options summary {
  padding: 13px 0;
  color: var(--blue);
  cursor: pointer;
  font-family: "League Spartan", sans-serif;
  font-size: 13px;
  font-weight: 700;
}

.tns-options[open] summary {
  border-bottom: 1px solid var(--line);
}

.tns-ceiling {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 13px 0 8px;
}

.tns-ceiling span {
  color: var(--body);
  font-size: 12px;
  line-height: 1.4;
}

.tns-ceiling strong {
  color: var(--blue);
  font-family: "League Spartan", sans-serif;
  font-size: 17px;
  white-space: nowrap;
}

.tns-options p {
  margin: 0 0 13px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.55;
}

.field-label-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 8px;
}

.field-label-row label {
  margin: 0;
}

.field-label-row output {
  color: var(--blue);
  font-family: "League Spartan", sans-serif;
  font-size: 18px;
  font-weight: 750;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

input[type="range"] {
  width: 100%;
  height: 24px;
  margin: 0;
  appearance: none;
  background: transparent;
  cursor: pointer;
}

input[type="range"]::-webkit-slider-runnable-track {
  height: 6px;
  border-radius: 999px;
  background: var(--beige-dark);
}

input[type="range"]::-moz-range-track {
  height: 6px;
  border-radius: 999px;
  background: var(--beige-dark);
}

input[type="range"]::-webkit-slider-thumb {
  width: 23px;
  height: 23px;
  margin-top: -8.5px;
  appearance: none;
  border: 3px solid var(--blue);
  border-radius: 50%;
  background: var(--white);
  box-shadow: 0 3px 7px rgba(3, 18, 82, 0.24);
}

input[type="range"]::-moz-range-thumb {
  width: 19px;
  height: 19px;
  border: 3px solid var(--blue);
  border-radius: 50%;
  background: var(--white);
  box-shadow: 0 3px 7px rgba(3, 18, 82, 0.24);
}

.range-limits {
  display: flex;
  justify-content: space-between;
  color: #837c71;
  font-family: "League Spartan", sans-serif;
  font-size: 11px;
}

.counter-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
  border: 1px solid rgba(236, 108, 45, 0.22);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.74);
  padding: 10px 12px 10px 15px;
}

.counter-row > span {
  margin: 0;
}

.counter {
  display: flex;
  align-items: center;
  gap: 11px;
}

.counter button {
  width: 36px;
  height: 36px;
  border: 1px solid var(--line-blue);
  border-radius: 9px;
  background: var(--white);
  color: var(--blue);
  font-family: "League Spartan", sans-serif;
  font-size: 20px;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
}

.counter output {
  min-width: 18px;
  color: var(--blue);
  font-family: "League Spartan", sans-serif;
  font-size: 18px;
  font-weight: 750;
  text-align: center;
}

.select-group {
  margin-bottom: 18px;
}

.select-row {
  display: grid;
  grid-template-columns: 1.4fr 0.8fr;
  gap: 8px;
}

select,
.contact-screen input {
  width: 100%;
  min-height: 48px;
  border: 1px solid rgba(236, 108, 45, 0.25);
  border-radius: 11px;
  background: var(--white);
  color: var(--ink);
  padding: 11px 13px;
}

.simulator-note,
.result-footnote,
.contact-privacy {
  margin: 12px 0 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.55;
  text-align: center;
}

.result-screen,
.contact-screen,
.confirmation-screen {
  min-height: 468px;
  background: linear-gradient(145deg, var(--blue) 0%, var(--blue-deep) 100%);
  color: #dfe4fd;
}

.screen-topline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
  color: var(--violet);
  font-family: "League Spartan", sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.text-button {
  border-radius: 8px;
  background: transparent;
  color: inherit;
  padding: 7px 10px;
  font-family: "League Spartan", sans-serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
  cursor: pointer;
}

.text-button.light {
  border: 1px solid rgba(174, 185, 249, 0.38);
  background: rgba(255, 255, 255, 0.07);
}

.result-primary {
  margin: 3px 0 3px;
  color: var(--orange);
  font-family: "Anton", sans-serif;
  font-size: clamp(2.85rem, 6vw, 3.8rem);
  line-height: 1.08;
  font-variant-numeric: tabular-nums;
}

.result-description {
  margin: 0 0 17px;
  color: #dfe4fd;
  font-size: 14px;
}

.result-chart {
  margin: 0 0 14px;
  border: 1px solid rgba(174, 185, 249, 0.28);
  border-radius: 13px;
  background: rgba(255, 255, 255, 0.07);
  padding: 11px 13px 9px;
}

.result-chart-head,
.result-chart-axis,
.result-chart-legend {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.result-chart-head { color: #dfe4fd; font-size: 11px; }
.result-chart-head strong { color: var(--orange); font-size: 12px; }
.result-chart svg { display: block; width: 100%; height: 112px; overflow: visible; }
.result-chart-grid { color: rgba(174, 185, 249, 0.18); }
.result-chart-grid path { fill: none; stroke: currentColor; stroke-width: 1; }
.result-chart .chart-bar-invested { fill: rgba(174, 185, 249, 0.58); }
.result-chart .chart-bar-generated { fill: rgba(236, 108, 45, 0.72); }
.result-chart-area,
.result-chart-invested { display: none; }
.result-chart-total { fill: none; stroke: var(--white); stroke-width: 3; }
.result-chart-dot { fill: var(--orange); stroke: var(--blue-deep); stroke-width: 2; }
.result-chart-axis { margin-top: -5px; color: rgba(223, 228, 253, 0.64); font-size: 9px; }
.result-chart-legend { justify-content: flex-start; margin-top: 5px; color: #dfe4fd; font-size: 10px; }
.result-chart-legend span::before { display: inline-block; width: 14px; height: 2px; margin-right: 6px; background: var(--violet); content: ""; vertical-align: middle; }
.result-chart-legend span:nth-child(2)::before { height: 7px; border-radius: 2px; background: var(--orange); }
.result-chart-legend span:first-child::before { height: 7px; border-radius: 2px; }
.result-chart-legend span:last-child::before { background: var(--white); }

.result-metrics {
  display: grid;
  gap: 8px;
  margin-bottom: 17px;
}

.result-metric {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  border: 1px solid rgba(174, 185, 249, 0.26);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.07);
  padding: 10px 13px;
}

.result-metric span {
  color: #dfe4fd;
  font-size: 13px;
}

.result-metric strong {
  color: var(--white);
  font-family: "League Spartan", sans-serif;
  font-size: 16px;
  font-variant-numeric: tabular-nums;
  text-align: right;
}

.assumption-box {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 0 0 18px;
  border: 1px solid rgba(236, 108, 45, 0.42);
  border-radius: 11px;
  background: rgba(236, 108, 45, 0.12);
  padding: 12px 13px;
}

.assumption-box svg {
  width: 17px;
  height: 17px;
  flex: none;
  margin-top: 2px;
  color: var(--orange);
}

.assumption-box p {
  margin: 0;
  color: #dfe4fd;
  font-size: 12px;
  line-height: 1.55;
}

.assumption-box strong {
  color: var(--white);
}

.result-footnote,
.contact-privacy {
  color: var(--violet);
}

.contact-screen h3,
.confirmation-screen h3 {
  color: var(--white);
  font-size: 24px;
}

.contact-screen > p:not(.contact-privacy) {
  margin: -10px 0 18px;
  font-size: 14px;
}

.contact-screen label,
.callback-time legend {
  color: var(--violet);
}

.contact-screen input,
.contact-screen select {
  margin-bottom: 14px;
}

.contact-screen input {
  border-color: rgba(174, 185, 249, 0.36);
  background: rgba(255, 255, 255, 0.09);
  color: var(--white);
}

.contact-screen input::placeholder {
  color: rgba(223, 228, 253, 0.58);
}

.contact-screen input.is-invalid,
.contact-screen select.is-invalid {
  border-color: var(--orange);
}

.callback-time {
  margin-top: 2px;
}

.dark-choices button {
  border-color: rgba(174, 185, 249, 0.34);
  background: rgba(255, 255, 255, 0.06);
  color: #dfe4fd;
}

.dark-choices button.is-active {
  border-color: var(--orange);
  background: var(--orange);
  color: #111017;
}

.form-error {
  margin-bottom: 14px;
  border: 1px solid var(--orange);
  border-radius: 10px;
  background: rgba(236, 108, 45, 0.15);
  color: var(--white);
  padding: 10px 12px;
  font-size: 13px;
}

.confirmation-icon {
  display: inline-flex;
  width: 60px;
  height: 60px;
  align-items: center;
  justify-content: center;
  margin-bottom: 18px;
  border: 1px solid rgba(143, 227, 180, 0.5);
  border-radius: 50%;
  background: rgba(143, 227, 180, 0.13);
  color: #8fe3b4;
}

.confirmation-icon svg {
  width: 29px;
  height: 29px;
  stroke-width: 2.6;
}

.confirmation-main {
  color: var(--white);
  font-size: 15px;
}

.confirmation-screen p {
  margin: 0 0 14px;
}

.confirmation-screen a {
  color: var(--white);
}

.confirmation-recap {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 8px 16px;
  margin: 18px 0;
  border: 1px solid rgba(174, 185, 249, 0.27);
  border-radius: 11px;
  background: rgba(255, 255, 255, 0.07);
  padding: 14px;
}

.confirmation-recap span {
  color: var(--violet);
  font-size: 13px;
}

.confirmation-recap strong {
  color: var(--white);
  font-family: "League Spartan", sans-serif;
  text-align: right;
}

.fact-section {
  background: var(--blue-deep);
  color: var(--white);
  padding: 76px 0 52px;
}

.section {
  padding: 86px 0;
}

.section-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 42px;
  margin-bottom: 34px;
}
.section-heading > div:only-child { grid-column: 1 / -1; }

.section-heading > div {
  max-width: 680px;
}

.section-heading h2,
.adviser-copy h2,
.final-cta h2 {
  font-size: clamp(2.35rem, 4.5vw, 3.35rem);
}

.section-heading > p {
  max-width: 42ch;
  margin: 0;
  color: var(--body);
  font-size: 16px;
}

.section-heading-dark h2 {
  color: var(--white);
}

.section-heading-dark > p {
  color: var(--violet);
}

.fact-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.fact-card {
  display: flex;
  min-height: 290px;
  flex-direction: column;
  border: 1px solid rgba(174, 185, 249, 0.24);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.055);
  padding: 23px;
  transition: transform 180ms ease, border-color 180ms ease, background 180ms ease;
}

.fact-card:hover {
  transform: translateY(-3px);
  border-color: rgba(174, 185, 249, 0.45);
  background: rgba(255, 255, 255, 0.075);
}

.fact-card > strong {
  display: block;
  margin-bottom: 11px;
  color: var(--orange);
  font-family: "Anton", sans-serif;
  font-size: 42px;
  font-weight: 400;
  line-height: 1.1;
}

.fact-card p {
  flex: 1;
  margin: 0 0 16px;
  color: #dfe4fd;
  font-size: 14px;
  line-height: 1.65;
}

.fact-card small {
  display: block;
  margin: 0 0 10px;
  color: var(--violet);
  font-family: "League Spartan", sans-serif;
  font-size: 12px;
  font-weight: 650;
  letter-spacing: 0.02em;
}

.fact-card a,
.fact-card > span {
  color: var(--violet);
  font-family: "League Spartan", sans-serif;
  font-size: 12px;
  font-weight: 650;
}

.trust-row {
  display: flex;
  flex-wrap: wrap;
  gap: 22px 36px;
  margin-top: 28px;
  border-top: 1px solid rgba(174, 185, 249, 0.2);
  padding-top: 25px;
}

.trust-row span {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: var(--violet);
  font-size: 14px;
}

.trust-row svg {
  width: 17px;
  height: 17px;
  color: var(--orange);
}

.regulatory-marks {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr) auto;
  gap: 14px;
  margin-top: 30px;
  border-top: 1px solid rgba(174, 185, 249, 0.2);
  padding-top: 25px;
}

.regulatory-mark,
.regulatory-address {
  display: flex;
  min-height: 82px;
  align-items: center;
  gap: 14px;
  border: 1px solid rgba(174, 185, 249, 0.24);
  border-radius: 15px;
  background: rgba(255, 255, 255, 0.06);
  padding: 14px 16px;
  color: var(--white);
}

.regulatory-mark {
  text-decoration: none;
  transition: border-color 160ms ease, background 160ms ease, transform 160ms ease;
}

.regulatory-mark:hover {
  border-color: var(--orange);
  background: rgba(255, 255, 255, 0.1);
  transform: translateY(-2px);
}

.regulatory-logo {
  width: 54px;
  height: 54px;
  flex: none;
  border: 6px solid var(--white);
  border-radius: 13px;
  background: var(--white);
  object-fit: contain;
}

.regulatory-wordmark {
  flex: none;
  color: var(--white);
  font-family: "League Spartan", sans-serif;
  font-size: 24px;
  font-weight: 800;
  letter-spacing: -0.03em;
}

.regulatory-wordmark-acpr {
  display: grid;
  line-height: 0.82;
}

.regulatory-wordmark-acpr small {
  margin-top: 5px;
  color: var(--violet);
  font-size: 7px;
  letter-spacing: 0.04em;
}

.regulatory-mark > span:last-child {
  display: grid;
  gap: 3px;
}

.regulatory-mark strong {
  font-family: "League Spartan", sans-serif;
  font-size: 14px;
  line-height: 1.25;
}

.regulatory-mark > span:last-child small {
  color: var(--violet);
  font-size: 11px;
}

.regulatory-address {
  color: var(--violet);
  font-size: 13px;
}

.regulatory-address svg {
  width: 18px;
  flex: none;
  color: var(--orange);
}

.fee-strip {
  padding: 44px 0 0;
}

.fee-card {
  display: block;
  border: 1px solid rgba(3, 31, 148, .11);
  border-radius: 20px;
  background: rgba(255, 255, 255, .7);
  padding: 27px 30px;
}

.fee-card .eyebrow {
  margin: 0 0 10px;
}

.fee-card p:last-child {
  max-width: 950px;
  margin: 0;
  color: var(--body);
  font-size: 17px;
  line-height: 1.65;
}

.fee-card strong {
  color: var(--blue);
}

.value-strip .fee-card {
  border-left: 1px solid rgba(3, 31, 148, .11);
}

.solution-grid,
.guide-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 21px;
}

.solution-grid {
  grid-template-columns: repeat(3, 1fr);
}

.legacy-stat-section {
  background: var(--beige);
  padding: clamp(62px, 8vw, 96px) 0;
}

.legacy-stat-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.legacy-stat-grid article {
  border: 1px solid var(--line);
  border-radius: 20px;
  background: var(--white);
  padding: 30px;
  text-align: center;
}

.legacy-stat-grid strong {
  display: block;
  color: var(--blue);
  font-family: "Anton", sans-serif;
  font-size: clamp(3.4rem, 7vw, 5.8rem);
  font-weight: 400;
  line-height: 1;
}

.legacy-stat-grid p {
  margin: 10px 0 0;
  color: var(--body);
}

.process-grid.process-grid-three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.migrated-proof-section {
  background: var(--violet-light);
}

.migrated-proof-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  gap: clamp(36px, 7vw, 76px);
  align-items: center;
}

.migrated-proof-grid h2 {
  margin: 8px 0 24px;
  color: var(--blue);
  font-family: "League Spartan", sans-serif;
  font-size: clamp(2rem, 4vw, 3.4rem);
  line-height: 1.05;
}

.press-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.press-grid a {
  display: flex;
  min-height: 84px;
  align-items: center;
  gap: 13px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--white);
  color: var(--blue);
  padding: 14px;
  font-family: "League Spartan", sans-serif;
  font-weight: 700;
  text-decoration: none;
  transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.press-grid a:hover {
  border-color: rgba(3, 31, 148, 0.28);
  box-shadow: 0 16px 30px -24px rgba(3, 18, 82, 0.55);
  transform: translateY(-2px);
}

.press-grid img {
  width: 42px;
  height: 42px;
  flex: none;
  border-radius: 9px;
  object-fit: contain;
}

/* Complete content migration and Santé / Prévoyance consolidation */
.subsection-nav {
  position: sticky;
  top: var(--header-height);
  z-index: 40;
  border-bottom: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(14px);
}

.subsection-nav .container {
  display: flex;
  min-height: 58px;
  align-items: center;
  justify-content: center;
  gap: clamp(18px, 5vw, 54px);
}

.subsection-nav a {
  color: var(--blue);
  font-family: "League Spartan", sans-serif;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  transition: color 160ms ease;
  white-space: nowrap;
}

.subsection-nav a:hover,
.subsection-nav a:focus-visible {
  color: var(--orange);
}

main section[id] {
  scroll-margin-top: calc(var(--header-height) + 18px);
}

.product-feature-grid.product-feature-grid-four {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.service-panel {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 42px;
  margin-top: 34px;
  border-radius: 22px;
  background: var(--blue);
  color: var(--white);
  padding: clamp(28px, 5vw, 46px);
}

.service-panel h3 {
  margin: 8px 0 0;
  font-family: "League Spartan", sans-serif;
  font-size: clamp(1.6rem, 3vw, 2.4rem);
}

.service-panel ul {
  display: grid;
  gap: 13px;
  margin: 0;
  padding-left: 20px;
  color: #dfe4fd;
  line-height: 1.6;
}

.health-feature-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin-top: 36px;
}

.health-feature-grid article {
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--white);
  padding: 24px;
}

.health-feature-grid strong,
.content-card-grid span {
  color: var(--orange);
  font-family: "League Spartan", sans-serif;
  font-size: 12px;
  letter-spacing: 0.12em;
}

.health-feature-grid h3 {
  margin: 10px 0 8px;
  color: var(--blue);
  font-family: "League Spartan", sans-serif;
  font-size: 19px;
}

.health-feature-grid p {
  margin: 0;
  color: var(--body);
  font-size: 13px;
  line-height: 1.6;
}

.content-hero {
  background: linear-gradient(135deg, var(--beige) 0%, #fff 60%, var(--violet-light) 100%);
  padding: clamp(64px, 9vw, 112px) 0 clamp(54px, 7vw, 86px);
}

.content-hero-inner {
  max-width: 920px;
}

.content-hero h1 {
  max-width: 18ch;
  margin: 8px 0 20px;
  color: var(--blue);
  font-family: "Anton", sans-serif;
  font-size: clamp(3rem, 7vw, 6.5rem);
  font-weight: 400;
  line-height: 0.98;
  text-transform: uppercase;
}

.content-hero-inner > p:last-child,
.content-hero-inner > p:nth-last-child(2) {
  max-width: 70ch;
  color: var(--body);
  font-size: 17px;
  line-height: 1.7;
}

.content-section {
  padding: clamp(66px, 9vw, 112px) 0;
}

.content-layout {
  display: grid;
  grid-template-columns: minmax(220px, 0.32fr) minmax(0, 0.68fr);
  gap: clamp(42px, 7vw, 88px);
  align-items: start;
}

.content-layout-wide {
  grid-template-columns: minmax(0, 880px);
  justify-content: center;
}

.content-toc {
  position: sticky;
  top: 116px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--white);
  padding: 24px;
}

.content-toc > strong {
  color: var(--blue);
  font-family: "League Spartan", sans-serif;
  font-size: 18px;
}

.content-toc ol {
  display: grid;
  gap: 10px;
  margin: 17px 0 0;
  padding-left: 18px;
}

.content-toc a {
  color: var(--body);
  font-size: 12px;
  line-height: 1.45;
  text-decoration: none;
}

.longform-content {
  min-width: 0;
}

.longform-content > section {
  scroll-margin-top: 126px;
  border-bottom: 1px solid var(--line);
  padding: 0 0 42px;
  margin-bottom: 42px;
}

.longform-content > section:last-child {
  border-bottom: 0;
  margin-bottom: 0;
}

.longform-content h2 {
  margin: 0 0 18px;
  color: var(--blue);
  font-family: "League Spartan", sans-serif;
  font-size: clamp(1.75rem, 3.4vw, 2.7rem);
  line-height: 1.12;
}

.longform-content h3,
.longform-content h4,
.longform-content h5 {
  margin: 28px 0 10px;
  color: var(--ink);
  font-family: "League Spartan", sans-serif;
}

.longform-content p,
.longform-content li {
  color: var(--body);
  font-size: 16px;
  line-height: 1.8;
}

.longform-content p {
  margin: 0 0 16px;
}

.longform-content ul,
.longform-content ol {
  display: grid;
  gap: 8px;
  margin: 0 0 20px;
  padding-left: 24px;
}

.longform-content blockquote {
  margin: 24px 0;
  border-left: 3px solid var(--orange);
  background: var(--violet-light);
  padding: 20px 22px;
}

.longform-content blockquote p:last-child {
  margin-bottom: 0;
}

.value-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 22px 0 28px;
}

.value-row strong {
  border-radius: 999px;
  background: var(--blue);
  color: var(--white);
  padding: 9px 15px;
  font-family: "League Spartan", sans-serif;
}

.content-card-grid,
.job-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.content-card-grid article,
.job-list article,
.contact-details {
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--white);
  padding: 24px;
}

.contact-details {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.contact-page-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.contact-page-form label {
  display: block;
  margin-bottom: 7px;
  color: var(--ink);
  font-family: "League Spartan", sans-serif;
  font-weight: 700;
}

.contact-page-form input,
.contact-page-form textarea {
  width: 100%;
  border: 1px solid var(--line-blue);
  border-radius: 10px;
  background: var(--white);
  padding: 12px 14px;
  font: inherit;
}

.contact-form-wide {
  grid-column: 1 / -1;
}

.content-kicker {
  color: var(--orange) !important;
  font-family: "League Spartan", sans-serif;
  font-size: 12px !important;
  font-weight: 750;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.section-logo-title {
  display: inline-flex;
  align-items: center;
  gap: 12px;
}

.section-logo-title img {
  width: 44px;
  height: 44px;
  flex: none;
  border-radius: 10px;
  object-fit: contain;
}

@media (max-width: 920px) {
  .migrated-proof-grid {
    grid-template-columns: 1fr;
  }

  .product-feature-grid.product-feature-grid-four,
  .health-feature-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .content-layout,
  .service-panel {
    grid-template-columns: 1fr;
  }

  .content-toc {
    position: static;
  }
}

@media (max-width: 640px) {
  .legacy-stat-grid,
  .process-grid.process-grid-three {
    grid-template-columns: 1fr;
  }

  .subsection-nav {
    top: var(--header-height);
    overflow-x: auto;
    scrollbar-width: none;
  }

  .subsection-nav::-webkit-scrollbar { display: none; }

  .subsection-nav .container {
    width: max-content;
    min-height: 50px;
    justify-content: flex-start;
    gap: 26px;
    padding-inline: 18px;
  }

  .subsection-nav a { font-size: 13px; }

  .product-feature-grid.product-feature-grid-four,
  .health-feature-grid,
  .content-card-grid,
  .job-list,
  .contact-details,
  .contact-page-form {
    grid-template-columns: 1fr;
  }

  .contact-form-wide {
    grid-column: auto;
  }

  .content-hero {
    padding-top: 50px;
  }

  .content-hero h1 {
    font-size: clamp(2.7rem, 14vw, 4.2rem);
  }
}

.solution-roadmap {
  margin: 24px 0 0;
  border-left: 3px solid var(--orange);
  background: var(--violet-light);
  color: var(--body);
  padding: 16px 20px;
}

.solution-roadmap strong {
  color: var(--blue);
}

.image-card,
.guide-card {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
  background: var(--white);
  box-shadow: 0 18px 44px -42px rgba(3, 18, 82, 0.5);
  transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

a.image-card {
  color: inherit;
  text-decoration: none;
}

a.image-card:focus-visible {
  outline: 3px solid rgba(3, 31, 148, .28);
  outline-offset: 4px;
}

a.guide-card { color: inherit; text-decoration: none; }
a.guide-card:focus-visible { outline: 3px solid rgba(3, 31, 148, .28); outline-offset: 4px; }

.image-card:hover,
.guide-card:hover {
  transform: translateY(-4px);
  border-color: rgba(3, 31, 148, 0.25);
  box-shadow: var(--shadow-card);
}

.image-card > img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}

.image-card > .product-object-card {
  height: clamp(205px, 18vw, 230px);
  aspect-ratio: auto;
  background:
    radial-gradient(circle at 78% 16%, rgba(174, 185, 249, .42), transparent 27%),
    linear-gradient(145deg, #f8f6f1 0%, #edf1fd 100%);
  object-fit: contain;
  padding: 19px 25px 8px;
  transition: transform 240ms ease;
}

.image-card:hover > .product-object-card {
  transform: translateY(-3px) rotate(-1deg) scale(1.025);
}

.image-card > div,
.guide-card > div {
  padding: 25px;
}

.card-label {
  display: inline-flex;
  margin-bottom: 11px;
  border-radius: 7px;
  background: var(--violet-light);
  color: var(--blue);
  padding: 5px 9px;
  font-family: "League Spartan", sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.image-card h3,
.guide-card h3,
.process-grid h3 {
  margin: 0 0 9px;
  color: var(--ink);
  font-family: "League Spartan", sans-serif;
  font-size: 22px;
  line-height: 1.2;
}

.image-card p,
.guide-card p,
.process-grid p {
  margin: 0 0 16px;
  color: var(--body);
  font-size: 15px;
}

.image-card a,
.guide-card a {
  color: var(--blue);
  font-family: "League Spartan", sans-serif;
  font-weight: 700;
}

.process-section {
  background: #fbfaf7;
}

.centered-heading {
  align-items: center;
  flex-direction: column;
  gap: 12px;
  text-align: center;
}

.centered-heading .eyebrow {
  justify-content: center;
}

.centered-heading > p {
  text-align: center;
}

.process-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 17px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.process-grid li {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--white);
  padding: 0 21px 20px;
}

.process-grid img {
  width: calc(100% + 42px);
  max-width: none;
  aspect-ratio: 3 / 2;
  margin: 0 -21px 18px;
  object-fit: cover;
}

.process-grid li > span {
  display: inline-flex;
  width: 35px;
  height: 35px;
  align-items: center;
  justify-content: center;
  margin-bottom: 13px;
  border-radius: 50%;
  background: var(--blue);
  color: var(--white);
  font-family: "League Spartan", sans-serif;
  font-size: 12px;
  font-weight: 700;
}

.process-grid h3 {
  font-size: 19px;
}

.process-grid p {
  margin: 0;
  font-size: 14px;
}

.adviser-section {
  padding-top: 0;
}

.adviser-card {
  display: grid;
  grid-template-columns: 0.92fr 1.08fr;
  overflow: hidden;
  border-radius: var(--radius-large);
  background: var(--blue-deep);
  box-shadow: var(--shadow-card);
}

.adviser-photo {
  min-height: 560px;
}

.adviser-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.adviser-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(36px, 6vw, 68px);
}

.adviser-copy h2 {
  color: var(--white);
}

.adviser-copy > p:not(.eyebrow) {
  margin: 18px 0 24px;
  color: #dfe4fd;
  font-size: 17px;
}

.dark-benefits {
  margin-bottom: 28px;
}

.dark-benefits li {
  position: relative;
  border: 1px solid rgba(174, 185, 249, 0.24);
  border-radius: 11px;
  background: rgba(255, 255, 255, 0.055);
  color: #dfe4fd;
  padding: 12px 14px 12px 42px;
  font-size: 14px;
}

.dark-benefits li::before {
  position: absolute;
  left: 15px;
  top: 50%;
  width: 14px;
  height: 8px;
  transform: translateY(-62%) rotate(-45deg);
  border-bottom: 2px solid #8fe3b4;
  border-left: 2px solid #8fe3b4;
  content: "";
}

.button-row {
  display: flex;
  flex-wrap: wrap;
  gap: 11px;
}

.button-row .button {
  flex: 1;
}

.guide-grid {
  grid-template-columns: 1.35fr 1fr 1fr;
}

.guide-card > img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}

.guide-card-featured {
  border: 1px solid var(--line);
}

.guide-card-featured > img {
  aspect-ratio: 21 / 10;
}

.faq-section {
  padding-top: 0;
}

.faq-card {
  display: grid;
  grid-template-columns: 0.72fr 1.28fr;
  gap: 52px;
  border: 1px solid var(--line);
  border-radius: var(--radius-large);
  background: var(--white);
  padding: clamp(30px, 5vw, 55px);
}

.faq-heading h2 {
  margin: 0;
  color: var(--ink);
  font-family: "League Spartan", sans-serif;
  font-size: clamp(2rem, 3.5vw, 2.65rem);
  line-height: 1.12;
}

.faq-heading .faq-note {
  margin: 16px 0 0;
  color: var(--body);
  font-size: 14px;
  line-height: 1.65;
}

.faq-item {
  border-bottom: 1px solid var(--line);
}

.faq-item:last-child {
  border-bottom: 0;
}

.faq-item button {
  display: flex;
  width: 100%;
  min-height: 68px;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  background: transparent;
  color: var(--ink);
  padding: 16px 0;
  font-family: "League Spartan", sans-serif;
  font-size: 18px;
  font-weight: 650;
  text-align: left;
  cursor: pointer;
}

.faq-item button span:last-child {
  color: var(--orange);
  font-size: 25px;
  font-weight: 400;
}

.faq-answer {
  padding: 0 34px 19px 0;
}

.faq-answer p {
  margin: 0;
  color: var(--body);
  font-size: 15px;
}

.faq-answer strong {
  color: var(--blue);
}

.faq-source {
  color: var(--blue);
  font-weight: 650;
  text-underline-offset: 3px;
}

.final-cta {
  padding: 0 0 80px;
}

.final-cta-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 46px;
  border-radius: var(--radius-large);
  background: linear-gradient(145deg, var(--blue) 0%, var(--blue-deep) 100%);
  padding: clamp(36px, 6vw, 60px);
  color: var(--white);
}

.final-cta h2 {
  color: var(--white);
}

.final-cta p:not(.eyebrow) {
  max-width: 58ch;
  margin: 14px 0 0;
  color: #dfe4fd;
}

.final-cta-card > div:last-child {
  display: flex;
  min-width: 260px;
  flex-direction: column;
  gap: 12px;
  text-align: center;
}

.final-cta-card > div:last-child a:not(.button) {
  color: #dfe4fd;
  font-family: "League Spartan", sans-serif;
  font-weight: 650;
}

.site-footer {
  background: var(--blue-deep);
  color: #dfe4fd;
  padding: 56px 0 34px;
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.45fr repeat(3, 1fr);
  gap: 42px;
  padding-bottom: 37px;
}

.footer-brand img {
  width: 205px;
  height: auto;
  margin-bottom: 18px;
  filter: brightness(0) invert(1);
}

.footer-brand p,
.footer-brand address {
  max-width: 36ch;
  margin: 0 0 14px;
  color: var(--violet);
  font-size: 14px;
  font-style: normal;
}

.footer-grid h2 {
  margin: 0 0 16px;
  color: var(--orange);
  font-family: "League Spartan", sans-serif;
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.footer-grid > div:not(.footer-brand) {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.footer-grid a {
  margin-bottom: 9px;
  color: #dfe4fd;
  font-size: 14px;
  text-decoration: none;
}

.footer-grid a:hover {
  color: var(--white);
  text-decoration: underline;
}

.legal {
  border-top: 1px solid rgba(174, 185, 249, 0.2);
  padding-top: 25px;
}

.legal p {
  max-width: 100ch;
  margin: 0 0 18px;
  color: var(--violet);
  font-size: 12px;
  line-height: 1.7;
}

.legal div {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  color: rgba(174, 185, 249, 0.7);
  font-size: 12px;
}

.legal a {
  color: var(--violet);
}

.cookie-settings-button {
  appearance: none;
  border: 0;
  padding: 0;
  background: transparent;
  color: var(--violet);
  font: inherit;
  text-decoration: underline;
  cursor: pointer;
}

.cookie-settings-button:hover,
.cookie-settings-button:focus-visible {
  color: var(--white);
}

.mobile-actions {
  display: none;
}

.product-main {
  padding-top: 0;
}

.product-page .main-nav a[aria-current="page"] {
  color: var(--blue);
  text-decoration: underline;
  text-decoration-color: var(--orange);
  text-decoration-thickness: 2px;
  text-underline-offset: 7px;
}

.product-hero {
  overflow: hidden;
  background: linear-gradient(135deg, var(--beige) 0%, #fff 58%, var(--violet-light) 100%);
  padding: clamp(64px, 8vw, 112px) 0 clamp(54px, 7vw, 94px);
}

.product-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(420px, 0.98fr);
  gap: clamp(42px, 7vw, 88px);
  align-items: center;
}

.breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 22px;
  color: var(--muted);
  font-size: 12px;
}

.breadcrumb a {
  color: var(--blue);
  font-weight: 650;
}

.product-hero h1,
.product-section h2,
.product-simulator-copy h2,
.product-proof h2 {
  margin: 0;
  color: var(--blue);
  font-family: "Anton", sans-serif;
  font-weight: 400;
  letter-spacing: 0.005em;
  line-height: 1.04;
  text-transform: uppercase;
}

.product-hero h1 {
  max-width: 13ch;
  font-size: clamp(3rem, 6vw, 5.3rem);
}

.product-hero h1 em {
  color: var(--orange);
  font-style: normal;
}

.product-hero-copy > p:not(.eyebrow):not(.breadcrumb) {
  max-width: 53ch;
  margin: 25px 0 29px;
  color: var(--body);
  font-size: clamp(1rem, 1.5vw, 1.18rem);
  line-height: 1.72;
}

.product-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 24px;
}

.product-mini-proof {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 24px;
  color: var(--muted);
  font-size: 12px;
}

.product-mini-proof strong {
  color: var(--blue);
}

.product-mini-proof .mini-proof-logo {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.mini-proof-logo img {
  width: 22px;
  height: 22px;
  border-radius: 5px;
  object-fit: contain;
}

.product-hero-media {
  position: relative;
}

.product-hero-media::before {
  position: absolute;
  inset: -18px 24px 24px -18px;
  border: 1px solid rgba(3, 31, 148, 0.15);
  border-radius: 24px;
  content: "";
}

.product-hero-media img {
  position: relative;
  z-index: 1;
  width: 100%;
  aspect-ratio: 6 / 5;
  border-radius: 24px;
  object-fit: cover;
  box-shadow: 0 34px 70px -32px rgba(3, 31, 148, 0.46);
}

.product-object-stage {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(3, 31, 148, .1);
  border-radius: 28px;
  background:
    radial-gradient(circle at 18% 14%, rgba(255, 255, 255, .95), transparent 30%),
    radial-gradient(circle at 88% 82%, rgba(174, 185, 249, .52), transparent 36%),
    linear-gradient(145deg, #f4efe7 0%, #eef1fd 100%);
  padding: clamp(20px, 3vw, 36px);
}

.product-object-stage::before {
  position: absolute;
  inset: 20px -38px auto auto;
  width: 44%;
  aspect-ratio: 1;
  border-color: rgba(3, 31, 148, .11);
  border-radius: 50%;
  content: "";
}

.product-object-stage::after {
  position: absolute;
  bottom: 24px;
  left: 28px;
  width: 28%;
  height: 38px;
  border-bottom: 2px solid rgba(236, 108, 45, .42);
  border-left: 2px solid rgba(3, 31, 148, .16);
  border-radius: 0 0 0 12px;
  content: "";
  transform: skewY(-12deg);
}

.product-object-stage img,
.product-hero-media.product-object-stage img {
  width: 100%;
  height: min(40vw, 500px);
  aspect-ratio: auto;
  background: transparent;
  object-fit: contain;
  padding: 0;
  filter: drop-shadow(0 24px 24px rgba(3, 18, 82, .2));
  box-shadow: none;
  transition: transform 320ms ease;
}

.product-object-stage:hover img {
  transform: translateY(-5px) rotate(-1deg) scale(1.018);
}

.product-object-stage-secondary {
  position: relative;
  display: grid;
  min-height: 470px;
  place-items: center;
}

.product-object-stage-secondary img {
  position: relative;
  z-index: 1;
  width: min(100%, 500px);
  height: min(36vw, 440px);
  max-height: 440px;
}

.product-stat-band {
  background: var(--blue-deep);
  color: var(--white);
}

.product-stat-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}

.product-stat {
  min-height: 176px;
  border-right: 1px solid rgba(174, 185, 249, 0.2);
  padding: 30px 25px;
}

.product-stat:last-child {
  border-right: 0;
}

.product-stat strong {
  display: block;
  margin-bottom: 8px;
  color: var(--orange);
  font-family: "Anton", sans-serif;
  font-size: 38px;
  font-weight: 400;
}

.product-stat p {
  margin: 0 0 10px;
  color: #dfe4fd;
  font-size: 13px;
  line-height: 1.55;
}

.product-stat small {
  color: var(--violet);
  font-size: 10px;
  line-height: 1.5;
}

.product-section {
  padding: clamp(70px, 9vw, 112px) 0;
}

.product-section-alt {
  background: var(--beige);
}

.product-split {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(420px, 1.1fr);
  gap: clamp(44px, 7vw, 88px);
  align-items: center;
}

.product-split-reverse > :first-child {
  order: 2;
}

.product-section h2,
.product-simulator-copy h2,
.product-proof h2 {
  max-width: 15ch;
  font-size: clamp(2.35rem, 4.4vw, 4rem);
}

.product-copy > p:not(.eyebrow) {
  margin: 22px 0 0;
  color: var(--body);
  font-size: 16px;
  line-height: 1.75;
}

.product-points {
  display: grid;
  gap: 12px;
  margin: 24px 0 0;
  padding: 0;
  list-style: none;
}

.product-points li {
  position: relative;
  padding-left: 28px;
  color: var(--ink);
  line-height: 1.55;
}

.product-points li::before {
  position: absolute;
  top: 7px;
  left: 0;
  width: 10px;
  height: 10px;
  border: 3px solid rgba(236, 108, 45, 0.22);
  border-radius: 50%;
  background: var(--orange);
  content: "";
}

.product-photo-stack {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 14px;
}

.product-photo-stack img {
  width: 100%;
  height: 100%;
  min-height: 235px;
  border-radius: 18px;
  object-fit: cover;
}

.product-photo-stack img:first-child {
  grid-row: 1 / span 2;
  min-height: 484px;
}

.product-feature-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-top: 42px;
}

.product-feature {
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--white);
  padding: 25px;
  box-shadow: 0 18px 42px -35px rgba(3, 31, 148, 0.48);
}

.product-feature span {
  color: var(--orange);
  font-family: "League Spartan", sans-serif;
  font-size: 12px;
  font-weight: 750;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.product-feature h3 {
  margin: 12px 0 9px;
  color: var(--blue);
  font-family: "League Spartan", sans-serif;
  font-size: 20px;
}

.product-feature p {
  margin: 0;
  color: var(--body);
  font-size: 14px;
  line-height: 1.65;
}

.product-simulator-section {
  background: linear-gradient(145deg, var(--blue) 0%, var(--blue-deep) 100%);
  padding: clamp(68px, 9vw, 108px) 0;
}

.product-simulator-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.78fr) minmax(480px, 1.22fr);
  gap: clamp(42px, 7vw, 84px);
  align-items: center;
}

.product-simulator-copy h2,
.product-simulator-copy .eyebrow {
  color: var(--white);
}

.product-simulator-copy p:not(.eyebrow) {
  margin: 22px 0 0;
  color: #dfe4fd;
  line-height: 1.7;
}

.product-calculator {
  border-radius: 22px;
  background: var(--white);
  padding: clamp(24px, 4vw, 36px);
  box-shadow: 0 32px 64px -28px rgba(0, 0, 0, 0.48);
}

.product-calculator h3 {
  margin: 0 0 22px;
  color: var(--blue);
  font-family: "League Spartan", sans-serif;
  font-size: 24px;
}

.product-calculator label {
  display: block;
  margin-bottom: 8px;
  color: var(--muted);
  font-family: "League Spartan", sans-serif;
  font-size: 11px;
  font-weight: 750;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.product-calculator select,
.product-calculator input[type="number"] {
  width: 100%;
  min-height: 50px;
  margin-bottom: 18px;
  border: 1px solid var(--line-blue);
  border-radius: 11px;
  background: var(--white);
  color: var(--ink);
  padding: 10px 12px;
  font: inherit;
}

.product-calculator .range-field {
  margin-bottom: 22px;
}

.product-result {
  margin: 20px 0 0;
  border: 1px solid rgba(3, 31, 148, 0.14);
  border-radius: 14px;
  background: var(--violet-light);
  padding: 17px;
}

.product-result strong {
  display: block;
  color: var(--blue);
  font-family: "Anton", sans-serif;
  font-size: 34px;
  font-weight: 400;
}

.product-result p {
  margin: 6px 0 0;
  color: var(--body);
  font-size: 12px;
  line-height: 1.55;
}

.product-calculator-note {
  margin: 14px 0 0;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.55;
}

.product-proof {
  display: grid;
  grid-template-columns: minmax(320px, 0.7fr) minmax(0, 1.3fr);
  gap: clamp(38px, 7vw, 76px);
  align-items: center;
}

.testimonial-card {
  position: relative;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: var(--white);
  padding: clamp(28px, 5vw, 44px);
  box-shadow: 0 30px 70px -45px rgba(3, 31, 148, 0.52);
}

.testimonial-card blockquote {
  margin: 0;
  color: var(--ink);
  font-family: "League Spartan", sans-serif;
  font-size: clamp(1.3rem, 2.5vw, 1.8rem);
  font-weight: 600;
  line-height: 1.45;
}

.testimonial-card footer {
  margin-top: 20px;
  color: var(--blue);
  font-size: 13px;
  font-weight: 700;
}

.proof-note {
  margin-top: 18px;
  border-left: 3px solid var(--orange);
  background: rgba(236, 108, 45, 0.08);
  padding: 12px 14px;
  color: var(--body);
  font-size: 11px;
  line-height: 1.55;
}

.product-related {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  margin-top: 34px;
}

.product-related a {
  display: block;
  border: 1px solid var(--line);
  border-radius: 17px;
  background: var(--white);
  color: var(--blue);
  padding: 22px;
  font-family: "League Spartan", sans-serif;
  font-size: 18px;
  font-weight: 700;
  text-decoration: none;
}

.product-related a span {
  display: block;
  margin-top: 5px;
  color: var(--body);
  font-family: "Poppins", sans-serif;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
}

.product-related-three {
  grid-template-columns: repeat(3, 1fr);
}

.library-hero {
  background: linear-gradient(135deg, var(--beige) 0%, #fff 58%, var(--violet-light) 100%);
  padding: clamp(64px, 8vw, 104px) 0 clamp(58px, 7vw, 88px);
}

.library-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(360px, 0.9fr);
  gap: clamp(42px, 7vw, 86px);
  align-items: center;
}

.library-hero h1 {
  max-width: 12ch;
  margin: 0;
  color: var(--blue);
  font-family: "Anton", sans-serif;
  font-size: clamp(3.25rem, 7vw, 6rem);
  font-weight: 400;
  line-height: 0.98;
  text-transform: uppercase;
}

.library-hero-grid > div > p:last-child {
  max-width: 56ch;
  margin: 24px 0 0;
  color: var(--body);
  font-size: clamp(1rem, 1.5vw, 1.18rem);
  line-height: 1.72;
}

.library-spotlight {
  border-radius: 24px;
  background: var(--blue-deep);
  padding: clamp(30px, 5vw, 48px);
  box-shadow: 0 34px 70px -38px rgba(3, 31, 148, 0.55);
}

a.library-spotlight,
a.article-card {
  color: inherit;
  text-decoration: none;
}

a.library-spotlight:focus-visible,
a.article-card:focus-visible {
  outline: 3px solid rgba(3, 31, 148, .28);
  outline-offset: 4px;
}

.library-spotlight h2 {
  margin: 8px 0 14px;
  color: var(--white);
  font-family: "League Spartan", sans-serif;
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 1.04;
}

.library-spotlight p {
  margin: 0 0 24px;
  color: #dfe4fd;
  line-height: 1.68;
}

.article-library-section {
  padding: clamp(70px, 9vw, 112px) 0;
}

.library-heading {
  margin-bottom: 34px;
}

.article-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.article-card {
  display: flex;
  min-height: 300px;
  flex-direction: column;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: var(--white);
  padding: 28px;
  box-shadow: 0 22px 54px -44px rgba(3, 31, 148, 0.5);
}

.article-card-new {
  border: 2px solid var(--blue);
  background: linear-gradient(145deg, #fff 0%, var(--violet-light) 100%);
}

.article-card h3 {
  margin: 6px 0 14px;
  color: var(--blue);
  font-family: "League Spartan", sans-serif;
  font-size: 24px;
  line-height: 1.18;
}

.article-card p {
  margin: 0 0 22px;
  color: var(--body);
  font-size: 14px;
  line-height: 1.7;
}

.article-card > a {
  margin-top: auto;
  color: var(--blue);
  font-family: "League Spartan", sans-serif;
  font-weight: 750;
  text-underline-offset: 4px;
}

.insight-hero .product-hero-copy > p:not(.eyebrow):not(.breadcrumb) {
  max-width: 61ch;
}

.product-stat-insight {
  background: rgba(236, 108, 45, 0.08);
}

.insight-article-section {
  padding: clamp(72px, 9vw, 112px) 0;
}

.insight-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(300px, 0.55fr);
  gap: clamp(42px, 7vw, 88px);
  align-items: start;
}

.insight-article {
  max-width: 760px;
}

.insight-article h2 {
  margin: 52px 0 18px;
  color: var(--blue);
  font-family: "League Spartan", sans-serif;
  font-size: clamp(2rem, 4vw, 3.1rem);
  line-height: 1.08;
}

.insight-article .eyebrow + h2 {
  margin-top: 0;
}

.insight-article > p:not(.eyebrow) {
  margin: 0 0 18px;
  color: var(--body);
  font-size: 16px;
  line-height: 1.82;
}

.insight-steps {
  display: grid;
  gap: 14px;
  margin: 24px 0 0;
  padding: 0;
  list-style: none;
}

.insight-steps li {
  display: grid;
  grid-template-columns: 48px 1fr;
  gap: 17px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--white);
  padding: 20px;
}

.insight-steps li > span {
  display: flex;
  width: 42px;
  height: 42px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--blue);
  color: var(--white);
  font-family: "League Spartan", sans-serif;
  font-size: 11px;
  font-weight: 750;
}

.insight-steps h3 {
  margin: 1px 0 6px;
  color: var(--blue);
  font-family: "League Spartan", sans-serif;
  font-size: 19px;
}

.insight-steps p {
  margin: 0;
  color: var(--body);
  font-size: 14px;
  line-height: 1.6;
}

.insight-sidebar {
  position: sticky;
  top: 104px;
  display: grid;
  gap: 18px;
}

.insight-summary-card,
.insight-source-card {
  border: 1px solid var(--line);
  border-radius: 20px;
  background: var(--white);
  padding: 28px;
  box-shadow: 0 24px 55px -45px rgba(3, 31, 148, 0.52);
}

.insight-summary-card h2 {
  margin: 6px 0 18px;
  color: var(--blue);
  font-family: "League Spartan", sans-serif;
  font-size: 28px;
  line-height: 1.12;
}

.insight-summary-card ul {
  display: grid;
  gap: 10px;
  margin: 0 0 24px;
  padding-left: 20px;
  color: var(--body);
  font-size: 14px;
  line-height: 1.55;
}

.insight-source-card {
  border-left: 4px solid var(--orange);
}

.insight-source-card strong {
  color: var(--blue);
  font-family: "League Spartan", sans-serif;
  font-size: 18px;
}

.insight-source-card p {
  margin: 10px 0 14px;
  color: var(--body);
  font-size: 13px;
  line-height: 1.65;
}

.insight-source-card a {
  color: var(--blue);
  font-family: "League Spartan", sans-serif;
  font-weight: 700;
}

@media (max-width: 920px) {
  .product-hero-grid,
  .product-split,
  .product-simulator-grid,
  .product-proof,
  .library-hero-grid,
  .insight-layout {
    grid-template-columns: 1fr;
  }

  .product-split-reverse > :first-child {
    order: initial;
  }

  .product-stat-grid,
  .product-feature-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .article-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .insight-sidebar {
    position: static;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .product-stat:nth-child(2) {
    border-right: 0;
  }

  .product-stat:nth-child(-n + 2) {
    border-bottom: 1px solid rgba(174, 185, 249, 0.2);
  }
}

@media (max-width: 640px) {
  .product-main {
    padding-top: 0;
  }

  .product-hero {
    padding-top: 48px;
  }

  .product-hero-grid {
    gap: 42px;
  }

  .product-hero h1 {
    font-size: clamp(2.65rem, 14vw, 4rem);
  }

  .product-hero-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .product-hero-media::before {
    inset: -10px 16px 18px -10px;
  }

  .product-stat-grid,
  .product-feature-grid,
  .product-related,
  .product-related-three,
  .article-card-grid,
  .insight-sidebar {
    grid-template-columns: 1fr;
  }

  .article-card {
    min-height: 0;
  }

  .product-stat {
    min-height: 0;
    border-right: 0;
    border-bottom: 1px solid rgba(174, 185, 249, 0.2);
  }

  .product-stat:last-child {
    border-bottom: 0;
  }

  .product-photo-stack {
    grid-template-columns: 1fr 1fr;
  }

  .product-photo-stack img,
  .product-photo-stack img:first-child {
    min-height: 210px;
  }

  .product-photo-stack img:first-child {
    grid-column: 1 / -1;
    grid-row: auto;
  }

  .product-simulator-grid {
    gap: 34px;
  }
}

@keyframes rise {
  from { opacity: 0; transform: translateY(7px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 1120px) {
  .main-nav {
    gap: 0;
  }

  .main-nav > a,
  .nav-mega-trigger > a {
    padding-inline: 8px;
  }

  .phone-link span {
    display: none;
  }

  .hero-grid {
    grid-template-columns: minmax(0, 0.85fr) minmax(500px, 1.15fr);
    gap: 36px;
  }

  .fact-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .fact-card {
    min-height: 245px;
  }
}

@media (max-width: 920px) {
  :root {
    --header-height: 70px;
  }

  .container {
    width: min(calc(100% - 36px), var(--container));
  }

  .menu-toggle {
    display: block;
    margin-left: auto;
  }

  .main-nav {
    position: fixed;
    inset: var(--header-height) 0 auto;
    display: none;
    align-items: stretch;
    flex-direction: column;
    gap: 2px;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    background: var(--white);
    padding: 18px;
    box-shadow: 0 18px 35px -28px rgba(3, 18, 82, 0.6);
    max-height: calc(100svh - var(--header-height));
    overflow-y: auto;
  }

  .main-nav.is-open {
    display: flex;
  }

  .main-nav > a,
  .nav-mega-trigger > a {
    padding: 13px 16px;
    font-size: 17px;
  }

  .nav-mega,
  .nav-mega-trigger {
    width: 100%;
  }

  .nav-mega {
    display: block;
  }

  .nav-mega-trigger > a {
    flex: 1;
  }

  .nav-mega-toggle {
    width: 46px;
    height: 46px;
    flex: none;
  }

  .nav-mega.is-open .nav-mega-toggle svg {
    transform: rotate(180deg);
  }

  .nav-mega-panel {
    position: static;
    display: none;
    width: 100%;
    grid-template-columns: 1fr;
    margin: 2px 0 10px;
    border-radius: 16px;
    padding: 10px;
    box-shadow: none;
    opacity: 1;
    pointer-events: auto;
    transform: none;
    visibility: visible;
  }

  .nav-mega.is-open .nav-mega-panel {
    display: grid;
  }

  .nav-mega-overview {
    display: none;
  }

  .nav-mega-link-grid {
    grid-template-columns: 1fr;
    gap: 7px;
  }

  .nav-mega-link-grid a {
    min-height: 0;
    grid-template-columns: 30px minmax(0, 1fr) 18px;
    border-radius: 12px;
    padding: 12px 14px;
  }

  .nav-mega-link-grid small {
    margin-top: 4px;
  }

  .nav-mega-spotlight {
    display: none;
  }

  .nav-actions .phone-link {
    display: none;
  }

  .nav-actions {
    margin-left: 0;
  }

  .hero {
    padding-top: 58px;
  }

  .hero-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 48px;
  }

  .hero-copy {
    max-width: 700px;
    padding-top: 0;
  }

  .hero h1 {
    max-width: 13ch;
  }

  .simulator {
    width: 100%;
  }

  .section-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 15px;
  }

  .solution-grid,
  .guide-grid {
    grid-template-columns: 1fr 1fr;
  }

  .guide-card-featured {
    grid-column: 1 / -1;
  }

  .process-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .adviser-card {
    grid-template-columns: 1fr;
  }

  .adviser-photo {
    min-height: 360px;
  }

  .faq-card {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .final-cta-card {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 640px) {
  body {
    padding-bottom: 72px;
  }

  .container {
    width: min(calc(100% - 28px), var(--container));
  }

  .brand img {
    height: 27px;
  }

  .nav-actions .button {
    display: none;
  }

  .hero {
    padding: 42px 0 55px;
  }

  .hero h1 {
    max-width: 14ch;
    font-size: clamp(2.55rem, 11.5vw, 3.65rem);
  }

  .hero-lede {
    font-size: 1rem;
  }

  .credential-row {
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
  }

  .simulator-head {
    padding: 20px 18px 14px;
  }

  .privacy-chip {
    display: none;
  }

  .simulator-tabs {
    gap: 5px;
    padding: 9px;
  }

  .simulator-tabs button {
    min-width: 0;
    padding: 9px 7px;
  }

  .simulator-tabs button strong {
    font-size: 12px;
  }

  .simulator-tabs button span {
    display: none;
  }

  .simulator-screen {
    padding: 22px 18px 24px;
  }

  .choice-grid-three {
    gap: 5px;
  }

  .choice-grid button {
    padding-inline: 5px;
    font-size: 12px;
  }

  .segmented button {
    font-size: 13px;
  }

  .field-label-row {
    align-items: flex-start;
    flex-direction: column;
    gap: 2px;
  }

  .field-label-row output {
    font-size: 17px;
  }

  .result-screen,
  .contact-screen,
  .confirmation-screen {
    min-height: 0;
  }

  .fact-section,
  .section {
    padding: 64px 0;
  }

  .fact-grid,
  .solution-grid,
  .guide-grid,
  .process-grid {
    grid-template-columns: 1fr;
  }

  .guide-card-featured {
    grid-column: auto;
  }

  .fact-card {
    min-height: 0;
  }

  .fee-strip {
    padding-top: 28px;
  }

  .fee-card {
    padding: 23px 22px;
  }

  .fee-card p:last-child {
    font-size: 16px;
  }

  .adviser-photo {
    min-height: 280px;
  }

  .adviser-copy {
    padding: 30px 22px;
  }

  .button-row {
    flex-direction: column;
  }

  .faq-card {
    padding: 26px 20px;
  }

  .faq-item button {
    font-size: 16px;
  }

  .final-cta {
    padding-bottom: 58px;
  }

  .final-cta-card {
    padding: 32px 24px;
  }

  .final-cta-card > div:last-child {
    width: 100%;
    min-width: 0;
  }

  .footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: 34px 24px;
  }

  .footer-brand {
    grid-column: 1 / -1;
  }

  .legal div {
    align-items: flex-start;
    flex-direction: column;
  }

  .mobile-actions {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 120;
    display: grid;
    grid-template-columns: 1fr 64px;
    gap: 8px;
    border-top: 1px solid rgba(3, 31, 148, 0.16);
    background: rgba(255, 255, 255, 0.97);
    padding: 9px 12px calc(9px + env(safe-area-inset-bottom));
    box-shadow: 0 -10px 30px -24px rgba(3, 18, 82, 0.6);
  }

  .mobile-actions button,
  .mobile-actions a {
    display: flex;
    min-height: 50px;
    align-items: center;
    justify-content: center;
    border-radius: 11px;
    text-decoration: none;
  }

  .mobile-actions button {
    background: var(--blue);
    color: var(--white);
    font-family: "League Spartan", sans-serif;
    font-size: 16px;
    font-weight: 700;
  }

  .mobile-actions a {
    background: var(--orange);
    color: var(--ink);
  }

  .mobile-actions svg {
    width: 23px;
    height: 23px;
  }

  .simulator-contact-open .mobile-actions {
    display: none;
  }

  .product-page .mobile-actions a:first-child {
    background: var(--blue);
    color: var(--white);
    font-family: "League Spartan", sans-serif;
    font-size: 16px;
    font-weight: 700;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* Expanded solution taxonomy overrides the legacy three-card layout. */
.hero-partner-proof { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; padding-left: 42px; }
.hero-partner-proof span { display: inline-flex; align-items: center; min-height: 34px; padding: 6px 13px; border: 1px solid rgba(3,31,148,.14); border-radius: 999px; background: rgba(255,255,255,.82); color: var(--blue); font: 700 12px/1 "League Spartan", sans-serif; box-shadow: 0 8px 24px rgba(3,31,148,.08); }
.brand img { transition: filter 280ms ease, transform 280ms cubic-bezier(.2,.8,.2,1); }
.brand:hover img { filter: drop-shadow(0 4px 8px rgba(236,108,45,.28)) saturate(1.22); transform: rotate(-2deg) scale(1.045); }
.solutions-priority { padding-top: 72px; }
.solution-grid.solution-grid-five { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
.solution-grid-five .image-card { min-width: 0; }
.solution-grid-five .product-object-card { aspect-ratio: 1; object-fit: contain; }
.phone-solution-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 18px 0; }
.phone-solution-list span { display: grid; place-items: center; gap: 3px; padding: 7px 4px; border: 1px solid rgba(3,31,148,.1); border-radius: 12px; background: #fff; color: var(--blue-deep); font-size: 9px; font-weight: 700; }
.phone-solution-list img { width: 43px; height: 43px; object-fit: contain; }
.legacy-stat-grid strong { font-size: clamp(3rem, 6vw, 5.6rem); }
.legacy-stat-grid strong i { display: inline-block; width: 22px; height: 22px; margin-left: 4px; border-top: 3px solid var(--orange); border-right: 3px solid var(--orange); transform: rotate(-45deg) translateY(-4px); animation: metric-arrow 1.8s ease-in-out infinite; }
.legacy-stat-grid strong i::after { content: ""; display: block; width: 23px; height: 3px; margin: 7px 0 0 -6px; background: var(--orange); transform: rotate(-45deg); transform-origin: right center; }
.partner-explainer { max-width: 38rem; color: var(--muted); }
.comparison-chip { display: inline-flex; align-items: center; gap: 5px; margin-top: 12px; padding: 8px 13px; border-radius: 999px; background: rgba(3,31,148,.08); color: var(--blue); font-size: 12px; font-weight: 700; }
.comparison-chip i { width: 5px; height: 5px; border-radius: 50%; background: var(--orange); animation: compare-dot 1.2s ease-in-out infinite; }
.comparison-chip i:nth-child(2) { animation-delay: .16s; }.comparison-chip i:nth-child(3) { animation-delay: .32s; }
.partner-marquee { overflow: hidden !important; mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.partner-marquee .partner-logos { display: flex !important; width: max-content !important; grid-template: none !important; gap: 12px; animation: partner-loop 34s linear infinite; }
.partner-marquee:hover .partner-logos, .press-proof:hover .press-grid { animation-play-state: paused; }
.partner-marquee .partner-logos > span { display: flex; width: 150px !important; flex: 0 0 150px; min-height: 104px; padding: 12px; }
.partner-marquee .partner-logos > span strong { display: block !important; }
.partner-marquee .partner-logos > span:nth-child(7n+4) { border-color: rgba(236,108,45,.45); box-shadow: 0 12px 30px rgba(236,108,45,.14); }
.review-stars svg { width: 120px; height: 24px; fill: #f5b82e; }
.press-proof { overflow: hidden; }
.press-grid { display: flex !important; width: max-content; grid-template-columns: none !important; gap: 12px; animation: press-loop 28s linear infinite; }
.press-grid > a { width: 170px; flex: 0 0 170px; }
.adviser-photo img, .guide-card > img { object-position: center 22%; filter: saturate(.92) contrast(1.02); box-shadow: 0 26px 60px -22px rgba(3,31,148,.45); }
.guide-card > img { object-fit: cover; }
@keyframes partner-loop { to { transform: translateX(calc(-50% - 6px)); } }
@keyframes press-loop { to { transform: translateX(calc(-50% - 6px)); } }
@keyframes compare-dot { 0%,100% { opacity:.25; transform:translateY(0) } 50% { opacity:1; transform:translateY(-2px) } }
@keyframes metric-arrow { 0%,100% { opacity:.55; transform:rotate(-45deg) translateY(-4px) } 50% { opacity:1; transform:rotate(-45deg) translate(3px,-7px) } }
@media (max-width: 1100px) { .solution-grid.solution-grid-five { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 700px) { .solution-grid.solution-grid-five { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; }.solution-grid.solution-grid-five .image-card { flex:0 0 82%; scroll-snap-align:start; }.hero-partner-proof { padding-left:0; }.legacy-stat-grid strong { font-size:3.25rem; } }
@media (prefers-reduced-motion: reduce) { .partner-marquee .partner-logos, .press-grid, .comparison-chip i, .legacy-stat-grid strong i { animation:none !important; } }
.solution-grid.solution-grid-four {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

@media (max-width: 1100px) {
  .solution-grid.solution-grid-four {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  .solution-grid.solution-grid-four {
    grid-template-columns: repeat(4, minmax(78vw, 78vw));
    margin-right: -14px;
    overflow-x: auto;
    padding: 2px 14px 18px 0;
    scroll-padding-inline: 0 14px;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }

  .solution-grid.solution-grid-four::-webkit-scrollbar {
    display: none;
  }

  .solution-grid.solution-grid-four .image-card {
    scroll-snap-align: start;
  }
}

/* Logo lockups stay legible without forcing horizontal overflow on phones. */
@media (max-width: 680px) {
  .regulatory-marks {
    grid-template-columns: 1fr;
  }

  .regulatory-address {
    grid-column: auto;
  }

  .credential-row {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    gap: 7px 10px;
    align-items: center;
  }

  .credential-row span {
    grid-column: 1 / -1;
  }

  .regulatory-mark,
  .regulatory-address {
    min-height: 74px;
    padding: 12px 13px;
  }

  .regulatory-logo {
    width: 46px;
    height: 46px;
    border-width: 5px;
  }

  .partner-logos > a,
  .partner-logos > span {
    min-height: 102px;
    padding: 12px 8px;
  }

  .press-grid {
    gap: 8px;
  }

  .press-grid a {
    min-height: 100px;
    flex-direction: column;
    justify-content: center;
    gap: 8px;
    padding: 12px 8px;
    text-align: center;
  }

  .press-grid img {
    width: 36px;
    height: 36px;
  }

  .google-review-link {
    width: 100%;
    justify-content: center;
  }

  .testimonial-card footer .review-source {
    flex-wrap: wrap;
  }

  .product-object-stage img,
  .product-hero-media.product-object-stage img {
    height: min(82vw, 360px);
  }

  .product-object-stage-secondary {
    min-height: 350px;
  }

  .product-object-stage-secondary img {
    height: min(78vw, 330px);
  }
}

/* Final proof-rail overrides. */
@media (min-width: 901px) {
  .partner-marquee { overflow: visible; }
  .partner-marquee .partner-logos { display: grid; width: auto; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; padding: 0; }
  .partner-marquee .partner-logos > span { width: auto; min-height: 92px; padding: 10px; }
  .press-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; }
  .press-grid a { min-height: 92px; flex-direction: row; justify-content: center; padding: 12px; }
}

.partner-marquee .partner-logos > span strong,
.press-grid a span { display: none; }
.partner-marquee .partner-logo { width: 54px; height: 54px; margin: 0; filter: grayscale(1); opacity: .72; }
.press-grid img { width: 58px; height: 58px; border-radius: 0; filter: grayscale(1); opacity: .66; }

@media (max-width: 900px) {
  .partner-marquee { overflow-x: auto; }
  .partner-marquee .partner-logos { display: grid; width: max-content; grid-template-columns: repeat(6, 104px); grid-template-rows: repeat(2, 92px); grid-auto-flow: column; gap: 10px; }
  .partner-marquee .partner-logos > span { width: auto; min-height: 92px; padding: 10px; }
  .press-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .press-grid a { min-height: 82px; flex-direction: row; }
}

/* Review refinements must remain last. */
.hero-partner-proof span{min-width:106px;justify-content:center;padding:7px 14px}.hero-partner-proof img{display:block;width:auto;max-width:92px;height:25px;object-fit:contain}
.legacy-stat-grid strong{display:flex;align-items:flex-end;justify-content:center;gap:12px;font-size:clamp(2.7rem,4.5vw,4.35rem)}.metric-sparkline{width:68px;height:31px;margin-bottom:.18em;overflow:visible}
.comparison-result{display:inline-flex;align-items:center;gap:8px;margin-top:15px;padding:9px 14px;border:1px solid rgba(236,108,45,.32);border-radius:999px;background:rgba(236,108,45,.09);color:var(--blue);font-size:12px;font-weight:800;white-space:nowrap}.comparison-result i{width:9px;height:9px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 5px rgba(236,108,45,.12)}
.partner-marquee .partner-logos>span strong{display:block!important;position:absolute;left:50%;bottom:-28px;z-index:3;width:max-content;max-width:170px;padding:5px 8px;border-radius:7px;background:var(--ink);color:#fff;font-size:10px;line-height:1.1;opacity:0;pointer-events:none;transform:translate(-50%,5px);transition:opacity .18s ease,transform .18s ease}.partner-marquee .partner-logos>span:hover strong{opacity:1;transform:translate(-50%,0)}.partner-marquee .partner-logos>span.is-best{z-index:2;border-color:rgba(236,108,45,.75)!important;background:#fff!important;box-shadow:0 16px 36px rgba(236,108,45,.2)!important;transform:scale(1.12)}.partner-marquee .partner-logos>span.is-best .partner-logo{filter:grayscale(0);opacity:1;transform:scale(1.1)}
.press-proof{overflow:hidden}.press-grid a{position:relative}.press-grid a span{display:block!important;position:absolute;left:50%;bottom:6px;width:max-content;max-width:150px;padding:4px 7px;border-radius:6px;background:var(--ink);color:#fff;font-size:10px;line-height:1.1;opacity:0;pointer-events:none;transform:translate(-50%,5px);transition:opacity .18s ease,transform .18s ease}.press-grid a:hover span,.press-grid a:focus-visible span{opacity:1;transform:translate(-50%,0)}
.adviser-card{min-height:430px}.adviser-photo{position:relative;height:430px;min-height:0;overflow:hidden}.adviser-photo img{width:100%;height:100%;object-fit:cover;object-position:center 23%;filter:saturate(.78) contrast(1.08) brightness(1.025) sepia(.035)}.guide-card>img{height:220px;object-fit:cover;object-position:center 22%;filter:saturate(.78) contrast(1.08) brightness(1.025) sepia(.035)}
.brand{position:relative}.brand:hover img{animation:brand-bounce .62s cubic-bezier(.2,.8,.2,1);filter:drop-shadow(0 5px 9px rgba(236,108,45,.28)) saturate(1.2)}.brand:hover::after{animation:brand-sparkle .72s ease-out}
@media (min-width:901px){.partner-marquee{overflow:hidden;padding:24px 6px}.partner-marquee .partner-logos{display:flex!important;width:max-content!important;grid-template:none!important;gap:14px!important;padding:0!important;animation:partner-loop 38s linear infinite}.partner-marquee .partner-logos>span{position:relative;display:flex!important;width:128px!important;flex:0 0 128px!important;min-height:86px!important;padding:12px!important;border:1px solid transparent;background:transparent;box-shadow:none;transition:transform .45s cubic-bezier(.2,.8,.2,1),border-color .3s ease,background .3s ease,box-shadow .3s ease}.press-grid{display:flex!important;width:max-content!important;grid-template:none!important;gap:12px!important;animation:press-loop 30s linear infinite}.press-grid>a{width:138px!important;flex:0 0 138px!important;min-height:88px}}
@media (max-width:900px){.adviser-card,.adviser-photo{height:auto;min-height:0}.adviser-photo{aspect-ratio:4/3}.legacy-stat-grid strong{font-size:3rem}.metric-sparkline{width:58px}}

/* Latest review: distinct evidence graphics and a full-width partner rail. */
.simulator-note { font-size: 10px; line-height: 1.35; opacity: .66; }
.metric-people { width: 68px; height: 34px; margin-bottom: .08em; overflow: visible; }
.metric-people g { fill: rgba(3,31,148,.08); stroke: var(--blue); stroke-width: 1.8; stroke-linecap: round; animation: people-rise 2.6s ease-in-out infinite; transform-origin: center bottom; }
.metric-people g:nth-child(2) { animation-delay: .18s; }.metric-people g:nth-child(3) { animation-delay: .36s; }
@keyframes people-rise { 0%,100% { transform: translateY(2px); opacity: .58; } 45% { transform: translateY(-2px); opacity: 1; } }
.metric-ring { width: 46px; height: 46px; margin-bottom: -.05em; overflow: visible; transform: rotate(-90deg); }
.metric-ring circle { fill: none; stroke-width: 5; }
.metric-ring .ring-track { stroke: rgba(3,31,148,.1); }
.metric-ring .ring-value { stroke: var(--orange); stroke-linecap: round; stroke-dasharray: 100.5; stroke-dashoffset: 5; animation: ring-fill 2.3s ease-in-out infinite alternate; }
.metric-ring path { fill: none; stroke: var(--blue); stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; transform: rotate(90deg); transform-origin: center; }
@keyframes ring-fill { from { stroke-dashoffset: 100.5; opacity: .35; } to { stroke-dashoffset: 5; opacity: 1; } }
.partner-strip-grid { display: block; }
.partner-strip-grid > div:first-child { max-width: 760px; }
.partner-strip-grid .partner-explainer { max-width: 670px; }
.partner-marquee { width: 100%; margin-top: 24px; padding: 8px 0 24px !important; }
.partner-marquee .partner-logos > span,
.partner-marquee .partner-logos > span.is-best { min-height: 72px !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; transform: none; }
.partner-marquee .partner-logos > span.is-best .partner-logo { filter: grayscale(0); opacity: 1; transform: scale(1.16); filter: grayscale(0) drop-shadow(0 8px 12px rgba(236,108,45,.24)); }
.partner-marquee .partner-logo { width: 62px; height: 62px; }
.comparison-result { margin-top: 12px; }
.adviser-photo img,.guide-card>img { filter: none; }
@media (prefers-reduced-motion: reduce) { .metric-people g,.metric-ring .ring-value { animation: none !important; } }

/* Official transparent regulatory marks. */
.hero-partner-proof { gap: 20px; align-items: center; }
.hero-partner-proof span {
  min-width: 128px;
  min-height: 46px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.hero-partner-proof img { width: auto; max-width: 124px; height: 38px; object-fit: contain; }
.hero-partner-proof .cncef-mark { width: 132px; max-width: 132px; height: 40px; }

/* Regulatory marks should read as quiet proof, not headline content. */
.hero-partner-proof { gap: 12px; }
.hero-partner-proof { padding-left: 0; }
.hero-partner-proof span { min-width: auto; min-height: 26px; }
.hero-partner-proof img { max-width: 82px; height: 22px; }
.hero-partner-proof .cncef-mark { width: 82px; max-width: 82px; height: 25px; }

/* Neutral comparison motion: no insurer is presented as a winner. */
.partner-marquee { position: relative; }
.partner-marquee .partner-logos > span.is-best,
.partner-marquee .partner-logos > span.is-best .partner-logo { border: 0 !important; background: transparent !important; box-shadow: none !important; filter: grayscale(1); opacity: .72; transform: none; }
.comparison-cursor {
  position: absolute;
  left: 4%;
  top: 44px;
  z-index: 6;
  display: flex;
  align-items: center;
  gap: 5px;
  pointer-events: none;
  animation: compare-cursor-scan 9s cubic-bezier(.55,.05,.25,1) infinite;
}
.comparison-cursor svg { width: 23px; height: 27px; overflow: visible; filter: drop-shadow(0 5px 8px rgba(3,31,148,.22)); }
.comparison-cursor path { fill: var(--orange); stroke: white; stroke-width: 1.5; stroke-linejoin: round; }
.comparison-cursor small { padding: 5px 8px; border: 1px solid rgba(3,31,148,.12); border-radius: 999px; background: rgba(255,255,255,.94); color: var(--blue); font-size: 9px; font-weight: 800; white-space: nowrap; box-shadow: 0 8px 20px rgba(3,31,148,.1); opacity: 0; transform: translateY(4px); animation: compare-label 9s ease-in-out infinite; }
@keyframes compare-cursor-scan { 0%,8% { left:4%; transform:translateY(4px) rotate(-4deg); opacity:0; } 14% { opacity:1; } 31% { left:29%; transform:translateY(-3px) rotate(1deg); } 50% { left:50%; transform:translateY(4px) rotate(-2deg); } 69% { left:72%; transform:translateY(-2px) rotate(2deg); } 86% { left:90%; opacity:1; } 94%,100% { left:92%; opacity:0; } }
@keyframes compare-label { 0%,42%,100% { opacity:0; transform:translateY(4px); } 48%,68% { opacity:1; transform:translateY(0); } 76% { opacity:0; } }
@media (max-width:700px) { .comparison-cursor { top:38px; } .comparison-cursor small { display:none; } @keyframes compare-cursor-scan { 0%,8%{left:3%;opacity:0} 15%{opacity:1} 88%{left:86%;opacity:1} 96%,100%{left:88%;opacity:0} } }
@media (prefers-reduced-motion: reduce) { .comparison-cursor { display:none; } }

/* September review: Patrimy-inspired simulator action and richer trust footer. */
.simulator-glass-action {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .72);
  background: linear-gradient(135deg, rgba(255, 255, 255, .8), rgba(218, 224, 255, .54));
  color: var(--blue);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9), 0 14px 30px -18px rgba(3, 31, 148, .52);
  backdrop-filter: blur(16px) saturate(1.35);
  -webkit-backdrop-filter: blur(16px) saturate(1.35);
}
.simulator-glass-action::after {
  content: "";
  position: absolute;
  inset: 1px auto 1px 1px;
  width: 42%;
  border-radius: inherit;
  background: linear-gradient(110deg, rgba(255,255,255,.45), rgba(255,255,255,0));
  pointer-events: none;
}
.simulator-glass-action:hover { background: linear-gradient(135deg, rgba(255,255,255,.94), rgba(198,208,255,.7)); color: var(--blue-deep); }
.footer-brand .footer-coverage { margin-top: -8px; color: #fff; font-weight: 650; }
.footer-trust { display: grid; gap: 8px; margin: 18px 0; }
.footer-trust span,.footer-trust a { display: flex; align-items: center; gap: 8px; margin: 0; color: #dfe4fd; font-size: 12px; line-height: 1.35; }
.footer-trust img { width: auto; max-width: 64px; height: 20px; margin: 0; filter: brightness(0) invert(1); object-fit: contain; }
.footer-trust a img { width: 20px; }
.footer-social { display: flex; gap: 10px; }
.footer-social a { display: grid; place-items: center; width: 36px; height: 36px; margin: 0; border: 1px solid rgba(255,255,255,.24); border-radius: 50%; color: #fff; }
.footer-social a:hover { border-color: var(--orange); color: var(--orange); text-decoration: none; }
.footer-social svg { width: 18px; height: 18px; fill: currentColor; }
.footer-social rect,.footer-social circle { fill: none; stroke: currentColor; stroke-width: 1.8; }
.footer-social .social-dot { fill: currentColor; stroke: none; }

/* Browser review v2: Patrimy-inspired controls, people and editorial visuals. */
.hero-partner-proof { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; margin-top:26px; }
.hero-partner-proof span { display:flex; min-width:0; min-height:72px; flex-direction:column; align-items:center; justify-content:center; gap:7px; padding:10px 8px; border:1px solid rgba(3,31,148,.11); border-radius:16px; background:rgba(255,255,255,.68); box-shadow:0 12px 28px -22px rgba(3,31,148,.5); backdrop-filter:blur(12px); }
.hero-partner-proof img,.hero-partner-proof .cncef-mark { width:auto; max-width:92px; height:28px; }
.hero-partner-proof small { color:var(--blue); font-size:9px; font-weight:750; line-height:1.1; text-align:center; }
.amount-entry { display:inline-flex; align-items:center; gap:4px; min-width:116px; padding:6px 10px; border:1px solid rgba(3,31,148,.16); border-radius:12px; background:rgba(255,255,255,.78); box-shadow:inset 0 1px 0 #fff,0 8px 22px -18px rgba(3,31,148,.65); }
.amount-entry input { width:82px; border:0; outline:0; background:transparent; color:var(--blue); font:800 17px/1 "League Spartan",sans-serif; text-align:right; appearance:textfield; }
.amount-entry input::-webkit-inner-spin-button { appearance:none; }
.amount-entry span { color:var(--blue); font-weight:800; }
.patrimy-range .range-limits,.mode-panel[data-panel="B"] .range-field .range-limits { display:flex; justify-content:space-between; margin-top:7px; color:var(--muted); font-size:9px; }
.choice-grid-three button { border:1px solid rgba(255,255,255,.72); background:linear-gradient(145deg,rgba(255,255,255,.8),rgba(218,224,255,.46)); box-shadow:inset 0 1px 0 rgba(255,255,255,.95),0 12px 28px -22px rgba(3,31,148,.7); backdrop-filter:blur(14px); }
.choice-grid-three button.is-active { border-color:rgba(255,255,255,.74); background:linear-gradient(145deg,rgba(3,31,148,.92),rgba(45,65,170,.78)); box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 14px 30px -18px rgba(3,31,148,.88); }
.legacy-stat-grid-four { grid-template-columns:repeat(4,minmax(0,1fr)); }
.tax-saving-card { background:linear-gradient(145deg,rgba(236,108,45,.13),rgba(255,255,255,.92)); border-color:rgba(236,108,45,.28)!important; }
.tax-saving-card strong { color:var(--orange)!important; font-size:clamp(2.1rem,3.5vw,3.5rem)!important; line-height:.9; }
.staff-vignettes { display:flex; gap:14px; margin-top:28px; overflow:hidden; }
.staff-vignettes figure { position:relative; flex:1; min-width:140px; margin:0; overflow:hidden; border-radius:22px; aspect-ratio:.82; background:var(--blue); box-shadow:0 18px 34px -24px rgba(3,31,148,.7); }
.staff-vignettes img { width:100%; height:100%; object-fit:cover; object-position:center 22%; }
.staff-vignettes figcaption,.adviser-slide figcaption { position:absolute; inset:auto 10px 10px; padding:9px 11px; border:1px solid rgba(255,255,255,.32); border-radius:13px; background:rgba(3,18,72,.66); color:#fff; backdrop-filter:blur(12px); }
.staff-vignettes figcaption strong,.staff-vignettes figcaption span,.adviser-slide figcaption strong,.adviser-slide figcaption span { display:block; }
.staff-vignettes figcaption strong,.adviser-slide figcaption strong { font-size:12px; }
.staff-vignettes figcaption span,.adviser-slide figcaption span { margin-top:2px; color:#dfe4fd; font-size:9px; }
.adviser-carousel { position:relative; }
.adviser-slide { position:absolute; inset:0; margin:0; opacity:0; transform:scale(1.025); transition:opacity .7s ease,transform 1.1s ease; }
.adviser-slide.is-active { opacity:1; transform:scale(1); }
.adviser-slide img { width:100%; height:100%; object-fit:cover; object-position:center 23%; }
.staff-cta { gap:10px; padding-left:10px; }
.cta-faces { display:flex; padding-left:8px; }
.cta-faces img { width:30px; height:30px; margin-left:-8px; border:2px solid rgba(255,255,255,.9); border-radius:50%; object-fit:cover; object-position:center top; }
.guide-visual { position:relative; display:grid; place-items:center; height:220px; overflow:hidden; background:radial-gradient(circle at 26% 20%,rgba(255,255,255,.9),transparent 38%),linear-gradient(145deg,#eef0ff,#ffdccc); }
.guide-visual img { position:relative; z-index:2; width:46%; max-height:76%; object-fit:contain; filter:drop-shadow(0 20px 24px rgba(3,31,148,.18)); }
.guide-visual span { position:absolute; left:18px; top:17px; z-index:3; padding:7px 10px; border:1px solid rgba(255,255,255,.72); border-radius:999px; background:rgba(255,255,255,.58); color:var(--blue); font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; backdrop-filter:blur(10px); }
.guide-visual svg { position:absolute; right:12px; bottom:12px; width:44%; }
.guide-visual path { fill:none; stroke:var(--orange); stroke-width:4; stroke-linecap:round; stroke-linejoin:round; }
.guide-visual-health { background:radial-gradient(circle at 72% 22%,rgba(255,255,255,.9),transparent 38%),linear-gradient(145deg,#e9f4ff,#d9e1ff); }
.guide-visual-library { background:radial-gradient(circle at 22% 18%,rgba(255,255,255,.9),transparent 38%),linear-gradient(145deg,#fff1dc,#eadfff); }
@media (max-width:900px){.hero-partner-proof{grid-template-columns:repeat(2,minmax(0,1fr))}.legacy-stat-grid-four{grid-template-columns:repeat(2,minmax(0,1fr))}.staff-vignettes{overflow-x:auto}.staff-vignettes figure{flex:0 0 58%}}
@media (max-width:540px){.legacy-stat-grid-four{grid-template-columns:1fr}.field-label-row{align-items:center}.amount-entry{min-width:104px}.amount-entry input{width:70px}.guide-visual{height:190px}}

/* Browser review v3: stronger glass controls, readable advisers and aligned proof cards. */
.hero-partner-proof .acpr-mark { width:46px; max-width:46px; height:46px; }
.simulator input[type="range"] {
  height:12px;
  border:1px solid rgba(255,255,255,.82);
  border-radius:999px;
  background:linear-gradient(90deg,rgba(3,31,148,.13),rgba(255,255,255,.62),rgba(236,108,45,.18));
  box-shadow:inset 0 1px 2px rgba(3,31,148,.12),0 8px 24px -17px rgba(236,108,45,.9);
  backdrop-filter:blur(13px) saturate(1.3);
  -webkit-backdrop-filter:blur(13px) saturate(1.3);
}
.simulator input[type="range"]::-webkit-slider-thumb {
  width:50px;
  height:28px;
  border:2px solid rgba(255,255,255,.95);
  border-radius:50%;
  appearance:none;
  background:linear-gradient(145deg,rgba(3,31,148,.94),rgba(75,94,200,.78));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 7px 16px rgba(3,31,148,.28),0 0 0 4px rgba(236,108,45,.13);
}
.simulator input[type="range"]::-moz-range-thumb {
  width:23px;
  height:23px;
  border:2px solid rgba(255,255,255,.95);
  border-radius:50%;
  background:linear-gradient(145deg,rgba(3,31,148,.94),rgba(75,94,200,.78));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 7px 16px rgba(3,31,148,.28),0 0 0 4px rgba(236,108,45,.13);
}
.simulator .amount-entry,.simulator .choice-grid button,.simulator .segmented button,.simulator .simulator-glass-action,.simulator .text-button {
  border:1px solid rgba(255,255,255,.82);
  background:linear-gradient(145deg,rgba(255,255,255,.76),rgba(210,219,255,.43));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.96),0 13px 30px -20px rgba(3,31,148,.72),0 8px 24px -21px rgba(236,108,45,.95);
  backdrop-filter:blur(16px) saturate(1.35);
  -webkit-backdrop-filter:blur(16px) saturate(1.35);
}
.simulator .choice-grid button.is-active,.simulator .segmented button.is-active {
  border-color:rgba(255,255,255,.88);
  background:linear-gradient(145deg,rgba(3,31,148,.93),rgba(55,75,184,.72));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.42),0 15px 32px -18px rgba(3,31,148,.9),0 9px 24px -18px rgba(236,108,45,.78);
}
.staff-vignettes figcaption,.adviser-slide figcaption {
  border:1px solid rgba(3,31,148,.12);
  background:rgba(255,255,255,.94);
  color:var(--blue);
  box-shadow:0 12px 28px -18px rgba(3,31,148,.65);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
.staff-vignettes figcaption strong,.adviser-slide figcaption strong { font-size:14px; line-height:1.1; }
.staff-vignettes figcaption span,.adviser-slide figcaption span { margin-top:4px; color:#343b61; font-size:10px; line-height:1.2; }
.cta-faces { padding-left:0; }
.cta-faces img { width:34px; height:34px; margin-left:0; }
.tax-saving-card { background:var(--white); border-color:var(--line)!important; }
.tax-saving-card strong { color:var(--blue)!important; font-size:clamp(2.7rem,4.5vw,4.35rem)!important; line-height:inherit; }

/* Browser review v5: aligned trust lockups and a physiotherapy-specific clay visual. */
.hero-partner-proof > span {
  min-height:92px;
  justify-content:flex-start;
  gap:7px;
  padding:10px 8px 9px;
}
.hero-partner-proof > span > small {
  display:flex;
  min-height:22px;
  align-items:center;
  justify-content:center;
  order:0;
  font-size:8px;
  line-height:1.15;
}

/* Browser review v24: high-contrast glass controls on the navy result panel. */
.result-screen .text-button.light {
  border-color:rgba(255,255,255,.72);
  background:
    radial-gradient(90% 120% at 18% 0,rgba(255,255,255,.34),transparent 58%),
    linear-gradient(135deg,rgba(255,255,255,.2),rgba(112,137,255,.16));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55),0 7px 18px -10px rgba(0,0,0,.75);
  color:#fff;
  text-shadow:0 1px 2px rgba(0,18,92,.7);
}
.result-screen .simulator-glass-action {
  border-color:rgba(255,255,255,.82);
  background:
    radial-gradient(90% 140% at 16% -20%,rgba(255,255,255,.62),transparent 56%),
    linear-gradient(112deg,rgba(255,255,255,.3),rgba(75,104,227,.34) 58%,rgba(236,108,45,.25));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.75),0 12px 25px -14px rgba(0,0,0,.9);
  color:#fff;
  text-shadow:0 1px 2px rgba(0,18,92,.72);
}
.result-screen .text-button.light:hover,
.result-screen .simulator-glass-action:hover {
  border-color:#fff;
  filter:brightness(1.1);
}

/* Browser review v22: one generated clay icon system across all metrics. */
.legacy-stat-grid-four > article > strong {
  display:flex;
  width:100%;
  min-height:79px;
  align-items:center;
  justify-content:center;
  gap:11px;
  white-space:nowrap;
}
.metric-clay {
  width:62px;
  height:62px;
  flex:0 0 62px;
  object-fit:contain;
  filter:drop-shadow(0 10px 9px rgba(3,31,148,.18));
}
@media (max-width:700px){.metric-clay{width:50px;height:50px;flex-basis:50px}}

/* Browser review v23: larger, edge-anchored niche illustration pair. */
.guide-visual-kine .guide-product-icon {
  left:1%;
  width:42%;
  transform:translateY(-48%) rotate(-5deg);
}
.guide-knee-clay {
  right:-4%;
  bottom:-13%;
  width:36%;
  height:78%;
}
@media (max-width:700px){.guide-visual-kine .guide-product-icon{left:0;width:42%}.guide-knee-clay{right:-4%;bottom:-11%;width:37%;height:76%}}
.hero-partner-proof .proof-logo {
  display:flex;
  width:100%;
  min-width:0;
  min-height:0;
  height:46px;
  flex:0 0 46px;
  align-items:center;
  justify-content:center;
  order:1;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
.hero-partner-proof .proof-logo img,.hero-partner-proof .proof-logo .cncef-mark {
  width:auto;
  max-width:94px;
  height:auto;
  max-height:40px;
  object-fit:contain;
}
.hero-partner-proof .proof-logo .acpr-mark { width:42px; height:42px; }
.guide-visual-kine { background:radial-gradient(circle at 72% 22%,rgba(255,255,255,.94),transparent 36%),linear-gradient(145deg,#e8ebff,#ffd8ca); }
.clay-kine { position:relative; width:190px; height:178px; transform:rotate(-6deg); }
.clay-kine i { position:absolute; display:block; }
.clay-bone {
  width:60px;
  height:91px;
  border:1px solid rgba(255,255,255,.72);
  border-radius:28px 28px 20px 20px;
  background:linear-gradient(145deg,#526bd4 0%,#1538a8 58%,#061b77 100%);
  box-shadow:inset 8px 8px 13px rgba(255,255,255,.24),inset -8px -10px 15px rgba(0,9,75,.3),0 20px 27px -17px rgba(3,31,148,.75);
}
.clay-bone::before,.clay-bone::after { content:""; position:absolute; bottom:-10px; width:28px; height:30px; border-radius:50%; background:inherit; box-shadow:inherit; }
.clay-bone::before { left:-1px; }.clay-bone::after { right:-1px; }
.clay-bone-upper { left:48px; top:2px; }
.clay-bone-lower { right:36px; bottom:0; transform:rotate(32deg); transform-origin:50% 0; }
.clay-bone-lower::before,.clay-bone-lower::after { top:-8px; bottom:auto; }
.clay-joint {
  left:78px;
  top:78px;
  z-index:3;
  width:58px;
  height:58px;
  border:2px solid rgba(255,255,255,.78);
  border-radius:50%;
  background:radial-gradient(circle at 32% 27%,#ffb07b 0 12%,#f36a31 36%,#c9471e 72%);
  box-shadow:inset 7px 7px 12px rgba(255,255,255,.3),inset -8px -8px 14px rgba(128,32,4,.24),0 17px 24px -14px rgba(236,108,45,.9);
}
.clay-therapy-cross {
  right:8px;
  top:4px;
  z-index:4;
  width:45px;
  height:45px;
  border:1px solid rgba(255,255,255,.74);
  border-radius:15px;
  background:linear-gradient(145deg,#ff965d,#e85e2b);
  color:#fff;
  font:700 37px/42px Arial,sans-serif;
  text-align:center;
  box-shadow:inset 5px 5px 10px rgba(255,255,255,.3),0 14px 22px -14px rgba(236,108,45,.95);
}
.clay-motion { width:44px; height:20px; border-top:4px solid rgba(236,108,45,.85); border-radius:50%; }
.clay-motion-one { left:3px; top:74px; transform:rotate(22deg); }
.clay-motion-two { right:0; bottom:24px; transform:rotate(-35deg); }
@media (max-width:540px){.hero-partner-proof > span{min-height:88px}.clay-kine{transform:scale(.88) rotate(-6deg)}}

/* Browser review v6: every editorial visual pairs a product icon with one article concept. */
.guide-visual .guide-product-icon {
  position:absolute;
  left:17%;
  top:50%;
  z-index:2;
  width:39%;
  height:68%;
  max-height:none;
  object-fit:contain;
  transform:translateY(-48%) rotate(-4deg);
  filter:drop-shadow(0 22px 22px rgba(3,31,148,.2));
}
.clay-concept {
  position:absolute;
  right:11%;
  bottom:17%;
  z-index:4;
  width:96px;
  height:96px;
  border:1px solid rgba(255,255,255,.78);
  border-radius:30px;
  background:linear-gradient(145deg,rgba(255,255,255,.9),rgba(219,225,255,.78));
  box-shadow:inset 7px 7px 14px rgba(255,255,255,.82),inset -8px -8px 16px rgba(3,31,148,.12),0 21px 27px -18px rgba(3,31,148,.65);
  transform:rotate(7deg);
}
.clay-concept-kine .mini-bone { position:absolute; width:21px; height:47px; border-radius:13px; background:linear-gradient(145deg,#526bd4,#09268e); box-shadow:inset 4px 4px 6px rgba(255,255,255,.26),0 9px 12px -8px rgba(3,31,148,.8); }
.clay-concept-kine .mini-bone-upper { left:30px; top:9px; transform:rotate(-18deg); }
.clay-concept-kine .mini-bone-lower { right:27px; bottom:7px; transform:rotate(34deg); }
.clay-concept-kine .mini-joint { position:absolute; left:38px; top:38px; z-index:2; width:29px; height:29px; border:2px solid rgba(255,255,255,.82); border-radius:50%; background:radial-gradient(circle at 32% 26%,#ffb082,#ed632d 60%,#bd3f16); box-shadow:0 8px 13px -8px rgba(236,108,45,.9); }
.clay-concept-kine b { position:absolute; right:7px; top:7px; display:grid; place-items:center; width:25px; height:25px; border-radius:9px; background:var(--orange); color:#fff; font:800 21px/1 Arial,sans-serif; box-shadow:inset 3px 3px 6px rgba(255,255,255,.25),0 7px 12px -8px rgba(236,108,45,.95); }
.clay-concept-planning { border-radius:50%; background:linear-gradient(145deg,#fff,#dce3ff); }
.clay-concept-planning .planning-ring { position:absolute; inset:13px; border:9px solid var(--blue); border-radius:50%; box-shadow:inset 3px 3px 7px rgba(3,31,148,.18),0 8px 15px -11px rgba(3,31,148,.7); }
.clay-concept-planning .planning-hand { position:absolute; left:47px; top:46px; z-index:2; height:4px; border-radius:4px; background:var(--orange); transform-origin:0 50%; }
.clay-concept-planning .planning-hour { width:22px; transform:rotate(-90deg); }
.clay-concept-planning .planning-minute { width:28px; transform:rotate(24deg); }
.clay-concept-planning b { position:absolute; right:-7px; bottom:5px; z-index:3; display:grid; place-items:center; width:37px; height:31px; border:2px solid #fff; border-radius:11px; background:var(--orange); color:#fff; font:800 13px/1 "League Spartan",sans-serif; box-shadow:0 10px 15px -9px rgba(236,108,45,.9); }
.clay-concept-library { background:linear-gradient(145deg,#fff7ef,#e2e6ff); }
.clay-concept-library i { position:absolute; left:19px; width:58px; height:18px; border-radius:7px 10px 10px 7px; background:linear-gradient(145deg,#4963cf,#0a278d); box-shadow:inset 4px 4px 6px rgba(255,255,255,.22),0 8px 12px -9px rgba(3,31,148,.72); }
.clay-concept-library i:nth-child(1) { top:18px; transform:rotate(-4deg); }
.clay-concept-library i:nth-child(2) { top:40px; left:15px; background:linear-gradient(145deg,#ff9a67,#e75d29); transform:rotate(3deg); }
.clay-concept-library i:nth-child(3) { top:63px; transform:rotate(-2deg); }
.clay-concept-library b { position:absolute; right:-8px; bottom:-8px; display:grid; place-items:center; width:37px; height:37px; border:2px solid #fff; border-radius:50%; background:var(--orange); color:#fff; font:800 25px/1 Arial,sans-serif; box-shadow:0 10px 16px -8px rgba(236,108,45,.85); }
@media (max-width:700px){.guide-visual .guide-product-icon{left:15%;width:42%}.clay-concept{right:9%;transform:scale(.86) rotate(7deg)}}

/* Browser review v7: literal niche, website and full-library illustrations. */
.clay-concept-kine { right:8%; bottom:12%; width:116px; height:124px; border-radius:36px; transform:rotate(4deg); }
.clay-concept-kine .kine-thigh,.clay-concept-kine .kine-shin,.clay-concept-kine .kine-foot { position:absolute; display:block; background:linear-gradient(145deg,#5068d0,#09268b); box-shadow:inset 5px 5px 8px rgba(255,255,255,.24),0 10px 15px -10px rgba(3,31,148,.85); }
.clay-concept-kine .kine-thigh { left:29px; top:15px; width:28px; height:57px; border-radius:18px; transform:rotate(-18deg); }
.clay-concept-kine .kine-knee { position:absolute; left:48px; top:58px; z-index:3; width:35px; height:35px; border:3px solid #fff; border-radius:50%; background:radial-gradient(circle at 32% 25%,#ffb27f,#ed642e 58%,#b93a13); box-shadow:0 9px 15px -9px rgba(236,108,45,.95); }
.clay-concept-kine .kine-shin { left:69px; top:79px; width:25px; height:48px; border-radius:15px; transform:rotate(28deg); transform-origin:50% 0; }
.clay-concept-kine .kine-foot { left:76px; bottom:5px; width:43px; height:20px; border-radius:14px 18px 12px 14px; transform:rotate(5deg); }
.clay-concept-kine b { position:absolute; right:8px; top:8px; display:grid; place-items:center; width:auto; min-width:39px; height:25px; padding:0 7px; border-radius:9px; background:var(--orange); color:#fff; font:800 9px/1 "League Spartan",sans-serif; letter-spacing:.06em; box-shadow:0 7px 12px -8px rgba(236,108,45,.9); }
.clay-website { position:absolute; left:17%; top:24%; width:66%; height:61%; overflow:hidden; border:2px solid rgba(255,255,255,.92); border-radius:22px; background:rgba(255,255,255,.9); box-shadow:inset 7px 7px 14px rgba(255,255,255,.9),0 24px 30px -19px rgba(3,31,148,.5); transform:rotate(-2deg); }
.clay-website .website-bar { position:absolute; inset:0 0 auto; display:flex; gap:5px; height:22px; align-items:center; padding-left:12px; background:linear-gradient(90deg,#102c98,#4762cc); }
.clay-website .website-bar b { width:6px; height:6px; border-radius:50%; background:#fff; opacity:.8; }
.clay-website > img { position:absolute; left:17px; top:38px; width:88px; height:auto; filter:none; }
.clay-website .website-lines { position:absolute; left:18px; right:18px; top:76px; height:30px; border-radius:5px; background:repeating-linear-gradient(to bottom,rgba(3,31,148,.18) 0 4px,transparent 4px 11px); }
.clay-website .website-card { position:absolute; left:18px; right:18px; bottom:15px; height:34px; border-radius:10px; background:linear-gradient(135deg,rgba(3,31,148,.13),rgba(236,108,45,.15)); }
.clay-topic-dots { position:absolute; right:9%; bottom:8%; z-index:5; display:flex; }
.clay-topic-dots img { position:relative; width:54px; height:54px; margin-left:-12px; padding:7px; border:2px solid #fff; border-radius:18px; background:rgba(255,255,255,.93); object-fit:contain; filter:drop-shadow(0 10px 13px rgba(3,31,148,.22)); }
.clay-bookshelf { position:absolute; left:13%; right:13%; top:22%; bottom:10%; border-radius:24px 24px 14px 14px; background:linear-gradient(145deg,#1538a8,#071f82); box-shadow:inset 8px 8px 14px rgba(255,255,255,.2),inset -9px -9px 16px rgba(0,8,72,.3),0 24px 31px -19px rgba(3,31,148,.72); }
.clay-bookshelf .shelf { position:absolute; left:13px; right:13px; display:flex; height:78px; align-items:flex-end; justify-content:center; gap:7px; padding:7px 9px 9px; border-bottom:8px solid #ed6a32; border-radius:10px; background:rgba(255,255,255,.09); }
.clay-bookshelf .shelf-top { top:10px; }.clay-bookshelf .shelf-bottom { bottom:11px; }
.clay-bookshelf .shelf img { position:static; z-index:2; width:48px; height:58px; max-height:none; padding:4px; border-radius:12px; background:rgba(255,255,255,.9); object-fit:contain; filter:drop-shadow(0 8px 8px rgba(0,9,70,.26)); transform:none; }
.clay-bookshelf .shelf-bottom img { width:56px; }
.clay-bookshelf > b,.clay-bookshelf > em { position:absolute; bottom:-15px; width:24px; height:26px; border-radius:0 0 9px 9px; background:#071f82; }
.clay-bookshelf > b { left:25px; }.clay-bookshelf > em { right:25px; }
@media (max-width:700px){.clay-concept-kine{right:5%;transform:scale(.82) rotate(4deg)}.clay-website{left:12%;width:75%}.clay-bookshelf{left:8%;right:8%}.clay-bookshelf .shelf img{width:42px}}

/* Browser review v8: Apple-like glass, distinct tax graphic and literal knee. */
.simulator input[type="range"] {
  height:14px;
  border:1px solid rgba(255,255,255,.9);
  background:linear-gradient(90deg,rgba(104,123,220,.18),rgba(255,255,255,.42) 52%,rgba(255,153,101,.18));
  box-shadow:inset 0 1px 1px rgba(255,255,255,.94),inset 0 -1px 2px rgba(3,31,148,.11),0 8px 20px -13px rgba(3,31,148,.64);
  backdrop-filter:blur(20px) saturate(1.55);
  -webkit-backdrop-filter:blur(20px) saturate(1.55);
}
.simulator input[type="range"]::-webkit-slider-thumb {
  width:31px;
  height:31px;
  border:1.5px solid rgba(255,255,255,.98);
  background:radial-gradient(circle at 32% 24%,rgba(255,255,255,.9) 0 10%,rgba(255,255,255,.34) 28%,rgba(65,87,198,.48) 66%,rgba(3,31,148,.7) 100%);
  box-shadow:inset 4px 4px 9px rgba(255,255,255,.58),inset -5px -6px 11px rgba(3,31,148,.2),0 10px 21px -8px rgba(3,31,148,.65),0 0 0 5px rgba(236,108,45,.12);
  backdrop-filter:blur(18px) saturate(1.5);
  -webkit-backdrop-filter:blur(18px) saturate(1.5);
}
.simulator input[type="range"]::-moz-range-thumb {
  width:29px;
  height:29px;
  border:1.5px solid rgba(255,255,255,.98);
  background:radial-gradient(circle at 32% 24%,rgba(255,255,255,.9) 0 10%,rgba(255,255,255,.34) 28%,rgba(65,87,198,.48) 66%,rgba(3,31,148,.7) 100%);
  box-shadow:inset 4px 4px 9px rgba(255,255,255,.58),inset -5px -6px 11px rgba(3,31,148,.2),0 10px 21px -8px rgba(3,31,148,.65),0 0 0 5px rgba(236,108,45,.12);
}
.simulator .amount-entry,.simulator .choice-grid button,.simulator .segmented button,.simulator .simulator-glass-action,.simulator .text-button {
  background:linear-gradient(145deg,rgba(255,255,255,.68),rgba(195,207,255,.3));
  border-color:rgba(255,255,255,.92);
  box-shadow:inset 1px 1px 0 rgba(255,255,255,.98),inset -1px -1px 0 rgba(3,31,148,.08),0 16px 34px -23px rgba(3,31,148,.78),0 10px 27px -24px rgba(236,108,45,.92);
  backdrop-filter:blur(22px) saturate(1.55);
  -webkit-backdrop-filter:blur(22px) saturate(1.55);
}
.metric-tax { width:61px; height:45px; margin-bottom:.05em; overflow:visible; }
.metric-tax .tax-paper { fill:rgba(3,31,148,.06); stroke:var(--blue); stroke-width:2.5; stroke-linecap:round; stroke-linejoin:round; }
.metric-tax .tax-fold,.metric-tax .tax-slash { fill:none; stroke:var(--orange); stroke-width:2.7; stroke-linecap:round; stroke-linejoin:round; }
.metric-tax circle { fill:var(--orange); }
.tax-saving-card strong { flex-wrap:nowrap; white-space:nowrap; }
.staff-vignettes figure { aspect-ratio:.82; }
.staff-vignettes img { object-position:center 24%; transform-origin:center 28%; }
.staff-vignettes figure:nth-child(1) img { transform:scale(1.02); }
.staff-vignettes figure:nth-child(2) img { transform:scale(1.045); }
.staff-vignettes figure:nth-child(3) img { transform:scale(1.035); }
.staff-vignettes figure:nth-child(4) img { transform:scale(1.055); }
.clay-concept-kine { width:126px; height:142px; bottom:8%; }
.clay-knee-svg { position:absolute; inset:8px 13px 9px 10px; width:103px; height:123px; overflow:visible; filter:drop-shadow(0 11px 10px rgba(3,31,148,.25)); }
.clay-knee-svg .knee-bone { fill:url(#none); stroke:#173aa6; stroke-width:4; stroke-linecap:round; stroke-linejoin:round; }
.clay-knee-svg .knee-femur { fill:#f5f6ff; }
.clay-knee-svg .knee-tibia,.clay-knee-svg .knee-fibula { fill:#dce3ff; }
.clay-knee-svg .knee-patella { fill:var(--orange); stroke:#fff; stroke-width:4; }
.clay-knee-svg .knee-ligament { fill:none; stroke:#ec6c2d; stroke-width:5; stroke-linecap:round; }
.clay-concept-kine > b { z-index:5; }
.clay-website > .website-brand { left:17px; top:35px; width:82px; height:auto; filter:none; }
.clay-website > .website-retirement { left:auto; right:15px; top:31px; width:78px; height:78px; object-fit:contain; filter:drop-shadow(0 8px 8px rgba(3,31,148,.18)); }
.clay-website .website-lines { right:116px; top:74px; }
.clay-health-audience { position:absolute; right:7%; bottom:8%; z-index:6; display:flex; min-width:94px; height:42px; align-items:center; gap:6px; padding:5px 9px; border:2px solid #fff; border-radius:15px; background:linear-gradient(145deg,#ff9560,#e85e2a); color:#fff; box-shadow:inset 4px 4px 8px rgba(255,255,255,.22),0 11px 18px -11px rgba(236,108,45,.9); transform:rotate(5deg); }
.clay-health-audience b { display:grid; place-items:center; width:24px; height:24px; border-radius:8px; background:#fff; color:var(--orange); font:800 20px/1 Arial,sans-serif; }
.clay-health-audience small { font:800 8px/1 "League Spartan",sans-serif; letter-spacing:.05em; white-space:nowrap; }

/* Browser review v9: restrained marble nameplates and one-line footer marks. */
.staff-vignettes figcaption,.adviser-slide figcaption {
  overflow:hidden;
  border:1px solid rgba(174,143,72,.48);
  background:
    linear-gradient(118deg,transparent 0 31%,rgba(129,139,178,.1) 32%,transparent 34% 66%,rgba(200,170,105,.1) 67%,transparent 69%),
    linear-gradient(145deg,#fffefa,#f1eee6);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.98),0 12px 25px -18px rgba(3,31,148,.58);
}
.staff-vignettes figcaption::before,.adviser-slide figcaption::before {
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:linear-gradient(163deg,transparent 0 43%,rgba(3,31,148,.055) 44%,transparent 45% 72%,rgba(184,145,68,.08) 73%,transparent 74%);
  pointer-events:none;
}
.staff-vignettes figcaption strong,.staff-vignettes figcaption span,.adviser-slide figcaption strong,.adviser-slide figcaption span { position:relative; z-index:1; }
.staff-vignettes figcaption strong,.adviser-slide figcaption strong { color:#071f82; letter-spacing:.01em; }
.footer-trust.footer-trust-logos {
  display:flex;
  width:100%;
  align-items:center;
  gap:15px;
  margin:19px 0 17px;
  white-space:nowrap;
}
.footer-trust.footer-trust-logos > img,.footer-trust.footer-trust-logos > a {
  display:flex;
  width:auto;
  height:40px;
  flex:0 0 auto;
  align-items:center;
  justify-content:center;
  margin:0;
  padding:0;
}
.footer-trust.footer-trust-logos > img { max-width:83px; object-fit:contain; filter:brightness(0) invert(1); }
.footer-trust.footer-trust-logos > a img { width:auto; max-width:46px; height:36px; object-fit:contain; filter:brightness(0) invert(1); }
@media (max-width:700px){.footer-trust.footer-trust-logos{gap:11px;overflow-x:auto}.footer-trust.footer-trust-logos > img,.footer-trust.footer-trust-logos > a{height:36px}}

/* Browser review v10: a distinct, floating Liquid Glass control layer. */
.simulator {
  position:relative;
  isolation:isolate;
  border-color:rgba(255,255,255,.76);
  background:rgba(255,255,255,.55);
  box-shadow:0 34px 74px -40px rgba(5,22,94,.42),inset 0 1px 0 rgba(255,255,255,.95);
  backdrop-filter:blur(34px) saturate(1.38);
  -webkit-backdrop-filter:blur(34px) saturate(1.38);
}
.simulator::before {
  content:"";
  position:absolute;
  z-index:-1;
  inset:-18% -12%;
  background:
    radial-gradient(circle at 84% 8%,rgba(86,111,233,.22),transparent 34%),
    radial-gradient(circle at 13% 82%,rgba(255,132,69,.18),transparent 31%);
  filter:blur(18px);
  pointer-events:none;
}
.simulator-head { background:rgba(255,255,255,.48); }
.simulator-body {
  background:
    radial-gradient(circle at 91% 4%,rgba(90,110,226,.13),transparent 33%),
    radial-gradient(circle at 5% 90%,rgba(244,118,54,.13),transparent 36%),
    linear-gradient(145deg,rgba(255,255,255,.62),rgba(248,242,238,.48));
}
.simulator .amount-entry,
.simulator .choice-grid button,
.simulator .segmented button,
.simulator .simulator-glass-action,
.simulator .text-button {
  position:relative;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.78);
  background:
    linear-gradient(135deg,rgba(255,255,255,.62),rgba(255,255,255,.18) 48%,rgba(75,99,214,.16));
  color:var(--blue);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.98),
    inset 1px 0 0 rgba(255,255,255,.48),
    inset 0 -1px 0 rgba(26,49,150,.12),
    0 13px 28px -20px rgba(3,31,148,.72),
    0 6px 18px -14px rgba(236,108,45,.45);
  backdrop-filter:blur(28px) saturate(1.65) brightness(1.06);
  -webkit-backdrop-filter:blur(28px) saturate(1.65) brightness(1.06);
}
.simulator .choice-grid button::before,
.simulator .segmented button::before,
.simulator .simulator-glass-action::before,
.simulator .text-button::before {
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:
    radial-gradient(110% 70% at 18% -8%,rgba(255,255,255,.92),transparent 45%),
    linear-gradient(105deg,transparent 28%,rgba(255,255,255,.32) 46%,transparent 62%);
  opacity:.72;
  pointer-events:none;
}
.simulator .choice-grid button > *,
.simulator .segmented button > *,
.simulator .simulator-glass-action > *,
.simulator .text-button > * { position:relative; z-index:1; }
.simulator .choice-grid button.is-active,
.simulator .segmented button.is-active,
.simulator .simulator-tabs button[aria-selected="true"] {
  border-color:rgba(255,255,255,.82);
  background:
    radial-gradient(120% 90% at 12% 0,rgba(255,255,255,.38),transparent 48%),
    linear-gradient(135deg,rgba(27,54,177,.82),rgba(65,85,193,.66) 58%,rgba(105,91,194,.58));
  color:#fff;
  text-shadow:0 1px 8px rgba(2,18,95,.26);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.68),
    inset 0 -1px 0 rgba(0,10,82,.22),
    0 18px 32px -20px rgba(3,31,148,.9),
    0 9px 24px -18px rgba(236,108,45,.72);
}
.simulator .simulator-glass-action {
  min-height:50px;
  background:
    radial-gradient(90% 130% at 12% -30%,rgba(255,255,255,.96),transparent 52%),
    linear-gradient(110deg,rgba(255,255,255,.67),rgba(205,215,255,.38) 55%,rgba(255,190,155,.26));
}
.simulator .simulator-glass-action:hover {
  background:
    radial-gradient(90% 130% at 12% -30%,#fff,transparent 54%),
    linear-gradient(110deg,rgba(255,255,255,.74),rgba(184,199,255,.46) 55%,rgba(255,172,128,.34));
  transform:translateY(-1px) scale(1.005);
}
.simulator input[type="range"] {
  height:8px;
  border:1px solid rgba(255,255,255,.72);
  background:linear-gradient(90deg,rgba(32,62,186,.34),rgba(255,255,255,.38) 52%,rgba(236,108,45,.28));
  box-shadow:inset 0 1px 2px rgba(3,20,105,.16),0 1px 0 rgba(255,255,255,.95),0 8px 16px -13px rgba(3,31,148,.7);
}
.simulator input[type="range"]::-webkit-slider-thumb {
  width:28px;
  height:28px;
  border:1px solid rgba(255,255,255,.94);
  background:
    radial-gradient(circle at 31% 21%,rgba(255,255,255,.98) 0 9%,rgba(255,255,255,.48) 17%,transparent 38%),
    linear-gradient(145deg,rgba(255,255,255,.52),rgba(51,75,190,.68) 54%,rgba(16,43,160,.74));
  box-shadow:
    inset 2px 2px 5px rgba(255,255,255,.68),
    inset -3px -4px 7px rgba(0,15,104,.2),
    0 9px 18px -7px rgba(3,31,148,.72),
    0 0 0 4px rgba(255,255,255,.27),
    0 0 0 6px rgba(236,108,45,.09);
}
.simulator input[type="range"]::-moz-range-thumb {
  width:28px;
  height:28px;
  border:1px solid rgba(255,255,255,.94);
  background:linear-gradient(145deg,rgba(255,255,255,.72),rgba(51,75,190,.68) 54%,rgba(16,43,160,.74));
  box-shadow:inset 2px 2px 5px rgba(255,255,255,.68),inset -3px -4px 7px rgba(0,15,104,.2),0 9px 18px -7px rgba(3,31,148,.72),0 0 0 4px rgba(255,255,255,.27);
}
.simulator .amount-entry { border-radius:999px; }
.simulator .amount-entry input { position:relative; z-index:1; background:transparent; }
.simulator .amount-entry::after {
  content:"";
  position:absolute;
  inset:1px 10px auto;
  height:42%;
  border-radius:999px;
  background:linear-gradient(180deg,rgba(255,255,255,.64),transparent);
  pointer-events:none;
}
@media (prefers-reduced-motion:no-preference) {
  .simulator .choice-grid button,.simulator .segmented button,.simulator .simulator-glass-action { transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s ease,background .22s ease; }
  .simulator .choice-grid button:active,.simulator .segmented button:active,.simulator .simulator-glass-action:active { transform:scale(.975); }
}

/* Browser review v11: Liquid Glass inside all three phone states. */
.phone-screen {
  background:
    radial-gradient(circle at 18% 4%,rgba(255,255,255,.92),transparent 32%),
    radial-gradient(circle at 96% 82%,rgba(90,111,225,.18),transparent 38%),
    linear-gradient(155deg,rgba(255,255,255,.72),rgba(226,231,255,.52));
  backdrop-filter:blur(24px) saturate(1.45);
  -webkit-backdrop-filter:blur(24px) saturate(1.45);
}
.phone-top span,.phone-live-row > span,.phone-allocation-card,.phone-contracts > span,
.phone-periods,.phone-periods span.is-active,.phone-chart-card,.phone-kpi-grid > span,
.phone-status,.phone-solution-list span {
  position:relative;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.74);
  background:linear-gradient(138deg,rgba(255,255,255,.66),rgba(255,255,255,.18) 52%,rgba(64,87,201,.15));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.96),inset 0 -1px 0 rgba(3,31,148,.1),0 12px 22px -17px rgba(3,31,148,.66);
  backdrop-filter:blur(18px) saturate(1.65);
  -webkit-backdrop-filter:blur(18px) saturate(1.65);
}
.phone-allocation-card {
  background:
    radial-gradient(100% 75% at 10% -8%,rgba(255,255,255,.38),transparent 48%),
    linear-gradient(135deg,rgba(5,34,153,.83),rgba(46,68,182,.69) 60%,rgba(109,120,216,.55));
}
.phone-periods { padding:3px; }
.phone-periods span.is-active {
  background:linear-gradient(145deg,rgba(255,255,255,.84),rgba(215,223,255,.46));
  box-shadow:inset 0 1px 0 #fff,0 5px 11px -7px rgba(3,18,82,.72);
}
.phone-chart-card::before,.phone-allocation-card::before,.phone-contracts > span::before,
.phone-kpi-grid > span::before,.phone-solution-list span::before {
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:radial-gradient(90% 55% at 17% -5%,rgba(255,255,255,.72),transparent 52%);
  pointer-events:none;
}
.phone-scroll-progress span {
  border-color:rgba(255,255,255,.75);
  background:linear-gradient(145deg,rgba(255,255,255,.7),rgba(200,211,255,.28));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.96),0 9px 18px -12px rgba(3,31,148,.7);
  backdrop-filter:blur(18px) saturate(1.5);
  -webkit-backdrop-filter:blur(18px) saturate(1.5);
}
.phone-scroll-progress span.is-active {
  border-color:rgba(255,255,255,.8);
  background:linear-gradient(145deg,rgba(255,164,112,.92),rgba(226,78,25,.76));
  color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.58),0 12px 22px -13px rgba(236,108,45,.9);
}
.metric-tax-simple {
  position:relative;
  display:inline-grid;
  width:48px;
  height:48px;
  flex:0 0 48px;
  place-items:center;
  border:2px solid var(--blue);
  border-radius:50%;
  color:var(--blue);
  font:800 20px/1 "League Spartan",sans-serif;
}
.metric-tax-simple b { transform:translate(-5px,-1px); }
.metric-tax-simple i { position:absolute; right:5px; bottom:3px; color:var(--orange); font:900 21px/1 Arial,sans-serif; }
.tax-saving-card strong {
  display:flex;
  width:100%;
  min-height:79px;
  align-items:center;
  justify-content:center;
  gap:13px;
  margin:0;
  line-height:1!important;
}
.legacy-stat-grid-four > article > strong { min-height:79px; align-items:center; }
.footer-trust.footer-trust-logos { gap:9px; }
.footer-trust.footer-trust-logos .footer-mark {
  display:flex;
  width:auto;
  min-width:58px;
  height:42px;
  flex:0 0 auto;
  align-items:center;
  justify-content:center;
  gap:4px;
  margin:0;
  padding:5px 8px;
  border:1px solid rgba(255,255,255,.25);
  border-radius:8px;
  background:rgba(255,255,255,.07);
  color:#fff;
  line-height:1;
}
.footer-trust.footer-trust-logos .footer-mark img { width:auto; max-width:76px; height:27px; filter:brightness(0) invert(1); object-fit:contain; }
.footer-mark b { color:#fff; font-family:"League Spartan",sans-serif; font-size:13px; letter-spacing:.02em; }
.footer-mark small { color:#cfd6f8; font-size:6px; font-weight:700; }
.footer-mark-orias,.footer-mark-acpr { flex-direction:column; }
.footer-mark-bdf b { font-family:Georgia,serif; font-size:8px; line-height:.9; text-align:center; }
@media (max-width:700px){.footer-trust.footer-trust-logos .footer-mark{height:38px;padding:4px 6px}.metric-tax-simple{width:41px;height:41px;flex-basis:41px}}

/* Browser review v12: interaction-led Liquid Glass from Apple's control examples. */
.simulator input[type="range"] {
  --range-progress:0%;
  height:6px;
  overflow:visible;
  border:0;
  background:linear-gradient(90deg,
    rgba(41,111,202,.96) 0 var(--range-progress),
    rgba(111,119,133,.18) var(--range-progress) 100%);
  box-shadow:inset 0 1px 1px rgba(18,39,115,.12),0 1px 0 rgba(255,255,255,.84);
}
.simulator input[type="range"]::-webkit-slider-thumb {
  width:25px;
  height:25px;
  border:1px solid rgba(255,255,255,.94);
  border-radius:999px;
  background:linear-gradient(145deg,rgba(255,255,255,.86),rgba(229,237,249,.5));
  box-shadow:inset 0 1px 1px #fff,inset 0 -1px 1px rgba(34,57,136,.16),0 5px 12px -5px rgba(13,36,125,.55);
  backdrop-filter:blur(16px) saturate(1.45);
  -webkit-backdrop-filter:blur(16px) saturate(1.45);
  transition:width .2s cubic-bezier(.2,.8,.2,1),height .2s cubic-bezier(.2,.8,.2,1),box-shadow .2s ease;
}
.simulator input[type="range"]:active::-webkit-slider-thumb {
  width:58px;
  height:32px;
  box-shadow:inset 0 1px 1px #fff,inset 0 -1px 1px rgba(34,57,136,.13),0 7px 16px -6px rgba(13,36,125,.56),0 0 0 1px rgba(255,255,255,.38);
}
.simulator input[type="range"]::-moz-range-thumb { width:50px;height:28px;border-radius:999px;transition:width .2s cubic-bezier(.2,.8,.2,1),height .2s cubic-bezier(.2,.8,.2,1); }
.simulator input[type="range"]:active::-moz-range-thumb { width:58px;height:32px; }
.simulator .segmented,.simulator .choice-grid-three {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding:4px;
  border:1px solid rgba(255,255,255,.62);
  border-radius:15px;
  background:rgba(112,119,134,.11);
  box-shadow:inset 0 1px 2px rgba(21,39,103,.08),0 1px 0 rgba(255,255,255,.72);
}
.simulator .segmented::before,.simulator .choice-grid-three::before {
  content:"";
  position:absolute;
  z-index:-1;
  top:4px;
  bottom:4px;
  left:4px;
  border:1px solid rgba(255,255,255,.82);
  border-radius:12px;
  background:linear-gradient(145deg,rgba(255,255,255,.88),rgba(220,228,244,.48));
  box-shadow:inset 0 1px 0 #fff,inset 0 -1px 0 rgba(30,50,130,.1),0 6px 13px -7px rgba(3,31,148,.55);
  backdrop-filter:blur(18px) saturate(1.55);
  -webkit-backdrop-filter:blur(18px) saturate(1.55);
  transition:transform .36s cubic-bezier(.22,.9,.28,1),width .2s ease;
}
.simulator .segmented::before { width:calc((100% - 8px)/2); }
.simulator .choice-grid-three::before { width:calc((100% - 8px)/3); }
.simulator .segmented:has(button:nth-child(2).is-active)::before { transform:translateX(100%); }
.simulator .choice-grid-three:has(button:nth-child(2).is-active)::before { transform:translateX(100%); }
.simulator .choice-grid-three:has(button:nth-child(3).is-active)::before { transform:translateX(200%); }
.simulator .segmented button,.simulator .choice-grid-three button,
.simulator .segmented button.is-active,.simulator .choice-grid-three button.is-active {
  z-index:1;
  border-color:transparent;
  background:transparent;
  box-shadow:none;
  color:var(--body);
  text-shadow:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
.simulator .segmented button.is-active,.simulator .choice-grid-three button.is-active { color:var(--blue-deep); }
.simulator .segmented button::before,.simulator .choice-grid-three button::before { display:none; }
.metric-tax-clay { width:62px;height:62px;flex:0 0 62px;object-fit:contain;filter:drop-shadow(0 10px 9px rgba(3,31,148,.18)); }
.guide-knee-clay {
  position:absolute;
  z-index:3;
  right:4%;
  bottom:-9%;
  width:57%;
  height:96%;
  object-fit:contain;
  filter:drop-shadow(0 22px 18px rgba(3,31,148,.22));
}
@media (max-width:700px){.metric-tax-clay{width:50px;height:50px;flex-basis:50px}.guide-knee-clay{right:1%;width:60%}}

/* Browser review v14: brighter phone canvas, with glass reserved for controls. */
.phone-screen {
  background:
    radial-gradient(circle at 14% 0,rgba(255,255,255,1),transparent 34%),
    radial-gradient(circle at 100% 88%,rgba(190,203,255,.28),transparent 42%),
    linear-gradient(155deg,rgba(255,255,255,.96),rgba(242,245,255,.9));
  box-shadow:inset 0 1px 0 #fff,inset 0 -22px 42px rgba(39,54,136,.035);
  backdrop-filter:blur(14px) saturate(1.25);
  -webkit-backdrop-filter:blur(14px) saturate(1.25);
}
.phone-view > p,.phone-view > small,.phone-chart-head,.phone-chart-axis,
.phone-contracts small,.phone-solution-list + small { color:#5d6271; }
.phone-periods {
  background:rgba(99,108,126,.1);
  color:#555c6c;
}
.phone-chart-card,.phone-contracts > span,.phone-kpi-grid > span,.phone-solution-list span {
  background:linear-gradient(138deg,rgba(255,255,255,.9),rgba(255,255,255,.58) 54%,rgba(211,221,255,.34));
  border-color:rgba(255,255,255,.92);
}
.phone-chart-grid { color:rgba(3,31,148,.13); }

/* Browser review v15: separate editorial objects and genuine footer logos. */
.guide-knee-clay {
  right:-1%;
  bottom:-7%;
  width:40%;
  height:78%;
}
.guide-visual-kine .guide-product-icon { left:15%;width:39%; }
.footer-trust.footer-trust-logos .footer-mark {
  width:70px;
  height:48px;
  padding:6px 8px;
  border-color:rgba(255,255,255,.18);
  border-radius:9px;
  background:#fff;
}
.footer-trust.footer-trust-logos .footer-mark:first-child { width:88px; }
.footer-trust.footer-trust-logos .footer-mark img {
  width:auto;
  max-width:100%;
  height:auto;
  max-height:36px;
  filter:none;
  object-fit:contain;
}
.footer-trust.footer-trust-logos .footer-mark:nth-child(2) img { max-height:32px; }
.footer-trust.footer-trust-logos .footer-mark:nth-child(3) img { max-height:38px; }
/* The footer uses AMF's compact lockup (269x65); the hero keeps the full one.
   It is still wider than the other marks, so widen its chip the same way the
   CNCEF chip is widened above, to the most the footer column takes without
   pushing the page at any breakpoint. */
.footer-trust.footer-trust-logos .footer-mark:nth-child(4) { width:92px; }
@media (max-width:700px){.guide-knee-clay{right:-2%;bottom:-6%;width:42%;height:76%}.footer-trust.footer-trust-logos .footer-mark{width:62px;height:42px}.footer-trust.footer-trust-logos .footer-mark:first-child{width:78px}.footer-trust.footer-trust-logos .footer-mark:nth-child(4){width:92px}}

/* Browser review v17: visibly separate retirement and physiotherapy symbols. */
.guide-visual-kine .guide-product-icon {
  left:5%;
  width:31%;
  transform:translateY(-49%) rotate(-5deg);
}
.guide-knee-clay {
  right:0;
  bottom:-12%;
  width:27%;
  height:66%;
}
@media (max-width:700px){.guide-visual-kine .guide-product-icon{left:4%;width:32%}.guide-knee-clay{right:0;bottom:-10%;width:29%;height:66%}}

/* Browser review v19: custom capsule avoids native circular-thumb rendering. */
.liquid-range-shell {
  --range-progress:0%;
  position:relative;
  display:block;
  width:100%;
  height:32px;
}
.simulator .liquid-range-shell input[type="range"] {
  position:absolute;
  z-index:2;
  inset:0;
  width:100%;
  height:32px;
  border:0;
  background:transparent;
  box-shadow:none;
  opacity:1;
}
.simulator .liquid-range-shell input[type="range"]::-webkit-slider-runnable-track {
  height:6px;
  border-radius:999px;
  background:linear-gradient(90deg,rgba(41,111,202,.96) 0 var(--range-progress),rgba(111,119,133,.18) var(--range-progress) 100%);
  box-shadow:inset 0 1px 1px rgba(18,39,115,.12),0 1px 0 rgba(255,255,255,.84);
}
.simulator .liquid-range-shell input[type="range"]::-webkit-slider-thumb {
  width:1px;
  height:1px;
  margin-top:2.5px;
  border:0;
  background:transparent;
  box-shadow:none;
  opacity:0;
}
.simulator .liquid-range-shell input[type="range"]::-moz-range-track {
  height:6px;
  border-radius:999px;
  background:linear-gradient(90deg,rgba(41,111,202,.96) 0 var(--range-progress),rgba(111,119,133,.18) var(--range-progress) 100%);
}
.simulator .liquid-range-shell input[type="range"]::-moz-range-thumb { width:1px;height:1px;border:0;background:transparent;box-shadow:none;opacity:0; }
.liquid-range-thumb {
  position:absolute;
  z-index:3;
  top:50%;
  left:var(--range-progress);
  width:50px;
  height:28px;
  border:1px solid rgba(255,255,255,.94);
  border-radius:999px;
  background:
    radial-gradient(85% 70% at 28% 12%,rgba(255,255,255,.98),transparent 52%),
    linear-gradient(145deg,rgba(255,255,255,.7),rgba(210,221,247,.42));
  box-shadow:inset 0 1px 1px #fff,inset 0 -1px 1px rgba(34,57,136,.14),0 6px 14px -6px rgba(13,36,125,.58),0 0 0 1px rgba(255,255,255,.3);
  backdrop-filter:blur(18px) saturate(1.55);
  -webkit-backdrop-filter:blur(18px) saturate(1.55);
  transform:translate(-50%,-50%);
  transition:width .2s cubic-bezier(.2,.8,.2,1),height .2s cubic-bezier(.2,.8,.2,1),left .06s linear;
  pointer-events:none;
}
.liquid-range-shell.is-dragging .liquid-range-thumb { width:58px;height:32px; }

/* Browser review v20: legible slider scales. */
.simulator .range-limits,
.patrimy-range .range-limits,
.mode-panel[data-panel="B"] .range-field .range-limits {
  margin-top:7px;
  color:#5b5c65;
  font-family:"Poppins",sans-serif;
  font-size:11px;
  font-weight:500;
  letter-spacing:0;
  line-height:1.25;
}

/* Browser review v21: readable regulatory-card headings. */
.hero-partner-proof > span > small {
  min-height:28px;
  padding:0 5px;
  color:#132b8f;
  font-size:13px;
  font-weight:800;
  letter-spacing:.01em;
  line-height:1.2;
}

/* ------------------------------------------------------------------ */
/* Liquid Glass: the knob takes the material while it is being dragged. */
/* Reference: developer.apple.com/documentation/technologyoverviews/    */
/* adopting-liquid-glass                                                */
/* ------------------------------------------------------------------ */

.simulator input[type="range"]:active::-webkit-slider-thumb,
.simulator input[type="range"]:focus-visible::-webkit-slider-thumb {
  border-radius:16px;
  backdrop-filter:blur(24px) saturate(1.8);
  -webkit-backdrop-filter:blur(24px) saturate(1.8);
  box-shadow:
    inset 0 1px 1px #fff,
    inset 0 -1px 1px rgba(34,57,136,.13),
    0 12px 26px -8px rgba(13,36,125,.5),
    0 0 0 1px rgba(255,255,255,.38);
}

.liquid-range-shell.is-dragging .liquid-range-thumb,
.simulator .liquid-range-shell input[type="range"]:focus-visible ~ .liquid-range-thumb {
  width:58px;
  height:32px;
  border-radius:16px;
  backdrop-filter:blur(24px) saturate(1.8);
  -webkit-backdrop-filter:blur(24px) saturate(1.8);
  box-shadow:
    inset 0 1px 1px #fff,
    inset 0 -1px 1px rgba(34,57,136,.14),
    0 12px 26px -8px rgba(13,36,125,.5),
    0 0 0 1px rgba(255,255,255,.3);
}

/* The stylesheet leans on backdrop-filter throughout. Honour the user's  */
/* request for reduced transparency: drop the blur, restore opaque fills. */
@media (prefers-reduced-transparency: reduce) {
  .simulator input[type="range"]::-webkit-slider-thumb,
  .simulator input[type="range"]:active::-webkit-slider-thumb,
  .simulator input[type="range"]:focus-visible::-webkit-slider-thumb,
  .liquid-range-thumb,
  .liquid-range-shell.is-dragging .liquid-range-thumb,
  .simulator .liquid-range-shell input[type="range"]:focus-visible ~ .liquid-range-thumb {
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
    background:#fff;
  }

  .simulator .segmented,
  .segmented {
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
    background:#eef2fb;
  }

  .phone-screen {
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
    background:#fff;
  }

  .data-step {
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
    background:#fff;
  }
}

/* ------------------------------------------------------------------ */
/* Calmer logo hover: a small lift and a soft violet halo, no bounce.   */
/* ------------------------------------------------------------------ */

.brand::after { content:none; display:none; }

.brand {
  position:relative;
  isolation:isolate;
}

.brand::before {
  content:"";
  position:absolute;
  z-index:-1;
  top:50%;
  left:50%;
  width:150%;
  height:220%;
  transform:translate(-50%,-50%) scale(.8);
  background:radial-gradient(closest-side,rgba(109,90,232,.26),rgba(109,90,232,.08) 55%,transparent 78%);
  opacity:0;
  pointer-events:none;
  transition:opacity .32s ease,transform .42s cubic-bezier(.2,.9,.25,1.15);
}

.brand img {
  transition:transform .42s cubic-bezier(.2,.9,.25,1.15);
}

.brand:hover::before,
.brand:focus-visible::before {
  opacity:1;
  transform:translate(-50%,-50%) scale(1);
}

.brand:hover img,
.brand:focus-visible img {
  animation:none;
  filter:none;
  transform:translateY(-2px);
}

@media (prefers-reduced-motion: reduce) {
  .brand img,
  .brand::before {
    transition:none;
  }
  .brand:hover img,
  .brand:focus-visible img {
    transform:none;
  }
}

/* ------------------------------------------------------------------ */
/* Both proof rows carry the client's own brand lockups, and those have very
   different aspect ratios: ACPR 1:1, CNCEF 2.7:1, ORIAS 3.2:1, AMF 6.4:1.
   The chips are fluid, but every earlier rule sized the marks in fixed
   pixels, so between roughly 800px and 1200px the chips shrank while the
   images did not and the marks spilled out of their chips. The page never
   scrolled sideways, because a mark overflows its chip, not the document.
   Size every mark against its own chip instead: it can never exceed the
   chip's content box on either axis, and object-fit keeps the ratio. */
/* ------------------------------------------------------------------ */

.hero-partner-proof .proof-logo img,
.hero-partner-proof .proof-logo .cncef-mark,
.hero-partner-proof .proof-logo .cncef-mark-full,
.hero-partner-proof .proof-logo .orias-mark,
.hero-partner-proof .proof-logo .acpr-mark,
.hero-partner-proof .proof-logo .amf-mark,
.footer-trust.footer-trust-logos .footer-mark img,
.footer-trust.footer-trust-logos .footer-mark:nth-child(2) img,
.footer-trust.footer-trust-logos .footer-mark:nth-child(3) img {
  width:auto;
  height:auto;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
}

/* ==================================================================== */
/* Liquid Glass round two.                                              */
/* developer.apple.com/documentation/technologyoverviews/               */
/* adopting-liquid-glass                                                */
/*                                                                      */
/* Four corrections, in order:                                          */
/*  1. the knob had no size delta between rest and interaction;         */
/*  2. it carried the glass material at rest, which is backwards;       */
/*  3. glass was layered on glass throughout the simulator;             */
/*  4. the phone mock repeated (3) inside a device frame, with an       */
/*     endless pulse and a grab bag of nested radii.                    */
/* ==================================================================== */

/* --- 1 and 2: the knob transforms into the material on interaction --- */

/* Resting: the legible 58x32 the v20 review settled on, opaque, no glass,
   no lift. This is the state the knob spends its life in. */
.liquid-range-thumb {
  width:58px;
  height:32px;
  border-radius:999px;
  background:linear-gradient(145deg,#ffffff,#eef1fb);
  box-shadow:
    inset 0 1px 1px #fff,
    inset 0 -1px 1px rgba(34,57,136,.14),
    0 2px 5px -3px rgba(13,36,125,.4);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  transition:
    width .22s cubic-bezier(.2,.8,.2,1),
    height .22s cubic-bezier(.2,.8,.2,1),
    border-radius .22s cubic-bezier(.2,.8,.2,1),
    background .22s ease,
    box-shadow .22s ease,
    backdrop-filter .22s ease,
    -webkit-backdrop-filter .22s ease,
    left .06s linear;
}

/* Interacting: bigger, translucent, lifted. The material appears here only. */
.liquid-range-shell.is-dragging .liquid-range-thumb,
.simulator .liquid-range-shell input[type="range"]:focus-visible ~ .liquid-range-thumb {
  width:66px;
  height:36px;
  border-radius:16px;
  background:
    radial-gradient(85% 70% at 28% 12%,rgba(255,255,255,.98),transparent 52%),
    linear-gradient(145deg,rgba(255,255,255,.7),rgba(210,221,247,.42));
  backdrop-filter:blur(24px) saturate(1.8);
  -webkit-backdrop-filter:blur(24px) saturate(1.8);
  box-shadow:
    inset 0 1px 1px #fff,
    inset 0 -1px 1px rgba(34,57,136,.14),
    0 12px 26px -8px rgba(13,36,125,.5),
    0 0 0 1px rgba(255,255,255,.3);
}

/* Same delta on the native thumb, for any range not wrapped by app.js. */
.simulator input[type="range"]::-webkit-slider-thumb {
  width:58px;
  height:32px;
  border-radius:999px;
  background:linear-gradient(145deg,#ffffff,#eef1fb);
  box-shadow:
    inset 0 1px 1px #fff,
    inset 0 -1px 1px rgba(34,57,136,.16),
    0 2px 5px -3px rgba(13,36,125,.4);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  transition:
    width .22s cubic-bezier(.2,.8,.2,1),
    height .22s cubic-bezier(.2,.8,.2,1),
    box-shadow .22s ease;
}
.simulator input[type="range"]:active::-webkit-slider-thumb,
.simulator input[type="range"]:focus-visible::-webkit-slider-thumb {
  width:66px;
  height:36px;
  border-radius:16px;
  background:linear-gradient(145deg,rgba(255,255,255,.86),rgba(229,237,249,.5));
  backdrop-filter:blur(24px) saturate(1.8);
  -webkit-backdrop-filter:blur(24px) saturate(1.8);
  box-shadow:
    inset 0 1px 1px #fff,
    inset 0 -1px 1px rgba(34,57,136,.13),
    0 12px 26px -8px rgba(13,36,125,.5),
    0 0 0 1px rgba(255,255,255,.38);
}
.simulator input[type="range"]::-moz-range-thumb { width:58px;height:32px; }
.simulator input[type="range"]:active::-moz-range-thumb { width:66px;height:36px; }

/* --- 3: one glass layer per stack. The simulator card is the glass    ---
   surface; every control inside it is solid. The single exception is the
   knob while it is actually being dragged, which is the point of (1). */

.simulator .amount-entry,
.simulator .choice-grid button,
.simulator .choice-grid-three button,
.simulator .segmented button,
.simulator .segmented::before,
.simulator .choice-grid-three::before,
.simulator .simulator-glass-action,
.simulator .text-button,
.simulator input[type="range"],
.simulator .liquid-range-shell input[type="range"],
.data-step {
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}

/* Opaque fills to replace what the blur was doing for legibility. */
.simulator .amount-entry,
.simulator .choice-grid button,
.simulator .choice-grid-three button { background:#fbfcff; }
.simulator .text-button { background:transparent; }


.simulator .simulator-glass-action {
  background:
    radial-gradient(90% 130% at 12% -30%,#ffffff,transparent 52%),
    linear-gradient(110deg,#f7f9ff,#e6ebff);
}
.simulator .simulator-glass-action:hover {
  background:
    radial-gradient(90% 130% at 12% -30%,#ffffff,transparent 54%),
    linear-gradient(110deg,#ffffff,#dbe3ff);
}

/* ...but not on the navy screens. A pale fill or a transparent text button on
   that panel is unreadable, so those keep an explicit high-contrast pair:
   solid white with navy text for the primary, and a bordered translucent
   white with white text for the secondary. */
.result-screen .simulator-glass-action,
.contact-screen .simulator-glass-action,
.confirmation-screen .simulator-glass-action {
  border-color:rgba(255,255,255,.9);
  background:#ffffff;
  box-shadow:0 12px 25px -14px rgba(0,0,0,.9);
  color:#031f94;
  text-shadow:none;
}
.result-screen .simulator-glass-action:hover,
.contact-screen .simulator-glass-action:hover,
.confirmation-screen .simulator-glass-action:hover {
  border-color:#ffffff;
  background:#f2f5ff;
  color:#02155f;
  filter:none;
}
.result-screen .text-button,
.contact-screen .text-button,
.confirmation-screen .text-button,
.result-screen .text-button.light,
.contact-screen .text-button.light,
.confirmation-screen .text-button.light {
  border:1px solid rgba(255,255,255,.6);
  background:rgba(255,255,255,.14);
  color:#ffffff;
  text-shadow:0 1px 2px rgba(0,18,92,.7);
}
.result-screen .text-button:hover,
.contact-screen .text-button:hover,
.confirmation-screen .text-button:hover,
.result-screen .text-button.light:hover,
.contact-screen .text-button.light:hover,
.confirmation-screen .text-button.light:hover {
  border-color:#ffffff;
  background:rgba(255,255,255,.24);
  color:#ffffff;
  filter:none;
}

.simulator .segmented::before,
.simulator .choice-grid-three::before { background:#eef1fb; }
.simulator .segmented button.is-active,
.simulator .choice-grid button.is-active,
.simulator .choice-grid-three button.is-active { background:#ffffff; }
.data-step { background:#ffffff; }

/* --- 4: the phone mock. The screen is the content layer, so it is    ---
   opaque; glass is reserved for the two things that genuinely float over
   it, the status chip and the period switcher. */

.phone-screen {
  background:
    radial-gradient(circle at 14% 0,#ffffff,transparent 34%),
    radial-gradient(circle at 100% 88%,#e7ecff,transparent 42%),
    linear-gradient(155deg,#ffffff,#f2f5ff);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}

.phone-live-row > span,
.phone-allocation-card,
.phone-contracts > span,
.phone-chart-card,
.phone-kpi-grid > span,
.phone-status,
.phone-solution-list span,
.phone-periods span.is-active,
.phone-scroll-progress span {
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}

/* Opaque fills for the cards that used to rely on the blur. */
.phone-contracts > span,
.phone-chart-card,
.phone-kpi-grid > span,
.phone-status,
.phone-solution-list span { background:#ffffff; }
.phone-live-row > span { background:#e7f3ec; }
.phone-periods span.is-active { background:#ffffff; }
.phone-scroll-progress span { background:#f4f6ff; }
.phone-allocation-card {
  background:
    radial-gradient(100% 75% at 10% -8%,rgba(255,255,255,.34),transparent 48%),
    linear-gradient(135deg,#052299,#2e44b6 60%,#5866c9);
}

/* Concentric radii, derived from the screen's 30px rather than picked.
   The screen is inset 18px from its own edge, so a card sitting against
   that padding is concentric at 30 - 18 = 12px. The period switcher's
   segments sit 3px inside it, so they are concentric at 12 - 3 = 9px.
   Capsules and dots keep their shape: a pill is a shape, not a radius. */
.phone-allocation-card,
.phone-contracts > span,
.phone-chart-card,
.phone-periods,
.phone-kpi-grid > span { border-radius:12px; }
.phone-periods span { border-radius:9px; }

/* The status dot pulsed forever with nothing to announce. Three beats on
   load, then rest, and nothing at all when motion is not wanted. */
.phone-live-row i,
.phone-status i {
  animation:phone-status-pulse 2s ease-out 3;
}

@media (prefers-reduced-motion: reduce) {
  .phone-live-row i,
  .phone-status i {
    animation:none;
  }
}

/* Keep the reduced-transparency path honest now that the glass moved. */
@media (prefers-reduced-transparency: reduce) {
  .liquid-range-shell.is-dragging .liquid-range-thumb,
  .simulator .liquid-range-shell input[type="range"]:focus-visible ~ .liquid-range-thumb,
  .simulator input[type="range"]:active::-webkit-slider-thumb,
  .simulator input[type="range"]:focus-visible::-webkit-slider-thumb,
  .phone-top span,
  .phone-periods {
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
    background:#ffffff;
  }
}

/* ------------------------------------------------------------------ */
/* Client review: the four regulator marks read as inconsistent sizes,  */
/* and the chips sat on the hero as separate white cards rather than    */
/* part of it.                                                         */
/*                                                                     */
/* Sizing: the marks range from 1:1 (ACPR) to 6.4:1 (AMF), so a single  */
/* height or a single width cannot balance them. Each gets a height cap */
/* tuned so the wordmarks share an optical weight, still bounded by the */
/* chip via max-width:100% so nothing spills.                          */
/* ------------------------------------------------------------------ */

.hero-partner-proof .proof-logo .cncef-mark-full { max-height:38px; }
.hero-partner-proof .proof-logo .orias-mark { max-height:31px; }
.hero-partner-proof .proof-logo .acpr-mark { width:auto; height:auto; max-height:38px; }
.hero-partner-proof .proof-logo .amf-mark { max-height:21px; }

/* Integrate the chips into the hero instead of stacking white cards on
   it: less fill, a lighter hairline, and a shadow that reads as contact
   rather than elevation. */
.hero-partner-proof > span {
  border:1px solid rgba(3,31,148,.07);
  background:rgba(255,255,255,.34);
  box-shadow:0 1px 0 rgba(255,255,255,.5) inset;
}

/* ------------------------------------------------------------------ */
/* Client review: the closing CTA sent people back to the same "Être   */
/* rappelé" modal as the hero, so the page ended by asking again       */
/* rather than by letting someone leave their details. It is now a      */
/* three-field form in place.                                          */
/* ------------------------------------------------------------------ */

.final-cta-form { display:grid; gap:12px; width:100%; }
.final-cta-fields { display:grid; gap:10px; }
.final-cta-form .field { display:grid; gap:5px; }
.final-cta-form label {
  color:rgba(15,11,30,.62);
  font-family:"Poppins",sans-serif;
  font-size:11px;
  font-weight:600;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.final-cta-form input {
  width:100%;
  height:46px;
  border:1px solid rgba(3,31,148,.16);
  border-radius:12px;
  background:#fff;
  padding:0 14px;
  color:var(--ink);
  font-family:"Poppins",sans-serif;
  font-size:14px;
}
.final-cta-form input::placeholder { color:rgba(15,11,30,.4); }
.final-cta-form input:focus-visible {
  border-color:rgba(3,31,148,.5);
  outline:2px solid rgba(3,31,148,.18);
  outline-offset:1px;
}
.final-cta-form .form-error { margin:0; font-size:12px; }
.final-cta-note { margin:0; color:rgba(15,11,30,.55); font-size:12px; }
.final-cta-note a { color:var(--blue); font-weight:600; }
.final-cta-form [data-final-cta-done] { color:var(--green); font-weight:600; }
@media (min-width:760px) {
  .final-cta-fields { grid-template-columns:repeat(3,minmax(0,1fr)); }
}

/* ------------------------------------------------------------------ */
/* Prévoyance: a five-step quote request collecting the same          */
/* information as the prevoyance-madelin.fr comparison form (family    */
/* composition, activity and caisse, income, priorities, contact).     */
/* No backend on this prototype, so it validates per step and          */
/* acknowledges; wire the submit when there is somewhere to send it.   */
/* ------------------------------------------------------------------ */

.devis-section { padding-block:clamp(56px,7vw,96px); }
.devis-card {
  display:grid;
  gap:clamp(24px,3vw,40px);
  border:1px solid rgba(3,31,148,.1);
  border-radius:24px;
  background:#fff;
  padding:clamp(24px,3.4vw,46px);
  box-shadow:0 30px 60px -44px rgba(3,18,82,.45);
}
.devis-intro h2 { margin:6px 0 10px; }
.devis-intro p { margin:0; color:var(--body); font-size:15px; line-height:1.7; }

.devis-steps {
  display:flex;
  flex-wrap:wrap;
  gap:8px 18px;
  margin:0;
  padding:0;
  list-style:none;
  border-bottom:1px solid rgba(3,31,148,.1);
  padding-bottom:16px;
}
.devis-steps li {
  display:flex;
  align-items:center;
  gap:8px;
  color:rgba(15,11,30,.45);
  font-family:"Poppins",sans-serif;
  font-size:12px;
  font-weight:600;
}
.devis-steps li > span {
  display:grid;
  width:24px;
  height:24px;
  place-items:center;
  border-radius:50%;
  background:rgba(3,31,148,.08);
  color:rgba(3,31,148,.6);
  font-size:11px;
  font-weight:700;
}
.devis-steps li.is-current { color:var(--blue); }
.devis-steps li.is-current > span { background:var(--blue); color:#fff; }
.devis-steps li.is-done > span { background:rgba(23,117,74,.14); color:var(--green); }

.devis-form { display:grid; gap:22px; }
.devis-step { display:grid; gap:16px; margin:0; border:0; padding:0; }
.devis-step legend {
  padding:0;
  color:var(--blue);
  font-family:"League Spartan",sans-serif;
  font-size:clamp(1.15rem,2vw,1.5rem);
  font-weight:700;
}
.devis-grid { display:grid; gap:14px; }
@media (min-width:720px) { .devis-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }

.devis-field { display:grid; gap:6px; min-width:0; }
.devis-field > label,
.devis-label {
  color:rgba(15,11,30,.66);
  font-family:"Poppins",sans-serif;
  font-size:12px;
  font-weight:600;
}
.devis-field input,
.devis-field select,
.devis-field textarea {
  width:100%;
  border:1px solid rgba(3,31,148,.16);
  border-radius:12px;
  background:#fff;
  padding:0 13px;
  color:var(--ink);
  font-family:"Poppins",sans-serif;
  font-size:14px;
}
.devis-field input,
.devis-field select { height:46px; }
.devis-field textarea { padding:12px 13px; line-height:1.6; resize:vertical; }
.devis-field input::placeholder,
.devis-field textarea::placeholder { color:rgba(15,11,30,.38); }
.devis-field input:focus-visible,
.devis-field select:focus-visible,
.devis-field textarea:focus-visible {
  border-color:rgba(3,31,148,.5);
  outline:2px solid rgba(3,31,148,.18);
  outline-offset:1px;
}
.devis-field [aria-invalid="true"],
.devis-field input.is-invalid,
.devis-field select.is-invalid { border-color:#b3261e; }

.devis-choices { display:grid; gap:8px; }
.devis-choices-inline { grid-template-columns:repeat(2,minmax(0,160px)); }
.devis-choice {
  display:flex;
  align-items:flex-start;
  gap:10px;
  border:1px solid rgba(3,31,148,.14);
  border-radius:12px;
  background:#fbfcff;
  padding:12px 14px;
  color:var(--ink);
  font-family:"Poppins",sans-serif;
  font-size:13.5px;
  line-height:1.5;
  cursor:pointer;
  transition:border-color .18s ease, background .18s ease;
}
.devis-choice:hover { border-color:rgba(3,31,148,.32); background:#f4f7ff; }
.devis-choice input { margin-top:2px; accent-color:var(--blue); flex:0 0 auto; }
.devis-choice:has(input:checked) { border-color:var(--blue); background:#eef2ff; }
.devis-choice:has(input:focus-visible) { outline:2px solid rgba(3,31,148,.24); outline-offset:2px; }

.devis-hint { margin:0; color:rgba(15,11,30,.55); font-size:12.5px; line-height:1.6; }
.devis-error {
  margin:0;
  border-radius:10px;
  background:rgba(179,38,30,.08);
  padding:10px 12px;
  color:#8c1d18;
  font-size:13px;
}
.devis-actions { display:flex; flex-wrap:wrap; gap:10px; }
.devis-done {
  border:1px solid rgba(23,117,74,.24);
  border-radius:14px;
  background:rgba(23,117,74,.07);
  padding:16px 18px;
}
.devis-done strong { color:var(--green); font-family:"League Spartan",sans-serif; font-size:16px; }
.devis-done p { margin:6px 0 0; color:var(--body); font-size:13.5px; }

/* ------------------------------------------------------------------ */
/* Nav level one is labels only. The solution objects used to sit next  */
/* to each label; they read as clutter beside the ALYOR logo, so they   */
/* were removed on 10 September 2026. The objects still carry the       */
/* mega-panel spotlight, and the submenu rows keep their line glyphs.   */
/* ------------------------------------------------------------------ */

.nav-mega-trigger > a {
  display:inline-flex;
  align-items:center;
  min-width:0;
  white-space:nowrap;
}

/* ------------------------------------------------------------------ */
/* "Être rappelé" and "Parler à un conseiller" used to scroll people   */
/* up into the simulator and show its contact screen, which ran the    */
/* estimator to get there. Those CTAs now open a plain three-field      */
/* callback dialog. The simulator's own "Recevoir votre simulation      */
/* affinée" still uses the in-simulator screen, because that one is     */
/* about the simulation it just produced.                              */
/* ------------------------------------------------------------------ */

.callback-dialog {
  width:min(440px,calc(100vw - 32px));
  max-height:calc(100vh - 40px);
  border:1px solid rgba(3,31,148,.12);
  border-radius:22px;
  background:#fff;
  padding:0;
  color:var(--ink);
  box-shadow:0 40px 90px -50px rgba(3,18,82,.6);
  overscroll-behavior:contain;
}
.callback-dialog::backdrop { background:rgba(6,14,48,.55); }
.callback-form {
  display:grid;
  gap:12px;
  padding:clamp(22px,4vw,32px);
}
.callback-form h2 {
  margin:2px 0 0;
  color:var(--blue);
  font-family:"League Spartan",sans-serif;
  font-size:clamp(1.35rem,3vw,1.75rem);
  line-height:1.1;
}
.callback-lede { margin:0 0 4px; color:var(--body); font-size:14px; line-height:1.65; }
.callback-field { display:grid; gap:5px; }
.callback-field label {
  color:rgba(15,11,30,.66);
  font-family:"Poppins",sans-serif;
  font-size:12px;
  font-weight:600;
}
.callback-field input {
  width:100%;
  height:46px;
  border:1px solid rgba(3,31,148,.16);
  border-radius:12px;
  background:#fff;
  padding:0 13px;
  color:var(--ink);
  font-family:"Poppins",sans-serif;
  font-size:14px;
}
.callback-field input::placeholder { color:rgba(15,11,30,.38); }
.callback-field input:focus-visible {
  border-color:rgba(3,31,148,.5);
  outline:2px solid rgba(3,31,148,.18);
  outline-offset:1px;
}
.callback-field input.is-invalid { border-color:#b3261e; }
.callback-form .form-error { margin:0; font-size:12.5px; }
.callback-note { margin:0; color:rgba(15,11,30,.55); font-size:12.5px; text-align:center; }
.callback-note a { color:var(--blue); font-weight:600; }
.callback-close {
  position:absolute;
  top:12px;
  right:12px;
  display:grid;
  width:34px;
  height:34px;
  place-items:center;
  border:1px solid rgba(3,31,148,.12);
  border-radius:50%;
  background:#fff;
  color:rgba(15,11,30,.6);
  cursor:pointer;
}
.callback-close:hover { background:#f4f6ff; color:var(--blue); }
.callback-close svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; }
.callback-done {
  border:1px solid rgba(23,117,74,.24);
  border-radius:14px;
  background:rgba(23,117,74,.07);
  padding:14px 16px;
}
.callback-done strong { color:var(--green); font-family:"League Spartan",sans-serif; font-size:15px; }
.callback-done p { margin:5px 0 0; color:var(--body); font-size:13px; }

/* The navbar CTA was being squeezed to 104px by the nav row and broke onto
   three lines. Give it room for two at most, and stop flex shrinking it. */
.nav-actions .button {
  width:122px;
  flex:0 0 auto;
  text-wrap:balance;
  line-height:1.25;
}

/* "Notre recherche" is the library, not a solution, so its mega-panel
   spotlight shows the same clay bookshelf as the home page library card
   rather than borrowing the Retraite staircase. Same five objects, scaled
   to the spotlight's 168px art box. */
.nav-mega-spotlight .nav-spotlight-shelf {
  position:absolute;
  right:14px;
  bottom:19px;
  left:auto;
  top:auto;
  width:158px;
  height:136px;
  border-radius:16px 16px 10px 10px;
  transition:transform 220ms ease;
}
.nav-mega-spotlight .nav-spotlight-shelf .shelf {
  left:8px;
  right:8px;
  height:54px;
  gap:4px;
  padding:4px 5px 6px;
  border-bottom-width:5px;
  border-radius:8px;
}
.nav-mega-spotlight .nav-spotlight-shelf .shelf-top { top:8px; bottom:auto; }
.nav-mega-spotlight .nav-spotlight-shelf .shelf-bottom { bottom:9px; top:auto; }
.nav-mega-spotlight .nav-spotlight-shelf .shelf img {
  position:static;
  right:auto;
  bottom:auto;
  width:29px;
  height:38px;
  padding:3px;
  border-radius:7px;
  object-fit:contain;
}
.nav-mega-spotlight .nav-spotlight-shelf .shelf-bottom img { width:34px; }
.nav-mega-spotlight .nav-spotlight-shelf > b,
.nav-mega-spotlight .nav-spotlight-shelf > em {
  width:15px;
  height:16px;
  bottom:-9px;
  border-radius:0 0 6px 6px;
}
.nav-mega-spotlight .nav-spotlight-shelf > b { left:17px; right:auto; }
.nav-mega-spotlight .nav-spotlight-shelf > em { right:17px; left:auto; }
.nav-mega-spotlight:hover .nav-spotlight-shelf,
.nav-mega-spotlight:focus-visible .nav-spotlight-shelf {
  transform:translate(-4px,-3px) rotate(-2deg) scale(1.04);
}
@media (prefers-reduced-motion: reduce) {
  .nav-mega-spotlight .nav-spotlight-shelf { transition:none; }
  .nav-mega-spotlight:hover .nav-spotlight-shelf,
  .nav-mega-spotlight:focus-visible .nav-spotlight-shelf { transform:none; }
}

/* ------------------------------------------------------------------ */
/* Optional qualifying questions on every contact CTA: needs, tax      */
/* regime and caisse. Collapsed by default so the three required       */
/* fields stay the whole ask.                                          */
/* ------------------------------------------------------------------ */

.cta-optional { margin:2px 0; }
.cta-optional > summary {
  display:flex;
  align-items:center;
  gap:8px;
  border-radius:10px;
  padding:8px 2px;
  color:var(--blue);
  cursor:pointer;
  font-family:"Poppins",sans-serif;
  font-size:13px;
  font-weight:600;
  list-style:none;
}
.cta-optional > summary::-webkit-details-marker { display:none; }
.cta-optional > summary::before {
  content:"+";
  display:grid;
  width:18px;
  height:18px;
  place-items:center;
  border-radius:50%;
  background:rgba(3,31,148,.09);
  font-size:13px;
  line-height:1;
}
.cta-optional[open] > summary::before { content:"−"; }
.cta-optional > summary span {
  border-radius:99px;
  background:rgba(3,31,148,.07);
  padding:2px 7px;
  color:rgba(15,11,30,.55);
  font-size:10px;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.cta-optional > summary:focus-visible { outline:2px solid rgba(3,31,148,.28); outline-offset:2px; }
.cta-optional-body { display:grid; gap:11px; padding:4px 0 2px; }
.opt-label,
.opt-field label {
  color:rgba(15,11,30,.66);
  font-family:"Poppins",sans-serif;
  font-size:12px;
  font-weight:600;
}
.opt-field { display:grid; gap:5px; }
.per-registration { display:grid; gap:11px; margin:4px 0 8px; }
.per-registration[hidden] { display:none; }
.opt-field select,
.opt-field input,
.opt-field textarea {
  width:100%;
  height:44px;
  border:1px solid rgba(3,31,148,.16);
  border-radius:12px;
  background:#fff;
  padding:0 12px;
  color:var(--ink);
  font-family:"Poppins",sans-serif;
  font-size:13.5px;
}
.opt-field textarea { min-height:76px; height:auto; padding-top:10px; padding-bottom:10px; resize:vertical; }
.opt-field select:focus-visible,
.opt-field input:focus-visible,
.opt-field textarea:focus-visible {
  border-color:rgba(3,31,148,.5);
  outline:2px solid rgba(3,31,148,.18);
  outline-offset:1px;
}
.opt-choices { display:flex; flex-wrap:wrap; gap:7px; }
.opt-choice {
  display:inline-flex;
  align-items:center;
  gap:7px;
  border:1px solid rgba(3,31,148,.14);
  border-radius:99px;
  background:#fbfcff;
  padding:7px 12px;
  color:var(--ink);
  cursor:pointer;
  font-family:"Poppins",sans-serif;
  font-size:13px;
  transition:border-color .18s ease, background .18s ease;
}
.opt-choice:hover { border-color:rgba(3,31,148,.32); background:#f4f7ff; }
.opt-choice input { accent-color:var(--blue); }
.opt-choice:has(input:checked) { border-color:var(--blue); background:#eef2ff; }
.opt-choice:has(input:focus-visible) { outline:2px solid rgba(3,31,148,.24); outline-offset:2px; }

/* On the navy screens the optional block has to invert like the rest. */
.result-screen .cta-optional > summary,
.contact-screen .cta-optional > summary,
.confirmation-screen .cta-optional > summary { color:#fff; }
.result-screen .cta-optional > summary::before,
.contact-screen .cta-optional > summary::before,
.confirmation-screen .cta-optional > summary::before { background:rgba(255,255,255,.18); color:#fff; }
.result-screen .cta-optional > summary span,
.contact-screen .cta-optional > summary span,
.confirmation-screen .cta-optional > summary span { background:rgba(255,255,255,.16); color:#dfe4fd; }
.contact-screen .opt-label,
.contact-screen .opt-field label { color:#dfe4fd; }
.contact-screen .opt-choice { border-color:rgba(255,255,255,.3); background:rgba(255,255,255,.1); color:#fff; }
.contact-screen .opt-choice:hover { border-color:rgba(255,255,255,.55); background:rgba(255,255,255,.18); }
.contact-screen .opt-choice:has(input:checked) { border-color:#fff; background:rgba(255,255,255,.24); }

/* ------------------------------------------------------------------ */
/* Client review, 10 September 2026. From the call: the "Être rappelé"  */
/* label sat off-centre, the optional block on the navy closing card    */
/* was blue on blue, the simulator's profile rates were too faint, and  */
/* the editable amount did not look editable. Found while fixing those: */
/* the optional checkboxes stretched into ovals on the navy contact     */
/* step, the quote-form radios did the same, and long French words in   */
/* the headings gave the product pages a sideways scroll on a phone.    */
/* Level one of the menu lost its objects; that sits further up.        */
/* ------------------------------------------------------------------ */

/* 1. The avatar earned an extra 10px of left padding, which pushed the
      label off the button's centre line. Even padding, centred label. */
.staff-cta { padding-left:21px; }

/* 2. The closing CTA card is a navy gradient, so its background-color is
      transparent and the light-surface form colours applied unchanged:
      #031f94 labels on a #031f94 card. Invert the whole block, the same
      way the simulator's own navy screens already do. */
.final-cta-card .field label,
.final-cta-card .final-cta-fields label { color:#dfe4fd; }
.final-cta-card .cta-optional > summary { color:#fff; }
.final-cta-card .cta-optional > summary::before { background:rgba(255,255,255,.18); color:#fff; }
.final-cta-card .cta-optional > summary span { background:rgba(255,255,255,.16); color:#dfe4fd; }
.final-cta-card .opt-label,
.final-cta-card .opt-field label { color:#dfe4fd; }
.final-cta-card .opt-choice { border-color:rgba(255,255,255,.3); background:rgba(255,255,255,.1); color:#fff; }
.final-cta-card .opt-choice:hover { border-color:rgba(255,255,255,.55); background:rgba(255,255,255,.18); }
.final-cta-card .opt-choice:has(input:checked) { border-color:#fff; background:rgba(255,255,255,.24); }
.final-cta-card .cta-optional { border-top-color:rgba(255,255,255,.18); }

/* 3. Profil investisseur, rebuilt on the patrimy.fr pattern: the rate is
      the headline and sits above the profile name, filled with a brand
      gradient (background-clip:text), and the orange runs right around
      the card as a gradient border instead of a single bottom rule.
      The rates themselves are unchanged: 3, 5 and 9 % as before. */
/* The grey track and its sliding pill were the old selection cue. Each card
   now carries its own border, so the track only reads as a smudge behind
   them. The two-way switcher above keeps both. */
.simulator .choice-grid-three {
  gap:9px;
  border:0;
  background:none;
  padding:0;
  box-shadow:none;
}
.simulator .choice-grid-three::before { display:none; }
.simulator .choice-grid-three button {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:1px;
  border:1.5px solid transparent;
  border-radius:16px;
  padding:11px 7px 10px;
  background:
    linear-gradient(#ffffff,#ffffff) padding-box,
    linear-gradient(135deg,#f4a172 0%,#ec6c2d 48%,#b3450f 100%) border-box;
  box-shadow:0 9px 20px -16px rgba(179,69,15,.5);
  transition:box-shadow .2s ease, transform .2s ease, background .2s ease;
}
.simulator .choice-grid-three button:hover {
  transform:translateY(-1px);
  box-shadow:0 13px 24px -14px rgba(179,69,15,.55);
}
.simulator .choice-grid-three button.is-active {
  border:1.5px solid transparent;
  background:
    linear-gradient(#ffffff,#fff7f2) padding-box,
    linear-gradient(135deg,#ec6c2d 0%,#b3450f 55%,#8f3409 100%) border-box;
  box-shadow:0 0 0 3px rgba(236,108,45,.15),0 14px 26px -16px rgba(179,69,15,.6);
}
.simulator .choice-grid-three .choice-rate {
  display:block;
  opacity:1;
  color:#b3450f;
  font-family:"League Spartan",sans-serif;
  font-size:clamp(23px,6.4vw,28px);
  font-weight:900;
  line-height:1.02;
  letter-spacing:-.015em;
}
/* The gradient fill only replaces the flat colour where it can be clipped
   to the glyphs; otherwise the flat #b3450f above stands. */
@supports ((-webkit-background-clip:text) or (background-clip:text)) {
  .simulator .choice-grid-three .choice-rate {
    background-image:linear-gradient(180deg,#ec6c2d 0%,#b3450f 100%);
    -webkit-background-clip:text;
    background-clip:text;
    -webkit-text-fill-color:transparent;
  }
  .simulator .choice-grid-three button.is-active .choice-rate {
    background-image:linear-gradient(180deg,#f0782f 0%,#8f3409 100%);
  }
}
.simulator .choice-grid-three .choice-subrate {
  color:rgba(15,11,30,.54);
  font-family:"Poppins",sans-serif;
  font-size:9.5px;
  font-weight:600;
  line-height:1.15;
}
.simulator .choice-grid-three button.is-active .choice-subrate { color:rgba(3,31,148,.72); }
.simulator .choice-grid-three button strong {
  font-family:"Poppins",sans-serif;
  font-size:12.5px;
  font-weight:600;
  letter-spacing:.005em;
  color:rgba(15,11,30,.6);
}
.simulator .choice-grid-three button.is-active strong { color:var(--blue); }
/* The two-way switcher keeps its own pill; only its selected side picks up
   the orange rule. */
.simulator .segmented button.is-active { box-shadow:inset 0 -2px 0 var(--orange); }

/* 4. The amount pill was styled like the read-only outputs beside it, so
      nobody tried typing in it. Orange rule, pencil, text cursor, and a
      focus ring; plus one line of copy above the controls. */
.simulator .amount-entry {
  position:relative;
  border:1.5px solid rgba(236,108,45,.5);
  background:#fff;
  cursor:text;
  transition:border-color .18s ease, box-shadow .18s ease;
}
.simulator .amount-entry::before {
  content:"";
  width:13px;
  height:13px;
  flex:0 0 auto;
  background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d4551a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4Z'/%3E%3C/svg%3E") center/contain no-repeat;
}
.simulator .amount-entry:hover { border-color:var(--orange); }
.simulator .amount-entry:focus-within {
  border-color:var(--orange);
  box-shadow:0 0 0 3px rgba(236,108,45,.2);
}
.simulator .amount-entry input { cursor:text; }
.simulator-entry-hint {
  margin:0 0 14px;
  display:flex;
  align-items:center;
  gap:7px;
  color:var(--body);
  font-size:12.5px;
}
.simulator-entry-hint svg { width:14px; height:14px; flex:0 0 auto; stroke:#d4551a; stroke-width:2; fill:none; stroke-linecap:round; stroke-linejoin:round; }

/* 5. On the navy contact step every input picks up the full-width field
      styling, which stretched the optional checkboxes into ovals with a
      white block inside. Keep them checkbox-sized. */
.opt-choice input[type="checkbox"] {
  width:15px;
  height:15px;
  min-height:0;
  flex:0 0 auto;
  margin:0;
  padding:0;
  border-radius:4px;
  background:none;
  appearance:auto;
  -webkit-appearance:checkbox;
}
.contact-screen .opt-choice {
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:7px 12px;
}
.contact-screen .opt-choice span { font-size:13px; letter-spacing:0; text-transform:none; }

/* The optional block inside the santé quote form. Same collapse as the CTA
   forms, but the fields inside keep the devis field styling. */
.devis-optional { margin:2px 0; border-top:1px solid rgba(3,31,148,.1); padding-top:4px; }
.devis-optional .cta-optional-body { gap:14px; padding-top:6px; }
.devis-optional .devis-choices-inline,
.devis-form-short .devis-choices-inline { grid-template-columns:repeat(auto-fit,minmax(150px,196px)); }

/* 6. The radios and checkboxes inside the quote forms were picking up the
      full-width field sizing from .devis-field input, which blew them up
      into 46px circles with the label spilling out of the card. This is
      what "peu esthétique" was about on the prévoyance form. */
.devis-choice input[type="radio"],
.devis-choice input[type="checkbox"] {
  width:16px;
  height:16px;
  min-height:0;
  flex:0 0 auto;
  margin:1px 0 0;
  border:0;
  border-radius:0;
  background:none;
  padding:0;
  box-shadow:none;
  appearance:auto;
  -webkit-appearance:auto;
}
.devis-choice input[type="radio"] { border-radius:50%; }
.devis-choice span { min-width:0; overflow-wrap:anywhere; }

/* 7. Long French words in the uppercase display headings ("complémentaire",
      "indépendants") are wider than a 360px phone, which is what gave the
      product pages a sideways scroll. Let them break, lift the 15ch caps
      that squeezed the column narrower than the word, and step the
      section headings down on the narrowest phones so a break is rare. */
@media (max-width:640px) {
  h1, h2, h3 { overflow-wrap:anywhere; }
  /* A 15ch cap is narrower than a phone column, so it forced the longest
     word out of the card rather than shortening the line. */
  .product-section h2,
  .product-simulator-copy h2,
  .section-heading h2,
  .faq-heading h2 { max-width:none; }
}
/* Two steps down on the section headings below 400px, so the longest words
   fit the line and the break above stays a safety net rather than the
   normal case. */
@media (max-width:400px) {
  .section-heading h2,
  .faq-heading h2 { font-size:min(2rem, 7.2vw); line-height:1.14; }
  .product-hero-copy h1 { font-size:min(3rem, 12.5vw); }
}

.accent-word { color: var(--orange, #ec6c2d); font-weight: 700; }
.savings-contact { margin-top: 24px; padding-top: 22px; border-top: 1px solid rgba(3,31,148,.14); display: grid; gap: 10px; }
.savings-contact h3 { margin: 0 0 4px; }
.savings-contact input { width: 100%; }

/* 2026-09-16 mobile hero copy fix */
.benefit-list .benefit-copy { min-width:0; display:block; line-height:1.45; }
.benefit-list .benefit-copy strong { color:var(--orange); font-weight:700; white-space:nowrap; }
@media (max-width:900px) {
  .benefit-list li { align-items:flex-start; }
  .benefit-list .check-icon { margin-top:2px; }
}
