:root {
  --ivory: #f7f3ea;
  --ivory-2: #eee8dc;
  --paper: #fffdf8;
  --ink: #15151a;
  --graphite: #171820;
  --graphite-2: #22232d;
  --slate: #686873;
  --line: rgba(21, 21, 26, 0.14);
  --violet: #6d42d9;
  --violet-bright: #8157f1;
  --violet-soft: #e7deff;
  --yellow: #f2c94c;
  --white: #ffffff;
  --shadow: 0 24px 70px rgba(20, 18, 31, 0.12);
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--ivory);
  color: var(--ink);
  font-family: "Segoe UI", "Avenir Next", Arial, sans-serif;
  text-rendering: optimizeLegibility;
}

body,
button,
input,
textarea {
  font: inherit;
}

a {
  color: inherit;
  text-decoration: none;
}

svg {
  display: block;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.skip-link {
  position: fixed;
  z-index: 1000;
  top: 12px;
  left: 12px;
  padding: 12px 18px;
  border-radius: 10px;
  background: var(--white);
  color: var(--ink);
  transform: translateY(-160%);
  transition: transform 180ms ease;
}

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

.site-page {
  min-height: 100vh;
  overflow: hidden;
}

.section-shell,
.site-header,
.footer-main,
.footer-bottom {
  width: min(100% - 48px, 1340px);
  margin-inline: auto;
}

.section-pad {
  padding-block: 116px;
}

.site-header {
  position: relative;
  z-index: 50;
  min-height: 92px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 36px;
  border-bottom: 1px solid var(--line);
}

.brand {
  position: relative;
  display: inline-flex;
  align-items: baseline;
  gap: 7px;
  width: max-content;
  font-size: 31px;
  font-weight: 800;
  letter-spacing: -0.065em;
  line-height: 1;
}

.brand-one {
  color: var(--violet);
  font-weight: 750;
}

.brand i {
  position: absolute;
  top: -4px;
  right: -9px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--yellow);
  box-shadow: 0 0 0 4px rgba(242, 201, 76, 0.17);
}

.desktop-nav {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: clamp(20px, 2.5vw, 42px);
}

.desktop-nav a {
  position: relative;
  padding-block: 34px;
  color: #2c2c34;
  font-size: 14px;
  font-weight: 650;
  white-space: nowrap;
}

.desktop-nav a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: -1px;
  height: 3px;
  border-radius: 999px;
  background: var(--violet);
  transition: right 180ms ease;
}

.desktop-nav a:hover::after,
.desktop-nav a.active::after {
  right: 0;
}

.desktop-nav a.active {
  color: var(--violet);
}

.header-actions {
  display: flex;
  align-items: center;
  gap: 14px;
}

.language-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 11px 13px;
  color: var(--slate);
  font-size: 13px;
  font-weight: 650;
  border: 1px solid var(--line);
  border-radius: 12px;
}

.language-link .selected {
  color: var(--violet);
}

.button {
  display: inline-flex;
  min-height: 54px;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 14px 24px;
  border: 1px solid var(--violet);
  border-radius: 12px;
  background: linear-gradient(135deg, var(--violet), var(--violet-bright));
  color: var(--white);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.15;
  box-shadow: 0 10px 28px rgba(109, 66, 217, 0.21);
  transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease;
}

.button:hover {
  transform: translateY(-2px);
  box-shadow: 0 15px 34px rgba(109, 66, 217, 0.3);
}

.button:focus-visible,
a:focus-visible,
summary:focus-visible {
  outline: 3px solid rgba(109, 66, 217, 0.38);
  outline-offset: 4px;
}

.button svg,
.text-link svg {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
}

.button-small {
  min-height: 44px;
  padding: 11px 18px;
  font-size: 13px;
}

.button-outline {
  border-color: rgba(21, 21, 26, 0.75);
  background: transparent;
  color: var(--ink);
  box-shadow: none;
}

.button-outline:hover {
  border-color: var(--violet);
  background: var(--white);
  box-shadow: 0 12px 28px rgba(21, 21, 26, 0.08);
}

.button-light {
  border-color: rgba(255, 255, 255, 0.7);
  background: var(--white);
  color: var(--graphite);
  box-shadow: none;
}

.mobile-menu {
  display: none;
  position: relative;
}

.mobile-menu summary {
  list-style: none;
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 11px;
  border: 1px solid var(--line);
  border-radius: 10px;
  font-weight: 700;
  cursor: pointer;
}

.mobile-menu summary::-webkit-details-marker {
  display: none;
}

.mobile-menu summary svg {
  width: 19px;
  height: 19px;
}

.mobile-menu nav {
  position: absolute;
  top: calc(100% + 12px);
  right: 0;
  width: min(310px, calc(100vw - 32px));
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--paper);
  box-shadow: var(--shadow);
}

.mobile-menu nav a {
  display: block;
  padding: 13px 12px;
  border-radius: 9px;
  font-weight: 650;
}

.mobile-menu nav a:hover {
  background: var(--violet-soft);
  color: var(--violet);
}

.eyebrow {
  margin: 0 0 22px;
  color: var(--violet);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.19em;
  line-height: 1.4;
  text-transform: uppercase;
}

.home-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 0.88fr) minmax(590px, 1.12fr);
  min-height: 760px;
  isolation: isolate;
}

.home-hero::before {
  content: "";
  position: absolute;
  z-index: -2;
  inset: 0;
  background: var(--ivory);
}

.home-hero::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0 0 0 48%;
  background:
    radial-gradient(circle at 52% 48%, rgba(109, 66, 217, 0.21), transparent 30%),
    linear-gradient(145deg, #20212a, #111219 72%);
  clip-path: polygon(14% 0, 100% 0, 100% 100%, 0 100%);
}

.hero-copy {
  width: min(100% - 48px, 640px);
  align-self: center;
  justify-self: end;
  padding: 72px 50px 74px 0;
}

.hero-copy h1 {
  max-width: 700px;
  margin: 0;
  font-size: clamp(48px, 5.25vw, 78px);
  font-weight: 790;
  letter-spacing: -0.062em;
  line-height: 0.99;
}

.hero-lead {
  max-width: 620px;
  margin: 28px 0 0;
  color: #484851;
  font-size: 17px;
  line-height: 1.75;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 34px;
}

.audience-line {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 32px 0 0;
  color: #51515a;
  font-size: 13px;
  font-weight: 650;
}

.audience-line svg {
  width: 20px;
  height: 20px;
  color: var(--violet);
}

.hero-map-wrap {
  align-self: center;
  justify-self: center;
  width: 100%;
  padding: 42px 16px 46px clamp(48px, 4vw, 72px);
}

.system-map {
  position: relative;
  isolation: isolate;
  width: min(100%, 680px);
  min-height: 590px;
  margin-inline: auto;
  border: 0;
  background: transparent;
  color: var(--white);
  box-shadow: none;
  overflow: visible;
}

.map-grid {
  position: absolute;
  inset: 0;
  opacity: 0.025;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.09) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.09) 1px, transparent 1px);
  background-size: 38px 38px;
  mask-image: radial-gradient(circle at 50% 44%, black, transparent 72%);
  transition: opacity 420ms ease;
}

.system-map.is-expanded .map-grid {
  opacity: 0.055;
}

.map-orbits {
  position: absolute;
  z-index: 1;
  top: 46%;
  left: 50%;
  width: 326px;
  height: 326px;
  opacity: 0.82;
  transform: translate(-50%, -50%) scale(0.84);
  transition: opacity 420ms ease, transform 620ms cubic-bezier(0.2, 0.8, 0.2, 1);
  pointer-events: none;
}

.system-map.is-expanded .map-orbits {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}

.map-orbits span {
  position: absolute;
  inset: 0;
  border: 1.5px solid rgba(152, 116, 255, 0.9);
  border-radius: 50%;
  box-shadow:
    0 0 8px rgba(139, 92, 246, 0.7),
    0 0 34px rgba(112, 72, 210, 0.28),
    inset 0 0 34px rgba(112, 72, 210, 0.16);
}

.map-lines {
  position: absolute;
  z-index: 2;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  overflow: visible;
  transform: scale(0.78);
  transform-origin: 50% 46%;
  transition: opacity 360ms ease 80ms, transform 600ms cubic-bezier(0.2, 0.8, 0.2, 1);
  pointer-events: none;
}

.system-map.is-expanded .map-lines {
  opacity: 1;
  transform: scale(1);
}

.map-lines path,
.map-ring {
  fill: none;
  stroke: url("#hero-map-gradient");
  stroke-width: 0.34;
  stroke-linecap: round;
  opacity: 0.94;
  vector-effect: non-scaling-stroke;
}

.map-ring {
  stroke-width: 0.32;
}

.map-junction {
  fill: #fff;
  stroke: rgba(23, 24, 32, 0.95);
  stroke-width: 0.38;
  filter: drop-shadow(0 0 3px #9b7cff);
}

.map-node {
  appearance: none;
  position: absolute;
  z-index: 5;
  display: flex;
  width: 118px;
  margin: 0;
  padding: 0;
  flex-direction: column;
  align-items: center;
  gap: 9px;
  border: 0;
  background: transparent;
  color: #f6f3ff;
  font: inherit;
  opacity: 0;
  visibility: hidden;
  transform: scale(0.62) translateY(12px);
  transition:
    opacity 260ms ease,
    transform 440ms cubic-bezier(0.2, 0.8, 0.2, 1),
    visibility 0s linear 440ms;
  pointer-events: none;
  cursor: pointer;
  text-align: center;
}

.system-map.is-expanded .map-node {
  opacity: 1;
  visibility: visible;
  transform: scale(1) translateY(0);
  transition-delay: 110ms, 70ms, 0s;
  pointer-events: auto;
}

.system-map.is-expanded .map-node.is-active {
  z-index: 8;
  transform: scale(1.16) translateY(-3px);
  transition-delay: 0s;
}

.map-node:focus-visible,
.phone-core:focus-visible {
  outline: 2px solid var(--yellow);
  outline-offset: 5px;
}

.map-node-icon {
  display: grid;
  width: 74px;
  height: 74px;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.26);
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(37, 41, 53, 0.84), rgba(23, 27, 38, 0.9));
  box-shadow:
    0 14px 26px rgba(0, 0, 0, 0.22),
    inset 0 1px rgba(255, 255, 255, 0.05);
  transition:
    border-color 240ms ease,
    background 240ms ease,
    box-shadow 240ms ease;
}

.map-node.is-active .map-node-icon {
  border-color: rgba(184, 151, 255, 0.74);
  background: linear-gradient(145deg, rgba(66, 48, 109, 0.96), rgba(27, 30, 42, 0.96));
  box-shadow:
    0 18px 36px rgba(0, 0, 0, 0.32),
    0 0 28px rgba(129, 87, 241, 0.28),
    inset 0 1px rgba(255, 255, 255, 0.08);
}

.map-node-icon svg {
  width: 36px;
  height: 36px;
  color: #a878ff;
  stroke-width: 1.65;
  filter: drop-shadow(0 0 8px rgba(152, 100, 255, 0.35));
}

.map-node-label {
  max-width: 118px;
  font-size: 13px;
  font-weight: 680;
  line-height: 1.22;
}

.node-a { top: 7%; left: 7%; }
.node-b { top: 7%; right: 7%; }
.node-c { top: 38%; left: 5%; }
.node-d { top: 38%; right: 5%; }
.node-e { bottom: 10%; left: 7%; }
.node-f { right: 7%; bottom: 10%; }

.phone-core {
  appearance: none;
  position: absolute;
  z-index: 4;
  top: 46%;
  left: 50%;
  width: 324px;
  height: 370px;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  transform: translate(-50%, -50%) scale(0.92);
  transition: transform 620ms cubic-bezier(0.2, 0.8, 0.2, 1);
  cursor: zoom-in;
}

.system-map.is-expanded .phone-core {
  transform: translate(-50%, -50%) scale(1.055);
  cursor: default;
}

.phone-core::before,
.phone-core::after {
  content: "";
  position: absolute;
  z-index: 0;
  top: 45%;
  left: 50%;
  border-radius: 50%;
  transform: translate(-50%, -50%);
}

.phone-core::before {
  width: 270px;
  height: 270px;
  background: radial-gradient(circle, rgba(121, 79, 226, 0.3), rgba(86, 54, 168, 0.09) 53%, transparent 71%);
  filter: blur(4px);
  transition: transform 620ms cubic-bezier(0.2, 0.8, 0.2, 1), opacity 420ms ease;
}

.phone-core::after {
  width: 232px;
  height: 232px;
  border: 1px solid rgba(242, 201, 76, 0.16);
  box-shadow: 0 0 30px rgba(242, 201, 76, 0.06);
}

.phone-core img {
  position: absolute;
  z-index: 2;
  top: 30px;
  left: 50%;
  width: 112%;
  height: auto;
  transform: translateX(-50%);
  filter: drop-shadow(0 22px 24px rgba(0, 0, 0, 0.42));
  transition: filter 420ms ease;
}

.system-map.is-expanded .phone-core img {
  filter: drop-shadow(0 26px 30px rgba(0, 0, 0, 0.48));
}

.core-copy {
  position: absolute;
  z-index: 5;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  text-align: center;
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.75);
  transition: opacity 220ms ease, transform 260ms ease;
}

.core-copy strong {
  font-size: 22px;
  letter-spacing: -0.02em;
}

.core-copy span {
  color: #d4d0dc;
  font-size: 12px;
}

.system-map.is-detail-active .core-copy {
  opacity: 0;
  transform: translateY(8px);
}

.node-detail {
  position: absolute;
  z-index: 9;
  bottom: 18px;
  left: 50%;
  width: min(340px, 54%);
  min-height: 88px;
  padding: 15px 18px;
  border: 1px solid rgba(184, 151, 255, 0.3);
  border-radius: 16px;
  background: linear-gradient(145deg, rgba(38, 40, 53, 0.96), rgba(20, 23, 32, 0.96));
  color: #e9e6f0;
  opacity: 0;
  visibility: hidden;
  transform: translateX(-50%) translateY(12px) scale(0.9);
  box-shadow:
    0 20px 38px rgba(0, 0, 0, 0.34),
    0 0 26px rgba(129, 87, 241, 0.13),
    inset 0 1px rgba(255, 255, 255, 0.05);
  transition:
    opacity 220ms ease,
    transform 340ms cubic-bezier(0.2, 0.8, 0.2, 1),
    visibility 0s linear 340ms;
  pointer-events: none;
}

.system-map.is-detail-active .node-detail {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0) scale(1);
  transition-delay: 0s;
}

.node-detail strong {
  display: block;
  margin-bottom: 5px;
  color: #c3aaff;
  font-size: 13px;
  line-height: 1.2;
}

.node-detail p {
  margin: 0;
  color: #c8c5cf;
  font-size: 11px;
  line-height: 1.42;
}

.section-heading {
  max-width: 820px;
  margin-bottom: 52px;
}

.section-heading h2,
.advisory-panel h2,
.contact-band h2 {
  margin: 0;
  font-size: clamp(36px, 4.2vw, 60px);
  font-weight: 780;
  letter-spacing: -0.055em;
  line-height: 1.06;
}

.section-heading > p:last-child,
.advisory-panel > div > p:last-child,
.contact-band > div > p:last-child {
  max-width: 740px;
  margin: 22px 0 0;
  color: var(--slate);
  font-size: 17px;
  line-height: 1.72;
}

.feature-grid {
  display: grid;
  gap: 16px;
}

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

.feature-card {
  position: relative;
  min-height: 280px;
  padding: 30px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(255, 253, 248, 0.7);
  overflow: hidden;
  transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.feature-card::after {
  content: "";
  position: absolute;
  right: -70px;
  bottom: -90px;
  width: 180px;
  height: 180px;
  border: 1px solid rgba(109, 66, 217, 0.16);
  border-radius: 50%;
}

.feature-card:hover {
  transform: translateY(-4px);
  border-color: rgba(109, 66, 217, 0.35);
  box-shadow: 0 18px 42px rgba(21, 21, 26, 0.08);
}

.icon-badge {
  display: inline-flex;
  width: 48px;
  height: 48px;
  align-items: center;
  justify-content: center;
  border-radius: 13px;
  background: var(--violet-soft);
  color: var(--violet);
}

.icon-badge svg {
  width: 23px;
  height: 23px;
  stroke-width: 1.8;
}

.feature-card h3,
.channel-card h3,
.audience-grid h3,
.principles-grid h3,
.article-grid h3 {
  margin: 28px 0 12px;
  font-size: 20px;
  font-weight: 750;
  letter-spacing: -0.025em;
}

.feature-card p,
.channel-card p,
.audience-grid p,
.principles-grid p,
.article-grid p {
  margin: 0;
  color: var(--slate);
  font-size: 14px;
  line-height: 1.72;
}

.virtual-fax-security-grid .feature-card {
  min-height: 304px;
  background:
    linear-gradient(145deg, rgba(255, 253, 248, 0.97), rgba(231, 222, 255, 0.42));
}

.virtual-fax-security-grid .feature-card:nth-child(1),
.virtual-fax-security-grid .feature-card:nth-child(5) {
  border-color: rgba(109, 66, 217, 0.28);
}

.virtual-fax-security-grid .feature-card:nth-child(1) .icon-badge,
.virtual-fax-security-grid .feature-card:nth-child(5) .icon-badge {
  background: var(--violet);
  color: var(--white);
}

.virtual-fax-security-grid .feature-card:nth-child(6) {
  background:
    linear-gradient(145deg, rgba(255, 253, 248, 0.97), rgba(242, 201, 76, 0.18));
}

.virtual-fax-security-grid .feature-card:nth-child(6) .icon-badge {
  background: rgba(242, 201, 76, 0.22);
  color: #9a7200;
}

.text-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 34px;
  color: var(--violet);
  font-size: 14px;
  font-weight: 750;
}

.text-link:hover svg {
  transform: translateX(4px);
}

.text-link svg {
  transition: transform 180ms ease;
}

.connected-section {
  background:
    radial-gradient(circle at 10% 30%, rgba(109, 66, 217, 0.18), transparent 30%),
    var(--graphite);
  color: var(--white);
}

.fax-spotlight {
  display: grid;
  grid-template-columns: 255px minmax(0, 1fr);
  align-items: center;
  gap: clamp(40px, 7vw, 110px);
}

.fax-spotlight-icon {
  position: relative;
  display: grid;
  width: 220px;
  height: 220px;
  place-items: center;
  border: 1px solid rgba(109, 66, 217, 0.26);
  border-radius: 50%;
  background:
    radial-gradient(circle at 35% 30%, rgba(129, 87, 241, 0.25), transparent 44%),
    var(--graphite);
  box-shadow: var(--shadow);
}

.fax-spotlight-icon::before,
.fax-spotlight-icon::after {
  content: "";
  position: absolute;
  border-radius: 50%;
}

.fax-spotlight-icon::before {
  inset: 26px;
  border: 1px solid rgba(255, 255, 255, 0.16);
}

.fax-spotlight-icon::after {
  inset: -14px;
  border: 1px dashed rgba(242, 201, 76, 0.42);
}

.fax-spotlight-icon > svg {
  width: 66px;
  height: 66px;
  color: var(--white);
  stroke-width: 1.25;
}

.fax-spotlight-icon > span {
  position: absolute;
  right: -14px;
  bottom: 20px;
  display: grid;
  width: 58px;
  height: 58px;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: 17px;
  background: var(--violet);
  color: var(--white);
  box-shadow: 0 12px 26px rgba(21, 21, 26, 0.22);
}

.fax-spotlight-icon > span svg {
  width: 26px;
  height: 26px;
}

.fax-spotlight h2 {
  max-width: 720px;
  margin: 0;
  font-size: clamp(36px, 4.2vw, 60px);
  font-weight: 780;
  letter-spacing: -0.055em;
  line-height: 1.06;
}

.fax-spotlight > div:last-child > p:last-of-type {
  max-width: 790px;
  margin: 22px 0 0;
  color: var(--slate);
  font-size: 17px;
  line-height: 1.72;
}

.fax-spotlight ul {
  display: grid;
  gap: 12px;
  margin: 30px 0 34px;
  padding: 0;
  list-style: none;
}

.fax-spotlight li {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  color: #3c3b45;
  font-size: 14px;
  font-weight: 650;
  line-height: 1.5;
}

.fax-spotlight li svg {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  color: var(--violet);
}

.connected-inner {
  display: grid;
  grid-template-columns: minmax(0, 0.8fr) minmax(500px, 1.2fr);
  align-items: center;
  gap: 80px;
}

.connected-copy .section-heading {
  margin-bottom: 34px;
}

.connected-copy .section-heading > p:last-child {
  color: #b6b5be;
}

.channel-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-auto-rows: 1fr;
  align-items: stretch;
  gap: 14px;
}

.channel-card {
  display: flex;
  min-height: 280px;
  flex-direction: column;
  padding: 26px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 17px;
  background: rgba(255, 255, 255, 0.055);
}

.channel-card > div {
  display: flex;
  flex: 1;
  flex-direction: column;
}

.channel-card .icon-badge {
  background: rgba(129, 87, 241, 0.18);
  color: #b9a1ff;
}

.channel-card h3 {
  color: var(--white);
}

.channel-card p {
  color: #adacb5;
}

.automation-section {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(500px, 1.15fr);
  align-items: center;
  gap: 90px;
}

.automation-copy .section-heading {
  margin-bottom: 28px;
}

.automation-proof {
  display: flex;
  align-items: flex-start;
  gap: 13px;
  max-width: 620px;
  padding: 16px 18px;
  border-left: 3px solid var(--yellow);
  background: rgba(242, 201, 76, 0.09);
  color: #4e4d54;
  font-size: 13px;
  line-height: 1.65;
}

.automation-proof svg {
  width: 22px;
  height: 22px;
  flex: 0 0 auto;
  color: #b18a08;
}

.automation-flow {
  position: relative;
  margin: 0;
  padding: 0;
  list-style: none;
}

.automation-flow::before {
  content: "";
  position: absolute;
  top: 28px;
  bottom: 28px;
  left: 23px;
  width: 1px;
  background: linear-gradient(var(--violet), var(--yellow));
}

.automation-flow li {
  position: relative;
  display: grid;
  grid-template-columns: 48px 1fr;
  align-items: center;
  gap: 17px;
  min-height: 72px;
  padding: 10px 20px 10px 0;
  border-bottom: 1px solid var(--line);
}

.automation-flow li > span {
  position: relative;
  z-index: 2;
  display: flex;
  width: 47px;
  height: 47px;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(109, 66, 217, 0.32);
  border-radius: 50%;
  background: var(--ivory);
  color: var(--violet);
  font-size: 10px;
  font-weight: 800;
}

.automation-flow li:last-child > span {
  border-color: rgba(242, 201, 76, 0.75);
  color: #9a7600;
}

.automation-flow p {
  margin: 0;
  font-size: 14px;
  font-weight: 650;
  line-height: 1.45;
}

.advisory-panel {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 34px;
  margin-block: 0 116px;
  padding: 48px;
  border: 1px solid rgba(109, 66, 217, 0.25);
  border-radius: 24px;
  background:
    linear-gradient(115deg, rgba(255, 255, 255, 0.64), rgba(231, 222, 255, 0.72)),
    var(--paper);
  box-shadow: 0 24px 65px rgba(66, 42, 115, 0.09);
}

.advisory-mark {
  display: grid;
  width: 90px;
  height: 90px;
  place-items: center;
  border-radius: 22px;
  background: var(--graphite);
  color: var(--violet-soft);
}

.advisory-mark svg {
  width: 40px;
  height: 40px;
  stroke-width: 1.4;
}

.advisory-panel h2 {
  max-width: 760px;
  font-size: clamp(34px, 3.5vw, 52px);
}

.audience-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: var(--line);
}

.audience-grid article {
  min-height: 280px;
  padding: 34px;
  background: var(--paper);
}

.audience-grid article > svg {
  width: 32px;
  height: 32px;
  color: var(--violet);
  stroke-width: 1.6;
}

.coverage-statement {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 28px 0 0;
  color: #4a4951;
  font-size: 13px;
  font-weight: 650;
}

.coverage-statement svg {
  width: 20px;
  height: 20px;
  color: var(--violet);
}

.principles-section {
  background: var(--paper);
}

.principles-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.principles-grid article {
  position: relative;
  min-height: 260px;
  padding: 34px 24px;
  border-right: 1px solid var(--line);
}

.principles-grid article:last-child {
  border-right: 0;
}

.principles-grid article > span {
  display: inline-flex;
  min-width: 48px;
  height: 48px;
  align-items: center;
  justify-content: center;
  padding-inline: 12px;
  border-radius: 50%;
  background: var(--graphite);
  color: var(--white);
  font-size: 15px;
  font-weight: 800;
}

.principles-grid article:last-child > span {
  border-radius: 999px;
  background: var(--violet);
}

.resources-preview .section-heading {
  margin-bottom: 42px;
}

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

.article-grid article {
  min-height: 310px;
  padding: 30px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(255, 253, 248, 0.6);
}

.article-number {
  color: var(--violet);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.14em;
}

.article-grid h3 {
  margin-top: 60px;
  font-size: 22px;
}

.contact-band {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 50px;
  margin-bottom: 26px;
  padding: 68px;
  border-radius: 26px;
  background:
    radial-gradient(circle at 90% 10%, rgba(129, 87, 241, 0.32), transparent 32%),
    var(--graphite);
  color: var(--white);
}

.contact-band > div > p:last-child {
  color: #bbb9c2;
}

.contact-band-actions {
  display: flex;
  min-width: 260px;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
}

.light-link {
  justify-content: center;
  color: #d9d7de;
}

.site-footer {
  padding: 84px 0 30px;
  background: #111217;
  color: var(--white);
}

.footer-main {
  display: grid;
  grid-template-columns: 1.5fr 0.8fr 0.7fr 1.2fr;
  gap: 50px;
  padding-bottom: 64px;
}

.site-footer .brand {
  color: var(--white);
}

.footer-main > div:first-child > p {
  max-width: 340px;
  margin: 24px 0 0;
  color: #aaa8b0;
  font-size: 14px;
  line-height: 1.7;
}

.footer-main .footer-note {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #d8c8ff;
  font-size: 12px;
  font-weight: 650;
}

.footer-note img {
  width: auto;
  height: 1em;
  flex: 0 0 auto;
}

.footer-main h2 {
  margin: 3px 0 22px;
  color: #787681;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.footer-main > div:not(:first-child) > a {
  display: block;
  margin: 0 0 14px;
  color: #d3d1d8;
  font-size: 13px;
}

.footer-main > div:not(:first-child) > a:hover {
  color: var(--white);
}

:is(.protected-email, .protected-phone) {
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.footer-main > div:not(:first-child) > :is(.protected-email-footer, .protected-phone-footer) {
  display: flex;
  width: fit-content;
  margin: 0 0 14px;
  padding: 0;
  align-items: center;
  gap: 7px;
  border: 0;
  background: transparent;
  color: #d3d1d8;
  font-size: 13px;
}

:is(.protected-email-footer, .protected-phone-footer):hover { color: var(--white); }
:is(.protected-email-footer, .protected-phone-footer) svg { width: 14px; height: 14px; color: var(--violet-bright); }
:is(.protected-email-footer, .protected-phone-footer) small { color: #898692; font-size: 9px; }

.protected-phone-band {
  width: 100%;
  padding: 0;
  justify-content: center;
  border: 0;
  background: transparent;
}

.protected-phone-band small { color: #a7a4af; font-size: 9px; }

.footer-location {
  display: flex;
  gap: 9px;
  margin-top: 22px;
  color: #8f8d97;
  font-size: 11px;
  line-height: 1.55;
}

.footer-location svg {
  width: 17px;
  height: 17px;
  flex: 0 0 auto;
  color: var(--violet-bright);
}

.footer-bottom {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  padding-top: 28px;
  border-top: 1px solid rgba(255, 255, 255, 0.09);
  color: #77757f;
  font-size: 10px;
}

.footer-legal-links {
  display: inline-flex;
  gap: 16px;
}

.footer-legal-links a {
  color: #a5a2af;
  text-decoration: none;
}

.footer-legal-links a:hover { color: var(--white); }

.footer-brand-origin {
  color: inherit;
  text-decoration: none;
}

.footer-brand-origin:hover { color: inherit; }

.footer-brand-origin:focus-visible {
  border-radius: 3px;
  outline: 2px solid var(--violet-bright);
  outline-offset: 4px;
}

/* Histoire de la marque BLIO */
.brand-story-hero {
  position: relative;
  overflow: hidden;
  color: var(--white);
  background:
    radial-gradient(circle at 83% 50%, rgba(129, 87, 241, 0.25), transparent 31%),
    radial-gradient(circle at 68% 82%, rgba(242, 201, 76, 0.13), transparent 23%),
    linear-gradient(118deg, #15151a 0%, #171820 56%, #20202c 100%);
}

.brand-story-hero::before {
  position: absolute;
  inset: 0;
  content: "";
  opacity: 0.36;
  background-image: linear-gradient(rgba(255, 255, 255, 0.055) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.055) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: linear-gradient(90deg, black, transparent 86%);
}

.brand-story-hero-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(420px, 0.8fr);
  align-items: center;
  gap: 80px;
  min-height: 640px;
  padding-block: 90px;
}

.brand-story-hero-copy { max-width: 650px; }
.brand-story-hero-copy .eyebrow { color: #cdbaff; }
.brand-story-hero-copy h1 {
  max-width: 620px;
  margin: 0;
  font-size: clamp(48px, 5.4vw, 78px);
  letter-spacing: -0.07em;
  line-height: 0.98;
}
.brand-story-hero-copy > p:not(.eyebrow) {
  max-width: 580px;
  margin: 28px 0 0;
  color: #cfccd5;
  font-size: 17px;
  line-height: 1.72;
}
.brand-story-hero-copy .text-link { margin-top: 32px; color: var(--white); }

.brand-code-orbit {
  position: relative;
  justify-self: center;
  width: min(100%, 480px);
  aspect-ratio: 1;
}

.brand-code-ring {
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  border: 1px solid rgba(199, 181, 255, 0.52);
  border-radius: 50%;
  transform: translate(-50%, -50%);
}
.brand-code-ring::before,
.brand-code-ring::after {
  position: absolute;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  content: "";
  background: var(--violet-bright);
  box-shadow: 0 0 18px 5px rgba(129, 87, 241, 0.72);
}
.brand-code-ring::before { top: -4px; left: 50%; }
.brand-code-ring::after { right: 15%; bottom: 2%; }
.brand-code-ring.ring-one { width: 66%; height: 66%; animation: brand-orbit 16s linear infinite; }
.brand-code-ring.ring-two { width: 94%; height: 94%; border-style: dashed; border-color: rgba(242, 201, 76, 0.38); animation: brand-orbit 24s linear infinite reverse; }
.ring-two::before { background: var(--yellow); box-shadow: 0 0 18px 5px rgba(242, 201, 76, 0.62); }

.brand-code-core {
  position: absolute;
  top: 50%;
  left: 50%;
  display: grid;
  place-items: center;
  width: 40%;
  aspect-ratio: 1;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 28px;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.13), rgba(255, 255, 255, 0.035));
  box-shadow: 0 24px 68px rgba(0, 0, 0, 0.32), inset 0 1px rgba(255, 255, 255, 0.23);
  transform: translate(-50%, -50%);
  backdrop-filter: blur(11px);
}
.brand-code-core strong { font-size: clamp(27px, 3vw, 43px); letter-spacing: -0.075em; }
.brand-code-core small { margin-top: -24px; color: var(--yellow); font-size: 10px; font-weight: 800; letter-spacing: 0.18em; }

.brand-code-letter {
  position: absolute;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 72px;
  aspect-ratio: 1;
  border: 1px solid rgba(255, 255, 255, 0.23);
  border-radius: 19px;
  background: rgba(27, 27, 38, 0.86);
  box-shadow: 0 16px 30px rgba(0, 0, 0, 0.25);
  color: var(--white);
  font-size: 25px;
  font-weight: 800;
  letter-spacing: -0.06em;
}
.code-b { top: 1%; left: 7%; }
.code-l { top: 10%; right: 0; }
.code-i { bottom: 8%; left: 2%; }
.code-o { right: 9%; bottom: 0; color: var(--yellow); }

.brand-origin-section { display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); gap: 110px; align-items: start; }
.brand-origin-heading { position: sticky; top: 35px; }
.brand-origin-heading h2,
.brand-principles-heading h2,
.brand-one-card h2 { margin: 0; font-size: clamp(34px, 3.8vw, 56px); letter-spacing: -0.065em; line-height: 1.04; }
.brand-origin-heading > p:not(.eyebrow),
.brand-principles-heading > p:not(.eyebrow) { max-width: 510px; margin: 24px 0 0; color: var(--slate); font-size: 16px; line-height: 1.76; }

.brand-milestones { display: grid; gap: 0; }
.brand-milestones article { position: relative; display: grid; grid-template-columns: 74px 32px minmax(0, 1fr); gap: 20px; padding: 0 0 38px; }
.brand-milestones article:not(:last-child)::after { position: absolute; top: 41px; bottom: 0; left: 89px; width: 1px; content: ""; background: var(--line); }
.brand-milestones > article > span { color: var(--violet); font-size: 12px; font-weight: 800; letter-spacing: 0.11em; }
.brand-milestones > article > i { z-index: 1; display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid var(--line); border-radius: 50%; background: var(--paper); color: var(--ink); font-size: 9px; font-style: normal; font-weight: 800; }
.brand-milestones h3 { margin: 4px 0 12px; font-size: 22px; letter-spacing: -0.035em; }
.brand-milestones p { max-width: 560px; margin: 0; color: var(--slate); font-size: 14px; line-height: 1.75; }

.brand-principles-section { background: var(--paper); }
.brand-principles-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, 0.52fr); column-gap: 100px; align-items: end; }
.brand-principles-heading .eyebrow,
.brand-principles-heading h2 { grid-column: 1; }
.brand-principles-heading > p:not(.eyebrow) { grid-column: 2; grid-row: 1 / span 2; margin: 0; }
.brand-principles-heading > span { grid-column: 2; margin-top: 18px; color: var(--violet); font-size: 11px; font-weight: 750; }

.brand-principles-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-top: 58px; }
.brand-principles-grid article { min-height: 392px; padding: 28px; border: 1px solid var(--line); border-radius: 16px; background: var(--white); box-shadow: 0 15px 38px rgba(30, 25, 43, 0.045); transition: transform 260ms ease, border-color 260ms ease, box-shadow 260ms ease; }
.brand-principles-grid article:hover,
.brand-principles-grid article:focus { border-color: rgba(109, 66, 217, 0.46); box-shadow: 0 24px 54px rgba(60, 35, 120, 0.12); outline: none; transform: translateY(-8px); }
.brand-principle-topline { display: flex; align-items: center; justify-content: space-between; }
.brand-principle-topline > span { display: grid; place-items: center; width: 45px; height: 45px; border-radius: 50%; background: var(--ink); color: var(--white); font-size: 15px; font-weight: 800; }
.brand-principle-topline svg { width: 22px; height: 22px; color: var(--violet); }
.brand-principle-word { margin: 42px 0 9px !important; color: var(--violet) !important; font-size: 13px !important; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.brand-principles-grid h3 { margin: 0 0 13px; font-size: 20px; letter-spacing: -0.04em; }
.brand-principles-grid article > p:not(.brand-principle-word) { margin: 0; color: var(--slate); font-size: 13px; line-height: 1.72; }
.brand-principle-detail { max-height: 0; overflow: hidden; opacity: 0; transform: translateY(9px); transition: max-height 300ms ease, opacity 220ms ease, transform 220ms ease, margin 220ms ease; }
.brand-principle-detail p { margin: 0; padding-top: 16px; border-top: 1px solid var(--line); color: var(--ink); font-size: 12px; line-height: 1.68; }
.brand-principles-grid article:hover .brand-principle-detail,
.brand-principles-grid article:focus .brand-principle-detail { max-height: 190px; margin-top: 18px; opacity: 1; transform: translateY(0); }

.brand-one-section { padding-top: 0; }
.brand-one-card { position: relative; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr); gap: 80px; overflow: hidden; padding: 64px; border-radius: 22px; color: var(--white); background: linear-gradient(120deg, #20202b, #15151a); }
.brand-one-card::after { position: absolute; right: -118px; bottom: -205px; width: 500px; aspect-ratio: 1; border: 1px solid rgba(129, 87, 241, 0.5); border-radius: 50%; content: ""; box-shadow: 0 0 0 48px rgba(129, 87, 241, 0.06), 0 0 0 96px rgba(242, 201, 76, 0.035); }
.brand-one-card > div { position: relative; z-index: 1; }
.brand-one-card .eyebrow { color: #cdbaff; }
.brand-one-card h2 { max-width: 640px; }
.brand-one-card > div > p:not(.eyebrow) { max-width: 660px; margin: 23px 0 0; color: #cfccd5; font-size: 15px; line-height: 1.75; }
.brand-one-signature { align-self: end; padding-bottom: 3px; }
.brand-one-signature span { display: block; font-size: clamp(43px, 5vw, 68px); font-weight: 850; letter-spacing: -0.08em; line-height: 0.8; }
.brand-one-signature i { display: block; width: 54px; height: 3px; margin-block: 26px 18px; background: var(--yellow); }
.brand-one-signature strong { display: block; max-width: 245px; color: #cdbaff; font-size: 12px; line-height: 1.55; }

@keyframes brand-orbit { to { transform: translate(-50%, -50%) rotate(360deg); } }

@media (max-width: 1040px) {
  .brand-story-hero-grid { grid-template-columns: 1fr; gap: 32px; min-height: 0; }
  .brand-story-hero-copy { max-width: 680px; }
  .brand-code-orbit { width: min(430px, 72vw); margin-block: 6px 12px; }
  .brand-origin-section { grid-template-columns: 1fr; gap: 56px; }
  .brand-origin-heading { position: static; }
  .brand-principles-heading { grid-template-columns: 1fr; }
  .brand-principles-heading > p:not(.eyebrow), .brand-principles-heading > span { grid-column: 1; grid-row: auto; }
  .brand-principles-heading > p:not(.eyebrow) { margin-top: 25px; }
  .brand-principles-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .brand-one-card { grid-template-columns: 1fr; gap: 45px; }
}

@media (max-width: 700px) {
  .brand-story-hero-grid { padding-block: 66px 58px; }
  .brand-story-hero-copy h1 { font-size: clamp(43px, 12vw, 61px); }
  .brand-story-hero-copy > p:not(.eyebrow) { font-size: 15px; }
  .brand-code-orbit { width: min(360px, 96%); }
  .brand-code-letter { width: 58px; border-radius: 16px; font-size: 21px; }
  .brand-code-core { border-radius: 20px; }
  .brand-origin-section { gap: 43px; }
  .brand-milestones article { grid-template-columns: 58px 29px minmax(0, 1fr); gap: 13px; padding-bottom: 33px; }
  .brand-milestones article:not(:last-child)::after { left: 72px; }
  .brand-milestones > article > i { width: 29px; height: 29px; }
  .brand-milestones h3 { margin-top: 2px; font-size: 19px; }
  .brand-principles-grid { grid-template-columns: 1fr; margin-top: 38px; }
  .brand-principles-grid article { min-height: 0; }
  .brand-principle-detail { max-height: 210px; margin-top: 18px; opacity: 1; transform: none; }
  .brand-one-card { padding: 40px 27px; border-radius: 17px; }
  .brand-one-card h2 { font-size: 34px; }
}

@media (prefers-reduced-motion: reduce) {
  .brand-code-ring { animation: none; }
  .brand-principles-grid article, .brand-principle-detail { transition: none; }
}

/* Pages intérieures */
.interior-hero,
.contact-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 460px;
  align-items: center;
  gap: 80px;
  min-height: 650px;
  padding-block: 90px;
}

.interior-hero h1,
.contact-hero h1,
.resources-hero h1,
.article-page h1 {
  max-width: 900px;
  margin: 0;
  font-size: clamp(48px, 6.2vw, 86px);
  font-weight: 790;
  letter-spacing: -0.062em;
  line-height: 0.99;
}

.interior-hero > div:first-child > p:last-of-type,
.contact-hero > div:first-child > p:last-of-type,
.resources-hero > p:last-child {
  max-width: 790px;
  margin: 28px 0 34px;
  color: var(--slate);
  font-size: 18px;
  line-height: 1.72;
}

.interior-orbit {
  position: relative;
  display: grid;
  width: 420px;
  height: 420px;
  place-items: center;
  justify-self: end;
  border: 1px solid rgba(109, 66, 217, 0.3);
  border-radius: 50%;
  background:
    radial-gradient(circle, rgba(109, 66, 217, 0.22), transparent 56%),
    var(--graphite);
  box-shadow: var(--shadow);
}

.interior-orbit::before,
.interior-orbit::after {
  content: "";
  position: absolute;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 50%;
}

.interior-orbit::before {
  inset: 42px;
}

.interior-orbit::after {
  inset: 92px;
  border-color: rgba(242, 201, 76, 0.45);
}

.interior-orbit > svg {
  width: 74px;
  height: 74px;
  color: var(--white);
  stroke-width: 1.2;
}

.interior-orbit span {
  position: absolute;
  display: grid;
  width: 64px;
  height: 64px;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.17);
  border-radius: 17px;
  background: var(--graphite-2);
  color: #c8b9ff;
}

.interior-orbit span svg {
  width: 27px;
  height: 27px;
}

.interior-orbit span:nth-of-type(1) { top: 22px; left: 72px; }
.interior-orbit span:nth-of-type(2) { top: 74px; right: 18px; }
.interior-orbit span:nth-of-type(3) { right: 34px; bottom: 56px; }
.interior-orbit span:nth-of-type(4) { bottom: 22px; left: 76px; color: var(--yellow); }

.emphasis-note {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 26px;
  margin-bottom: 116px;
  padding: 42px 48px;
  border: 1px solid rgba(109, 66, 217, 0.26);
  border-radius: 20px;
  background: linear-gradient(120deg, var(--paper), var(--violet-soft));
}

.emphasis-note > svg {
  width: 30px;
  height: 30px;
  color: var(--violet);
}

.emphasis-note h2 {
  margin: 0 0 10px;
  font-size: 28px;
  letter-spacing: -0.04em;
}

.emphasis-note p {
  max-width: 850px;
  margin: 0;
  color: var(--slate);
  line-height: 1.7;
}

.virtual-fax-fit {
  padding-top: 0;
}

.virtual-fax-faq {
  margin-bottom: 116px;
}

.virtual-fax-faq > .eyebrow {
  margin-bottom: 20px;
}

.virtual-fax-faq details {
  border-top: 1px solid var(--line);
}

.virtual-fax-faq details:last-child {
  border-bottom: 1px solid var(--line);
}

.virtual-fax-faq summary {
  position: relative;
  padding: 24px 48px 24px 0;
  cursor: pointer;
  font-size: 20px;
  font-weight: 750;
  letter-spacing: -0.025em;
  list-style: none;
}

.virtual-fax-faq summary::-webkit-details-marker {
  display: none;
}

.virtual-fax-faq summary::after {
  content: "+";
  position: absolute;
  top: 18px;
  right: 3px;
  color: var(--violet);
  font-size: 28px;
  font-weight: 400;
}

.virtual-fax-faq details[open] summary::after {
  content: "−";
}

.virtual-fax-faq details p {
  max-width: 850px;
  margin: -3px 0 25px;
  color: var(--slate);
  font-size: 16px;
  line-height: 1.72;
}

.contact-hero {
  grid-template-columns: minmax(0, 1fr) minmax(420px, 0.75fr);
}

.contact-card-stack {
  display: grid;
  gap: 14px;
}

.contact-card-stack :is(a, .protected-email-contact, .protected-phone-contact) {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  align-items: center;
  gap: 2px 16px;
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--paper);
  color: var(--ink);
  box-shadow: 0 18px 45px rgba(21, 21, 26, 0.06);
  transition: transform 180ms ease, border-color 180ms ease;
}

.contact-card-stack :is(a, .protected-email-contact, .protected-phone-contact):hover {
  transform: translateY(-3px);
  border-color: rgba(109, 66, 217, 0.35);
}

.contact-card-stack :is(a, .protected-email-contact, .protected-phone-contact) > svg:first-child {
  grid-row: 1 / 3;
  width: 48px;
  height: 48px;
  padding: 12px;
  border-radius: 12px;
  background: var(--violet-soft);
  color: var(--violet);
}

.contact-card-stack :is(a, .protected-email-contact, .protected-phone-contact) > svg:not(:first-child) {
  grid-column: 3;
  grid-row: 1 / 3;
  width: 20px;
  height: 20px;
  color: var(--violet);
}

.contact-card-stack span {
  color: var(--slate);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}

.contact-card-stack strong {
  font-size: clamp(14px, 1.4vw, 18px);
  overflow-wrap: anywhere;
}

.contact-card-stack :is(.protected-email-contact, .protected-phone-contact) em {
  grid-column: 2;
  color: var(--violet);
  font-size: 10px;
  font-style: normal;
  font-weight: 800;
}

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

.contact-details article {
  min-height: 300px;
  padding: 34px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--paper);
}

.contact-details article > svg {
  width: 32px;
  height: 32px;
  color: var(--violet);
}

.contact-details h2 {
  margin: 48px 0 14px;
  font-size: 24px;
  letter-spacing: -0.04em;
}

.contact-details p {
  margin: 0;
  color: var(--slate);
  font-size: 14px;
  line-height: 1.7;
}

.resources-hero {
  min-height: 520px;
  padding-block: 110px 80px;
}

.resources-hero h1 {
  max-width: 950px;
}

.article-list {
  padding-top: 28px;
}

.article-list > article {
  display: grid;
  grid-template-columns: 80px minmax(0, 1fr) auto;
  align-items: center;
  gap: 30px;
  padding: 44px 0;
  border-top: 1px solid var(--line);
}

.article-list > article:last-child {
  border-bottom: 1px solid var(--line);
}

.article-list > article > span {
  color: var(--violet);
  font-size: 12px;
  font-weight: 800;
}

.article-list h2 {
  max-width: 800px;
  margin: 0;
  font-size: clamp(28px, 3vw, 42px);
  letter-spacing: -0.045em;
}

.article-list article div > p:last-child {
  max-width: 790px;
  margin: 13px 0 0;
  color: var(--slate);
  line-height: 1.7;
}

.article-page {
  padding-block: 100px 120px;
}

.article-page > header {
  max-width: 1060px;
  margin-inline: auto;
  padding-bottom: 70px;
  border-bottom: 1px solid var(--line);
}

.back-link {
  display: inline-block;
  margin-bottom: 56px;
  color: var(--slate);
  font-size: 13px;
  font-weight: 650;
}

.article-page h1 {
  font-size: clamp(48px, 6vw, 82px);
}

.article-intro {
  max-width: 900px;
  margin: 30px 0 0;
  color: var(--slate);
  font-size: 20px;
  line-height: 1.7;
}

.article-body {
  max-width: 920px;
  margin: 0 auto;
  padding-top: 62px;
}

.article-body > section {
  display: grid;
  grid-template-columns: 50px minmax(0, 1fr);
  gap: 22px;
  padding: 36px 0;
  border-bottom: 1px solid var(--line);
}

.article-body > section > span {
  padding-top: 8px;
  color: var(--violet);
  font-size: 11px;
  font-weight: 800;
}

.article-body h2 {
  margin: 0 0 14px;
  font-size: clamp(27px, 3vw, 38px);
  letter-spacing: -0.045em;
}

.article-body section p {
  margin: 0;
  color: var(--slate);
  font-size: 17px;
  line-height: 1.8;
}

.article-body blockquote {
  display: flex;
  gap: 18px;
  margin: 58px 0 0;
  padding: 30px;
  border: 0;
  border-radius: 18px;
  background: var(--graphite);
  color: var(--white);
}

.article-body blockquote svg {
  width: 26px;
  height: 26px;
  flex: 0 0 auto;
  color: var(--yellow);
}

.article-body blockquote p {
  margin: 0;
  font-size: 17px;
  font-weight: 700;
}

/* Expérience sécurisée du télécopieur virtuel */

.footer-main .footer-sub-link {
  margin-top: -7px;
  padding-left: 12px;
  color: #8f8d97;
  font-size: 11px;
}

.vf-hero {
  position: relative;
  display: grid;
  min-height: 760px;
  grid-template-columns: minmax(0, 43%) minmax(0, 57%);
  isolation: isolate;
  background: var(--paper);
}

.vf-hero-copy.section-shell {
  z-index: 2;
  display: flex;
  width: auto;
  margin: 0;
  padding: 112px 46px 112px max(24px, calc((100vw - 1340px) / 2));
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}

.vf-hero-copy h1 {
  max-width: 670px;
  margin: 18px 0 24px;
  font-size: clamp(54px, 5vw, 82px);
  line-height: 0.98;
  letter-spacing: -0.065em;
}

.vf-hero-copy > p:last-of-type {
  max-width: 650px;
  margin: 0;
  color: #494953;
  font-size: 17px;
  line-height: 1.75;
}

.vf-hero-copy .hero-actions {
  margin-top: 34px;
}

.vf-back-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 34px;
  color: var(--violet);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.vf-back-link svg {
  width: 15px;
  transform: rotate(180deg);
}

.vf-hero-visual {
  position: relative;
  min-width: 0;
  padding-left: 3vw;
  background: var(--graphite);
  clip-path: polygon(8% 0, 100% 0, 100% 100%, 0 100%);
}

.vf-child-hero {
  min-height: 720px;
}

.vf-child-hero .vf-hero-copy h1 {
  font-size: clamp(50px, 4.4vw, 73px);
}

.vf-visual-explorer {
  position: relative;
  display: grid;
  min-height: 100%;
  padding: 66px 44px 56px 70px;
  place-items: center;
}

.vf-visual-frame {
  position: relative;
  width: min(100%, 910px);
  aspect-ratio: 3 / 2;
  overflow: hidden;
  border-radius: 28px;
  background: #101116;
  box-shadow: 0 34px 85px rgba(0, 0, 0, 0.34);
}

.vf-visual-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.015);
  transform-origin: var(--focus-x) var(--focus-y);
  filter: brightness(1.2) saturate(1.06);
  transition: transform 800ms cubic-bezier(0.2, 0.8, 0.2, 1), filter 500ms ease;
}

.vf-visual-explorer.is-active .vf-visual-image {
  transform: scale(1.11);
  filter: brightness(1.28) saturate(1.14) contrast(1.03);
}

.vf-visual-shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 46%, rgba(11, 12, 17, 0.7) 100%);
  pointer-events: none;
  transition: background 500ms ease;
}

.vf-hotspot {
  position: absolute;
  z-index: 3;
  display: inline-flex;
  min-width: 42px;
  min-height: 42px;
  padding: 5px 11px 5px 5px;
  align-items: center;
  gap: 8px;
  border: 1px solid rgba(255, 255, 255, 0.38);
  border-radius: 999px;
  background: rgba(18, 18, 25, 0.78);
  color: var(--white);
  cursor: pointer;
  backdrop-filter: blur(12px);
  transform: translate(-50%, -50%);
  transition: transform 200ms ease, border-color 200ms ease, background 200ms ease;
}

.vf-hotspot::before {
  content: "";
  position: absolute;
  inset: -8px;
  border: 1px solid rgba(129, 87, 241, 0.5);
  border-radius: inherit;
  opacity: 0;
  animation: vf-pulse 2.4s ease-out infinite;
}

.vf-hotspot > span {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border-radius: 50%;
  background: var(--violet-bright);
  font-size: 9px;
  font-weight: 850;
  letter-spacing: 0.08em;
}

.vf-hotspot strong {
  font-size: 10px;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.vf-hotspot:hover,
.vf-hotspot:focus-visible,
.vf-hotspot.is-active {
  z-index: 5;
  border-color: var(--yellow);
  outline: 0;
  background: rgba(36, 30, 58, 0.96);
  transform: translate(-50%, -50%) scale(1.08);
}

.vf-hotspot:hover::before,
.vf-hotspot:focus-visible::before,
.vf-hotspot.is-active::before {
  opacity: 1;
}

@keyframes vf-pulse {
  0% { opacity: 0.8; transform: scale(0.92); }
  70%, 100% { opacity: 0; transform: scale(1.25); }
}

.vf-visual-caption {
  position: absolute;
  z-index: 4;
  right: 22px;
  bottom: 22px;
  left: 22px;
  min-height: 94px;
  pointer-events: none;
}

.vf-visual-caption article,
.vf-visual-hint {
  display: flex;
  max-width: 650px;
  margin: 0;
  padding: 18px 20px;
  align-items: flex-start;
  gap: 14px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 17px;
  background: rgba(17, 18, 25, 0.86);
  color: var(--white);
  backdrop-filter: blur(18px);
  animation: vf-caption-in 260ms ease both;
}

.vf-visual-caption [hidden],
.vf-detail-panels [hidden] {
  display: none !important;
}

.vf-visual-caption article > svg {
  width: 20px;
  flex: 0 0 auto;
  color: var(--yellow);
}

.vf-visual-caption article p {
  margin: 0 0 3px;
  color: #c9b9ff;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.vf-visual-caption article h2 {
  margin: 0 0 5px;
  font-size: 18px;
  letter-spacing: -0.025em;
}

.vf-visual-caption article span {
  display: block;
  color: #d1cfd7;
  font-size: 12px;
  line-height: 1.55;
}

.vf-visual-hint {
  width: max-content;
  min-height: 0;
  padding: 12px 15px;
  align-items: center;
  color: #dcdae2;
  font-size: 11px;
}

.vf-visual-hint svg {
  width: 16px;
  color: var(--yellow);
}

@keyframes vf-caption-in {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

.vf-proof {
  position: relative;
  z-index: 6;
  display: grid;
  margin-top: -36px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border: 1px solid var(--line);
  border-radius: 20px;
  background: rgba(255, 253, 248, 0.94);
  box-shadow: 0 18px 55px rgba(21, 21, 26, 0.1);
  backdrop-filter: blur(16px);
}

.vf-proof > div {
  display: flex;
  min-height: 106px;
  padding: 24px;
  flex-direction: column;
  justify-content: center;
  border-right: 1px solid var(--line);
}

.vf-proof > div:last-child {
  border-right: 0;
}

.vf-proof strong {
  color: var(--violet);
  font-size: 22px;
  letter-spacing: -0.04em;
}

.vf-proof span {
  margin-top: 5px;
  color: var(--slate);
  font-size: 11px;
  line-height: 1.45;
}

.vf-section-intro {
  max-width: 920px;
  margin-bottom: 48px;
}

.vf-section-intro h2 {
  max-width: 900px;
  margin: 16px 0 18px;
  font-size: clamp(40px, 4.3vw, 64px);
  line-height: 1.04;
  letter-spacing: -0.055em;
}

.vf-section-intro > p:last-child:not(.eyebrow) {
  max-width: 790px;
  margin: 0;
  color: var(--slate);
  font-size: 16px;
  line-height: 1.72;
}

.vf-detail-explorer {
  display: grid;
  min-height: 480px;
  grid-template-columns: minmax(260px, 0.7fr) minmax(0, 1.3fr);
  gap: 16px;
}

.vf-detail-tabs {
  display: grid;
  gap: 8px;
}

.vf-detail-tabs button {
  display: grid;
  width: 100%;
  padding: 18px;
  grid-template-columns: 35px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(255, 253, 248, 0.62);
  color: var(--ink);
  cursor: pointer;
  text-align: left;
  transition: transform 180ms ease, border-color 180ms ease, background 180ms ease;
}

.vf-detail-tabs button > span {
  color: var(--violet);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: 0.08em;
}

.vf-detail-tabs button strong {
  font-size: 14px;
  letter-spacing: -0.015em;
}

.vf-detail-tabs button svg {
  width: 16px;
  color: var(--violet);
  opacity: 0;
  transition: opacity 180ms ease, transform 180ms ease;
}

.vf-detail-tabs button:hover,
.vf-detail-tabs button:focus-visible,
.vf-detail-tabs button.is-active {
  border-color: rgba(109, 66, 217, 0.42);
  outline: 0;
  background: var(--paper);
  transform: translateX(6px);
}

.vf-detail-tabs button.is-active svg,
.vf-detail-tabs button:hover svg,
.vf-detail-tabs button:focus-visible svg {
  opacity: 1;
  transform: translate(2px, -2px);
}

.vf-detail-panels {
  position: relative;
  min-height: 100%;
}

.vf-detail-panels article {
  min-height: 100%;
  padding: clamp(32px, 5vw, 68px);
  border-radius: 22px;
  background:
    radial-gradient(circle at 88% 12%, rgba(129, 87, 241, 0.3), transparent 32%),
    var(--graphite);
  color: var(--white);
  animation: vf-panel-in 320ms cubic-bezier(0.2, 0.8, 0.2, 1) both;
}

.vf-detail-panels article h3 {
  max-width: 680px;
  margin: 16px 0 12px;
  font-size: clamp(31px, 3.4vw, 50px);
  line-height: 1.05;
  letter-spacing: -0.05em;
}

.vf-detail-panels article > p:not(.eyebrow) {
  max-width: 690px;
  margin: 0 0 28px;
  color: #c4c2ca;
  line-height: 1.65;
}

.vf-detail-panels ul {
  display: grid;
  margin: 0;
  padding: 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 24px;
  list-style: none;
}

.vf-detail-panels li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  color: #e4e2e9;
  font-size: 13px;
  line-height: 1.5;
}

.vf-detail-panels li svg {
  width: 15px;
  flex: 0 0 auto;
  color: var(--yellow);
}

@keyframes vf-panel-in {
  from { opacity: 0; transform: translateY(12px) scale(0.99); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.vf-routes,
.vf-profile-section,
.vf-integrations {
  background: var(--paper);
}

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

.vf-route-grid > a {
  position: relative;
  min-height: 450px;
  padding: 42px 42px 96px;
  overflow: hidden;
  border-radius: 22px;
  background: var(--graphite);
  color: var(--white);
  transition: transform 250ms ease, box-shadow 250ms ease;
}

.vf-route-grid > a:nth-child(2) {
  background:
    radial-gradient(circle at 80% 12%, rgba(242, 201, 76, 0.28), transparent 34%),
    linear-gradient(145deg, #4d2aa7, #24183e);
}

.vf-route-grid > a::after {
  content: "";
  position: absolute;
  right: -90px;
  bottom: -140px;
  width: 310px;
  height: 310px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 50%;
  box-shadow: 0 0 0 42px rgba(129, 87, 241, 0.06), 0 0 0 84px rgba(129, 87, 241, 0.04);
  transition: transform 500ms ease;
}

.vf-route-grid > a:hover,
.vf-route-grid > a:focus-visible {
  outline: 0;
  box-shadow: 0 28px 70px rgba(21, 21, 26, 0.2);
  transform: translateY(-7px);
}

.vf-route-grid > a:hover::after,
.vf-route-grid > a:focus-visible::after {
  transform: scale(1.16) translate(-15px, -12px);
}

.vf-route-grid > a > span {
  color: #bca9f5;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.15em;
}

.vf-route-grid h3 {
  max-width: 470px;
  margin: 50px 0 18px;
  font-size: clamp(34px, 4vw, 54px);
  line-height: 1.02;
  letter-spacing: -0.055em;
}

.vf-route-grid p {
  max-width: 500px;
  margin: 0;
  color: #c6c4cc;
  font-size: 14px;
  line-height: 1.7;
}

.vf-route-grid a > strong {
  position: absolute;
  z-index: 2;
  bottom: 38px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--white);
  font-size: 13px;
}

.vf-route-grid a > strong svg {
  width: 17px;
}

.vf-expanded-faq {
  display: grid;
  margin-bottom: 116px;
  grid-template-columns: minmax(280px, 0.75fr) minmax(0, 1.25fr);
  gap: 70px;
}

.vf-expanded-faq .vf-section-intro {
  position: sticky;
  top: 40px;
  align-self: start;
}

.vf-expanded-faq .vf-section-intro h2 {
  font-size: clamp(38px, 4vw, 58px);
}

.vf-dark-section,
.vf-residency-section,
.vf-governance {
  background: #111217;
  color: var(--white);
}

.vf-dark-section .vf-section-intro > p:last-child:not(.eyebrow),
.vf-residency-section .vf-section-intro > p:last-child:not(.eyebrow),
.vf-governance .vf-section-intro > p:last-child:not(.eyebrow) {
  color: #aaa8b0;
}

.vf-dark-section .vf-detail-tabs button,
.vf-residency-section .vf-detail-tabs button {
  border-color: rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.04);
  color: var(--white);
}

.vf-dark-section .vf-detail-tabs button.is-active,
.vf-dark-section .vf-detail-tabs button:hover,
.vf-residency-section .vf-detail-tabs button.is-active,
.vf-residency-section .vf-detail-tabs button:hover {
  border-color: rgba(129, 87, 241, 0.7);
  background: #24212f;
}

.vf-dark-section .vf-detail-panels article,
.vf-residency-section .vf-detail-panels article {
  border: 1px solid rgba(255, 255, 255, 0.1);
  background:
    radial-gradient(circle at 88% 12%, rgba(242, 201, 76, 0.16), transparent 32%),
    #20212a;
}

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

.vf-fact-grid article {
  position: relative;
  min-height: 170px;
  padding: 28px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 17px;
  background: rgba(255, 253, 248, 0.68);
  transition: transform 200ms ease, background 200ms ease;
}

.vf-fact-grid article:hover {
  background: var(--paper);
  transform: translateY(-5px);
}

.vf-fact-grid span,
.vf-sector-grid article > span {
  color: var(--violet);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: 0.1em;
}

.vf-fact-grid p {
  max-width: 300px;
  margin: 44px 0 0;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
}

.vf-profile-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(420px, 1.1fr);
  gap: 22px;
}

.vf-tag-cloud {
  display: flex;
  min-height: 570px;
  padding: 42px;
  align-content: center;
  align-items: center;
  justify-content: center;
  gap: 13px;
  flex-wrap: wrap;
  border-radius: 22px;
  background:
    radial-gradient(circle at center, rgba(129, 87, 241, 0.28), transparent 50%),
    var(--graphite);
}

.vf-tag-cloud span {
  padding: 12px 16px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  color: #e8e5ed;
  font-size: 12px;
  animation: vf-float 5s ease-in-out var(--delay) infinite;
}

@keyframes vf-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}

.vf-access-card {
  padding: 44px;
  border: 1px solid rgba(109, 66, 217, 0.28);
  border-radius: 22px;
  background: linear-gradient(145deg, var(--paper), var(--violet-soft));
}

.vf-access-card > svg,
.vf-cover-card > svg {
  width: 42px;
  height: 42px;
  color: var(--violet);
}

.vf-access-card h3 {
  margin: 28px 0 12px;
  font-size: 32px;
  letter-spacing: -0.04em;
}

.vf-access-card > p {
  color: var(--slate);
  line-height: 1.7;
}

.vf-access-card ul,
.vf-cover-card ul,
.vf-framework-list {
  display: grid;
  margin: 28px 0 0;
  padding: 0;
  gap: 12px;
  list-style: none;
}

.vf-access-card li,
.vf-cover-card li,
.vf-framework-list li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 13px;
  line-height: 1.5;
}

.vf-access-card li svg,
.vf-cover-card li svg,
.vf-framework-list li svg {
  width: 15px;
  flex: 0 0 auto;
  color: var(--violet);
}

.vf-trace-section ol {
  display: grid;
  margin: 0;
  padding: 0;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
  list-style: none;
}

.vf-trace-section li {
  min-height: 170px;
  padding: 24px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  transition: background 180ms ease, color 180ms ease;
}

.vf-trace-section li:hover {
  background: var(--violet);
  color: var(--white);
}

.vf-trace-section li > span {
  color: var(--violet);
  font-size: 10px;
  font-weight: 850;
}

.vf-trace-section li:hover > span {
  color: var(--yellow);
}

.vf-trace-section li p {
  margin: 55px 0 0;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.45;
}

.vf-health-band {
  background:
    radial-gradient(circle at 90% 20%, rgba(242, 201, 76, 0.2), transparent 30%),
    linear-gradient(135deg, #34205e, #171820 70%);
  color: var(--white);
}

.vf-health-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
  gap: 70px;
}

.vf-health-band .vf-section-intro > p:last-child:not(.eyebrow) {
  color: #cbc7d2;
}

.vf-document-stream {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.vf-document-stream > span {
  display: grid;
  min-height: 90px;
  padding: 17px;
  grid-template-columns: auto 30px minmax(0, 1fr);
  align-items: center;
  gap: 11px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.05);
  color: #e9e6ee;
  font-size: 12px;
  transition: background 180ms ease, transform 180ms ease;
}

.vf-document-stream > span:hover {
  background: rgba(129, 87, 241, 0.22);
  transform: translateX(5px);
}

.vf-document-stream svg {
  width: 22px;
  color: #c8b9ff;
}

.vf-document-stream strong {
  color: var(--yellow);
  font-size: 9px;
  letter-spacing: 0.08em;
}

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

.vf-sector-grid article {
  min-height: 280px;
  padding: 28px;
  border: 1px solid var(--line);
  border-radius: 17px;
  background: rgba(255, 253, 248, 0.55);
  transition: transform 220ms ease, background 220ms ease, box-shadow 220ms ease;
}

.vf-sector-grid article:hover,
.vf-sector-grid article:focus-visible {
  outline: 0;
  background: var(--paper);
  box-shadow: 0 20px 48px rgba(21, 21, 26, 0.1);
  transform: translateY(-7px);
}

.vf-sector-grid h3 {
  margin: 52px 0 14px;
  font-size: 21px;
  letter-spacing: -0.035em;
}

.vf-sector-grid p {
  margin: 0;
  color: var(--slate);
  font-size: 13px;
  line-height: 1.65;
}

.vf-integration-cloud {
  display: flex;
  min-height: 330px;
  padding: 50px;
  align-content: center;
  align-items: center;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
  border-radius: 24px;
  background:
    linear-gradient(rgba(255, 253, 248, 0.94), rgba(255, 253, 248, 0.94)),
    repeating-linear-gradient(90deg, transparent 0 44px, rgba(109, 66, 217, 0.16) 45px),
    repeating-linear-gradient(0deg, transparent 0 44px, rgba(109, 66, 217, 0.16) 45px);
}

.vf-integration-cloud span {
  display: inline-flex;
  padding: 13px 17px;
  align-items: center;
  gap: 9px;
  border: 1px solid rgba(109, 66, 217, 0.22);
  border-radius: 999px;
  background: var(--white);
  color: #3d3d47;
  font-size: 12px;
  box-shadow: 0 8px 24px rgba(21, 21, 26, 0.06);
  transition: transform 180ms ease, color 180ms ease, background 180ms ease;
}

.vf-integration-cloud span:hover,
.vf-integration-cloud span.is-accent {
  background: var(--violet);
  color: var(--white);
  transform: translateY(-4px);
}

.vf-integration-cloud svg {
  width: 16px;
}

.vf-governance-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
  gap: 70px;
}

.vf-cover-card {
  align-self: start;
  padding: 44px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 22px;
  background:
    radial-gradient(circle at 90% 10%, rgba(129, 87, 241, 0.35), transparent 35%),
    #20212a;
}

.vf-cover-card > svg {
  color: var(--yellow);
}

.vf-cover-card h2 {
  margin: 30px 0 15px;
  font-size: 36px;
  line-height: 1.08;
  letter-spacing: -0.045em;
}

.vf-cover-card > p,
.vf-responsibility-card > p {
  color: #aaa8b0;
  line-height: 1.7;
}

.vf-cover-card li,
.vf-framework-list li {
  color: #e5e2e9;
}

.vf-cover-card li svg {
  color: var(--yellow);
}

.vf-framework-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 24px;
}

.vf-framework-list li {
  padding: 15px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.03);
}

.vf-framework-list li svg {
  color: #bda9f7;
}

.vf-responsibility-card {
  margin-top: 34px;
  padding-top: 34px;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
}

.vf-responsibility-card h3 {
  margin: 0 0 10px;
  font-size: 28px;
  letter-spacing: -0.04em;
}

.vf-responsibility-card > div {
  display: flex;
  margin: 24px 0;
  gap: 8px;
  flex-wrap: wrap;
}

.vf-responsibility-card span {
  padding: 8px 11px;
  border-radius: 999px;
  background: rgba(129, 87, 241, 0.14);
  color: #d8cdf7;
  font-size: 10px;
}

@media (max-width: 1240px) {
  .desktop-nav {
    gap: 20px;
  }

  .desktop-nav a {
    font-size: 12px;
  }

  .home-hero {
    grid-template-columns: minmax(0, 0.85fr) minmax(520px, 1.15fr);
  }

  .hero-copy {
    padding-right: 20px;
  }

  .system-map {
    min-height: 600px;
    transform: scale(0.92);
  }
}

@media (max-width: 1080px) {
  .site-header {
    grid-template-columns: auto 1fr;
  }

  .desktop-nav,
  .header-actions > .language-link,
  .header-actions > .button {
    display: none;
  }

  .header-actions {
    justify-self: end;
  }

  .mobile-menu {
    display: block;
  }

  .home-hero {
    grid-template-columns: 1fr;
    min-height: auto;
  }

  .home-hero::after {
    inset: 49% 0 0;
    clip-path: polygon(0 10%, 100% 0, 100% 100%, 0 100%);
  }

  .hero-copy {
    width: min(100% - 48px, 860px);
    justify-self: center;
    padding: 82px 0 70px;
  }

  .hero-copy h1 {
    max-width: 800px;
  }

  .hero-map-wrap {
    padding: 60px 24px 36px;
  }

  .connected-inner,
  .automation-section,
  .fax-spotlight {
    grid-template-columns: 1fr;
    gap: 55px;
  }

  .fax-spotlight-icon {
    justify-self: start;
  }

  .connected-copy {
    max-width: 780px;
  }

  .advisory-panel {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .advisory-panel > .button {
    grid-column: 2;
    justify-self: start;
  }

  .interior-hero,
  .contact-hero {
    grid-template-columns: 1fr;
    gap: 36px;
  }

  .interior-orbit {
    justify-self: start;
  }

  .footer-main {
    grid-template-columns: 1.3fr 1fr 1fr;
  }

  .footer-main > div:last-child {
    grid-column: 1 / -1;
  }

  .vf-hero {
    min-height: auto;
    grid-template-columns: 1fr;
  }

  .vf-hero-copy.section-shell {
    width: min(100% - 48px, 860px);
    margin-inline: auto;
    padding: 88px 0 76px;
  }

  .vf-hero-copy h1,
  .vf-child-hero .vf-hero-copy h1 {
    max-width: 850px;
  }

  .vf-hero-visual {
    min-height: 660px;
    padding: 35px 24px 35px;
    clip-path: polygon(0 7%, 100% 0, 100% 100%, 0 100%);
  }

  .vf-visual-explorer {
    padding: 52px 20px 26px;
  }

  .vf-profile-layout,
  .vf-health-layout,
  .vf-governance-grid {
    grid-template-columns: 1fr;
  }

  .vf-tag-cloud {
    min-height: 390px;
  }

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

  .vf-trace-section ol {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 780px) {
  .section-shell,
  .site-header,
  .footer-main,
  .footer-bottom {
    width: min(100% - 32px, 1340px);
  }

  .section-pad {
    padding-block: 80px;
  }

  .site-header {
    min-height: 76px;
  }

  .brand {
    font-size: 26px;
  }

  .mobile-menu summary span {
    display: none;
  }

  .home-hero::after {
    inset: 47% 0 0;
  }

  .hero-copy {
    width: min(100% - 32px, 860px);
    padding-block: 66px 56px;
  }

  .hero-copy h1,
  .interior-hero h1,
  .contact-hero h1,
  .resources-hero h1,
  .article-page h1 {
    font-size: clamp(42px, 12vw, 62px);
  }

  .hero-lead,
  .interior-hero > div:first-child > p:last-of-type,
  .contact-hero > div:first-child > p:last-of-type {
    font-size: 16px;
  }

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

  .audience-line {
    align-items: flex-start;
    line-height: 1.5;
  }

  .system-map {
    display: grid;
    width: 100%;
    min-height: auto;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px 10px;
    padding: 18px;
    transform: none;
  }

  .map-grid,
  .map-lines,
  .map-orbits {
    display: none;
  }

  .phone-core {
    position: relative;
    top: auto;
    left: auto;
    grid-column: 1 / -1;
    grid-row: 1;
    width: 100%;
    height: min(102vw, 460px);
    transform: none;
  }

  .system-map.is-expanded .phone-core {
    transform: none;
  }

  .map-node {
    position: relative;
    inset: auto;
    display: none;
    width: 100%;
    min-height: 105px;
    transform: none;
  }

  .system-map.is-expanded .map-node {
    display: flex;
    opacity: 1;
    visibility: visible;
    transform: none;
  }

  .system-map.is-expanded .map-node.is-active {
    transform: scale(1.04);
  }

  .node-a { grid-column: 1; grid-row: 2; }
  .node-b { grid-column: 2; grid-row: 2; }
  .node-c { grid-column: 1; grid-row: 3; }
  .node-d { grid-column: 2; grid-row: 3; }
  .node-e { grid-column: 1; grid-row: 4; }
  .node-f { grid-column: 2; grid-row: 4; }

  .node-detail {
    position: relative;
    bottom: auto;
    left: auto;
    display: none;
    grid-column: 1 / -1;
    grid-row: 5;
    width: 100%;
    min-height: 0;
    margin-top: 2px;
    border-radius: 15px;
    transform: none;
  }

  .system-map.is-detail-active .node-detail {
    display: block;
    opacity: 1;
    visibility: visible;
    transform: none;
  }

  .feature-grid-3,
  .channel-grid,
  .audience-grid,
  .article-grid,
  .contact-details {
    grid-template-columns: 1fr;
  }

  .channel-card:nth-child(2),
  .channel-card:nth-child(3) {
    transform: none;
  }

  .advisory-panel {
    grid-template-columns: 1fr;
    margin-bottom: 80px;
    padding: 34px 26px;
  }

  .advisory-panel > .button {
    grid-column: 1;
  }

  .principles-grid {
    grid-template-columns: 1fr;
  }

  .principles-grid article {
    min-height: auto;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .principles-grid article:last-child {
    border-bottom: 0;
  }

  .contact-band {
    grid-template-columns: 1fr;
    padding: 44px 26px;
  }

  .contact-band-actions {
    min-width: 0;
  }

  .footer-main {
    grid-template-columns: 1fr 1fr;
  }

  .footer-main > div:first-child,
  .footer-main > div:last-child {
    grid-column: 1 / -1;
  }

  .footer-bottom {
    flex-direction: column;
  }

  .interior-hero,
  .contact-hero {
    min-height: auto;
    padding-block: 70px;
  }

  .interior-orbit {
    width: min(100%, 390px);
    height: min(100vw - 32px, 390px);
  }

  .emphasis-note {
    padding: 30px 24px;
  }

  .fax-spotlight {
    gap: 38px;
  }

  .fax-spotlight-icon {
    width: 180px;
    height: 180px;
  }

  .fax-spotlight-icon > svg {
    width: 54px;
    height: 54px;
  }

  .fax-spotlight h2 {
    font-size: 35px;
  }

  .virtual-fax-faq {
    margin-bottom: 80px;
  }

  .virtual-fax-faq summary {
    padding-block: 20px;
    font-size: 18px;
  }

  .article-list > article {
    grid-template-columns: 44px minmax(0, 1fr);
  }

  .article-list > article > .button {
    grid-column: 2;
    justify-self: start;
  }

  .article-page {
    padding-block: 70px 90px;
  }

  .vf-hero-copy.section-shell {
    width: min(100% - 32px, 860px);
    padding-block: 70px 62px;
  }

  .vf-hero-copy h1,
  .vf-child-hero .vf-hero-copy h1 {
    font-size: clamp(43px, 12vw, 62px);
  }

  .vf-hero-copy > p:last-of-type {
    font-size: 15px;
  }

  .vf-hero-copy .hero-actions {
    width: 100%;
  }

  .vf-hero-visual {
    min-height: 0;
    padding: 48px 8px 30px;
  }

  .vf-visual-explorer {
    padding: 22px 8px 8px;
  }

  .vf-visual-frame {
    aspect-ratio: 4 / 5;
    border-radius: 18px;
  }

  .vf-visual-image {
    object-position: center;
  }

  .vf-hotspot {
    min-width: 36px;
    min-height: 36px;
    padding: 3px 8px 3px 3px;
  }

  .vf-hotspot > span {
    width: 28px;
    height: 28px;
  }

  .vf-hotspot strong {
    font-size: 9px;
  }

  .vf-visual-caption {
    right: 12px;
    bottom: 12px;
    left: 12px;
  }

  .vf-visual-caption article {
    padding: 14px;
  }

  .vf-visual-caption article h2 {
    font-size: 15px;
  }

  .vf-visual-caption article span {
    font-size: 10px;
  }

  .vf-visual-hint {
    width: auto;
    font-size: 9px;
  }

  .vf-proof {
    margin-top: -18px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .vf-proof > div {
    min-height: 90px;
    padding: 18px;
    border-bottom: 1px solid var(--line);
  }

  .vf-proof > div:nth-child(2) {
    border-right: 0;
  }

  .vf-proof > div:nth-child(n + 3) {
    border-bottom: 0;
  }

  .vf-section-intro {
    margin-bottom: 34px;
  }

  .vf-section-intro h2 {
    font-size: 38px;
  }

  .vf-detail-explorer {
    min-height: 0;
    grid-template-columns: 1fr;
  }

  .vf-detail-tabs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .vf-detail-tabs button {
    padding: 14px;
    grid-template-columns: 24px minmax(0, 1fr);
  }

  .vf-detail-tabs button svg {
    display: none;
  }

  .vf-detail-tabs button:hover,
  .vf-detail-tabs button:focus-visible,
  .vf-detail-tabs button.is-active {
    transform: translateY(-2px);
  }

  .vf-detail-panels article {
    min-height: 440px;
    padding: 30px 24px;
  }

  .vf-detail-panels ul {
    grid-template-columns: 1fr;
  }

  .vf-route-grid,
  .vf-expanded-faq {
    grid-template-columns: 1fr;
  }

  .vf-route-grid > a {
    min-height: 440px;
    padding: 30px 30px 90px;
  }

  .vf-expanded-faq {
    margin-bottom: 80px;
    gap: 10px;
  }

  .vf-expanded-faq .vf-section-intro {
    position: static;
  }

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

  .vf-profile-layout {
    grid-template-columns: 1fr;
  }

  .vf-access-card,
  .vf-cover-card {
    padding: 30px 24px;
  }

  .vf-trace-section ol {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .vf-health-layout,
  .vf-governance-grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .vf-document-stream {
    grid-template-columns: 1fr;
  }

  .vf-sector-grid {
    grid-template-columns: 1fr;
  }

  .vf-sector-grid article {
    min-height: 240px;
  }

  .vf-integration-cloud {
    padding: 30px 18px;
  }

  .vf-framework-list {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 520px) {
  .hero-copy h1,
  .interior-hero h1,
  .contact-hero h1,
  .resources-hero h1,
  .article-page h1 {
    font-size: 40px;
  }

  .section-heading h2,
  .advisory-panel h2,
  .contact-band h2 {
    font-size: 35px;
  }

  .phone-core {
    height: 390px;
  }

  .phone-core img {
    top: 62px;
    width: 108%;
  }

  .core-copy span {
    font-size: 8px;
  }

  .map-node span {
    font-size: 10px;
  }

  .footer-main {
    grid-template-columns: 1fr;
  }

  .footer-main > div {
    grid-column: 1 / -1;
  }

  .contact-card-stack :is(a, .protected-email-contact, .protected-phone-contact) {
    grid-template-columns: 44px minmax(0, 1fr);
  }

  .contact-card-stack :is(a, .protected-email-contact, .protected-phone-contact) > svg:not(:first-child) {
    display: none;
  }

  .contact-card-stack strong {
    font-size: 12px;
  }

  .article-body > section {
    grid-template-columns: 1fr;
  }

  .vf-hotspot strong {
    display: none;
  }

  .vf-hotspot {
    padding-right: 3px;
  }

  .vf-section-intro h2 {
    font-size: 34px;
  }

  .vf-detail-tabs {
    grid-template-columns: 1fr;
  }

  .vf-detail-panels article h3 {
    font-size: 30px;
  }

  .vf-fact-grid,
  .vf-trace-section ol {
    grid-template-columns: 1fr;
  }

  .vf-route-grid h3 {
    font-size: 36px;
  }
}

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

.vf-route-grid > a {
  min-height: 390px;
  padding: 34px 32px 92px;
}

.vf-route-grid > a:nth-child(3) {
  background: radial-gradient(circle at 18% 15%, rgba(129, 87, 241, 0.34), transparent 34%), linear-gradient(145deg, #17203a, #101116);
}

.vf-route-grid h3 {
  margin-top: 42px;
  font-size: clamp(30px, 2.8vw, 43px);
}

.vf-close {
  display: grid;
  margin-block: 110px;
  padding: clamp(36px, 5vw, 66px);
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 52px;
  border-radius: 26px;
  background: radial-gradient(circle at 85% 10%, rgba(242, 201, 76, 0.18), transparent 30%), radial-gradient(circle at 10% 90%, rgba(129, 87, 241, 0.32), transparent 38%), var(--graphite);
  color: var(--white);
}

.vf-close h2, .vf-residency-statement h2 {
  margin: 15px 0;
  font-size: clamp(36px, 4vw, 58px);
  line-height: 1.03;
  letter-spacing: -0.05em;
}

.vf-close p:last-child, .vf-residency-statement div > p:last-child {
  max-width: 850px;
  margin: 0;
  color: #c5c2cb;
  line-height: 1.7;
}

.vf-residency-statement {
  display: grid;
  grid-template-columns: 74px minmax(0, 1fr);
  align-items: start;
  gap: 32px;
}

.vf-residency-statement > svg {
  width: 74px;
  height: 74px;
  padding: 18px;
  border: 1px solid rgba(242, 201, 76, 0.36);
  border-radius: 22px;
  background: rgba(242, 201, 76, 0.08);
  color: var(--yellow);
}

.vf-compliance-hero {
  display: grid;
  min-height: 760px;
  grid-template-columns: minmax(0, 0.9fr) minmax(540px, 1.1fr);
  overflow: hidden;
}

.vf-compliance-hero .vf-hero-copy {
  width: min(100% - 64px, 670px);
  margin-right: 0;
  padding-block: 92px 82px;
  align-self: center;
}

.vf-compliance-hero .vf-hero-copy h1 {
  margin: 22px 0;
  font-size: clamp(52px, 5vw, 78px);
  line-height: 0.98;
  letter-spacing: -0.06em;
}

.vf-compliance-hero .vf-hero-copy > p:last-of-type {
  max-width: 600px;
  margin: 0 0 34px;
  color: var(--slate);
  font-size: 17px;
  line-height: 1.72;
}

.vf-compliance-visual {
  position: relative;
  display: grid;
  min-height: 760px;
  place-items: center;
  overflow: hidden;
  background: radial-gradient(circle at 48% 48%, rgba(129, 87, 241, 0.3), transparent 28%), linear-gradient(145deg, #191923, #0e0f14);
  clip-path: polygon(9% 0, 100% 0, 100% 100%, 0 100%);
}

.vf-compliance-rings {
  position: absolute;
  width: min(68%, 570px);
  aspect-ratio: 1;
  border: 1px solid rgba(188, 169, 245, 0.46);
  border-radius: 50%;
  box-shadow: 0 0 0 42px rgba(129, 87, 241, 0.06), 0 0 0 84px rgba(129, 87, 241, 0.035), inset 0 0 60px rgba(129, 87, 241, 0.16);
  animation: vf-orbit 12s linear infinite;
}

@keyframes vf-orbit { to { transform: rotate(360deg); } }

.vf-compliance-visual > article {
  position: relative;
  z-index: 2;
  display: flex;
  width: min(56%, 440px);
  min-height: 390px;
  padding: 48px;
  flex-direction: column;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 26px;
  background: rgba(29, 29, 39, 0.88);
  color: var(--white);
  box-shadow: 0 38px 90px rgba(0, 0, 0, 0.4);
  transform: rotate(-2deg);
  transition: transform 500ms ease;
}

.vf-compliance-visual:hover > article { transform: rotate(0) scale(1.04); }
.vf-compliance-visual article svg { width: 58px; height: 58px; color: var(--yellow); }
.vf-compliance-visual article span { margin-top: 58px; color: #c7b7f6; font-size: 11px; font-weight: 850; letter-spacing: 0.16em; }
.vf-compliance-visual article strong { margin-top: 10px; font-size: clamp(28px, 3vw, 44px); letter-spacing: -0.045em; }
.vf-compliance-visual article i { display: block; width: 100%; height: 7px; margin-top: 22px; border-radius: 999px; background: rgba(255, 255, 255, 0.12); }
.vf-compliance-visual article i:nth-of-type(2) { width: 82%; margin-top: 11px; }
.vf-compliance-visual article i:nth-of-type(3) { width: 64%; margin-top: 11px; }

.vf-compliance-chip { position: absolute; z-index: 3; padding: 12px 17px; border: 1px solid rgba(255, 255, 255, 0.18); border-radius: 999px; background: rgba(22, 22, 30, 0.78); color: #ece9f2; font-size: 11px; animation: vf-float 5s ease-in-out infinite; }
.vf-compliance-chip.chip-a { top: 22%; left: 14%; }
.vf-compliance-chip.chip-b { top: 31%; right: 10%; animation-delay: 500ms; }
.vf-compliance-chip.chip-c { right: 15%; bottom: 19%; animation-delay: 900ms; }

.vf-compliance-frameworks { background: #111217; color: var(--white); }
.vf-compliance-frameworks .vf-section-intro > p:last-child:not(.eyebrow) { color: #b8b5be; }
.vf-legal-note { display: flex; margin-top: 30px; padding: 24px 26px; align-items: flex-start; gap: 14px; border: 1px solid rgba(242, 201, 76, 0.24); border-radius: 16px; background: rgba(242, 201, 76, 0.05); }
.vf-legal-note svg { width: 19px; flex: 0 0 auto; color: var(--yellow); }
.vf-legal-note p { margin: 0; color: #d0cdd5; line-height: 1.7; }

.vf-cover-story { background: radial-gradient(circle at 85% 15%, rgba(129, 87, 241, 0.18), transparent 32%), var(--paper); }
.vf-cover-story-grid { display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(460px, 1.15fr); align-items: center; gap: 76px; }
.vf-cover-hint { margin: -20px 0 0; color: var(--violet); font-size: 12px; font-weight: 750; }
.vf-cover-mockup { min-height: 650px; padding: 46px 52px; border: 1px solid #ddd8ce; border-radius: 8px; outline: 0; background: #fffefa; box-shadow: 0 35px 85px rgba(36, 30, 58, 0.18); transform: rotate(1.5deg); transition: transform 450ms ease, box-shadow 450ms ease; }
.vf-cover-mockup:hover, .vf-cover-mockup:focus-visible { box-shadow: 0 45px 110px rgba(36, 30, 58, 0.25); transform: rotate(0) scale(1.015); }
.vf-cover-mockup header { display: flex; padding-bottom: 24px; align-items: center; justify-content: space-between; border-bottom: 2px solid var(--ink); }
.vf-cover-mockup header svg { width: 30px; color: var(--violet); }
.vf-cover-mockup header span { font-size: 20px; font-weight: 900; letter-spacing: -0.04em; }
.vf-cover-mockup h3 { margin: 34px 0 28px; font-size: 15px; letter-spacing: 0.12em; }
.vf-cover-mockup ol { display: grid; margin: 0; padding: 0; gap: 10px; list-style: none; }
.vf-cover-mockup li { display: grid; padding: 12px 14px; grid-template-columns: 36px minmax(0, 1fr); align-items: center; border: 1px solid transparent; border-radius: 9px; color: #55525b; font-size: 13px; opacity: .42; transform: translateX(9px); transition: opacity 240ms ease, transform 240ms ease, border-color 240ms ease, background 240ms ease; }
.vf-cover-mockup:hover li, .vf-cover-mockup:focus-visible li { border-color: rgba(109, 66, 217, .14); background: rgba(129, 87, 241, .04); opacity: 1; transform: translateX(0); }
.vf-cover-mockup li span { color: var(--violet); font-size: 9px; font-weight: 850; letter-spacing: .08em; }

.vf-responsibility-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.vf-responsibility-grid article { min-height: 360px; padding: 42px; border: 1px solid rgba(255,255,255,.13); border-radius: 22px; background: #1d1e26; transition: transform 220ms ease, border-color 220ms ease; }
.vf-responsibility-grid article:hover { border-color: rgba(129,87,241,.7); transform: translateY(-6px); }
.vf-responsibility-grid article > span { color: var(--yellow); font-size: 10px; font-weight: 850; letter-spacing: .12em; }
.vf-responsibility-grid h3 { margin: 44px 0 26px; font-size: clamp(30px, 3vw, 46px); letter-spacing: -.045em; }
.vf-responsibility-grid ul { display: grid; margin: 0; padding: 0; gap: 12px; list-style: none; }
.vf-responsibility-grid li { color: #cac7d0; line-height: 1.55; }
.vf-responsibility-grid li::before { content: "•"; margin-right: 10px; color: var(--violet-bright); }
.vf-agreement-note { max-width: 1000px; margin: 30px 0 0; padding: 25px 28px; border-left: 3px solid var(--yellow); background: rgba(255,255,255,.04); color: #bbb8c1; line-height: 1.7; }

@media (max-width: 1240px) { .vf-route-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .vf-route-grid > a:last-child { grid-column: 1 / -1; } }
@media (max-width: 1080px) { .vf-compliance-hero { min-height: auto; grid-template-columns: 1fr; } .vf-compliance-hero .vf-hero-copy { width: min(100% - 48px, 860px); margin-inline: auto; padding: 88px 0 76px; } .vf-compliance-visual { min-height: 650px; clip-path: polygon(0 7%, 100% 0, 100% 100%, 0 100%); } .vf-cover-story-grid { grid-template-columns: 1fr; gap: 36px; } .vf-close { grid-template-columns: 1fr; align-items: start; } }
@media (max-width: 780px) { .vf-route-grid { grid-template-columns: 1fr; } .vf-route-grid > a:last-child { grid-column: auto; } .vf-compliance-hero .vf-hero-copy { width: min(100% - 32px, 860px); padding-block: 70px 62px; } .vf-compliance-hero .vf-hero-copy h1 { font-size: clamp(43px, 12vw, 62px); } .vf-compliance-visual { min-height: 540px; } .vf-compliance-visual > article { width: min(70%, 420px); min-height: 330px; padding: 32px; } .vf-residency-statement, .vf-responsibility-grid { grid-template-columns: 1fr; } .vf-residency-statement > svg { width: 60px; height: 60px; } .vf-cover-mockup { min-height: 0; padding: 30px 24px; transform: none; } .vf-close { margin-block: 80px; padding: 38px 26px; gap: 30px; } }

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}

/* Qui sommes-nous */
.about-hero {
  position: relative;
  display: grid;
  min-height: 760px;
  grid-template-columns: minmax(0, 0.94fr) minmax(560px, 1.06fr);
  overflow: hidden;
  background: var(--ivory);
}

.about-hero-copy {
  width: min(100% - 64px, 680px);
  margin-right: 0;
  padding-block: 100px 92px;
  align-self: center;
}

.about-hero-copy h1 {
  max-width: 650px;
  margin: 0;
  font-size: clamp(52px, 5.3vw, 80px);
  letter-spacing: -0.065em;
  line-height: 0.98;
}

.about-hero-copy > p:not(.eyebrow) {
  max-width: 610px;
  margin: 25px 0 0;
  color: #4c4c55;
  font-size: 17px;
  line-height: 1.75;
}

.about-hero-copy > p + p {
  margin-top: 14px;
  color: var(--slate);
}

.about-hero-marks {
  display: flex;
  margin: 34px 0 0;
  padding: 0;
  flex-wrap: wrap;
  gap: 10px 22px;
  list-style: none;
}

.about-hero-marks li {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #41414a;
  font-size: 13px;
  font-weight: 750;
}

.about-hero-marks svg,
.about-legal-line svg,
.about-independence li svg {
  width: 13px;
  color: var(--violet);
}

.about-hero-visual {
  position: relative;
  display: grid;
  min-height: 760px;
  place-items: center;
  overflow: hidden;
  isolation: isolate;
  background:
    radial-gradient(circle at 51% 49%, rgba(137, 94, 246, 0.26), transparent 23%),
    linear-gradient(145deg, #22232d, #101117 72%);
  clip-path: polygon(9% 0, 100% 0, 100% 100%, 0 100%);
}

.about-signal-grid {
  position: absolute;
  z-index: -1;
  inset: 0;
  opacity: 0.42;
  background-image:
    linear-gradient(rgba(199, 184, 255, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(199, 184, 255, 0.08) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: radial-gradient(circle at 52% 48%, black 0 35%, transparent 76%);
}

.about-signal-orbit {
  position: absolute;
  width: min(72%, 610px);
  aspect-ratio: 1;
  border: 1px solid rgba(191, 171, 255, 0.62);
  border-radius: 50%;
  box-shadow: 0 0 34px rgba(129, 87, 241, 0.25), inset 0 0 42px rgba(129, 87, 241, 0.16);
}

.about-signal-orbit::before,
.about-signal-orbit::after {
  position: absolute;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--yellow);
  box-shadow: 0 0 17px 5px rgba(242, 201, 76, 0.52);
  content: "";
}

.about-signal-orbit::before {
  top: -5px;
  left: 50%;
}

.about-signal-orbit::after {
  right: 8%;
  bottom: 5%;
  background: #bb9dff;
  box-shadow: 0 0 17px 5px rgba(185, 155, 255, 0.48);
}

.about-signal-orbit.orbit-one {
  animation: about-orbit 16s linear infinite;
}

.about-signal-orbit.orbit-two {
  width: min(52%, 450px);
  border-style: dashed;
  border-color: rgba(242, 201, 76, 0.44);
  animation: about-orbit-reverse 11s linear infinite;
}

.about-signal-core {
  position: relative;
  z-index: 3;
  display: grid;
  width: min(36%, 270px);
  aspect-ratio: 1;
  padding: 28px;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.24);
  border-radius: 26px;
  background: linear-gradient(150deg, rgba(47, 47, 59, 0.95), rgba(21, 21, 29, 0.95));
  box-shadow: 0 24px 65px rgba(0, 0, 0, 0.42), inset 0 1px rgba(255, 255, 255, 0.1);
  color: var(--white);
  text-align: center;
  transform: rotate(-3deg);
  animation: about-core-float 5s ease-in-out infinite;
}

.about-signal-core svg {
  width: 58px;
  height: 58px;
  color: var(--yellow);
}

.about-signal-core span {
  margin-top: 14px;
  font-size: clamp(18px, 2vw, 26px);
  font-weight: 850;
  letter-spacing: -0.05em;
}

.about-signal-node {
  position: absolute;
  z-index: 4;
  display: grid;
  width: 66px;
  height: 66px;
  place-items: center;
  border: 1px solid rgba(211, 198, 255, 0.5);
  border-radius: 20px;
  background: rgba(27, 27, 37, 0.85);
  color: #c3a9ff;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.28);
  animation: about-node-float 5s ease-in-out infinite;
}

.about-signal-node svg {
  width: 26px;
  height: 26px;
}

.about-signal-node::after {
  position: absolute;
  width: 104px;
  height: 1px;
  background: linear-gradient(90deg, rgba(196, 172, 255, 0.8), transparent);
  content: "";
}

.node-phone { top: 19%; left: 21%; }
.node-phone::after { top: 68px; left: 45px; transform: rotate(42deg); transform-origin: left; }
.node-link { top: 20%; right: 16%; animation-delay: 850ms; }
.node-link::after { top: 64px; right: 43px; transform: rotate(138deg); transform-origin: right; }
.node-intelligence { bottom: 21%; left: 20%; animation-delay: 1500ms; }
.node-intelligence::after { bottom: 62px; left: 42px; transform: rotate(-42deg); transform-origin: left; }
.node-operate { right: 15%; bottom: 18%; animation-delay: 2150ms; }
.node-operate::after { right: 44px; bottom: 62px; transform: rotate(42deg); transform-origin: right; }

.about-hero-visual > p {
  position: absolute;
  bottom: 52px;
  margin: 0;
  color: #d1c9e2;
  font-size: 12px;
  font-weight: 750;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

@keyframes about-orbit {
  to { transform: rotate(360deg); }
}

@keyframes about-orbit-reverse {
  to { transform: rotate(-360deg); }
}

@keyframes about-core-float {
  50% { transform: rotate(0deg) translateY(-10px); }
}

@keyframes about-node-float {
  50% { transform: translateY(-10px); }
}

.about-identity {
  background: radial-gradient(circle at 50% 4%, rgba(129, 87, 241, 0.12), transparent 30%), var(--paper);
}

.about-brand-bridge {
  display: grid;
  margin-top: 56px;
  grid-template-columns: minmax(0, 1fr) 190px minmax(0, 1fr);
  align-items: stretch;
}

.about-brand-card {
  position: relative;
  min-height: 390px;
  padding: 40px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: var(--white);
  box-shadow: 0 16px 36px rgba(20, 18, 31, 0.06);
  transition: transform 260ms ease, box-shadow 260ms ease, border-color 260ms ease;
}

.about-brand-card::after {
  position: absolute;
  top: -110px;
  right: -110px;
  width: 250px;
  height: 250px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(129, 87, 241, 0.17), transparent 70%);
  content: "";
  transition: transform 360ms ease;
}

.about-brand-card:hover,
.about-brand-card:focus-within {
  z-index: 2;
  border-color: rgba(109, 66, 217, 0.44);
  box-shadow: 0 28px 58px rgba(38, 31, 61, 0.15);
  transform: translateY(-8px);
}

.about-brand-card:hover::after { transform: scale(1.22); }

.about-brand-card > span,
.about-brand-card ul {
  position: relative;
  z-index: 1;
}

.about-brand-card > span {
  color: var(--violet);
  font-size: 11px;
  font-weight: 850;
  letter-spacing: 0.16em;
}

.about-brand-card > svg {
  position: relative;
  z-index: 1;
  width: 42px;
  height: 42px;
  margin-top: 42px;
  color: var(--violet);
}

.about-brand-card.product-card {
  border-color: rgba(242, 201, 76, 0.5);
  background: linear-gradient(145deg, #20212a, #15161d);
  color: var(--white);
}

.about-brand-card.product-card > span,
.about-brand-card.product-card > svg {
  color: var(--yellow);
}

.about-brand-card h3 {
  position: relative;
  z-index: 1;
  margin: 22px 0 13px;
  font-size: clamp(32px, 3.4vw, 46px);
  letter-spacing: -0.055em;
}

.about-brand-card p {
  position: relative;
  z-index: 1;
  margin: 0;
  color: var(--slate);
  line-height: 1.7;
}

.about-brand-card.product-card p { color: #c8c5cd; }

.about-brand-card ul {
  display: flex;
  margin: 28px 0 0;
  padding: 0;
  flex-wrap: wrap;
  gap: 8px;
  list-style: none;
}

.about-brand-card li {
  padding: 8px 10px;
  border: 1px solid rgba(21, 21, 26, 0.12);
  border-radius: 999px;
  color: #4c4b53;
  font-size: 11px;
  font-weight: 750;
}

.about-brand-card.product-card li {
  border-color: rgba(255, 255, 255, 0.18);
  color: #e9e5f0;
}

.about-brand-connector {
  position: relative;
  display: grid;
  min-height: 390px;
  place-items: center;
  align-content: center;
  gap: 14px;
  color: var(--violet);
  text-align: center;
}

.about-brand-connector i {
  position: absolute;
  z-index: 0;
  top: 50%;
  right: -1px;
  left: -1px;
  height: 1px;
  background: linear-gradient(90deg, rgba(109, 66, 217, 0.25), var(--violet), rgba(109, 66, 217, 0.25));
}

.about-brand-connector svg,
.about-brand-connector strong {
  position: relative;
  z-index: 1;
}

.about-brand-connector svg {
  width: 46px;
  height: 46px;
  padding: 11px;
  border: 1px solid rgba(109, 66, 217, 0.3);
  border-radius: 50%;
  background: var(--paper);
  animation: about-core-float 4.5s ease-in-out infinite;
}

.about-brand-connector strong {
  max-width: 142px;
  padding: 7px;
  background: var(--paper);
  font-size: 10px;
  line-height: 1.35;
}

.about-history {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 83% 16%, rgba(129, 87, 241, 0.22), transparent 24%),
    #15161d;
  color: var(--white);
}

.about-history .section-heading > p:last-child { color: #c1bec8; }

.about-timeline {
  position: relative;
  display: grid;
  margin: 58px 0 0;
  padding: 0;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  list-style: none;
}

.about-timeline::before {
  position: absolute;
  top: 48px;
  right: 12%;
  left: 12%;
  height: 1px;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.1), var(--violet-bright), rgba(242, 201, 76, 0.68));
  content: "";
}

.about-timeline li {
  position: relative;
  min-height: 335px;
  padding: 32px 28px;
  border: 1px solid rgba(255, 255, 255, 0.13);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.035);
  outline: none;
  transition: transform 240ms ease, background 240ms ease, border-color 240ms ease;
}

.about-timeline li:hover,
.about-timeline li:focus-visible {
  border-color: rgba(194, 171, 255, 0.65);
  background: rgba(129, 87, 241, 0.15);
  transform: translateY(-8px);
}

.about-timeline-number {
  position: relative;
  z-index: 2;
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.44);
  border-radius: 50%;
  background: #21222d;
  color: var(--yellow);
  font-size: 10px;
  font-weight: 850;
}

.about-timeline li > span {
  display: block;
  margin-top: 46px;
  color: #c9b5ff;
  font-size: 12px;
  font-weight: 850;
  letter-spacing: 0.17em;
  text-transform: uppercase;
}

.about-timeline h3 {
  margin: 17px 0 12px;
  font-size: clamp(23px, 2.2vw, 30px);
  letter-spacing: -0.045em;
  line-height: 1.08;
}

.about-timeline p {
  margin: 0;
  color: #c9c5cf;
  font-size: 14px;
  line-height: 1.68;
}

.about-timeline li i {
  position: absolute;
  right: 28px;
  bottom: 26px;
  width: 48px;
  height: 2px;
  border-radius: 999px;
  background: var(--yellow);
  opacity: 0;
  transform: scaleX(0);
  transform-origin: left;
  transition: opacity 240ms ease, transform 240ms ease;
}

.about-timeline li:hover i,
.about-timeline li:focus-visible i {
  opacity: 1;
  transform: scaleX(1);
}

.about-legal-line {
  display: flex;
  margin: 32px 0 0;
  align-items: center;
  gap: 9px;
  color: #aba7b1;
  font-size: 12px;
}

.about-expertise {
  background: var(--paper);
}

.about-expertise-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(440px, 0.9fr);
  align-items: start;
  gap: clamp(46px, 7vw, 110px);
}

.about-partner-note {
  display: grid;
  margin-top: 38px;
  padding: 26px;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 18px;
  border-left: 3px solid var(--yellow);
  background: rgba(242, 201, 76, 0.1);
}

.about-partner-note > svg { width: 28px; color: var(--violet); }
.about-partner-note h3 { margin: 0 0 8px; font-size: 18px; letter-spacing: -0.03em; }
.about-partner-note p { margin: 0; color: #5d5b64; font-size: 14px; line-height: 1.68; }

.about-platform-lab {
  position: relative;
  display: grid;
  min-height: 570px;
  padding: 34px;
  overflow: hidden;
  border-radius: 24px;
  background: radial-gradient(circle at 50% 46%, rgba(129, 87, 241, 0.34), transparent 24%), #181920;
  box-shadow: 0 24px 64px rgba(25, 21, 42, 0.2);
}

.about-platform-lab > .eyebrow { position: relative; z-index: 2; max-width: 330px; color: #cdbaff; }

.about-platform-network {
  position: relative;
  z-index: 1;
  display: grid;
  min-height: 452px;
  margin-top: 22px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-template-rows: auto minmax(96px, 1fr) minmax(96px, 1fr) auto;
  align-items: center;
  gap: 14px;
}

.about-platform-network::before,
.about-platform-network::after {
  position: absolute;
  z-index: -1;
  top: 50%;
  left: 50%;
  border: 1px solid rgba(218, 203, 255, 0.2);
  border-radius: 50%;
  content: "";
}

.about-platform-network::before {
  width: min(72%, 368px);
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
}

.about-platform-network::after {
  width: min(46%, 238px);
  aspect-ratio: 1;
  border-style: dashed;
  animation: about-orbit 16s linear infinite;
  transform: translate(-50%, -50%);
}

.about-platform-core {
  position: relative;
  z-index: 2;
  display: grid;
  width: 146px;
  height: 146px;
  grid-column: 2 / 4;
  grid-row: 2 / 4;
  justify-self: center;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.32);
  border-radius: 50%;
  background: #292837;
  color: var(--white);
  box-shadow: 0 0 38px rgba(129, 87, 241, 0.36);
  text-align: center;
  transition: transform 260ms ease, box-shadow 260ms ease;
}

.about-platform-core:hover { box-shadow: 0 0 48px rgba(129, 87, 241, 0.55); transform: scale(1.045); }
.about-platform-core svg { width: 31px; color: var(--yellow); }
.about-platform-core span { max-width: 82px; font-size: 10px; font-weight: 800; line-height: 1.2; }

.about-platform-cloud { display: contents; }

.about-platform-cloud span {
  position: relative;
  z-index: 3;
  display: flex;
  min-height: 42px;
  padding: 9px 10px;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 12px;
  background: rgba(35, 35, 46, 0.9);
  color: #f3f0f8;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.22;
  text-align: center;
  box-shadow: 0 11px 22px rgba(0, 0, 0, 0.2);
  transition: transform 220ms ease, background 220ms ease, border-color 220ms ease;
}

.about-platform-cloud span:hover {
  border-color: var(--yellow);
  background: #353348;
  transform: scale(1.08);
}

.about-platform-cloud span:nth-child(1) { grid-column: 1; grid-row: 1; }
.about-platform-cloud span:nth-child(2) { grid-column: 2; grid-row: 1; }
.about-platform-cloud span:nth-child(3) { grid-column: 3; grid-row: 1; }
.about-platform-cloud span:nth-child(4) { grid-column: 4; grid-row: 1; }
.about-platform-cloud span:nth-child(5) { grid-column: 1; grid-row: 2; }
.about-platform-cloud span:nth-child(6) { grid-column: 4; grid-row: 2; }
.about-platform-cloud span:nth-child(7) { grid-column: 1; grid-row: 3; }
.about-platform-cloud span:nth-child(8) { grid-column: 4; grid-row: 3; }
.about-platform-cloud span:nth-child(9) { grid-column: 1; grid-row: 4; }
.about-platform-cloud span:nth-child(10) { grid-column: 4; grid-row: 4; }

.about-capability-grid {
  display: grid;
  margin-top: 54px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.about-capability-grid article {
  position: relative;
  min-height: 310px;
  padding: 28px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--white);
  transition: transform 240ms ease, box-shadow 240ms ease, border-color 240ms ease;
}

.about-capability-grid article:hover {
  border-color: rgba(109, 66, 217, 0.46);
  box-shadow: 0 20px 42px rgba(34, 29, 51, 0.12);
  transform: translateY(-7px);
}

.about-capability-grid article > span:first-child {
  position: absolute;
  top: 22px;
  right: 23px;
  color: rgba(109, 66, 217, 0.58);
  font-size: 11px;
  font-weight: 850;
}

.about-capability-grid .icon-badge { margin-top: 31px; }
.about-capability-grid h3 { margin: 30px 0 12px; font-size: 24px; letter-spacing: -0.04em; }
.about-capability-grid p { margin: 0; color: #62616a; font-size: 14px; line-height: 1.65; }

.about-safeguard {
  display: flex;
  max-width: 950px;
  margin: 34px auto 0;
  padding: 20px 24px;
  align-items: flex-start;
  gap: 12px;
  border: 1px solid rgba(109, 66, 217, 0.2);
  border-radius: 14px;
  background: rgba(129, 87, 241, 0.06);
  color: #4e4b56;
  font-size: 14px;
  line-height: 1.7;
}

.about-safeguard svg { width: 21px; flex: 0 0 auto; margin-top: 2px; color: var(--violet); }

.about-ai {
  overflow: hidden;
  background: radial-gradient(circle at 80% 16%, rgba(129, 87, 241, 0.3), transparent 24%), #171820;
  color: var(--white);
}

.about-ai-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.8fr) minmax(500px, 1.2fr);
  align-items: center;
  gap: 60px;
}

.about-ai .section-heading > p:last-child { color: #c0bdc5; }

.about-ai-cards {
  display: grid;
  gap: 12px;
}

.about-ai-cards article {
  display: grid;
  min-height: 145px;
  padding: 23px 28px;
  grid-template-columns: 46px 54px minmax(150px, 0.58fr) minmax(0, 1fr);
  align-items: center;
  gap: 18px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.045);
  transition: transform 220ms ease, background 220ms ease, border-color 220ms ease;
}

.about-ai-cards article:hover {
  border-color: rgba(201, 181, 255, 0.64);
  background: rgba(129, 87, 241, 0.2);
  transform: translateX(-8px);
}

.about-ai-cards article > span {
  color: var(--yellow);
  font-size: 11px;
  font-weight: 850;
}

.about-ai-cards article > svg { width: 29px; height: 29px; color: #c9b5ff; }
.about-ai-cards h3 { margin: 0; font-size: 20px; letter-spacing: -0.04em; }
.about-ai-cards p { margin: 0; color: #c4c0c9; font-size: 13px; line-height: 1.6; }

.about-independence {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(410px, 0.85fr);
  align-items: center;
  gap: clamp(48px, 8vw, 120px);
}

.about-independence-copy > ul {
  display: grid;
  margin: 32px 0 0;
  padding: 0;
  gap: 13px;
  list-style: none;
}

.about-independence-copy li {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #494851;
  font-size: 14px;
  font-weight: 700;
}

.about-coverage-card {
  position: relative;
  min-height: 470px;
  padding: 44px;
  overflow: hidden;
  border-radius: 24px;
  background: radial-gradient(circle at 84% 22%, rgba(242, 201, 76, 0.25), transparent 20%), linear-gradient(145deg, #272634, #171820);
  color: var(--white);
}

.about-coverage-card::after {
  position: absolute;
  right: -50px;
  bottom: -80px;
  width: 320px;
  height: 320px;
  border: 1px solid rgba(213, 196, 255, 0.24);
  border-radius: 50%;
  box-shadow: 0 0 0 34px rgba(213, 196, 255, 0.04), 0 0 0 68px rgba(213, 196, 255, 0.025);
  content: "";
  animation: about-orbit 21s linear infinite;
}

.about-coverage-card > svg {
  position: relative;
  z-index: 1;
  width: 51px;
  height: 51px;
  padding: 12px;
  border: 1px solid rgba(242, 201, 76, 0.46);
  border-radius: 16px;
  color: var(--yellow);
}

.about-coverage-card .eyebrow { position: relative; z-index: 1; margin-top: 45px; color: #cdbaff; }
.about-coverage-card h3 { position: relative; z-index: 1; max-width: 460px; margin: 0; font-size: clamp(32px, 3vw, 45px); letter-spacing: -0.055em; line-height: 1.05; }
.about-coverage-card p:not(.eyebrow) { position: relative; z-index: 1; max-width: 480px; margin: 20px 0 0; color: #c8c4ce; font-size: 14px; line-height: 1.7; }
.about-coverage-card > span { position: absolute; z-index: 1; right: 38px; bottom: 32px; color: var(--yellow); font-size: 11px; font-weight: 800; letter-spacing: .08em; }

.about-close {
  display: grid;
  margin-bottom: 116px;
  padding: clamp(38px, 5vw, 68px);
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 42px;
  border-radius: 26px;
  background: radial-gradient(circle at 85% 12%, rgba(242, 201, 76, 0.18), transparent 24%), radial-gradient(circle at 8% 100%, rgba(129, 87, 241, 0.3), transparent 37%), var(--graphite);
  color: var(--white);
}

.about-close h2 { max-width: 800px; margin: 14px 0; font-size: clamp(36px, 4vw, 60px); letter-spacing: -0.06em; line-height: 1.02; }
.about-close p:last-child { max-width: 820px; margin: 0; color: #c8c4ce; line-height: 1.7; }

@media (max-width: 1180px) {
  .about-hero { grid-template-columns: 1fr; }
  .about-hero-copy { width: min(100% - 48px, 860px); margin-inline: auto; padding-block: 86px 74px; }
  .about-hero-visual { min-height: 640px; clip-path: polygon(0 8%, 100% 0, 100% 100%, 0 100%); }
  .about-brand-bridge { grid-template-columns: minmax(0, 1fr) 130px minmax(0, 1fr); }
  .about-expertise-grid, .about-ai-grid, .about-independence { grid-template-columns: 1fr; }
  .about-platform-lab { max-width: 680px; width: 100%; }
  .about-ai-grid { gap: 42px; }
  .about-coverage-card { max-width: 680px; width: 100%; }
}

@media (max-width: 860px) {
  .about-brand-bridge { grid-template-columns: 1fr; gap: 16px; }
  .about-brand-connector { min-height: 98px; }
  .about-brand-connector i { top: 50%; right: 9%; left: 9%; }
  .about-brand-connector strong { max-width: 250px; }
  .about-timeline, .about-capability-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .about-timeline::before { display: none; }
  .about-timeline li { min-height: 300px; }
  .about-ai-cards article { grid-template-columns: 35px 42px minmax(130px, 0.6fr) minmax(0, 1fr); }
}

@media (max-width: 620px) {
  .about-hero-copy { width: min(100% - 32px, 860px); padding-block: 70px 54px; }
  .about-hero-copy h1 { font-size: clamp(43px, 13vw, 62px); }
  .about-hero-visual { min-height: 500px; }
  .about-signal-orbit { width: 74%; }
  .about-signal-orbit.orbit-two { width: 54%; }
  .about-signal-core { width: 36%; min-width: 146px; padding: 18px; }
  .about-signal-core svg { width: 40px; height: 40px; }
  .about-signal-node { width: 52px; height: 52px; border-radius: 15px; }
  .about-signal-node svg { width: 21px; height: 21px; }
  .about-signal-node::after { width: 66px; }
  .node-phone { top: 18%; left: 13%; }
  .node-link { top: 18%; right: 9%; }
  .node-intelligence { bottom: 23%; left: 12%; }
  .node-operate { right: 8%; bottom: 22%; }
  .about-hero-visual > p { bottom: 25px; font-size: 9px; }
  .about-brand-card { min-height: 0; padding: 31px 25px; }
  .about-brand-card > svg { margin-top: 28px; }
  .about-timeline, .about-capability-grid { grid-template-columns: 1fr; }
  .about-timeline { gap: 12px; }
  .about-timeline li { min-height: 0; }
  .about-platform-lab { min-height: 0; padding: 25px; }
  .about-platform-network { min-height: 0; margin-top: 18px; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto; gap: 9px; }
  .about-platform-network::before { width: 190px; }
  .about-platform-network::after { width: 126px; }
  .about-platform-core { width: 128px; height: 128px; grid-column: 1 / -1; grid-row: auto; margin: 4px 0 11px; }
  .about-platform-cloud span { min-height: 39px; padding: 8px; font-size: 9px; }
  .about-platform-cloud span:nth-child(n) { grid-column: auto; grid-row: auto; }
  .about-ai-cards article { grid-template-columns: 34px 38px minmax(0, 1fr); gap: 12px; }
  .about-ai-cards p { grid-column: 3; }
  .about-coverage-card { min-height: 0; padding: 32px 27px 76px; }
  .about-coverage-card > span { right: 26px; bottom: 24px; }
  .about-close { margin-bottom: 80px; padding: 38px 26px; grid-template-columns: 1fr; gap: 30px; }
}

/* Pages juridiques */
.legal-hero {
  position: relative;
  display: grid;
  min-height: 620px;
  grid-template-columns: minmax(0, 0.94fr) minmax(500px, 1.06fr);
  overflow: hidden;
  background: #f7f5f0;
}

.legal-hero-copy {
  position: relative;
  z-index: 2;
  width: min(100% - 96px, 670px);
  margin-right: 0;
  padding-block: 128px 104px;
}

.legal-hero-copy::before {
  position: absolute;
  top: 125px;
  left: -72px;
  width: 218px;
  height: 218px;
  border: 1px solid rgba(109, 66, 217, 0.14);
  border-radius: 50%;
  box-shadow: 0 0 0 34px rgba(109, 66, 217, 0.035), 0 0 0 68px rgba(242, 201, 76, 0.025);
  content: "";
}

.legal-hero-copy > * { position: relative; }
.legal-hero-copy h1 { max-width: 640px; margin: 16px 0 20px; font-size: clamp(48px, 5vw, 78px); letter-spacing: -.07em; line-height: .99; }
.legal-hero-copy > p:not(.eyebrow) { max-width: 590px; margin: 0; color: #52515b; font-size: 18px; line-height: 1.65; }

.legal-hero-meta {
  display: flex;
  flex-wrap: wrap;
  margin-top: 34px;
  gap: 13px 24px;
  color: #575460;
  font-size: 12px;
  font-weight: 750;
}

.legal-hero-meta span { display: inline-flex; align-items: center; gap: 8px; }
.legal-hero-meta svg { width: 16px; height: 16px; color: var(--violet); }

.legal-hero-visual {
  position: relative;
  min-height: 620px;
  overflow: hidden;
  background: #181920;
  clip-path: polygon(13% 0, 100% 0, 100% 100%, 0 100%);
}

.legal-hero-visual::before {
  position: absolute;
  z-index: 1;
  inset: 0;
  background: linear-gradient(140deg, rgba(18, 19, 28, 0.04), rgba(18, 19, 28, 0.55));
  content: "";
}

.legal-hero-visual img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.legal-hero-visual span { position: absolute; z-index: 2; right: 8%; bottom: 8%; color: rgba(255, 255, 255, .66); font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }

.legal-intro { background: var(--white); }
.legal-intro-lead { max-width: 940px; margin: 0 auto; color: #24232b; font-size: clamp(25px, 3vw, 39px); font-weight: 650; letter-spacing: -.047em; line-height: 1.22; text-align: center; }

.legal-principles {
  display: grid;
  margin-top: 64px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.legal-principles article {
  position: relative;
  min-height: 270px;
  padding: 30px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 17px;
  background: #fbfaf8;
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}

.legal-principles article:hover { border-color: rgba(109, 66, 217, .4); box-shadow: 0 20px 38px rgba(29, 26, 40, .1); transform: translateY(-6px); }
.legal-principles article > span { position: absolute; top: 25px; right: 27px; color: rgba(109, 66, 217, .48); font-size: 12px; font-weight: 850; }
.legal-principles article > svg { width: 40px; height: 40px; padding: 10px; border-radius: 12px; background: rgba(109, 66, 217, .09); color: var(--violet); }
.legal-principles h2 { margin: 30px 0 10px; font-size: 25px; letter-spacing: -.045em; }
.legal-principles p { margin: 0; color: #65636c; font-size: 14px; line-height: 1.65; }

.legal-details { background: linear-gradient(180deg, #f4f2ee, #fbfaf8); }
.legal-section-list { display: grid; margin-top: 58px; gap: 12px; }
.legal-section-list article { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 30px; padding: 33px 38px; border: 1px solid rgba(38, 35, 48, .1); border-radius: 17px; background: rgba(255, 255, 255, .8); transition: border-color 220ms ease, transform 220ms ease, box-shadow 220ms ease; }
.legal-section-list article:hover { border-color: rgba(109, 66, 217, .4); box-shadow: 0 18px 35px rgba(31, 27, 43, .08); transform: translateX(5px); }
.legal-section-number { display: grid; width: 52px; height: 52px; place-items: center; border-radius: 50%; background: var(--graphite); color: #d9cbff; font-size: 12px; font-weight: 850; }
.legal-section-list .eyebrow { margin: 0 0 9px; font-size: 10px; }
.legal-section-list h2 { margin: 0 0 12px; font-size: clamp(23px, 2vw, 31px); letter-spacing: -.05em; }
.legal-section-list p:not(.eyebrow) { max-width: 900px; margin: 0; color: #5f5d66; font-size: 15px; line-height: 1.75; }
.legal-section-list ul { display: grid; margin: 22px 0 0; padding: 0; gap: 10px; list-style: none; }
.legal-section-list li { display: flex; gap: 10px; color: #47454f; font-size: 14px; line-height: 1.6; }
.legal-section-list li svg { width: 15px; flex: 0 0 auto; margin-top: 4px; color: var(--violet); }

.legal-contact { display: grid; margin-block: 116px 24px; padding: clamp(38px, 5vw, 66px); grid-template-columns: minmax(0, 1fr) minmax(350px, .75fr); align-items: center; gap: 64px; border-radius: 26px; background: radial-gradient(circle at 88% 15%, rgba(242, 201, 76, .2), transparent 21%), radial-gradient(circle at 4% 100%, rgba(129, 87, 241, .32), transparent 35%), var(--graphite); color: var(--white); }
.legal-contact h2 { max-width: 630px; margin: 13px 0 15px; font-size: clamp(34px, 4vw, 54px); letter-spacing: -.06em; line-height: 1.02; }
.legal-contact p:not(.eyebrow) { max-width: 670px; margin: 0; color: #c8c4ce; line-height: 1.72; }
.legal-responsible-person { display: flex; margin-top: 24px; align-items: center; gap: 11px; color: #eeeaf5; }
.legal-responsible-person > svg { width: 30px; height: 30px; padding: 7px; border: 1px solid rgba(205, 186, 255, .4); border-radius: 9px; color: #cdbaff; }
.legal-responsible-person span { display: grid; gap: 2px; }
.legal-responsible-person strong { font-size: 13px; }
.legal-responsible-person small { color: #bcb8c3; font-size: 10px; }
.legal-contact-actions { display: grid; width: 100%; gap: 10px; }
:is(.legal-contact-email, .legal-contact-phone) { position: relative; display: flex; width: 100%; padding: 20px 22px; align-items: center; gap: 14px; border: 1px solid rgba(255,255,255,.22); border-radius: 15px; background: transparent; color: var(--white); font-size: 14px; font-weight: 800; text-decoration: none; transition: background 220ms ease, transform 220ms ease; }
:is(.legal-contact-email, .legal-contact-phone):hover { background: rgba(255,255,255,.1); transform: translateX(6px); }
:is(.legal-contact-email, .legal-contact-phone) svg { width: 21px; color: var(--yellow); }
:is(.legal-contact-email, .legal-contact-phone) svg:last-child { margin-left: auto; }
:is(.legal-contact-email, .legal-contact-phone) em { position: absolute; right: 52px; bottom: 4px; color: #cdbaff; font-size: 9px; font-style: normal; font-weight: 750; }
.legal-note { display: flex; margin-bottom: 116px; padding: 18px 23px; align-items: center; gap: 13px; border: 1px solid var(--line); border-radius: 13px; color: #696771; font-size: 12px; line-height: 1.65; }
.legal-note svg { width: 20px; flex: 0 0 auto; color: var(--violet); }
.legal-note p { margin: 0; }

@media (max-width: 1040px) {
  .legal-hero { grid-template-columns: 1fr; }
  .legal-hero-copy { width: min(100% - 96px, 900px); margin-inline: auto; padding-block: 102px 90px; }
  .legal-hero-visual { min-height: 440px; clip-path: polygon(0 7%, 100% 0, 100% 100%, 0 100%); }
  .legal-hero-visual img { object-position: center 45%; }
  .legal-contact { grid-template-columns: 1fr; gap: 34px; }
}

@media (max-width: 700px) {
  .legal-hero-copy { width: min(100% - 48px, 900px); padding-block: 76px 70px; }
  .legal-hero-copy h1 { font-size: clamp(43px, 12vw, 61px); }
  .legal-hero-copy > p:not(.eyebrow) { font-size: 16px; }
  .legal-hero-visual { min-height: 310px; }
  .legal-principles { grid-template-columns: 1fr; margin-top: 42px; }
  .legal-principles article { min-height: 0; }
  .legal-section-list { margin-top: 40px; }
  .legal-section-list article { grid-template-columns: 48px minmax(0, 1fr); gap: 14px; padding: 25px 20px; }
  .legal-section-number { width: 38px; height: 38px; font-size: 10px; }
  .legal-section-list h2 { font-size: 24px; }
  .legal-contact { margin-top: 80px; margin-bottom: 17px; padding: 35px 25px; }
  .legal-contact-email { padding: 17px; font-size: 12px; }
  .legal-note { margin-bottom: 80px; align-items: flex-start; }
  .footer-bottom { flex-wrap: wrap; }
}

/* Demande de soumission */
.header-contact-link {
  padding: 12px 3px;
  color: #36343d;
  font-size: 12px;
  font-weight: 750;
  white-space: nowrap;
}

.header-contact-link:hover,
.header-contact-link[aria-current="page"] { color: var(--violet); }

.quote-hero {
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid var(--line);
  background:
    radial-gradient(circle at 13% 16%, rgba(129, 87, 241, .11), transparent 25%),
    radial-gradient(circle at 86% 70%, rgba(242, 201, 76, .1), transparent 22%),
    #f8f6f1;
}

.quote-hero::before {
  position: absolute;
  inset: 0;
  opacity: .34;
  background-image: linear-gradient(rgba(109, 66, 217, .08) 1px, transparent 1px), linear-gradient(90deg, rgba(109, 66, 217, .08) 1px, transparent 1px);
  background-size: 52px 52px;
  mask-image: linear-gradient(90deg, #000, transparent 67%);
  content: "";
  pointer-events: none;
}

.quote-hero-inner {
  position: relative;
  z-index: 1;
  display: grid;
  min-height: 720px;
  grid-template-columns: minmax(0, 1fr) minmax(520px, .92fr);
  align-items: center;
  gap: clamp(56px, 7vw, 112px);
  padding-block: 88px;
}

.quote-hero-copy h1 {
  max-width: 760px;
  margin: 16px 0 24px;
  font-size: clamp(52px, 5.7vw, 88px);
  letter-spacing: -.075em;
  line-height: .96;
}

.quote-hero-copy > p:not(.eyebrow) {
  max-width: 670px;
  margin: 0;
  color: #55525f;
  font-size: 18px;
  line-height: 1.72;
}

.quote-hero-note {
  display: flex;
  max-width: 650px;
  margin-top: 30px;
  padding-top: 23px;
  align-items: flex-start;
  gap: 12px;
  border-top: 1px solid rgba(48, 43, 62, .12);
  color: #504c59;
  font-size: 13px;
  font-weight: 650;
  line-height: 1.6;
}

.quote-hero-note svg { width: 20px; flex: 0 0 auto; color: var(--violet); }

.quote-blueprint {
  position: relative;
  min-height: 535px;
  overflow: hidden;
  border-radius: 30px;
  background:
    radial-gradient(circle at 50% 48%, rgba(129, 87, 241, .2), transparent 30%),
    radial-gradient(circle at 76% 82%, rgba(242, 201, 76, .13), transparent 25%),
    #191a22;
  box-shadow: 0 35px 85px rgba(30, 26, 45, .22);
}

.quote-blueprint::before,
.quote-blueprint::after {
  position: absolute;
  top: 50%;
  left: 50%;
  border: 1px solid rgba(180, 153, 255, .25);
  border-radius: 50%;
  content: "";
  transform: translate(-50%, -50%);
}

.quote-blueprint::before { width: 360px; height: 360px; box-shadow: 0 0 45px rgba(129, 87, 241, .15) inset; }
.quote-blueprint::after { width: 245px; height: 245px; border-style: dashed; animation: quote-rotate 26s linear infinite; }

.quote-blueprint-grid {
  position: absolute;
  inset: 0;
  opacity: .15;
  background-image: linear-gradient(rgba(255,255,255,.1) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.1) 1px, transparent 1px);
  background-size: 42px 42px;
}

.quote-blueprint-core {
  position: absolute;
  z-index: 3;
  top: 50%;
  left: 50%;
  display: grid;
  width: 192px;
  height: 192px;
  place-content: center;
  gap: 8px;
  border: 1px solid rgba(201, 182, 255, .5);
  border-radius: 50%;
  background: rgba(27, 26, 39, .89);
  color: #fff;
  text-align: center;
  box-shadow: 0 0 0 11px rgba(129, 87, 241, .06), 0 0 52px rgba(129, 87, 241, .38);
  transform: translate(-50%, -50%);
}

.quote-blueprint-core span { color: #bda9f7; font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.quote-blueprint-core strong { max-width: 130px; font-size: 24px; letter-spacing: -.04em; line-height: 1.05; }
.quote-blueprint-core i { width: 34px; height: 3px; margin: 5px auto 0; border-radius: 999px; background: var(--yellow); box-shadow: 0 0 15px rgba(242,201,76,.65); }

.quote-blueprint-node {
  position: absolute;
  z-index: 4;
  display: grid;
  min-width: 128px;
  min-height: 86px;
  padding: 15px 16px;
  place-content: center;
  gap: 8px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 16px;
  background: rgba(28, 29, 38, .9);
  color: #e8e5ed;
  font-size: 10px;
  font-weight: 760;
  text-align: center;
  box-shadow: 0 14px 35px rgba(0,0,0,.2);
  animation: quote-float 5s ease-in-out infinite;
}

.quote-blueprint-node svg { width: 25px; height: 25px; margin-inline: auto; color: #a987ff; }
.quote-node-1 { top: 9%; left: 8%; }
.quote-node-2 { top: 12%; right: 7%; animation-delay: -1.2s; }
.quote-node-3 { bottom: 10%; left: 7%; animation-delay: -2.4s; }
.quote-node-4 { right: 8%; bottom: 9%; animation-delay: -3.6s; }

@keyframes quote-rotate { to { transform: translate(-50%, -50%) rotate(360deg); } }
@keyframes quote-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }

.quote-process { display: grid; grid-template-columns: minmax(0, .8fr) minmax(600px, 1.2fr); align-items: end; gap: 70px; }
.quote-process-heading h2 { max-width: 640px; margin: 14px 0 18px; font-size: clamp(39px, 4vw, 60px); letter-spacing: -.06em; line-height: 1; }
.quote-process-heading > p:last-child { max-width: 580px; margin: 0; color: #62606a; line-height: 1.72; }
.quote-process-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.quote-process-grid article { position: relative; min-height: 276px; padding: 26px; border: 1px solid var(--line); border-radius: 18px; background: #fbfaf8; transition: transform 220ms ease, border-color 220ms ease, box-shadow 220ms ease; }
.quote-process-grid article:hover { border-color: rgba(109,66,217,.4); box-shadow: 0 22px 42px rgba(42,34,63,.09); transform: translateY(-7px); }
.quote-process-grid article > span { position: absolute; top: 23px; right: 24px; color: #9f90c3; font-size: 10px; font-weight: 850; }
.quote-process-grid article > svg { width: 43px; height: 43px; padding: 11px; border-radius: 13px; background: rgba(109,66,217,.09); color: var(--violet); }
.quote-process-grid h3 { margin: 48px 0 10px; font-size: 21px; letter-spacing: -.045em; }
.quote-process-grid p { margin: 0; color: #68656f; font-size: 13px; line-height: 1.65; }

.quote-form-section { background: linear-gradient(180deg, #f3f1ed, #faf9f6); }
.quote-form-layout { display: grid; grid-template-columns: minmax(0, 1fr) 380px; align-items: start; gap: 26px; }

.quote-form,
.quote-success {
  padding: clamp(30px, 4vw, 58px);
  border: 1px solid rgba(44, 39, 57, .1);
  border-radius: 26px;
  background: rgba(255,255,255,.92);
  box-shadow: 0 28px 70px rgba(41, 35, 58, .08);
}

.quote-form-heading { padding-bottom: 34px; border-bottom: 1px solid var(--line); }
.quote-form-heading h2 { margin: 12px 0 10px; font-size: clamp(37px, 4vw, 56px); letter-spacing: -.06em; line-height: 1; }
.quote-form-heading > p:not(.eyebrow) { margin: 0; color: #6c6973; font-size: 13px; }
.quote-form-heading ol { display: grid; margin: 30px 0 0; padding: 0; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; list-style: none; }
.quote-form-heading li { display: flex; min-width: 0; align-items: center; gap: 8px; color: #77737e; font-size: 9px; font-weight: 760; line-height: 1.2; }
.quote-form-heading li span { display: grid; width: 26px; height: 26px; flex: 0 0 auto; place-items: center; border-radius: 50%; background: rgba(109,66,217,.09); color: var(--violet); font-size: 9px; }

.quote-fieldset { display: grid; margin: 0; padding: 43px 0; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 23px 18px; border: 0; border-bottom: 1px solid var(--line); }
.quote-fieldset legend { display: flex; width: 100%; margin: 0 0 25px; padding: 0; grid-column: 1 / -1; align-items: center; gap: 12px; color: #24212d; font-size: 19px; font-weight: 820; letter-spacing: -.035em; }
.quote-fieldset legend span { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 50%; background: var(--graphite); color: #cdbaff; font-size: 9px; letter-spacing: 0; }
.quote-fieldset > label:not(.quote-consent):not(.quote-field-ext),
.quote-field-full { display: grid; align-content: start; gap: 9px; }
.quote-field-full { grid-column: 1 / -1; }
.quote-fieldset label > span,
.quote-label { color: #4a4752; font-size: 11px; font-weight: 780; line-height: 1.35; }

.quote-fieldset :is(input:not([type="radio"]):not([type="checkbox"]), select, textarea) {
  width: 100%;
  min-height: 52px;
  padding: 13px 15px;
  border: 1px solid #dcd8e2;
  border-radius: 11px;
  background: #fbfafc;
  color: #27242f;
  font: inherit;
  font-size: 14px;
  transition: border-color 180ms ease, box-shadow 180ms ease, background 180ms ease;
}

.quote-fieldset textarea { min-height: 150px; resize: vertical; line-height: 1.6; }
.quote-fieldset :is(input, select, textarea):focus { border-color: var(--violet); background: #fff; box-shadow: 0 0 0 4px rgba(109,66,217,.1); outline: none; }

.quote-option-grid { display: grid; gap: 9px; }
.quote-client-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.quote-needs-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.quote-option-grid label { position: relative; cursor: pointer; }
.quote-option-grid input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.quote-option-grid label > span { position: relative; display: grid; min-height: 82px; padding: 15px 40px 15px 15px; grid-template-columns: 25px minmax(0, 1fr); align-items: center; gap: 10px; border: 1px solid #ddd9e4; border-radius: 13px; background: #fbfafc; color: #4c4954; font-size: 11px; font-weight: 730; line-height: 1.38; transition: border-color 180ms ease, background 180ms ease, transform 180ms ease, box-shadow 180ms ease; }
.quote-option-grid label > span > svg:first-child { width: 22px; height: 22px; color: #8c71d2; }
.quote-option-grid label > span > svg:last-child { position: absolute; top: 12px; right: 12px; width: 17px; height: 17px; padding: 3px; border-radius: 50%; background: #c9c4d1; color: #fff; opacity: .4; }
.quote-option-grid input:checked + span { border-color: rgba(109,66,217,.7); background: rgba(109,66,217,.065); box-shadow: 0 10px 24px rgba(109,66,217,.08); transform: translateY(-2px); }
.quote-option-grid input:checked + span > svg:last-child { background: var(--violet); opacity: 1; }
.quote-option-grid input:focus-visible + span { outline: 3px solid rgba(109,66,217,.28); outline-offset: 3px; }

.quote-consent { position: relative; display: grid; grid-template-columns: 24px minmax(0, 1fr); align-items: start; gap: 12px; cursor: pointer; }
.quote-consent > input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.quote-consent > span { display: grid; width: 23px; height: 23px; place-items: center; border: 1px solid #cfc9d7; border-radius: 7px; background: #fbfafc; }
.quote-consent > span svg { width: 15px; color: #fff; opacity: 0; }
.quote-consent > input:checked + span { border-color: var(--violet); background: var(--violet); }
.quote-consent > input:checked + span svg { opacity: 1; }
.quote-consent > input:focus-visible + span { outline: 3px solid rgba(109,66,217,.28); outline-offset: 3px; }
.quote-consent em { color: #65616d; font-size: 11px; font-style: normal; line-height: 1.62; }
.quote-consent a { color: var(--violet); font-weight: 780; text-decoration: underline; text-underline-offset: 3px; }
.quote-field-ext { position: absolute !important; left: -10000px !important; top: auto !important; opacity: 0 !important; pointer-events: none !important; }

.quote-form-status { margin: 24px 0 0; padding: 14px 16px; border-radius: 10px; font-size: 12px; font-weight: 700; line-height: 1.5; }
.quote-status-ok { display: inline-block; margin: 10px 0 0; padding: 6px 18px; border: none; border-radius: 6px; background: currentColor; color: inherit; font-size: 12px; font-weight: 800; cursor: pointer; opacity: 0.85; }
.quote-status-ok:hover { opacity: 1; }
.quote-email-valid { border-color: #22c55e !important; box-shadow: 0 0 0 3px rgba(34,197,94,.12) !important; }
.quote-email-invalid { border-color: #ef4444 !important; box-shadow: 0 0 0 3px rgba(239,68,68,.12) !important; }
.quote-phone-wrapper { display: flex; align-items: stretch; border: 1px solid #dcd8e2; border-radius: 11px; background: #fbfafc; transition: border-color 180ms ease, box-shadow 180ms ease, background 180ms ease; overflow: hidden; }
.quote-phone-wrapper:focus-within { border-color: var(--violet); background: #fff; box-shadow: 0 0 0 4px rgba(109,66,217,.1); }
.quote-phone-prefix { display: flex; align-items: center; padding: 0 12px 0 15px; color: #6d6a75; font-size: 14px; font-weight: 600; user-select: none; white-space: nowrap; border-right: 1px solid #dcd8e2; }
.quote-phone-wrapper input[name="phone"] { flex: 1; min-height: 52px; padding: 13px 15px; border: none; border-radius: 0; background: transparent; color: #27242f; font: inherit; font-size: 14px; outline: none; box-shadow: none; }
.quote-form-error { border: 1px solid rgba(184,55,70,.24); background: rgba(184,55,70,.07); color: #9f2f3e; }
.quote-submit { min-width: 250px; margin-top: 30px; border: 0; cursor: pointer; }
.quote-submit:disabled { cursor: wait; opacity: .72; }
.quote-spinner { animation: quote-spin 1s linear infinite; }
@keyframes quote-spin { to { transform: rotate(360deg); } }

.quote-aside {
  position: sticky;
  top: 24px;
  overflow: hidden;
  padding: 34px;
  border-radius: 24px;
  background:
    radial-gradient(circle at 100% 0, rgba(129,87,241,.3), transparent 32%),
    radial-gradient(circle at 0 100%, rgba(242,201,76,.1), transparent 29%),
    var(--graphite);
  color: #fff;
  box-shadow: 0 28px 65px rgba(29,26,41,.18);
}

.quote-aside-visual { position: relative; display: grid; width: 96px; height: 96px; margin-bottom: 34px; place-items: center; border: 1px solid rgba(205,186,255,.35); border-radius: 50%; background: rgba(129,87,241,.11); }
.quote-aside-visual::before { position: absolute; inset: -12px; border: 1px dashed rgba(205,186,255,.18); border-radius: 50%; content: ""; animation: quote-rotate-simple 18s linear infinite; }
.quote-aside-visual svg { width: 39px; color: #cdbaff; }
.quote-aside-visual span,
.quote-aside-visual i { position: absolute; border-radius: 50%; background: var(--yellow); box-shadow: 0 0 13px rgba(242,201,76,.7); }
.quote-aside-visual span { top: 9px; right: 9px; width: 7px; height: 7px; }
.quote-aside-visual i { bottom: 9px; left: 8px; width: 4px; height: 4px; }
@keyframes quote-rotate-simple { to { transform: rotate(360deg); } }
.quote-aside .eyebrow { color: #cdbaff; }
.quote-aside h2 { margin: 13px 0 15px; font-size: 34px; letter-spacing: -.055em; line-height: 1.03; }
.quote-aside > p:not(.eyebrow) { margin: 0; color: #c5c1cc; font-size: 13px; line-height: 1.72; }
.quote-aside ul { display: grid; margin: 28px 0; padding: 0; gap: 12px; list-style: none; }
.quote-aside li { display: flex; align-items: flex-start; gap: 10px; color: #ebe8f0; font-size: 12px; line-height: 1.5; }
.quote-aside li svg { width: 18px; flex: 0 0 auto; color: #a987ff; }
.quote-aside-secure,
.quote-aside-location { display: flex; padding-top: 20px; align-items: flex-start; gap: 10px; border-top: 1px solid rgba(255,255,255,.12); color: #aaa6b1; font-size: 10px; line-height: 1.55; }
.quote-aside-location { margin-top: 16px; padding-top: 0; border-top: 0; }
.quote-aside-secure svg,
.quote-aside-location svg { width: 17px; flex: 0 0 auto; color: var(--yellow); }

.quote-success { grid-column: 1 / -1; min-height: 560px; display: grid; place-content: center; justify-items: center; text-align: center; }
.quote-success[hidden],
.quote-form[hidden],
.quote-aside[hidden] { display: none !important; }
.quote-success > span { display: grid; width: 92px; height: 92px; margin-bottom: 28px; place-items: center; border-radius: 50%; background: rgba(109,66,217,.09); color: var(--violet); box-shadow: 0 0 0 15px rgba(109,66,217,.035); }
.quote-success > span svg { width: 45px; height: 45px; }
.quote-success h2 { max-width: 780px; margin: 14px auto 18px; font-size: clamp(39px, 5vw, 66px); letter-spacing: -.065em; line-height: 1; }
.quote-success > p:not(.eyebrow) { max-width: 720px; margin: 0 auto 30px; color: #66626e; line-height: 1.75; }

@media (max-width: 1180px) {
  .quote-hero-inner { grid-template-columns: 1fr; min-height: 0; padding-block: 84px; }
  .quote-blueprint { width: min(100%, 720px); min-height: 520px; }
  .quote-process { grid-template-columns: 1fr; align-items: start; }
  .quote-form-layout { grid-template-columns: minmax(0, 1fr) 330px; }
}

@media (max-width: 1080px) {
  .header-actions > .header-contact-link { display: none; }
}

@media (max-width: 900px) {
  .quote-process-grid { grid-template-columns: 1fr; }
  .quote-process-grid article { min-height: 0; }
  .quote-process-grid h3 { margin-top: 30px; }
  .quote-form-layout { grid-template-columns: 1fr; }
  .quote-aside { position: relative; top: auto; }
}

@media (max-width: 680px) {
  .quote-hero-inner { width: min(100% - 32px, 1340px); padding-block: 68px 55px; gap: 48px; }
  .quote-hero-copy h1 { font-size: clamp(44px, 13vw, 62px); }
  .quote-hero-copy > p:not(.eyebrow) { font-size: 16px; }
  .quote-blueprint { min-height: 440px; border-radius: 22px; }
  .quote-blueprint::before { width: 280px; height: 280px; }
  .quote-blueprint::after { width: 190px; height: 190px; }
  .quote-blueprint-core { width: 150px; height: 150px; }
  .quote-blueprint-core strong { font-size: 19px; }
  .quote-blueprint-node { min-width: 102px; min-height: 70px; padding: 11px; font-size: 8px; }
  .quote-blueprint-node svg { width: 20px; height: 20px; }
  .quote-node-1, .quote-node-3 { left: 4%; }
  .quote-node-2, .quote-node-4 { right: 4%; }
  .quote-process { gap: 42px; }
  .quote-form-section { padding-block: 80px; }
  .quote-form-layout { width: min(100% - 24px, 1340px); }
  .quote-form, .quote-success { padding: 30px 20px; border-radius: 18px; }
  .quote-form-heading ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .quote-fieldset { grid-template-columns: 1fr; padding-block: 35px; }
  .quote-client-grid, .quote-needs-grid { grid-template-columns: 1fr; }
  .quote-field-full { grid-column: auto; }
  .quote-option-grid label > span { min-height: 68px; }
  .quote-submit { width: 100%; min-width: 0; }
  .quote-aside { padding: 30px 25px; }
}

@media (prefers-reduced-motion: reduce) {
  .quote-blueprint::after,
  .quote-blueprint-node,
  .quote-aside-visual::before,
  .quote-spinner { animation: none; }
}
