.skip-link {
  position: absolute;
  left: -9999px;
  top: auto;
  width: auto;
  height: auto;
}

.skip-link:focus {
  position: fixed;
  top: 20px;
  left: 20px;
  background: #000;
  color: #fff;
  padding: 10px 14px;
  z-index: 9999;
  text-decoration: none;
  border-radius: 6px;
  font-size: 14px;
}

/* =========================
   LOCAL FONTS
========================= */

/* INTER */

@font-face{
font-family:'Inter';
font-style:normal;
font-weight:400;
font-display:swap;
src:url('../fonts/inter-v20-latin-regular.woff2') format('woff2');
}

@font-face{
font-family:'Inter';
font-style:normal;
font-weight:600;
font-display:swap;
src:url('../fonts/inter-v20-latin-600.woff2') format('woff2');
}

@font-face{
font-family:'Inter';
font-style:normal;
font-weight:800;
font-display:swap;
src:url('../fonts/inter-v20-latin-800.woff2') format('woff2');
}

/* ROBOTO SLAB */

@font-face{
font-family:'Roboto Slab';
font-style:normal;
font-weight:300;
font-display:swap;
src:url('../fonts/roboto-slab-v36-latin-300.woff2') format('woff2');
}

@font-face{
font-family:'Roboto Slab';
font-style:normal;
font-weight:400;
font-display:swap;
src:url('../fonts/roboto-slab-v36-latin-regular.woff2') format('woff2');
}

@font-face{
font-family:'Roboto Slab';
font-style:normal;
font-weight:600;
font-display:swap;
src:url('../fonts/roboto-slab-v36-latin-600.woff2') format('woff2');
}

/* =========================
   0) Tokens
   ========================= */
:root{
  --container-width: 1280px;
  --container-pad-desktop: 80px;
  --container-pad-mobile: 40px;
 
  --header-h: 80px;

  --section-space-desktop: 100px;
  --section-space-mobile: 65px;

  --color-bg: #ffffff;
  --color-title: #232228;
  --color-text: #434248;

  --color-accent: #7c43e6;
  --color-blue: #326cf0;

  --grad-main: linear-gradient(135deg,#2f63f0 0%,#326cf0 55%,#5a56ea 80%,#6f4ce8 100%);
  --grad-line: linear-gradient(90deg, #326cf0, #7c43e6);

  --radius-12: 12px;
  --radius-16: 16px;
  --radius-18: 18px;
  --radius-btn: 10px;

  --shadow-soft: 0 10px 22px rgba(24,23,28,.10), 0 2px 6px rgba(24,23,28,.06);
  --shadow-primary: 0 16px 34px rgba(50,108,240,.28), 0 6px 16px rgba(24,23,28,.12);
  --shadow-float: 0 18px 50px rgba(0,0,0,.10), 0 2px 10px rgba(0,0,0,.06);

  --font-h1: clamp(3.25rem, 4.8vw + 1rem, 5.625rem); /* 52 -> 90 */
  --font-h2: clamp(2.25rem, 2.6vw + 1rem, 3.75rem);  /* 36 -> 60 */
  --font-h3: 24px;
  --font-p: 18px;

  --weight-800: 800;
  --weight-600: 600;
  --weight-400: 400;
  --weight-300: 300;

  --lh-tight: 1.05;
  --lh-title: 1.12;
  --lh-text: 1.55;
}

/* =========================
   1) Reset / Base
   ========================= */
*,
*::before,
*::after{ box-sizing:border-box; }

html, body{ height:100%; }

body{
  margin:0;
  font-family:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  color:var(--color-text);
  background:var(--color-bg);
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}

main{ padding-top: var(--header-h); }

img, svg, video{
  display:block;
  max-width:100%;
  height:auto;
}

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

button{
  font:inherit;
  color:inherit;
  background:transparent;
  border:none;
}

p{ margin:0; }
ul, ol{ margin:0; padding:0; }

:focus-visible{
  outline: 3px solid rgba(50,108,240,0.35);
  outline-offset: 2px;
  border-radius: 10px;
}

::selection{
  background: var(--color-accent);
  color:#fff;
}

/* =========================
   2) Layout primitives
   ========================= */
.container{
  width:100%;
  max-width:var(--container-width);
  margin:0 auto;
  padding-left:var(--container-pad-desktop);
  padding-right:var(--container-pad-desktop);
}

.l-section{ margin-top: var(--section-space-desktop); }
.l-section:first-child{ margin-top: 0; }

.section--noSpace{
  margin-top: 0;
}

.section--spaceSm{
  margin-top: 40px;
}

.section--spaceLg{
  margin-top: 160px;
}

.l-stack{ display:flex; flex-direction:column; gap:18px; }

.l-grid{ display:grid; gap:32px; }
.l-grid--2{ grid-template-columns: 1fr 1fr; }
.l-grid--3{ grid-template-columns: 1fr 1fr 1fr; }

.l-twoCol{
  display:grid;
  grid-template-columns: minmax(0,1.15fr) minmax(0,0.85fr);
  gap:56px;
  align-items:start;
}
.l-twoCol__left,
.l-twoCol__right{ min-width:0; }

@media (max-width: 1024px){
  .l-grid{ gap:24px; }
}

@media (max-width: 768px){
  .container{
    padding-left:var(--container-pad-mobile);
    padding-right:var(--container-pad-mobile);
  }
  .l-section{ margin-top: var(--section-space-mobile); }
  .l-grid{ gap:18px; }
  .l-grid--2, .l-grid--3{ grid-template-columns: 1fr; }
}

@media (max-width: 900px){
  .l-twoCol{
    grid-template-columns: 1fr;
    gap:24px;
  }
}

/* =========================
   3) Typography + atoms
   ========================= */
h1, h2, h3, h4{
  margin:0;
  color:var(--color-title);
  letter-spacing:-0.02em;
}

.c-h1{
  font-size:var(--font-h1);
  font-weight:var(--weight-800);
  line-height:var(--lh-tight);
  letter-spacing:-0.03em;
  text-shadow: 0 3px 14px rgba(0,0,0,.28);
}

.c-h2{
  font-size:var(--font-h2);
  font-weight:var(--weight-800);
  line-height:var(--lh-title);
  text-shadow: 0 3px 14px rgba(0,0,0,.28);
}

/* sections accent */

.section--accent .c-h1,
.section--accent .c-h2{
  text-shadow: 0 2px 8px rgba(0,0,0,.25);
}

.c-h3{
  font-size:var(--font-h3);
  font-weight:var(--weight-600);
  color:var(--color-text);
  line-height:1.2;
  letter-spacing:-0.01em;
}

.c-text{
  font-size:var(--font-p);
  font-weight:var(--weight-400);
  line-height:var(--lh-text);
  max-width:75ch;
  text-align:justify;
}

strong{ font-weight:var(--weight-600); }

.font-ui{ font-family:"Roboto Slab", serif; }

.c-accent,
.accent{ color:var(--color-accent); }

.c-sep,
.h3-separator{
  width:46px;
  height:4px;
  margin:10px 0 28px 0;
  border-radius:4px;
  background:var(--grad-line);
}

@media (max-width: 768px){
  .c-text{ max-width:100%; }
}

@media (max-width: 750px){
  .c-text{ text-align:left; }
}

/* =========================
   4) Buttons
   ========================= */
.c-btn,
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;

  padding:14px 22px;
  border-radius:var(--radius-btn);

  font-size:16px;
  font-weight:var(--weight-600);
  cursor:pointer;
  user-select:none;

  margin: 15px 0;

  box-shadow:var(--shadow-soft);
  transition: transform .15s ease, box-shadow .2s ease, filter .2s ease, background .2s ease, border-color .2s ease;
}

.c-btn:hover,
.btn:hover{ transform: translateY(-2px); }

.c-btn:active,
.btn:active{ transform: translateY(0); }

.c-btn--primary,
.btn--primary{
  color:#fff;
  background:var(--grad-main);
  box-shadow:var(--shadow-primary);
}

.c-btn--primary:hover,
.btn--primary:hover{ filter:brightness(1.06); }

.c-btn--ghost,
.btn--ghost{
  background:#fff;
  color:var(--color-blue);
  border:2px solid var(--color-blue);
  box-shadow: 0 10px 24px rgba(50,108,240,.12), 0 2px 6px rgba(24,23,28,.05);
}

.c-btn--ghost:hover,
.btn--ghost:hover{ background:#f5f8ff; }

/* Generic SVG icon */
.icon{
  width:1em;
  height:1em;
  stroke:currentColor;
  fill:none;
  stroke-width:2;
  vertical-align:-2px;
}

@media (max-width: 768px){
  .c-btn, .btn{ padding:13px 18px; }
}

/* =========================
   5) Pin
   ========================= */
.c-pin,
.pin{
  display:inline-flex;
  align-items:center;
  gap:8px;

  font-size:13px;
  font-weight:var(--weight-300);
  letter-spacing:0.06em;
  text-transform:uppercase;

  color:var(--color-title);
  opacity:.8;
  margin-bottom:14px;
}

.c-pin::before,
.pin::before{
  content:"";
  width:10px;
  height:10px;
  border-radius:999px;
  background:var(--color-blue);
  box-shadow:0 0 0 3px rgba(50,108,240,0.14);
}

/* =========================
   6) Shared components (list / table / media)
   ========================= */

   .c-list{
    list-style:none;
    padding-left:0;
    margin-top:12px;
    color:var(--color-text);
    font-size:var(--font-p);
    line-height:1.6;
  }
  
  .c-list__item{
    position:relative;
    padding-left:18px;
  }
  
  /* carré par défaut */
  
  .c-list__item::before{
    content:"";
    position:absolute;
    left:0;
    top:0.55em;
    width:8px;
    height:8px;
    background:var(--color-blue);
    border-radius:2px;
  }
  
  
  /* VARIANT ICON */
  
  .c-list--icons .c-list__item{
    padding-left:22px;
  }
  
  .c-list--icons .c-list__item::before{
    content:"✓";
    width:auto;
    height:auto;
    background:none;
    top:0.2em;
    font-size:14px;
    color:var(--color-blue);
  }



.c-tableWrap{
  margin-top:14px;
  overflow-x:auto;
  border:1px solid rgba(50,108,240,0.35);
  border-radius:14px;
  background:#fff;
}

.c-table{
  width:100%;
  border-collapse:collapse;
  min-width: 520px;
  background:#fff;
}

.c-table th,
.c-table td{
  text-align:left;
  padding:16px 18px;
  border-bottom:1px solid rgba(50,108,240,0.18);
  font-size:15px;
  color:var(--color-text);
  vertical-align:top;
}

.c-table th{
  font-weight:var(--weight-600);
  color:#fff;
  background:var(--color-blue);
}

.c-table tr:last-child td{ border-bottom:none; }

.c-table thead th:first-child{ border-top-left-radius:14px; }
.c-table thead th:last-child{ border-top-right-radius:14px; }

.c-media{
  margin:0;
  width:min(420px,100%);
  aspect-ratio:4/3;
  border-radius:var(--radius-18);
  overflow:hidden;
  border:1px solid rgba(50,108,240,.16);
  background:rgba(255,255,255,.75);
  box-shadow:var(--shadow-float);
  transform:translateY(0);
}

.c-media__img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

@media (max-width: 1200px){
  .c-media{ width:min(380px,100%); }
}

@media (max-width: 900px){
  .c-media{
    width:100%;
    max-width:560px;
    aspect-ratio:16/9;
    border-radius:var(--radius-16);
  }
}

@media (max-width: 480px){
  .c-media{ aspect-ratio:4/3; }
}

@media (max-width: 768px){
  .c-tableWrap{ border-radius:12px; }
  .c-table th, .c-table td{ padding:14px 14px; font-size:14px; }
}

/* =========================
   7) HEADER + NAV + MOBILE MENU
   ========================= */

   .siteHeader.header{
    position:fixed;
    top:0; left:0; right:0;
    z-index:100;
  
    background: rgba(255,255,255,0.92);
    backdrop-filter: blur(10px);
  
    border-bottom: 1px solid rgba(24, 23, 28, 0.08);
  
    /* flottement */
    box-shadow:
    0 10px 30px rgba(20,20,40,.06),
    0 2px 8px rgba(20,20,40,.04);
  }
  
  .siteHeader__inner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    min-height:var(--header-h);
    gap:18px;
  }
  
  /* logo */
  
  .siteHeader__logo img{
    width:42px;
    height:42px;
  }
  
  /* nav */
  
  .siteNav.nav{
    display:flex;
    align-items:center;
    gap:30px;
  }
  
  .siteNav__link{
    position:relative;
  
    font-size:15px;
    font-weight:600;
  
    color:var(--color-title);
    opacity:0.95;
  
    padding:6px 0;
  
    transition:color .2s ease;
  }
  
  .siteNav__link:hover{
    background: linear-gradient(
      90deg,
      var(--color-blue),
      var(--color-accent)
    );
  
    -webkit-background-clip:text;
    -webkit-text-fill-color:transparent;
    background-clip:text;
  }

  /* underline */
  
  .siteNav__link::after{
    content:"";
    position:absolute;
    left:0;
    bottom:-6px;
  
    width:0;
    height:2px;
  
    background:linear-gradient(
      90deg,
      var(--color-blue),
      var(--color-accent)
    );
  
    transition:width .28s ease;
  }
  
  .siteNav__link:hover::after{
    width:100%;
  }
  
  .siteNav__link:hover{
    color:var(--color-title);
  }
  
  /* cta */
  
  .siteNav__cta{
    margin-left:10px;
    padding:10px 18px;
    font-size:15px;
    border-radius:8px;
  }
  
/* =========================
   BURGER
   ========================= */

   .siteHeader__burger{
    display:none;
    border:1px solid transparent;
    border-radius:12px;
    padding:10px 12px;
    cursor:pointer;
  
    background:
    linear-gradient(#fff,#fff) padding-box,
    linear-gradient(135deg,#326cf0,#7c43e6) border-box;
  }
  
  .header__burger-lines{
    width:22px;
    height:14px;
    display:grid;
    align-content:space-between;
  }
  
  .header__burger-lines span{
    display:block;
    height:2px;
    border-radius:999px;
  
    background:linear-gradient(135deg,#326cf0,#7c43e6);
  }
  
  /* responsive */
  
  @media (max-width:1024px){
  
    .siteNav.nav{ display:none; }
  
    .siteHeader__burger{
      display:inline-flex;
      align-items:center;
      justify-content:center;
    }
  
  }
  
  @media (max-width:768px){
  
    :root{ --header-h:74px; }
  
    main{ padding-top:var(--header-h); }
  
    .siteHeader__logo img{
      width:40px;
      height:40px;
    }
  
  }
  
  
  /* =========================
     MOBILE MENU
     ========================= */
  
  .mobileMenu{
    position:fixed;
    inset:0;
    z-index:120;
    display:none;
  }
  
  .mobileMenu.is-open{ display:block; }
  
  
  /* overlay */
  
  .mobileMenu__overlay{
    position:absolute;
    inset:0;
    background:rgba(24,23,28,0.55);
  }
  
  
  /* panel */
  
  .mobileMenu__panel{
    position:absolute;
    top:0;
    left:0;
    height:100%;
    width:clamp(320px,85vw,380px);
  
    background:
    linear-gradient(90deg,#ffffff 0%,#f7f7fb 100%);
  
    border-right:1px solid rgba(24,23,28,0.08);
  
    transform:translateX(-100%);
    transition:transform .25s cubic-bezier(.4,0,.2,1);
  
    display:flex;
    flex-direction:column;
  }
  
  .mobileMenu.is-open .mobileMenu__panel{
    transform:translateX(0);
  }
  
  
  /* top */
  
  .mobileMenu__top{
    padding:22px 20px 18px 20px;
  
    border-bottom:1px solid rgba(24,23,28,0.08);
  
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
  
    box-shadow:0 6px 18px rgba(0,0,0,.06);
  }
  
  .mobileMenu__logo img{
    width:160px;
    height:auto;
  }
  
  
  /* close button */
  
  .mobileMenu__close{
    border:1px solid transparent;
    border-radius:12px;
    width:42px;
    height:42px;
  
    display:inline-flex;
    align-items:center;
    justify-content:center;
  
    cursor:pointer;
  
    background:
    linear-gradient(#fff,#fff) padding-box,
    linear-gradient(135deg,#326cf0,#7c43e6) border-box;
  }
  
  .mobileMenu__close::before{
    content:"×";
    font-size:22px;
    line-height:1;
  
    background:linear-gradient(135deg,#326cf0,#7c43e6);
    -webkit-background-clip:text;
    -webkit-text-fill-color:transparent;
  }
  
  
  /* navigation */
  
  .mobileMenu__nav{
    padding:24px 22px;
    display:flex;
    flex-direction:column;
  }
  
  
  /* links */
  
  .mobileMenu__link{
    padding:16px 8px;
  
    font-size:18px;
    font-weight:var(--weight-600);
    color:var(--color-title);
  
    position:relative;
  }
  
  
  /* separator */
  
  .mobileMenu__link:not(:last-child){
    border-bottom:1px solid rgba(24,23,28,0.06);
  }
  
  
  /* hover */
  
  .mobileMenu__link:hover{
    color:var(--color-blue);
  }
  
  
  /* cta */
  
  .mobileMenu__cta{
    padding:28px 22px 10px 22px;
  }
  
  
  /* bottom */
  
  .mobileMenu__bottom{
    margin-top:auto;
  
    padding:20px 22px 24px 22px;
  
    border-top:1px solid rgba(24,23,28,0.08);
  
    box-shadow:0 -6px 18px rgba(0,0,0,.05);
  
    color:var(--color-text);
    font-size:13px;
    font-weight:var(--weight-300);
    line-height:1.45;
  }
  
  
  /* lock scroll */
  
  body.is-locked{
    overflow:hidden;
  }
  
  
  /* responsive */
  
  @media (max-width:768px){
  
    .mobileMenu__panel{
      width:min(380px,88vw);
    }
  
    .mobileMenu__nav{
      padding:22px 20px;
    }
  
    .mobileMenu__bottom{
      font-size:12.5px;
    }
  
  }

/* =========================
   HERO
   ========================= */

   .hero{
    position:relative;
    overflow:hidden;
    min-height:calc(100vh - var(--header-h));
    display:flex;
    align-items:center;
    background:#fff;
  }
  
  .hero__bg{
    position:absolute;
    inset:0;
    z-index:0;
  }
  
  .hero__bubble{
    position:absolute;
    border-radius:50%;
    width:460px;
    height:460px;
    opacity:.72;
    pointer-events:none;
  
    will-change:transform;
    transform:translate3d(0,0,0);
    backface-visibility:hidden;
    contain:layout paint;
  }
  
  .hb1,
  .hb3,
  .hb5{
    background:
    radial-gradient(circle at center,
    rgba(124,67,230,.44) 0%,
    rgba(124,67,230,.28) 25%,
    rgba(124,67,230,.14) 45%,
    rgba(124,67,230,.06) 60%,
    rgba(124,67,230,0) 72%);
  }
  
  .hb2,
  .hb4{
    background:
    radial-gradient(circle at center,
    rgba(50,108,240,.44) 0%,
    rgba(50,108,240,.28) 25%,
    rgba(50,108,240,.14) 45%,
    rgba(50,108,240,.06) 60%,
    rgba(50,108,240,0) 72%);
  }
  
  /* positions + variables animation */
  
  .hb1{ top:10%; left:12%; --x:120px; --y:80px; animation:heroFloat 18s ease-in-out infinite; }
  .hb2{ bottom:12%; right:10%; --x:-140px; --y:-90px; animation:heroFloat 22s ease-in-out infinite; }
  .hb3{ top:40%; left:35%; --x:90px; --y:-120px; animation:heroFloat 20s ease-in-out infinite; }
  .hb4{ top:18%; right:28%; --x:-110px; --y:110px; animation:heroFloat 24s ease-in-out infinite; }
  .hb5{ bottom:22%; left:50%; --x:70px; --y:-80px; animation:heroFloat 26s ease-in-out infinite; }
  
  /* animation unique */
  
  @keyframes heroFloat{
    0%{ transform:translate3d(0,0,0); }
    50%{ transform:translate3d(var(--x),var(--y),0); }
    100%{ transform:translate3d(0,0,0); }
  }
  
  .hero__inner{
    position:relative;
    z-index:2;
  }
  
  
  /* =========================
     HERO INNER
     ========================= */
  
  .hero--inner{
    padding-top:60px;
    padding-bottom:50px;
    min-height:40vh;
    display:flex;
    align-items:center;
  }
  
  .hero--inner .hero__inner{
    gap:14px;
  }
  
  .hero--inner .hero__h1{
    max-width:28ch;
  }

  .hero__bubble--blue{
    background:
    radial-gradient(circle at center,
    rgba(50,108,240,.44) 0%,
    rgba(50,108,240,.28) 25%,
    rgba(50,108,240,.14) 45%,
    rgba(50,108,240,.06) 60%,
    rgba(50,108,240,0) 72%);
  
    top:20%;
    right:15%;
    opacity:.72;
    --x:-80px;
    --y:60px;
    animation:heroFloat 20s ease-in-out infinite;
  }
  
  .hero__bubble--violet{
    background:
    radial-gradient(circle at center,
    rgba(124,67,230,.44) 0%,
    rgba(124,67,230,.28) 25%,
    rgba(124,67,230,.14) 45%,
    rgba(124,67,230,.06) 60%,
    rgba(124,67,230,0) 72%);
  
    bottom:10%;
    left:20%;
    opacity:.72;
    --x:70px;
    --y:-70px;
    animation:heroFloat 24s ease-in-out infinite;
  }

/* =========================
   9) SECTION 1
   ========================= */
.s1{
  position:relative;
  overflow:hidden;
  background: radial-gradient(ellipse at bottom,
    rgba(50,108,240,0.08) 0%,
    rgba(50,108,240,0.03) 35%,
    #fff 75%
  );
}

.c-stars{ position:absolute; inset:0; pointer-events:none; z-index:0; }
.s1__inner{ position:relative; z-index:1; }

.stars{ position:absolute; inset:0; pointer-events:none; z-index:0; }

.stars::before{
  content:"";
  position:absolute;
  left:0;
  top:-120%;
  width:100%;
  height:220%;
  transform:translateZ(0);
  will-change:transform;
  background-repeat:repeat;
}

.stars--1::before{
  opacity:.70;
  background-image: radial-gradient(circle, rgba(140,110,255,.40) 1px, transparent 1.6px);
  background-size:90px 90px;
  animation: starsUp 26s linear infinite;
}
.stars--2::before{
  opacity:.50;
  background-image: radial-gradient(circle, rgba(140,110,255,.28) 1.6px, transparent 2.6px);
  background-size:140px 140px;
  animation: starsUp 40s linear infinite;
}
.stars--3::before{
  opacity:.30;
  background-image: radial-gradient(circle, rgba(140,110,255,.20) 2.2px, transparent 3.4px);
  background-size:220px 220px;
  animation: starsUp 60s linear infinite;
}

@keyframes starsUp{
  from{ transform:translate3d(0,0,0); }
  to{ transform:translate3d(0,-35%,0); }
}

.s1__block{ margin-top:40px; }
.s1__block:first-child{ margin-top:0; }

/* Section 1 uses shared components */
.s1__list{ margin-top:12px; }
.s1__tableWrap{ margin-top:14px; }

@media (max-width: 768px){
  .s1__block{ margin-top:32px; }
  .c-table{ min-width: 620px; }
}

/* =========================
   10) SECTION 2
   ========================= */

/* Grid */

.s2__grid{
  margin-top:32px;

  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:28px;
}

/* Shared card surface (S2, S6, Process) */
.s2__card,
.s6__card,
.process__content{
  position:relative;
  border-radius:var(--radius-18);
  overflow:hidden;
  color:#fff;
  border:1px solid rgba(255,255,255,0.14);
  transition:transform .25s ease, box-shadow .25s ease;
  will-change:transform;
}

/* Cards */
.s2__card{
  display:flex;
  align-items:flex-end;

  padding:26px;
  min-height:160px;

  box-shadow:
    0 10px 30px rgba(15,10,40,0.10),
    0 4px 10px rgba(15,10,40,0.06);
}

/* Light overlay */

.s2__card::after,
.s6__card::after,
.process__content::after{
  content:"";
  position:absolute;
  inset:0;

  background:
    radial-gradient(
      circle at 20% 20%,
      rgba(255,255,255,0.22) 0%,
      transparent 55%
    );

  pointer-events:none;
}

/* Hover */

.s2__card:hover{
  box-shadow:
    0 20px 50px rgba(15,10,40,0.18),
    0 8px 18px rgba(15,10,40,0.10);
}

/* Content */

.s2__cardContent{
  position:relative;
  z-index:1;

  display:flex;
  flex-direction:column;
  gap:8px;
}

.s2__cardTitle,
.s6__title{
  margin:0;

  font-size:22px;
  font-weight:var(--weight-600);
  line-height:1.15;

  color:#fff;
}

.s2__cardText,
.s6__text{
  margin:0;

  font-size:15px;
  line-height:1.4;

  color:rgba(255,255,255,0.85);
  max-width:28ch;
}

/* Gradients */

.s2__card--g1,
.s6__card--g1{
  background:linear-gradient(135deg,#326cf0 0%,#7d43e6 100%);
}

.s2__card--g2,
.s6__card--g2{
  background:linear-gradient(45deg,#326cf0 0%,#7d43e6 92%);
}

.s2__card--g3,
.s6__card--g3{
  background:linear-gradient(160deg,#326cf0 0%,#7d43e6 100%);
}

.s2__card--g4{
  background:linear-gradient(320deg,#326cf0 0%,#7d43e6 100%);
}

/* Link wrapper */

.s2__cardLink{
  display:block;
}

.s2__cardLink:hover .s2__cardTitle{
  text-decoration:underline;
  text-underline-offset:6px;
}

/* Responsive */

@media (max-width:768px){

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

  .s2__card{
    padding:22px;
    min-height:140px;
  }

}

/* =========================
   11) SECTION 3
   ========================= */
.s3{ position:relative; overflow:hidden; }

.s3__block{ margin-top:56px; }
.s3__block:first-of-type{ margin-top:40px; }

.s3__right{
  display:flex;
  justify-content:flex-end;
}

.s3__list{ /* shared list */ }
.s3__tableWrap{ /* shared table */ }

@media (max-width: 900px){
  .s3__right{ justify-content:flex-start; }
}

@media (max-width: 768px){
  .s3__block{ margin-top:40px; }
}

/* S6 */

.s6__grid{
  margin-top:32px;

  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:28px;
}

/* Card */

.s6__card{
  display:flex;
  flex-direction:column;

  box-shadow:
    0 10px 30px rgba(15,10,40,0.10),
    0 4px 10px rgba(15,10,40,0.06);
}

/* Gradient backgrounds */


/* Overlay light */

.s6__card::after{
}

/* Hover */

.s6__card:hover{
  box-shadow:
    0 20px 50px rgba(15,10,40,0.18),
    0 8px 18px rgba(15,10,40,0.10);
}

/* Image */

.s6__media{
  aspect-ratio:16/10;
  overflow:hidden;
  border-radius: var(--radius-18);
}

.s6__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

/* Content */

.s6__content{
  position:relative;
  z-index:1;

  padding:26px;

  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:10px;
}

.s6__title{
  margin:0;

  font-size:22px;
  font-weight:var(--weight-600);
  line-height:1.15;

  color:#fff;
}

.s6__text{
  margin:0;

  font-size:15px;
  line-height:1.4;

  color:rgba(255,255,255,0.85);
  max-width:28ch;
}

.s6__titleLink{
  color:inherit;
  text-decoration:none;
}

.s6__titleLink:hover{
  text-decoration:underline;
  text-underline-offset:6px;
}

/* Responsive */

@media (max-width:1024px){

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

}

@media (max-width:768px){

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

  .s6__content{
    padding:22px;
  }

}

/* =========================
   PROCESS
   ========================= */

/* Layout */

.process__layout{
  display:grid;
  grid-template-columns:80px 1fr;
  gap:32px;
  margin-top:40px;
  position:relative;
}


/* Line */

.process__line{
  position:relative;
  display:flex;
  justify-content:center;
}

.process__line::before{
  content:"";
  position:absolute;
  top:8px;
  bottom:8px;
  width:4px;

  border-radius:4px;

  background:linear-gradient(
    to bottom,
    rgba(50,108,240,0.15),
    rgba(50,108,240,0.05)
  );
}

.process__line-fill{
  position:absolute;
  top:8px;
  width:4px;
  height:0%;
  background:var(--color-blue);
  border-radius:4px;
}


/* Steps */

.process__steps{
  display:flex;
  flex-direction:column;
  gap:72px;
}

.process__step{
  position:relative;
}


/* Point */

.process__point{
  position:absolute;
  left:-83px;
  top:8px;

  width:22px;
  height:22px;

  border-radius:50%;
  background:#fff;
  border:3px solid var(--color-blue);

  z-index:2;

  transition:transform .25s ease, box-shadow .25s ease;

  /* halo */
  box-shadow:
    0 0 0 4px rgba(50,108,240,0.15),
    0 0 18px rgba(50,108,240,0.25);
}

/* hover step */

.process__step:hover .process__point{
  transform:scale(1.15);
}

/* active */

.process__step.is-active .process__point{
  transform:scale(1.18);

  box-shadow:
    0 0 0 6px rgba(50,108,240,0.20),
    0 0 24px rgba(50,108,240,0.35);
}


/* Card */

.process__content{
  width:100%;

  margin-top: 0.4rem;

  padding:28px 30px;

  background:linear-gradient(135deg,#326cf0 0%,#7d43e6 100%);

  box-shadow:
    0 12px 28px rgba(10,10,40,0.12),
    0 3px 8px rgba(10,10,40,0.06);
}


/* Light overlay */

.process__content::after{
}


/* Hover */

.process__content:hover{
  box-shadow:
    0 22px 55px rgba(10,10,40,0.18),
    0 10px 22px rgba(10,10,40,0.10);
}

/* Shared hover lift for cards */
.s2__card:hover,
.s6__card:hover,
.process__content:hover{
  transform:translateY(-6px);
}


/* Typographie */

.process__content .c-h3{
  margin:0 0 23px 0;
  color:#fff;
}

.process__lead{
  font-weight:var(--weight-600);
  margin:0 0 15px 0;
  color:rgba(255,255,255,0.92);
}

.process__content .c-text{
  margin:0;
  color:rgba(255,255,255,0.88);
}

.process__titleLink{
  color:inherit;
  text-decoration:none;
}

.process__titleLink:hover{
  text-decoration:underline;
  text-underline-offset:4px;
}

.process__content .btn{
  margin-top:16px;
}


/* Responsive */

@media (max-width:768px){

  .process__layout{
    grid-template-columns:60px 1fr;
  }

  .process__point{
    left:-73px;
  }

  .process__steps{
    gap:48px;
  }

}


/* =========================
   CTA
   ========================= */

   .cta__panel{
    position:relative;
    width:100%;
    padding:72px 32px;
  
    border-radius:var(--radius-18);
    overflow:hidden;
    isolation:isolate;
  
    text-align:center;
    color:#fff;
  
    box-shadow:
    0 18px 50px rgba(15,10,40,0.18),
    0 6px 16px rgba(15,10,40,0.10);
  
    background:linear-gradient(
      135deg,
      #326cf0 0%,
      #7d43e6 100%
    );
  }
  
  /* CONTENT */
  
  .cta__content{
    position:relative;
    z-index:2;
    max-width:760px;
    margin:0 auto;
  }
  
  .cta__title{
    margin-bottom:28px;
    color:#fff;
  
    text-shadow:
    0 2px 8px rgba(0,0,0,.25);
  }
  
  /* BACKGROUND */
  
  .cta__bg{
    position:absolute;
    inset:0;
    z-index:0;
  }
  
  /* =========================
     BUBBLES
     ========================= */
  
  .cta__bubble{
    position:absolute;
    border-radius:50%;
  
    width:420px;
    height:420px;
  
    opacity:.55;
  
    will-change:transform;
  
    background:radial-gradient(
      circle,
      rgba(255,255,255,.45) 0%,
      rgba(255,255,255,.22) 40%,
      rgba(255,255,255,0) 70%
    );
  }
  
  /* POSITIONS */
  
  .b1{
    top:-120px;
    left:-120px;
    animation:float1 12s ease-in-out infinite;
  }
  
  .b2{
    bottom:-120px;
    right:-80px;
    animation:float2 14s ease-in-out infinite;
  }
  
  .b3{
    top:40%;
    left:-160px;
    animation:float3 16s ease-in-out infinite;
  }
  
  .b4{
    bottom:-100px;
    left:35%;
    animation:float4 18s ease-in-out infinite;
  }
  
  .b5{
    top:-140px;
    right:20%;
    animation:float5 20s ease-in-out infinite;
  }
  
  .b6{
    bottom:-160px;
    left:10%;
    animation:float6 22s ease-in-out infinite;
  }
  
  @keyframes float1{
    0%{ transform:translate(0,0); }
    50%{ transform:translate(200px,120px); }
    100%{ transform:translate(0,0); }
  }
  
  @keyframes float2{
    0%{ transform:translate(0,0); }
    50%{ transform:translate(-220px,-140px); }
    100%{ transform:translate(0,0); }
  }
  
  @keyframes float3{
    0%{ transform:translate(0,0); }
    50%{ transform:translate(180px,-180px); }
    100%{ transform:translate(0,0); }
  }
  
  @keyframes float4{
    0%{ transform:translate(0,0); }
    50%{ transform:translate(-160px,160px); }
    100%{ transform:translate(0,0); }
  }
  
  @keyframes float5{
    0%{ transform:translate(0,0); }
    50%{ transform:translate(-140px,140px); }
    100%{ transform:translate(0,0); }
  }
  
  @keyframes float6{
    0%{ transform:translate(0,0); }
    50%{ transform:translate(160px,-120px); }
    100%{ transform:translate(0,0); }
  }

/* =========================
   FAQ
   ========================= */

   .faq-list{
    display:flex;
    flex-direction:column;
    gap:20px;
    margin-top:40px;
  }
  
  /* ITEM */
  
  .faq-item{
    border-radius:18px;
    overflow:hidden;
  
    box-shadow: 0 10px 24px rgba(15,10,40,0.10);
    transition: box-shadow .25s ease;
  }
  
  .faq-item:hover{
    box-shadow: 0 16px 38px rgba(15,10,40,0.15);
  }
  
  /* QUESTION */
  
  .faq-question{
    list-style:none;
    cursor:pointer;
  
    padding:22px 28px;
  
    display:flex;
    align-items:center;
    justify-content:space-between;
  
    background: linear-gradient(135deg, #326cf0 0%, #7d43e6 100%);
    color:#fff;
  }
  
  .faq-question::-webkit-details-marker{
    display:none;
  }
  
  .faq-question h3{
    margin:0;
    font-size:20px;
    font-weight:600;
    color:#fff;
  }
  
  /* ICON (+ -> x) */
  
  .faq-question::after{
    content:"+";
    font-size:22px;
    font-weight:700;
    transition: transform .35s cubic-bezier(.4,0,.2,1);
  }
  
  .faq-item[open] .faq-question::after{
    transform: rotate(45deg);
  }
  
  /* ANSWER (SANS ANIMATION D’OUVERTURE) */
  
  .faq-answer{
    background:#fff;
  }
  
  .faq-answer-inner{
    padding:24px 28px 28px;
  }
  
  /* LEAD */
  
  .faq-lead{
    font-weight:600;
    margin-bottom:10px;
  }

/* =========================
   PREFooter
   ========================= */

   .prefooter-card{

    padding:70px 70px 65px;
  
    border-radius:22px;
  
    border:6px solid transparent;
  
    background:
    linear-gradient(#fff,#fff) padding-box,
    linear-gradient(135deg,#326cf0,#7c43e6) border-box;
  
    box-shadow:
    0 20px 60px rgba(0,0,0,.2);
  
    text-align:center;
  }
  
  
  /* LOGO */
  
  .prefooter-logo img{
    width:220px;
    margin:0 auto 28px;
  }
  
  
  /* TAGLINE */
  
  .prefooter-tagline{
    font-size:20px;
    max-width:760px;
    margin:0 auto 40px;
    line-height:1.5;
  }
  
  
  /* GRID */
  
  .prefooter-grid{
  
    display:grid;
  
    grid-template-columns:repeat(3,1fr);
  
    gap:20px 40px;
  
    max-width:900px;
    margin:0 auto 45px;
  
  }
  
  
  /* ITEM */
  
  .prefooter-item{
  
    display:flex;
    align-items:center;
    justify-content:center;
  
    gap:12px;
  
    font-weight:500;
    text-align:center;
  
  }
  
  
  /* ICON */
  
.prefooter-item .icon{
  font-size:18px;
  color:var(--color-blue);
}
  
  
  /* CTA */
  
  .prefooter-cta{
  
    display:flex;
    justify-content:center;
    align-items:center;
  
    gap:18px;
    flex-wrap:wrap;
  
  }
  
  
  /* =========================
     Responsive
     ========================= */
  
  @media (max-width:1024px){
  
    .prefooter-grid{
      grid-template-columns:repeat(2,1fr);
    }
  
  }
  
  @media (max-width:768px){
  
    .prefooter-card{
      padding:50px 32px;
    }
  
    .prefooter-grid{
      grid-template-columns:1fr;
    }
  
    .prefooter-logo img{
      width:180px;
    }
  
  }

/* =========================
   FOOTER
   ========================= */

   .siteFooter{
    position:relative;
    margin-top:var(--section-space-desktop);
  
    border-top:6px solid transparent;
  
    background:
    linear-gradient(#fff,#fff) padding-box,
    linear-gradient(135deg,#326cf0,#7c43e6) border-box;
  
    overflow:hidden;
  }
  
  /* subtle grid like hero */
  

  
  .siteFooter__inner{
    padding-top:60px;
    padding-bottom:40px;
    position:relative;
  }
  
  .siteFooter__cols{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:50px;
  }
  
  /* vertical divider */
  
  .siteFooter__col{
    position:relative;
  }
  
  .siteFooter__col:not(:last-child)::after{
    content:"";
    position:absolute;
    right:-25px;
    top:10px;
    bottom:10px;
    width:1px;
    background:rgba(0,0,0,.08);
  }
  
  .siteFooter__title{
    font-size:18px;
    font-weight:var(--weight-600);
    margin-bottom:18px;
    color:var(--color-title);
    position:relative;
  }
  
  .siteFooter__title::after{
    content:"";
    display:block;
    width:28px;
    height:2px;
    margin-top:8px;
    background:linear-gradient(90deg,#326cf0,#7c43e6);
  }
  
  .siteFooter__link{
    display:block;
    padding:7px 0;
    font-size:15px;
    color:var(--color-text);
    position:relative;
    transition:all .25s ease;
  }
  
  /* gradient hover */
  
  .siteFooter__link:hover{
    background:linear-gradient(135deg,#326cf0,#7c43e6);
    -webkit-background-clip:text;
    -webkit-text-fill-color:transparent;
  }
  
  /* underline animation */
  
  .siteFooter__link::after{
    content:"";
    position:absolute;
    left:0;
    bottom:3px;
    width:0;
    height:1px;
    background:linear-gradient(90deg,#326cf0,#7c43e6);
    transition:width .25s ease;
  }
  
  .siteFooter__link:hover::after{
    width:100%;
  }
  
  .siteFooter__contact{
    display:flex;
    align-items:center;
    gap:10px;
    margin-bottom:10px;
    font-size:15px;
    color:var(--color-text);
  }
  
  .siteFooter__contact .icon{
    color:var(--color-blue);
    font-size:15px;
  }

  .siteFooter__intro{
    font-size:14px;
    line-height:1.6;
    color:var(--color-text);
    margin-bottom:16px;
    max-width:260px;
  }
  
  .siteFooter__legal{
    margin-top:14px;
    font-size:13px;
    color:var(--color-text);
    opacity:.8;
    line-height:1.6;
  }
  
  .siteFooter__bottom{
    margin-top:50px;
    padding-top:20px;
    border-top:1px solid rgba(0,0,0,.08);
  }
  
  .siteFooter__copy{
    font-size:14px;
    color:var(--color-text);
  }
  
  @media (max-width:1024px){
  
    .siteFooter__cols{
      grid-template-columns:1fr 1fr;
      gap:40px;
    }
  
    .siteFooter__col::after{
      display:none;
    }
  
  }
  
  @media (max-width:768px){
  
    .siteFooter{
      margin-top:var(--section-space-mobile);
    }
  
    .siteFooter__inner{
      padding-top:40px;
    }
  
    .siteFooter__cols{
      grid-template-columns:1fr;
    }
  
  }

/* =========================
   13) Accent sections
   ========================= */

  .section--accent{
   background: linear-gradient(135deg, #326cf0 0%, #7c43e6 100%);
   color: var(--accent-text-strong-soft, rgba(255,255,255,0.92));
 
   padding-top: 70px;
   padding-bottom: 70px;

   /* Local accent tokens */
   --accent-text: rgba(255,255,255,0.90);
   --accent-text-muted: rgba(255,255,255,0.85);
   --accent-text-strong: #ffffff;
   --accent-text-strong-soft: rgba(255,255,255,0.92);

   --accent-bullet-bg: rgba(255,255,255,0.95);

   --accent-border: rgba(255,255,255,0.28);
   --accent-border-soft: rgba(255,255,255,0.20);

   --accent-table-bg: rgba(255,255,255,0.05);
   --accent-table-head-bg: rgba(255,255,255,0.18);

   --accent-pin-ring: rgba(255,255,255,0.18);

   --accent-sep-stop-1: rgba(255,255,255,0.45);
   --accent-sep-stop-2: rgba(255,255,255,0.22);
   --accent-sep-stop-3: rgba(255,255,255,0.08);

   --accent-glass-stop-1: rgba(255,255,255,0.15);
   --accent-glass-stop-2: rgba(255,255,255,0.08);
   --accent-glass-stop-3: rgba(255,255,255,0.02);
   --accent-glass-outline: rgba(255,255,255,0.25);

   --accent-overlay-soft: rgba(255,255,255,0.35);

   --accent-stars-1: rgba(255,255,255,0.26);
   --accent-stars-2: rgba(255,255,255,0.18);
   --accent-stars-3: rgba(255,255,255,0.12);

   --accent-process-line: rgba(255,255,255,0.25);
   --accent-process-ring-soft: rgba(255,255,255,0.08);
   --accent-process-ring-strong: rgba(255,255,255,0.15);
 }
  
  /* Mobile spacing */
  
  @media (max-width:768px){
    .section--accent{
      padding-top: 70px;
      padding-bottom: 70px;
    }
  }
  
  
  /* Titles */
  
  .section--accent h1,
  .section--accent h2,
  .section--accent h3{
   color:var(--accent-text-strong);
 }
  
  
  /* Paragraphs */
  
  .section--accent .c-text{
   color: var(--accent-text);
 }
  
  
  /* PIN */
  
  .section--accent .c-pin,
  .section--accent .pin{
   color: var(--accent-text-muted);
   opacity:1;
 }
  
  .section--accent .c-pin::before,
  .section--accent .pin::before{
   background:#fff;
   box-shadow:0 0 0 3px var(--accent-pin-ring);
 }
  
  
  /* H3 Separator */
  
  .section--accent .c-sep,
  .section--accent .h3-separator{
   background: linear-gradient(
     110deg,
     var(--accent-sep-stop-1) 0%,
     var(--accent-sep-stop-2) 55%,
     var(--accent-sep-stop-3) 100%
   );
 }
  
  
  /* Lists */
  
  .section--accent .c-list{
   color: var(--accent-text);
 }
 
  .section--accent .c-list__item{
   color: var(--accent-text);
 }
 
  .section--accent .c-list__item::before{
   background: var(--accent-bullet-bg);
 }

.section--accent .c-list--icons .c-list__item::before{
  position:absolute;
  left:0;
  top:0.2em;

  font-size:14px;

  color:#fff;        /* icône blanche */
  background:none;   /* supprime le carré */
  width:auto;
  height:auto;
  border-radius:0;
}

  /* Tables */
  
  .section--accent .c-tableWrap{
   border:1px solid var(--accent-border);
   background: var(--accent-table-bg);
 }
  
  .section--accent .c-table{
    background: transparent;
  }
  
  .section--accent .c-table th{
   background: var(--accent-table-head-bg);
   color:var(--accent-text-strong);
 }
  
  .section--accent .c-table td{
   color: var(--accent-text);
   border-bottom:1px solid var(--accent-border-soft);
 }
  
  
  /* Stars (already inverted but kept here for clarity) */
  
  .section--accent .stars--1::before{
   background-image: radial-gradient(circle, var(--accent-stars-1) 1px, transparent 1.6px);
 }
 
  .section--accent .stars--2::before{
   background-image: radial-gradient(circle, var(--accent-stars-2) 1.6px, transparent 2.6px);
 }
 
  .section--accent .stars--3::before{
   background-image: radial-gradient(circle, var(--accent-stars-3) 2.2px, transparent 3.4px);
 }
  
  
  /* Reduced motion */
  
  @media (prefers-reduced-motion: reduce){
    html{ scroll-behavior:auto; }
  
    .btn,
    .c-btn,
    .mobileMenu__panel,
    .s2__card,
    .s6__card,
    .process__content,
    .faq-item,
    .hero__bubble,
    .cta__bubble,
    .stars--1::before,
    .stars--2::before,
    .stars--3::before{
      transition:none !important;
      animation:none !important;
    }
  }

  /* S2 accent */

.section--accent .s2__card,
.section--accent .s2__card--g1,
.section--accent .s2__card--g2,
.section--accent .s2__card--g3,
.section--accent .s2__card--g4{

  background: linear-gradient(
    110deg,
    var(--accent-glass-stop-1) 0%,
    var(--accent-glass-stop-2) 55%,
    var(--accent-glass-stop-3) 100%
  );

  border: 1px solid var(--accent-border);

  box-shadow:
    0 10px 30px rgba(10,10,30,0.18),
    inset 0 1px 0 var(--accent-glass-outline);
}

.section--accent .s2__cardTitle{
  color: var(--accent-text-strong);
}

.section--accent .s2__cardText{
  color: var(--accent-text-strong-soft);
}

.section--accent .s2__card::after{
  background: radial-gradient(
    circle at 20% 20%,
    var(--accent-overlay-soft) 0%,
    transparent 60%
  );
}

/* S6 accent */

.section--accent .s6__card{

  background: linear-gradient(
    110deg,
    var(--accent-glass-stop-1) 0%,
    var(--accent-glass-stop-2) 55%,
    var(--accent-glass-stop-3) 100%
  );

  border: 1px solid var(--accent-border);

  box-shadow:
    0 10px 30px rgba(10,10,30,0.18),
    inset 0 1px 0 var(--accent-glass-outline);
}


/* Texte */

.section--accent .s6__title{
  color:var(--accent-text-strong);
}

.section--accent .s6__text{
  color: var(--accent-text-strong-soft);
}


/* Overlay lumière */

.section--accent .s6__card::after{
  content:"";
  position:absolute;
  inset:0;

  background: radial-gradient(
    circle at 20% 20%,
    var(--accent-overlay-soft) 0%,
    transparent 60%
  );

  pointer-events:none;
}

/* =========================
   PROCESS ACCENT
   ========================= */

/* Ligne */

.section--accent .process__line::before{
  background: var(--accent-process-line);
}

.section--accent .process__line-fill{
  background:#ffffff;
}


/* Point */

.section--accent .process__point{
  background:#c5c0f4;
  border:3px solid #ffffff;

  box-shadow:
    0 0 0 6px var(--accent-process-ring-soft);
}

.section--accent .process__step.is-active .process__point{
  box-shadow:
    0 0 0 10px var(--accent-process-ring-strong);
}


/* Bloc */

.section--accent .process__content{

  background: linear-gradient(
    110deg,
    var(--accent-glass-stop-1) 0%,
    var(--accent-glass-stop-2) 55%,
    var(--accent-glass-stop-3) 100%
  );

  border:1px solid var(--accent-border);

  box-shadow:
    0 10px 30px rgba(10,10,30,0.20),
    inset 0 1px 0 var(--accent-glass-outline);
}


/* Overlay lumière */

.section--accent .process__content::after{
  background: radial-gradient(
    circle at 20% 20%,
    var(--accent-overlay-soft) 0%,
    transparent 60%
  );
}


/* Texte */

.section--accent .process__content .c-h3{
  color:var(--accent-text-strong);
}

.section--accent .process__lead{
  color:var(--accent-text-strong-soft);
}

.section--accent .process__content .c-text{
  color:rgba(255,255,255,0.88);
}

/* Lead paragraph (SEO / IA) */
.c-lead{
  margin: 6px 0 10px 0;
  font-weight: 600;
  font-size: 1.05em;
}

/* Editorial link */
.c-link{
  position:relative;
  color:var(--color-blue);
  font-weight:400;
  text-decoration:none;
  transition:color .2s ease;
}

.c-link::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-3px;
  width:0;
  height:2px;
  background:linear-gradient(
    90deg,
    var(--color-blue),
    var(--color-accent)
  );
  transition:width .28s ease;
}

.c-link:hover{
  background:linear-gradient(
    90deg,
    var(--color-blue),
    var(--color-accent)
  );
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}

.c-link:hover::after{
  width:100%;
}

.c-link:focus{
  background:linear-gradient(
    90deg,
    var(--color-blue),
    var(--color-accent)
  );
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}

/* Editorial strong */
.c-strong{
  font-weight:600;
  color:var(--color-title);
}

.video-trigger {
  position: relative;
  cursor: pointer;
}

.video-play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 84px;
  height: 84px;
  border-radius: 50%;
  border: 2px solid transparent;
  background:
    linear-gradient(#fff, #fff) padding-box,
    linear-gradient(90deg, var(--color-blue), var(--color-accent)) border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform .2s ease, box-shadow .2s ease;
}

.video-play:hover {
  transform: translate(-50%, -50%) scale(1.06);
  box-shadow: 0 0 20px rgba(124, 67, 230, 0.4);
}

.video-play__icon {
  width: 0;
  height: 0;
  border-left: 18px solid var(--color-title);
  border-top: 12px solid transparent;
  border-bottom: 12px solid transparent;
}

.videoModal {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.75);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s ease;
  z-index: 9999;
}

.videoModal.is-open {
  opacity: 1;
  pointer-events: auto;
}

.videoModal__content {
  width: min(1100px, 92%);
  height: min(80vh, 620px);
  background: #000;
  border-radius: 12px;
  position: relative;
  overflow: hidden;
  display: flex;
}

.videoModal__iframeWrap {
  width: 100%;
  height: 100%;
}

.videoModal__iframeWrap iframe {
  width: 100%;
  height: 100%;
  border: 0;
}

.videoModal__close {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 36px;
  height: 36px;
  background: rgba(255,255,255,0.9);
  border-radius: 50%;
  border: none;
  cursor: pointer;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
}

.videoModal__close::before,
.videoModal__close::after {
  content: "";
  position: absolute;
  width: 16px;
  height: 2px;
  background: #111;
}

.videoModal__close::before {
  transform: rotate(45deg);
}

.videoModal__close::after {
  transform: rotate(-45deg);
}

body.video-lock {
  overflow: hidden;
}


