/*
 * SEONOVA — ANIMATIONS GLOBALES
 * Version 2.0
 *
 * Ce fichier applique les styles des pages et footer.
 */

@keyframes sn-ring-breathe {
  0%, 100% {
    opacity: .48;
    border-color: rgba(202, 185, 255, .1);
    background-color: rgba(143, 71, 255, 0);
    filter:
      drop-shadow(0 0 6px rgba(143, 71, 255, .08))
      drop-shadow(0 0 0 rgba(229, 50, 197, 0));
    transform: scale(1);
  }

  50% {
    opacity: 1;
    border-color: rgba(190, 145, 255, .3);
    background-color: rgba(143, 71, 255, .025);
    filter:
      drop-shadow(0 0 22px rgba(143, 71, 255, .32))
      drop-shadow(0 0 42px rgba(229, 50, 197, .12));
    transform: scale(1.035);
  }
}

/*
 * Clipping des halos
 */
.sn-francenum .sn-hero,
.snhome .sn-hero,
.snhome .sn-final-card,
.snfooter,
.sncontact .snc-hero,
.snaudit .sna-hero {
  overflow: hidden;
  isolation: isolate;
}

/* Cercles animés */
.sn-francenum .sn-hero::after,
.snhome .sn-hero::after,
.snhome .sn-final-card::after,
.snfooter::after,
.sncontact .snc-hero::after,
.snaudit .sna-hero::after {
  transform-origin: center;
  will-change: transform, opacity, filter;
  animation: sn-ring-breathe 6.4s ease-in-out infinite;
}

/* Décalages */
.snhome .sn-final-card::after {
  animation-delay: -3.2s;
}

.snfooter::after {
  animation-delay: -1.6s;
}

.sncontact .snc-hero::after {
  animation-delay: -.8s;
}

/* Accessibilité : aucun mouvement si l'utilisateur demande des animations réduites. */
@media (prefers-reduced-motion: reduce) {
  .sn-francenum .sn-hero::after,
  .snhome .sn-hero::after,
  .snhome .sn-final-card::after,
  .snfooter::after,
  .sncontact .snc-hero::after,
  .snaudit .sna-hero::after {
    animation: none;
    opacity: .72;
    border-color: rgba(190, 145, 255, .17);
    background-color: rgba(143, 71, 255, .015);
    filter: none;
    transform: none;
  }
}

/* Home */

.snhome {
    --sn-ink: #101015;
    --sn-ink-2: #181820;
    --sn-muted: #666675;
    --sn-muted-light: rgba(255, 255, 255, 0.68);
    --sn-paper: #ffffff;
    --sn-soft: #f7f5f8;
    --sn-line: rgba(16, 16, 21, 0.1);
    --sn-accent: #e532c5;
    --sn-accent-dark: #b71ca0;
    --sn-violet: #8f47ff;
    --sn-radius: 28px;
    color: var(--sn-ink);
    background: var(--sn-paper);
    font-family: inherit;
    overflow: hidden;
  }

  .snhome,
  .snhome * { box-sizing: border-box; }

  .snhome a { color: inherit; }

  .snhome .sn-container {
    width: min(1180px, calc(100% - 40px));
    margin-inline: auto;
  }

  .snhome .sn-section { padding: 105px 0; }

  .snhome h1,
  .snhome h2,
  .snhome h3,
  .snhome p { margin-top: 0; }

  .snhome h1 {
    max-width: 900px;
    margin-bottom: 26px;
    color: #fff;
    font-size: clamp(48px, 6.3vw, 84px);
    font-weight: 800;
    line-height: 0.96;
    letter-spacing: -0.06em;
  }

  .snhome h2 {
    max-width: 780px;
    margin-bottom: 22px;
    font-size: clamp(35px, 4.6vw, 58px);
    font-weight: 800;
    line-height: 1.03;
    letter-spacing: -0.048em;
  }

  .snhome h3 {
    margin-bottom: 12px;
    font-size: 22px;
    font-weight: 760;
    line-height: 1.18;
    letter-spacing: -0.025em;
  }

  .snhome p {
    color: var(--sn-muted);
    font-size: 17px;
    line-height: 1.72;
  }

  .snhome .sn-kicker {
    display: inline-flex;
    margin: 0 0 18px;
    align-items: center;
    gap: 10px;
    color: var(--sn-accent-dark);
    font-size: 13px;
    font-weight: 850;
    line-height: 1.2;
    letter-spacing: 0.11em;
    text-transform: uppercase;
  }

  .snhome .sn-kicker::before {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--sn-accent);
    box-shadow: 0 0 0 6px rgba(229, 50, 197, 0.12);
    content: "";
  }

  .snhome .sn-lead {
    max-width: 760px;
    font-size: clamp(18px, 2vw, 21px);
    line-height: 1.65;
  }

  .snhome .sn-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
  }

  .snhome .sn-btn {
    display: inline-flex;
    min-height: 54px;
    padding: 0 24px;
    align-items: center;
    justify-content: center;
    gap: 9px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-size: 15px;
    font-weight: 760;
    line-height: 1;
    text-decoration: none;
    transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease, border-color 180ms ease;
  }

  .snhome .sn-btn::after {
    font-size: 18px;
    content: "→";
    transition: transform 180ms ease;
  }

  .snhome .sn-btn:hover {
    transform: translateY(-2px);
    text-decoration: none;
  }

  .snhome .sn-btn:hover::after { transform: translateX(3px); }

  .snhome .sn-btn-primary {
    color: #fff;
    background: linear-gradient(135deg, var(--sn-accent), #bd28ff);
    box-shadow: 0 15px 35px rgba(229, 50, 197, 0.25);
  }

  .snhome .sn-btn-primary:hover {
    color: #fff;
    box-shadow: 0 18px 42px rgba(229, 50, 197, 0.36);
  }

  .snhome .sn-btn-light {
    color: #fff;
    border-color: rgba(255, 255, 255, 0.2);
    background: rgba(255, 255, 255, 0.06);
  }

  .snhome .sn-btn-light:hover {
    color: #fff;
    border-color: rgba(255, 255, 255, 0.32);
    background: rgba(255, 255, 255, 0.11);
  }

  .snhome .sn-btn-dark {
    color: #fff;
    background: var(--sn-ink);
  }

  .snhome .sn-btn-dark:hover { color: #fff; }

  /* HERO */
  .snhome .sn-hero {
    position: relative;
    min-height: 790px;
    padding: 112px 0 90px;
    display: grid;
    align-items: center;
    background:
      radial-gradient(circle at 80% 13%, rgba(229, 50, 197, 0.28), transparent 25%),
      radial-gradient(circle at 12% 88%, rgba(117, 53, 255, 0.18), transparent 30%),
      #0d0d12;
  }

  .snhome .sn-hero::before {
    position: absolute;
    inset: 0;
    opacity: 0.22;
    background-image:
      linear-gradient(rgba(255,255,255,0.035) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255,255,255,0.035) 1px, transparent 1px);
    background-size: 72px 72px;
    mask-image: linear-gradient(to bottom, #000, transparent 90%);
    content: "";
    pointer-events: none;
  }

  .snhome .sn-hero::after {
    position: absolute;
    right: -135px;
    bottom: -175px;
    width: 500px;
    height: 500px;
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 50%;
    box-shadow:
      0 0 0 70px rgba(255,255,255,0.025),
      0 0 0 140px rgba(255,255,255,0.018);
    content: "";
    pointer-events: none;
  }

  .snhome .sn-hero-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(310px, 0.75fr);
    gap: 70px;
    align-items: center;
  }

  .snhome .sn-hero .sn-kicker { color: #ff8eea; }

  .snhome .sn-hero-copy > p:not(.sn-kicker) {
    max-width: 720px;
    margin-bottom: 34px;
    color: rgba(255, 255, 255, 0.72);
    font-size: 19px;
    line-height: 1.7;
  }

  .snhome .sn-gradient-word {
    color: transparent;
    background: linear-gradient(95deg, #ff77e8, #c77dff 55%, #fff);
    -webkit-background-clip: text;
    background-clip: text;
  }

  .snhome .sn-hero-notes {
    display: flex;
    margin-top: 30px;
    flex-wrap: wrap;
    gap: 10px 22px;
  }

  .snhome .sn-hero-note {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: rgba(255,255,255,0.61);
    font-size: 13px;
    font-weight: 650;
  }

  .snhome .sn-hero-note::before {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #ff66e4;
    content: "";
  }

  .snhome .sn-growth-card {
    position: relative;
    padding: 24px;
    border: 1px solid rgba(255, 255, 255, 0.13);
    border-radius: 30px;
    background: rgba(255, 255, 255, 0.075);
    box-shadow: 0 32px 80px rgba(0, 0, 0, 0.28);
    backdrop-filter: blur(15px);
    -webkit-backdrop-filter: blur(15px);
  }

  .snhome .sn-growth-head {
    display: flex;
    margin-bottom: 26px;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
  }

  .snhome .sn-growth-head strong {
    color: #fff;
    font-size: 15px;
  }

  .snhome .sn-live {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: #d8ffd7;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
  }

  .snhome .sn-live::before {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #67ef87;
    box-shadow: 0 0 0 5px rgba(103,239,135,.1);
    content: "";
  }

  .snhome .sn-growth-visual {
    position: relative;
    height: 168px;
    margin-bottom: 18px;
    border-radius: 20px;
    background:
      linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px),
      rgba(0,0,0,.13);
    background-size: 100% 42px, 52px 100%, auto;
    overflow: hidden;
  }

  .snhome .sn-growth-visual svg {
    position: absolute;
    inset: 19px 15px 11px;
    width: calc(100% - 30px);
    height: calc(100% - 30px);
    overflow: visible;
  }

  .snhome .sn-growth-value {
    position: absolute;
    top: 18px;
    left: 20px;
    z-index: 2;
  }

  .snhome .sn-growth-value small {
    display: block;
    margin-bottom: 4px;
    color: rgba(255,255,255,.5);
    font-size: 11px;
  }

  .snhome .sn-growth-value strong {
    color: #fff;
    font-size: 28px;
    letter-spacing: -.04em;
  }

  .snhome .sn-funnel {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
  }

  .snhome .sn-funnel-item {
    padding: 14px 10px;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 15px;
    background: rgba(255,255,255,.045);
    text-align: center;
  }

  .snhome .sn-funnel-item span {
    display: block;
    margin-bottom: 4px;
    color: #ff8eea;
    font-size: 11px;
    font-weight: 850;
  }

  .snhome .sn-funnel-item small {
    color: rgba(255,255,255,.64);
    font-size: 11px;
  }

  /* TECHNOLOGIES */
  .snhome .sn-techbar {
    border-bottom: 1px solid var(--sn-line);
    background: #fff;
  }

  .snhome .sn-techbar-inner {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 35px;
    padding: 27px 0;
    align-items: center;
  }

  .snhome .sn-techbar strong {
    color: #7d7d88;
    font-size: 11px;
    letter-spacing: .11em;
    text-transform: uppercase;
  }

  .snhome .sn-tech-list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 13px 28px;
  }

  .snhome .sn-tech-list span {
    color: #2d2d35;
    font-size: 15px;
    font-weight: 760;
    letter-spacing: -.02em;
  }

  /* SERVICES */
  .snhome .sn-services { background: var(--sn-soft); }

  .snhome .sn-section-head {
    display: flex;
    margin-bottom: 45px;
    align-items: end;
    justify-content: space-between;
    gap: 40px;
  }

  .snhome .sn-section-head > p {
    max-width: 450px;
    margin-bottom: 8px;
  }

  .snhome .sn-bento {
    display: grid;
    grid-template-columns: 1.1fr .9fr;
    grid-template-rows: 1fr 1fr;
    gap: 18px;
  }

  .snhome .sn-service-card {
    position: relative;
    min-height: 280px;
    padding: 34px;
    border: 1px solid var(--sn-line);
    border-radius: var(--sn-radius);
    background: #fff;
    overflow: hidden;
    transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
  }

  .snhome .sn-service-card:hover {
    border-color: rgba(229,50,197,.25);
    box-shadow: 0 25px 60px rgba(20,14,24,.09);
    transform: translateY(-5px);
  }

  .snhome .sn-service-card-large {
    grid-row: 1 / 3;
    min-height: 578px;
    padding: 44px;
    color: #fff;
    background:
      radial-gradient(circle at 80% 78%, rgba(229,50,197,.32), transparent 27%),
      var(--sn-ink-2);
  }

  .snhome .sn-service-card-large h3 {
    max-width: 480px;
    color: #fff;
    font-size: clamp(32px, 3.8vw, 50px);
    line-height: 1.04;
  }

  .snhome .sn-service-card-large p {
    max-width: 520px;
    color: rgba(255,255,255,.68);
  }

  .snhome .sn-service-index {
    display: inline-grid;
    width: 50px;
    height: 50px;
    margin-bottom: 32px;
    place-items: center;
    border-radius: 16px;
    color: var(--sn-accent-dark);
    background: rgba(229,50,197,.1);
    font-size: 13px;
    font-weight: 850;
  }

  .snhome .sn-service-card-large .sn-service-index {
    color: #ff9ced;
    background: rgba(255,255,255,.08);
  }

  .snhome .sn-service-link {
    display: inline-flex;
    margin-top: 10px;
    align-items: center;
    gap: 8px;
    color: var(--sn-accent-dark);
    font-size: 14px;
    font-weight: 800;
    text-decoration: none;
  }

  .snhome .sn-service-card-large .sn-service-link { color: #ff8eea; }
  .snhome .sn-service-link:hover { text-decoration: none; }

  .snhome .sn-browser {
    position: absolute;
    right: -35px;
    bottom: -42px;
    width: 78%;
    height: 270px;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 23px 23px 0 0;
    background: rgba(255,255,255,.07);
    box-shadow: 0 30px 70px rgba(0,0,0,.28);
    transform: rotate(-4deg);
  }

  .snhome .sn-browser-top {
    display: flex;
    height: 40px;
    padding: 0 15px;
    align-items: center;
    gap: 6px;
    border-bottom: 1px solid rgba(255,255,255,.08);
  }

  .snhome .sn-browser-top i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: rgba(255,255,255,.25);
  }

  .snhome .sn-browser-body {
    display: grid;
    grid-template-columns: 1fr .75fr;
    gap: 20px;
    padding: 29px;
  }

  .snhome .sn-wire-title,
  .snhome .sn-wire-copy,
  .snhome .sn-wire-btn,
  .snhome .sn-wire-img { display: block; border-radius: 999px; }
  .snhome .sn-wire-title { width: 92%; height: 13px; margin-bottom: 11px; background:#fff; }
  .snhome .sn-wire-title:nth-child(2) { width: 72%; }
  .snhome .sn-wire-copy { width: 77%; height: 6px; margin: 19px 0 8px; background:rgba(255,255,255,.26); }
  .snhome .sn-wire-copy:nth-child(4) { width: 62%; margin-top: 0; }
  .snhome .sn-wire-btn { width: 78px; height: 25px; margin-top: 20px; background:var(--sn-accent); }
  .snhome .sn-wire-img { height: 150px; border-radius: 15px; background:linear-gradient(145deg,rgba(229,50,197,.62),rgba(143,71,255,.3)); }

  /* MANIFESTO */
  .snhome .sn-manifesto-grid {
    display: grid;
    grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr);
    gap: 78px;
    align-items: start;
  }

  .snhome .sn-manifesto-copy { position: sticky; top: 40px; }

  .snhome .sn-pillars { display: grid; border-top: 1px solid var(--sn-line); }

  .snhome .sn-pillar {
    display: grid;
    grid-template-columns: 62px 1fr;
    gap: 20px;
    padding: 29px 0;
    border-bottom: 1px solid var(--sn-line);
  }

  .snhome .sn-pillar span {
    color: var(--sn-accent-dark);
    font-size: 13px;
    font-weight: 850;
    letter-spacing: .08em;
  }

  .snhome .sn-pillar p { margin-bottom: 0; }

  /* CASE STUDY */
  .snhome .sn-case-section {
    position: relative;
    color: #fff;
    background:
      radial-gradient(circle at 85% 16%, rgba(229,50,197,.22), transparent 28%),
      #111117;
  }

  .snhome .sn-case-section .sn-kicker { color:#ff8eea; }
  .snhome .sn-case-section h2 { color:#fff; }

  .snhome .sn-case-grid {
    display: grid;
    grid-template-columns: minmax(0,.86fr) minmax(0,1.14fr);
    gap: 76px;
    align-items: center;
  }

  .snhome .sn-case-copy > p {
    max-width: 600px;
    color: rgba(255,255,255,.66);
  }

  .snhome .sn-case-label {
    display: inline-flex;
    margin-bottom: 24px;
    padding: 8px 13px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 999px;
    color: rgba(255,255,255,.76);
    background: rgba(255,255,255,.05);
    font-size: 12px;
    font-weight: 750;
  }

  .snhome .sn-metrics {
    display: grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 14px;
  }

  .snhome .sn-metric {
    min-height: 170px;
    padding: 26px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 23px;
    background: rgba(255,255,255,.055);
  }

  .snhome .sn-metric strong {
    color: #fff;
    font-size: clamp(30px,4vw,47px);
    line-height: 1;
    letter-spacing: -.045em;
  }

  .snhome .sn-metric span {
    color: rgba(255,255,255,.6);
    font-size: 13px;
    line-height: 1.45;
  }

  .snhome .sn-results-note {
    margin-top: 17px;
    color: rgba(255,255,255,.42);
    font-size: 11px;
    line-height: 1.55;
  }

  /* LOCAL */
  .snhome .sn-local-grid {
    display: grid;
    grid-template-columns: 1fr .92fr;
    gap: 60px;
    align-items: center;
  }

  .snhome .sn-map-card {
    position: relative;
    min-height: 430px;
    border: 1px solid var(--sn-line);
    border-radius: 32px;
    background:
      radial-gradient(circle at 50% 50%, rgba(229,50,197,.09), transparent 36%),
      linear-gradient(rgba(16,16,21,.04) 1px, transparent 1px),
      linear-gradient(90deg,rgba(16,16,21,.04) 1px,transparent 1px),
      var(--sn-soft);
    background-size: auto, 46px 46px, 46px 46px, auto;
    overflow: hidden;
  }

  .snhome .sn-map-ring {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 250px;
    height: 250px;
    border: 1px solid rgba(229,50,197,.18);
    border-radius: 50%;
    box-shadow:
      0 0 0 58px rgba(229,50,197,.035),
      0 0 0 116px rgba(229,50,197,.02);
    transform: translate(-50%,-50%);
  }

  .snhome .sn-map-pin {
    position: absolute;
    padding: 9px 13px;
    border: 1px solid rgba(16,16,21,.08);
    border-radius: 999px;
    background: #fff;
    box-shadow: 0 12px 30px rgba(16,16,21,.1);
    font-size: 12px;
    font-weight: 800;
  }

  .snhome .sn-map-pin::before {
    display: inline-block;
    width: 7px;
    height: 7px;
    margin-right: 7px;
    border-radius: 50%;
    background: var(--sn-accent);
    content: "";
  }

  .snhome .sn-pin-teil { top:46%; left:43%; color:#fff; background:var(--sn-ink); transform:scale(1.12); }
  .snhome .sn-pin-montelimar { top:64%; left:56%; }
  .snhome .sn-pin-valence { top:23%; left:49%; }
  .snhome .sn-pin-aubenas { top:57%; left:19%; }
  .snhome .sn-pin-lyon { top:12%; right:9%; }

  .snhome .sn-tags {
    display: flex;
    margin-top: 28px;
    flex-wrap: wrap;
    gap: 9px;
  }

  .snhome .sn-tag {
    padding: 9px 14px;
    border: 1px solid var(--sn-line);
    border-radius: 999px;
    color: #4b4b56;
    background: var(--sn-soft);
    font-size: 13px;
    font-weight: 680;
  }

  /* SECTION MOBILITE */
  
.snhome .sn-reach {
  position:relative;
  overflow:hidden;
  isolation:isolate;
  background:
    radial-gradient(circle at 7% 91%,rgba(143,71,255,.065),transparent 24%),
    #fff;
}

.snhome .sn-reach::before {
  position:absolute;
  z-index:-1;
  top:8%;
  right:-170px;
  width:390px;
  height:390px;
  border:1px solid rgba(143,71,255,.07);
  border-radius:50%;
  content:"";
  pointer-events:none;
}

.snhome .sn-reach__grid {
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:72px;
  align-items:center;
}

/* CARTE / GLOBE */
.snhome .sn-reach__visual {
  position:relative;
  min-height:590px;
  padding:26px;
  overflow:hidden;
  isolation:isolate;
  border:1px solid rgba(255,255,255,.08);
  border-radius:34px;
  color:#fff;
  background:
    radial-gradient(circle at 52% 43%,rgba(143,71,255,.13),transparent 34%),
    linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px),
    linear-gradient(145deg,#171720,#0d0d12 72%);
  background-size:auto,44px 44px,44px 44px,auto;
  box-shadow:0 35px 90px rgba(16,16,21,.21);
}

.snhome .sn-reach__visual::before {
  position:absolute;
  z-index:-1;
  top:-145px;
  right:-130px;
  width:360px;
  height:360px;
  border:1px solid rgba(218,180,255,.15);
  border-radius:50%;
  box-shadow:
    0 0 0 56px rgba(143,71,255,.025),
    0 0 85px rgba(143,71,255,.12);
  content:"";
  pointer-events:none;
  animation:sn-reach-ring 6.4s ease-in-out infinite;
}

.snhome .sn-reach__topline {
  position:relative;
  z-index:3;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  color:rgba(255,255,255,.58);
  font-size:10px;
  font-weight:780;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.snhome .sn-reach__base,
.snhome .sn-reach__status {
  display:inline-flex;
  align-items:center;
  gap:8px;
}

.snhome .sn-reach__base i {
  width:7px;
  height:7px;
  border-radius:50%;
  background:#ff5dde;
  box-shadow:0 0 0 5px rgba(229,50,197,.12),0 0 17px rgba(229,50,197,.65);
}

.snhome .sn-reach__status::before {
  width:5px;
  height:5px;
  border-radius:50%;
  background:#a987ff;
  content:"";
}

.snhome .sn-reach__globe {
  position:relative;
  height:438px;
  margin:8px -12px 0;
}

.snhome .sn-reach__globe svg {
  display:block;
  width:100%;
  height:100%;
  overflow:visible;
}

.snhome .sn-reach__sphere,
.snhome .sn-reach__gridline {
  fill:none;
  stroke:rgba(255,255,255,.12);
  stroke-width:1;
}

.snhome .sn-reach__gridline { stroke:rgba(255,255,255,.075); }

.snhome .sn-reach__route {
  fill:none;
  stroke:url(#sn-reach-route);
  stroke-width:2;
  stroke-linecap:round;
  stroke-dasharray:7 10;
  opacity:.67;
  animation:sn-reach-dash 10s linear infinite;
}

.snhome .sn-reach__route--two { animation-delay:-3.3s; }
.snhome .sn-reach__route--three { animation-delay:-6.6s; }

.snhome .sn-reach__destination {
  fill:#b99aff;
  filter:drop-shadow(0 0 8px rgba(169,135,255,.85));
}

.snhome .sn-reach__origin {
  fill:#fff;
  filter:drop-shadow(0 0 9px rgba(255,255,255,.75));
}

.snhome .sn-reach__origin-ring {
  fill:rgba(229,50,197,.12);
  stroke:#f05ad6;
  stroke-width:1.5;
  transform-box:fill-box;
  transform-origin:center;
  animation:sn-reach-origin 2.8s ease-out infinite;
}

.snhome .sn-reach__label {
  position:absolute;
  z-index:2;
  display:inline-flex;
  padding:8px 11px;
  align-items:center;
  border:1px solid rgba(255,255,255,.1);
  border-radius:999px;
  color:rgba(255,255,255,.78);
  background:rgba(18,18,25,.76);
  box-shadow:0 10px 28px rgba(0,0,0,.2);
  -webkit-backdrop-filter:blur(9px);
  backdrop-filter:blur(9px);
  font-size:10px;
  font-weight:760;
  letter-spacing:.025em;
  white-space:nowrap;
}

.snhome .sn-reach__label--origin {
  top:45%;
  left:50%;
  padding:10px 13px;
  flex-direction:column;
  align-items:flex-start;
  border-color:rgba(229,50,197,.3);
  color:#fff;
  background:rgba(23,17,27,.93);
  font-size:11px;
  transform:translate(18px,-50%);
}

.snhome .sn-reach__label--origin small {
  color:rgba(255,255,255,.46);
  font-size:8px;
  font-weight:650;
  letter-spacing:.09em;
  text-transform:uppercase;
}

.snhome .sn-reach__label--france { top:34%; left:7%; }
.snhome .sn-reach__label--europe { top:34%; right:2%; }
.snhome .sn-reach__label--world { right:9%; bottom:9%; }

.snhome .sn-reach__principles {
  position:absolute;
  right:26px;
  bottom:26px;
  left:26px;
  z-index:4;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.08);
  border-radius:17px;
  background:rgba(255,255,255,.08);
  box-shadow:0 18px 45px rgba(0,0,0,.19);
}

.snhome .sn-reach__principles > div {
  display:flex;
  min-width:0;
  padding:15px 16px;
  align-items:center;
  gap:11px;
  background:rgba(15,15,21,.91);
}

.snhome .sn-reach__principle-icon {
  display:grid;
  width:31px;
  height:31px;
  flex:0 0 auto;
  place-items:center;
  border:1px solid rgba(229,50,197,.2);
  border-radius:50%;
  color:#f066d7;
  background:rgba(229,50,197,.07);
  font-size:14px;
}

.snhome .sn-reach__principles p { margin:0; }

.snhome .sn-reach__principles strong,
.snhome .sn-reach__principles small { display:block; }

.snhome .sn-reach__principles strong {
  margin-bottom:3px;
  color:#fff;
  font-size:12px;
  line-height:1.2;
}

.snhome .sn-reach__principles small {
  color:rgba(255,255,255,.43);
  font-size:9px;
  line-height:1.3;
}

/* CONTENU */
.snhome .sn-reach__content { max-width:570px; }

.snhome .sn-reach__content h2 { margin-bottom:24px; }

.snhome .sn-reach__content h2 span {
  color:transparent;
  background:linear-gradient(95deg,var(--sn-accent-dark),var(--sn-violet));
  -webkit-background-clip:text;
  background-clip:text;
}

.snhome .sn-reach__content .sn-lead {
  margin-bottom:16px;
  color:#393942;
}

.snhome .sn-reach__copy {
  margin-bottom:29px;
  color:var(--sn-muted);
  font-size:15px;
  line-height:1.76;
}

.snhome .sn-reach__points {
  display:grid;
  margin-bottom:30px;
  border-top:1px solid var(--sn-line);
}

.snhome .sn-reach__point {
  display:grid;
  grid-template-columns:36px 1fr;
  gap:12px;
  padding:15px 0;
  align-items:start;
  border-bottom:1px solid var(--sn-line);
}

.snhome .sn-reach__point > span {
  padding-top:3px;
  color:var(--sn-accent-dark);
  font-size:10px;
  font-weight:850;
  letter-spacing:.08em;
}

.snhome .sn-reach__point p { margin:0; }

.snhome .sn-reach__point strong,
.snhome .sn-reach__point small { display:block; }

.snhome .sn-reach__point strong {
  margin-bottom:4px;
  color:var(--sn-ink);
  font-size:14px;
  font-weight:780;
}

.snhome .sn-reach__point small {
  color:var(--sn-muted);
  font-size:12px;
  line-height:1.5;
}

.snhome .sn-reach__cta { width:auto; }

@keyframes sn-reach-dash {
  to { stroke-dashoffset:-170; }
}

@keyframes sn-reach-origin {
  0% { opacity:1; transform:scale(.62); }
  75%,100% { opacity:0; transform:scale(1.75); }
}

@keyframes sn-reach-ring {
  0%,100% {
    opacity:.48;
    filter:drop-shadow(0 0 5px rgba(143,71,255,.08));
    transform:scale(1);
  }
  50% {
    opacity:1;
    filter:drop-shadow(0 0 25px rgba(143,71,255,.3));
    transform:scale(1.035);
  }
}

@media (max-width:1020px) {
  .snhome .sn-reach__grid {
    grid-template-columns:1fr;
    gap:52px;
  }
  .snhome .sn-reach__visual { min-height:560px; }
  .snhome .sn-reach__content { max-width:780px; }
}

@media (max-width:600px) {
  .snhome .sn-reach__visual {
    min-height:500px;
    padding:20px;
    border-radius:25px;
  }
  .snhome .sn-reach__topline { align-items:flex-start; flex-direction:column; }
  .snhome .sn-reach__globe { height:366px; margin-top:0; }
  .snhome .sn-reach__label { font-size:8px; }
  .snhome .sn-reach__label--france { top:33%; left:0; }
  .snhome .sn-reach__label--europe { top:33%; right:-4%; }
  .snhome .sn-reach__label--world { right:1%; bottom:8%; }
  .snhome .sn-reach__label--origin { transform:translate(10px,-50%); }
  .snhome .sn-reach__principles { right:20px; bottom:20px; left:20px; }
  .snhome .sn-reach__principles > div { padding:13px 11px; gap:8px; }
  .snhome .sn-reach__principle-icon { width:27px; height:27px; }
  .snhome .sn-reach__principles strong { font-size:10px; }
  .snhome .sn-reach__principles small { font-size:8px; }
  .snhome .sn-reach__content h2 br { display:none; }
}

@media (prefers-reduced-motion:reduce) {
  .snhome .sn-reach__visual::before,
  .snhome .sn-reach__route,
  .snhome .sn-reach__origin-ring { animation:none; }
}

  /* FRANCE NUM */
  .snhome .sn-francenum-wrap { padding: 0 0 105px; }

  .snhome .sn-francenum-card {
    display: grid;
    grid-template-columns: 245px 1fr auto;
    gap: 40px;
    padding: 36px;
    align-items: center;
    border: 1px solid var(--sn-line);
    border-radius: 30px;
    background: linear-gradient(135deg,#f8f1f7,#f6f3ff);
  }

  .snhome .sn-francenum-card img {
    display:block;
    width: 100%;
    height:auto;
    border-radius: 14px;
  }

  .snhome .sn-francenum-card h3 { margin-bottom: 7px; }
  .snhome .sn-francenum-card p { margin-bottom: 0; font-size: 15px; }
  .snhome .sn-francenum-card .sn-btn { white-space: nowrap; }

  /* PROCESS */
  .snhome .sn-process { background: var(--sn-soft); }

  .snhome .sn-steps {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 15px;
    margin-top: 45px;
  }

  .snhome .sn-step {
    min-height: 250px;
    padding: 28px;
    border: 1px solid var(--sn-line);
    border-radius: 23px;
    background: #fff;
  }

  .snhome .sn-step span {
    display: inline-grid;
    width: 42px;
    height: 42px;
    margin-bottom: 42px;
    place-items: center;
    border-radius: 50%;
    color: var(--sn-accent-dark);
    background: rgba(229,50,197,.1);
    font-size: 12px;
    font-weight: 850;
  }

  .snhome .sn-step p { margin-bottom: 0; font-size: 15px; }

  /* TESTIMONIALS */
  .snhome .sn-testimonials-grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 18px;
    margin-top: 44px;
  }

  .snhome .sn-quote {
    display: flex;
    min-height: 330px;
    padding: 30px;
    flex-direction: column;
    justify-content: space-between;
    border: 1px solid var(--sn-line);
    border-radius: 25px;
    background: #fff;
  }

  .snhome .sn-stars {
    margin-bottom: 24px;
    color: var(--sn-accent);
    font-size: 14px;
    letter-spacing: .12em;
  }

  .snhome .sn-quote blockquote {
    margin: 0 0 28px;
    color: #292932;
    font-size: 17px;
    font-weight: 560;
    line-height: 1.65;
  }

  .snhome .sn-quote-author {
    padding-top: 20px;
    border-top: 1px solid var(--sn-line);
  }

  .snhome .sn-quote-author strong { display:block; font-size:14px; }
  .snhome .sn-quote-author span { color:var(--sn-muted); font-size:12px; }

  /* FAQ */
  .snhome .sn-faq { background: var(--sn-soft); }

  .snhome .sn-faq-grid {
    display: grid;
    grid-template-columns: minmax(0,.75fr) minmax(0,1.25fr);
    gap: 75px;
    align-items: start;
  }

  .snhome .sn-faq-copy { position:sticky; top:40px; }

  .snhome .sn-faq-list {
    border-top: 1px solid var(--sn-line);
  }

  .snhome .sn-faq-list details { border-bottom: 1px solid var(--sn-line); }

  .snhome .sn-faq-list summary {
    position: relative;
    padding: 24px 50px 24px 0;
    color: var(--sn-ink);
    font-size: 18px;
    font-weight: 750;
    line-height: 1.35;
    list-style: none;
    cursor: pointer;
  }

  .snhome .sn-faq-list summary::-webkit-details-marker { display:none; }

  .snhome .sn-faq-list summary::after {
    position:absolute;
    top:50%;
    right:4px;
    width:30px;
    height:30px;
    display:grid;
    place-items:center;
    border-radius:50%;
    color:var(--sn-accent-dark);
    background:rgba(229,50,197,.1);
    font-size:18px;
    content:"+";
    transform:translateY(-50%);
  }

  .snhome .sn-faq-list details[open] summary::after { content:"−"; }

  .snhome .sn-faq-answer { padding:0 45px 22px 0; }
  .snhome .sn-faq-answer p { margin-bottom:0; font-size:15px; }

  /* CTA */
  .snhome .sn-final {
    padding: 35px 0 105px;
    background: var(--sn-soft);
  }

  .snhome .sn-final-card {
    position:relative;
    padding: 72px 60px;
    border-radius: 35px;
    color:#fff;
    background:
      radial-gradient(circle at 85% 15%,rgba(229,50,197,.34),transparent 28%),
      radial-gradient(circle at 18% 100%,rgba(143,71,255,.2),transparent 30%),
      var(--sn-ink);
    overflow:hidden;
  }

  .snhome .sn-final-card::after {
    position:absolute;
    right:-100px;
    bottom:-200px;
    width:430px;
    height:430px;
    border:1px solid rgba(255,255,255,.09);
    border-radius:50%;
    box-shadow:0 0 0 55px rgba(255,255,255,.025),0 0 0 110px rgba(255,255,255,.018);
    content:"";
  }

  .snhome .sn-final-inner { position:relative; z-index:1; max-width:850px; }
  .snhome .sn-final .sn-kicker { color:#ff8eea; }
  .snhome .sn-final h2 { color:#fff; }
  .snhome .sn-final p { max-width:700px; color:rgba(255,255,255,.68); }

  @media (max-width: 980px) {
    .snhome .sn-section { padding: 80px 0; }
    .snhome .sn-hero { min-height: auto; padding: 95px 0 75px; }
    .snhome .sn-hero-grid,
    .snhome .sn-manifesto-grid,
    .snhome .sn-case-grid,
    .snhome .sn-local-grid,
    .snhome .sn-faq-grid { grid-template-columns: 1fr; }
    .snhome .sn-hero-grid { gap:50px; }
    .snhome .sn-growth-card { max-width:470px; }
    .snhome .sn-manifesto-grid,
    .snhome .sn-case-grid,
    .snhome .sn-local-grid,
    .snhome .sn-faq-grid { gap:45px; }
    .snhome .sn-manifesto-copy,
    .snhome .sn-faq-copy { position:static; }
    .snhome .sn-steps { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .snhome .sn-testimonials-grid { grid-template-columns:1fr; }
    .snhome .sn-quote { min-height:auto; }
    .snhome .sn-francenum-card { grid-template-columns:180px 1fr; }
    .snhome .sn-francenum-card .sn-actions { grid-column:1 / 3; }
  }

  @media (max-width: 740px) {
    .snhome .sn-section-head { display:block; }
    .snhome .sn-bento { display:grid; grid-template-columns:1fr; grid-template-rows:auto; }
    .snhome .sn-service-card-large { grid-row:auto; min-height:560px; }
    .snhome .sn-techbar-inner { grid-template-columns:1fr; gap:16px; }
    .snhome .sn-tech-list { justify-content:flex-start; }
    .snhome .sn-francenum-card { grid-template-columns:1fr; }
    .snhome .sn-francenum-card img { max-width:260px; }
    .snhome .sn-francenum-card .sn-actions { grid-column:auto; }
  }

  @media (max-width: 600px) {
    .snhome .sn-container { width:min(100% - 28px,1180px); }
    .snhome .sn-section { padding:64px 0; }
    .snhome .sn-hero { padding:78px 0 62px; }
    .snhome h1 { font-size:clamp(43px,13vw,58px); }
    .snhome h2 { font-size:35px; }
    .snhome .sn-hero-copy > p:not(.sn-kicker) { font-size:17px; }
    .snhome .sn-btn { width:100%; }
    .snhome .sn-growth-card { padding:18px; border-radius:23px; }
    .snhome .sn-funnel { grid-template-columns:1fr; }
    .snhome .sn-funnel-item { display:flex; justify-content:space-between; }
    .snhome .sn-service-card,
    .snhome .sn-service-card-large { padding:26px; }
    .snhome .sn-browser { width:90%; height:235px; }
    .snhome .sn-browser-body { padding:22px; }
    .snhome .sn-metrics { grid-template-columns:1fr; }
    .snhome .sn-metric { min-height:140px; }
    .snhome .sn-map-card { min-height:370px; }
    .snhome .sn-pin-lyon { top:8%; right:4%; }
    .snhome .sn-pin-aubenas { left:6%; }
    .snhome .sn-francenum-card { padding:25px; }
    .snhome .sn-steps { grid-template-columns:1fr; }
    .snhome .sn-step { min-height:auto; }
    .snhome .sn-step span { margin-bottom:24px; }
    .snhome .sn-final { padding:20px 0 65px; }
    .snhome .sn-final-card { padding:50px 25px; border-radius:27px; }
  }

  @media (prefers-reduced-motion: reduce) {
    .snhome .sn-btn,
    .snhome .sn-btn::after,
    .snhome .sn-service-card { transition:none; }
  }

  /* Contact */

  .sncontact {
    --snc-ink: #101015;
    --snc-ink-2: #181820;
    --snc-paper: #fff;
    --snc-soft: #f7f5f8;
    --snc-muted: #686875;
    --snc-line: rgba(16,16,21,.1);
    --snc-accent: #e532c5;
    --snc-accent-dark: #b71ca0;
    --snc-violet: #8f47ff;
    color: var(--snc-ink);
    background: var(--snc-paper);
    font-family: inherit;
    overflow: hidden;
  }

  .sncontact,
  .sncontact * { box-sizing: border-box; }

  .sncontact a { color: inherit; }

  .sncontact .snc-container {
    width: min(1180px, calc(100% - 40px));
    margin-inline: auto;
  }

  .sncontact .snc-section { padding: 100px 0; }

  .sncontact h1,
  .sncontact h2,
  .sncontact h3,
  .sncontact p { margin-top: 0; }

  .sncontact h1 {
    max-width: 860px;
    margin-bottom: 25px;
    color: #fff;
    font-size: clamp(48px, 6.3vw, 82px);
    font-weight: 800;
    line-height: .97;
    letter-spacing: -.058em;
  }

  .sncontact h2 {
    margin-bottom: 20px;
    font-size: clamp(35px, 4.5vw, 56px);
    font-weight: 800;
    line-height: 1.04;
    letter-spacing: -.047em;
  }

  .sncontact h3 {
    margin-bottom: 11px;
    font-size: 21px;
    font-weight: 760;
    line-height: 1.22;
    letter-spacing: -.025em;
  }

  .sncontact p {
    color: var(--snc-muted);
    font-size: 17px;
    line-height: 1.72;
  }

  .sncontact .snc-kicker {
    display: inline-flex;
    margin: 0 0 18px;
    align-items: center;
    gap: 10px;
    color: var(--snc-accent-dark);
    font-size: 13px;
    font-weight: 850;
    line-height: 1.2;
    letter-spacing: .11em;
    text-transform: uppercase;
  }

  .sncontact .snc-kicker::before {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--snc-accent);
    box-shadow: 0 0 0 6px rgba(229,50,197,.12);
    content: "";
  }

  .sncontact .snc-gradient {
    color: transparent;
    background: linear-gradient(95deg,#ff78e8,#c77dff 60%,#fff);
    -webkit-background-clip: text;
    background-clip: text;
  }

  /* HERO */
  .sncontact .snc-hero {
    position: relative;
    padding: 112px 0 92px;
    color: #fff;
    background:
      radial-gradient(circle at 84% 14%,rgba(229,50,197,.28),transparent 25%),
      radial-gradient(circle at 11% 90%,rgba(143,71,255,.17),transparent 29%),
      #0d0d12;
  }

  .sncontact .snc-hero::before {
    position: absolute;
    inset: 0;
    opacity: .2;
    background-image:
      linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),
      linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
    background-size: 72px 72px;
    mask-image: linear-gradient(to bottom,#000,transparent 90%);
    content: "";
    pointer-events: none;
  }

  .sncontact .snc-hero::after {
    position:absolute;
    right:-160px;
    bottom:-220px;
    width:500px;
    height:500px;
    border:1px solid rgba(255,255,255,.07);
    border-radius:50%;
    box-shadow:0 0 0 70px rgba(255,255,255,.02),0 0 0 140px rgba(255,255,255,.013);
    content:"";
    pointer-events:none;
  }

  .sncontact .snc-hero-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0,1.35fr) minmax(290px,.65fr);
    gap: 70px;
    align-items: center;
  }

  .sncontact .snc-hero .snc-kicker { color:#ff8eea; }

  .sncontact .snc-hero-copy > p:not(.snc-kicker) {
    max-width: 710px;
    margin-bottom: 29px;
    color: rgba(255,255,255,.7);
    font-size: 19px;
    line-height: 1.7;
  }

  .sncontact .snc-hero-notes {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 22px;
  }

  .sncontact .snc-hero-note {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: rgba(255,255,255,.62);
    font-size: 13px;
    font-weight: 650;
  }

  .sncontact .snc-hero-note::before {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #ff67e4;
    content: "";
  }

  .sncontact .snc-direct-card {
    padding: 25px;
    border: 1px solid rgba(255,255,255,.13);
    border-radius: 28px;
    background: rgba(255,255,255,.07);
    box-shadow: 0 30px 75px rgba(0,0,0,.27);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
  }

  .sncontact .snc-direct-card > span {
    display: block;
    margin-bottom: 18px;
    color: rgba(255,255,255,.48);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
  }

  .sncontact .snc-direct-link {
    display: grid;
    grid-template-columns: 43px 1fr;
    gap: 12px;
    padding: 14px 0;
    align-items: center;
    border-bottom: 1px solid rgba(255,255,255,.09);
    color: rgba(255,255,255,.76);
    font-size: 14px;
    text-decoration: none;
    transition: color 180ms ease;
  }

  .sncontact .snc-direct-link:last-of-type { border-bottom:0; }
  .sncontact .snc-direct-link:hover { color:#fff; text-decoration:none; }

  .sncontact .snc-direct-icon {
    display: grid;
    width: 43px;
    height: 43px;
    place-items: center;
    border-radius: 14px;
    color: #ff8eea;
    background: rgba(255,255,255,.07);
    font-size: 15px;
    font-weight: 850;
  }

  .sncontact .snc-direct-card small {
    display: block;
    margin-top: 18px;
    color: rgba(255,255,255,.46);
    font-size: 11px;
    line-height: 1.55;
  }

  /* CONTACT + FORMULAIRE */
  .sncontact .snc-form-section { background: var(--snc-soft); }

  .sncontact .snc-form-grid {
    display: grid;
    grid-template-columns: minmax(0,.75fr) minmax(0,1.25fr);
    gap: 70px;
    align-items: start;
  }

  .sncontact .snc-info { padding-top: 25px; }
  .sncontact .snc-info > p { max-width: 470px; }

  .sncontact .snc-guide {
    display: grid;
    gap: 0;
    margin-top: 35px;
    border-top: 1px solid var(--snc-line);
  }

  .sncontact .snc-guide-item {
    display: grid;
    grid-template-columns: 42px 1fr;
    gap: 16px;
    padding: 22px 0;
    border-bottom: 1px solid var(--snc-line);
  }

  .sncontact .snc-guide-item span {
    display: grid;
    width: 37px;
    height: 37px;
    place-items: center;
    border-radius: 12px;
    color: var(--snc-accent-dark);
    background: rgba(229,50,197,.1);
    font-size: 11px;
    font-weight: 850;
  }

  .sncontact .snc-guide-item strong {
    display: block;
    margin-bottom: 3px;
    color: var(--snc-ink);
    font-size: 15px;
  }

  .sncontact .snc-guide-item p {
    margin: 0;
    font-size: 13px;
    line-height: 1.55;
  }

  .sncontact .snc-francenum {
    display: grid;
    grid-template-columns: 98px 1fr;
    gap: 15px;
    margin-top: 30px;
    padding: 14px;
    align-items: center;
    border: 1px solid var(--snc-line);
    border-radius: 18px;
    background: #fff;
    text-decoration: none;
  }

  .sncontact .snc-francenum:hover { text-decoration:none; }

  .sncontact .snc-francenum img {
    display:block;
    width:98px;
    height:auto;
    border-radius:10px;
  }

  .sncontact .snc-francenum strong {
    display:block;
    margin-bottom:4px;
    color:var(--snc-ink);
    font-size:12px;
    line-height:1.4;
  }

  .sncontact .snc-francenum span {
    display:block;
    color:var(--snc-muted);
    font-size:10px;
    line-height:1.45;
  }

  .sncontact .snc-form-card {
    padding: 42px;
    border: 1px solid var(--snc-line);
    border-radius: 30px;
    background: #fff;
    box-shadow: 0 28px 70px rgba(20,14,24,.08);
  }

  .sncontact .snc-form-head {
    margin-bottom: 30px;
    padding-bottom: 25px;
    border-bottom: 1px solid var(--snc-line);
  }

  .sncontact .snc-form-head h2 {
    margin-bottom: 10px;
    font-size: clamp(30px,3.5vw,43px);
  }

  .sncontact .snc-form-head p { margin-bottom:0; font-size:15px; }

  /* FLUENT FORMS — STYLES NATIFS CONSERVÉS, APPARENCE HARMONISÉE */
  .sncontact .snc-form-card .fluentform { width:100%; }

  .sncontact .snc-form-card .ff-el-group { margin-bottom: 20px; }

  .sncontact .snc-form-card .ff-el-input--label {
    margin-bottom: 8px;
  }

  .sncontact .snc-form-card .ff-el-input--label label {
    color: #24242c;
    font-size: 13px;
    font-weight: 760;
    line-height: 1.4;
  }

  .sncontact .snc-form-card .ff-el-form-control {
    width: 100%;
    min-height: 52px;
    padding: 13px 15px;
    border: 1px solid rgba(16,16,21,.13);
    border-radius: 13px;
    color: var(--snc-ink);
    background: #fbfafc;
    box-shadow: none;
    font-family: inherit;
    font-size: 15px;
    line-height: 1.4;
    transition: border-color 180ms ease, box-shadow 180ms ease, background 180ms ease;
  }

  .sncontact .snc-form-card textarea.ff-el-form-control {
    min-height: 155px;
    resize: vertical;
  }

  .sncontact .snc-form-card .ff-el-form-control::placeholder {
    color: #aaa7b0;
    opacity: 1;
  }

  .sncontact .snc-form-card .ff-el-form-control:hover {
    border-color: rgba(16,16,21,.23);
    background: #fff;
  }

  .sncontact .snc-form-card .ff-el-form-control:focus {
    border-color: var(--snc-accent);
    outline: none;
    background: #fff;
    box-shadow: 0 0 0 4px rgba(229,50,197,.1);
  }

  .sncontact .snc-form-card .ff-t-container {
    display: flex;
    gap: 14px;
  }

  .sncontact .snc-form-card .ff-t-cell { min-width:0; }

  .sncontact .snc-form-card .ff-btn-submit,
  .sncontact .snc-form-card button[type="submit"] {
    display: inline-flex;
    width: 100%;
    min-height: 55px;
    padding: 0 25px;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 999px;
    color: #fff;
    background: linear-gradient(135deg,var(--snc-accent),#bd28ff);
    box-shadow: 0 14px 31px rgba(229,50,197,.22);
    font-family: inherit;
    font-size: 15px;
    font-weight: 780;
    line-height: 1;
    cursor: pointer;
    transition: transform 180ms ease, box-shadow 180ms ease, opacity 180ms ease;
  }

  .sncontact .snc-form-card .ff-btn-submit:hover,
  .sncontact .snc-form-card button[type="submit"]:hover {
    color:#fff;
    background: linear-gradient(135deg,var(--snc-accent),#bd28ff);
    box-shadow: 0 18px 38px rgba(229,50,197,.33);
    transform: translateY(-2px);
  }

  .sncontact .snc-form-card .ff-btn-submit:focus,
  .sncontact .snc-form-card button[type="submit"]:focus {
    outline: 3px solid rgba(229,50,197,.2);
    outline-offset: 3px;
  }

  .sncontact .snc-form-card .ff-el-is-error .ff-el-form-control {
    border-color: #d94156;
    box-shadow: 0 0 0 3px rgba(217,65,86,.08);
  }

  .sncontact .snc-form-card .text-danger,
  .sncontact .snc-form-card .error,
  .sncontact .snc-form-card .ff-el-is-error .text-danger {
    margin-top: 6px;
    color: #bd3045;
    font-size: 12px;
  }

  .sncontact .snc-form-card .ff-message-success {
    padding: 18px 20px;
    border: 1px solid rgba(44,156,87,.2);
    border-radius: 14px;
    color: #1c6939;
    background: rgba(44,156,87,.08);
    box-shadow: none;
    font-size: 14px;
    line-height: 1.6;
  }

  .sncontact .snc-form-card .ff-el-form-check label,
  .sncontact .snc-form-card .ff-el-form-check-label {
    color: var(--snc-muted);
    font-size: 12px;
    line-height: 1.55;
  }

  .sncontact .snc-privacy {
    margin: 18px 0 0;
    color: #96939d;
    font-size: 11px;
    line-height: 1.55;
    text-align: center;
  }

  .sncontact .snc-privacy a {
    color: var(--snc-accent-dark);
    text-decoration: underline;
    text-underline-offset: 2px;
  }

  /* SUITE DU PARCOURS */
  .sncontact .snc-next-head {
    display:flex;
    margin-bottom:43px;
    align-items:end;
    justify-content:space-between;
    gap:35px;
  }

  .sncontact .snc-next-head > p { max-width:430px; margin-bottom:7px; }

  .sncontact .snc-steps {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:17px;
  }

  .sncontact .snc-step {
    min-height:255px;
    padding:30px;
    border:1px solid var(--snc-line);
    border-radius:24px;
    background:#fff;
  }

  .sncontact .snc-step span {
    display:inline-grid;
    width:44px;
    height:44px;
    margin-bottom:38px;
    place-items:center;
    border-radius:50%;
    color:var(--snc-accent-dark);
    background:rgba(229,50,197,.1);
    font-size:12px;
    font-weight:850;
  }

  .sncontact .snc-step p { margin-bottom:0; font-size:15px; }

  @media (max-width: 900px) {
    .sncontact .snc-section { padding:78px 0; }
    .sncontact .snc-hero { padding:92px 0 72px; }
    .sncontact .snc-hero-grid,
    .sncontact .snc-form-grid { grid-template-columns:1fr; }
    .sncontact .snc-hero-grid { gap:48px; }
    .sncontact .snc-direct-card { max-width:450px; }
    .sncontact .snc-form-grid { gap:45px; }
    .sncontact .snc-info { padding-top:0; }
    .sncontact .snc-next-head { display:block; }
  }

  @media (max-width: 700px) {
    .sncontact .snc-steps { grid-template-columns:1fr; }
    .sncontact .snc-step { min-height:auto; }
    .sncontact .snc-step span { margin-bottom:25px; }
  }

  @media (max-width: 600px) {
    .sncontact .snc-container { width:min(100% - 28px,1180px); }
    .sncontact .snc-section { padding:62px 0; }
    .sncontact .snc-hero { padding:76px 0 60px; }
    .sncontact h1 { font-size:clamp(43px,13vw,58px); }
    .sncontact h2 { font-size:35px; }
    .sncontact .snc-hero-copy > p:not(.snc-kicker) { font-size:17px; }
    .sncontact .snc-form-card { padding:27px 21px; border-radius:24px; }
    .sncontact .snc-form-card .ff-t-container { display:block; }
    .sncontact .snc-francenum { grid-template-columns:85px 1fr; }
    .sncontact .snc-francenum img { width:85px; }
  }

  @media (prefers-reduced-motion: reduce) {
    .sncontact .snc-direct-link,
    .sncontact .snc-form-card .ff-el-form-control,
    .sncontact .snc-form-card .ff-btn-submit,
    .sncontact .snc-form-card button[type="submit"] { transition:none; }
  }

  /* Audit */

  .snaudit {
    --sna-ink:#101015;
    --sna-ink-2:#181820;
    --sna-paper:#fff;
    --sna-soft:#f7f5f8;
    --sna-muted:#686875;
    --sna-line:rgba(16,16,21,.1);
    --sna-accent:#e532c5;
    --sna-accent-dark:#b71ca0;
    --sna-violet:#8f47ff;
    color:var(--sna-ink);
    background:var(--sna-paper);
    font-family:inherit;
    overflow:hidden;
  }

  .snaudit,
  .snaudit * { box-sizing:border-box; }
  .snaudit a { color:inherit; }

  .snaudit .sna-container {
    width:min(1180px,calc(100% - 40px));
    margin-inline:auto;
  }

  .snaudit .sna-section { padding:102px 0; }

  .snaudit h1,
  .snaudit h2,
  .snaudit h3,
  .snaudit p { margin-top:0; }

  .snaudit h1 {
    max-width:900px;
    margin-bottom:25px;
    color:#fff;
    font-size:clamp(48px,6.4vw,84px);
    font-weight:800;
    line-height:.96;
    letter-spacing:-.06em;
  }

  .snaudit h2 {
    max-width:790px;
    margin-bottom:21px;
    font-size:clamp(35px,4.6vw,57px);
    font-weight:800;
    line-height:1.03;
    letter-spacing:-.048em;
  }

  .snaudit h3 {
    margin-bottom:11px;
    font-size:21px;
    font-weight:760;
    line-height:1.2;
    letter-spacing:-.025em;
  }

  .snaudit p {
    color:var(--sna-muted);
    font-size:17px;
    line-height:1.72;
  }

  .snaudit .sna-kicker {
    display:inline-flex;
    margin:0 0 18px;
    align-items:center;
    gap:10px;
    color:var(--sna-accent-dark);
    font-size:13px;
    font-weight:850;
    line-height:1.2;
    letter-spacing:.11em;
    text-transform:uppercase;
  }

  .snaudit .sna-kicker::before {
    width:8px;
    height:8px;
    border-radius:50%;
    background:var(--sna-accent);
    box-shadow:0 0 0 6px rgba(229,50,197,.12);
    content:"";
  }

  .snaudit .sna-gradient {
    color:transparent;
    background:linear-gradient(95deg,#ff78e8,#c77dff 62%,#fff);
    -webkit-background-clip:text;
    background-clip:text;
  }

  .snaudit .sna-btn {
    display:inline-flex;
    min-height:55px;
    padding:0 25px;
    align-items:center;
    justify-content:center;
    gap:9px;
    border:0;
    border-radius:999px;
    color:#fff;
    background:linear-gradient(135deg,var(--sna-accent),#bd28ff);
    box-shadow:0 15px 35px rgba(229,50,197,.25);
    font-size:15px;
    font-weight:770;
    line-height:1;
    text-decoration:none;
    transition:transform 180ms ease,box-shadow 180ms ease;
  }

  .snaudit .sna-btn::after {
    font-size:18px;
    content:"→";
    transition:transform 180ms ease;
  }

  .snaudit .sna-btn:hover {
    color:#fff;
    box-shadow:0 18px 42px rgba(229,50,197,.36);
    text-decoration:none;
    transform:translateY(-2px);
  }

  .snaudit .sna-btn:hover::after { transform:translateX(3px); }

  /* HERO */
  .snaudit .sna-hero {
    position:relative;
    padding:112px 0 92px;
    color:#fff;
    background:
      radial-gradient(circle at 84% 14%,rgba(229,50,197,.28),transparent 25%),
      radial-gradient(circle at 12% 90%,rgba(143,71,255,.18),transparent 30%),
      #0d0d12;
  }

  .snaudit .sna-hero::before {
    position:absolute;
    inset:0;
    opacity:.2;
    background-image:
      linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),
      linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
    background-size:72px 72px;
    mask-image:linear-gradient(to bottom,#000,transparent 90%);
    content:"";
    pointer-events:none;
  }

  .snaudit .sna-hero::after {
    position:absolute;
    right:-160px;
    bottom:-220px;
    width:500px;
    height:500px;
    border:1px solid rgba(255,255,255,.07);
    border-radius:50%;
    box-shadow:0 0 0 70px rgba(255,255,255,.02),0 0 0 140px rgba(255,255,255,.013);
    content:"";
    pointer-events:none;
  }

  .snaudit .sna-hero-grid {
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:minmax(0,1.25fr) minmax(315px,.75fr);
    gap:70px;
    align-items:center;
  }

  .snaudit .sna-hero .sna-kicker { color:#ff8eea; }

  .snaudit .sna-hero-copy > p:not(.sna-kicker) {
    max-width:720px;
    margin-bottom:31px;
    color:rgba(255,255,255,.7);
    font-size:19px;
    line-height:1.7;
  }

  .snaudit .sna-hero-proof {
    display:flex;
    margin-top:27px;
    flex-wrap:wrap;
    gap:10px 22px;
  }

  .snaudit .sna-hero-proof span {
    display:inline-flex;
    align-items:center;
    gap:8px;
    color:rgba(255,255,255,.6);
    font-size:13px;
    font-weight:650;
  }

  .snaudit .sna-hero-proof span::before {
    width:6px;
    height:6px;
    border-radius:50%;
    background:#ff67e4;
    content:"";
  }

  .snaudit .sna-diagnostic {
    padding:24px;
    border:1px solid rgba(255,255,255,.13);
    border-radius:29px;
    background:rgba(255,255,255,.07);
    box-shadow:0 31px 78px rgba(0,0,0,.28);
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
  }

  .snaudit .sna-diagnostic-head {
    display:flex;
    margin-bottom:22px;
    align-items:center;
    justify-content:space-between;
    gap:15px;
  }

  .snaudit .sna-diagnostic-head strong { color:#fff; font-size:15px; }

  .snaudit .sna-free {
    display:inline-flex;
    padding:7px 10px;
    border:1px solid rgba(103,239,135,.18);
    border-radius:999px;
    color:#caffd4;
    background:rgba(103,239,135,.08);
    font-size:10px;
    font-weight:850;
    letter-spacing:.08em;
    text-transform:uppercase;
  }

  .snaudit .sna-scan {
    display:grid;
    gap:9px;
  }

  .snaudit .sna-scan-row {
    display:grid;
    grid-template-columns:38px 1fr auto;
    gap:12px;
    padding:13px;
    align-items:center;
    border:1px solid rgba(255,255,255,.08);
    border-radius:15px;
    background:rgba(255,255,255,.045);
  }

  .snaudit .sna-scan-icon {
    display:grid;
    width:38px;
    height:38px;
    place-items:center;
    border-radius:12px;
    color:#ff8eea;
    background:rgba(255,255,255,.06);
    font-size:11px;
    font-weight:850;
  }

  .snaudit .sna-scan-row strong {
    display:block;
    margin-bottom:3px;
    color:#fff;
    font-size:13px;
  }

  .snaudit .sna-scan-row small {
    display:block;
    color:rgba(255,255,255,.43);
    font-size:10px;
  }

  .snaudit .sna-scan-status {
    width:8px;
    height:8px;
    border-radius:50%;
    background:#ff62df;
    box-shadow:0 0 0 5px rgba(229,50,197,.1);
  }

  .snaudit .sna-diagnostic > p {
    margin:17px 2px 0;
    color:rgba(255,255,255,.42);
    font-size:10px;
    line-height:1.5;
    text-align:center;
  }

  /* AXES */
  .snaudit .sna-axes { background:var(--sna-soft); }

  .snaudit .sna-section-head {
    display:flex;
    margin-bottom:43px;
    align-items:end;
    justify-content:space-between;
    gap:38px;
  }

  .snaudit .sna-section-head > p { max-width:450px; margin-bottom:7px; }

  .snaudit .sna-grid-4 {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:15px;
  }

  .snaudit .sna-axis {
    min-height:300px;
    padding:28px;
    border:1px solid var(--sna-line);
    border-radius:24px;
    background:#fff;
    transition:transform 180ms ease,box-shadow 180ms ease,border-color 180ms ease;
  }

  .snaudit .sna-axis:hover {
    border-color:rgba(229,50,197,.26);
    box-shadow:0 24px 55px rgba(20,14,24,.08);
    transform:translateY(-5px);
  }

  .snaudit .sna-axis-index {
    display:grid;
    width:46px;
    height:46px;
    margin-bottom:38px;
    place-items:center;
    border-radius:15px;
    color:var(--sna-accent-dark);
    background:rgba(229,50,197,.1);
    font-size:12px;
    font-weight:850;
  }

  .snaudit .sna-axis p { margin-bottom:0; font-size:14px; }

  /* LIVRABLES */
  .snaudit .sna-value-grid {
    display:grid;
    grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);
    gap:75px;
    align-items:start;
  }

  .snaudit .sna-value-copy { position:sticky; top:40px; }

  .snaudit .sna-value-list { border-top:1px solid var(--sna-line); }

  .snaudit .sna-value-item {
    display:grid;
    grid-template-columns:58px 1fr;
    gap:20px;
    padding:28px 0;
    border-bottom:1px solid var(--sna-line);
  }

  .snaudit .sna-value-item > span {
    color:var(--sna-accent-dark);
    font-size:13px;
    font-weight:850;
    letter-spacing:.08em;
  }

  .snaudit .sna-value-item p { margin-bottom:0; }

  .snaudit .sna-scope-note {
    margin-top:28px;
    padding:22px;
    border:1px solid var(--sna-line);
    border-radius:18px;
    background:var(--sna-soft);
  }

  .snaudit .sna-scope-note strong {
    display:block;
    margin-bottom:7px;
    color:var(--sna-ink);
    font-size:14px;
  }

  .snaudit .sna-scope-note p { margin-bottom:0; font-size:12px; line-height:1.6; }

  /* POUR QUI */
  .snaudit .sna-fit {
    color:#fff;
    background:
      radial-gradient(circle at 86% 15%,rgba(229,50,197,.22),transparent 27%),
      #111117;
  }

  .snaudit .sna-fit .sna-kicker { color:#ff8eea; }
  .snaudit .sna-fit h2 { color:#fff; }

  .snaudit .sna-fit-grid {
    display:grid;
    grid-template-columns:.86fr 1.14fr;
    gap:75px;
    align-items:center;
  }

  .snaudit .sna-fit-copy > p { color:rgba(255,255,255,.64); }

  .snaudit .sna-fit-list {
    display:grid;
    gap:13px;
  }

  .snaudit .sna-fit-item {
    position:relative;
    display:grid;
    grid-template-columns:58px 1fr;
    gap:18px;
    padding:21px 23px;
    align-items:center;
    border:1px solid rgba(199,125,255,.17);
    border-radius:21px;
    background:
      linear-gradient(115deg,rgba(143,71,255,.11),rgba(229,50,197,.055) 55%,rgba(255,255,255,.035));
    box-shadow:inset 0 1px 0 rgba(255,255,255,.045);
    overflow:hidden;
    transition:transform 180ms ease,border-color 180ms ease,background 180ms ease,box-shadow 180ms ease;
  }

  .snaudit .sna-fit-item::after {
    position:absolute;
    top:50%;
    right:-35px;
    width:100px;
    height:100px;
    border-radius:50%;
    background:radial-gradient(circle,rgba(229,50,197,.12),transparent 67%);
    content:"";
    transform:translateY(-50%);
    pointer-events:none;
  }

  .snaudit .sna-fit-item:hover {
    border-color:rgba(255,120,232,.35);
    background:
      linear-gradient(115deg,rgba(143,71,255,.17),rgba(229,50,197,.09) 55%,rgba(255,255,255,.05));
    box-shadow:0 18px 45px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.07);
    transform:translateX(5px);
  }

  .snaudit .sna-fit-icon {
    position:relative;
    z-index:1;
    display:grid;
    width:58px;
    height:58px;
    place-items:center;
    border:1px solid rgba(255,255,255,.16);
    border-radius:18px;
    color:#fff;
    background:linear-gradient(145deg,rgba(143,71,255,.82),rgba(229,50,197,.76));
    box-shadow:0 12px 28px rgba(143,71,255,.22),inset 0 1px 0 rgba(255,255,255,.23);
  }

  .snaudit .sna-fit-icon svg {
    width:27px;
    height:27px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
  }

  .snaudit .sna-fit-copyline {
    position:relative;
    z-index:1;
    display:block;
  }

  .snaudit .sna-fit-copyline strong {
    display:block;
    margin-bottom:5px;
    color:#fff;
    font-size:15px;
    line-height:1.35;
  }

  .snaudit .sna-fit-copyline > span {
    display:block;
    color:rgba(255,255,255,.53);
    font-size:12px;
    line-height:1.5;
  }

  /* FORMULAIRE */
  .snaudit .sna-form-section { background:var(--sna-soft); }

  .snaudit .sna-form-grid {
    display:grid;
    grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);
    gap:70px;
    align-items:start;
  }

  .snaudit .sna-form-info { padding-top:25px; }
  .snaudit .sna-form-info > p { max-width:455px; }

  .snaudit .sna-form-points {
    display:grid;
    gap:12px;
    margin-top:30px;
  }

  .snaudit .sna-form-point {
    display:flex;
    align-items:center;
    gap:11px;
    color:#44444f;
    font-size:13px;
    font-weight:680;
  }

  .snaudit .sna-form-point::before {
    display:grid;
    width:27px;
    height:27px;
    flex:0 0 27px;
    place-items:center;
    border-radius:50%;
    color:var(--sna-accent-dark);
    background:rgba(229,50,197,.1);
    font-size:12px;
    content:"✓";
  }

  .snaudit .sna-francenum {
    display:grid;
    grid-template-columns:95px 1fr;
    gap:14px;
    margin-top:29px;
    padding:13px;
    align-items:center;
    border:1px solid var(--sna-line);
    border-radius:17px;
    background:#fff;
    text-decoration:none;
  }

  .snaudit .sna-francenum:hover { text-decoration:none; }
  .snaudit .sna-francenum img { display:block; width:95px; height:auto; border-radius:9px; }
  .snaudit .sna-francenum strong { display:block; margin-bottom:3px; font-size:12px; line-height:1.4; }
  .snaudit .sna-francenum span span { display:block; color:var(--sna-muted); font-size:10px; line-height:1.45; }

  .snaudit .sna-form-card {
    padding:42px;
    border:1px solid var(--sna-line);
    border-radius:30px;
    background:#fff;
    box-shadow:0 28px 70px rgba(20,14,24,.08);
  }

  .snaudit .sna-form-head {
    margin-bottom:30px;
    padding-bottom:25px;
    border-bottom:1px solid var(--sna-line);
  }

  .snaudit .sna-form-head h2 { margin-bottom:10px; font-size:clamp(30px,3.5vw,43px); }
  .snaudit .sna-form-head p { margin-bottom:0; font-size:15px; }

  /* FLUENT FORMS */
  .snaudit .sna-form-card .fluentform { width:100%; }
  .snaudit .sna-form-card .ff-el-group { margin-bottom:20px; }
  .snaudit .sna-form-card .ff-el-input--label { margin-bottom:8px; }

  .snaudit .sna-form-card .ff-el-input--label label {
    color:#24242c;
    font-size:13px;
    font-weight:760;
    line-height:1.4;
  }

  .snaudit .sna-form-card .ff-el-form-control {
    width:100%;
    min-height:52px;
    padding:13px 15px;
    border:1px solid rgba(16,16,21,.13);
    border-radius:13px;
    color:var(--sna-ink);
    background:#fbfafc;
    box-shadow:none;
    font-family:inherit;
    font-size:15px;
    line-height:1.4;
    transition:border-color 180ms ease,box-shadow 180ms ease,background 180ms ease;
  }

  .snaudit .sna-form-card textarea.ff-el-form-control { min-height:145px; resize:vertical; }
  .snaudit .sna-form-card .ff-el-form-control::placeholder { color:#aaa7b0; opacity:1; }
  .snaudit .sna-form-card .ff-el-form-control:hover { border-color:rgba(16,16,21,.23); background:#fff; }

  .snaudit .sna-form-card .ff-el-form-control:focus {
    border-color:var(--sna-accent);
    outline:none;
    background:#fff;
    box-shadow:0 0 0 4px rgba(229,50,197,.1);
  }

  .snaudit .sna-form-card .ff-t-container { display:flex; gap:14px; }
  .snaudit .sna-form-card .ff-t-cell { min-width:0; }

  .snaudit .sna-form-card .ff-btn-submit,
  .snaudit .sna-form-card button[type="submit"] {
    display:inline-flex;
    width:100%;
    min-height:55px;
    padding:0 25px;
    align-items:center;
    justify-content:center;
    border:0;
    border-radius:999px;
    color:#fff;
    background:linear-gradient(135deg,var(--sna-accent),#bd28ff);
    box-shadow:0 14px 31px rgba(229,50,197,.22);
    font-family:inherit;
    font-size:15px;
    font-weight:780;
    line-height:1;
    cursor:pointer;
    transition:transform 180ms ease,box-shadow 180ms ease;
  }

  .snaudit .sna-form-card .ff-btn-submit:hover,
  .snaudit .sna-form-card button[type="submit"]:hover {
    color:#fff;
    background:linear-gradient(135deg,var(--sna-accent),#bd28ff);
    box-shadow:0 18px 38px rgba(229,50,197,.33);
    transform:translateY(-2px);
  }

  .snaudit .sna-form-card .ff-el-is-error .ff-el-form-control {
    border-color:#d94156;
    box-shadow:0 0 0 3px rgba(217,65,86,.08);
  }

  .snaudit .sna-form-card .text-danger,
  .snaudit .sna-form-card .error,
  .snaudit .sna-form-card .ff-el-is-error .text-danger {
    margin-top:6px;
    color:#bd3045;
    font-size:12px;
  }

  .snaudit .sna-form-card .ff-message-success {
    padding:18px 20px;
    border:1px solid rgba(44,156,87,.2);
    border-radius:14px;
    color:#1c6939;
    background:rgba(44,156,87,.08);
    box-shadow:none;
    font-size:14px;
    line-height:1.6;
  }

  .snaudit .sna-form-card .ff-el-form-check label,
  .snaudit .sna-form-card .ff-el-form-check-label {
    color:var(--sna-muted);
    font-size:12px;
    line-height:1.55;
  }

  .snaudit .sna-privacy {
    margin:18px 0 0;
    color:#96939d;
    font-size:11px;
    line-height:1.55;
    text-align:center;
  }

  .snaudit .sna-privacy a {
    color:var(--sna-accent-dark);
    text-decoration:underline;
    text-underline-offset:2px;
  }

  /* FAQ */
  .snaudit .sna-faq-grid {
    display:grid;
    grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);
    gap:75px;
    align-items:start;
  }

  .snaudit .sna-faq-copy { position:sticky; top:40px; }
  .snaudit .sna-faq-list { border-top:1px solid var(--sna-line); }
  .snaudit .sna-faq-list details { border-bottom:1px solid var(--sna-line); }

  .snaudit .sna-faq-list summary {
    position:relative;
    padding:24px 50px 24px 0;
    color:var(--sna-ink);
    font-size:18px;
    font-weight:750;
    line-height:1.35;
    list-style:none;
    cursor:pointer;
  }

  .snaudit .sna-faq-list summary::-webkit-details-marker { display:none; }

  .snaudit .sna-faq-list summary::after {
    position:absolute;
    top:50%;
    right:4px;
    width:30px;
    height:30px;
    display:grid;
    place-items:center;
    border-radius:50%;
    color:var(--sna-accent-dark);
    background:rgba(229,50,197,.1);
    font-size:18px;
    content:"+";
    transform:translateY(-50%);
  }

  .snaudit .sna-faq-list details[open] summary::after { content:"−"; }
  .snaudit .sna-faq-answer { padding:0 45px 22px 0; }
  .snaudit .sna-faq-answer p { margin-bottom:0; font-size:15px; }

  @media (max-width:980px) {
    .snaudit .sna-section { padding:80px 0; }
    .snaudit .sna-hero { padding:92px 0 72px; }
    .snaudit .sna-hero-grid,
    .snaudit .sna-value-grid,
    .snaudit .sna-fit-grid,
    .snaudit .sna-form-grid,
    .snaudit .sna-faq-grid { grid-template-columns:1fr; }
    .snaudit .sna-hero-grid { gap:50px; }
    .snaudit .sna-diagnostic { max-width:470px; }
    .snaudit .sna-grid-4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .snaudit .sna-value-grid,
    .snaudit .sna-fit-grid,
    .snaudit .sna-form-grid,
    .snaudit .sna-faq-grid { gap:46px; }
    .snaudit .sna-value-copy,
    .snaudit .sna-faq-copy { position:static; }
    .snaudit .sna-form-info { padding-top:0; }
  }

  @media (max-width:700px) {
    .snaudit .sna-section-head { display:block; }
  }

  @media (max-width:600px) {
    .snaudit .sna-container { width:min(100% - 28px,1180px); }
    .snaudit .sna-section { padding:63px 0; }
    .snaudit .sna-hero { padding:76px 0 60px; }
    .snaudit h1 { font-size:clamp(43px,13vw,58px); }
    .snaudit h2 { font-size:35px; }
    .snaudit .sna-hero-copy > p:not(.sna-kicker) { font-size:17px; }
    .snaudit .sna-btn { width:100%; }
    .snaudit .sna-grid-4 { grid-template-columns:1fr; }
    .snaudit .sna-axis { min-height:auto; }
    .snaudit .sna-axis-index { margin-bottom:25px; }
    .snaudit .sna-form-card { padding:27px 21px; border-radius:24px; }
    .snaudit .sna-form-card .ff-t-container { display:block; }
    .snaudit .sna-francenum { grid-template-columns:83px 1fr; }
    .snaudit .sna-francenum img { width:83px; }
  }

  @media (prefers-reduced-motion:reduce) {
    .snaudit .sna-btn,
    .snaudit .sna-btn::after,
    .snaudit .sna-axis,
    .snaudit .sna-fit-item,
    .snaudit .sna-form-card .ff-el-form-control,
    .snaudit .sna-form-card .ff-btn-submit,
    .snaudit .sna-form-card button[type="submit"] { transition:none; }
  }

  /* Footer */

  .snfooter {
    --snf-ink: #0d0d12;
    --snf-paper: #ffffff;
    --snf-muted: rgba(255, 255, 255, 0.6);
    --snf-line: rgba(255, 255, 255, 0.11);
    --snf-accent: #e532c5;
    --snf-violet: #8f47ff;
    position: relative;
    color: var(--snf-paper);
    background:
      radial-gradient(circle at 86% 4%, rgba(229, 50, 197, 0.18), transparent 24%),
      radial-gradient(circle at 8% 100%, rgba(143, 71, 255, 0.12), transparent 27%),
      var(--snf-ink);
    font-family: inherit;
    overflow: hidden;
  }

  .snfooter,
  .snfooter * { box-sizing: border-box; }

  .snfooter::before {
    position: absolute;
    inset: 0;
    opacity: 0.18;
    background-image:
      linear-gradient(rgba(255,255,255,0.035) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255,255,255,0.035) 1px, transparent 1px);
    background-size: 72px 72px;
    mask-image: linear-gradient(to bottom, #000, transparent 82%);
    content: "";
    pointer-events: none;
  }

  .snfooter::after {
    position: absolute;
    right: -185px;
    bottom: -310px;
    width: 520px;
    height: 520px;
    border: 1px solid rgba(255,255,255,.07);
    border-radius: 50%;
    box-shadow:
      0 0 0 70px rgba(255,255,255,.018),
      0 0 0 140px rgba(255,255,255,.012);
    content: "";
    pointer-events: none;
  }

  .snfooter a { color: inherit; }

  .snfooter .snf-container {
    position: relative;
    z-index: 1;
    width: min(1180px, calc(100% - 40px));
    margin-inline: auto;
  }

  /* CTA SUPÉRIEUR */
  .snfooter .snf-cta {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 45px;
    padding: 72px 0 62px;
    align-items: end;
    border-bottom: 1px solid var(--snf-line);
  }

  .snfooter .snf-kicker {
    display: inline-flex;
    margin: 0 0 17px;
    align-items: center;
    gap: 10px;
    color: #ff8eea;
    font-size: 12px;
    font-weight: 850;
    line-height: 1.2;
    letter-spacing: .11em;
    text-transform: uppercase;
  }

  .snfooter .snf-kicker::before {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--snf-accent);
    box-shadow: 0 0 0 6px rgba(229,50,197,.12);
    content: "";
  }

  .snfooter .snf-cta h2 {
    max-width: 790px;
    margin: 0;
    color: #fff;
    font-size: clamp(34px, 4.8vw, 60px);
    font-weight: 800;
    line-height: 1.02;
    letter-spacing: -.05em;
  }

  .snfooter .snf-gradient {
    color: transparent;
    background: linear-gradient(95deg, #ff78e8, #c77dff 65%, #fff);
    -webkit-background-clip: text;
    background-clip: text;
  }

  .snfooter .snf-btn {
    display: inline-flex;
    min-height: 54px;
    padding: 0 24px;
    align-items: center;
    justify-content: center;
    gap: 9px;
    border: 0;
    border-radius: 999px;
    color: #fff;
    background: linear-gradient(135deg, var(--snf-accent), #bd28ff);
    box-shadow: 0 15px 35px rgba(229,50,197,.24);
    font-size: 15px;
    font-weight: 760;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
    transition: transform 180ms ease, box-shadow 180ms ease;
  }

  .snfooter .snf-btn::after {
    font-size: 18px;
    content: "→";
    transition: transform 180ms ease;
  }

  .snfooter .snf-btn:hover {
    color: #fff;
    box-shadow: 0 18px 42px rgba(229,50,197,.36);
    text-decoration: none;
    transform: translateY(-2px);
  }

  .snfooter .snf-btn:hover::after { transform: translateX(3px); }

  /* CONTENU PRINCIPAL */
  .snfooter .snf-main {
    display: grid;
    grid-template-columns: minmax(280px, 1.35fr) .62fr .8fr 1fr;
    gap: 55px;
    padding: 62px 0 55px;
  }

  .snfooter .snf-brand {
    display: inline-flex;
    margin-bottom: 23px;
    align-items: baseline;
    color: #fff;
    font-size: 29px;
    font-weight: 860;
    line-height: 1;
    letter-spacing: -.055em;
    text-decoration: none;
  }

  .snfooter .snf-brand:hover { color:#fff; text-decoration:none; }
  .snfooter .snf-brand span { color: var(--snf-accent); }

  .snfooter .snf-about {
    max-width: 355px;
    margin: 0 0 27px;
    color: var(--snf-muted);
    font-size: 15px;
    line-height: 1.72;
  }

  .snfooter .snf-location {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: rgba(255,255,255,.78);
    font-size: 13px;
    font-weight: 700;
  }

  .snfooter .snf-location::before {
    width: 8px;
    height: 8px;
    border: 2px solid #ff8eea;
    border-radius: 50%;
    box-shadow: 0 0 0 5px rgba(229,50,197,.09);
    content: "";
  }

  .snfooter .snf-title {
    margin: 4px 0 24px;
    color: rgba(255,255,255,.96);
    font-size: 12px;
    font-weight: 850;
    line-height: 1.2;
    letter-spacing: .1em;
    text-transform: uppercase;
  }

  .snfooter .snf-links {
    display: grid;
    gap: 13px;
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .snfooter .snf-links a {
    position: relative;
    display: inline-flex;
    width: fit-content;
    align-items: center;
    color: var(--snf-muted);
    font-size: 14px;
    font-weight: 590;
    line-height: 1.45;
    text-decoration: none;
    transition: color 180ms ease, transform 180ms ease;
  }

  .snfooter .snf-links a::before {
    width: 0;
    height: 1px;
    margin-right: 0;
    background: var(--snf-accent);
    content: "";
    transition: width 180ms ease, margin 180ms ease;
  }

  .snfooter .snf-links a:hover {
    color: #fff;
    text-decoration: none;
    transform: translateX(2px);
  }

  .snfooter .snf-links a:hover::before {
    width: 13px;
    margin-right: 8px;
  }

  .snfooter .snf-contact-list {
    display: grid;
    gap: 12px;
  }

  .snfooter .snf-contact-item {
    display: grid;
    grid-template-columns: 34px 1fr;
    gap: 11px;
    align-items: center;
    color: var(--snf-muted);
    font-size: 14px;
    text-decoration: none;
  }

  .snfooter .snf-contact-item:hover { color:#fff; text-decoration:none; }

  .snfooter .snf-contact-icon {
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 11px;
    color: #ff8eea;
    background: rgba(255,255,255,.045);
    font-size: 14px;
    font-weight: 850;
  }

  /* BADGE FRANCE NUM */
  .snfooter .snf-francenum {
    display: grid;
    grid-template-columns: 92px 1fr;
    gap: 14px;
    margin-top: 28px;
    padding: 12px;
    align-items: center;
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 17px;
    background: rgba(255,255,255,.045);
    text-decoration: none;
    transition: background 180ms ease, border-color 180ms ease;
  }

  .snfooter .snf-francenum:hover {
    border-color: rgba(229,50,197,.32);
    background: rgba(255,255,255,.07);
    text-decoration: none;
  }

  .snfooter .snf-francenum img {
    display: block;
    width: 92px;
    height: auto;
    border-radius: 9px;
  }

  .snfooter .snf-francenum strong {
    display: block;
    margin-bottom: 4px;
    color: #fff;
    font-size: 12px;
    line-height: 1.35;
  }

  .snfooter .snf-francenum span {
    display: block;
    color: rgba(255,255,255,.48);
    font-size: 10px;
    line-height: 1.4;
  }

  /* BAS DE FOOTER */
  .snfooter .snf-bottom {
    display: flex;
    min-height: 77px;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
    border-top: 1px solid var(--snf-line);
  }

  .snfooter .snf-copyright {
    margin: 0;
    color: rgba(255,255,255,.42);
    font-size: 12px;
    line-height: 1.5;
  }

  .snfooter .snf-legal {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 10px 22px;
  }

  .snfooter .snf-legal a {
    color: rgba(255,255,255,.5);
    font-size: 12px;
    text-decoration: none;
    transition: color 180ms ease;
  }

  .snfooter .snf-legal a:hover { color:#fff; text-decoration:none; }

  @media (max-width: 980px) {
    .snfooter .snf-main {
      grid-template-columns: 1.3fr .7fr .9fr;
      gap: 45px;
    }
    .snfooter .snf-contact-column { grid-column: 1 / 4; }
    .snfooter .snf-contact-list {
      grid-template-columns: repeat(3, minmax(0,1fr));
    }
    .snfooter .snf-francenum { max-width: 380px; }
  }

  @media (max-width: 720px) {
    .snfooter .snf-cta {
      grid-template-columns: 1fr;
      gap: 28px;
      padding: 58px 0 50px;
      align-items: start;
    }
    .snfooter .snf-cta .snf-btn { width: fit-content; }
    .snfooter .snf-main { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .snfooter .snf-brand-column { grid-column: 1 / 3; }
    .snfooter .snf-contact-column { grid-column: 1 / 3; }
    .snfooter .snf-contact-list { grid-template-columns: 1fr; }
    .snfooter .snf-bottom {
      padding: 24px 0;
      align-items: flex-start;
      flex-direction: column;
    }
    .snfooter .snf-legal { justify-content: flex-start; }
  }

  @media (max-width: 480px) {
    .snfooter .snf-container { width: min(100% - 28px, 1180px); }
    .snfooter .snf-cta h2 { font-size: 38px; }
    .snfooter .snf-cta .snf-btn { width: 100%; }
    .snfooter .snf-main {
      grid-template-columns: 1fr;
      gap: 38px;
      padding: 50px 0 42px;
    }
    .snfooter .snf-brand-column,
    .snfooter .snf-contact-column { grid-column: auto; }
    .snfooter .snf-title { margin-bottom: 17px; }
    .snfooter .snf-francenum { grid-template-columns: 82px 1fr; }
    .snfooter .snf-francenum img { width: 82px; }
  }

  @media (prefers-reduced-motion: reduce) {
    .snfooter .snf-btn,
    .snfooter .snf-btn::after,
    .snfooter .snf-links a,
    .snfooter .snf-links a::before,
    .snfooter .snf-francenum { transition: none; }
  }

  /* France Num */

  .sn-francenum {
    --sn-ink: #101015;
    --sn-soft-ink: #24242d;
    --sn-muted: #666675;
    --sn-line: rgba(16, 16, 21, 0.1);
    --sn-paper: #ffffff;
    --sn-soft: #f7f5f8;
    --sn-accent: #e532c5;
    --sn-accent-dark: #b71ca0;
    --sn-radius: 28px;
    color: var(--sn-ink);
    background: var(--sn-paper);
    font-family: inherit;
    overflow: hidden;
  }

  .sn-francenum,
  .sn-francenum * { box-sizing: border-box; }

  .sn-francenum a { color: inherit; }

  .sn-francenum .sn-container {
    width: min(1180px, calc(100% - 40px));
    margin-inline: auto;
  }

  .sn-francenum .sn-section { padding: 100px 0; }

  .sn-francenum .sn-kicker {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin: 0 0 18px;
    color: var(--sn-accent-dark);
    font-size: 13px;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: 0.11em;
    text-transform: uppercase;
  }

  .sn-francenum .sn-kicker::before {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--sn-accent);
    box-shadow: 0 0 0 6px rgba(229, 50, 197, 0.12);
    content: "";
  }

  .sn-francenum h1,
  .sn-francenum h2,
  .sn-francenum h3,
  .sn-francenum p { margin-top: 0; }

  .sn-francenum h1 {
    max-width: 820px;
    margin-bottom: 24px;
    color: #fff;
    font-size: clamp(42px, 6vw, 76px);
    font-weight: 800;
    line-height: 0.99;
    letter-spacing: -0.055em;
  }

  .sn-francenum h2 {
    max-width: 760px;
    margin-bottom: 22px;
    font-size: clamp(34px, 4.5vw, 56px);
    font-weight: 800;
    line-height: 1.04;
    letter-spacing: -0.045em;
  }

  .sn-francenum h3 {
    margin-bottom: 12px;
    font-size: 21px;
    font-weight: 750;
    line-height: 1.2;
    letter-spacing: -0.025em;
  }

  .sn-francenum p {
    color: var(--sn-muted);
    font-size: 17px;
    line-height: 1.75;
  }

  .sn-francenum .sn-lead {
    max-width: 720px;
    font-size: clamp(18px, 2vw, 21px);
    line-height: 1.65;
  }

  .sn-francenum .sn-hero {
    position: relative;
    padding: 116px 0 94px;
    background:
      radial-gradient(circle at 80% 15%, rgba(229, 50, 197, 0.26), transparent 25%),
      radial-gradient(circle at 15% 90%, rgba(117, 53, 255, 0.18), transparent 30%),
      #0d0d12;
  }

  .sn-francenum .sn-hero::after {
    position: absolute;
    right: -140px;
    bottom: -180px;
    width: 500px;
    height: 500px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 50%;
    box-shadow:
      0 0 0 70px rgba(255, 255, 255, 0.025),
      0 0 0 140px rgba(255, 255, 255, 0.018);
    content: "";
    pointer-events: none;
  }

  .sn-francenum .sn-hero-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(260px, 0.65fr);
    gap: 70px;
    align-items: center;
  }

  .sn-francenum .sn-hero .sn-kicker { color: #ff8eea; }

  .sn-francenum .sn-hero-copy > p {
    max-width: 700px;
    margin-bottom: 34px;
    color: rgba(255, 255, 255, 0.72);
    font-size: 19px;
    line-height: 1.7;
  }

  .sn-francenum .sn-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
  }

  .sn-francenum .sn-btn {
    display: inline-flex;
    min-height: 54px;
    padding: 0 24px;
    align-items: center;
    justify-content: center;
    border: 1px solid transparent;
    border-radius: 999px;
    font-size: 15px;
    font-weight: 750;
    line-height: 1;
    text-decoration: none;
    transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease;
  }

  .sn-francenum .sn-btn:hover {
    transform: translateY(-2px);
    text-decoration: none;
  }

  .sn-francenum .sn-btn-primary {
    color: #fff;
    background: linear-gradient(135deg, var(--sn-accent), #bd28ff);
    box-shadow: 0 15px 35px rgba(229, 50, 197, 0.25);
  }

  .sn-francenum .sn-btn-primary:hover {
    color: #fff;
    box-shadow: 0 18px 42px rgba(229, 50, 197, 0.36);
  }

  .sn-francenum .sn-btn-secondary {
    color: #fff;
    border-color: rgba(255, 255, 255, 0.22);
    background: rgba(255, 255, 255, 0.06);
  }

  .sn-francenum .sn-btn-secondary:hover {
    color: #fff;
    background: rgba(255, 255, 255, 0.12);
  }

  .sn-francenum .sn-badge {
    padding: 22px;
    border: 1px solid rgba(255, 255, 255, 0.13);
    border-radius: 30px;
    background: rgba(255, 255, 255, 0.075);
    box-shadow: 0 30px 70px rgba(0, 0, 0, 0.24);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    transform: rotate(1.5deg);
  }

  .sn-francenum .sn-badge img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 16px;
  }

  .sn-francenum .sn-badge p {
    margin: 14px 5px 0;
    color: rgba(255, 255, 255, 0.64);
    font-size: 13px;
    line-height: 1.5;
    text-align: center;
  }

  .sn-francenum .sn-intro-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: 76px;
    align-items: start;
  }

  .sn-francenum .sn-proof {
    padding: 34px;
    border: 1px solid var(--sn-line);
    border-radius: var(--sn-radius);
    background: var(--sn-soft);
  }

  .sn-francenum .sn-proof strong {
    display: block;
    margin-bottom: 10px;
    color: var(--sn-ink);
    font-size: 19px;
  }

  .sn-francenum .sn-proof p:last-child { margin-bottom: 0; }

  .sn-francenum .sn-cards-section { background: var(--sn-soft); }

  .sn-francenum .sn-section-head {
    display: flex;
    margin-bottom: 42px;
    align-items: end;
    justify-content: space-between;
    gap: 32px;
  }

  .sn-francenum .sn-section-head p {
    max-width: 430px;
    margin-bottom: 7px;
  }

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

  .sn-francenum .sn-card {
    min-height: 100%;
    padding: 30px;
    border: 1px solid var(--sn-line);
    border-radius: 24px;
    background: #fff;
    transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
  }

  .sn-francenum .sn-card:hover {
    border-color: rgba(229, 50, 197, 0.28);
    box-shadow: 0 22px 50px rgba(20, 14, 24, 0.08);
    transform: translateY(-5px);
  }

  .sn-francenum .sn-card p:last-child { margin-bottom: 0; }

  .sn-francenum .sn-icon {
    display: grid;
    width: 48px;
    height: 48px;
    margin-bottom: 25px;
    place-items: center;
    border-radius: 15px;
    color: var(--sn-accent-dark);
    background: rgba(229, 50, 197, 0.1);
    font-size: 20px;
    font-weight: 850;
  }

  .sn-francenum .sn-services-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.22fr);
    gap: 70px;
    align-items: start;
  }

  .sn-francenum .sn-sticky { position: sticky; top: 40px; }

  .sn-francenum .sn-service-list {
    display: grid;
    border-top: 1px solid var(--sn-line);
  }

  .sn-francenum .sn-service {
    display: grid;
    grid-template-columns: 58px 1fr;
    gap: 20px;
    padding: 28px 0;
    border-bottom: 1px solid var(--sn-line);
  }

  .sn-francenum .sn-service-number {
    color: var(--sn-accent-dark);
    font-size: 13px;
    font-weight: 850;
    letter-spacing: 0.08em;
  }

  .sn-francenum .sn-service p { margin-bottom: 0; }

  .sn-francenum .sn-local {
    position: relative;
    padding: 52px;
    border-radius: 34px;
    color: #fff;
    background:
      radial-gradient(circle at 85% 20%, rgba(229, 50, 197, 0.28), transparent 28%),
      #15151c;
    overflow: hidden;
  }

  .sn-francenum .sn-local h2 {
    max-width: 730px;
    margin-bottom: 18px;
    color: #fff;
  }

  .sn-francenum .sn-local > p {
    max-width: 750px;
    margin-bottom: 34px;
    color: rgba(255, 255, 255, 0.7);
  }

  .sn-francenum .sn-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
  }

  .sn-francenum .sn-tag {
    padding: 10px 15px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 999px;
    color: rgba(255, 255, 255, 0.86);
    background: rgba(255, 255, 255, 0.07);
    font-size: 14px;
    font-weight: 650;
  }

  .sn-francenum .sn-process {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    margin-top: 42px;
  }

  .sn-francenum .sn-step {
    padding: 28px 24px;
    border-left: 2px solid rgba(229, 50, 197, 0.26);
  }

  .sn-francenum .sn-step span {
    display: block;
    margin-bottom: 18px;
    color: var(--sn-accent-dark);
    font-size: 13px;
    font-weight: 850;
    letter-spacing: 0.08em;
  }

  .sn-francenum .sn-step p { margin-bottom: 0; }

  .sn-francenum .sn-cta-section { padding-top: 30px; }

  .sn-francenum .sn-cta {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 38px;
    padding: 56px;
    align-items: center;
    border-radius: 34px;
    background: linear-gradient(135deg, #f7edf6, #f7f5ff);
  }

  .sn-francenum .sn-cta h2 {
    max-width: 780px;
    margin-bottom: 12px;
  }

  .sn-francenum .sn-cta p { margin-bottom: 0; }

  .sn-francenum .sn-cta .sn-btn { white-space: nowrap; }

  .sn-francenum .sn-legal-note {
    max-width: 900px;
    margin: 30px auto 0;
    color: #858590;
    font-size: 12px;
    line-height: 1.6;
    text-align: center;
  }

  @media (max-width: 900px) {
    .sn-francenum .sn-section { padding: 76px 0; }

    .sn-francenum .sn-hero-grid,
    .sn-francenum .sn-intro-grid,
    .sn-francenum .sn-services-grid { grid-template-columns: 1fr; }

    .sn-francenum .sn-hero-grid { gap: 48px; }
    .sn-francenum .sn-badge { max-width: 360px; transform: none; }
    .sn-francenum .sn-intro-grid,
    .sn-francenum .sn-services-grid { gap: 40px; }
    .sn-francenum .sn-grid-3 { grid-template-columns: 1fr; }
    .sn-francenum .sn-section-head { display: block; }
    .sn-francenum .sn-sticky { position: static; }
    .sn-francenum .sn-process { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .sn-francenum .sn-cta { grid-template-columns: 1fr; }
    .sn-francenum .sn-cta .sn-actions { justify-content: start; }
  }

  @media (max-width: 600px) {
    .sn-francenum .sn-container { width: min(100% - 28px, 1180px); }
    .sn-francenum .sn-section { padding: 62px 0; }
    .sn-francenum .sn-hero { padding: 82px 0 68px; }
    .sn-francenum h1 { font-size: clamp(39px, 12vw, 54px); }
    .sn-francenum h2 { font-size: 34px; }
    .sn-francenum .sn-hero-copy > p { font-size: 17px; }
    .sn-francenum .sn-btn { width: 100%; }
    .sn-francenum .sn-proof,
    .sn-francenum .sn-card { padding: 25px; }
    .sn-francenum .sn-local,
    .sn-francenum .sn-cta { padding: 34px 24px; border-radius: 26px; }
    .sn-francenum .sn-process { grid-template-columns: 1fr; }
    .sn-francenum .sn-step { padding: 22px 18px; }
  }

  @media (prefers-reduced-motion: reduce) {
    .sn-francenum .sn-card,
    .sn-francenum .sn-btn { transition: none; }
  }

  /*
 * SEONOVA — PAGES LÉGALES *********************************************************
 */

.snlegal {
  --snl-ink:#101015;
  --snl-ink-2:#17171f;
  --snl-paper:#fff;
  --snl-soft:#f7f5f8;
  --snl-muted:#656572;
  --snl-line:rgba(16,16,21,.11);
  --snl-accent:#e532c5;
  --snl-accent-dark:#b71ca0;
  --snl-violet:#8f47ff;
  color:var(--snl-ink);
  background:var(--snl-paper);
  font-family:inherit;
  overflow:clip;
}

.snlegal,
.snlegal * { box-sizing:border-box; }

.snlegal a { color:inherit; }

.snlegal .snl-container {
  width:min(1180px,calc(100% - 40px));
  margin-inline:auto;
}

.snlegal h1,
.snlegal h2,
.snlegal p,
.snlegal dl,
.snlegal dd { margin-top:0; }

.snlegal .snl-kicker {
  display:flex;
  margin:0 0 18px;
  align-items:center;
  gap:10px;
  color:var(--snl-accent-dark);
  font-size:12px;
  font-weight:850;
  line-height:1.2;
  letter-spacing:.13em;
  text-transform:uppercase;
}

.snlegal .snl-kicker::before {
  width:8px;
  height:8px;
  flex:0 0 auto;
  border-radius:50%;
  background:var(--snl-accent);
  box-shadow:0 0 0 6px rgba(229,50,197,.12);
  content:"";
}

/* HERO */
.snlegal .snl-hero {
  position:relative;
  z-index:0;
  padding:112px 0 88px;
  overflow:hidden;
  isolation:isolate;
  color:#fff;
  background:
    radial-gradient(circle at 78% 12%,rgba(229,50,197,.22),transparent 27%),
    radial-gradient(circle at 12% 96%,rgba(143,71,255,.17),transparent 30%),
    #0d0d12;
}

.snlegal .snl-hero::before {
  position:absolute;
  z-index:-2;
  inset:0;
  opacity:.2;
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:72px 72px;
  -webkit-mask-image:linear-gradient(to bottom,#000,transparent 95%);
  mask-image:linear-gradient(to bottom,#000,transparent 95%);
  content:"";
  pointer-events:none;
}

.snlegal .snl-hero__inner { position:relative; z-index:2; }

.snlegal .snl-hero .snl-kicker { color:#f1b7e8; }

.snlegal .snl-hero h1 {
  max-width:920px;
  margin-bottom:25px;
  font-size:clamp(52px,7vw,90px);
  font-weight:820;
  line-height:.93;
  letter-spacing:-.065em;
}

.snlegal .snl-hero h1 span {
  color:transparent;
  background:linear-gradient(95deg,#ff7aea,#c985ff 62%,#fff);
  -webkit-background-clip:text;
  background-clip:text;
}

.snlegal .snl-hero__lead {
  max-width:710px;
  margin-bottom:32px;
  color:rgba(255,255,255,.72);
  font-size:18px;
  line-height:1.72;
}

.snlegal .snl-meta {
  display:flex;
  flex-wrap:wrap;
  gap:9px;
}

.snlegal .snl-meta span {
  display:inline-flex;
  min-height:38px;
  padding:0 15px;
  align-items:center;
  border:1px solid rgba(255,255,255,.12);
  border-radius:999px;
  color:rgba(255,255,255,.75);
  background:rgba(255,255,255,.045);
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
  font-size:12px;
  font-weight:720;
  letter-spacing:.025em;
}

.snlegal .snl-orbit {
  position:absolute;
  z-index:-1;
  display:block;
  border:1px solid rgba(198,161,255,.16);
  border-radius:50%;
  pointer-events:none;
  transform-origin:center;
  will-change:opacity,filter,transform;
  animation:snl-ring-breathe 6.4s ease-in-out infinite;
}

.snlegal .snl-orbit--one {
  right:-130px;
  bottom:-250px;
  width:570px;
  height:570px;
}

.snlegal .snl-orbit--two {
  top:72px;
  right:21%;
  width:135px;
  height:135px;
  opacity:.5;
  animation-delay:-3.2s;
}

@keyframes snl-ring-breathe {
  0%,100% {
    opacity:.42;
    border-color:rgba(202,185,255,.1);
    background-color:rgba(143,71,255,0);
    filter:drop-shadow(0 0 6px rgba(143,71,255,.08));
    transform:scale(1);
  }
  50% {
    opacity:1;
    border-color:rgba(190,145,255,.3);
    background-color:rgba(143,71,255,.025);
    filter:
      drop-shadow(0 0 22px rgba(143,71,255,.32))
      drop-shadow(0 0 42px rgba(229,50,197,.12));
    transform:scale(1.035);
  }
}

/* CORPS ET SOMMAIRE */
.snlegal .snl-body {
  padding:84px 0 112px;
  background:
    radial-gradient(circle at 100% 3%,rgba(143,71,255,.055),transparent 21%),
    var(--snl-paper);
}

.snlegal .snl-layout {
  display:grid;
  grid-template-columns:minmax(220px,270px) minmax(0,1fr);
  gap:70px;
  align-items:start;
}

.snlegal .snl-sidebar {
  position:sticky;
  top:32px;
  padding:25px 22px;
  border:1px solid var(--snl-line);
  border-radius:22px;
  background:rgba(255,255,255,.87);
  box-shadow:0 18px 60px rgba(24,16,35,.06);
  -webkit-backdrop-filter:blur(14px);
  backdrop-filter:blur(14px);
}

.snlegal .snl-sidebar__eyebrow {
  margin-bottom:17px;
  color:var(--snl-ink);
  font-size:12px;
  font-weight:850;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.snlegal .snl-nav { display:grid; gap:2px; }

.snlegal .snl-nav a {
  display:grid;
  grid-template-columns:27px 1fr;
  gap:8px;
  padding:8px 7px;
  border-radius:9px;
  color:var(--snl-muted);
  font-size:12px;
  font-weight:670;
  line-height:1.34;
  text-decoration:none;
  transition:color 170ms ease,background 170ms ease,transform 170ms ease;
}

.snlegal .snl-nav a span {
  color:var(--snl-accent-dark);
  font-size:10px;
  font-weight:850;
  letter-spacing:.04em;
}

.snlegal .snl-nav a:hover,
.snlegal .snl-nav a:focus-visible {
  color:var(--snl-ink);
  background:rgba(229,50,197,.07);
  outline:none;
  transform:translateX(2px);
}

.snlegal .snl-content { min-width:0; }

/* BLOC IDENTITÉ */
.snlegal .snl-intro-card {
  position:relative;
  padding:38px 40px;
  overflow:hidden;
  border:1px solid rgba(143,71,255,.17);
  border-radius:28px;
  background:
    radial-gradient(circle at 100% 0,rgba(229,50,197,.095),transparent 32%),
    linear-gradient(145deg,#fbf9ff,#fff);
  box-shadow:0 22px 70px rgba(54,28,77,.08);
}

.snlegal .snl-intro-card::after {
  position:absolute;
  top:-90px;
  right:-70px;
  width:210px;
  height:210px;
  border:1px solid rgba(143,71,255,.14);
  border-radius:50%;
  content:"";
  pointer-events:none;
}

.snlegal .snl-intro-card h2 {
  margin-bottom:9px;
  font-size:clamp(33px,4vw,49px);
  font-weight:820;
  line-height:1;
  letter-spacing:-.05em;
}

.snlegal .snl-intro-card > p:not(.snl-kicker) {
  max-width:670px;
  margin-bottom:26px;
  color:var(--snl-muted);
  font-size:16px;
  line-height:1.7;
}

.snlegal .snl-details {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  margin-bottom:0;
  gap:1px;
  overflow:hidden;
  border:1px solid var(--snl-line);
  border-radius:16px;
  background:var(--snl-line);
}

.snlegal .snl-details > div {
  min-width:0;
  padding:16px 18px;
  background:rgba(255,255,255,.93);
}

.snlegal .snl-details dt {
  margin-bottom:5px;
  color:var(--snl-muted);
  font-size:10px;
  font-weight:850;
  letter-spacing:.1em;
  text-transform:uppercase;
}

.snlegal .snl-details dd {
  margin-bottom:0;
  overflow-wrap:anywhere;
  color:var(--snl-ink);
  font-size:14px;
  font-weight:680;
  line-height:1.5;
}

.snlegal .snl-details a {
  text-decoration-color:rgba(183,28,160,.35);
  text-underline-offset:3px;
}

.snlegal .snl-details__warning dd { color:#a23b18; }

/* ARTICLES */
.snlegal .snl-article {
  padding:56px 5px 52px;
  border-bottom:1px solid var(--snl-line);
  scroll-margin-top:28px;
}

.snlegal .snl-number {
  margin-bottom:12px;
  color:var(--snl-accent-dark);
  font-size:11px;
  font-weight:850;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.snlegal .snl-article h2 {
  max-width:720px;
  margin-bottom:20px;
  font-size:clamp(29px,3.6vw,43px);
  font-weight:810;
  line-height:1.05;
  letter-spacing:-.045em;
}

.snlegal .snl-article p:not(.snl-number) {
  max-width:760px;
  margin-bottom:15px;
  color:var(--snl-muted);
  font-size:16px;
  line-height:1.78;
}

.snlegal .snl-article p:last-child { margin-bottom:0; }

.snlegal .snl-article strong { color:var(--snl-ink); }

.snlegal .snl-article a {
  color:var(--snl-accent-dark);
  font-weight:720;
  text-decoration-thickness:1px;
  text-underline-offset:3px;
}

.snlegal .snl-article--accent {
  margin:38px 0 0;
  padding:38px 40px;
  border:1px solid rgba(229,50,197,.18);
  border-radius:24px;
  background:linear-gradient(145deg,rgba(229,50,197,.055),rgba(143,71,255,.055));
}

.snlegal .snl-article--accent + .snl-article { margin-top:0; }

.snlegal .snl-cookie-button {
  min-height:48px;
  margin-top:7px;
  padding:0 20px;
  border:1px solid rgba(183,28,160,.22);
  border-radius:999px;
  color:var(--snl-accent-dark);
  background:#fff;
  box-shadow:0 10px 28px rgba(57,27,76,.07);
  font:inherit;
  font-size:13px;
  font-weight:780;
  cursor:pointer;
  transition:color 170ms ease,border-color 170ms ease,transform 170ms ease;
}

.snlegal .snl-cookie-button:hover,
.snlegal .snl-cookie-button:focus-visible {
  border-color:var(--snl-accent);
  color:var(--snl-ink);
  outline:none;
  transform:translateY(-1px);
}

.snlegal .snl-note {
  margin-top:12px;
  font-size:12px!important;
  font-style:italic;
}

/* CONTACT FINAL */
.snlegal .snl-contact-card {
  position:relative;
  display:flex;
  margin-top:60px;
  padding:42px;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  overflow:hidden;
  border-radius:28px;
  color:#fff;
  background:
    radial-gradient(circle at 90% 0,rgba(229,50,197,.34),transparent 38%),
    #111117;
}

.snlegal .snl-contact-card .snl-kicker { color:#f1b7e8; }

.snlegal .snl-contact-card h2 {
  max-width:500px;
  margin-bottom:0;
  color:#fff;
  font-size:clamp(28px,3.3vw,42px);
  font-weight:810;
  line-height:1.04;
  letter-spacing:-.045em;
}

.snlegal .snl-button {
  display:inline-flex;
  min-height:52px;
  padding:0 22px;
  align-items:center;
  justify-content:center;
  gap:10px;
  border-radius:999px;
  color:#fff;
  background:linear-gradient(135deg,var(--snl-accent),#bd28ff);
  box-shadow:0 14px 34px rgba(229,50,197,.25);
  font-size:14px;
  font-weight:780;
  line-height:1;
  text-decoration:none;
  white-space:nowrap;
  transition:box-shadow 170ms ease,transform 170ms ease;
}

.snlegal .snl-button:hover,
.snlegal .snl-button:focus-visible {
  color:#fff;
  box-shadow:0 18px 40px rgba(229,50,197,.36);
  outline:none;
  transform:translateY(-2px);
}

/* RESPONSIVE */
@media (max-width:960px) {
  .snlegal .snl-layout { grid-template-columns:1fr; gap:36px; }
  .snlegal .snl-sidebar { position:static; }
  .snlegal .snl-nav { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:700px) {
  .snlegal .snl-container { width:min(100% - 28px,1180px); }
  .snlegal .snl-hero { padding:82px 0 70px; }
  .snlegal .snl-hero h1 { font-size:clamp(48px,16vw,70px); }
  .snlegal .snl-hero__lead { font-size:16px; }
  .snlegal .snl-orbit--one { right:-240px; bottom:-210px; }
  .snlegal .snl-orbit--two { display:none; }
  .snlegal .snl-body { padding:54px 0 78px; }
  .snlegal .snl-sidebar { padding:21px 18px; border-radius:18px; }
  .snlegal .snl-nav { grid-template-columns:1fr; }
  .snlegal .snl-intro-card { padding:28px 22px; border-radius:22px; }
  .snlegal .snl-details { grid-template-columns:1fr; }
  .snlegal .snl-article { padding:44px 1px 40px; }
  .snlegal .snl-article--accent { margin-top:28px; padding:30px 22px; }
  .snlegal .snl-contact-card { align-items:flex-start; flex-direction:column; padding:32px 24px; }
}

@media (prefers-reduced-motion:reduce) {
  .snlegal .snl-orbit { animation:none; filter:none; transform:none; }
  .snlegal .snl-nav a,
  .snlegal .snl-button,
  .snlegal .snl-cookie-button { transition:none; }
}

/* ### 404 ### */
.sn404 {
  --sn404-ink:#0d0d12;
  --sn404-paper:#fff;
  --sn404-muted:rgba(255,255,255,.62);
  --sn404-line:rgba(255,255,255,.1);
  --sn404-accent:#e532c5;
  --sn404-violet:#8f47ff;
  position:relative;
  display:flex;
  min-height:780px;
  padding:88px 0 76px;
  align-items:center;
  overflow:hidden;
  isolation:isolate;
  color:#fff;
  background:
    radial-gradient(circle at 75% 22%,rgba(229,50,197,.2),transparent 25%),
    radial-gradient(circle at 16% 82%,rgba(143,71,255,.16),transparent 29%),
    var(--sn404-ink);
  font-family:inherit;
}

.sn404,
.sn404 * { box-sizing:border-box; }

.sn404 a { color:inherit; }

.sn404__container {
  position:relative;
  z-index:3;
  width:min(1100px,calc(100% - 40px));
  margin-inline:auto;
}

.sn404__grid {
  position:absolute;
  z-index:-3;
  inset:0;
  opacity:.22;
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:72px 72px;
  -webkit-mask-image:linear-gradient(to bottom,transparent,#000 22%,#000 78%,transparent);
  mask-image:linear-gradient(to bottom,transparent,#000 22%,#000 78%,transparent);
  pointer-events:none;
}

.sn404__orbit {
  position:absolute;
  z-index:-1;
  display:block;
  border:1px solid rgba(190,145,255,.17);
  border-radius:50%;
  pointer-events:none;
  transform-origin:center;
  will-change:opacity,filter,transform;
  animation:sn404-ring 6.4s ease-in-out infinite;
}

.sn404__orbit--one {
  right:-180px;
  bottom:-280px;
  width:620px;
  height:620px;
}

.sn404__orbit--two {
  top:-105px;
  left:-115px;
  width:300px;
  height:300px;
  opacity:.45;
  animation-delay:-3.2s;
}

.sn404__status {
  display:flex;
  margin-bottom:14px;
  align-items:center;
  justify-content:space-between;
  color:rgba(255,255,255,.46);
  font-size:10px;
  font-weight:820;
  letter-spacing:.13em;
  text-transform:uppercase;
}

.sn404__status span {
  display:inline-flex;
  align-items:center;
  gap:9px;
}

.sn404__status i {
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--sn404-accent);
  box-shadow:0 0 0 6px rgba(229,50,197,.12),0 0 20px rgba(229,50,197,.6);
  animation:sn404-status 2.4s ease-in-out infinite;
}

.sn404__code {
  position:relative;
  display:flex;
  height:clamp(175px,25vw,285px);
  margin-bottom:4px;
  align-items:center;
  justify-content:center;
  gap:clamp(5px,1.8vw,22px);
  line-height:1;
}

.sn404__code > span:not(.sn404__zero) {
  color:transparent;
  background:
    linear-gradient(180deg,#fff 4%,rgba(255,255,255,.12) 92%);
  -webkit-background-clip:text;
  background-clip:text;
  filter:drop-shadow(0 25px 42px rgba(0,0,0,.27));
  font-size:clamp(190px,28vw,330px);
  font-weight:860;
  letter-spacing:-.1em;
}

.sn404__zero {
  position:relative;
  display:block;
  width:clamp(135px,20vw,230px);
  height:clamp(135px,20vw,230px);
  flex:0 0 auto;
  border:clamp(16px,2.6vw,30px) solid rgba(255,255,255,.88);
  border-radius:50%;
  box-shadow:
    inset 0 0 38px rgba(143,71,255,.26),
    0 0 50px rgba(143,71,255,.15),
    0 25px 42px rgba(0,0,0,.27);
}

.sn404__zero::before,
.sn404__zero::after {
  position:absolute;
  border-radius:50%;
  content:"";
  pointer-events:none;
}

.sn404__zero::before {
  inset:-32%;
  border:1px solid rgba(205,175,255,.22);
  animation:sn404-portal 7s linear infinite;
}

.sn404__zero::after {
  inset:-15%;
  border:1px dashed rgba(229,50,197,.34);
  animation:sn404-portal 10s linear infinite reverse;
}

.sn404__zero i,
.sn404__zero b {
  position:absolute;
  top:50%;
  left:50%;
  border-radius:50%;
  transform:translate(-50%,-50%);
}

.sn404__zero i {
  width:36%;
  height:36%;
  background:radial-gradient(circle at 38% 34%,#fff 0 5%,#f266dc 17%,#8f47ff 55%,transparent 72%);
  filter:blur(.2px) drop-shadow(0 0 18px rgba(229,50,197,.58));
  animation:sn404-core 3.2s ease-in-out infinite;
}

.sn404__zero b {
  width:7px;
  height:7px;
  background:#fff;
  box-shadow:0 0 12px #fff,0 0 26px var(--sn404-accent);
}

.sn404__copy {
  max-width:720px;
  margin:0 auto;
  text-align:center;
}

.sn404__kicker {
  display:inline-flex;
  margin:0 0 15px;
  align-items:center;
  gap:10px;
  color:#f3b4e8;
  font-size:11px;
  font-weight:850;
  letter-spacing:.13em;
  text-transform:uppercase;
}

.sn404__kicker::before {
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--sn404-accent);
  box-shadow:0 0 0 6px rgba(229,50,197,.1);
  content:"";
}

.sn404__copy h1 {
  margin:0 0 18px;
  color:#fff;
  font-size:clamp(39px,5.5vw,66px);
  font-weight:820;
  line-height:1;
  letter-spacing:-.055em;
}

.sn404__copy > p:not(.sn404__kicker) {
  max-width:610px;
  margin:0 auto 28px;
  color:var(--sn404-muted);
  font-size:16px;
  line-height:1.7;
}

.sn404__actions {
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:11px;
}

.sn404__button {
  display:inline-flex;
  min-height:54px;
  padding:0 23px;
  align-items:center;
  justify-content:center;
  gap:10px;
  border:1px solid transparent;
  border-radius:999px;
  font-size:14px;
  font-weight:780;
  line-height:1;
  text-decoration:none;
  transition:border-color 180ms ease,box-shadow 180ms ease,transform 180ms ease;
}

.sn404__button--primary {
  color:#fff;
  background:linear-gradient(135deg,var(--sn404-accent),#bd28ff);
  box-shadow:0 15px 36px rgba(229,50,197,.25);
}

.sn404__button--secondary {
  border-color:rgba(255,255,255,.14);
  color:#fff;
  background:rgba(255,255,255,.055);
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
}

.sn404__button:hover,
.sn404__button:focus-visible {
  color:#fff;
  border-color:rgba(255,255,255,.25);
  box-shadow:0 18px 42px rgba(229,50,197,.3);
  outline:none;
  transform:translateY(-2px);
}

.sn404__routes {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin-top:55px;
  gap:10px;
}

.sn404__routes > a {
  display:grid;
  min-width:0;
  padding:19px 20px;
  grid-template-columns:26px 1fr auto;
  gap:11px;
  align-items:center;
  border:1px solid var(--sn404-line);
  border-radius:17px;
  background:rgba(255,255,255,.035);
  text-decoration:none;
  transition:border-color 180ms ease,background 180ms ease,transform 180ms ease;
}

.sn404__routes > a:hover,
.sn404__routes > a:focus-visible {
  border-color:rgba(229,50,197,.3);
  background:rgba(229,50,197,.065);
  outline:none;
  transform:translateY(-3px);
}

.sn404__routes > a > span {
  color:#e466d0;
  font-size:10px;
  font-weight:850;
  letter-spacing:.08em;
}

.sn404__routes p { min-width:0; margin:0; }

.sn404__routes strong,
.sn404__routes small { display:block; }

.sn404__routes strong {
  margin-bottom:4px;
  color:#fff;
  font-size:13px;
  font-weight:760;
}

.sn404__routes small {
  overflow:hidden;
  color:rgba(255,255,255,.43);
  font-size:9px;
  line-height:1.35;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.sn404__routes i {
  color:rgba(255,255,255,.5);
  font-size:14px;
  font-style:normal;
}

@keyframes sn404-ring {
  0%,100% {
    opacity:.42;
    border-color:rgba(202,185,255,.1);
    filter:drop-shadow(0 0 6px rgba(143,71,255,.08));
    transform:scale(1);
  }
  50% {
    opacity:1;
    border-color:rgba(190,145,255,.3);
    filter:
      drop-shadow(0 0 22px rgba(143,71,255,.32))
      drop-shadow(0 0 42px rgba(229,50,197,.12));
    transform:scale(1.035);
  }
}

@keyframes sn404-status {
  0%,100% { opacity:.45; transform:scale(.82); }
  50% { opacity:1; transform:scale(1); }
}

@keyframes sn404-portal {
  to { transform:rotate(360deg); }
}

@keyframes sn404-core {
  0%,100% { opacity:.65; transform:translate(-50%,-50%) scale(.88); }
  50% { opacity:1; transform:translate(-50%,-50%) scale(1.08); }
}

@media (max-width:800px) {
  .sn404 { min-height:auto; padding:72px 0 64px; }
  .sn404__routes { grid-template-columns:1fr; max-width:640px; margin-inline:auto; }
}

@media (max-width:560px) {
  .sn404__container { width:min(100% - 28px,1100px); }
  .sn404__status span:last-child { display:none; }
  .sn404__code {
    height:150px;
    margin:20px 0 16px;
    gap:3px;
  }
  .sn404__code > span:not(.sn404__zero) { font-size:150px; }
  .sn404__zero {
    width:105px;
    height:105px;
    border-width:14px;
  }
  .sn404__copy h1 { font-size:40px; }
  .sn404__copy > p:not(.sn404__kicker) { font-size:15px; }
  .sn404__actions { align-items:stretch; flex-direction:column; }
  .sn404__button { width:100%; }
  .sn404__routes { margin-top:43px; }
  .sn404__orbit--one { right:-330px; }
}

@media (prefers-reduced-motion:reduce) {
  .sn404__orbit,
  .sn404__status i,
  .sn404__zero::before,
  .sn404__zero::after,
  .sn404__zero i { animation:none; }
  .sn404__button,
  .sn404__routes > a { transition:none; }
}

