/* ==========================================================================
   DomiSpect — Variante « TERRAIN VIVANT » (tout est scopé sous .v-terrain)
   ========================================================================== */
/* Variables de marque : disponibles pour toute la page (aucune propriété de mise en page ici) */
html.theme-terrain{
  --vt-night:#04101F;
  --vt-blue:#2563EB;
  --vt-blue-lt:#8FB2FF;
  --vt-teal:#0EA5A0;
  --vt-teal-lt:#6FE3D6;
  --vt-amber:#F5B544;
  --vt-amber-lt:#FFE3B4;
  --vt-ink:#F2F7FF;
  --vt-ink-2:#C6D6EC;
  --vt-ink-3:#9BB0CC;
}
/* Mise en page du héros seulement */
.v-terrain{
  --vt-night:#04101F;
  --vt-blue:#2563EB;
  --vt-blue-lt:#8FB2FF;
  --vt-teal:#0EA5A0;
  --vt-teal-lt:#6FE3D6;
  --vt-amber:#F5B544;
  --vt-amber-lt:#FFE3B4;
  --vt-ink:#F2F7FF;
  --vt-ink-2:#C6D6EC;
  --vt-ink-3:#9BB0CC;
  position:relative;
  isolation:isolate;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  border-radius:0;
  font-family:'Manrope','Segoe UI',system-ui,-apple-system,sans-serif;
  color:var(--vt-ink);
  -webkit-font-smoothing:antialiased;
  background:
    radial-gradient(90% 62% at 82% 4%, rgba(14,165,160,.26), transparent 62%),
    radial-gradient(80% 58% at 10% -6%, rgba(37,99,235,.34), transparent 64%),
    linear-gradient(178deg,#04101F 0%,#07203A 38%,#0A2A42 62%,#0A1C24 84%,#070F13 100%);
  
}
.v-terrain *,
.v-terrain *::before,
.v-terrain *::after{box-sizing:border-box;}

/* --- texture atmosphérique : trame topographique très fine --- */
.v-terrain::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    repeating-linear-gradient(0deg, rgba(255,255,255,.05) 0 1px, transparent 1px 48px),
    repeating-linear-gradient(90deg, rgba(255,255,255,.035) 0 1px, transparent 1px 48px);
  -webkit-mask-image:radial-gradient(115% 78% at 50% -4%, #000 0%, rgba(0,0,0,.35) 46%, transparent 76%);
  mask-image:radial-gradient(115% 78% at 50% -4%, #000 0%, rgba(0,0,0,.35) 46%, transparent 76%);
}
/* --- vignetage + assise sombre --- */
.v-terrain::after{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(120% 52% at 50% 116%, rgba(3,10,8,.92), transparent 64%),
    radial-gradient(100% 100% at 50% 46%, transparent 52%, rgba(2,7,16,.6) 100%);
}

/* --- halos colorés (plan atmosphérique) --- */
.v-terrain__atmo{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;}
.v-terrain__aurora{
  position:absolute;display:block;border-radius:50%;
  filter:blur(72px);opacity:.55;
  animation:v-terrain-drift 22s ease-in-out infinite alternate;
}
.v-terrain__aurora--a{width:44%;height:52%;left:-8%;top:-18%;background:radial-gradient(circle at 40% 40%, rgba(37,99,235,.75), transparent 68%);}
.v-terrain__aurora--b{width:50%;height:56%;right:-12%;top:-24%;background:radial-gradient(circle at 60% 50%, rgba(14,165,160,.62), transparent 68%);animation-delay:-7s;}
.v-terrain__aurora--c{width:56%;height:40%;left:22%;bottom:-20%;background:radial-gradient(circle at 50% 40%, rgba(245,181,68,.3), transparent 66%);animation-delay:-13s;opacity:.42;}
.v-terrain__dust{
  position:absolute;inset:0;
  background-image:
    radial-gradient(1.4px 1.4px at 12% 18%, rgba(255,255,255,.55), transparent 60%),
    radial-gradient(1.2px 1.2px at 32% 9%, rgba(255,255,255,.4), transparent 60%),
    radial-gradient(1.6px 1.6px at 58% 22%, rgba(255,255,255,.35), transparent 60%),
    radial-gradient(1.2px 1.2px at 74% 12%, rgba(255,255,255,.5), transparent 60%),
    radial-gradient(1.4px 1.4px at 88% 26%, rgba(255,255,255,.32), transparent 60%),
    radial-gradient(1.2px 1.2px at 46% 32%, rgba(255,255,255,.28), transparent 60%);
  -webkit-mask-image:linear-gradient(180deg,#000 0%,transparent 58%);
  mask-image:linear-gradient(180deg,#000 0%,transparent 58%);
}
.v-terrain__ground{
  position:absolute;left:0;right:0;bottom:0;height:34%;z-index:0;pointer-events:none;
  background:
    repeating-linear-gradient(122deg, rgba(255,255,255,.028) 0 1px, transparent 1px 13px),
    linear-gradient(180deg, rgba(4,14,18,0) 0%, rgba(5,18,20,.55) 42%, rgba(3,11,12,.9) 100%);
  -webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 46%);
  mask-image:linear-gradient(180deg,transparent 0%,#000 46%);
}

/* ==================== bandeau réglementaire ==================== */
.v-terrain__banner{
  position:relative;z-index:3;
  border-bottom:1px solid rgba(255,255,255,.09);
  background:linear-gradient(90deg, rgba(245,181,68,.16), rgba(245,181,68,.05) 42%, rgba(14,165,160,.12));
  -webkit-backdrop-filter:blur(6px);
  backdrop-filter:blur(6px);
}
.v-terrain__banner-link{
  display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;
  padding:11px clamp(18px,4vw,56px);
  text-decoration:none;color:var(--vt-ink-2);
  font-size:13.5px;line-height:1.45;letter-spacing:-.005em;
}
.v-terrain__banner-tag{
  font-family:'IBM Plex Mono',ui-monospace,monospace;font-weight:600;
  font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  color:#0B1220;padding:4px 9px;border-radius:999px;
  background:linear-gradient(100deg,var(--vt-amber-lt),var(--vt-amber));
  box-shadow:0 6px 16px -8px rgba(245,181,68,.9);
  white-space:nowrap;
}
.v-terrain__banner-txt strong{color:#FFE9C6;font-weight:700;}
.v-terrain__banner-cta{
  color:#FFF;font-weight:700;white-space:nowrap;
  border-bottom:1px solid rgba(255,255,255,.28);padding-bottom:1px;
}
.v-terrain__banner-arrow{display:inline-block;transition:transform .25s cubic-bezier(.22,.7,.24,1);}
.v-terrain__banner-link:hover .v-terrain__banner-arrow{transform:translateX(4px);}
.v-terrain__banner-link:hover .v-terrain__banner-cta{border-bottom-color:#FFF;}

/* ==================== grille principale ==================== */
.v-terrain__inner{
  position:relative;z-index:2;flex:1 1 auto;
  display:grid;grid-template-columns:1fr;
  gap:clamp(26px,4vw,52px);
  align-items:center;align-content:center;
  padding:clamp(26px,3.2vw,42px) clamp(18px,4vw,56px) clamp(34px,4.6vw,54px);
  max-width:1320px;margin:0 auto;width:100%;
}
@media (min-width:940px){
  .v-terrain{min-height:min(740px,100vh);}
  .v-terrain__inner{grid-template-columns:1.02fr 1.06fr;}
}

/* ---------- colonne texte ---------- */
.v-terrain__copy{position:relative;max-width:640px;}
.v-terrain__eyebrow{
  display:inline-flex;align-items:center;gap:9px;margin:0 0 18px;
  padding:6px 14px 6px 10px;border-radius:999px;
  font-size:12.5px;font-weight:600;letter-spacing:.04em;
  color:#D8E7FA;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.14);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
}
.v-terrain__eyebrow-dot{
  width:8px;height:8px;border-radius:50%;
  background:linear-gradient(140deg,var(--vt-blue),var(--vt-teal));
  box-shadow:0 0 0 4px rgba(14,165,160,.18);
}
.v-terrain__title{
  margin:0 0 18px;
  font-size:clamp(2rem,.9rem + 2.4vw,3.3rem);
  line-height:1.05;font-weight:800;letter-spacing:-.032em;
  text-wrap:balance;
  text-shadow:0 12px 40px rgba(2,10,24,.55);
}
.v-terrain__hl{
  position:relative;
  background:linear-gradient(96deg,#FFE7C0 0%,#F5B544 52%,#FFD79A 100%);
  -webkit-background-clip:text;background-clip:text;
  color:transparent;-webkit-text-fill-color:transparent;
}
.v-terrain__hl::after{
  content:"";position:absolute;left:2%;right:2%;bottom:-.14em;height:.09em;border-radius:99px;
  background:linear-gradient(90deg,rgba(245,181,68,0),rgba(245,181,68,.85),rgba(245,181,68,0));
  filter:blur(.5px);
}
@supports not ((-webkit-background-clip:text) or (background-clip:text)){
  .v-terrain__hl{color:var(--vt-amber);-webkit-text-fill-color:var(--vt-amber);}
}
.v-terrain__star{color:var(--vt-ink-3);font-weight:600;}
.v-terrain__sub{
  margin:0 0 26px;max-width:56ch;
  font-size:clamp(.97rem,.9rem + .22vw,1.09rem);
  line-height:1.62;color:var(--vt-ink-2);
}
.v-terrain__actions{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 22px;}
.v-terrain__cta{
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:14px 22px;border-radius:14px;text-decoration:none;
  font-size:15px;font-weight:700;letter-spacing:-.01em;
  transition:transform .22s cubic-bezier(.22,.7,.24,1),box-shadow .22s ease,background-color .22s ease;
}
.v-terrain__cta--primary{
  color:#FFF;overflow:hidden;
  background:linear-gradient(104deg,var(--vt-blue) 0%,#1C8FD1 48%,var(--vt-teal) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.32),
    0 10px 24px -10px rgba(14,165,160,.85),
    0 22px 54px -24px rgba(37,99,235,.95);
}
.v-terrain__cta--primary::after{
  content:"";position:absolute;top:0;bottom:0;width:38%;left:-45%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.42),transparent);
  transform:skewX(-18deg);
  animation:v-terrain-sheen 6.5s ease-in-out 2.4s infinite;
}
.v-terrain__cta--primary:hover{transform:translateY(-2px);box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 14px 30px -10px rgba(14,165,160,.95),0 28px 64px -24px rgba(37,99,235,1);}
.v-terrain__cta--ghost{
  color:#EAF2FF;border:1px solid transparent;
  background:
    linear-gradient(rgba(255,255,255,.06),rgba(255,255,255,.03)) padding-box,
    linear-gradient(120deg,rgba(255,255,255,.4),rgba(255,255,255,.08) 45%,rgba(14,165,160,.55)) border-box;
}
.v-terrain__cta--ghost:hover{transform:translateY(-2px);background:linear-gradient(rgba(255,255,255,.12),rgba(255,255,255,.05)) padding-box,linear-gradient(120deg,rgba(255,255,255,.7),rgba(255,255,255,.18) 45%,rgba(14,165,160,.9)) border-box;}
.v-terrain__proofs{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin:0 0 14px;
  font-size:12.8px;font-weight:600;color:#DCE9F8;
}
.v-terrain__chip{
  padding:6px 11px;border-radius:9px;
  background:rgba(255,255,255,.055);
  border:1px solid rgba(255,255,255,.11);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.09);
  white-space:nowrap;
}
.v-terrain__sep{color:rgba(111,227,214,.7);font-weight:700;}
.v-terrain__note{
  margin:0;max-width:52ch;
  font-size:11.6px;line-height:1.55;color:var(--vt-ink-3);
}

/* ==================== scène ==================== */
.v-terrain__stage{position:relative;}
.v-terrain__frame{position:relative;}
.v-terrain__scene{position:relative;z-index:1;display:block;width:100%;height:auto;overflow:visible;}
.v-terrain__scene-glow{
  position:absolute;left:8%;right:8%;top:24%;height:52%;z-index:0;
  background:radial-gradient(60% 60% at 50% 60%, rgba(37,99,235,.42), transparent 70%);
  filter:blur(38px);
}

/* --- étiquette plantée sur la maison --- */
.v-terrain__pin{
  position:absolute;right:0;top:55%;z-index:4;
  display:inline-flex;align-items:center;gap:7px;
  padding:6px 11px;border-radius:10px;
  font-size:11.5px;font-weight:700;letter-spacing:.01em;color:#FFF3DC;
  background:linear-gradient(180deg,rgba(38,26,10,.92),rgba(24,18,8,.9));
  border:1px solid rgba(245,181,68,.5);
  box-shadow:0 12px 26px -14px rgba(0,0,0,.95), inset 0 1px 0 rgba(255,255,255,.12);
  white-space:nowrap;
}
.v-terrain__pin-dot{
  width:7px;height:7px;border-radius:50%;background:var(--vt-amber);
  box-shadow:0 0 0 3px rgba(245,181,68,.22);
  animation:v-terrain-blink 2.6s ease-in-out infinite;
}

/* ==================== carte produit (premier plan) ==================== */
.v-terrain__card{
  position:absolute;left:-8%;top:1%;width:66%;min-width:270px;max-width:400px;z-index:5;
  padding:14px 15px 15px;border-radius:18px;
  border:1px solid transparent;
  background:
    linear-gradient(168deg, rgba(12,32,54,.94), rgba(7,20,36,.93)) padding-box,
    linear-gradient(150deg, rgba(255,255,255,.42), rgba(255,255,255,.06) 46%, rgba(14,165,160,.5)) border-box;
  -webkit-backdrop-filter:blur(14px) saturate(1.2);
  backdrop-filter:blur(14px) saturate(1.2);
  box-shadow:
    0 2px 0 rgba(255,255,255,.06) inset,
    0 28px 60px -28px rgba(2,8,20,.95),
    0 60px 120px -60px rgba(0,0,0,1);
  animation:v-terrain-float 11s ease-in-out 1.4s infinite;
  transition:box-shadow .3s ease;
  overflow:hidden;
}
.v-terrain__card:hover{
  box-shadow:0 2px 0 rgba(255,255,255,.09) inset,0 34px 70px -28px rgba(2,8,20,1),0 0 0 1px rgba(111,227,214,.18);
}
.v-terrain__card::after{
  content:"";position:absolute;top:-60%;left:-70%;width:55%;height:220%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.1),transparent);
  transform:translateX(0) rotate(12deg);pointer-events:none;
  animation:v-terrain-glide 9s ease-in-out 3.2s infinite;
}
.v-terrain__card-head{
  display:flex;align-items:center;gap:9px;
  padding-bottom:10px;margin-bottom:11px;
  border-bottom:1px solid rgba(255,255,255,.1);
}
.v-terrain__rec{
  width:8px;height:8px;border-radius:50%;background:#FF6B6B;flex:none;
  box-shadow:0 0 0 3px rgba(255,107,107,.2);
  animation:v-terrain-blink 1.9s ease-in-out infinite;
}
.v-terrain__card-label{
  font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#CFE0F5;
}
.v-terrain__wave{display:flex;align-items:center;gap:2.5px;height:16px;margin-left:auto;}
.v-terrain__wave i{
  display:block;width:2.5px;height:30%;border-radius:2px;
  background:linear-gradient(180deg,var(--vt-teal-lt),var(--vt-blue-lt));
  animation:v-terrain-wave 1.15s ease-in-out infinite;
}
.v-terrain__wave i:nth-child(1){animation-delay:0s}
.v-terrain__wave i:nth-child(2){animation-delay:.09s}
.v-terrain__wave i:nth-child(3){animation-delay:.18s}
.v-terrain__wave i:nth-child(4){animation-delay:.27s}
.v-terrain__wave i:nth-child(5){animation-delay:.36s}
.v-terrain__wave i:nth-child(6){animation-delay:.45s}
.v-terrain__wave i:nth-child(7){animation-delay:.54s}
.v-terrain__time{
  font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11px;color:#9FD9D2;letter-spacing:.04em;
}
.v-terrain__quote{
  margin:0 0 12px;font-size:12.6px;line-height:1.5;color:#D9E7F8;font-style:italic;
  padding-left:10px;border-left:2px solid rgba(111,227,214,.55);
}
.v-terrain__body{display:grid;grid-template-columns:1fr 74px;gap:12px;align-items:start;}
.v-terrain__fields{list-style:none;margin:0;padding:0;display:grid;gap:7px;}
.v-terrain__f{opacity:0;transform:translateY(6px);animation:v-terrain-rise .5s cubic-bezier(.2,.7,.25,1) forwards;}
.v-terrain__f:nth-child(1){animation-delay:.65s}
.v-terrain__f:nth-child(2){animation-delay:.85s}
.v-terrain__f:nth-child(3){animation-delay:1.05s}
.v-terrain__f:nth-child(4){animation-delay:1.25s}
.v-terrain__f:nth-child(5){animation-delay:1.45s}
.v-terrain__fk{
  display:block;font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:8.8px;font-weight:600;letter-spacing:.13em;color:#7FA6C9;margin-bottom:1px;
}
.v-terrain__fv{
  display:block;font-size:12.4px;font-weight:600;color:#F0F6FF;line-height:1.3;
  clip-path:inset(0 100% 0 0);
  animation:v-terrain-reveal .55s cubic-bezier(.35,.9,.3,1) forwards;
}
.v-terrain__f:nth-child(1) .v-terrain__fv{animation-delay:.72s}
.v-terrain__f:nth-child(2) .v-terrain__fv{animation-delay:.92s}
.v-terrain__f:nth-child(3) .v-terrain__fv{animation-delay:1.12s}
.v-terrain__f:nth-child(4) .v-terrain__fv{animation-delay:1.32s}
.v-terrain__f:nth-child(5) .v-terrain__fv{animation-delay:1.52s}
.v-terrain__fv--warn{color:#FFD79A;}
.v-terrain__fv--warn::before{
  content:"";display:inline-block;width:6px;height:6px;border-radius:50%;
  background:var(--vt-amber);margin-right:6px;vertical-align:middle;
  box-shadow:0 0 0 3px rgba(245,181,68,.18);
}
/* --- vignette photo dessinée en CSS (aucune image) --- */
.v-terrain__photo{
  position:relative;margin:0;width:74px;height:88px;border-radius:10px;overflow:hidden;
  border:1px solid rgba(255,255,255,.18);
  background:
    radial-gradient(1.4px 1.4px at 22% 30%, rgba(0,0,0,.28), transparent 60%),
    radial-gradient(1.6px 1.6px at 62% 62%, rgba(0,0,0,.24), transparent 60%),
    radial-gradient(1.2px 1.2px at 78% 22%, rgba(255,255,255,.22), transparent 60%),
    radial-gradient(1.5px 1.5px at 38% 78%, rgba(255,255,255,.16), transparent 60%),
    linear-gradient(168deg,#8A9099 0%,#6C747E 46%,#4A525C 100%);
  box-shadow:0 12px 24px -14px rgba(0,0,0,.9);
}
.v-terrain__photo::before{
  content:"";position:absolute;left:46%;top:8%;width:2px;height:78%;
  background:linear-gradient(180deg,rgba(20,24,30,.15),rgba(15,18,24,.95) 40%,rgba(20,24,30,.3));
  transform:rotate(6deg) skewX(-3deg);
  box-shadow:1px 0 2px rgba(255,255,255,.14);
}
.v-terrain__photo::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(200deg,rgba(255,255,255,.16),transparent 46%),linear-gradient(0deg,rgba(0,0,0,.4),transparent 52%);
}
.v-terrain__photo-tag{
  position:absolute;left:5px;bottom:5px;z-index:2;
  font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:8px;letter-spacing:.06em;
  color:#F2F7FF;padding:2px 5px;border-radius:5px;background:rgba(6,14,26,.72);
}
.v-terrain__card-foot{
  display:flex;align-items:center;gap:10px;margin-top:13px;padding-top:11px;
  border-top:1px solid rgba(255,255,255,.1);
}
.v-terrain__prog{font-size:11.5px;font-weight:700;color:#DCE9F8;white-space:nowrap;}
.v-terrain__bar{
  flex:1;height:6px;border-radius:99px;overflow:hidden;
  background:rgba(255,255,255,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.45);
}
.v-terrain__bar i{
  display:block;height:100%;width:0;border-radius:99px;
  background:linear-gradient(90deg,var(--vt-blue),#1C8FD1 55%,var(--vt-teal-lt));
  box-shadow:0 0 12px rgba(14,165,160,.7);
  animation:v-terrain-fill 1.5s cubic-bezier(.2,.75,.25,1) 1.55s forwards;
}
/* --- pastille Review AI --- */
.v-terrain__ai{
  position:absolute;right:-1%;top:8%;z-index:6;
  display:inline-flex;align-items:center;gap:8px;
  padding:9px 14px;border-radius:12px;
  font-size:12px;font-weight:700;color:#E9FFFB;
  border:1px solid transparent;
  background:
    linear-gradient(160deg,rgba(6,38,44,.95),rgba(6,24,38,.95)) padding-box,
    linear-gradient(130deg,rgba(111,227,214,.85),rgba(37,99,235,.5)) border-box;
  box-shadow:0 18px 40px -20px rgba(0,0,0,.95),0 0 30px -14px rgba(14,165,160,.9);
  animation:v-terrain-float 13s ease-in-out .6s infinite reverse;
}
.v-terrain__ai-mark{
  position:relative;width:16px;height:16px;border-radius:50%;flex:none;
  background:linear-gradient(140deg,var(--vt-teal-lt),var(--vt-blue));
}
.v-terrain__ai-mark::before{
  content:"";position:absolute;left:4.5px;top:7px;width:4px;height:2px;border-radius:1px;
  background:#04212A;transform:rotate(45deg);
}
.v-terrain__ai-mark::after{
  content:"";position:absolute;left:6.5px;top:4.5px;width:7px;height:2px;border-radius:1px;
  background:#04212A;transform:rotate(-48deg);
}
.v-terrain__ai-halo{
  position:absolute;inset:-6px;border-radius:16px;pointer-events:none;
  box-shadow:0 0 0 1px rgba(111,227,214,.28);
  animation:v-terrain-halo 3.4s ease-out infinite;
}

/* ==================== entrées échelonnées ==================== */
.v-terrain__rise{opacity:0;transform:translateY(14px);animation:v-terrain-rise .72s cubic-bezier(.2,.7,.25,1) forwards;}
.v-terrain__rise--1{animation-delay:.05s}
.v-terrain__rise--2{animation-delay:.14s}
.v-terrain__rise--3{animation-delay:.23s}
.v-terrain__rise--4{animation-delay:.32s}
.v-terrain__rise--5{animation-delay:.41s}
.v-terrain__rise--6{animation-delay:.5s}
.v-terrain__stage{opacity:0;transform:translateY(20px) scale(.985);animation:v-terrain-rise .95s cubic-bezier(.2,.7,.25,1) .2s forwards;}

/* ==================== keyframes (préfixées) ==================== */
@keyframes v-terrain-rise{to{opacity:1;transform:translateY(0) scale(1);}}
@keyframes v-terrain-reveal{to{clip-path:inset(0 0 0 0);}}
@keyframes v-terrain-fill{to{width:82%;}}
@keyframes v-terrain-float{
  0%,100%{transform:translate3d(0,0,0);}
  50%{transform:translate3d(0,-9px,0);}
}
@keyframes v-terrain-drift{
  0%{transform:translate3d(0,0,0) scale(1);}
  100%{transform:translate3d(3%,4%,0) scale(1.12);}
}
@keyframes v-terrain-wave{
  0%,100%{height:24%;}
  50%{height:96%;}
}
@keyframes v-terrain-blink{
  0%,100%{opacity:1;}
  50%{opacity:.32;}
}
@keyframes v-terrain-halo{
  0%{opacity:.8;transform:scale(.96);}
  70%{opacity:0;transform:scale(1.12);}
  100%{opacity:0;transform:scale(1.12);}
}
@keyframes v-terrain-sheen{
  0%{transform:translateX(0) skewX(-18deg);opacity:0;}
  8%{opacity:1;}
  26%{transform:translateX(420%) skewX(-18deg);opacity:0;}
  100%{transform:translateX(420%) skewX(-18deg);opacity:0;}
}
@keyframes v-terrain-glide{
  0%{transform:translateX(0) rotate(12deg);opacity:0;}
  10%{opacity:1;}
  38%{transform:translateX(330%) rotate(12deg);opacity:0;}
  100%{transform:translateX(330%) rotate(12deg);opacity:0;}
}
@keyframes v-terrain-ping{
  0%{transform:scale(.5);opacity:.85;}
  80%{transform:scale(1.9);opacity:0;}
  100%{transform:scale(1.9);opacity:0;}
}
@keyframes v-terrain-dash{to{stroke-dashoffset:-24;}}
@keyframes v-terrain-lamp{0%,100%{opacity:.85;}50%{opacity:1;}}

/* --- animations dans le SVG --- */
.v-terrain .vt-ring{transform-origin:340px 316px;animation:v-terrain-ping 2.8s cubic-bezier(.2,.6,.3,1) infinite;}
.v-terrain .vt-ring--2{animation-delay:.9s;}
.v-terrain .vt-leader{stroke-dasharray:6 6;animation:v-terrain-dash 1.6s linear infinite;}
.v-terrain .vt-lamp{animation:v-terrain-lamp 6s ease-in-out infinite;}

/* ==================== responsive ==================== */
@media (max-width:939px){
  .v-terrain{border-radius:20px;}
  .v-terrain__stage{margin-top:2px;display:flex;flex-direction:column;align-items:center;}
  .v-terrain__frame{width:100%;max-width:520px;margin:0 auto;}
  .v-terrain__card{
    position:static;width:min(420px,100%);max-width:420px;
    margin:-15% auto 0;animation:none;
  }
  .v-terrain__ai{
    position:static;margin:14px auto 0;display:inline-flex;
    width:-moz-fit-content;width:fit-content;animation:none;
  }
  .v-terrain__pin{top:52%;right:2%;}
}
@media (max-width:430px){
  .v-terrain__banner-link{font-size:12.6px;padding:10px 18px;}
  .v-terrain__actions{gap:10px;}
  .v-terrain__cta{width:100%;}
  .v-terrain__body{grid-template-columns:1fr 64px;}
  .v-terrain__photo{width:64px;height:82px;}
  .v-terrain__card{margin-top:-22%;}
  .v-terrain__pin{font-size:10.5px;padding:5px 9px;}
}

/* ==================== mouvement réduit ==================== */
@media (prefers-reduced-motion:reduce){
  .v-terrain *,
  .v-terrain *::before,
  .v-terrain *::after{
    animation:none !important;
    transition-duration:.01ms !important;
  }
  .v-terrain__rise,
  .v-terrain__stage,
  .v-terrain__f{opacity:1 !important;transform:none !important;}
  .v-terrain__fv{clip-path:none !important;}
  .v-terrain__bar i{width:82% !important;}
  .v-terrain__wave i{height:58% !important;}
  .v-terrain .vt-ring{opacity:.3 !important;}
}

/* ==========================================================================
   TERRAIN VIVANT — couche de page (au-dessus du héros .v-terrain)
   Rebasage de l'en-tête/pied partagés + coquille commune des sections
   + mécaniques transversales (bascule RBQ, bascule tarifs).
   ========================================================================== */

html.theme-terrain { background: #04101F; }
html.theme-terrain body {
  background: #04101F;
  color: var(--vt-ink-2);
  font-family: 'Manrope', 'Segoe UI', system-ui, -apple-system, sans-serif;
  -webkit-font-smoothing: antialiased;
}
html.theme-terrain main { display: block; }
html.theme-terrain .site-header {
  background: rgba(4, 16, 31, .82);
  -webkit-backdrop-filter: blur(16px) saturate(140%);
  backdrop-filter: blur(16px) saturate(140%);
  border-bottom: 1px solid rgba(255, 255, 255, .08);
}
html.theme-terrain .site-header .logo,
html.theme-terrain .site-header nav a,
html.theme-terrain .site-header .nav-link,
html.theme-terrain .site-header button { color: #EAF2FF; }
html.theme-terrain .site-header nav a:hover { color: var(--vt-teal-lt); }
html.theme-terrain .site-header .dropdown,
html.theme-terrain .site-header .dropdown-menu,
html.theme-terrain .nav-panel {
  background: rgba(7, 25, 45, .97);
  border: 1px solid rgba(255, 255, 255, .12);
  box-shadow: 0 30px 70px -30px rgba(0, 0, 0, .9);
}
html.theme-terrain .site-header .dropdown a { color: var(--vt-ink-2); }
html.theme-terrain .topbar {
  background: linear-gradient(100deg, var(--vt-blue), var(--vt-teal));
  color: #fff;
}
html.theme-terrain .topbar a { color: #fff; }
html.theme-terrain .site-footer {
  background: #030B14;
  border-top: 1px solid rgba(255, 255, 255, .08);
}

/* ---------- Coquille commune des sections ---------- */
.ds-sect {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(72px, 8vw, 110px) clamp(20px, 4vw, 40px);
  color: var(--vt-ink);
  font-family: 'Manrope', 'Segoe UI', system-ui, sans-serif;
}
.ds-sect > * { position: relative; z-index: 1; }
.ds-wrap { max-width: 1200px; margin-inline: auto; }
.ds-narrow { max-width: 820px; margin-inline: auto; }

/* Titres et sur-titres communs */
.ds-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin: 0 0 16px;
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--vt-teal-lt);
}
.ds-eyebrow::before {
  content: "";
  width: 22px; height: 1px;
  background: linear-gradient(90deg, transparent, var(--vt-teal));
}
.ds-h2 {
  margin: 0 0 18px;
  font-size: clamp(1.75rem, .9rem + 2vw, 2.85rem);
  line-height: 1.08;
  font-weight: 800;
  letter-spacing: -.03em;
  color: var(--vt-ink);
  text-wrap: balance;
  text-shadow: 0 12px 40px rgba(2, 10, 24, .55);
}
.ds-lead {
  margin: 0 0 22px;
  max-width: 62ch;
  font-size: clamp(1rem, .95rem + .2vw, 1.12rem);
  line-height: 1.62;
  color: var(--vt-ink-2);
}
.ds-mono {
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 11.5px;
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--vt-ink-3);
}
.ds-note { font-size: 11.6px; line-height: 1.55; color: var(--vt-ink-3); margin: 0; }

/* Boutons communs */
.ds-cta {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 22px;
  border-radius: 14px;
  text-decoration: none;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: -.01em;
  transition: transform .22s cubic-bezier(.22, .7, .24, 1), box-shadow .22s ease, background-color .22s ease;
}
.ds-cta--primary {
  color: #fff;
  background: linear-gradient(104deg, var(--vt-blue) 0%, #1C8FD1 48%, var(--vt-teal) 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .32), 0 10px 24px -10px rgba(14, 165, 160, .85), 0 22px 54px -24px rgba(37, 99, 235, .95);
}
.ds-cta--primary:hover { transform: translateY(-2px); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .4), 0 14px 30px -10px rgba(14, 165, 160, .95), 0 28px 64px -24px rgba(37, 99, 235, 1); }
.ds-cta--ghost {
  color: #EAF2FF;
  border: 1px solid transparent;
  background:
    linear-gradient(rgba(255, 255, 255, .06), rgba(255, 255, 255, .03)) padding-box,
    linear-gradient(120deg, rgba(255, 255, 255, .4), rgba(255, 255, 255, .08) 45%, rgba(14, 165, 160, .55)) border-box;
}
.ds-cta--ghost:hover { transform: translateY(-2px); }
.ds-cta--teal { background: var(--vt-teal); color: #04101F; box-shadow: 0 12px 30px -12px rgba(14, 165, 160, .9); }
.ds-cta--teal:hover { transform: translateY(-2px); }
.ds-link {
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 12.5px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--vt-teal-lt);
  text-decoration: none;
  border-bottom: 1px solid rgba(111, 227, 214, .35);
  padding-bottom: 2px;
}
.ds-link:hover { color: #fff; border-bottom-color: rgba(255, 255, 255, .7); }

/* Carte de verre commune */
.ds-card {
  background: rgba(255, 255, 255, .045);
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 18px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 30px 70px -46px rgba(0, 0, 0, .95);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.ds-card:hover { transform: translateY(-2px); border-color: rgba(111, 227, 214, .34); }

/* Révélation au défilement (piloté par IntersectionObserver) */
[data-anime] .ds-reveal { opacity: 0; transform: translateY(16px); }
[data-anime].est-visible .ds-reveal {
  animation: dsv-reveal .8s cubic-bezier(.2, .7, .25, 1) forwards;
  animation-delay: calc(var(--i, 0) * .09s);
}
@keyframes dsv-reveal { to { opacity: 1; transform: translateY(0); } }

/* ---------- Bandeau RBQ collé sous l'en-tête ---------- */
.bandeau-rbq {
  display: block;
  text-align: center;
  padding: 10px 20px;
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 12px;
  letter-spacing: .04em;
  color: var(--vt-amber-lt);
  text-decoration: none;
  background: linear-gradient(180deg, rgba(245, 181, 68, .12), rgba(245, 181, 68, .05));
  border-bottom: 1px solid rgba(245, 181, 68, .22);
}
.bandeau-rbq:hover { color: #fff; background: linear-gradient(180deg, rgba(245, 181, 68, .2), rgba(245, 181, 68, .08)); }
.bandeau-rbq strong { color: #fff; }
.point-rbq {
  display: inline-block;
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--vt-amber);
  margin-right: 10px;
  vertical-align: 1px;
  box-shadow: 0 0 0 4px rgba(245, 181, 68, .18);
  animation: dsv-pulse 2s infinite;
}
[data-phase="obligatoire"] .point-rbq { background: var(--vt-teal); animation: none; }
@keyframes dsv-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }

/* Bascule des 3 états réglementaires */
.msg-transitoire, .msg-entre-deux, .msg-obligatoire { display: none; }
html:not([data-phase]) .msg-transitoire { display: inline; }
[data-phase="transitoire"] .msg-transitoire { display: inline; }
[data-phase="entre-deux"] .msg-entre-deux { display: inline; }
[data-phase="obligatoire"] .msg-obligatoire { display: inline; }
.bandeau-court { display: none; }
@media (max-width: 640px) {
  .bandeau-long { display: none; }
  .bandeau-court { display: inline; }
}
.vous-etes-ici { display: none; }
[data-phase="transitoire"] .seg-2 .vous-etes-ici,
[data-phase="entre-deux"] .seg-3 .vous-etes-ici,
[data-phase="obligatoire"] .seg-3 .vous-etes-ici,
html:not([data-phase]) .seg-2 .vous-etes-ici { display: inline-flex; }
.rbq-chute { display: none; }
[data-phase="obligatoire"] .rbq-compteur-zone { display: none; }
[data-phase="obligatoire"] .rbq-chute { display: block; }

/* Anneau de progression du compte à rebours */
.anneau-jxxx {
  width: 108px; height: 108px;
  border-radius: 50%;
  background: conic-gradient(var(--vt-amber) var(--prog, 240deg), rgba(255, 255, 255, .12) 0);
  display: grid;
  place-items: center;
  flex: none;
}
.anneau-jxxx::before {
  content: "";
  grid-area: 1/1;
  width: 88px; height: 88px;
  border-radius: 50%;
  background: #061626;
}
.anneau-jxxx .jval, .anneau-jxxx .anneau-val {
  grid-area: 1/1;
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 1rem;
  font-weight: 600;
  color: #fff;
}

/* ---------- Bascule des tarifs ---------- */
.bascule-periode {
  display: inline-flex;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 999px;
  overflow: hidden;
  background: rgba(255, 255, 255, .04);
}
.bascule-periode button {
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 12px;
  letter-spacing: .1em;
  text-transform: uppercase;
  background: transparent;
  color: var(--vt-ink-2);
  border: 0;
  padding: 11px 20px;
  cursor: pointer;
  transition: background .2s ease, color .2s ease;
}
.bascule-periode button[aria-pressed="true"] {
  background: linear-gradient(104deg, var(--vt-blue), var(--vt-teal));
  color: #fff;
}
.prix-annuel, .mention-annuel { display: none; }
[data-periode="annuel"] .prix-mensuel { display: none; }
[data-periode="annuel"] .prix-annuel { display: inline; }
[data-periode="annuel"] .mention-annuel { display: block; }

/* ---------- Séparateur lumineux entre sections ---------- */
.ds-sect + .ds-sect::before {
  content: "";
  position: absolute;
  top: 0; left: 50%;
  transform: translateX(-50%);
  width: min(1100px, 90%);
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(111, 227, 214, .3), rgba(143, 178, 255, .25), transparent);
  z-index: 2;
}

@media (prefers-reduced-motion: reduce) {
  html.theme-terrain *, html.theme-terrain *::before, html.theme-terrain *::after {
    animation: none !important;
    transition: none !important;
  }
  [data-anime] .ds-reveal { opacity: 1; transform: none; }
}


/* =====================================================================
   SECTION 1 — .ds-sect--soiree  (ambiance chaude : la lampe du soir)
   ===================================================================== */
.ds-sect--soiree{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  font-family:'Manrope',system-ui,-apple-system,sans-serif;
  color:var(--vt-ink);
  padding:clamp(72px,8vw,110px) clamp(20px,4vw,40px);
  background:
    radial-gradient(130% 78% at 76% 14%, rgba(245,181,68,.22), transparent 62%),
    radial-gradient(100% 70% at 8% 92%, rgba(245,181,68,.11), transparent 66%),
    radial-gradient(80% 60% at 46% 4%, rgba(14,165,160,.07), transparent 72%),
    linear-gradient(178deg,#04101F 0%,#0A1C24 48%,#0A1614 78%,#04101F 100%);
}
.ds-sect--soiree::before{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background:linear-gradient(90deg,rgba(255,255,255,.028) 1px,transparent 1px) 0 0/44px 44px;
  -webkit-mask-image:radial-gradient(70% 55% at 50% 40%,#000,transparent 78%);
          mask-image:radial-gradient(70% 55% at 50% 40%,#000,transparent 78%);
  opacity:.5;
}
.ds-sect--soiree .soiree-atmo{position:absolute;inset:0;z-index:0;pointer-events:none;}
.ds-sect--soiree .soiree-halo{position:absolute;border-radius:50%;filter:blur(60px);}
.ds-sect--soiree .soiree-halo--chaud{
  width:min(720px,90vw);aspect-ratio:1;right:-14%;top:-16%;
  background:radial-gradient(circle,rgba(245,181,68,.26),rgba(245,181,68,0) 65%);
  animation:dsv-respire 11s ease-in-out infinite;
}
.ds-sect--soiree .soiree-halo--froid{
  width:min(560px,80vw);aspect-ratio:1;left:-16%;bottom:-22%;
  background:radial-gradient(circle,rgba(14,165,160,.16),rgba(14,165,160,0) 68%);
}
.ds-sect--soiree .soiree-grain{
  position:absolute;inset:0;opacity:.5;
  background:radial-gradient(circle at 50% 100%,rgba(4,16,31,.85),transparent 60%);
}
.ds-sect--soiree .soiree-wrap{
  position:relative;z-index:1;max-width:1200px;margin-inline:auto;
}
.ds-sect--soiree .soiree-haut{
  display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:clamp(28px,4.5vw,60px);align-items:center;
}
.ds-sect--soiree .soiree-kicker,
.ds-sect--soiree .soiree-cap,
.ds-sect--soiree .frise-titre,
.ds-sect--soiree .frise-etiq,
.ds-sect--soiree .frise-heures,
.ds-sect--soiree .frise-duree,
.ds-sect--soiree .frise-echelle span{
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  text-transform:uppercase;letter-spacing:.1em;font-weight:500;
}
.ds-sect--soiree .soiree-kicker{
  font-size:clamp(11px,1.1vw,13px);color:var(--vt-amber);
  display:inline-flex;align-items:center;gap:12px;margin:0 0 18px;
}
.ds-sect--soiree .soiree-kicker::before{
  content:"";width:34px;height:1px;flex:none;
  background:linear-gradient(90deg,rgba(245,181,68,0),var(--vt-amber));
}
.ds-sect--soiree .soiree-titre{
  margin:0 0 20px;font-weight:800;letter-spacing:-.022em;
  font-size:clamp(1.85rem,4.6vw,3.15rem);line-height:1.08;
  color:var(--vt-ink);
  text-shadow:0 0 46px rgba(245,181,68,.18);
}
.ds-sect--soiree .soiree-para{
  margin:0;max-width:56ch;color:var(--vt-ink-2);
  font-size:clamp(1rem,1.35vw,1.09rem);line-height:1.72;font-weight:400;
}
.ds-sect--soiree .soiree-scene{
  position:relative;margin:0;border-radius:20px;overflow:hidden;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.04);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 40px 90px -50px rgba(0,0,0,.9),0 0 90px -30px rgba(245,181,68,.35);
}
.ds-sect--soiree .soiree-svg{display:block;width:100%;height:auto;}
.ds-sect--soiree .soiree-scene::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(60% 50% at 54% 40%,rgba(245,181,68,.14),transparent 70%);
  animation:dsv-vacille 6.5s ease-in-out infinite;
}
.ds-sect--soiree .soiree-cap{
  position:absolute;left:14px;bottom:12px;z-index:2;margin:0;
  font-size:11px;color:var(--vt-amber-lt);
  padding:6px 10px;border-radius:999px;
  background:rgba(4,16,31,.62);border:1px solid rgba(255,227,180,.22);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
}
/* frise de journée */
.ds-sect--soiree .soiree-frise{
  margin-top:clamp(38px,5vw,58px);padding:clamp(20px,2.6vw,30px);
  border-radius:20px;
  border:1px solid rgba(255,255,255,.11);
  background:rgba(255,255,255,.045);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 40px 90px -50px rgba(0,0,0,.9);
}
.ds-sect--soiree .frise-titre{
  margin:0 0 20px;font-size:11px;color:var(--vt-ink-3);
}
.ds-sect--soiree .frise-rail{
  position:relative;height:86px;
}
.ds-sect--soiree .frise-piste{
  position:absolute;left:0;right:0;top:50%;height:2px;transform:translateY(-50%);
  background:linear-gradient(90deg,rgba(255,255,255,.04),rgba(255,255,255,.14),rgba(255,255,255,.04));
  border-radius:2px;
}
.ds-sect--soiree .frise-bloc{
  position:absolute;top:50%;transform:translateY(-50%);
  left:var(--d);width:var(--w);min-height:60px;
  border-radius:12px;padding:10px 12px;
  display:flex;flex-direction:column;justify-content:center;gap:4px;
  overflow:hidden;
  transform-origin:left center;
  animation:dsv-remplir 1.1s cubic-bezier(.22,.8,.3,1) both;
}
.ds-sect--soiree .frise-bloc--insp{
  background:linear-gradient(120deg,rgba(14,165,160,.34),rgba(37,99,235,.26));
  border:1px solid rgba(111,227,214,.34);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
  animation-delay:.1s;
}
.ds-sect--soiree .frise-bloc--red{
  border:1px solid rgba(245,181,68,.45);
  background:
    repeating-linear-gradient(-45deg,rgba(245,181,68,.32) 0 6px,rgba(245,181,68,.08) 6px 13px),
    linear-gradient(180deg,rgba(245,181,68,.14),rgba(245,181,68,.05));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 0 42px -8px rgba(245,181,68,.5);
  animation-delay:.45s;
}
.ds-sect--soiree .frise-etiq{font-size:11px;color:var(--vt-ink);}
.ds-sect--soiree .frise-bloc--insp .frise-etiq{color:var(--vt-teal-lt);}
.ds-sect--soiree .frise-bloc--red .frise-etiq{color:var(--vt-amber-lt);}
.ds-sect--soiree .frise-heures{font-size:11px;color:var(--vt-ink-3);}
.ds-sect--soiree .frise-duree{
  position:absolute;top:-14px;right:8px;
  font-size:11px;font-weight:600;color:#1A0F00;
  background:linear-gradient(180deg,#FFE3B4,#F5B544);
  padding:4px 9px;border-radius:999px;
  box-shadow:0 8px 22px -8px rgba(245,181,68,.9);
  white-space:nowrap;
}
.ds-sect--soiree .frise-echelle{
  display:flex;justify-content:space-between;margin-top:12px;
  font-size:11px;color:var(--vt-ink-3);opacity:.8;
}
/* phrase forte */
.ds-sect--soiree .soiree-punch{
  margin:clamp(34px,4.6vw,52px) auto 0;max-width:24ch;text-align:center;
  font-size:clamp(1.3rem,3.2vw,2.05rem);line-height:1.28;font-weight:700;
  letter-spacing:-.015em;
  background:linear-gradient(100deg,var(--vt-amber-lt),#FFF6E6 45%,var(--vt-amber));
  -webkit-background-clip:text;background-clip:text;color:transparent;
  text-wrap:balance;
  position:relative;padding-top:34px;
}
.ds-sect--soiree .soiree-punch::before{
  content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:1px;height:22px;
  background:linear-gradient(180deg,rgba(245,181,68,0),var(--vt-amber));
}
/* entrées */
.ds-sect--soiree .soiree-kicker,
.ds-sect--soiree .soiree-titre,
.ds-sect--soiree .soiree-para,
.ds-sect--soiree .soiree-scene,
.ds-sect--soiree .soiree-frise,
.ds-sect--soiree .soiree-punch{
  animation:dsv-monte .85s cubic-bezier(.22,.8,.3,1) both;
  animation-delay:calc(var(--n,0) * 95ms);
}
@media (max-width:960px){
  .ds-sect--soiree .soiree-haut{grid-template-columns:1fr;}
  .ds-sect--soiree .soiree-para{max-width:none;}
}
@media (max-width:640px){
  .ds-sect--soiree .frise-rail{height:auto;display:flex;flex-direction:column;gap:12px;}
  .ds-sect--soiree .frise-piste{display:none;}
  .ds-sect--soiree .frise-bloc{
    position:static;transform:none;left:auto;width:auto;min-height:0;
    padding:14px 14px 12px;
  }
  .ds-sect--soiree .frise-duree{position:static;align-self:flex-start;margin-bottom:6px;}
  .ds-sect--soiree .frise-echelle{display:none;}
}
@media (max-width:400px){
  .ds-sect--soiree .soiree-cap{display:none;}
  .ds-sect--soiree .soiree-punch{max-width:none;}
}

/* =====================================================================
   SECTION 2 — .ds-sect--rbq  (ambiance froide et grave)
   ===================================================================== */
.ds-sect--rbq{
  position:relative;isolation:isolate;overflow:hidden;
  font-family:'Manrope',system-ui,-apple-system,sans-serif;
  color:var(--vt-ink);
  padding:clamp(72px,8vw,110px) clamp(20px,4vw,40px);
  background:
    radial-gradient(120% 80% at 50% -8%, rgba(37,99,235,.34), transparent 60%),
    radial-gradient(90% 70% at 88% 78%, rgba(14,165,160,.18), transparent 66%),
    radial-gradient(70% 60% at 6% 96%, rgba(245,181,68,.09), transparent 70%),
    linear-gradient(180deg,#04101F 0%,#07203A 42%,#0A2A42 72%,#04101F 100%);
}
.ds-sect--rbq .rbq-atmo{position:absolute;inset:0;z-index:0;pointer-events:none;}
.ds-sect--rbq .rbq-halo{position:absolute;border-radius:50%;filter:blur(70px);}
.ds-sect--rbq .rbq-halo--bleu{
  width:min(820px,105vw);aspect-ratio:1;left:50%;top:-42%;transform:translateX(-50%);
  background:radial-gradient(circle,rgba(37,99,235,.30),rgba(37,99,235,0) 62%);
  animation:dsv-respire 13s ease-in-out infinite;
}
.ds-sect--rbq .rbq-halo--teal{
  width:min(520px,80vw);aspect-ratio:1;right:-12%;bottom:-16%;
  background:radial-gradient(circle,rgba(14,165,160,.24),rgba(14,165,160,0) 66%);
}
.ds-sect--rbq .rbq-quadri{
  position:absolute;inset:0;
  background:
    linear-gradient(rgba(143,178,255,.07) 1px,transparent 1px) 0 0/64px 64px,
    linear-gradient(90deg,rgba(143,178,255,.07) 1px,transparent 1px) 0 0/64px 64px;
  -webkit-mask-image:radial-gradient(75% 60% at 50% 30%,#000,transparent 80%);
          mask-image:radial-gradient(75% 60% at 50% 30%,#000,transparent 80%);
}
.ds-sect--rbq .rbq-wrap{position:relative;z-index:1;max-width:1200px;margin-inline:auto;}
.ds-sect--rbq .rbq-kicker,
.ds-sect--rbq .rbq-date-tag,
.ds-sect--rbq .rbq-date-num,
.ds-sect--rbq .anneau-val,
.ds-sect--rbq .anneau-leg,
.ds-sect--rbq .rbq-note,
.ds-sect--rbq .chute-tag{
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  text-transform:uppercase;letter-spacing:.1em;font-weight:500;
}
.ds-sect--rbq .rbq-kicker{
  margin:0 0 18px;font-size:clamp(11px,1.1vw,13px);color:var(--vt-teal-lt);
  display:inline-flex;align-items:center;gap:10px;
  padding:7px 14px;border-radius:999px;
  border:1px solid rgba(111,227,214,.28);
  background:rgba(14,165,160,.12);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10);
}
.ds-sect--rbq .rbq-kicker::before{
  content:"";width:7px;height:7px;border-radius:50%;flex:none;
  background:var(--vt-teal-lt);box-shadow:0 0 12px var(--vt-teal-lt);
  animation:dsv-pouls 2.6s ease-in-out infinite;
}
.ds-sect--rbq .rbq-titre{
  margin:0 0 clamp(34px,4.6vw,54px);font-weight:800;letter-spacing:-.024em;
  font-size:clamp(1.9rem,4.8vw,3.3rem);line-height:1.06;max-width:20ch;
  text-wrap:balance;
}
/* dates monumentales */
.ds-sect--rbq .rbq-dates{
  display:grid;grid-template-columns:1fr auto 1fr;align-items:stretch;
  gap:clamp(14px,2vw,26px);
}
.ds-sect--rbq .rbq-date{
  position:relative;border-radius:20px;overflow:hidden;
  padding:clamp(20px,2.8vw,32px) clamp(18px,2.6vw,30px);
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.05);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 40px 90px -50px rgba(0,0,0,.9);
  transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease;
}
.ds-sect--rbq .rbq-date::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(90% 120% at 12% 0%,rgba(143,178,255,.16),transparent 62%);
}
.ds-sect--rbq .rbq-date--b::before{
  background:radial-gradient(90% 120% at 12% 0%,rgba(111,227,214,.16),transparent 62%);
}
.ds-sect--rbq .rbq-date:hover{
  transform:translateY(-2px);
  border-color:rgba(255,255,255,.2);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 46px 100px -50px rgba(0,0,0,.95);
}
.ds-sect--rbq .rbq-date-tag{
  position:relative;display:block;font-size:11px;color:var(--vt-ink-3);margin-bottom:14px;
}
.ds-sect--rbq .rbq-date-num{
  position:relative;display:block;font-weight:600;letter-spacing:.02em;
  font-size:clamp(1.55rem,6.2vw,5rem);line-height:.98;
  background:linear-gradient(160deg,#FFFFFF,var(--vt-blue-lt) 60%,#7FA6FF);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  text-shadow:0 0 60px rgba(37,99,235,.35);
  overflow-wrap:break-word;
}
.ds-sect--rbq .rbq-date--b .rbq-date-num{
  background:linear-gradient(160deg,#FFFFFF,var(--vt-teal-lt) 60%,#3FCFC0);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.ds-sect--rbq .rbq-date-note{
  position:relative;display:block;margin-top:16px;
  font-size:clamp(.92rem,1.3vw,1.02rem);color:var(--vt-ink-2);font-weight:500;
}
.ds-sect--rbq .rbq-connecteur{
  position:relative;display:flex;align-items:center;justify-content:center;width:clamp(34px,4vw,64px);
}
.ds-sect--rbq .conn-ligne{
  position:absolute;left:0;right:0;height:1px;
  background:linear-gradient(90deg,rgba(143,178,255,.05),rgba(143,178,255,.55),rgba(111,227,214,.05));
}
.ds-sect--rbq .conn-losange{
  position:relative;width:11px;height:11px;transform:rotate(45deg);
  background:linear-gradient(135deg,var(--vt-blue-lt),var(--vt-teal-lt));
  box-shadow:0 0 20px rgba(143,178,255,.75);
  animation:dsv-pouls 3.4s ease-in-out infinite;
}
/* compteur + textes */
.ds-sect--rbq .rbq-corps{
  margin-top:clamp(30px,4vw,48px);
  display:grid;grid-template-columns:auto minmax(0,1fr);
  gap:clamp(24px,3.4vw,48px);align-items:center;
}
.ds-sect--rbq .rbq-compteur{display:flex;flex-direction:column;align-items:center;gap:14px;}
.ds-sect--rbq .anneau-jxxx{
  position:relative;display:grid;place-items:center;
  width:clamp(148px,20vw,196px);aspect-ratio:1;border-radius:50%;
}
.ds-sect--rbq .anneau-jxxx::before{
  content:"";position:absolute;inset:0;border-radius:50%;z-index:0;
  background:conic-gradient(from -90deg,
      var(--vt-teal-lt) 0deg,
      var(--vt-teal) calc(var(--prog,240deg) * .62),
      var(--vt-blue) var(--prog,240deg),
      rgba(255,255,255,.07) var(--prog,240deg) 360deg);
  -webkit-mask:radial-gradient(circle,transparent 0 63%,#000 64% 100%);
          mask:radial-gradient(circle,transparent 0 63%,#000 64% 100%);
  filter:drop-shadow(0 0 18px rgba(14,165,160,.5));
}
.ds-sect--rbq .anneau-jxxx::after{
  content:"";position:absolute;inset:14%;border-radius:50%;z-index:0;
  background:radial-gradient(circle,rgba(14,165,160,.26),rgba(14,165,160,0) 72%);
  animation:dsv-respire 5.5s ease-in-out infinite;
}
.ds-sect--rbq .anneau-val{
  position:relative;z-index:1;font-weight:600;letter-spacing:.02em;
  font-size:clamp(1.5rem,3.4vw,2.1rem);color:var(--vt-ink);
  text-shadow:0 0 30px rgba(111,227,214,.4);
}
.ds-sect--rbq .anneau-leg{
  margin:0;font-size:11px;color:var(--vt-ink-3);text-align:center;max-width:22ch;line-height:1.7;
}
.ds-sect--rbq .rbq-textes{display:grid;gap:18px;}
.ds-sect--rbq .rbq-para{
  margin:0;color:var(--vt-ink-2);
  font-size:clamp(.98rem,1.3vw,1.06rem);line-height:1.74;
}
.ds-sect--rbq .rbq-para--ds{
  position:relative;padding-left:18px;color:var(--vt-ink);
}
.ds-sect--rbq .rbq-para--ds::before{
  content:"";position:absolute;left:0;top:4px;bottom:4px;width:2px;border-radius:2px;
  background:linear-gradient(180deg,var(--vt-teal-lt),rgba(14,165,160,0));
}
/* frise à 3 segments */
.ds-sect--rbq .rbq-frise{
  margin-top:clamp(34px,4.4vw,54px);
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(12px,1.8vw,22px);
}
.ds-sect--rbq .seg{
  position:relative;border-radius:16px;
  padding:clamp(16px,2vw,22px);
  font-size:clamp(.9rem,1.2vw,.98rem);line-height:1.55;font-weight:600;
  color:var(--vt-ink-2);
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.04);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 30px 70px -50px rgba(0,0,0,.9);
  transition:transform .35s ease,border-color .35s ease;
}
.ds-sect--rbq .seg:hover{transform:translateY(-2px);}
.ds-sect--rbq .seg::before{
  content:"";position:absolute;left:clamp(16px,2vw,22px);right:clamp(16px,2vw,22px);top:0;height:2px;
  border-radius:0 0 3px 3px;
}
.ds-sect--rbq .seg::after{
  content:"";position:absolute;right:calc(-1 * clamp(12px,1.8vw,22px) / 2 - 4px);top:50%;
  width:8px;height:8px;border-right:1.5px solid rgba(255,255,255,.28);
  border-top:1.5px solid rgba(255,255,255,.28);
  transform:translateY(-50%) rotate(45deg);
}
.ds-sect--rbq .seg-3::after{display:none;}
.ds-sect--rbq .seg-1{opacity:.72;}
.ds-sect--rbq .seg-1::before{background:linear-gradient(90deg,rgba(155,176,204,.5),rgba(155,176,204,.05));}
.ds-sect--rbq .seg-2{
  color:var(--vt-ink);
  border-color:rgba(245,181,68,.38);
  background:linear-gradient(180deg,rgba(245,181,68,.12),rgba(245,181,68,.04));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 30px 70px -46px rgba(245,181,68,.75);
}
.ds-sect--rbq .seg-2::before{background:linear-gradient(90deg,var(--vt-amber),rgba(245,181,68,.05));}
.ds-sect--rbq .seg-3::before{background:linear-gradient(90deg,var(--vt-teal-lt),rgba(14,165,160,.05));}
.ds-sect--rbq .vous-etes-ici{display:none;}
/* bloc de chute (affiché par un CSS externe) */
.ds-sect--rbq .rbq-chute{
  display:none;
  margin-top:26px;padding:20px 22px;border-radius:18px;
  border:1px solid rgba(111,227,214,.34);
  background:linear-gradient(180deg,rgba(14,165,160,.14),rgba(14,165,160,.05));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 34px 80px -52px rgba(0,0,0,.9);
}
.ds-sect--rbq .chute-tag{
  display:inline-block;font-size:11px;color:var(--vt-teal-lt);margin-bottom:10px;
}
.ds-sect--rbq .rbq-chute p{margin:0;color:var(--vt-ink);line-height:1.7;font-size:1rem;}
/* pied : CTA + note */
.ds-sect--rbq .rbq-pied{
  margin-top:clamp(32px,4vw,46px);
  display:flex;flex-wrap:wrap;align-items:center;gap:clamp(18px,3vw,34px);
}
.ds-sect--rbq .rbq-cta{
  flex:none;display:inline-flex;align-items:center;gap:12px;
  padding:15px 26px;border-radius:999px;text-decoration:none;
  font-weight:700;font-size:1rem;color:#031018;
  background:linear-gradient(120deg,var(--vt-teal-lt),var(--vt-teal) 55%,var(--vt-blue));
  box-shadow:0 20px 50px -22px rgba(14,165,160,.95),inset 0 1px 0 rgba(255,255,255,.4);
  transition:transform .3s ease,box-shadow .3s ease,filter .3s ease;
}
.ds-sect--rbq .rbq-cta svg{width:20px;height:20px;transition:transform .3s ease;}
.ds-sect--rbq .rbq-cta:hover{
  transform:translateY(-2px);filter:brightness(1.06);
  box-shadow:0 26px 60px -24px rgba(14,165,160,1),inset 0 1px 0 rgba(255,255,255,.5);
}
.ds-sect--rbq .rbq-cta:hover svg{transform:translateX(3px);}
.ds-sect--rbq .rbq-cta:focus-visible{outline:2px solid var(--vt-teal-lt);outline-offset:4px;}
.ds-sect--rbq .rbq-note{
  flex:1 1 320px;margin:0;font-size:11px;line-height:2;color:var(--vt-ink-3);
  padding-left:18px;border-left:1px solid rgba(255,255,255,.12);
}
/* entrées */
.ds-sect--rbq .rbq-kicker,
.ds-sect--rbq .rbq-titre,
.ds-sect--rbq .rbq-dates,
.ds-sect--rbq .rbq-compteur,
.ds-sect--rbq .rbq-para,
.ds-sect--rbq .rbq-frise,
.ds-sect--rbq .rbq-pied{
  animation:dsv-monte .85s cubic-bezier(.22,.8,.3,1) both;
  animation-delay:calc(var(--n,0) * 85ms);
}
@media (max-width:900px){
  .ds-sect--rbq .rbq-dates{grid-template-columns:1fr;}
  .ds-sect--rbq .rbq-connecteur{width:auto;height:46px;}
  .ds-sect--rbq .conn-ligne{
    left:50%;right:auto;top:0;bottom:0;height:auto;width:1px;transform:translateX(-50%);
    background:linear-gradient(180deg,rgba(143,178,255,.05),rgba(143,178,255,.55),rgba(111,227,214,.05));
  }
  .ds-sect--rbq .rbq-corps{grid-template-columns:1fr;justify-items:center;}
  .ds-sect--rbq .rbq-textes{justify-items:start;}
  .ds-sect--rbq .rbq-frise{grid-template-columns:1fr;}
  .ds-sect--rbq .seg::after{
    right:auto;left:50%;top:auto;bottom:calc(-1 * clamp(12px,1.8vw,22px) / 2 - 4px);
    transform:translateX(-50%) rotate(135deg);
  }
  .ds-sect--rbq .rbq-note{padding-left:0;border-left:0;padding-top:14px;border-top:1px solid rgba(255,255,255,.12);}
}
@media (max-width:420px){
  .ds-sect--rbq .rbq-quadri{opacity:.35;}
  .ds-sect--rbq .rbq-cta{width:100%;justify-content:center;}
}

/* =====================================================================
   SECTION 3 — .ds-sect--dictee  (ambiance sarcelle : le moment « aha »)
   ===================================================================== */
.ds-sect--dictee{
  position:relative;isolation:isolate;overflow:hidden;
  font-family:'Manrope',system-ui,-apple-system,sans-serif;
  color:var(--vt-ink);
  padding:clamp(72px,8vw,110px) clamp(20px,4vw,40px);
  background:
    radial-gradient(110% 76% at 18% 10%, rgba(14,165,160,.30), transparent 62%),
    radial-gradient(95% 70% at 86% 88%, rgba(37,99,235,.24), transparent 66%),
    radial-gradient(60% 46% at 62% 32%, rgba(245,181,68,.10), transparent 70%),
    linear-gradient(180deg,#04101F 0%,#0A1C24 40%,#0A2A42 74%,#04101F 100%);
}
.ds-sect--dictee .dictee-atmo{position:absolute;inset:0;z-index:0;pointer-events:none;}
.ds-sect--dictee .dictee-halo{position:absolute;border-radius:50%;filter:blur(66px);}
.ds-sect--dictee .dictee-halo--teal{
  width:min(640px,92vw);aspect-ratio:1;left:-14%;top:-18%;
  background:radial-gradient(circle,rgba(14,165,160,.30),rgba(14,165,160,0) 64%);
  animation:dsv-respire 12s ease-in-out infinite;
}
.ds-sect--dictee .dictee-halo--bleu{
  width:min(600px,88vw);aspect-ratio:1;right:-16%;bottom:-20%;
  background:radial-gradient(circle,rgba(37,99,235,.26),rgba(37,99,235,0) 66%);
}
.ds-sect--dictee .dictee-halo--ambre{
  width:min(340px,60vw);aspect-ratio:1;left:52%;top:46%;
  background:radial-gradient(circle,rgba(245,181,68,.18),rgba(245,181,68,0) 68%);
}
.ds-sect--dictee .dictee-wrap{position:relative;z-index:1;max-width:1200px;margin-inline:auto;}
.ds-sect--dictee .dictee-kicker,
.ds-sect--dictee .volet-tag,
.ds-sect--dictee .volet-meta,
.ds-sect--dictee .obs-champs dt,
.ds-sect--dictee .obs-photo figcaption,
.ds-sect--dictee .review-txt{
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  text-transform:uppercase;letter-spacing:.1em;font-weight:500;
}
.ds-sect--dictee .dictee-tete{max-width:64ch;}
.ds-sect--dictee .dictee-kicker{
  margin:0 0 18px;font-size:clamp(11px,1.1vw,13px);color:var(--vt-teal-lt);
  display:inline-flex;align-items:center;gap:12px;
}
.ds-sect--dictee .dictee-kicker::before{
  content:"";width:34px;height:1px;flex:none;
  background:linear-gradient(90deg,rgba(111,227,214,0),var(--vt-teal-lt));
}
.ds-sect--dictee .dictee-titre{
  margin:0 0 18px;font-weight:800;letter-spacing:-.024em;
  font-size:clamp(1.9rem,4.7vw,3.2rem);line-height:1.07;
}
.ds-sect--dictee .dictee-mot{
  position:relative;font-style:normal;font-weight:800;
  background:linear-gradient(100deg,var(--vt-teal-lt),#B7F5EC 45%,var(--vt-teal));
  -webkit-background-clip:text;background-clip:text;color:transparent;
  text-shadow:0 0 50px rgba(111,227,214,.35);
}
.ds-sect--dictee .dictee-mot::after{
  content:"";position:absolute;left:0;right:0;bottom:-.12em;height:3px;border-radius:3px;
  background:linear-gradient(90deg,rgba(111,227,214,.12),var(--vt-teal-lt),rgba(111,227,214,.12));
  box-shadow:0 0 18px rgba(111,227,214,.7);
}
.ds-sect--dictee .dictee-para{
  margin:0;color:var(--vt-ink-2);
  font-size:clamp(1rem,1.35vw,1.09rem);line-height:1.74;
}
.ds-sect--dictee .dictee-volets{
  margin-top:clamp(38px,5vw,60px);
  display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  gap:clamp(16px,2.4vw,30px);align-items:center;
}
.ds-sect--dictee .volet{
  position:relative;border-radius:20px;overflow:hidden;
  padding:clamp(20px,2.6vw,30px);
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.05);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 40px 90px -50px rgba(0,0,0,.9);
  transition:transform .35s ease,border-color .35s ease;
}
.ds-sect--dictee .volet:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.2);}
.ds-sect--dictee .volet--in::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(80% 70% at 10% 0%,rgba(143,178,255,.14),transparent 60%);
}
.ds-sect--dictee .volet--out::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(80% 70% at 90% 0%,rgba(111,227,214,.16),transparent 60%);
}
.ds-sect--dictee .volet-tag{
  position:relative;margin:0 0 18px;font-size:11px;color:var(--vt-ink-3);
  display:flex;align-items:center;gap:9px;
}
.ds-sect--dictee .volet-tag::before{
  content:"";width:7px;height:7px;border-radius:50%;flex:none;
  background:var(--vt-blue-lt);box-shadow:0 0 12px var(--vt-blue-lt);
}
.ds-sect--dictee .volet-tag--out::before{background:var(--vt-teal-lt);box-shadow:0 0 12px var(--vt-teal-lt);}
.ds-sect--dictee .micro{
  position:relative;width:42px;height:42px;border-radius:14px;display:grid;place-items:center;
  color:var(--vt-blue-lt);
  background:linear-gradient(180deg,rgba(143,178,255,.18),rgba(37,99,235,.08));
  border:1px solid rgba(143,178,255,.28);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 0 34px -10px rgba(37,99,235,.9);
  margin-bottom:18px;
}
.ds-sect--dictee .micro svg{width:22px;height:22px;}
.ds-sect--dictee .onde{
  position:relative;display:flex;align-items:center;gap:4px;height:64px;margin-bottom:18px;
}
.ds-sect--dictee .onde span{
  flex:1 1 0;min-width:2px;border-radius:999px;
  background:linear-gradient(180deg,var(--vt-teal-lt),var(--vt-blue));
  height:22%;
  transform-origin:center;
  animation:dsv-onde 1.25s ease-in-out infinite;
  animation-delay:calc(var(--i,0) * -95ms);
  box-shadow:0 0 12px -3px rgba(111,227,214,.8);
}
.ds-sect--dictee .volet-cite{
  position:relative;margin:0 0 16px;
  font-size:clamp(1rem,1.7vw,1.18rem);line-height:1.6;font-weight:600;
  color:var(--vt-ink);
  padding:16px 18px;border-radius:14px;
  background:rgba(4,16,31,.5);
  border:1px solid rgba(255,255,255,.10);
}
.ds-sect--dictee .volet-meta{position:relative;margin:0;font-size:11px;color:var(--vt-ink-3);}
/* faisceau */
.ds-sect--dictee .dictee-faisceau{
  position:relative;display:flex;align-items:center;justify-content:center;
  width:clamp(46px,6vw,92px);height:60px;
}
.ds-sect--dictee .faisceau-ligne{
  position:absolute;left:0;right:0;top:50%;height:2px;transform:translateY(-50%);border-radius:2px;
  background:linear-gradient(90deg,rgba(143,178,255,.05),rgba(111,227,214,.8),rgba(111,227,214,.05));
  box-shadow:0 0 26px rgba(111,227,214,.55);
}
.ds-sect--dictee .faisceau-point{
  position:absolute;top:50%;left:0;width:8px;height:8px;border-radius:50%;
  background:#FFFFFF;box-shadow:0 0 18px 3px rgba(111,227,214,.95);
  transform:translate(-50%,-50%);
  animation:dsv-file 2.6s cubic-bezier(.55,0,.45,1) infinite;
}
.ds-sect--dictee .faisceau-fleche{
  position:relative;display:grid;place-items:center;
  width:34px;height:34px;border-radius:50%;color:#03151A;
  background:linear-gradient(140deg,var(--vt-teal-lt),var(--vt-teal));
  box-shadow:0 0 30px -6px rgba(111,227,214,.95),inset 0 1px 0 rgba(255,255,255,.5);
}
.ds-sect--dictee .faisceau-fleche svg{width:18px;height:18px;}
/* volet sortie */
.ds-sect--dictee .obs-champs{position:relative;margin:0 0 18px;display:grid;gap:8px;}
.ds-sect--dictee .obs-l{
  display:grid;grid-template-columns:minmax(96px,.42fr) minmax(0,1fr);
  gap:10px;align-items:baseline;
  padding:10px 12px;border-radius:12px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
  animation:dsv-cascade .6s cubic-bezier(.22,.8,.3,1) both;
  animation-delay:calc(400ms + var(--k,0) * 180ms);
}
.ds-sect--dictee .obs-champs dt{margin:0;font-size:11px;color:var(--vt-ink-3);}
.ds-sect--dictee .obs-champs dd{
  margin:0;font-size:clamp(.92rem,1.25vw,1rem);font-weight:600;color:var(--vt-ink);line-height:1.45;
}
.ds-sect--dictee .obs-alerte{color:var(--vt-amber-lt) !important;}
.ds-sect--dictee .obs-alerte::before{
  content:"";display:inline-block;width:7px;height:7px;border-radius:50%;
  margin-right:8px;vertical-align:middle;
  background:var(--vt-amber);box-shadow:0 0 12px var(--vt-amber);
}
.ds-sect--dictee .obs-bas{
  position:relative;display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  padding-top:16px;border-top:1px solid rgba(255,255,255,.10);
}
.ds-sect--dictee .obs-photo{margin:0;flex:none;width:112px;}
.ds-sect--dictee .obs-photo svg{
  display:block;width:100%;height:auto;border-radius:10px;
  box-shadow:0 20px 40px -26px rgba(0,0,0,.95);
}
.ds-sect--dictee .obs-photo figcaption{
  margin-top:8px;font-size:11px;color:var(--vt-ink-3);
}
.ds-sect--dictee .obs-review{
  margin:0;display:flex;align-items:center;gap:10px;
  padding:10px 14px;border-radius:999px;
  background:rgba(14,165,160,.12);
  border:1px solid rgba(111,227,214,.3);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
}
.ds-sect--dictee .review-coche{
  display:grid;place-items:center;flex:none;width:22px;height:22px;border-radius:50%;
  color:#03151A;background:linear-gradient(140deg,var(--vt-teal-lt),var(--vt-teal));
  box-shadow:0 0 18px -4px rgba(111,227,214,.95);
}
.ds-sect--dictee .review-coche svg{width:14px;height:14px;}
.ds-sect--dictee .review-txt{font-size:11px;color:var(--vt-teal-lt);}
/* entrées */
.ds-sect--dictee .dictee-kicker,
.ds-sect--dictee .dictee-titre,
.ds-sect--dictee .dictee-para,
.ds-sect--dictee .volet{
  animation:dsv-monte .85s cubic-bezier(.22,.8,.3,1) both;
  animation-delay:calc(var(--n,0) * 95ms);
}
@media (max-width:900px){
  .ds-sect--dictee .dictee-volets{grid-template-columns:1fr;}
  .ds-sect--dictee .dictee-faisceau{width:auto;height:56px;justify-self:center;}
  .ds-sect--dictee .faisceau-ligne{
    left:50%;right:auto;top:0;bottom:0;width:2px;height:auto;transform:translateX(-50%);
    background:linear-gradient(180deg,rgba(143,178,255,.05),rgba(111,227,214,.8),rgba(111,227,214,.05));
  }
  .ds-sect--dictee .faisceau-fleche{transform:rotate(90deg);}
  .ds-sect--dictee .faisceau-point{
    left:50%;top:0;transform:translate(-50%,-50%);
    animation-name:dsv-file-v;
  }
}
@media (max-width:420px){
  .ds-sect--dictee .obs-l{grid-template-columns:1fr;gap:2px;}
  .ds-sect--dictee .dictee-halo--ambre{display:none;}
  .ds-sect--dictee .obs-photo{width:96px;}
}

/* =====================================================================
   KEYFRAMES PARTAGÉS (préfixe dsv-)
   ===================================================================== */
@keyframes dsv-monte{
  from{opacity:0;transform:translateY(22px);}
  to{opacity:1;transform:translateY(0);}
}
@keyframes dsv-cascade{
  from{opacity:0;transform:translateY(10px) scale(.985);}
  to{opacity:1;transform:translateY(0) scale(1);}
}
@keyframes dsv-remplir{
  from{opacity:0;transform:translateY(-50%) scaleX(.02);}
  to{opacity:1;transform:translateY(-50%) scaleX(1);}
}
@keyframes dsv-respire{
  0%,100%{opacity:.75;transform:scale(1);}
  50%{opacity:1;transform:scale(1.06);}
}
@keyframes dsv-vacille{
  0%,100%{opacity:.72;}
  42%{opacity:1;}
  60%{opacity:.85;}
}
@keyframes dsv-pouls{
  0%,100%{opacity:.55;transform:scale(1);}
  50%{opacity:1;transform:scale(1.18);}
}
@keyframes dsv-onde{
  0%,100%{height:18%;opacity:.55;}
  50%{height:92%;opacity:1;}
}
@keyframes dsv-file{
  0%{left:0;opacity:0;}
  15%{opacity:1;}
  85%{opacity:1;}
  100%{left:100%;opacity:0;}
}
@keyframes dsv-file-v{
  0%{top:0;opacity:0;}
  15%{opacity:1;}
  85%{opacity:1;}
  100%{top:100%;opacity:0;}
}
@keyframes dsv-pouls-rot{
  0%,100%{transform:rotate(45deg) scale(1);}
  50%{transform:rotate(45deg) scale(1.2);}
}

/* =====================================================================
   ACCESSIBILITÉ — mouvement réduit
   ===================================================================== */
@media (prefers-reduced-motion:reduce){
  .ds-sect--soiree *,
  .ds-sect--rbq *,
  .ds-sect--dictee *{
    animation:none !important;
    transition:none !important;
  }
  .ds-sect--soiree .frise-bloc{opacity:1;transform:translateY(-50%);}
  .ds-sect--dictee .onde span{height:56%;}
  .ds-sect--dictee .faisceau-point{opacity:1;left:50%;}
  .ds-sect--soiree .soiree-scene::after{opacity:.8;}
}


/* =====================================================================
   SECTION 1 — MÉTHODE  (.ds-sect--methode)  ·  ambiance bleu nuit
   ===================================================================== */
.ds-sect--methode{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding:clamp(72px,8vw,110px) clamp(20px,4vw,40px);
  color:var(--vt-ink);
  font-family:'Manrope',system-ui,-apple-system,sans-serif;
  background:
    radial-gradient(120% 90% at 14% 4%, rgba(37,99,235,.34) 0%, rgba(37,99,235,0) 58%),
    radial-gradient(90% 80% at 88% 22%, rgba(14,165,160,.26) 0%, rgba(14,165,160,0) 62%),
    radial-gradient(70% 60% at 52% 108%, rgba(245,181,68,.14) 0%, rgba(245,181,68,0) 70%),
    linear-gradient(180deg,#04101F 0%,#07203A 42%,#0A2A42 70%,#061A2E 100%);
}
.ds-sect--methode::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    linear-gradient(180deg, rgba(4,16,31,.85) 0%, rgba(4,16,31,0) 18%),
    linear-gradient(0deg, rgba(4,16,31,.8) 0%, rgba(4,16,31,0) 16%);
}
.ds-sect--methode::after{
  content:"";position:absolute;left:0;right:0;top:0;height:1px;z-index:1;pointer-events:none;
  background:linear-gradient(90deg,rgba(143,178,255,0) 0%,rgba(143,178,255,.35) 28%,rgba(111,227,214,.35) 72%,rgba(111,227,214,0) 100%);
}
.ds-sect--methode .ds-methode__inner{position:relative;z-index:2;max-width:1200px;margin:0 auto}

.ds-sect--methode .ds-methode__head{max-width:760px}
.ds-sect--methode .ds-methode__eyebrow{
  display:inline-flex;align-items:center;gap:10px;margin:0 0 18px;
  font-family:'IBM Plex Mono',ui-monospace,monospace;font-weight:600;
  font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--vt-teal-lt);
  padding:7px 14px 7px 12px;border-radius:999px;
  background:rgba(14,165,160,.10);
  border:1px solid rgba(111,227,214,.28);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10);
}
.ds-sect--methode .ds-methode__eyebrow-dot{
  width:7px;height:7px;border-radius:50%;background:var(--vt-teal-lt);
  box-shadow:0 0 0 4px rgba(111,227,214,.16);
  animation:dsv-pulse 3.2s ease-in-out infinite;
}
.ds-sect--methode .ds-methode__title{
  margin:0;font-weight:800;letter-spacing:-.02em;line-height:1.08;
  font-size:clamp(30px,5vw,54px);
  color:var(--vt-ink);
  text-wrap:balance;
}

/* --- les 3 étapes --- */
.ds-sect--methode .ds-methode__steps{
  --dsm-gap:clamp(16px,2.2vw,26px);
  position:relative;list-style:none;margin:clamp(38px,5vw,60px) 0 0;padding:0;
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--dsm-gap);
}
.ds-sect--methode .ds-methode__step{
  position:relative;
  padding:clamp(22px,2.4vw,30px);
  border-radius:20px;
  background:linear-gradient(180deg, rgba(255,255,255,.06) 0%, rgba(255,255,255,.03) 100%);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10), 0 40px 90px -50px rgba(0,0,0,.9);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  transition:transform .35s cubic-bezier(.2,.7,.2,1), border-color .35s ease, box-shadow .35s ease;
  animation:dsv-rise .85s cubic-bezier(.2,.7,.2,1) both;
}
.ds-sect--methode .ds-methode__step:nth-child(1){animation-delay:.05s}
.ds-sect--methode .ds-methode__step:nth-child(2){animation-delay:.16s}
.ds-sect--methode .ds-methode__step:nth-child(3){animation-delay:.27s}
.ds-sect--methode .ds-methode__step:hover{
  transform:translateY(-2px);
  border-color:rgba(143,178,255,.30);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14), 0 46px 100px -50px rgba(0,0,0,.95), 0 0 0 1px rgba(111,227,214,.10);
}
.ds-sect--methode .ds-methode__step::after{
  content:"";position:absolute;top:64px;right:calc(var(--dsm-gap) * -1);width:var(--dsm-gap);height:1px;
  background:linear-gradient(90deg,rgba(143,178,255,.45),rgba(111,227,214,.10));
  z-index:3;
}
.ds-sect--methode .ds-methode__step:last-child::after{display:none}

.ds-sect--methode .ds-methode__step-top{
  display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px;
}
.ds-sect--methode .ds-methode__num{
  font-family:'IBM Plex Mono',ui-monospace,monospace;font-weight:600;
  font-size:clamp(34px,4.4vw,46px);line-height:1;letter-spacing:.02em;
  color:var(--vt-blue-lt);
  background:linear-gradient(120deg,#8FB2FF 0%,#6FE3D6 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
}
.ds-sect--methode .ds-methode__pic{
  flex:0 0 auto;width:clamp(56px,7vw,68px);height:clamp(56px,7vw,68px);
  display:grid;place-items:center;border-radius:16px;
  background:radial-gradient(80% 80% at 50% 30%, rgba(255,255,255,.07), rgba(255,255,255,.02));
  border:1px solid rgba(255,255,255,.10);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10);
}
.ds-sect--methode .ds-methode__pic svg{width:78%;height:78%;display:block;overflow:visible}
.ds-sect--methode .ds-methode__step-title{
  margin:0 0 8px;font-size:clamp(18px,1.6vw,21px);font-weight:700;letter-spacing:-.01em;line-height:1.25;color:var(--vt-ink);
}
.ds-sect--methode .ds-methode__step-text{
  margin:0;font-size:clamp(14.5px,1.2vw,16px);line-height:1.62;color:var(--vt-ink-2);
}

.ds-sect--methode .ds-methode__wave{animation:dsv-wave 3.4s ease-in-out infinite}
.ds-sect--methode .ds-methode__wave--2{animation-delay:.35s}
.ds-sect--methode .ds-methode__frag{animation:dsv-slot 3.6s cubic-bezier(.2,.7,.2,1) infinite}
.ds-sect--methode .ds-methode__frag--2{animation-delay:.5s}
.ds-sect--methode .ds-methode__spark-dot{transform-origin:55px 14px;animation:dsv-pulse 2.6s ease-in-out infinite}
.ds-sect--methode .ds-methode__sign{
  stroke-dasharray:120;stroke-dashoffset:0;
  animation:dsv-sign 4.6s cubic-bezier(.5,0,.3,1) infinite;
}
.ds-sect--methode .ds-methode__nib{animation:dsv-nib 4.6s cubic-bezier(.5,0,.3,1) infinite}

/* --- barre de progression --- */
.ds-sect--methode .ds-methode__meter{
  position:relative;margin-top:clamp(34px,4vw,52px);
  padding:clamp(22px,2.6vw,30px);
  border-radius:20px;
  background:
    radial-gradient(120% 160% at 82% 0%, rgba(14,165,160,.14), rgba(14,165,160,0) 60%),
    linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.025));
  border:1px solid rgba(255,255,255,.12);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10), 0 40px 90px -50px rgba(0,0,0,.9);
  animation:dsv-rise .85s cubic-bezier(.2,.7,.2,1) .34s both;
}
.ds-sect--methode .ds-methode__meter-head{
  display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:10px 24px;margin-bottom:16px;
}
.ds-sect--methode .ds-methode__meter-label,
.ds-sect--methode .ds-methode__meter-gain{
  font-family:'IBM Plex Mono',ui-monospace,monospace;font-weight:600;
  font-size:12px;letter-spacing:.1em;text-transform:uppercase;
}
.ds-sect--methode .ds-methode__meter-label{color:var(--vt-teal-lt)}
.ds-sect--methode .ds-methode__meter-gain{
  color:var(--vt-amber-lt);
  padding:6px 12px;border-radius:999px;
  background:rgba(245,181,68,.10);
  border:1px solid rgba(245,181,68,.26);
}
.ds-sect--methode .ds-methode__track{
  position:relative;height:16px;border-radius:999px;overflow:hidden;
  background:rgba(4,16,31,.72);
  border:1px solid rgba(255,255,255,.10);
  box-shadow:inset 0 2px 8px rgba(0,0,0,.65);
}
.ds-sect--methode .ds-methode__fill{
  position:absolute;inset:1px auto 1px 1px;width:82%;border-radius:999px;
  background:linear-gradient(90deg,#2563EB 0%,#3E86E6 45%,#0EA5A0 82%,#6FE3D6 100%);
  box-shadow:0 0 24px rgba(14,165,160,.55), inset 0 1px 0 rgba(255,255,255,.35);
  animation:dsv-fill 2s cubic-bezier(.2,.8,.2,1) .35s both;
}
.ds-sect--methode .ds-methode__fill-edge{
  position:absolute;top:-2px;bottom:-2px;right:-1px;width:3px;border-radius:2px;
  background:var(--vt-ink);
  box-shadow:0 0 14px 3px rgba(111,227,214,.85);
  animation:dsv-pulse 2.4s ease-in-out infinite;
}
.ds-sect--methode .ds-methode__ticks{
  position:absolute;inset:0;pointer-events:none;
  background-image:repeating-linear-gradient(90deg, rgba(4,16,31,.55) 0 1px, rgba(0,0,0,0) 1px 10%);
  opacity:.5;
}
.ds-sect--methode .ds-methode__note{
  margin:16px 0 0;font-size:12.5px;line-height:1.55;color:var(--vt-ink-3);max-width:70ch;
}

@media (max-width:900px){
  .ds-sect--methode .ds-methode__steps{grid-template-columns:1fr}
  .ds-sect--methode .ds-methode__step::after{
    top:auto;bottom:calc(var(--dsm-gap) * -1);right:auto;left:36px;
    width:1px;height:var(--dsm-gap);
    background:linear-gradient(180deg,rgba(143,178,255,.45),rgba(111,227,214,.10));
  }
}
@media (max-width:480px){
  .ds-sect--methode .ds-methode__step{padding:20px}
  .ds-sect--methode .ds-methode__meter-gain{font-size:11px;letter-spacing:.08em}
  .ds-sect--methode .ds-methode__step::after{display:none}
}


/* =====================================================================
   SECTION 2 — REVIEW AI  (.ds-sect--review)  ·  froid + accent ambre
   ===================================================================== */
.ds-sect--review{
  position:relative;isolation:isolate;overflow:hidden;
  padding:clamp(72px,8vw,110px) clamp(20px,4vw,40px);
  color:var(--vt-ink);
  font-family:'Manrope',system-ui,-apple-system,sans-serif;
  background:
    radial-gradient(95% 85% at 78% 12%, rgba(14,165,160,.30) 0%, rgba(14,165,160,0) 60%),
    radial-gradient(85% 75% at 8% 76%, rgba(37,99,235,.28) 0%, rgba(37,99,235,0) 62%),
    radial-gradient(46% 42% at 66% 56%, rgba(245,181,68,.16) 0%, rgba(245,181,68,0) 72%),
    linear-gradient(180deg,#061A2E 0%,#0A2A42 40%,#07203A 74%,#04101F 100%);
}
.ds-sect--review::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    repeating-linear-gradient(180deg, rgba(255,255,255,.022) 0 1px, rgba(0,0,0,0) 1px 4px),
    linear-gradient(180deg, rgba(4,16,31,.7) 0%, rgba(4,16,31,0) 20%);
  opacity:.9;
}
.ds-sect--review .ds-review__inner{
  position:relative;z-index:2;max-width:1200px;margin:0 auto;
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(34px,5vw,72px);align-items:center;
}
.ds-sect--review .ds-review__copy{animation:dsv-rise .9s cubic-bezier(.2,.7,.2,1) both}
.ds-sect--review .ds-review__eyebrow{
  display:inline-flex;align-items:center;gap:10px;margin:0 0 18px;
  font-family:'IBM Plex Mono',ui-monospace,monospace;font-weight:600;
  font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--vt-amber-lt);
  padding:7px 14px 7px 12px;border-radius:999px;
  background:rgba(245,181,68,.10);
  border:1px solid rgba(245,181,68,.28);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10);
}
.ds-sect--review .ds-review__eyebrow-dot{
  width:7px;height:7px;border-radius:50%;background:var(--vt-amber);
  box-shadow:0 0 0 4px rgba(245,181,68,.16);
  animation:dsv-pulse 3.2s ease-in-out infinite;
}
.ds-sect--review .ds-review__title{
  margin:0 0 20px;font-weight:800;letter-spacing:-.02em;line-height:1.08;
  font-size:clamp(28px,4.4vw,48px);color:var(--vt-ink);text-wrap:balance;
}
.ds-sect--review .ds-review__text{
  margin:0 0 16px;font-size:clamp(15px,1.25vw,17px);line-height:1.68;color:var(--vt-ink-2);max-width:56ch;
}
.ds-sect--review .ds-review__text--muted{
  color:var(--vt-ink-3);font-size:clamp(14px,1.15vw,15.5px);
  padding-left:16px;border-left:2px solid rgba(111,227,214,.35);margin-bottom:0;
}

/* --- maquette de rapport --- */
.ds-sect--review .ds-review__stage{
  position:relative;
  animation:dsv-rise .9s cubic-bezier(.2,.7,.2,1) .12s both;
}
.ds-sect--review .ds-review__stage::before{
  content:"";position:absolute;inset:-8% -6%;z-index:0;pointer-events:none;border-radius:50%;
  background:radial-gradient(50% 50% at 50% 50%, rgba(14,165,160,.28), rgba(14,165,160,0) 70%);
  filter:blur(30px);
}
.ds-sect--review .ds-review__mock{
  position:relative;z-index:1;border-radius:20px;overflow:hidden;
  background:linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.03));
  border:1px solid rgba(255,255,255,.14);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10), 0 40px 90px -50px rgba(0,0,0,.9);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.ds-sect--review .ds-review__mock-top{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:14px 18px;border-bottom:1px solid rgba(255,255,255,.10);
  background:linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,0));
}
.ds-sect--review .ds-review__mock-tag{
  font-family:'IBM Plex Mono',ui-monospace,monospace;font-weight:600;
  font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--vt-ink-3);
}
.ds-sect--review .ds-review__mock-dots{display:inline-flex;gap:6px}
.ds-sect--review .ds-review__mock-dots i{
  width:7px;height:7px;border-radius:50%;background:rgba(198,214,236,.25);
}
.ds-sect--review .ds-review__page{
  position:relative;overflow:hidden;
  padding:clamp(18px,2.2vw,26px);
  background:
    radial-gradient(120% 60% at 50% 0%, rgba(143,178,255,.07), rgba(143,178,255,0) 60%),
    rgba(4,16,31,.45);
}
.ds-sect--review .ds-review__doc{display:grid;gap:clamp(16px,2vw,22px)}
.ds-sect--review .ds-review__blk{display:grid;gap:9px}
.ds-sect--review .ds-review__blk-h{
  font-family:'IBM Plex Mono',ui-monospace,monospace;font-weight:600;
  font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:rgba(143,178,255,.7);
  margin-bottom:2px;
}
.ds-sect--review .ds-review__ln{
  display:block;height:8px;border-radius:4px;
  background:linear-gradient(90deg, rgba(198,214,236,.30), rgba(198,214,236,.09));
}
.ds-sect--review .ds-review__ln--w9{width:92%}
.ds-sect--review .ds-review__ln--w8{width:82%}
.ds-sect--review .ds-review__ln--w7{width:71%}
.ds-sect--review .ds-review__ln--w6{width:63%}
.ds-sect--review .ds-review__ln--w4{width:44%}
.ds-sect--review .ds-review__thumbs{display:flex;gap:8px;margin-top:4px}
.ds-sect--review .ds-review__thumb{
  width:46px;height:34px;border-radius:6px;
  background:linear-gradient(160deg, rgba(143,178,255,.22), rgba(14,165,160,.14));
  border:1px solid rgba(255,255,255,.12);
  box-shadow:inset 0 -8px 12px -8px rgba(255,255,255,.35);
}
.ds-sect--review .ds-review__thumb--orphan{
  background:linear-gradient(160deg, rgba(245,181,68,.26), rgba(245,181,68,.08));
  border-color:rgba(245,181,68,.4);
}
.ds-sect--review .ds-review__beam{
  position:absolute;inset:0;z-index:2;pointer-events:none;opacity:0;
  background:linear-gradient(180deg,
    rgba(14,165,160,0) 0%,
    rgba(14,165,160,0) 66%,
    rgba(14,165,160,.10) 80%,
    rgba(111,227,214,.26) 94%,
    rgba(143,178,255,.85) 99.2%,
    rgba(143,178,255,0) 100%);
  animation:dsv-rev-beam 7.2s cubic-bezier(.45,0,.5,1) infinite;
}

/* pastilles d'anomalie */
.ds-sect--review .ds-review__pill{
  position:absolute;right:clamp(12px,2vw,20px);z-index:3;
  display:inline-flex;align-items:center;gap:8px;
  max-width:min(78%,240px);
  padding:7px 12px 7px 9px;border-radius:999px;
  font-family:'IBM Plex Mono',ui-monospace,monospace;font-weight:500;
  font-size:11.5px;letter-spacing:.05em;line-height:1;white-space:nowrap;
  color:var(--vt-teal-lt);
  background:rgba(14,165,160,.16);
  border:1px solid rgba(111,227,214,.45);
  box-shadow:0 14px 30px -18px rgba(0,0,0,.95), inset 0 1px 0 rgba(255,255,255,.12);
}
.ds-sect--review .ds-review__pill--a{top:26%;animation:dsv-rev-pill-a 7.2s ease-in-out infinite}
.ds-sect--review .ds-review__pill--b{top:52%;animation:dsv-rev-pill-b 7.2s ease-in-out infinite}
.ds-sect--review .ds-review__pill--c{top:74%;animation:dsv-rev-pill-c 7.2s ease-in-out infinite}
.ds-sect--review .ds-review__state{
  flex:0 0 auto;width:16px;height:16px;overflow:hidden;display:block;
}
.ds-sect--review .ds-review__swap{
  display:block;transform:translateY(-16px);
}
.ds-sect--review .ds-review__swap svg{display:block;width:16px;height:16px}
.ds-sect--review .ds-review__pill--a .ds-review__swap{animation:dsv-rev-swap-a 7.2s steps(1,end) infinite}
.ds-sect--review .ds-review__pill--b .ds-review__swap{animation:dsv-rev-swap-b 7.2s steps(1,end) infinite}
.ds-sect--review .ds-review__pill--c .ds-review__swap{animation:dsv-rev-swap-c 7.2s steps(1,end) infinite}

.ds-sect--review .ds-review__foot{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;
  padding:14px 18px;border-top:1px solid rgba(255,255,255,.10);
  background:linear-gradient(180deg, rgba(14,165,160,.10), rgba(14,165,160,.03));
}
.ds-sect--review .ds-review__badge{
  display:inline-flex;align-items:center;gap:9px;
  padding:9px 15px;border-radius:999px;
  font-family:'IBM Plex Mono',ui-monospace,monospace;font-weight:600;
  font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--vt-teal-lt);
  background:rgba(14,165,160,.16);
  border:1px solid rgba(111,227,214,.45);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12), 0 0 26px -8px rgba(14,165,160,.9);
  animation:dsv-rev-badge 7.2s ease-in-out infinite;
}
.ds-sect--review .ds-review__badge svg{width:15px;height:15px;flex:0 0 auto}
.ds-sect--review .ds-review__foot-meta{
  font-family:'IBM Plex Mono',ui-monospace,monospace;font-weight:500;
  font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--vt-ink-3);
}

@media (max-width:980px){
  .ds-sect--review .ds-review__inner{grid-template-columns:1fr}
}
@media (max-width:480px){
  .ds-sect--review .ds-review__pill{font-size:10.5px;padding:6px 10px 6px 8px;max-width:86%}
  .ds-sect--review .ds-review__thumb{width:38px;height:28px}
  .ds-sect--review .ds-review__foot-meta{display:none}
}


/* =====================================================================
   SECTION 3 — HORS LIGNE  (.ds-sect--offline)  ·  ambiance très sombre
   ===================================================================== */
.ds-sect--offline{
  position:relative;isolation:isolate;overflow:hidden;
  padding:clamp(72px,8vw,110px) clamp(20px,4vw,40px);
  color:var(--vt-ink);
  font-family:'Manrope',system-ui,-apple-system,sans-serif;
  background:
    radial-gradient(80% 70% at 20% 6%, rgba(37,99,235,.20) 0%, rgba(37,99,235,0) 62%),
    radial-gradient(70% 60% at 84% 30%, rgba(14,165,160,.18) 0%, rgba(14,165,160,0) 66%),
    radial-gradient(60% 50% at 30% 96%, rgba(245,181,68,.10) 0%, rgba(245,181,68,0) 70%),
    linear-gradient(180deg,#04101F 0%,#0A1C24 46%,#061722 74%,#04101F 100%);
}
.ds-sect--offline::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:linear-gradient(180deg, rgba(4,16,31,.9) 0%, rgba(4,16,31,0) 22%, rgba(4,16,31,0) 78%, rgba(4,16,31,.9) 100%);
}
.ds-sect--offline .ds-offline__inner{
  position:relative;z-index:2;max-width:1200px;margin:0 auto;
  display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);
  gap:clamp(32px,4.4vw,64px);align-items:center;
}
.ds-sect--offline .ds-offline__copy{animation:dsv-rise .9s cubic-bezier(.2,.7,.2,1) both}
.ds-sect--offline .ds-offline__eyebrow{
  display:inline-flex;align-items:center;gap:10px;margin:0 0 18px;
  font-family:'IBM Plex Mono',ui-monospace,monospace;font-weight:600;
  font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--vt-blue-lt);
  padding:7px 14px 7px 12px;border-radius:999px;
  background:rgba(37,99,235,.14);
  border:1px solid rgba(143,178,255,.28);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10);
}
.ds-sect--offline .ds-offline__eyebrow-dot{
  width:7px;height:7px;border-radius:50%;background:var(--vt-blue-lt);
  box-shadow:0 0 0 4px rgba(143,178,255,.16);
  animation:dsv-pulse 3.2s ease-in-out infinite;
}
.ds-sect--offline .ds-offline__title{
  margin:0 0 20px;font-weight:800;letter-spacing:-.02em;line-height:1.08;
  font-size:clamp(28px,4.4vw,48px);color:var(--vt-ink);text-wrap:balance;
}
.ds-sect--offline .ds-offline__text{
  margin:0 0 16px;font-size:clamp(15px,1.25vw,17px);line-height:1.68;color:var(--vt-ink-2);max-width:54ch;
}
.ds-sect--offline .ds-offline__text--strong{
  font-weight:700;color:var(--vt-ink);
}
.ds-sect--offline .ds-offline__link{
  display:inline-flex;align-items:center;gap:10px;margin-top:8px;
  font-size:15px;font-weight:600;text-decoration:none;color:var(--vt-teal-lt);
  padding:12px 18px;border-radius:999px;
  background:rgba(14,165,160,.10);
  border:1px solid rgba(111,227,214,.30);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10);
  transition:transform .3s cubic-bezier(.2,.7,.2,1), background-color .3s ease, border-color .3s ease;
}
.ds-sect--offline .ds-offline__link span{transition:transform .3s cubic-bezier(.2,.7,.2,1)}
.ds-sect--offline .ds-offline__link:hover{
  transform:translateY(-2px);background:rgba(14,165,160,.18);border-color:rgba(111,227,214,.5);
}
.ds-sect--offline .ds-offline__link:hover span{transform:translateX(4px)}
.ds-sect--offline .ds-offline__link:focus-visible{outline:2px solid var(--vt-teal-lt);outline-offset:3px}

/* --- scène --- */
.ds-sect--offline .ds-offline__scene{
  display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(12px,1.6vw,20px);align-items:center;
  animation:dsv-rise .9s cubic-bezier(.2,.7,.2,1) .12s both;
}
.ds-sect--offline .ds-offline__dims{
  list-style:none;margin:0;padding:0;display:grid;gap:14px;justify-items:center;
}
.ds-sect--offline .ds-offline__dims li{
  writing-mode:vertical-rl;transform:rotate(180deg);
  font-family:'IBM Plex Mono',ui-monospace,monospace;font-weight:500;
  font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--vt-ink-3);
  padding:10px 4px;border-left:1px solid rgba(255,255,255,.12);
}
.ds-sect--offline .ds-offline__dims li:last-child{color:var(--vt-amber-lt);border-left-color:rgba(245,181,68,.35)}
.ds-sect--offline .ds-offline__frame{
  position:relative;border-radius:20px;overflow:hidden;
  background:linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.02));
  border:1px solid rgba(255,255,255,.12);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10), 0 40px 90px -50px rgba(0,0,0,.9);
}
.ds-sect--offline .ds-offline__svg{display:block;width:100%;height:auto}
.ds-sect--offline .ds-offline__tag{
  position:absolute;z-index:2;margin:0;
  font-family:'IBM Plex Mono',ui-monospace,monospace;font-weight:600;
  font-size:clamp(9.5px,.92vw,11.5px);letter-spacing:.09em;text-transform:uppercase;line-height:1.2;
  padding:8px 12px;border-radius:999px;white-space:nowrap;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  box-shadow:0 18px 40px -22px rgba(0,0,0,.95), inset 0 1px 0 rgba(255,255,255,.12);
}
.ds-sect--offline .ds-offline__tag--off{
  left:3.5%;bottom:6%;color:var(--vt-amber-lt);
  background:rgba(41,26,6,.72);border:1px solid rgba(245,181,68,.42);
  animation:dsv-pulse-soft 3.6s ease-in-out infinite;
}
.ds-sect--offline .ds-offline__tag--sync{
  right:3.5%;top:8%;color:var(--vt-teal-lt);
  background:rgba(4,32,34,.72);border:1px solid rgba(111,227,214,.42);
}
.ds-sect--offline .ds-offline__sync{transform-box:fill-box;transform-origin:center;animation:dsv-spin 5.5s linear infinite}
.ds-sect--offline .ds-offline__check{
  stroke-dasharray:40;stroke-dashoffset:0;animation:dsv-check 5.5s ease-in-out infinite;
}
.ds-sect--offline .ds-offline__path{animation:dsv-dash 2.6s linear infinite}
.ds-sect--offline .ds-offline__phoneglow{animation:dsv-pulse-soft 4.2s ease-in-out infinite}
.ds-sect--offline .ds-offline__screen{animation:dsv-screen 4.2s ease-in-out infinite}
.ds-sect--offline .ds-offline__slash{animation:dsv-pulse-soft 3s ease-in-out infinite}
.ds-sect--offline .ds-offline__store rect{animation:dsv-store 3.6s ease-in-out infinite}
.ds-sect--offline .ds-offline__store rect:nth-child(2){animation-delay:.4s}
.ds-sect--offline .ds-offline__store rect:nth-child(3){animation-delay:.8s}
.ds-sect--offline .ds-offline__crack{animation:dsv-pulse-soft 5s ease-in-out infinite}

@media (max-width:980px){
  .ds-sect--offline .ds-offline__inner{grid-template-columns:1fr}
}
@media (max-width:760px){
  .ds-sect--offline .ds-offline__scene{grid-template-columns:1fr;gap:16px}
  .ds-sect--offline .ds-offline__dims{grid-auto-flow:column;justify-content:start;gap:10px}
  .ds-sect--offline .ds-offline__dims li{
    writing-mode:horizontal-tb;transform:none;
    padding:6px 12px;border-left:0;border-radius:999px;
    background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.10);
  }
  .ds-sect--offline .ds-offline__dims li:last-child{border-color:rgba(245,181,68,.35)}
  .ds-sect--offline .ds-offline__tag{
    position:static;display:block;white-space:normal;text-align:center;
    margin:0 12px 12px;
  }
  .ds-sect--offline .ds-offline__tag--sync{margin-top:12px}
  .ds-sect--offline .ds-offline__frame{padding-bottom:2px}
}


/* =====================================================================
   ANIMATIONS PARTAGÉES (préfixe dsv-)
   ===================================================================== */
@keyframes dsv-rise{
  from{opacity:0;transform:translateY(20px)}
  to{opacity:1;transform:translateY(0)}
}
@keyframes dsv-pulse{
  0%,100%{opacity:1;transform:scale(1)}
  50%{opacity:.55;transform:scale(.86)}
}
@keyframes dsv-pulse-soft{
  0%,100%{opacity:1}
  50%{opacity:.6}
}
@keyframes dsv-fill{
  from{width:0}
  to{width:82%}
}
@keyframes dsv-wave{
  0%,100%{opacity:.22}
  50%{opacity:1}
}
@keyframes dsv-slot{
  0%,12%{opacity:0;transform:translateX(22px)}
  30%,88%{opacity:1;transform:translateX(0)}
  100%{opacity:0;transform:translateX(22px)}
}
@keyframes dsv-sign{
  0%{stroke-dashoffset:120}
  55%,88%{stroke-dashoffset:0}
  100%{stroke-dashoffset:120}
}
@keyframes dsv-nib{
  0%{transform:translate(-24px,6px);opacity:.4}
  55%{transform:translate(4px,-2px);opacity:1}
  88%{transform:translate(4px,-2px);opacity:1}
  100%{transform:translate(-24px,6px);opacity:.4}
}
@keyframes dsv-spin{
  from{transform:rotate(0)}
  to{transform:rotate(360deg)}
}
@keyframes dsv-dash{
  from{stroke-dashoffset:32}
  to{stroke-dashoffset:0}
}
@keyframes dsv-check{
  0%,42%{stroke-dashoffset:40;opacity:.25}
  62%,92%{stroke-dashoffset:0;opacity:1}
  100%{stroke-dashoffset:40;opacity:.25}
}
@keyframes dsv-screen{
  0%,100%{opacity:1}
  50%{opacity:.72}
}
@keyframes dsv-store{
  0%,100%{opacity:.35}
  50%{opacity:1}
}
@keyframes dsv-rev-beam{
  0%{transform:translateY(-102%);opacity:0}
  5%{opacity:1}
  58%{transform:translateY(0);opacity:1}
  67%{transform:translateY(0);opacity:0}
  100%{transform:translateY(0);opacity:0}
}
@keyframes dsv-rev-pill-a{
  0%,15%{opacity:0;transform:translateX(14px) scale(.96);
    color:#FFE3B4;background-color:rgba(245,181,68,.18);border-color:rgba(245,181,68,.5)}
  20%,44%{opacity:1;transform:translateX(0) scale(1);
    color:#FFE3B4;background-color:rgba(245,181,68,.18);border-color:rgba(245,181,68,.5)}
  50%,92%{opacity:1;transform:translateX(0) scale(1);
    color:#6FE3D6;background-color:rgba(14,165,160,.18);border-color:rgba(111,227,214,.5)}
  100%{opacity:0;transform:translateX(0) scale(.98);
    color:#6FE3D6;background-color:rgba(14,165,160,.18);border-color:rgba(111,227,214,.5)}
}
@keyframes dsv-rev-pill-b{
  0%,29%{opacity:0;transform:translateX(14px) scale(.96);
    color:#FFE3B4;background-color:rgba(245,181,68,.18);border-color:rgba(245,181,68,.5)}
  34%,54%{opacity:1;transform:translateX(0) scale(1);
    color:#FFE3B4;background-color:rgba(245,181,68,.18);border-color:rgba(245,181,68,.5)}
  60%,92%{opacity:1;transform:translateX(0) scale(1);
    color:#6FE3D6;background-color:rgba(14,165,160,.18);border-color:rgba(111,227,214,.5)}
  100%{opacity:0;transform:translateX(0) scale(.98);
    color:#6FE3D6;background-color:rgba(14,165,160,.18);border-color:rgba(111,227,214,.5)}
}
@keyframes dsv-rev-pill-c{
  0%,41%{opacity:0;transform:translateX(14px) scale(.96);
    color:#FFE3B4;background-color:rgba(245,181,68,.18);border-color:rgba(245,181,68,.5)}
  46%,64%{opacity:1;transform:translateX(0) scale(1);
    color:#FFE3B4;background-color:rgba(245,181,68,.18);border-color:rgba(245,181,68,.5)}
  70%,92%{opacity:1;transform:translateX(0) scale(1);
    color:#6FE3D6;background-color:rgba(14,165,160,.18);border-color:rgba(111,227,214,.5)}
  100%{opacity:0;transform:translateX(0) scale(.98);
    color:#6FE3D6;background-color:rgba(14,165,160,.18);border-color:rgba(111,227,214,.5)}
}
@keyframes dsv-rev-swap-a{
  0%{transform:translateY(0)}
  48%{transform:translateY(-16px)}
  100%{transform:translateY(-16px)}
}
@keyframes dsv-rev-swap-b{
  0%{transform:translateY(0)}
  58%{transform:translateY(-16px)}
  100%{transform:translateY(-16px)}
}
@keyframes dsv-rev-swap-c{
  0%{transform:translateY(0)}
  68%{transform:translateY(-16px)}
  100%{transform:translateY(-16px)}
}
@keyframes dsv-rev-badge{
  0%,70%{opacity:.28;transform:translateY(5px) scale(.985)}
  78%,95%{opacity:1;transform:translateY(0) scale(1)}
  100%{opacity:.28;transform:translateY(5px) scale(.985)}
}

@media (prefers-reduced-motion:reduce){
  .ds-sect--methode *,
  .ds-sect--review *,
  .ds-sect--offline *{
    animation:none !important;
    transition:none !important;
  }
  .ds-sect--methode .ds-methode__step,
  .ds-sect--methode .ds-methode__meter,
  .ds-sect--review .ds-review__copy,
  .ds-sect--review .ds-review__stage,
  .ds-sect--offline .ds-offline__copy,
  .ds-sect--offline .ds-offline__scene{opacity:1;transform:none}
  .ds-sect--methode .ds-methode__fill{width:82%}
  .ds-sect--methode .ds-methode__frag{opacity:1}
  .ds-sect--review .ds-review__beam{opacity:0}
  .ds-sect--review .ds-review__pill{opacity:1;transform:none}
  .ds-sect--review .ds-review__swap{transform:translateY(-16px)}
  .ds-sect--review .ds-review__badge{opacity:1;transform:none}
}


/* ==========================================================================
   SECTION 1 — .ds-sect--modules
   ========================================================================== */
.ds-sect--modules{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding:clamp(72px,8vw,110px) clamp(20px,4vw,40px);
  color:var(--vt-ink);
  font-family:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;
  background:
    radial-gradient(120% 92% at 10% 4%, rgba(37,99,235,.34), transparent 58%),
    radial-gradient(95% 85% at 92% 22%, rgba(14,165,160,.26), transparent 62%),
    radial-gradient(70% 60% at 46% 112%, rgba(245,181,68,.13), transparent 70%),
    linear-gradient(168deg,#04101F 0%,#07203A 44%,#0A2A42 74%,#0A1C24 100%);
}
.ds-sect--modules::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    repeating-linear-gradient(0deg,rgba(255,255,255,.018) 0 1px,transparent 1px 3px),
    radial-gradient(100% 60% at 50% 0%, rgba(143,178,255,.10), transparent 70%);
  mix-blend-mode:screen;opacity:.55;
}
.ds-sect--modules::after{
  content:"";position:absolute;left:0;right:0;top:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(143,178,255,.35),rgba(111,227,214,.30),transparent);
}
.ds-sect--modules .dsm-atmo{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.ds-sect--modules .dsm-orb{position:absolute;border-radius:50%;filter:blur(70px);opacity:.55}
.ds-sect--modules .dsm-orb--blue{width:46vw;height:46vw;max-width:620px;max-height:620px;left:-12vw;top:-10vw;background:radial-gradient(circle,rgba(37,99,235,.55),transparent 68%);animation:dsv-drift 26s ease-in-out infinite}
.ds-sect--modules .dsm-orb--teal{width:38vw;height:38vw;max-width:520px;max-height:520px;right:-8vw;top:18%;background:radial-gradient(circle,rgba(14,165,160,.45),transparent 68%);animation:dsv-drift 32s ease-in-out infinite reverse}
.ds-sect--modules .dsm-orb--amber{width:30vw;height:30vw;max-width:400px;max-height:400px;left:38%;bottom:-14vw;background:radial-gradient(circle,rgba(245,181,68,.30),transparent 70%);animation:dsv-breathe 18s ease-in-out infinite}

.ds-sect--modules .dsm-wrap{max-width:1200px;margin:0 auto;position:relative}
.ds-sect--modules .dsm-mono,
.ds-sect--modules .dsm-kicker{
  font-family:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  font-weight:500;font-size:11px;letter-spacing:.1em;text-transform:uppercase;
}
.ds-sect--modules .dsm-mono--teal{color:var(--vt-teal-lt)}
.ds-sect--modules .dsm-mono--dim{color:var(--vt-ink-3)}

.ds-sect--modules .dsm-head{max-width:760px;margin-bottom:clamp(34px,4.5vw,56px)}
.ds-sect--modules .dsm-kicker{
  display:inline-flex;align-items:center;gap:10px;
  color:var(--vt-teal-lt);font-size:12px;font-weight:600;margin:0 0 18px;
  opacity:0;transform:translateY(14px);animation:dsv-rise .8s cubic-bezier(.2,.7,.3,1) .05s forwards;
}
.ds-sect--modules .dsm-tick{width:26px;height:1px;background:linear-gradient(90deg,transparent,var(--vt-teal-lt));display:inline-block}
.ds-sect--modules .dsm-title{
  margin:0 0 18px;font-weight:800;letter-spacing:-.02em;line-height:1.06;
  font-size:clamp(1.85rem,4.4vw,3.15rem);color:var(--vt-ink);text-wrap:balance;
  opacity:0;transform:translateY(14px);animation:dsv-rise .8s cubic-bezier(.2,.7,.3,1) .14s forwards;
}
.ds-sect--modules .dsm-lede{
  margin:0;font-size:clamp(1rem,1.35vw,1.13rem);line-height:1.65;color:var(--vt-ink-2);max-width:64ch;
  opacity:0;transform:translateY(14px);animation:dsv-rise .8s cubic-bezier(.2,.7,.3,1) .22s forwards;
}

/* --- grille bento --- */
.ds-sect--modules .dsm-bento{
  display:grid;grid-template-columns:repeat(4,1fr);
  grid-auto-rows:minmax(clamp(118px,10vw,146px),auto);
  gap:clamp(12px,1.3vw,18px);
}
.ds-sect--modules .dsm-card{
  position:relative;display:flex;flex-direction:column;gap:9px;
  padding:clamp(15px,1.5vw,21px);
  border-radius:18px;
  background:linear-gradient(180deg,rgba(255,255,255,.065),rgba(255,255,255,.028));
  border:1px solid rgba(255,255,255,.11);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10), 0 40px 90px -50px rgba(0,0,0,.9);
  backdrop-filter:blur(14px) saturate(120%);
  -webkit-backdrop-filter:blur(14px) saturate(120%);
  transition:transform .35s cubic-bezier(.2,.7,.3,1),border-color .35s,box-shadow .35s;
  opacity:0;transform:translateY(16px);
  animation:dsv-rise .75s cubic-bezier(.2,.7,.3,1) forwards;
  overflow:hidden;
}
.ds-sect--modules .dsm-bento>*:nth-child(1){animation-delay:.26s}
.ds-sect--modules .dsm-bento>*:nth-child(2){animation-delay:.32s}
.ds-sect--modules .dsm-bento>*:nth-child(3){animation-delay:.38s}
.ds-sect--modules .dsm-bento>*:nth-child(4){animation-delay:.44s}
.ds-sect--modules .dsm-bento>*:nth-child(5){animation-delay:.50s}
.ds-sect--modules .dsm-bento>*:nth-child(6){animation-delay:.56s}
.ds-sect--modules .dsm-bento>*:nth-child(7){animation-delay:.62s}
.ds-sect--modules .dsm-bento>*:nth-child(8){animation-delay:.68s}
.ds-sect--modules .dsm-card::after{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(130% 90% at 50% -25%,rgba(143,178,255,.20),transparent 62%);
  opacity:0;transition:opacity .35s;
}
.ds-sect--modules .dsm-card:hover{
  transform:translateY(-2px);border-color:rgba(143,178,255,.32);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16), 0 46px 100px -48px rgba(0,0,0,.95);
}
.ds-sect--modules .dsm-card:hover::after{opacity:1}

.ds-sect--modules .dsm-ico{
  width:46px;height:46px;flex:0 0 auto;display:grid;place-items:center;border-radius:13px;
  color:var(--vt-blue-lt);
  background:linear-gradient(180deg,rgba(143,178,255,.14),rgba(143,178,255,.04));
  border:1px solid rgba(143,178,255,.20);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
}
.ds-sect--modules .dsm-ico svg{width:26px;height:26px}
.ds-sect--modules .dsm-ico--teal{
  color:var(--vt-teal-lt);
  background:linear-gradient(180deg,rgba(111,227,214,.16),rgba(14,165,160,.05));
  border-color:rgba(111,227,214,.30);
}
.ds-sect--modules .dsm-card-title{margin:auto 0 0;font-size:clamp(1rem,1.25vw,1.1rem);font-weight:700;letter-spacing:-.01em;color:var(--vt-ink);line-height:1.25}
.ds-sect--modules .dsm-card-sub{margin:0;color:var(--vt-ink-3);font-size:10.5px;line-height:1.5}

/* carte Domi */
.ds-sect--modules .dsm-card--domi{
  flex-direction:row;align-items:center;gap:16px;
  background:
    radial-gradient(120% 160% at 8% 50%,rgba(14,165,160,.22),transparent 62%),
    linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.03));
  border-color:rgba(111,227,214,.34);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14), 0 0 46px -14px rgba(14,165,160,.55), 0 40px 90px -50px rgba(0,0,0,.9);
}
.ds-sect--modules .dsm-card--domi::before{
  content:"";position:absolute;width:200px;height:200px;left:-70px;top:50%;transform:translateY(-50%);
  background:radial-gradient(circle,rgba(14,165,160,.40),transparent 68%);filter:blur(26px);pointer-events:none;
  animation:dsv-breathe 7s ease-in-out infinite;
}
.ds-sect--modules .dsm-card--domi:hover{border-color:rgba(111,227,214,.55)}
.ds-sect--modules .dsm-domi-txt{display:flex;flex-direction:column;gap:6px;min-width:0}
.ds-sect--modules .dsm-card--domi .dsm-card-title{margin:0}
.ds-sect--modules .dsm-badge{
  position:absolute;top:12px;right:12px;
  padding:5px 9px;border-radius:999px;font-size:10px;font-weight:600;
  color:var(--vt-teal-lt);background:rgba(14,165,160,.14);border:1px solid rgba(111,227,214,.32);
}

/* carte centrale */
.ds-sect--modules .dsm-card--hero{
  grid-column:2/4;grid-row:1/3;gap:12px;
  background:
    radial-gradient(120% 90% at 50% -10%,rgba(37,99,235,.24),transparent 60%),
    linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,.03));
  border-color:rgba(255,255,255,.14);
}
.ds-sect--modules .dsm-card--hero::before{
  content:"";position:absolute;inset:auto -30% -55% -30%;height:70%;
  background:radial-gradient(circle at 50% 0%,rgba(14,165,160,.32),transparent 65%);
  filter:blur(30px);pointer-events:none;
}
.ds-sect--modules .dsm-hero-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.ds-sect--modules .dsm-hero-title{margin:0;font-size:clamp(1.15rem,1.7vw,1.42rem);font-weight:800;letter-spacing:-.015em;color:var(--vt-ink)}
.ds-sect--modules .dsm-doc{
  position:relative;border-radius:14px;overflow:hidden;margin-top:2px;
  box-shadow:0 30px 60px -40px rgba(0,0,0,.95);
}
.ds-sect--modules .dsm-doc svg{display:block;width:100%;height:auto}
.ds-sect--modules .dsm-crack{animation:dsv-crack 4.6s ease-in-out infinite}
.ds-sect--modules .dsm-crack-halo{animation:dsv-crack 4.6s ease-in-out infinite}
.ds-sect--modules .dsm-lamp{animation:dsv-lamp 6s ease-in-out infinite}
.ds-sect--modules .dsm-dot{animation:dsv-lamp 2.6s ease-in-out infinite}

.ds-sect--modules .dsm-prog-wrap{margin-top:auto;display:flex;flex-direction:column;gap:8px}
.ds-sect--modules .dsm-prog-meta{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.ds-sect--modules .dsm-prog{
  height:7px;border-radius:999px;overflow:hidden;
  background:rgba(255,255,255,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.5);
}
.ds-sect--modules .dsm-prog-fill{
  display:block;height:100%;width:68%;border-radius:999px;position:relative;
  background:linear-gradient(90deg,rgba(14,165,160,.85),var(--vt-teal-lt));
  box-shadow:0 0 18px rgba(111,227,214,.55);
  animation:dsv-fill 1.7s .45s cubic-bezier(.2,.7,.3,1) backwards;
}
.ds-sect--modules .dsm-prog-fill::after{
  content:"";position:absolute;inset:0;border-radius:inherit;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);
  background-size:220% 100%;animation:dsv-sheen 3.4s linear infinite;
}

/* placements desktop */
.ds-sect--modules .dsm-i1{grid-column:1;grid-row:1}
.ds-sect--modules .dsm-i2{grid-column:4;grid-row:1}
.ds-sect--modules .dsm-i3{grid-column:1;grid-row:2}
.ds-sect--modules .dsm-i4{grid-column:4;grid-row:2}
.ds-sect--modules .dsm-i5{grid-column:1;grid-row:3}
.ds-sect--modules .dsm-i6{grid-column:2;grid-row:3}
.ds-sect--modules .dsm-i7{grid-column:3/5;grid-row:3}

@media (max-width:1024px){
  .ds-sect--modules .dsm-bento{grid-template-columns:repeat(2,1fr)}
  .ds-sect--modules .dsm-card--hero,
  .ds-sect--modules .dsm-i1,.ds-sect--modules .dsm-i2,.ds-sect--modules .dsm-i3,
  .ds-sect--modules .dsm-i4,.ds-sect--modules .dsm-i5,.ds-sect--modules .dsm-i6,
  .ds-sect--modules .dsm-i7{grid-column:auto;grid-row:auto}
  .ds-sect--modules .dsm-card--hero{grid-column:1/-1}
  .ds-sect--modules .dsm-i7{grid-column:1/-1}
}
@media (max-width:620px){
  .ds-sect--modules .dsm-bento{grid-template-columns:1fr;grid-auto-rows:auto}
  .ds-sect--modules .dsm-card{min-height:0}
  .ds-sect--modules .dsm-card--hero,.ds-sect--modules .dsm-i7{grid-column:1/-1}
  .ds-sect--modules .dsm-card:not(.dsm-card--hero){flex-direction:row;align-items:center;gap:14px}
  .ds-sect--modules .dsm-card:not(.dsm-card--hero) .dsm-card-title{margin:0}
  .ds-sect--modules .dsm-card:not(.dsm-card--hero)>h3,
  .ds-sect--modules .dsm-card:not(.dsm-card--hero)>p{flex:1 1 auto}
  .ds-sect--modules .dsm-card:not(.dsm-card--hero){display:grid;grid-template-columns:auto 1fr;grid-template-areas:"ico title" "ico sub";column-gap:14px;row-gap:3px;align-items:center}
  .ds-sect--modules .dsm-card:not(.dsm-card--hero) .dsm-ico{grid-area:ico}
  .ds-sect--modules .dsm-card:not(.dsm-card--hero) .dsm-card-title{grid-area:title}
  .ds-sect--modules .dsm-card:not(.dsm-card--hero) .dsm-card-sub{grid-area:sub}
  .ds-sect--modules .dsm-card--domi{grid-template-areas:"ico title" "ico sub";padding-top:44px}
  .ds-sect--modules .dsm-card--domi .dsm-domi-txt{grid-area:title/title/sub/sub}
  .ds-sect--modules .dsm-badge{top:12px;left:14px;right:auto}
  .ds-sect--modules .dsm-orb--amber{display:none}
}
@media (max-width:400px){
  .ds-sect--modules .dsm-orb{opacity:.35}
  .ds-sect--modules .dsm-ico{width:40px;height:40px;border-radius:11px}
  .ds-sect--modules .dsm-ico svg{width:22px;height:22px}
}


/* ==========================================================================
   SECTION 2 — .ds-sect--quebec
   ========================================================================== */
.ds-sect--quebec{
  position:relative;isolation:isolate;overflow:hidden;
  padding:clamp(72px,8vw,110px) clamp(20px,4vw,40px);
  color:var(--vt-ink);
  font-family:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;
  background:
    radial-gradient(90% 70% at 50% -10%, rgba(37,99,235,.30), transparent 62%),
    radial-gradient(70% 60% at 6% 92%, rgba(14,165,160,.20), transparent 66%),
    radial-gradient(60% 55% at 96% 84%, rgba(37,99,235,.18), transparent 68%),
    linear-gradient(180deg,#04101F 0%,#061A2E 46%,#07203A 100%);
}
.ds-sect--quebec::before{
  content:"";position:absolute;left:0;right:0;top:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(143,178,255,.28),transparent);
}
.ds-sect--quebec::after{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:repeating-linear-gradient(90deg,rgba(255,255,255,.014) 0 1px,transparent 1px 84px);
}
.ds-sect--quebec .dsq-texture{
  position:absolute;inset:0;width:100%;height:100%;z-index:-1;
  opacity:.03;pointer-events:none;
  -webkit-mask-image:radial-gradient(75% 70% at 50% 45%,#000 20%,transparent 78%);
  mask-image:radial-gradient(75% 70% at 50% 45%,#000 20%,transparent 78%);
}
.ds-sect--quebec .dsq-wrap{max-width:1200px;margin:0 auto;position:relative}
.ds-sect--quebec .dsq-mono,
.ds-sect--quebec .dsq-kicker{
  font-family:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  font-weight:500;font-size:11px;letter-spacing:.1em;text-transform:uppercase;
}
.ds-sect--quebec .dsq-head{max-width:720px;margin:0 auto clamp(38px,5vw,58px);text-align:center}
.ds-sect--quebec .dsq-kicker{
  display:inline-flex;align-items:center;gap:10px;color:var(--vt-blue-lt);font-size:12px;font-weight:600;margin:0 0 18px;
  opacity:0;transform:translateY(14px);animation:dsv-rise .8s cubic-bezier(.2,.7,.3,1) .05s forwards;
}
.ds-sect--quebec .dsq-tick{width:24px;height:1px;background:linear-gradient(90deg,transparent,var(--vt-blue-lt));display:inline-block}
.ds-sect--quebec .dsq-title{
  margin:0 0 16px;font-weight:800;letter-spacing:-.02em;line-height:1.08;
  font-size:clamp(1.8rem,4.2vw,3rem);text-wrap:balance;
  opacity:0;transform:translateY(14px);animation:dsv-rise .8s cubic-bezier(.2,.7,.3,1) .13s forwards;
}
.ds-sect--quebec .dsq-lede{
  margin:0;font-size:clamp(1rem,1.3vw,1.1rem);line-height:1.65;color:var(--vt-ink-2);
  opacity:0;transform:translateY(14px);animation:dsv-rise .8s cubic-bezier(.2,.7,.3,1) .2s forwards;
}
.ds-sect--quebec .dsq-grid{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(12px,1.4vw,18px);
}
.ds-sect--quebec .dsq-chip{
  position:relative;display:flex;flex-direction:column;gap:12px;
  padding:clamp(18px,1.8vw,24px);
  border-radius:18px;
  background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.022));
  border:1px solid rgba(255,255,255,.10);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10), 0 40px 90px -50px rgba(0,0,0,.9);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  transition:transform .35s cubic-bezier(.2,.7,.3,1),border-color .35s,box-shadow .35s;
  opacity:0;transform:translateY(16px);animation:dsv-rise .75s cubic-bezier(.2,.7,.3,1) forwards;
  overflow:hidden;
}
.ds-sect--quebec .dsq-grid>li:nth-child(1){animation-delay:.26s}
.ds-sect--quebec .dsq-grid>li:nth-child(2){animation-delay:.34s}
.ds-sect--quebec .dsq-grid>li:nth-child(3){animation-delay:.42s}
.ds-sect--quebec .dsq-grid>li:nth-child(4){animation-delay:.50s}
.ds-sect--quebec .dsq-chip::after{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(120% 80% at 50% -20%,rgba(143,178,255,.16),transparent 60%);
  opacity:0;transition:opacity .35s;
}
.ds-sect--quebec .dsq-chip:hover{transform:translateY(-2px);border-color:rgba(143,178,255,.28)}
.ds-sect--quebec .dsq-chip:hover::after{opacity:1}
.ds-sect--quebec .dsq-chip--key{
  border-color:rgba(111,227,214,.28);
  background:
    radial-gradient(110% 80% at 50% -10%,rgba(14,165,160,.16),transparent 62%),
    linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.025));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12), 0 0 44px -18px rgba(14,165,160,.6), 0 40px 90px -50px rgba(0,0,0,.9);
}
.ds-sect--quebec .dsq-eyebrow{color:var(--vt-ink-3);font-size:10.5px}
.ds-sect--quebec .dsq-chip--key .dsq-eyebrow{color:var(--vt-teal-lt)}
.ds-sect--quebec .dsq-ico{
  width:52px;height:52px;display:grid;place-items:center;border-radius:14px;
  color:var(--vt-blue-lt);
  background:linear-gradient(180deg,rgba(143,178,255,.13),rgba(143,178,255,.03));
  border:1px solid rgba(143,178,255,.20);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
}
.ds-sect--quebec .dsq-ico svg{width:28px;height:28px}
.ds-sect--quebec .dsq-chip--key .dsq-ico{
  color:var(--vt-teal-lt);
  background:linear-gradient(180deg,rgba(111,227,214,.16),rgba(14,165,160,.04));
  border-color:rgba(111,227,214,.30);
}
.ds-sect--quebec .dsq-label{
  margin:auto 0 0;font-size:clamp(1rem,1.2vw,1.08rem);font-weight:700;line-height:1.3;letter-spacing:-.01em;color:var(--vt-ink);
}
.ds-sect--quebec .dsq-note{
  margin:0;color:var(--vt-teal-lt);font-size:10px;line-height:1.55;
  padding-top:10px;border-top:1px solid rgba(111,227,214,.18);
}
@media (max-width:900px){
  .ds-sect--quebec .dsq-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:560px){
  .ds-sect--quebec .dsq-grid{grid-template-columns:1fr}
  .ds-sect--quebec .dsq-head{text-align:left}
  .ds-sect--quebec .dsq-chip{
    display:grid;grid-template-columns:auto 1fr;grid-template-areas:"ico eyebrow" "ico label" "note note";
    column-gap:16px;row-gap:4px;align-items:center;
  }
  .ds-sect--quebec .dsq-ico{grid-area:ico;width:46px;height:46px}
  .ds-sect--quebec .dsq-eyebrow{grid-area:eyebrow}
  .ds-sect--quebec .dsq-label{grid-area:label;margin:0}
  .ds-sect--quebec .dsq-note{grid-area:note;margin-top:6px}
}
@media (max-width:400px){
  .ds-sect--quebec .dsq-texture{opacity:.02}
}


/* ==========================================================================
   SECTION 3 — .ds-sect--manifeste
   ========================================================================== */
.ds-sect--manifeste{
  position:relative;isolation:isolate;overflow:hidden;
  padding:clamp(80px,9vw,124px) clamp(20px,4vw,40px);
  color:var(--vt-ink);
  font-family:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;
  background:
    radial-gradient(85% 60% at 50% 0%, rgba(37,99,235,.34), transparent 60%),
    radial-gradient(60% 55% at 84% 24%, rgba(245,181,68,.16), transparent 66%),
    radial-gradient(75% 65% at 12% 82%, rgba(14,165,160,.26), transparent 66%),
    linear-gradient(172deg,#04101F 0%,#07203A 38%,#0A2A42 66%,#0A1C24 100%);
}
.ds-sect--manifeste::before{
  content:"";position:absolute;left:0;right:0;top:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(111,227,214,.42),rgba(245,181,68,.28),transparent);
}
.ds-sect--manifeste .dsx-atmo{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.ds-sect--manifeste .dsx-beam{
  position:absolute;left:50%;top:-22%;width:120%;height:70%;transform:translateX(-50%);
  background:conic-gradient(from 180deg at 50% 0%,transparent 0deg,rgba(143,178,255,.16) 14deg,transparent 34deg,transparent 326deg,rgba(111,227,214,.14) 346deg,transparent 360deg);
  filter:blur(30px);opacity:.8;
}
.ds-sect--manifeste .dsx-halo{position:absolute;border-radius:50%;filter:blur(80px)}
.ds-sect--manifeste .dsx-halo--teal{width:52vw;height:52vw;max-width:680px;max-height:680px;left:-16vw;bottom:-18vw;background:radial-gradient(circle,rgba(14,165,160,.42),transparent 68%);animation:dsv-drift 30s ease-in-out infinite}
.ds-sect--manifeste .dsx-halo--amber{width:34vw;height:34vw;max-width:440px;max-height:440px;right:-8vw;top:6%;background:radial-gradient(circle,rgba(245,181,68,.30),transparent 70%);animation:dsv-breathe 16s ease-in-out infinite}
.ds-sect--manifeste .dsx-grid{
  position:absolute;inset:0;
  background:
    repeating-linear-gradient(90deg,rgba(255,255,255,.020) 0 1px,transparent 1px 96px),
    repeating-linear-gradient(0deg,rgba(255,255,255,.020) 0 1px,transparent 1px 96px);
  -webkit-mask-image:radial-gradient(70% 60% at 50% 40%,#000,transparent 76%);
  mask-image:radial-gradient(70% 60% at 50% 40%,#000,transparent 76%);
}
.ds-sect--manifeste .dsx-wrap{max-width:1200px;margin:0 auto;position:relative}
.ds-sect--manifeste .dsx-mono,
.ds-sect--manifeste .dsx-kicker{
  font-family:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  font-weight:500;font-size:11px;letter-spacing:.1em;text-transform:uppercase;
}
.ds-sect--manifeste .dsx-kicker{
  display:inline-flex;align-items:center;gap:10px;color:var(--vt-amber);font-size:12px;font-weight:600;margin:0 0 22px;
  opacity:0;transform:translateY(14px);animation:dsv-rise .8s cubic-bezier(.2,.7,.3,1) .05s forwards;
}
.ds-sect--manifeste .dsx-tick{width:26px;height:1px;background:linear-gradient(90deg,transparent,var(--vt-amber));display:inline-block}

.ds-sect--manifeste .dsx-title{margin:0 0 26px;display:flex;flex-direction:column;gap:clamp(6px,1vw,12px);max-width:20ch}
.ds-sect--manifeste .dsx-l1{
  display:block;font-weight:600;letter-spacing:-.015em;line-height:1.18;
  font-size:clamp(1.2rem,3vw,2rem);color:var(--vt-ink-3);
  opacity:0;transform:translateY(16px);animation:dsv-rise .85s cubic-bezier(.2,.7,.3,1) .12s forwards;
}
.ds-sect--manifeste .dsx-l2{
  display:block;font-weight:800;letter-spacing:-.03em;line-height:1.02;
  font-size:clamp(2.1rem,6.4vw,4rem);color:var(--vt-ink);text-wrap:balance;
  opacity:0;transform:translateY(18px);animation:dsv-rise .9s cubic-bezier(.2,.7,.3,1) .22s forwards;
}
.ds-sect--manifeste .dsx-vanish{position:relative;display:inline-block;isolation:isolate}
.ds-sect--manifeste .dsx-word{
  position:relative;z-index:2;
  background:linear-gradient(100deg,var(--vt-teal-lt) 0%,var(--vt-ink) 34%,var(--vt-amber-lt) 62%,var(--vt-teal-lt) 100%);
  background-size:220% 100%;
  -webkit-background-clip:text;background-clip:text;
  color:transparent;-webkit-text-fill-color:transparent;
  filter:drop-shadow(0 0 26px rgba(111,227,214,.30));
  animation:dsv-sheen 9s linear infinite;
}
.ds-sect--manifeste .dsx-ghost{
  position:absolute;left:0;top:0;z-index:1;white-space:nowrap;
  color:var(--vt-amber-lt);opacity:.4;pointer-events:none;
  animation:dsv-vanish 9s ease-in-out infinite;
}
.ds-sect--manifeste .dsx-lede{
  margin:0 0 clamp(34px,4.5vw,54px);max-width:70ch;
  font-size:clamp(1rem,1.35vw,1.15rem);line-height:1.7;color:var(--vt-ink-2);
  opacity:0;transform:translateY(14px);animation:dsv-rise .85s cubic-bezier(.2,.7,.3,1) .3s forwards;
}

/* --- tableau comparatif --- */
.ds-sect--manifeste .dsx-table{
  border-radius:20px;overflow:hidden;
  border:1px solid rgba(255,255,255,.11);
  background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.02));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10), 0 40px 90px -50px rgba(0,0,0,.9);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  opacity:0;transform:translateY(18px);animation:dsv-rise .85s cubic-bezier(.2,.7,.3,1) .38s forwards;
}
.ds-sect--manifeste .dsx-thead,
.ds-sect--manifeste .dsx-row{display:grid;grid-template-columns:1fr 1fr}
.ds-sect--manifeste .dsx-thead{border-bottom:1px solid rgba(255,255,255,.10)}
.ds-sect--manifeste .dsx-th{
  padding:clamp(14px,1.6vw,20px) clamp(16px,2vw,26px);
  font-family:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  font-weight:600;font-size:12px;letter-spacing:.1em;text-transform:uppercase;
}
.ds-sect--manifeste .dsx-th--dim{color:var(--vt-ink-3);background:rgba(255,255,255,.015)}
.ds-sect--manifeste .dsx-th--lit{
  color:var(--vt-teal-lt);
  background:linear-gradient(180deg,rgba(14,165,160,.16),rgba(14,165,160,.06));
  box-shadow:inset 1px 0 0 rgba(111,227,214,.22);
}
.ds-sect--manifeste .dsx-row+.dsx-row{border-top:1px solid rgba(255,255,255,.07)}
.ds-sect--manifeste .dsx-cell{
  padding:clamp(15px,1.7vw,21px) clamp(16px,2vw,26px);
  font-size:clamp(.95rem,1.2vw,1.05rem);line-height:1.45;
  display:flex;align-items:center;gap:12px;transition:background .35s,color .35s;
}
.ds-sect--manifeste .dsx-cell--dim{color:var(--vt-ink-3);background:rgba(255,255,255,.012)}
.ds-sect--manifeste .dsx-cell--lit{
  color:var(--vt-ink);font-weight:600;
  background:linear-gradient(90deg,rgba(14,165,160,.10),rgba(14,165,160,.04));
  box-shadow:inset 1px 0 0 rgba(111,227,214,.18);
}
.ds-sect--manifeste .dsx-row:hover .dsx-cell--lit{background:linear-gradient(90deg,rgba(14,165,160,.18),rgba(14,165,160,.07))}
.ds-sect--manifeste .dsx-row:hover .dsx-cell--dim{color:var(--vt-ink-2)}
.ds-sect--manifeste .dsx-check{width:20px;height:20px;flex:0 0 auto;color:var(--vt-teal-lt);filter:drop-shadow(0 0 10px rgba(111,227,214,.45))}
.ds-sect--manifeste .dsx-cell[data-label]::before{display:none}

.ds-sect--manifeste .dsx-link{
  display:inline-flex;align-items:center;gap:10px;margin-top:clamp(22px,2.6vw,32px);
  padding:12px 18px;border-radius:999px;text-decoration:none;
  color:var(--vt-teal-lt);font-weight:600;font-size:12px;
  border:1px solid rgba(111,227,214,.28);background:rgba(14,165,160,.10);
  transition:transform .3s cubic-bezier(.2,.7,.3,1),border-color .3s,background .3s,box-shadow .3s;
  opacity:0;animation:dsv-rise .8s cubic-bezier(.2,.7,.3,1) .5s forwards;
}
.ds-sect--manifeste .dsx-link:hover{
  transform:translateY(-2px);border-color:rgba(111,227,214,.55);background:rgba(14,165,160,.18);
  box-shadow:0 0 34px -10px rgba(14,165,160,.75);
}
.ds-sect--manifeste .dsx-link:focus-visible{outline:2px solid var(--vt-teal-lt);outline-offset:3px}
.ds-sect--manifeste .dsx-link span{transition:transform .3s}
.ds-sect--manifeste .dsx-link:hover span{transform:translateX(4px)}

@media (max-width:760px){
  .ds-sect--manifeste .dsx-title{max-width:none}
  .ds-sect--manifeste .dsx-thead{display:none}
  .ds-sect--manifeste .dsx-row{grid-template-columns:1fr;gap:0}
  .ds-sect--manifeste .dsx-cell{
    display:grid;grid-template-columns:auto 1fr;align-items:start;column-gap:12px;row-gap:6px;
    padding:16px clamp(16px,4vw,22px);
  }
  .ds-sect--manifeste .dsx-cell[data-label]::before{
    display:block;grid-column:1/-1;content:attr(data-label);
    font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10.5px;font-weight:600;
    letter-spacing:.1em;text-transform:uppercase;color:var(--vt-ink-3);
  }
  .ds-sect--manifeste .dsx-cell--lit[data-label]::before{color:var(--vt-teal-lt)}
  .ds-sect--manifeste .dsx-cell--dim{padding-bottom:12px}
  .ds-sect--manifeste .dsx-cell--lit{box-shadow:inset 0 1px 0 rgba(111,227,214,.18)}
  .ds-sect--manifeste .dsx-ghost{display:none}
}
@media (max-width:400px){
  .ds-sect--manifeste .dsx-grid{display:none}
  .ds-sect--manifeste .dsx-halo--amber{opacity:.55}
}


/* ==========================================================================
   ANIMATIONS PARTAGÉES (préfixe dsv-)
   ========================================================================== */
@keyframes dsv-rise{
  from{opacity:0;transform:translateY(16px)}
  to{opacity:1;transform:translateY(0)}
}
@keyframes dsv-fill{
  from{width:0}
  to{width:68%}
}
@keyframes dsv-sheen{
  from{background-position:200% 0}
  to{background-position:-200% 0}
}
@keyframes dsv-crack{
  0%,100%{opacity:.32}
  50%{opacity:1}
}
@keyframes dsv-lamp{
  0%,100%{opacity:.72}
  45%{opacity:1}
}
@keyframes dsv-breathe{
  0%,100%{transform:scale(1);opacity:.55}
  50%{transform:scale(1.12);opacity:.85}
}
@keyframes dsv-drift{
  0%,100%{transform:translate3d(0,0,0)}
  50%{transform:translate3d(3%,-4%,0)}
}
@keyframes dsv-vanish{
  0%,100%{opacity:.40;filter:blur(0);transform:translate(0,0)}
  55%{opacity:.06;filter:blur(12px);transform:translate(14px,-6px)}
}

@media (prefers-reduced-motion:reduce){
  .ds-sect--modules *,
  .ds-sect--quebec *,
  .ds-sect--manifeste *{
    animation:none !important;
    transition:none !important;
  }
  .ds-sect--modules .dsm-kicker,
  .ds-sect--modules .dsm-title,
  .ds-sect--modules .dsm-lede,
  .ds-sect--modules .dsm-card,
  .ds-sect--quebec .dsq-kicker,
  .ds-sect--quebec .dsq-title,
  .ds-sect--quebec .dsq-lede,
  .ds-sect--quebec .dsq-chip,
  .ds-sect--manifeste .dsx-kicker,
  .ds-sect--manifeste .dsx-l1,
  .ds-sect--manifeste .dsx-l2,
  .ds-sect--manifeste .dsx-lede,
  .ds-sect--manifeste .dsx-table,
  .ds-sect--manifeste .dsx-link{
    opacity:1 !important;transform:none !important;
  }
  .ds-sect--modules .dsm-prog-fill{width:68%}
  .ds-sect--manifeste .dsx-ghost{opacity:.18}
}


/* =====================================================================
   SECTION 1 — TARIFS  (.ds-sect--tarifs)
   ===================================================================== */
.ds-sect--tarifs{
  position:relative; isolation:isolate; overflow:hidden;
  scroll-margin-top:80px;
  padding:clamp(72px,8vw,110px) clamp(20px,4vw,40px);
  font-family:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;
  color:var(--vt-ink);
  background:
    radial-gradient(120% 72% at 50% -12%, rgba(37,99,235,.34) 0%, rgba(37,99,235,0) 62%),
    radial-gradient(85% 60% at 108% 104%, rgba(14,165,160,.26) 0%, rgba(14,165,160,0) 64%),
    radial-gradient(60% 45% at -8% 90%, rgba(245,181,68,.14) 0%, rgba(245,181,68,0) 66%),
    linear-gradient(180deg,#04101F 0%,#07203A 48%,#0A2A42 100%);
}
.ds-sect--tarifs::after{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(180deg,rgba(4,16,31,.55) 0%,rgba(4,16,31,0) 22%,rgba(4,16,31,0) 78%,rgba(4,16,31,.35) 100%);
}
.ds-sect--tarifs .tf-decor{position:absolute; inset:0; z-index:0; pointer-events:none; overflow:hidden;}
.ds-sect--tarifs .tf-plan{position:absolute; left:0; right:0; top:0; width:100%; height:clamp(180px,26vw,300px); opacity:.55;}
.ds-sect--tarifs .tf-halo{position:absolute; border-radius:50%; filter:blur(70px); will-change:opacity,transform;}
.ds-sect--tarifs .tf-halo--bleu{width:52vw; height:52vw; max-width:640px; max-height:640px; left:-10%; top:2%;
  background:radial-gradient(circle,rgba(37,99,235,.42) 0%,rgba(37,99,235,0) 70%); animation:dsv-souffle 11s ease-in-out infinite;}
.ds-sect--tarifs .tf-halo--sarcelle{width:46vw; height:46vw; max-width:560px; max-height:560px; right:-8%; top:34%;
  background:radial-gradient(circle,rgba(14,165,160,.34) 0%,rgba(14,165,160,0) 70%); animation:dsv-souffle 13s ease-in-out infinite 1.4s;}
.ds-sect--tarifs .tf-halo--ambre{width:34vw; height:34vw; max-width:420px; max-height:420px; left:38%; bottom:-14%;
  background:radial-gradient(circle,rgba(245,181,68,.20) 0%,rgba(245,181,68,0) 70%); animation:dsv-souffle 15s ease-in-out infinite .7s;}

.ds-sect--tarifs .tf-wrap{position:relative; z-index:2; max-width:1200px; margin-inline:auto;}
.ds-sect--tarifs .tf-tete{max-width:760px; animation:dsv-monte .8s .05s both;}
.ds-sect--tarifs .tf-eyebrow{
  display:inline-flex; align-items:center; gap:10px; margin:0 0 16px;
  font-family:'IBM Plex Mono',ui-monospace,monospace; font-weight:600;
  font-size:clamp(11px,1.05vw,13px); letter-spacing:.1em; text-transform:uppercase;
  color:var(--vt-teal-lt);
}
.ds-sect--tarifs .tf-eyebrow::before{content:""; width:26px; height:1px; background:linear-gradient(90deg,rgba(111,227,214,0),rgba(111,227,214,.9));}
.ds-sect--tarifs .tf-titre{
  margin:0 0 18px; font-weight:800; line-height:1.04; letter-spacing:-.025em;
  font-size:clamp(30px,5.2vw,52px);
  background:linear-gradient(178deg,#FFFFFF 0%,#F2F7FF 38%,#C6D6EC 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.ds-sect--tarifs .tf-intro{
  margin:0; max-width:64ch; color:var(--vt-ink-2);
  font-size:clamp(15px,1.5vw,18px); line-height:1.68; font-weight:400;
}

/* --- bascule mensuel / annuel --- */
.ds-sect--tarifs .bascule-periode{
  display:inline-flex; flex-wrap:wrap; gap:4px; margin:clamp(26px,3.4vw,36px) 0 clamp(28px,3.6vw,42px);
  padding:5px; max-width:100%; border-radius:999px;
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.12);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10), 0 24px 55px -34px rgba(0,0,0,.9);
  -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px);
  animation:dsv-monte .8s .12s both;
}
.ds-sect--tarifs .bascule-periode button{
  appearance:none; border:0; cursor:pointer; border-radius:999px;
  padding:10px clamp(14px,2vw,20px);
  font-family:'IBM Plex Mono',ui-monospace,monospace; font-weight:600;
  font-size:clamp(11px,1.05vw,12.5px); letter-spacing:.1em; text-transform:uppercase;
  background:transparent; color:var(--vt-ink-3);
  transition:color .28s ease, background .28s ease, box-shadow .28s ease, transform .28s ease;
}
.ds-sect--tarifs .bascule-periode button:hover{color:var(--vt-ink);}
.ds-sect--tarifs .bascule-periode button[aria-pressed="true"]{
  color:#FFFFFF;
  background:linear-gradient(135deg,rgba(37,99,235,.98) 0%,rgba(14,165,160,.90) 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28), 0 14px 30px -16px rgba(37,99,235,.95);
}
.ds-sect--tarifs .bascule-periode button:focus-visible{outline:2px solid var(--vt-teal-lt); outline-offset:3px;}

/* --- grille de cartes --- */
.ds-sect--tarifs .tf-table{display:grid; gap:clamp(14px,1.7vw,20px); grid-template-columns:1fr; align-items:stretch;}
@media (min-width:680px){ .ds-sect--tarifs .tf-table{grid-template-columns:repeat(2,1fr);} }
@media (min-width:1080px){ .ds-sect--tarifs .tf-table{grid-template-columns:repeat(4,1fr); gap:18px;} }

.ds-sect--tarifs .tf-carte{
  position:relative; display:flex; flex-direction:column;
  padding:clamp(20px,2.2vw,26px) clamp(18px,2vw,22px) clamp(22px,2.4vw,26px);
  border-radius:20px;
  background:linear-gradient(180deg,rgba(255,255,255,.065) 0%,rgba(255,255,255,.028) 100%);
  border:1px solid rgba(255,255,255,.11);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10), 0 40px 90px -50px rgba(0,0,0,.9);
  -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
  transition:transform .38s cubic-bezier(.2,.7,.3,1), border-color .38s ease, box-shadow .38s ease;
  animation:dsv-monte .8s both;
}
.ds-sect--tarifs .tf-carte:nth-child(1){animation-delay:.16s}
.ds-sect--tarifs .tf-carte:nth-child(2){animation-delay:.24s}
.ds-sect--tarifs .tf-carte:nth-child(3){animation-delay:.32s}
.ds-sect--tarifs .tf-carte:nth-child(4){animation-delay:.40s}
.ds-sect--tarifs .tf-carte:hover{
  transform:translateY(-2px);
  border-color:rgba(143,178,255,.32);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14), 0 46px 100px -48px rgba(0,0,0,.95), 0 0 40px -18px rgba(37,99,235,.45);
}
.ds-sect--tarifs .tf-carte__tete{display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px;}
.ds-sect--tarifs .tf-code{
  font-family:'IBM Plex Mono',ui-monospace,monospace; font-weight:600;
  font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--vt-ink-3);
  padding:5px 9px; border-radius:7px;
  background:rgba(255,255,255,.045); border:1px solid rgba(255,255,255,.10);
}
.ds-sect--tarifs .tf-glyphe{width:40px; height:40px; flex:0 0 auto; color:var(--vt-blue-lt); opacity:.85;}
.ds-sect--tarifs .tf-nom{margin:0 0 6px; font-size:clamp(19px,1.9vw,22px); font-weight:800; letter-spacing:-.015em; color:var(--vt-ink);}
.ds-sect--tarifs .tf-desc{margin:0; font-size:14px; line-height:1.55; color:var(--vt-ink-2); min-height:2.6em;}
.ds-sect--tarifs .tf-carte__sep{
  height:1px; margin:18px 0 16px;
  background:linear-gradient(90deg,rgba(255,255,255,.02),rgba(143,178,255,.28) 35%,rgba(255,255,255,.02));
}
.ds-sect--tarifs .tf-prix{
  margin:0; display:flex; align-items:baseline; flex-wrap:wrap; gap:6px;
  font-size:clamp(30px,3.3vw,38px); font-weight:800; letter-spacing:-.03em; line-height:1.05;
  color:#FFFFFF;
}
.ds-sect--tarifs .tf-carte--vedette .tf-prix{
  background:linear-gradient(120deg,#FFFFFF 0%,#8FB2FF 55%,#6FE3D6 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.ds-sect--tarifs .tf-unite{
  font-family:'IBM Plex Mono',ui-monospace,monospace; font-weight:500;
  font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--vt-ink-3);
}
.ds-sect--tarifs .tf-unite-a{display:none;}
.ds-sect--tarifs [data-periode="annuel"] .tf-unite-m{display:none;}
.ds-sect--tarifs [data-periode="annuel"] .tf-unite-a{display:inline;}
.ds-sect--tarifs .mention-annuel{
  margin-top:9px;
  font-family:'IBM Plex Mono',ui-monospace,monospace; font-weight:500;
  font-size:11px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--vt-amber-lt);
}
.ds-sect--tarifs .tf-cta{
  margin-top:auto; display:inline-flex; align-items:center; justify-content:center; text-align:center;
  padding-top:clamp(20px,2vw,24px); padding-bottom:0;
}
.ds-sect--tarifs .tf-cta{
  margin-top:auto; text-decoration:none; font-weight:700; font-size:14.5px; letter-spacing:.005em;
  border-radius:12px; padding:13px 16px; margin-top:22px;
  transition:transform .3s ease, box-shadow .3s ease, background .3s ease, border-color .3s ease, color .3s ease;
}
.ds-sect--tarifs .tf-cta--fantome{
  color:var(--vt-ink); background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.16);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10);
}
.ds-sect--tarifs .tf-cta--fantome:hover{background:rgba(143,178,255,.14); border-color:rgba(143,178,255,.45); transform:translateY(-2px);}
.ds-sect--tarifs .tf-cta--primaire{
  color:#03121F; border:1px solid rgba(255,255,255,.28);
  background:linear-gradient(135deg,#8FB2FF 0%,#6FE3D6 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55), 0 22px 44px -22px rgba(37,99,235,.95);
}
.ds-sect--tarifs .tf-cta--primaire:hover{transform:translateY(-2px); box-shadow:inset 0 1px 0 rgba(255,255,255,.6), 0 28px 56px -22px rgba(14,165,160,.95);}
.ds-sect--tarifs .tf-cta:focus-visible{outline:2px solid var(--vt-teal-lt); outline-offset:3px;}

/* --- carte vedette --- */
.ds-sect--tarifs .tf-carte--vedette{
  border:1px solid transparent;
  background:
    linear-gradient(180deg,rgba(37,99,235,.20) 0%,rgba(14,165,160,.10) 100%) padding-box,
    linear-gradient(155deg,rgba(143,178,255,.90) 0%,rgba(111,227,214,.60) 46%,rgba(245,181,68,.45) 100%) border-box;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16), 0 46px 100px -46px rgba(0,0,0,.95), 0 0 70px -22px rgba(37,99,235,.55);
}
.ds-sect--tarifs .tf-carte--vedette::before{
  content:""; position:absolute; inset:-1px; border-radius:inherit; pointer-events:none;
  box-shadow:0 0 0 1px rgba(143,178,255,.30), 0 0 60px -8px rgba(37,99,235,.50);
  animation:dsv-souffle 5s ease-in-out infinite;
}
.ds-sect--tarifs .tf-carte--vedette .tf-glyphe{color:var(--vt-teal-lt); opacity:1;}
.ds-sect--tarifs .tf-carte--vedette .tf-code{background:rgba(255,255,255,.07); border-color:rgba(255,255,255,.16); color:var(--vt-ink-2);}
.ds-sect--tarifs .tf-badge{
  position:absolute; top:-11px; right:16px; z-index:3;
  font-family:'IBM Plex Mono',ui-monospace,monospace; font-weight:600;
  font-size:11px; letter-spacing:.1em; text-transform:uppercase;
  color:#04101F; padding:6px 11px; border-radius:999px;
  background:linear-gradient(135deg,#F5B544 0%,#FFE3B4 100%);
  box-shadow:0 14px 30px -14px rgba(245,181,68,.9);
}
@media (min-width:1080px){
  .ds-sect--tarifs .tf-carte--vedette{transform:translateY(-10px) scale(1.035);}
  .ds-sect--tarifs .tf-carte--vedette:hover{transform:translateY(-13px) scale(1.045);}
}

/* --- rappel --- */
.ds-sect--tarifs .tf-rappel{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:14px 24px;
  margin-top:clamp(26px,3.2vw,38px); padding:16px clamp(16px,2vw,22px);
  border-radius:16px;
  background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.02));
  border:1px solid rgba(255,255,255,.10);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10);
  animation:dsv-monte .8s .48s both;
}
.ds-sect--tarifs .tf-rappel__txt{
  margin:0; font-family:'IBM Plex Mono',ui-monospace,monospace; font-weight:500;
  font-size:clamp(10.5px,1vw,12px); letter-spacing:.1em; text-transform:uppercase;
  color:var(--vt-ink-2); line-height:1.7;
}
.ds-sect--tarifs .tf-rappel__lien{
  text-decoration:none; font-weight:700; font-size:14.5px; color:var(--vt-teal-lt);
  border-bottom:1px solid rgba(111,227,214,.35); padding-bottom:2px;
  transition:color .28s ease, border-color .28s ease, transform .28s ease;
}
.ds-sect--tarifs .tf-rappel__lien:hover{color:#FFFFFF; border-color:rgba(255,255,255,.7);}
.ds-sect--tarifs .tf-rappel__lien:focus-visible{outline:2px solid var(--vt-teal-lt); outline-offset:4px;}

@media (max-width:420px){
  .ds-sect--tarifs .tf-plan{opacity:.28;}
  .ds-sect--tarifs .tf-glyphe{width:32px; height:32px;}
  .ds-sect--tarifs .tf-desc{min-height:0;}
  .ds-sect--tarifs .bascule-periode button{padding:10px 12px; letter-spacing:.06em;}
}


/* =====================================================================
   SECTION 2 — FAQ  (.ds-sect--faq)
   ===================================================================== */
.ds-sect--faq{
  position:relative; isolation:isolate; overflow:hidden;
  scroll-margin-top:80px;
  padding:clamp(72px,8vw,110px) clamp(20px,4vw,40px);
  font-family:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;
  color:var(--vt-ink);
  background:
    radial-gradient(80% 55% at 12% 6%, rgba(14,165,160,.22) 0%, rgba(14,165,160,0) 62%),
    radial-gradient(90% 60% at 96% 88%, rgba(37,99,235,.24) 0%, rgba(37,99,235,0) 66%),
    linear-gradient(180deg,#0A2A42 0%,#071F31 42%,#04101F 100%);
}
.ds-sect--faq .fq-decor{position:absolute; inset:0; z-index:0; pointer-events:none; overflow:hidden;}
.ds-sect--faq .fq-halo{position:absolute; border-radius:50%; filter:blur(80px);}
.ds-sect--faq .fq-halo--sarcelle{width:48vw; height:48vw; max-width:560px; max-height:560px; left:-12%; top:-6%;
  background:radial-gradient(circle,rgba(14,165,160,.30) 0%,rgba(14,165,160,0) 70%); animation:dsv-souffle 14s ease-in-out infinite;}
.ds-sect--faq .fq-halo--bleu{width:44vw; height:44vw; max-width:520px; max-height:520px; right:-10%; bottom:-12%;
  background:radial-gradient(circle,rgba(37,99,235,.30) 0%,rgba(37,99,235,0) 70%); animation:dsv-souffle 16s ease-in-out infinite 1.8s;}

.ds-sect--faq .fq-wrap{
  position:relative; z-index:2; max-width:1200px; margin-inline:auto;
  display:grid; grid-template-columns:1fr; gap:clamp(30px,4vw,56px);
}
@media (min-width:940px){
  .ds-sect--faq .fq-wrap{grid-template-columns:minmax(280px,.85fr) minmax(0,1.15fr); align-items:start;}
  .ds-sect--faq .fq-tete{position:sticky; top:96px;}
}
.ds-sect--faq .fq-tete{position:relative; animation:dsv-monte .8s .05s both;}
.ds-sect--faq .fq-eyebrow{
  display:inline-flex; align-items:center; gap:10px; margin:0 0 16px;
  font-family:'IBM Plex Mono',ui-monospace,monospace; font-weight:600;
  font-size:clamp(11px,1.05vw,13px); letter-spacing:.1em; text-transform:uppercase;
  color:var(--vt-amber-lt);
}
.ds-sect--faq .fq-eyebrow::before{content:""; width:26px; height:1px; background:linear-gradient(90deg,rgba(245,181,68,0),rgba(245,181,68,.9));}
.ds-sect--faq .fq-titre{
  margin:0; font-weight:800; line-height:1.05; letter-spacing:-.025em;
  font-size:clamp(28px,4.6vw,46px);
  background:linear-gradient(178deg,#FFFFFF 0%,#F2F7FF 40%,#C6D6EC 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.ds-sect--faq .fq-sceau{
  width:clamp(96px,12vw,140px); height:auto; margin-top:clamp(22px,3vw,34px); display:block;
  animation:dsv-flotte 9s ease-in-out infinite;
}
@media (max-width:939px){ .ds-sect--faq .fq-sceau{display:none;} }

.ds-sect--faq .fq-liste{
  position:relative; display:flex; flex-direction:column; gap:12px;
  animation:dsv-monte .8s .16s both;
}
.ds-sect--faq .fq-item{
  position:relative; border-radius:16px; overflow:hidden;
  background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.022));
  border:1px solid rgba(255,255,255,.10);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10), 0 40px 90px -60px rgba(0,0,0,.9);
  -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px);
  transition:border-color .32s ease, transform .32s cubic-bezier(.2,.7,.3,1), box-shadow .32s ease;
}
.ds-sect--faq .fq-item:hover{transform:translateY(-2px); border-color:rgba(143,178,255,.28);}
.ds-sect--faq .fq-item[open]{
  border-color:rgba(111,227,214,.30);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14), 0 40px 90px -50px rgba(0,0,0,.95), 0 0 44px -22px rgba(14,165,160,.55);
}
.ds-sect--faq .fq-item::before{
  content:""; position:absolute; left:0; top:14px; bottom:14px; width:2px; border-radius:2px;
  background:linear-gradient(180deg,rgba(111,227,214,0),rgba(111,227,214,.75),rgba(111,227,214,0));
  opacity:0; transition:opacity .32s ease;
}
.ds-sect--faq .fq-item[open]::before{opacity:1;}
.ds-sect--faq .fq-q{
  list-style:none; cursor:pointer; display:flex; align-items:center; gap:clamp(10px,1.6vw,18px);
  padding:clamp(16px,1.9vw,20px) clamp(16px,2vw,22px);
}
.ds-sect--faq .fq-q::-webkit-details-marker{display:none;}
.ds-sect--faq .fq-q:focus-visible{outline:2px solid var(--vt-teal-lt); outline-offset:-3px; border-radius:16px;}
.ds-sect--faq .fq-num{
  flex:0 0 auto;
  font-family:'IBM Plex Mono',ui-monospace,monospace; font-weight:600;
  font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--vt-teal-lt);
  padding:5px 8px; border-radius:7px;
  background:rgba(111,227,214,.08); border:1px solid rgba(111,227,214,.20);
}
.ds-sect--faq .fq-txt{
  flex:1 1 auto; font-weight:700; letter-spacing:-.01em; line-height:1.4;
  font-size:clamp(15px,1.6vw,18px); color:var(--vt-ink);
}
.ds-sect--faq .fq-plus{
  position:relative; flex:0 0 auto; width:28px; height:28px; border-radius:9px;
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.14);
  transition:background .3s ease, border-color .3s ease;
}
.ds-sect--faq .fq-plus::before,
.ds-sect--faq .fq-plus::after{
  content:""; position:absolute; left:50%; top:50%; width:12px; height:1.6px; border-radius:2px;
  background:var(--vt-teal-lt); transform:translate(-50%,-50%);
  transition:transform .32s cubic-bezier(.2,.7,.3,1);
}
.ds-sect--faq .fq-plus::after{transform:translate(-50%,-50%) rotate(90deg);}
.ds-sect--faq .fq-item[open] .fq-plus{background:rgba(111,227,214,.14); border-color:rgba(111,227,214,.38);}
.ds-sect--faq .fq-item[open] .fq-plus::after{transform:translate(-50%,-50%) rotate(180deg);}
.ds-sect--faq .fq-r{
  padding:0 clamp(16px,2vw,22px) clamp(18px,2.2vw,22px);
  padding-left:calc(clamp(16px,2vw,22px) + 52px);
  animation:dsv-ouvre .4s cubic-bezier(.2,.7,.3,1) both;
}
@media (max-width:520px){ .ds-sect--faq .fq-r{padding-left:clamp(16px,2vw,22px);} }
.ds-sect--faq .fq-r p{margin:0; color:var(--vt-ink-2); font-size:clamp(14.5px,1.45vw,16.5px); line-height:1.7; max-width:60ch;}


/* =====================================================================
   SECTION 3 — ESSAI / L’AUBE  (.ds-sect--final)
   ===================================================================== */
.ds-sect--final{
  position:relative; isolation:isolate; overflow:hidden;
  scroll-margin-top:80px;
  padding:clamp(72px,8vw,110px) clamp(20px,4vw,40px);
  font-family:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;
  color:var(--vt-ink);
  background:
    radial-gradient(70% 55% at 14% 0%, rgba(245,181,68,.22) 0%, rgba(245,181,68,0) 60%),
    radial-gradient(90% 62% at 78% 8%, rgba(143,178,255,.24) 0%, rgba(143,178,255,0) 64%),
    radial-gradient(80% 60% at 50% 108%, rgba(14,165,160,.24) 0%, rgba(14,165,160,0) 66%),
    linear-gradient(180deg,#0A2A42 0%,#0A1C24 46%,#04101F 100%);
}
.ds-sect--final .fn-decor{position:absolute; inset:0; z-index:0; pointer-events:none; overflow:hidden;}
.ds-sect--final .fn-halo{position:absolute; border-radius:50%; filter:blur(80px);}
.ds-sect--final .fn-halo--aube{width:56vw; height:40vw; max-width:700px; max-height:520px; left:-8%; top:-14%;
  background:radial-gradient(circle,rgba(255,227,180,.26) 0%,rgba(245,181,68,0) 70%); animation:dsv-souffle 12s ease-in-out infinite;}
.ds-sect--final .fn-halo--sarcelle{width:46vw; height:46vw; max-width:560px; max-height:560px; right:-10%; top:26%;
  background:radial-gradient(circle,rgba(14,165,160,.32) 0%,rgba(14,165,160,0) 70%); animation:dsv-souffle 15s ease-in-out infinite 1.2s;}
.ds-sect--final .fn-halo--bleu{width:40vw; height:40vw; max-width:500px; max-height:500px; left:32%; bottom:-16%;
  background:radial-gradient(circle,rgba(37,99,235,.26) 0%,rgba(37,99,235,0) 70%); animation:dsv-souffle 17s ease-in-out infinite .6s;}

.ds-sect--final .fn-wrap{position:relative; z-index:2; max-width:1200px; margin-inline:auto;}
.ds-sect--final .fn-haut{
  display:grid; grid-template-columns:1fr; gap:clamp(30px,4vw,52px); align-items:center;
}
@media (min-width:980px){
  .ds-sect--final .fn-haut{grid-template-columns:minmax(0,1.02fr) minmax(0,1fr);}
}
.ds-sect--final .fn-texte{animation:dsv-monte .85s .05s both;}
.ds-sect--final .fn-eyebrow{
  display:inline-flex; align-items:center; gap:10px; margin:0 0 16px;
  font-family:'IBM Plex Mono',ui-monospace,monospace; font-weight:600;
  font-size:clamp(11px,1.05vw,13px); letter-spacing:.1em; text-transform:uppercase;
  color:var(--vt-teal-lt);
}
.ds-sect--final .fn-eyebrow::before{
  content:""; width:8px; height:8px; border-radius:50%;
  background:var(--vt-teal-lt); box-shadow:0 0 14px 2px rgba(111,227,214,.75);
  animation:dsv-battement 3.4s ease-in-out infinite;
}
.ds-sect--final .fn-titre{
  margin:0 0 18px; font-weight:800; line-height:1.06; letter-spacing:-.028em;
  font-size:clamp(29px,4.7vw,50px); max-width:16ch;
  background:linear-gradient(176deg,#FFFFFF 0%,#F2F7FF 34%,#C6D6EC 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.ds-sect--final .fn-intro{
  margin:0 0 clamp(24px,3vw,32px); max-width:58ch; color:var(--vt-ink-2);
  font-size:clamp(15px,1.5vw,18px); line-height:1.7;
}
.ds-sect--final .fn-ctas{display:flex; flex-wrap:wrap; gap:12px; margin-bottom:22px;}
.ds-sect--final .fn-cta{
  display:inline-flex; align-items:center; justify-content:center; text-align:center;
  text-decoration:none; font-weight:700; font-size:clamp(14px,1.4vw,15.5px);
  padding:15px clamp(18px,2.2vw,24px); border-radius:13px;
  transition:transform .3s ease, box-shadow .3s ease, background .3s ease, border-color .3s ease;
}
.ds-sect--final .fn-cta--primaire{
  color:#03121F; border:1px solid rgba(255,255,255,.30);
  background:linear-gradient(135deg,#FFE3B4 0%,#8FB2FF 48%,#6FE3D6 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.6), 0 26px 52px -22px rgba(37,99,235,.95);
}
.ds-sect--final .fn-cta--primaire:hover{transform:translateY(-2px); box-shadow:inset 0 1px 0 rgba(255,255,255,.7), 0 32px 64px -22px rgba(14,165,160,.95);}
.ds-sect--final .fn-cta--secondaire{
  color:var(--vt-ink); background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.16);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10);
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
}
.ds-sect--final .fn-cta--secondaire:hover{transform:translateY(-2px); background:rgba(143,178,255,.14); border-color:rgba(143,178,255,.45);}
.ds-sect--final .fn-cta:focus-visible{outline:2px solid var(--vt-teal-lt); outline-offset:3px;}
.ds-sect--final .fn-preuves{
  margin:0; font-family:'IBM Plex Mono',ui-monospace,monospace; font-weight:500;
  font-size:clamp(10.5px,1vw,12px); letter-spacing:.1em; text-transform:uppercase;
  color:var(--vt-ink-3); line-height:1.8;
}

/* --- scène SVG --- */
.ds-sect--final .fn-scene{
  position:relative; margin:0; animation:dsv-monte .9s .18s both;
}
.ds-sect--final .fn-scene::before{
  content:""; position:absolute; inset:-14% -8%; border-radius:50%;
  background:radial-gradient(circle at 30% 30%, rgba(255,227,180,.22) 0%, rgba(143,178,255,.10) 42%, rgba(4,16,31,0) 72%);
  filter:blur(28px); pointer-events:none;
}
.ds-sect--final .fn-svg{
  position:relative; display:block; width:100%; height:auto; max-width:100%;
  border-radius:20px;
  border:1px solid rgba(255,255,255,.12);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10), 0 40px 90px -50px rgba(0,0,0,.9);
  animation:dsv-flotte 12s ease-in-out infinite;
}
.ds-sect--final .fn-lueur{animation:dsv-jour 9s ease-in-out infinite;}
.ds-sect--final .fn-coche{stroke-dasharray:38; stroke-dashoffset:38; animation:dsv-trace 1.1s .9s cubic-bezier(.2,.7,.3,1) forwards;}
.ds-sect--final .fn-legende{
  margin-top:12px; text-align:center;
  font-family:'IBM Plex Mono',ui-monospace,monospace; font-weight:500;
  font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--vt-ink-3);
}

/* --- frise de journée --- */
.ds-sect--final .fn-frise{
  display:grid; grid-template-columns:1fr; gap:clamp(12px,1.6vw,18px);
  margin-top:clamp(34px,4.6vw,60px);
  padding:clamp(18px,2.4vw,26px);
  border-radius:20px;
  background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.02));
  border:1px solid rgba(255,255,255,.11);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10), 0 40px 90px -55px rgba(0,0,0,.9);
  -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px);
  animation:dsv-monte .85s .3s both;
}
@media (min-width:760px){ .ds-sect--final .fn-frise{grid-template-columns:repeat(3,1fr);} }
.ds-sect--final .fn-bloc{display:flex; flex-direction:column; gap:10px;}
.ds-sect--final .fn-heure{
  font-family:'IBM Plex Mono',ui-monospace,monospace; font-weight:600;
  font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--vt-ink-3);
}
.ds-sect--final .fn-barre{
  position:relative; display:block; height:14px; border-radius:8px; overflow:hidden;
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.10);
}
.ds-sect--final .fn-barre i{
  display:block; height:100%; width:100%; transform-origin:left center;
  animation:dsv-remplit 1.2s cubic-bezier(.2,.7,.3,1) both;
}
.ds-sect--final .fn-barre--terrain i{
  background:linear-gradient(90deg,rgba(143,178,255,.85),rgba(37,99,235,.85));
  animation-delay:.35s;
}
.ds-sect--final .fn-barre--rapport i{
  background:linear-gradient(90deg,rgba(37,99,235,.85),rgba(111,227,214,.9));
  animation-delay:.6s;
}
.ds-sect--final .fn-barre--vide{
  height:auto; min-height:44px; display:flex; align-items:center; justify-content:center;
  background:repeating-linear-gradient(115deg,rgba(111,227,214,.07) 0 10px,rgba(255,255,255,0) 10px 20px);
  border:1px dashed rgba(111,227,214,.34); border-radius:10px;
  box-shadow:inset 0 0 26px -8px rgba(14,165,160,.45);
}
.ds-sect--final .fn-barre--vide svg{width:34px; height:34px; display:block;}
.ds-sect--final .fn-coche-frise{stroke-dasharray:30; stroke-dashoffset:30; animation:dsv-trace 1s 1.05s cubic-bezier(.2,.7,.3,1) forwards;}
.ds-sect--final .fn-lib{font-size:14.5px; line-height:1.5; color:var(--vt-ink-2); font-weight:600;}
.ds-sect--final .fn-lib--libre{
  font-family:'IBM Plex Mono',ui-monospace,monospace; font-weight:600;
  font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--vt-teal-lt);
}
.ds-sect--final .fn-bloc--libre .fn-heure{color:var(--vt-teal-lt);}

@media (max-width:420px){
  .ds-sect--final .fn-titre{font-size:clamp(26px,8vw,32px);}
  .ds-sect--final .fn-cta{width:100%;}
  .ds-sect--final .fn-scene::before{inset:-6% -2%;}
}


/* =====================================================================
   KEYFRAMES (préfixe dsv-)
   ===================================================================== */
@keyframes dsv-monte{
  from{opacity:0; transform:translateY(18px);}
  to{opacity:1; transform:translateY(0);}
}
@keyframes dsv-souffle{
  0%,100%{opacity:.65; transform:scale(1);}
  50%{opacity:1; transform:scale(1.06);}
}
@keyframes dsv-flotte{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(-8px);}
}
@keyframes dsv-battement{
  0%,100%{opacity:1; box-shadow:0 0 14px 2px rgba(111,227,214,.75);}
  50%{opacity:.55; box-shadow:0 0 22px 5px rgba(111,227,214,.35);}
}
@keyframes dsv-jour{
  0%,100%{opacity:.72;}
  50%{opacity:1;}
}
@keyframes dsv-ouvre{
  from{opacity:0; transform:translateY(-8px);}
  to{opacity:1; transform:translateY(0);}
}
@keyframes dsv-remplit{
  from{transform:scaleX(0);}
  to{transform:scaleX(1);}
}
@keyframes dsv-trace{
  to{stroke-dashoffset:0;}
}


/* =====================================================================
   MOUVEMENT RÉDUIT
   ===================================================================== */
@media (prefers-reduced-motion:reduce){
  .ds-sect--tarifs *,
  .ds-sect--faq *,
  .ds-sect--final *{
    animation:none !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
  .ds-sect--tarifs .tf-carte,
  .ds-sect--faq .fq-item,
  .ds-sect--final .fn-texte,
  .ds-sect--final .fn-scene,
  .ds-sect--final .fn-frise,
  .ds-sect--tarifs .tf-tete,
  .ds-sect--tarifs .bascule-periode,
  .ds-sect--tarifs .tf-rappel,
  .ds-sect--faq .fq-tete,
  .ds-sect--faq .fq-liste{opacity:1 !important; transform:none !important;}
  .ds-sect--final .fn-barre i{transform:scaleX(1) !important;}
  .ds-sect--final .fn-coche,
  .ds-sect--final .fn-coche-frise{stroke-dashoffset:0 !important;}
  .ds-sect--tarifs .tf-carte:hover,
  .ds-sect--faq .fq-item:hover,
  .ds-sect--final .fn-cta:hover{transform:none !important;}
}

/* ---------- Bascule des phases RBQ : priorité sur les règles de section ---------- */
[data-phase="obligatoire"] .ds-sect--rbq .rbq-compteur-zone { display: none; }
[data-phase="obligatoire"] .ds-sect--rbq .rbq-chute { display: block; }

/* ---------- Plancher de lisibilité mobile : aucune étiquette sous 11 px ---------- */
@media (max-width: 640px) {
  .v-terrain__fk { font-size: 11px !important; letter-spacing: .08em; }
  .v-terrain__fv { font-size: 12.5px !important; }
  .ds-offline__tag { font-size: 11px !important; }
  .dsm-card-sub, .dsm-mono, .ds-mono, .sous-mono,
  .dsq-note, .dsq-eyebrow, .dsq-mono, .tf-rappel__txt, .fn-preuves { font-size: 11px !important; }
}


/* ============ HOMEPAGE V2 — lot A ============ */
/* ==========================================================================
   LOT A — Homepage V2 · sections 01 à 04
   01 Hero (.v-terrain, ajout .v-terrain__cats) · 02 Workflow (.ds-sect--workflow)
   03 Trois portes (.ds-sect--solutions) · 04 Résidentiel (.ds-sect--residentiel)
   Tout est scopé ; aucun composant commun ni variable n'est redéclaré.
   Keyframes préfixés dsv-. Ambre = l'humain ; bleu → sarcelle = le système.
   ========================================================================== */


/* ==========================================================================
   01 — HERO : ligne de catégories + chip « gain de temps »
   ========================================================================== */
.v-terrain__cats{
  list-style:none;margin:-8px 0 26px;padding:0;
  display:flex;flex-wrap:wrap;align-items:center;gap:6px 0;
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:11.5px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;
  color:var(--vt-ink-3);
}
.v-terrain__cats li{white-space:nowrap;}
.v-terrain__cats li+li::before{content:"·";margin:0 9px;color:rgba(111,227,214,.7);font-weight:700;}
.v-terrain__rise--7{animation-delay:.59s}
.v-terrain__chip--gain{
  border-color:rgba(245,181,68,.42);
  background:rgba(245,181,68,.08);
  color:#FFE9C6;
}
.v-terrain__chip--gain strong{font-weight:700;}
.v-terrain__chip--gain .v-terrain__star{color:var(--vt-amber-lt);margin-left:1px;}
@media (max-width:430px){
  .v-terrain__cats{font-size:11px;letter-spacing:.1em;}
  .v-terrain__cats li+li::before{margin:0 7px;}
  .v-terrain__chip--gain{white-space:normal;}
}


/* ==========================================================================
   02 — WORKFLOW · 14 ÉTAPES  (.ds-sect--workflow)
   ========================================================================== */
.ds-sect--workflow{
  background:
    radial-gradient(120% 92% at 10% 4%, rgba(37,99,235,.34), transparent 58%),
    radial-gradient(95% 85% at 92% 22%, rgba(14,165,160,.26), transparent 62%),
    radial-gradient(70% 60% at 46% 112%, rgba(245,181,68,.13), transparent 70%),
    linear-gradient(168deg,#04101F 0%,#07203A 44%,#0A2A42 74%,#0A1C24 100%);
}
.ds-sect--workflow .wf-ancre{position:absolute;top:0;left:0;width:0;height:0;}
.ds-sect--workflow .wf-atmo{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;}
.ds-sect--workflow .wf-orb{position:absolute;border-radius:50%;filter:blur(70px);opacity:.55;}
.ds-sect--workflow .wf-orb--blue{width:46vw;height:46vw;max-width:620px;max-height:620px;left:-12vw;top:-10vw;background:radial-gradient(circle,rgba(37,99,235,.55),transparent 68%);animation:dsv-wf-derive 26s ease-in-out infinite;}
.ds-sect--workflow .wf-orb--teal{width:38vw;height:38vw;max-width:520px;max-height:520px;right:-8vw;top:18%;background:radial-gradient(circle,rgba(14,165,160,.45),transparent 68%);animation:dsv-wf-derive 32s ease-in-out infinite reverse;}
.ds-sect--workflow .wf-orb--amber{width:30vw;height:30vw;max-width:400px;max-height:400px;left:38%;bottom:-14vw;background:radial-gradient(circle,rgba(245,181,68,.28),transparent 70%);animation:dsv-wf-souffle 18s ease-in-out infinite;}

.ds-sect--workflow .wf-head{max-width:820px;margin-bottom:clamp(40px,5vw,64px);}
.ds-sect--workflow .wf-intro{margin:0;max-width:70ch;font-size:15.5px;line-height:1.65;color:var(--vt-ink-2);}

/* --- le fil : 7 pastilles par rangée, deux rangées, retour du fil à droite --- */
.ds-sect--workflow .wf-rail{
  --g:clamp(10px,1.2vw,16px);
  --gr:56px;
  --y:17px;              /* hauteur du fil = centre des pastilles */
  list-style:none;margin:0;padding:0 18px;
  display:grid;grid-template-columns:repeat(7,minmax(0,1fr));
  column-gap:var(--g);row-gap:var(--gr);
  position:relative;
}
.ds-sect--workflow .wf-step{position:relative;min-width:0;}
.ds-sect--workflow .wf-step::before{
  content:"";position:absolute;top:var(--y);left:calc(var(--g) * -1);right:0;height:2px;z-index:0;
  background:linear-gradient(90deg,rgba(37,99,235,.75),rgba(14,165,160,.75));
  box-shadow:0 0 12px rgba(111,227,214,.35);
  transform-origin:left center;
}
.ds-sect--workflow .wf-step:nth-child(1)::before,
.ds-sect--workflow .wf-step:nth-child(8)::before{left:-18px;border-radius:2px 0 0 2px;}
.ds-sect--workflow .wf-step:nth-child(7)::before,
.ds-sect--workflow .wf-step:nth-child(14)::before{right:-18px;border-radius:0 2px 2px 0;}
.ds-sect--workflow .wf-step:nth-child(7)::after{
  content:"";position:absolute;top:var(--y);right:-19px;width:2px;height:calc(100% + var(--gr));z-index:0;
  background:linear-gradient(180deg,rgba(14,165,160,.75),rgba(37,99,235,.75));
  box-shadow:0 0 12px rgba(111,227,214,.3);
  transform-origin:top center;
}
/* tracé du fil à l'entrée dans le viewport */
.ds-sect--workflow[data-anime] .wf-step::before{transform:scaleX(0);}
.ds-sect--workflow[data-anime] .wf-step:nth-child(7)::after{transform:scaleY(0);}
.ds-sect--workflow[data-anime].est-visible .wf-step::before{animation:dsv-wf-trace .5s cubic-bezier(.2,.7,.25,1) forwards;animation-delay:calc(var(--i,0) * .09s);}
.ds-sect--workflow[data-anime].est-visible .wf-step:nth-child(7)::after{animation:dsv-wf-trace-v .5s cubic-bezier(.2,.7,.25,1) .68s forwards;}
.ds-sect--workflow[data-anime] .wf-step__btn{opacity:0;transform:translateY(14px);}
.ds-sect--workflow[data-anime].est-visible .wf-step__btn{animation:dsv-wf-plante .7s cubic-bezier(.2,.7,.25,1) forwards;animation-delay:calc(.12s + var(--i,0) * .09s);}

/* --- la carte-étape (bouton) --- */
.ds-sect--workflow .wf-step__btn{
  display:flex;flex-direction:column;align-items:center;gap:8px;
  width:100%;margin:var(--y) 0 0;padding:30px 10px 14px;
  border-radius:16px;cursor:pointer;text-align:center;
  font:inherit;color:var(--vt-ink);
  background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.028));
  border:1px solid rgba(255,255,255,.11);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 40px 90px -50px rgba(0,0,0,.9);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  transition:transform .22s cubic-bezier(.22,.7,.24,1),border-color .22s ease,box-shadow .22s ease;
}
.ds-sect--workflow .wf-step:hover .wf-step__btn,
.ds-sect--workflow .wf-step.is-open .wf-step__btn,
.ds-sect--workflow .wf-step__btn:focus-visible{
  transform:translateY(-6px);border-color:rgba(111,227,214,.4);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 46px 100px -48px rgba(0,0,0,.95),0 0 0 1px rgba(111,227,214,.12);
}
.ds-sect--workflow .wf-step__btn:focus-visible{outline:3px solid rgba(111,227,214,.6);outline-offset:3px;}
.ds-sect--workflow .wf-step__num{
  position:absolute;top:0;left:50%;transform:translateX(-50%);z-index:2;
  width:36px;height:36px;border-radius:50%;
  display:grid;place-items:center;
  font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:12px;font-weight:600;letter-spacing:.04em;
  color:var(--vt-ink);
  background:linear-gradient(180deg,#0E2A44,#081A2E);
  border:1px solid rgba(143,178,255,.45);
  box-shadow:0 0 0 4px rgba(4,16,31,.95),0 8px 18px -8px rgba(0,0,0,.9);
  transition:border-color .25s ease,box-shadow .25s ease,background .25s ease,color .25s ease;
}
.ds-sect--workflow .wf-step--humain .wf-step__num{border-color:rgba(245,181,68,.7);color:#FFE9C6;}
.ds-sect--workflow .wf-step.is-lu .wf-step__num{border-color:var(--vt-teal-lt);box-shadow:0 0 0 4px rgba(4,16,31,.95),0 0 18px rgba(111,227,214,.55);}
.ds-sect--workflow .wf-step--humain.is-lu .wf-step__num{border-color:var(--vt-amber);box-shadow:0 0 0 4px rgba(4,16,31,.95),0 0 18px rgba(245,181,68,.5);}
.ds-sect--workflow .wf-step.is-ici .wf-step__num{background:linear-gradient(140deg,var(--vt-teal-lt),var(--vt-blue));color:#04101F;border-color:transparent;}
.ds-sect--workflow .wf-step--humain.is-ici .wf-step__num{background:linear-gradient(140deg,var(--vt-amber-lt),var(--vt-amber));}
/* pastille « RT » (initiales d'un client fictif) qui parcourt le fil */
.ds-sect--workflow .wf-token{
  position:absolute;top:-9px;right:-16px;
  padding:2px 6px;border-radius:999px;
  font-size:11px;font-weight:600;letter-spacing:.06em;
  color:#04101F;background:var(--vt-ink);
  box-shadow:0 6px 14px -6px rgba(0,0,0,.9);
  opacity:0;transform:scale(.6);transition:opacity .2s ease,transform .2s cubic-bezier(.22,.7,.24,1);
}
.ds-sect--workflow .wf-step.is-ici .wf-token{opacity:1;transform:scale(1);}
.ds-sect--workflow .wf-step__lock{
  position:absolute;top:2px;right:10px;z-index:2;
  width:20px;height:20px;border-radius:50%;display:grid;place-items:center;
  color:var(--vt-amber);background:rgba(38,26,10,.92);
  border:1px solid rgba(245,181,68,.5);
}
.ds-sect--workflow .wf-step__lock svg{width:12px;height:12px;}
.ds-sect--workflow .wf-step__ico{
  width:42px;height:42px;display:grid;place-items:center;border-radius:12px;
  color:var(--vt-blue-lt);
  background:linear-gradient(180deg,rgba(143,178,255,.14),rgba(143,178,255,.04));
  border:1px solid rgba(143,178,255,.2);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
}
.ds-sect--workflow .wf-step__ico svg{width:23px;height:23px;}
.ds-sect--workflow .wf-step__ico--teal{color:var(--vt-teal-lt);background:linear-gradient(180deg,rgba(111,227,214,.16),rgba(14,165,160,.05));border-color:rgba(111,227,214,.3);}
.ds-sect--workflow .wf-step__lbl{font-size:14px;font-weight:700;letter-spacing:-.01em;line-height:1.2;}
.ds-sect--workflow .wf-step__sub{font-size:11px;letter-spacing:.08em;line-height:1.45;}
.ds-sect--workflow .wf-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}

/* --- infobulle en carte de verre --- */
.ds-sect--workflow .wf-tip{
  --tx:-50%;
  position:absolute;top:calc(100% + 10px);left:50%;z-index:8;
  width:min(300px,86vw);padding:14px 16px 13px;
  background:rgba(7,25,45,.94);
  opacity:0;visibility:hidden;pointer-events:none;
  transform:translate(var(--tx),6px);
  transition:opacity .22s cubic-bezier(.22,.7,.24,1),transform .22s cubic-bezier(.22,.7,.24,1),visibility 0s linear .22s;
}
.ds-sect--workflow .wf-tip:hover{transform:translate(var(--tx),0);}
.ds-sect--workflow .wf-step:hover{z-index:9;}
.ds-sect--workflow .wf-step:hover .wf-tip,
.ds-sect--workflow .wf-step:focus-within .wf-tip,
.ds-sect--workflow .wf-step.is-open .wf-tip{
  opacity:1;visibility:visible;pointer-events:auto;
  transform:translate(var(--tx),0);transition-delay:0s;
}
.ds-sect--workflow .wf-step:nth-child(1) .wf-tip,
.ds-sect--workflow .wf-step:nth-child(8) .wf-tip{--tx:0;left:0;}
.ds-sect--workflow .wf-step:nth-child(7) .wf-tip,
.ds-sect--workflow .wf-step:nth-child(14) .wf-tip{--tx:0;left:auto;right:0;}
.ds-sect--workflow .wf-step--garde .wf-tip{border-color:rgba(245,181,68,.45);}
.ds-sect--workflow .wf-tip__k{margin:0 0 8px;font-size:11px;color:var(--vt-teal-lt);}
.ds-sect--workflow .wf-tip__h{color:var(--vt-amber);}
.ds-sect--workflow .wf-tip__t{margin:0;font-size:13.5px;line-height:1.55;color:var(--vt-ink);}
.ds-sect--workflow .wf-tip__g{margin:10px 0 0;padding-top:8px;border-top:1px solid rgba(245,181,68,.22);font-size:11px;color:var(--vt-amber-lt);}

/* --- ligne de clôture, étiquettes, CTA --- */
.ds-sect--workflow .wf-cloture{
  margin:clamp(34px,4vw,48px) auto 0;max-width:62ch;text-align:center;
  font-size:clamp(1.05rem,1.4vw,1.25rem);line-height:1.55;font-weight:600;color:var(--vt-ink);
  text-wrap:balance;
}
.ds-sect--workflow .wf-pied{
  margin-top:clamp(22px,3vw,32px);
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px 22px;
}
.ds-sect--workflow .wf-tags{margin:0;display:flex;flex-wrap:wrap;gap:6px 0;font-size:11.5px;}
.ds-sect--workflow .wf-tags span{white-space:nowrap;}
.ds-sect--workflow .wf-tags span+span::before{content:"·";margin:0 9px;color:rgba(111,227,214,.7);font-weight:700;}
.ds-sect--workflow .wf-cta{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;}
.ds-sect--workflow .wf-lire{border:0;cursor:pointer;font-family:inherit;}
.ds-sect--workflow .wf-lire:focus-visible{outline:3px solid rgba(111,227,214,.6);outline-offset:3px;}
.ds-sect--workflow .wf-illu{text-align:right;}

/* --- le fil du dossier : diagramme des entités reliées --- */
.ds-sect--workflow .wf-fil{margin-top:clamp(64px,8vw,104px);padding-top:clamp(40px,5vw,60px);border-top:1px solid rgba(255,255,255,.08);}
.ds-sect--workflow .wf-fil__head{max-width:820px;margin-bottom:clamp(30px,4vw,48px);}
.ds-sect--workflow .wf-fil__h3{
  margin:0 0 16px;font-size:clamp(1.5rem,.9rem + 1.6vw,2.3rem);line-height:1.1;font-weight:800;letter-spacing:-.025em;
  color:var(--vt-ink);text-wrap:balance;
}
.ds-sect--workflow .wf-ents{
  display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.8fr);
  gap:clamp(20px,3vw,44px);align-items:center;
}
.ds-sect--workflow .wf-ents__diag{position:relative;aspect-ratio:760/520;min-width:0;}
.ds-sect--workflow .wf-ents__diag svg{position:absolute;inset:0;width:100%;height:100%;display:block;overflow:visible;}
.ds-sect--workflow .wf-lien{
  fill:none;stroke:url(#wf-rim);stroke-width:1.4;stroke-linecap:round;opacity:.42;
  stroke-dasharray:420;stroke-dashoffset:0;
  transition:opacity .2s ease,stroke-width .2s ease;
}
.ds-sect--workflow .wf-lien.is-on{opacity:1;stroke-width:2.2;filter:drop-shadow(0 0 6px rgba(111,227,214,.6));}
.ds-sect--workflow[data-anime] .wf-lien{stroke-dashoffset:420;}
.ds-sect--workflow[data-anime].est-visible .wf-lien{animation:dsv-wf-lien .9s cubic-bezier(.2,.7,.25,1) forwards;animation-delay:calc(.3s + var(--i,0) * .06s);}
.ds-sect--workflow .wf-centre{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:1;
  width:clamp(128px,22%,168px);padding:12px 12px 11px;text-align:center;border-radius:16px;
  display:flex;flex-direction:column;gap:3px;
  background:linear-gradient(168deg,rgba(12,32,54,.96),rgba(7,20,36,.95));
  border:1px solid rgba(111,227,214,.45);
  box-shadow:0 0 0 6px rgba(4,16,31,.85),0 0 40px -6px rgba(37,99,235,.6),0 30px 70px -46px rgba(0,0,0,.95);
}
.ds-sect--workflow .wf-centre__k{font-size:11px;color:var(--vt-teal-lt);}
.ds-sect--workflow .wf-centre__t{font-size:14px;font-weight:800;letter-spacing:-.01em;color:var(--vt-ink);line-height:1.2;}
.ds-sect--workflow .wf-centre__s{font-size:11px;letter-spacing:.08em;}
.ds-sect--workflow .wf-ents__list{list-style:none;margin:0;padding:0;position:absolute;inset:0;z-index:2;}
.ds-sect--workflow .wf-ent{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);}
.ds-sect--workflow .wf-ent__btn{
  display:inline-flex;align-items:center;gap:7px;
  padding:7px 12px 7px 9px;border-radius:999px;cursor:pointer;
  font:inherit;font-size:12.5px;font-weight:700;letter-spacing:-.005em;white-space:nowrap;
  color:#DCE9F8;
  background:linear-gradient(168deg,rgba(12,32,54,.94),rgba(7,20,36,.93));
  border:1px solid rgba(255,255,255,.16);
  box-shadow:0 0 0 4px rgba(4,16,31,.85),0 14px 28px -16px rgba(0,0,0,.95);
  transition:border-color .2s ease,color .2s ease,transform .2s cubic-bezier(.22,.7,.24,1),box-shadow .2s ease;
}
.ds-sect--workflow .wf-ent__btn::before{
  content:"";width:7px;height:7px;border-radius:50%;flex:none;
  background:linear-gradient(140deg,var(--vt-blue),var(--vt-teal));
  box-shadow:0 0 0 3px rgba(14,165,160,.18);
}
.ds-sect--workflow .wf-ent__btn:hover,
.ds-sect--workflow .wf-ent__btn:focus-visible,
.ds-sect--workflow .wf-ent.is-on .wf-ent__btn{
  color:#fff;border-color:rgba(111,227,214,.65);transform:translateY(-2px);
  box-shadow:0 0 0 4px rgba(4,16,31,.85),0 0 22px -4px rgba(111,227,214,.6),0 14px 28px -16px rgba(0,0,0,.95);
}
.ds-sect--workflow .wf-ent__btn:focus-visible{outline:3px solid rgba(111,227,214,.6);outline-offset:3px;}
.ds-sect--workflow .wf-ents.js .wf-ent__txt{display:none;}
.ds-sect--workflow .wf-ent__txt{margin:8px 0 0;font-size:13.5px;line-height:1.55;color:var(--vt-ink-2);}
.ds-sect--workflow .wf-ents__panel{padding:22px 24px;min-height:200px;}
.ds-sect--workflow .wf-ents__panel-k{margin:0 0 10px;color:var(--vt-teal-lt);}
.ds-sect--workflow .wf-ents__panel-n{margin:0 0 8px;font-size:clamp(1.15rem,1.6vw,1.4rem);font-weight:800;letter-spacing:-.02em;color:var(--vt-ink);}
.ds-sect--workflow .wf-ents__panel-t{margin:0;font-size:14.5px;line-height:1.62;color:var(--vt-ink-2);}
/* encadré honnête : planifié */
.ds-sect--workflow .wf-planifie{
  margin:clamp(26px,3vw,36px) auto 0;max-width:820px;
  padding:14px 18px;border-radius:14px;
  border:1px dashed rgba(155,176,204,.4);background:rgba(255,255,255,.025);
  display:grid;gap:8px;
}
.ds-sect--workflow .wf-planifie__tag{color:var(--vt-ink-2);}
.ds-sect--workflow .wf-planifie p{margin:0;font-size:13.5px;line-height:1.6;color:var(--vt-ink-3);}

/* --- responsive --- */
@media (max-width:1100px){
  .ds-sect--workflow .wf-ents{grid-template-columns:1fr;}
  .ds-sect--workflow .wf-ents__panel{min-height:0;}
}
@media (max-width:900px){
  /* frise verticale : fil à gauche, une étape par ligne, carte dépliée au toucher */
  .ds-sect--workflow .wf-rail{--gr:14px;--y:0px;grid-template-columns:1fr;padding:0;}
  .ds-sect--workflow .wf-step::before{
    top:calc(var(--gr) * -1);left:17px;right:auto;width:2px;height:calc(var(--gr) + 34px);
    background:linear-gradient(180deg,rgba(37,99,235,.75),rgba(14,165,160,.75));
    transform-origin:top center;border-radius:0 !important;
  }
  .ds-sect--workflow .wf-step:nth-child(1)::before{display:none;}
  .ds-sect--workflow .wf-step:nth-child(7)::after{display:none;}
  .ds-sect--workflow .wf-step__btn{
    flex-direction:row;flex-wrap:wrap;align-items:center;text-align:left;gap:4px 12px;
    margin:0;padding:12px 14px 12px 56px;min-height:64px;
  }
  .ds-sect--workflow .wf-step__num{left:18px;top:50%;transform:translate(-50%,-50%);}
  .ds-sect--workflow .wf-token{top:-10px;right:-14px;}
  .ds-sect--workflow .wf-step__lock{top:auto;bottom:10px;right:12px;}
  .ds-sect--workflow .wf-step__ico{width:36px;height:36px;order:0;}
  .ds-sect--workflow .wf-step__ico svg{width:20px;height:20px;}
  .ds-sect--workflow .wf-step__lbl{order:1;flex:1 1 auto;}
  .ds-sect--workflow .wf-step__sub{order:2;flex:1 1 100%;padding-left:48px;}
  .ds-sect--workflow .wf-step:hover .wf-step__btn,
  .ds-sect--workflow .wf-step.is-open .wf-step__btn{transform:none;}
  .ds-sect--workflow .wf-tip{
    position:static;width:auto;margin:8px 0 0 36px;
    opacity:1;visibility:visible;transform:none;transition:none;
    display:none;pointer-events:auto;
  }
  .ds-sect--workflow .wf-step.is-open .wf-tip{display:block;}
  .ds-sect--workflow .wf-tip:hover,
  .ds-sect--workflow .wf-step:hover .wf-tip,
  .ds-sect--workflow .wf-step:focus-within .wf-tip,
  .ds-sect--workflow .wf-step.is-open .wf-tip{transform:none;}
  .ds-sect--workflow .wf-pied{grid-template-columns:1fr;text-align:center;}
  .ds-sect--workflow .wf-tags{justify-content:center;}
  .ds-sect--workflow .wf-illu{text-align:center;}
  /* le diagramme devient une liste */
  .ds-sect--workflow .wf-ents__diag{aspect-ratio:auto;}
  .ds-sect--workflow .wf-ents__diag svg,
  .ds-sect--workflow .wf-centre,
  .ds-sect--workflow .wf-ents__panel{display:none;}
  .ds-sect--workflow .wf-ents__list{position:static;display:grid;gap:10px;}
  .ds-sect--workflow .wf-ent{position:static;transform:none;padding:12px 14px;border-radius:14px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.035);}
  .ds-sect--workflow .wf-ent__btn,
  .ds-sect--workflow .wf-ent.is-on .wf-ent__btn,
  .ds-sect--workflow .wf-ent__btn:hover{white-space:normal;box-shadow:none;background:transparent;border-color:transparent;padding:0;cursor:default;transform:none !important;color:var(--vt-ink);}
  .ds-sect--workflow .wf-ents.js .wf-ent__txt{display:block;}
}
@media (max-width:430px){
  .ds-sect--workflow .wf-step__sub{padding-left:0;}
  .ds-sect--workflow .wf-tip{margin-left:0;}
}

/* --- keyframes (dsv-wf-*) --- */
@keyframes dsv-wf-trace{from{transform:scaleX(0);}to{transform:scaleX(1);}}
@keyframes dsv-wf-trace-v{from{transform:scaleY(0);}to{transform:scaleY(1);}}
@keyframes dsv-wf-plante{to{opacity:1;transform:translateY(0);}}
@keyframes dsv-wf-lien{to{stroke-dashoffset:0;}}
@keyframes dsv-wf-derive{0%,100%{transform:translate3d(0,0,0);}50%{transform:translate3d(3%,-4%,0);}}
@keyframes dsv-wf-souffle{0%,100%{transform:scale(1);opacity:.55;}50%{transform:scale(1.12);opacity:.85;}}


/* ==========================================================================
   03 — TROIS PORTES D'ENTRÉE  (.ds-sect--solutions)
   ========================================================================== */
.ds-sect--solutions{
  background:
    radial-gradient(110% 80% at 88% 0%, rgba(14,165,160,.22), transparent 60%),
    radial-gradient(90% 70% at 6% 100%, rgba(37,99,235,.22), transparent 62%),
    linear-gradient(178deg,#04101F 0%,#061A2E 46%,#0A2A42 100%);
}
.ds-sect--solutions .sol-atmo{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;}
.ds-sect--solutions .sol-halo{position:absolute;border-radius:50%;filter:blur(70px);opacity:.5;}
.ds-sect--solutions .sol-halo--teal{width:min(640px,80vw);aspect-ratio:1;right:-14%;top:-24%;background:radial-gradient(circle,rgba(14,165,160,.42),transparent 66%);}
.ds-sect--solutions .sol-halo--bleu{width:min(560px,70vw);aspect-ratio:1;left:-12%;bottom:-26%;background:radial-gradient(circle,rgba(37,99,235,.42),transparent 66%);}
.ds-sect--solutions .sol-head{max-width:760px;margin-bottom:clamp(34px,4.5vw,56px);}
.ds-sect--solutions .sol-grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(14px,1.8vw,24px);
}
.ds-sect--solutions .sol-card{
  display:flex;flex-direction:column;min-width:0;padding:0;overflow:hidden;
  transition:transform .3s cubic-bezier(.22,.7,.24,1),border-color .3s ease,box-shadow .3s ease,opacity .3s ease;
}
.ds-sect--solutions .sol-card:hover{transform:translateY(-4px);box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 46px 100px -48px rgba(0,0,0,.95),0 0 0 1px rgba(111,227,214,.12);}
.ds-sect--solutions .sol-grid:hover .sol-card:not(:hover){opacity:.62;}
.ds-sect--solutions .sol-card__scene{
  margin:0;position:relative;aspect-ratio:320/200;
  background:#04101F;border-bottom:1px solid rgba(255,255,255,.1);
}
.ds-sect--solutions .sol-card__scene::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(4,16,31,0) 70%,rgba(4,16,31,.55) 100%);
}
.ds-sect--solutions .sol-card__scene svg{display:block;width:100%;height:100%;}
/* la lumière humaine (ambre) s'allume au survol — motif de la lampe du héros */
.ds-sect--solutions .sol-win{opacity:.4;transition:opacity .3s ease;}
.ds-sect--solutions .sol-card:hover .sol-win{opacity:1;}
.ds-sect--solutions .sol-card__body{
  padding:clamp(18px,2vw,26px);display:flex;flex-direction:column;gap:12px;flex:1 1 auto;
}
.ds-sect--solutions .sol-card__k{margin:0;color:var(--vt-teal-lt);}
.ds-sect--solutions .sol-card__t{
  margin:0;font-size:clamp(1.15rem,1.5vw,1.4rem);line-height:1.2;font-weight:800;letter-spacing:-.02em;color:var(--vt-ink);
  text-wrap:balance;
}
.ds-sect--solutions .sol-card__p{margin:0;font-size:14.5px;line-height:1.62;color:var(--vt-ink-2);}
.ds-sect--solutions .sol-card__pts{list-style:none;margin:2px 0 0;padding:0;display:grid;gap:7px;}
.ds-sect--solutions .sol-card__pts li{
  position:relative;padding-left:18px;font-size:13.5px;line-height:1.5;color:var(--vt-ink);
}
.ds-sect--solutions .sol-card__pts li::before{
  content:"";position:absolute;left:0;top:.55em;width:7px;height:7px;border-radius:50%;
  background:linear-gradient(140deg,var(--vt-blue),var(--vt-teal));
  box-shadow:0 0 0 3px rgba(14,165,160,.16);
}
.ds-sect--solutions .sol-card__pour{margin:auto 0 0;padding-top:12px;font-size:11px;line-height:1.5;color:var(--vt-amber-lt);}
.ds-sect--solutions .sol-card__forfait{margin:-6px 0 0;font-size:11px;color:var(--vt-ink-3);}
.ds-sect--solutions .sol-card__cta{align-self:flex-start;margin-top:4px;}
.ds-sect--solutions .sol-card__cta:focus-visible{outline:3px solid rgba(111,227,214,.6);outline-offset:4px;}
@media (max-width:900px){
  .ds-sect--solutions .sol-grid{grid-template-columns:1fr;}
  .ds-sect--solutions .sol-grid:hover .sol-card:not(:hover){opacity:1;}
  .ds-sect--solutions .sol-card__scene{aspect-ratio:auto;height:160px;}
  .ds-sect--solutions .sol-card__pour{margin-top:4px;}
}


/* ==========================================================================
   04 — RÉSIDENTIEL  (.ds-sect--residentiel, hérite de .ds-sect--soiree)
   ========================================================================== */
.ds-sect--residentiel .res-head{max-width:840px;margin-bottom:clamp(36px,5vw,56px);}
.ds-sect--residentiel .res-titre{text-shadow:0 12px 40px rgba(2,10,24,.55),0 0 46px rgba(245,181,68,.14);}
.ds-sect--residentiel .res-titre em{
  font-style:normal;
  background:linear-gradient(96deg,#FFE7C0 0%,#F5B544 52%,#FFD79A 100%);
  -webkit-background-clip:text;background-clip:text;
  color:transparent;-webkit-text-fill-color:transparent;
}
@supports not ((-webkit-background-clip:text) or (background-clip:text)){
  .ds-sect--residentiel .res-titre em{color:var(--vt-amber);-webkit-text-fill-color:var(--vt-amber);}
}
.ds-sect--residentiel .res-titre .v-terrain__star{color:var(--vt-ink-3);-webkit-text-fill-color:var(--vt-ink-3);font-weight:600;}
.ds-sect--residentiel .res-sous,
.ds-sect--residentiel .res-h3-soir{
  animation:dsv-monte .85s cubic-bezier(.22,.8,.3,1) both;
  animation-delay:calc(var(--n,0) * 95ms);
}
.ds-sect--residentiel .res-sous{
  margin:0;max-width:62ch;
  font-size:clamp(1rem,1.35vw,1.12rem);line-height:1.65;color:var(--vt-ink-2);
}
.ds-sect--residentiel .res-h3-soir{
  margin:0 0 16px;font-size:clamp(1.5rem,3.4vw,2.35rem);line-height:1.1;font-weight:800;letter-spacing:-.022em;
  color:var(--vt-ink);text-shadow:0 0 46px rgba(245,181,68,.18);
}

/* --- parcours bout en bout --- */
.ds-sect--residentiel .res-parcours{
  margin-top:clamp(38px,5vw,58px);padding:clamp(20px,2.6vw,30px);
  border-radius:20px;
  border:1px solid rgba(255,255,255,.11);
  background:
    radial-gradient(120% 160% at 90% 0%, rgba(14,165,160,.12), rgba(14,165,160,0) 60%),
    rgba(255,255,255,.045);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 40px 90px -50px rgba(0,0,0,.9);
}
.ds-sect--residentiel .res-chaine{
  list-style:none;margin:6px 0 0;padding:0;
  display:flex;align-items:flex-start;position:relative;
}
.ds-sect--residentiel .res-chaine::before{
  content:"";position:absolute;left:calc(100% / 22);right:calc(100% / 22);top:9px;height:2px;
  background:linear-gradient(90deg,var(--vt-blue),var(--vt-teal));opacity:.8;
  box-shadow:0 0 12px rgba(111,227,214,.35);
  transform-origin:left center;
}
.ds-sect--residentiel[data-anime] .res-chaine::before{transform:scaleX(0);}
.ds-sect--residentiel[data-anime].est-visible .res-chaine::before{animation:dsv-res-trace 1.1s cubic-bezier(.2,.7,.25,1) .2s forwards;}
.ds-sect--residentiel .res-chaine li{
  flex:1 1 0;min-width:0;position:relative;text-align:center;padding:26px 2px 0;
  font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11px;font-weight:500;
  letter-spacing:.08em;text-transform:uppercase;color:var(--vt-ink-2);line-height:1.35;
  overflow-wrap:anywhere;
}
.ds-sect--residentiel .res-chaine li::before{
  content:"";position:absolute;top:3px;left:50%;transform:translateX(-50%);
  width:14px;height:14px;border-radius:50%;
  background:#071A2E;border:2px solid var(--vt-teal-lt);
  box-shadow:0 0 0 4px rgba(4,16,31,.85),0 0 12px rgba(111,227,214,.5);
}
.ds-sect--residentiel .res-chaine li.res-chaine--humain{color:var(--vt-amber-lt);}
.ds-sect--residentiel .res-chaine li.res-chaine--humain::before{
  border-color:var(--vt-amber);background:#261A0A;
  box-shadow:0 0 0 4px rgba(4,16,31,.85),0 0 12px rgba(245,181,68,.55);
}
.ds-sect--residentiel[data-anime] .res-chaine li{opacity:0;transform:translateY(8px);}
.ds-sect--residentiel[data-anime].est-visible .res-chaine li{animation:dsv-res-point .5s cubic-bezier(.2,.7,.25,1) forwards;animation-delay:calc(.15s + var(--i,0) * .09s);}
.ds-sect--residentiel .res-chaine__leg{
  margin:18px 0 0;display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:11px;
}
.ds-sect--residentiel .res-chaine__dot{width:9px;height:9px;border-radius:50%;flex:none;}
.ds-sect--residentiel .res-chaine__dot--teal{background:var(--vt-teal-lt);box-shadow:0 0 0 3px rgba(111,227,214,.16);}
.ds-sect--residentiel .res-chaine__dot--amber{background:var(--vt-amber);box-shadow:0 0 0 3px rgba(245,181,68,.16);}
.ds-sect--residentiel .res-chaine__sep{color:rgba(111,227,214,.7);margin:0 4px;}

/* --- méthode en 3 étapes (bloc déplacé de #comment) --- */
.ds-sect--residentiel .res-methode{margin-top:clamp(48px,6vw,72px);scroll-margin-top:90px;}
.ds-sect--residentiel .res-h3{
  margin:0;max-width:760px;font-size:clamp(1.55rem,3.6vw,2.6rem);line-height:1.08;font-weight:800;letter-spacing:-.02em;
  color:var(--vt-ink);text-wrap:balance;
}
.ds-sect--residentiel .res-steps{
  --res-gap:clamp(16px,2.2vw,26px);
  position:relative;list-style:none;margin:clamp(30px,4vw,44px) 0 0;padding:0;
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--res-gap);
}
.ds-sect--residentiel .res-step{
  position:relative;min-width:0;
  padding:clamp(22px,2.4vw,30px);border-radius:20px;
  background:linear-gradient(180deg,rgba(255,255,255,.06) 0%,rgba(255,255,255,.03) 100%);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 40px 90px -50px rgba(0,0,0,.9);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s ease,box-shadow .35s ease;
}
.ds-sect--residentiel .res-step:hover{
  transform:translateY(-2px);border-color:rgba(143,178,255,.30);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 46px 100px -50px rgba(0,0,0,.95),0 0 0 1px rgba(111,227,214,.10);
}
.ds-sect--residentiel .res-step::after{
  content:"";position:absolute;top:64px;right:calc(var(--res-gap) * -1);width:var(--res-gap);height:1px;z-index:3;
  background:linear-gradient(90deg,rgba(143,178,255,.45),rgba(111,227,214,.10));
}
.ds-sect--residentiel .res-step:last-child::after{display:none;}
.ds-sect--residentiel .res-step__top{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px;}
.ds-sect--residentiel .res-step__num{
  font-family:'IBM Plex Mono',ui-monospace,monospace;font-weight:600;
  font-size:clamp(34px,4.4vw,46px);line-height:1;letter-spacing:.02em;
  color:var(--vt-blue-lt);
  background:linear-gradient(120deg,#8FB2FF 0%,#6FE3D6 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
.ds-sect--residentiel .res-step__pic{
  flex:0 0 auto;width:clamp(56px,7vw,68px);height:clamp(56px,7vw,68px);
  display:grid;place-items:center;border-radius:16px;
  background:radial-gradient(80% 80% at 50% 30%,rgba(255,255,255,.07),rgba(255,255,255,.02));
  border:1px solid rgba(255,255,255,.10);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10);
}
.ds-sect--residentiel .res-step__pic svg{width:78%;height:78%;display:block;overflow:visible;}
.ds-sect--residentiel .res-step__title{margin:0 0 8px;font-size:clamp(18px,1.6vw,21px);font-weight:700;letter-spacing:-.01em;line-height:1.25;color:var(--vt-ink);}
.ds-sect--residentiel .res-step__text{margin:0;font-size:clamp(14.5px,1.2vw,16px);line-height:1.62;color:var(--vt-ink-2);}
/* pictogrammes animés (keyframes partagés existants : dsv-wave, dsv-slot, dsv-pulse, dsv-sign, dsv-nib) */
.ds-sect--residentiel .res-wave{animation:dsv-wave 3.4s ease-in-out infinite;}
.ds-sect--residentiel .res-wave--2{animation-delay:.35s;}
.ds-sect--residentiel .res-frag{animation:dsv-slot 3.6s cubic-bezier(.2,.7,.2,1) infinite;}
.ds-sect--residentiel .res-frag--2{animation-delay:.5s;}
.ds-sect--residentiel .res-spark{transform-origin:55px 14px;animation:dsv-pulse 2.6s ease-in-out infinite;}
.ds-sect--residentiel .res-sign{stroke-dasharray:120;stroke-dashoffset:0;animation:dsv-sign 4.6s cubic-bezier(.5,0,.3,1) infinite;}
.ds-sect--residentiel .res-plume{animation:dsv-nib 4.6s cubic-bezier(.5,0,.3,1) infinite;}

/* --- jauge --- */
.ds-sect--residentiel .res-meter{
  position:relative;margin-top:clamp(28px,3.5vw,40px);
  padding:clamp(22px,2.6vw,30px);border-radius:20px;
  background:
    radial-gradient(120% 160% at 82% 0%, rgba(14,165,160,.14), rgba(14,165,160,0) 60%),
    linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.025));
  border:1px solid rgba(255,255,255,.12);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 40px 90px -50px rgba(0,0,0,.9);
}
.ds-sect--residentiel .res-meter__head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:10px 24px;margin-bottom:16px;}
.ds-sect--residentiel .res-meter__label,
.ds-sect--residentiel .res-meter__gain{
  font-family:'IBM Plex Mono',ui-monospace,monospace;font-weight:600;
  font-size:12px;letter-spacing:.1em;text-transform:uppercase;
}
.ds-sect--residentiel .res-meter__label{color:var(--vt-teal-lt);}
.ds-sect--residentiel .res-meter__gain{
  color:var(--vt-amber-lt);padding:6px 12px;border-radius:999px;
  background:rgba(245,181,68,.10);border:1px solid rgba(245,181,68,.26);
}
.ds-sect--residentiel .res-meter__track{
  position:relative;height:16px;border-radius:999px;overflow:hidden;
  background:rgba(4,16,31,.72);border:1px solid rgba(255,255,255,.10);
  box-shadow:inset 0 2px 8px rgba(0,0,0,.65);
}
.ds-sect--residentiel .res-meter__fill{
  position:absolute;inset:1px auto 1px 1px;width:82%;border-radius:999px;
  background:linear-gradient(90deg,#2563EB 0%,#3E86E6 45%,#0EA5A0 82%,#6FE3D6 100%);
  box-shadow:0 0 24px rgba(14,165,160,.55),inset 0 1px 0 rgba(255,255,255,.35);
}
.ds-sect--residentiel[data-anime].est-visible .res-meter__fill{animation:dsv-res-remplir 2s cubic-bezier(.2,.8,.2,1) .45s both;}
.ds-sect--residentiel .res-meter__edge{
  position:absolute;top:-2px;bottom:-2px;right:-1px;width:3px;border-radius:2px;
  background:var(--vt-ink);box-shadow:0 0 14px 3px rgba(111,227,214,.85);
  animation:dsv-pulse 2.4s ease-in-out infinite;
}
.ds-sect--residentiel .res-meter__ticks{
  position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:repeating-linear-gradient(90deg,rgba(4,16,31,.55) 0 1px,rgba(0,0,0,0) 1px 10%);
}
.ds-sect--residentiel .res-meter__chaine{
  margin:16px 0 0;font-size:14.5px;line-height:1.6;color:var(--vt-ink);max-width:78ch;
  padding-left:14px;border-left:2px solid rgba(111,227,214,.55);
}
.ds-sect--residentiel .res-meter__note{margin:12px 0 0;font-size:12.5px;line-height:1.55;color:var(--vt-ink-3);max-width:70ch;}

/* --- Avant / Avec DomiSpect --- */
.ds-sect--residentiel .res-aa-wrap{margin-top:clamp(48px,6vw,72px);}
.ds-sect--residentiel .res-aa__head{
  display:grid;grid-template-columns:1fr 1fr;gap:0;padding:0 22px 12px;
}
.ds-sect--residentiel .res-aa__col{font-size:11.5px;}
.ds-sect--residentiel .res-aa__col--avant{color:var(--vt-ink-3);}
.ds-sect--residentiel .res-aa__col--avec{color:var(--vt-teal-lt);padding-left:22px;}
.ds-sect--residentiel .res-aa{
  list-style:none;margin:0;padding:0;
  display:grid;gap:0;
  border-radius:20px;overflow:hidden;
  border:1px solid rgba(255,255,255,.11);
  background:rgba(255,255,255,.035);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 40px 90px -50px rgba(0,0,0,.9);
}
.ds-sect--residentiel .res-aa__row{
  display:grid;grid-template-columns:1fr 1fr;min-width:0;
  border-top:1px solid rgba(255,255,255,.08);
}
.ds-sect--residentiel .res-aa__row:first-child{border-top:0;}
.ds-sect--residentiel .res-aa__cell{
  min-width:0;padding:18px 22px;
  display:flex;gap:14px;align-items:flex-start;
  font-size:14.5px;line-height:1.6;
}
.ds-sect--residentiel .res-aa__cell p{margin:0;min-width:0;}
.ds-sect--residentiel .res-aa__cell--avant{color:var(--vt-ink-3);background:rgba(0,0,0,.16);}
.ds-sect--residentiel .res-aa__cell--avant p{text-decoration:none;}
.ds-sect--residentiel .res-aa__ico{
  flex:none;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;
  border:1px dashed rgba(155,176,204,.4);color:var(--vt-ink-3);
  background:rgba(255,255,255,.02);
}
.ds-sect--residentiel .res-aa__ico svg{width:18px;height:18px;}
.ds-sect--residentiel .res-aa__cell--avec{
  position:relative;color:var(--vt-ink);
  border-left:1px solid rgba(111,227,214,.2);
  background:linear-gradient(90deg,rgba(14,165,160,.10),rgba(14,165,160,.02));
  padding-left:26px;
}
/* le fil continu sarcelle : une ligne par cellule, les rangées se touchent */
.ds-sect--residentiel .res-aa__cell--avec::before{
  content:"";position:absolute;left:31px;top:0;bottom:0;width:2px;
  background:linear-gradient(180deg,rgba(37,99,235,.7),rgba(14,165,160,.7));
  box-shadow:0 0 10px rgba(111,227,214,.3);
}
.ds-sect--residentiel .res-aa__row:first-child .res-aa__cell--avec::before{top:26px;}
.ds-sect--residentiel .res-aa__row:last-child .res-aa__cell--avec::before{bottom:calc(100% - 26px);}
.ds-sect--residentiel .res-aa__dot{
  position:relative;z-index:1;flex:none;width:12px;height:12px;border-radius:50%;margin-top:6px;
  background:var(--vt-teal-lt);
  box-shadow:0 0 0 4px rgba(4,16,31,.85),0 0 12px rgba(111,227,214,.6);
}
.ds-sect--residentiel .res-aa__cell--avec p{padding-left:2px;}

/* --- CTA --- */
.ds-sect--residentiel .res-cta{
  margin-top:clamp(28px,3.5vw,40px);
  display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:14px 24px;
}
.ds-sect--residentiel .res-cta .ds-cta:focus-visible,
.ds-sect--residentiel .res-cta .ds-link:focus-visible{outline:3px solid rgba(111,227,214,.6);outline-offset:4px;}

/* --- responsive --- */
@media (max-width:900px){
  .ds-sect--residentiel .res-chaine{flex-direction:column;align-items:stretch;gap:10px;margin-top:10px;}
  .ds-sect--residentiel .res-chaine::before{left:9px;right:auto;top:8px;bottom:8px;width:2px;height:auto;background:linear-gradient(180deg,var(--vt-blue),var(--vt-teal));transform-origin:top center;}
  .ds-sect--residentiel[data-anime].est-visible .res-chaine::before{animation-name:dsv-res-trace-v;}
  .ds-sect--residentiel .res-chaine li{text-align:left;padding:3px 0 3px 30px;flex:none;}
  .ds-sect--residentiel .res-chaine li::before{left:3px;top:50%;transform:translateY(-50%);}
  .ds-sect--residentiel .res-steps{grid-template-columns:1fr;}
  .ds-sect--residentiel .res-step::after{
    top:auto;bottom:calc(var(--res-gap) * -1);right:auto;left:36px;width:1px;height:var(--res-gap);
    background:linear-gradient(180deg,rgba(143,178,255,.45),rgba(111,227,214,.10));
  }
  .ds-sect--residentiel .res-aa__head{display:none;}
  .ds-sect--residentiel .res-aa__row{grid-template-columns:1fr;}
  .ds-sect--residentiel .res-aa__cell{flex-wrap:wrap;padding-top:34px;}
  .ds-sect--residentiel .res-aa__cell::after{
    content:attr(data-col);position:absolute;top:12px;left:22px;
    font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;
    color:var(--vt-ink-3);
  }
  .ds-sect--residentiel .res-aa__cell--avant{position:relative;}
  .ds-sect--residentiel .res-aa__cell--avec{border-left:0;padding-left:26px;}
  .ds-sect--residentiel .res-aa__cell--avec::after{color:var(--vt-teal-lt);left:26px;}
  .ds-sect--residentiel .res-aa__cell--avec::before{top:0;bottom:0;}
  .ds-sect--residentiel .res-aa__row:first-child .res-aa__cell--avec::before{top:0;}
  .ds-sect--residentiel .res-aa__row:last-child .res-aa__cell--avec::before{bottom:0;}
}
@media (max-width:480px){
  .ds-sect--residentiel .res-step{padding:20px;}
  .ds-sect--residentiel .res-aa__cell{padding:34px 16px 16px;}
  .ds-sect--residentiel .res-aa__cell--avec{padding-left:20px;}
  .ds-sect--residentiel .res-aa__cell--avec::before{left:25px;}
  .ds-sect--residentiel .res-aa__cell--avec::after{left:20px;}
  .ds-sect--residentiel .res-cta .ds-cta{width:100%;}
}

/* --- keyframes (dsv-res-*) --- */
@keyframes dsv-res-trace{from{transform:scaleX(0);}to{transform:scaleX(1);}}
@keyframes dsv-res-trace-v{from{transform:scaleY(0);}to{transform:scaleY(1);}}
@keyframes dsv-res-point{to{opacity:1;transform:translateY(0);}}
@keyframes dsv-res-remplir{from{width:0;}to{width:82%;}}


/* ==========================================================================
   MOUVEMENT RÉDUIT — états finaux pour tout le lot A
   (le blocage global des animations est déjà dans accueil.css ; ici on
   s'assure que rien ne reste caché ou non tracé)
   ========================================================================== */
@media (prefers-reduced-motion:reduce){
  .ds-sect--workflow[data-anime] .wf-step::before,
  .ds-sect--workflow[data-anime] .wf-step:nth-child(7)::after,
  .ds-sect--residentiel[data-anime] .res-chaine::before{transform:none !important;}
  .ds-sect--workflow[data-anime] .wf-step__btn,
  .ds-sect--residentiel[data-anime] .res-chaine li{opacity:1 !important;transform:none !important;}
  .ds-sect--workflow[data-anime] .wf-lien{stroke-dashoffset:0 !important;}
  .ds-sect--workflow .wf-tip,.ds-sect--workflow .wf-token,.ds-sect--workflow .wf-ent__btn,
  .ds-sect--solutions .sol-card,.ds-sect--solutions .sol-win{transition:none !important;}
  .ds-sect--solutions .sol-win{opacity:1 !important;}
  .ds-sect--residentiel .res-meter__fill{width:82% !important;}
  .ds-sect--residentiel .res-sous,.ds-sect--residentiel .res-h3-soir{opacity:1 !important;transform:none !important;}
}


/* ============ HOMEPAGE V2 — lot B ============ */
/* =====================================================================
   LOT B — Homepage V2 · sections 05 → 09
   05 #feuillet-a03 (CONSERVER — aucun CSS)  ·  06 #review-ai (CONSERVER — aucun CSS)
   07 #hors-ligne (MODIFIER léger — ajouts seulement)
   08 #commercial (AJOUTER)  ·  09 #planification (AJOUTER)
   Tout est scopé sous .ds-sect--offline / .ds-sect--commercial / .ds-sect--planification.
   @keyframes préfixés dsv-. Aucune redéclaration des composants ni des variables.
   ===================================================================== */


/* =====================================================================
   07 — .ds-sect--offline · AJOUTS (quatre faits, compteur d'attente, frise)
   ===================================================================== */
.ds-sect--offline .ds-offline__faits{
  list-style:none;margin:6px 0 22px;padding:0;
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;
  max-width:560px;
}
.ds-sect--offline .ds-offline__fait{
  display:flex;align-items:center;gap:10px;min-width:0;
  padding:10px 12px;border-radius:12px;
  font-family:'IBM Plex Mono',ui-monospace,monospace;font-weight:500;
  font-size:11px;letter-spacing:.08em;text-transform:uppercase;line-height:1.35;color:var(--vt-ink-2);
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.11);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}
.ds-sect--offline .ds-offline__fait svg{flex:0 0 auto;width:18px;height:18px;color:var(--vt-teal-lt);}
.ds-sect--offline .ds-offline__fait span{min-width:0;}

/* compteur illustratif « 23 → 0 éléments en attente » (sous le téléphone) */
@property --dsv-off-q{syntax:'<integer>';inherits:true;initial-value:23;}
.ds-sect--offline .ds-offline__tag--queue{
  left:50%;top:79%;color:var(--vt-ink);
  background:rgba(6,20,36,.78);border:1px solid rgba(143,178,255,.4);
  --dsv-off-q:23;
  animation:dsv-off-queue 5.5s linear infinite;
}
.ds-sect--offline .ds-offline__queue-n{font-variant-numeric:tabular-nums;color:var(--vt-amber-lt);}
.ds-sect--offline .ds-offline__queue-n::before{
  counter-reset:dsvq var(--dsv-off-q);
  content:counter(dsvq);
}
@keyframes dsv-off-queue{
  0%,40%{--dsv-off-q:23;border-color:rgba(245,181,68,.45);}
  62%,92%{--dsv-off-q:0;border-color:rgba(111,227,214,.45);}
  100%{--dsv-off-q:23;border-color:rgba(245,181,68,.45);}
}
.ds-sect--offline .ds-offline__illu{
  grid-column:1 / -1;margin:10px 0 0;text-align:right;font-size:11px;color:var(--vt-ink-3);opacity:.85;
}

/* frise : connexion → … → synchronisation */
.ds-sect--offline .ds-offline__frise-wrap{
  position:relative;z-index:2;max-width:1200px;margin:clamp(40px,5vw,64px) auto 0;
  padding-top:clamp(26px,3vw,36px);border-top:1px solid rgba(255,255,255,.08);
}
.ds-sect--offline .ds-offline__frise-titre{margin:0 0 22px;font-size:11.5px;color:var(--vt-ink-3);}
.ds-sect--offline .ds-offline__frise{
  --dsv-off-n:8;
  position:relative;list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px;
}
/* rail */
.ds-sect--offline .ds-offline__frise::before,
.ds-sect--offline .ds-offline__frise::after{
  content:"";position:absolute;left:0;right:0;top:35px;height:2px;border-radius:2px;
}
.ds-sect--offline .ds-offline__frise::before{background:rgba(255,255,255,.1);}
.ds-sect--offline .ds-offline__frise::after{
  transform-origin:left center;transform:scaleX(0);
  background:linear-gradient(90deg,var(--vt-blue) 0%,var(--vt-amber) 32%,var(--vt-teal) 70%,var(--vt-teal-lt) 100%);
  box-shadow:0 0 12px rgba(111,227,214,.35);
}
.ds-sect--offline.est-visible .ds-offline__frise::after{animation:dsv-off-rail 3.2s cubic-bezier(.2,.7,.25,1) .4s forwards;}
@keyframes dsv-off-rail{to{transform:scaleX(1);}}

.ds-sect--offline .ds-offline__etape{
  position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:0;
  padding:0 0 0 2px;
}
.ds-sect--offline .ds-offline__etape-n{
  font-family:'IBM Plex Mono',ui-monospace,monospace;font-weight:600;
  font-size:11px;letter-spacing:.12em;color:var(--vt-ink-3);line-height:1;
}
.ds-sect--offline .ds-offline__etape-pt{
  position:relative;z-index:1;display:block;width:12px;height:12px;border-radius:50%;margin:6px 0 4px;
  background:#0A2A42;border:2px solid var(--vt-blue-lt);
  box-shadow:0 0 0 4px rgba(143,178,255,.12);
}
.ds-sect--offline .ds-offline__etape-l{
  font-size:12.5px;font-weight:600;line-height:1.35;color:var(--vt-ink-2);letter-spacing:-.005em;
  padding:6px 10px;border-radius:10px;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);
  max-width:100%;
}
.ds-sect--offline .ds-offline__etape--alerte .ds-offline__etape-pt{border-color:var(--vt-amber);box-shadow:0 0 0 4px rgba(245,181,68,.16);}
.ds-sect--offline .ds-offline__etape--alerte .ds-offline__etape-l{color:var(--vt-amber-lt);border-color:rgba(245,181,68,.4);background:rgba(245,181,68,.08);}
.ds-sect--offline .ds-offline__etape--local .ds-offline__etape-pt{border-color:var(--vt-amber-lt);box-shadow:0 0 0 4px rgba(245,181,68,.1);}
.ds-sect--offline .ds-offline__etape--ok .ds-offline__etape-pt{border-color:var(--vt-teal-lt);background:var(--vt-teal);box-shadow:0 0 0 4px rgba(111,227,214,.16);}
.ds-sect--offline .ds-offline__etape--ok .ds-offline__etape-l{color:var(--vt-teal-lt);border-color:rgba(111,227,214,.35);background:rgba(14,165,160,.08);}
/* le dernier point pulse doucement : rappel du cercle de synchronisation */
.ds-sect--offline .ds-offline__etape:last-child .ds-offline__etape-pt{animation:dsv-pulse-soft 3.6s ease-in-out infinite;}

@media (max-width:959px){
  .ds-sect--offline .ds-offline__frise{grid-template-columns:1fr;gap:0;padding-left:6px;}
  .ds-sect--offline .ds-offline__frise::before,
  .ds-sect--offline .ds-offline__frise::after{left:11px;right:auto;top:6px;bottom:6px;width:2px;height:auto;}
  .ds-sect--offline .ds-offline__frise::after{
    transform-origin:center top;transform:scaleY(0);
    background:linear-gradient(180deg,var(--vt-blue) 0%,var(--vt-amber) 32%,var(--vt-teal) 70%,var(--vt-teal-lt) 100%);
  }
  .ds-sect--offline.est-visible .ds-offline__frise::after{animation-name:dsv-off-rail-v;}
  .ds-sect--offline .ds-offline__etape{
    flex-direction:row;align-items:center;gap:12px;padding:7px 0;
  }
  .ds-sect--offline .ds-offline__etape-pt{margin:0;flex:0 0 auto;}
  .ds-sect--offline .ds-offline__etape-n{order:2;flex:0 0 auto;}
  .ds-sect--offline .ds-offline__etape-l{order:3;}
}
@keyframes dsv-off-rail-v{to{transform:scaleY(1);}}
@media (max-width:760px){
  .ds-sect--offline .ds-offline__faits{grid-template-columns:1fr;max-width:none;}
  .ds-sect--offline .ds-offline__tag--queue{margin-top:12px;}
  .ds-sect--offline .ds-offline__illu{text-align:center;padding:0 12px;}
}
@media (max-width:420px){
  .ds-sect--offline .ds-offline__fait{font-size:11px;letter-spacing:.06em;}
}


/* =====================================================================
   08 — .ds-sect--commercial · « Complexe ABC »
   ===================================================================== */
.ds-sect--commercial{
  background:
    radial-gradient(70% 50% at 8% 0%, rgba(37,99,235,.24) 0%, rgba(37,99,235,0) 70%),
    radial-gradient(60% 50% at 92% 18%, rgba(14,165,160,.2) 0%, rgba(14,165,160,0) 70%),
    radial-gradient(50% 40% at 70% 100%, rgba(245,181,68,.09) 0%, rgba(245,181,68,0) 70%),
    linear-gradient(180deg,#04101F 0%,#07203A 48%,#0A2A42 76%,#04101F 100%);
}
.ds-sect--commercial::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    repeating-linear-gradient(0deg, rgba(255,255,255,.035) 0 1px, transparent 1px 48px),
    repeating-linear-gradient(90deg, rgba(255,255,255,.025) 0 1px, transparent 1px 48px);
  -webkit-mask-image:radial-gradient(110% 70% at 50% 0%, #000 0%, rgba(0,0,0,.3) 50%, transparent 78%);
  mask-image:radial-gradient(110% 70% at 50% 0%, #000 0%, rgba(0,0,0,.3) 50%, transparent 78%);
}
.ds-sect--commercial .ds-com__atmo{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;}
.ds-sect--commercial .ds-com__halo{position:absolute;display:block;border-radius:50%;filter:blur(70px);opacity:.5;}
.ds-sect--commercial .ds-com__halo--bleu{width:42%;height:48%;left:-10%;top:-14%;background:radial-gradient(circle at 40% 40%, rgba(37,99,235,.7), transparent 68%);}
.ds-sect--commercial .ds-com__halo--teal{width:46%;height:52%;right:-12%;top:6%;background:radial-gradient(circle at 60% 50%, rgba(14,165,160,.55), transparent 68%);}
.ds-sect--commercial .ds-com__halo--ambre{width:40%;height:34%;left:30%;bottom:-16%;background:radial-gradient(circle at 50% 40%, rgba(245,181,68,.28), transparent 66%);opacity:.38;}

.ds-sect--commercial .ds-com__tete{max-width:760px;margin:0 0 clamp(30px,3.6vw,44px);}
.ds-sect--commercial .ds-com__sub{font-weight:600;color:var(--vt-ink);}
.ds-sect--commercial .ds-com__texte{
  margin:0 0 18px;max-width:66ch;font-size:clamp(14.5px,1.15vw,16px);line-height:1.68;color:var(--vt-ink-2);
}
.ds-sect--commercial .ds-com__forfaits{
  display:inline-flex;align-items:center;gap:8px;margin:0;
  padding:7px 12px 7px 10px;border-radius:999px;color:var(--vt-teal-lt);font-size:11px;
  background:rgba(14,165,160,.1);border:1px solid rgba(111,227,214,.3);
}
.ds-sect--commercial .ds-com__forfaits svg{width:14px;height:14px;flex:0 0 auto;}

.ds-sect--commercial .ds-com__grille{
  display:grid;grid-template-columns:minmax(0,1.32fr) minmax(0,.86fr);
  gap:clamp(18px,2.4vw,30px);align-items:start;
}

/* ---- interface stylisée de projet ---- */
.ds-sect--commercial .ds-com__projet{
  margin:0;padding:0;overflow:hidden;min-width:0;
  background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.03));
  border-color:rgba(255,255,255,.13);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 40px 90px -50px rgba(0,0,0,.9);
}
.ds-sect--commercial .ds-com__projet:hover{transform:none;}
.ds-sect--commercial .ds-com__barre{
  display:flex;align-items:center;gap:12px;
  padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.09);
  background:rgba(4,16,31,.45);
}
.ds-sect--commercial .ds-com__barre-tag{
  font-size:11px;color:var(--vt-blue-lt);padding:4px 9px;border-radius:999px;
  background:rgba(37,99,235,.16);border:1px solid rgba(143,178,255,.3);
}
.ds-sect--commercial .ds-com__barre-nom{font-weight:800;letter-spacing:-.01em;font-size:16px;color:var(--vt-ink);}
.ds-sect--commercial .ds-com__barre-dots{margin-left:auto;display:inline-flex;gap:5px;}
.ds-sect--commercial .ds-com__barre-dots i{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.18);}
.ds-sect--commercial .ds-com__meta{
  list-style:none;margin:0;padding:10px 16px 0;display:flex;flex-wrap:wrap;gap:6px 14px;
  font-size:11px;color:var(--vt-ink-2);
}
.ds-sect--commercial .ds-com__meta li{display:inline-flex;align-items:center;gap:8px;}
.ds-sect--commercial .ds-com__meta li + li::before{content:"·";color:rgba(111,227,214,.7);}

.ds-sect--commercial .ds-com__scene{position:relative;margin:8px 10px 0;border-radius:12px;overflow:hidden;
  background:linear-gradient(180deg,rgba(4,16,31,.35),rgba(4,16,31,.65));border:1px solid rgba(255,255,255,.07);
}
.ds-sect--commercial .ds-com__svg{display:block;width:100%;height:auto;}
.ds-sect--commercial .ds-com__zones rect{opacity:0;}
.ds-sect--commercial.est-visible .ds-com__zones rect{animation:dsv-com-zone .6s ease-out forwards;}
.ds-sect--commercial.est-visible .ds-com__zones rect:nth-child(1){animation-delay:.5s}
.ds-sect--commercial.est-visible .ds-com__zones rect:nth-child(2){animation-delay:.6s}
.ds-sect--commercial.est-visible .ds-com__zones rect:nth-child(3){animation-delay:.7s}
.ds-sect--commercial.est-visible .ds-com__zones rect:nth-child(4){animation-delay:.8s}
.ds-sect--commercial.est-visible .ds-com__zones rect:nth-child(5){animation-delay:.9s}
.ds-sect--commercial.est-visible .ds-com__zones rect:nth-child(6){animation-delay:1s}
.ds-sect--commercial.est-visible .ds-com__zones rect:nth-child(7){animation-delay:1.1s}
.ds-sect--commercial.est-visible .ds-com__zones rect:nth-child(8){animation-delay:1.2s}
.ds-sect--commercial.est-visible .ds-com__zones rect:nth-child(9){animation-delay:1.3s}
.ds-sect--commercial.est-visible .ds-com__zones rect:nth-child(10){animation-delay:1.4s}
@keyframes dsv-com-zone{to{opacity:1;}}
.ds-sect--commercial .ds-com__zone--cours{animation:dsv-pulse-soft 3.4s ease-in-out infinite;}
.ds-sect--commercial .ds-com__fil{stroke-dasharray:720;stroke-dashoffset:720;}
.ds-sect--commercial.est-visible .ds-com__fil{animation:dsv-com-fil 2.4s cubic-bezier(.2,.7,.25,1) .9s forwards;}
@keyframes dsv-com-fil{to{stroke-dashoffset:0;}}
.ds-sect--commercial .ds-com__fil-pt{animation:dsv-pulse-soft 3s ease-in-out infinite;}

/* liste des bâtiments */
.ds-sect--commercial .ds-com__bats{list-style:none;margin:12px 0 0;padding:0 16px;}
.ds-sect--commercial .ds-com__bat{
  display:grid;grid-template-columns:28px minmax(0,1.1fr) minmax(90px,1fr) auto;
  align-items:center;gap:12px;padding:10px 0;border-top:1px solid rgba(255,255,255,.07);min-width:0;
}
.ds-sect--commercial .ds-com__bat:first-child{border-top:0;}
.ds-sect--commercial .ds-com__bat-l{
  display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;
  font-family:'IBM Plex Mono',ui-monospace,monospace;font-weight:600;font-size:12px;
  color:var(--vt-ink);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);
}
.ds-sect--commercial .ds-com__bat--fini .ds-com__bat-l{color:var(--vt-teal-lt);border-color:rgba(111,227,214,.4);background:rgba(14,165,160,.12);}
.ds-sect--commercial .ds-com__bat--avenir .ds-com__bat-l{color:var(--vt-ink-3);}
.ds-sect--commercial .ds-com__bat-nom{display:flex;flex-direction:column;gap:2px;min-width:0;font-size:13.5px;font-weight:700;color:var(--vt-ink);letter-spacing:-.005em;}
.ds-sect--commercial .ds-com__bat-nom small{font-size:11.5px;font-weight:500;color:var(--vt-ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ds-sect--commercial .ds-com__seg{
  position:relative;display:flex;height:8px;border-radius:99px;overflow:hidden;min-width:0;
  background:rgba(255,255,255,.08);
}
.ds-sect--commercial .ds-com__seg i{display:block;height:100%;width:0;flex:0 0 auto;}
.ds-sect--commercial .ds-com__seg-ok{background:linear-gradient(90deg,var(--vt-teal),var(--vt-teal-lt));}
.ds-sect--commercial .ds-com__seg-enc{background:linear-gradient(90deg,var(--vt-amber),var(--vt-amber-lt));opacity:.85;}
.ds-sect--commercial.est-visible .ds-com__seg i{animation:dsv-com-seg 1.1s cubic-bezier(.2,.7,.25,1) forwards;}
.ds-sect--commercial.est-visible .ds-com__bat:nth-child(1) .ds-com__seg i{animation-delay:.9s}
.ds-sect--commercial.est-visible .ds-com__bat:nth-child(2) .ds-com__seg i{animation-delay:1.05s}
.ds-sect--commercial.est-visible .ds-com__bat:nth-child(3) .ds-com__seg i{animation-delay:1.2s}
.ds-sect--commercial.est-visible .ds-com__bat:nth-child(4) .ds-com__seg i{animation-delay:1.35s}
@keyframes dsv-com-seg{to{width:var(--w,0);}}
.ds-sect--commercial .ds-com__bat-etat{font-size:11px;color:var(--vt-ink-3);text-align:right;white-space:nowrap;}
.ds-sect--commercial .ds-com__bat--fini .ds-com__bat-etat{color:var(--vt-teal-lt);}
.ds-sect--commercial .ds-com__bat--cours .ds-com__bat-etat{color:var(--vt-ink-2);}

.ds-sect--commercial .ds-com__legende{
  list-style:none;margin:6px 0 0;padding:8px 16px 0;display:flex;flex-wrap:wrap;gap:6px 16px;
  font-size:11px;color:var(--vt-ink-3);border-top:1px solid rgba(255,255,255,.07);
}
.ds-sect--commercial .ds-com__legende li{display:inline-flex;align-items:center;gap:7px;}
.ds-sect--commercial .ds-com__legende-insp{margin-left:auto;color:var(--vt-ink-3);}
.ds-sect--commercial .ds-com__lg{width:10px;height:10px;border-radius:3px;}
.ds-sect--commercial .ds-com__lg--ok{background:var(--vt-teal-lt);}
.ds-sect--commercial .ds-com__lg--enc{background:var(--vt-amber);}
.ds-sect--commercial .ds-com__lg--af{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.2);}

/* compteurs */
.ds-sect--commercial .ds-com__kpis{
  margin:14px 0 0;padding:14px 16px;
  display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;
  background:rgba(4,16,31,.4);border-top:1px solid rgba(255,255,255,.08);
}
.ds-sect--commercial .ds-com__kpi{
  min-width:0;padding:10px 12px;border-radius:12px;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);
  display:flex;flex-direction:column;gap:6px;
}
.ds-sect--commercial .ds-com__kpi dt{font-size:11px;color:var(--vt-ink-3);line-height:1.3;}
.ds-sect--commercial .ds-com__kpi dd{
  margin:0;font-family:'IBM Plex Mono',ui-monospace,monospace;font-weight:600;
  font-size:clamp(20px,1.8vw,26px);line-height:1;color:var(--vt-teal-lt);font-variant-numeric:tabular-nums;
}
.ds-sect--commercial .ds-com__kpi--amb dd{color:var(--vt-amber-lt);}
.ds-sect--commercial .ds-com__kpi--amb{border-color:rgba(245,181,68,.3);}
.ds-sect--commercial .ds-com__illu{
  margin:0;padding:8px 16px 12px;text-align:right;font-size:11px;color:var(--vt-ink-3);opacity:.85;
}

/* ---- arbre vertical : la hiérarchie réelle ---- */
.ds-sect--commercial .ds-com__arbre{
  padding:22px 22px 20px;min-width:0;
  background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.025));
}
.ds-sect--commercial .ds-com__arbre:hover{transform:none;}
.ds-sect--commercial .ds-com__arbre-titre{margin:0 0 18px;font-size:11px;color:var(--vt-teal-lt);}
.ds-sect--commercial .ds-com__niveaux{
  position:relative;list-style:none;margin:0;padding:0 0 0 26px;
}
.ds-sect--commercial .ds-com__niveaux::before,
.ds-sect--commercial .ds-com__niveaux::after{
  content:"";position:absolute;left:7px;top:10px;bottom:10px;width:2px;border-radius:2px;
}
.ds-sect--commercial .ds-com__niveaux::before{background:rgba(255,255,255,.1);}
.ds-sect--commercial .ds-com__niveaux::after{
  background:linear-gradient(180deg,var(--vt-blue),var(--vt-teal) 70%,var(--vt-teal-lt));
  box-shadow:0 0 10px rgba(111,227,214,.3);
  transform-origin:center top;transform:scaleY(0);
}
.ds-sect--commercial.est-visible .ds-com__niveaux::after{animation:dsv-com-arbre 2.2s cubic-bezier(.2,.7,.25,1) .5s forwards;}
@keyframes dsv-com-arbre{to{transform:scaleY(1);}}
.ds-sect--commercial .ds-com__niv{
  position:relative;display:flex;flex-direction:column;gap:3px;min-width:0;
  padding:9px 0 9px 4px;
}
.ds-sect--commercial .ds-com__niv + .ds-com__niv{border-top:1px solid rgba(255,255,255,.06);}
.ds-sect--commercial .ds-com__niv-pt{
  position:absolute;left:-24px;top:14px;width:12px;height:12px;border-radius:50%;
  background:#0A2A42;border:2px solid var(--vt-teal-lt);box-shadow:0 0 0 4px rgba(111,227,214,.12);
}
.ds-sect--commercial .ds-com__niv:first-child .ds-com__niv-pt{border-color:var(--vt-blue-lt);box-shadow:0 0 0 4px rgba(143,178,255,.14);}
.ds-sect--commercial .ds-com__niv--amb .ds-com__niv-pt{border-color:var(--vt-amber);background:rgba(245,181,68,.2);box-shadow:0 0 0 4px rgba(245,181,68,.14);}
.ds-sect--commercial .ds-com__niv-l{font-size:15px;font-weight:700;color:var(--vt-ink);letter-spacing:-.01em;line-height:1.2;}
.ds-sect--commercial .ds-com__niv-s{font-size:11px;color:var(--vt-ink-3);line-height:1.4;letter-spacing:.08em;}
.ds-sect--commercial .ds-com__niv--amb .ds-com__niv-s{color:var(--vt-amber-lt);}
.ds-sect--commercial .ds-com__arbre-note{
  margin:16px 0 0;padding-top:14px;border-top:1px solid rgba(255,255,255,.08);
  font-size:13px;line-height:1.55;color:var(--vt-ink-2);
}

/* ---- pied : encadré honnête + CTA ---- */
.ds-sect--commercial .ds-com__pied{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px 28px;
  margin-top:clamp(24px,3vw,36px);
}
.ds-sect--commercial .ds-com__dev{
  margin:0;max-width:62ch;font-size:13px;line-height:1.6;color:var(--vt-ink-2);
  padding:12px 16px;border-radius:14px;
  background:rgba(255,255,255,.03);border:1px dashed rgba(255,255,255,.2);
}
.ds-sect--commercial .ds-com__dev-tag{
  display:inline-block;margin:0 10px 4px 0;padding:3px 8px;border-radius:999px;font-size:11px;
  color:var(--vt-amber-lt);background:rgba(245,181,68,.1);border:1px solid rgba(245,181,68,.35);
}
.ds-sect--commercial .ds-com__cta{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;}

@media (max-width:1100px){
  .ds-sect--commercial .ds-com__kpis{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media (max-width:899px){
  .ds-sect--commercial .ds-com__grille{grid-template-columns:1fr;}
  .ds-sect--commercial .ds-com__bat{grid-template-columns:28px minmax(0,1fr) auto;}
  .ds-sect--commercial .ds-com__seg{grid-column:2 / span 2;order:4;height:6px;}
  .ds-sect--commercial .ds-com__bat-etat{text-align:right;}
}
@media (max-width:560px){
  .ds-sect--commercial .ds-com__barre{flex-wrap:wrap;}
  .ds-sect--commercial .ds-com__kpis{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px;}
  .ds-sect--commercial .ds-com__bats,.ds-sect--commercial .ds-com__legende,.ds-sect--commercial .ds-com__meta{padding-left:12px;padding-right:12px;}
  .ds-sect--commercial .ds-com__bat{grid-template-columns:28px minmax(0,1fr);}
  .ds-sect--commercial .ds-com__bat-etat{grid-column:2;text-align:left;white-space:normal;}
  .ds-sect--commercial .ds-com__seg{grid-column:2;}
  .ds-sect--commercial .ds-com__legende-insp{margin-left:0;flex-basis:100%;}
  .ds-sect--commercial .ds-com__arbre{padding:18px 16px;}
  .ds-sect--commercial .ds-com__pied{flex-direction:column;align-items:flex-start;}
}


/* =====================================================================
   09 — .ds-sect--planification · calendrier relié
   ===================================================================== */
.ds-sect--planification{
  background:
    radial-gradient(60% 50% at 90% 0%, rgba(37,99,235,.22) 0%, rgba(37,99,235,0) 70%),
    radial-gradient(60% 46% at 6% 60%, rgba(14,165,160,.18) 0%, rgba(14,165,160,0) 70%),
    linear-gradient(180deg,#04101F 0%,#0A1C24 40%,#07203A 72%,#04101F 100%);
}
.ds-sect--planification::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    repeating-linear-gradient(0deg, rgba(255,255,255,.03) 0 1px, transparent 1px 48px),
    repeating-linear-gradient(90deg, rgba(255,255,255,.022) 0 1px, transparent 1px 48px);
  -webkit-mask-image:radial-gradient(100% 70% at 70% 30%, #000 0%, rgba(0,0,0,.25) 50%, transparent 80%);
  mask-image:radial-gradient(100% 70% at 70% 30%, #000 0%, rgba(0,0,0,.25) 50%, transparent 80%);
}
.ds-sect--planification .ds-plan__atmo{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;}
.ds-sect--planification .ds-plan__halo{position:absolute;display:block;border-radius:50%;filter:blur(70px);opacity:.5;}
.ds-sect--planification .ds-plan__halo--bleu{width:44%;height:50%;right:-12%;top:-16%;background:radial-gradient(circle at 50% 50%, rgba(37,99,235,.65), transparent 68%);}
.ds-sect--planification .ds-plan__halo--teal{width:40%;height:46%;left:-10%;bottom:-10%;background:radial-gradient(circle at 50% 50%, rgba(14,165,160,.5), transparent 68%);}

.ds-sect--planification .ds-plan__grille{
  display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
  gap:clamp(28px,4vw,56px);align-items:start;
}
.ds-sect--planification .ds-plan__copy{max-width:560px;}
.ds-sect--planification .ds-plan__texte{
  margin:0 0 22px;max-width:60ch;font-size:clamp(14.5px,1.15vw,16px);line-height:1.68;color:var(--vt-ink-2);
}
.ds-sect--planification .ds-plan__faits{list-style:none;margin:0 0 26px;padding:0;display:grid;gap:10px;}
.ds-sect--planification .ds-plan__fait{
  display:flex;align-items:flex-start;gap:12px;min-width:0;
  padding:12px 14px;border-radius:14px;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.11);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}
.ds-sect--planification .ds-plan__fait-ico{
  flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;
  color:var(--vt-teal-lt);background:rgba(14,165,160,.1);border:1px solid rgba(111,227,214,.28);
}
.ds-sect--planification .ds-plan__fait-ico svg{width:19px;height:19px;}
.ds-sect--planification .ds-plan__fait-txt{display:flex;flex-direction:column;gap:3px;min-width:0;font-size:13.5px;line-height:1.5;color:var(--vt-ink-2);}
.ds-sect--planification .ds-plan__fait-txt strong{font-size:11px;color:var(--vt-teal-lt);font-weight:600;}
.ds-sect--planification .ds-plan__cta{display:flex;flex-wrap:wrap;gap:12px;}

/* ---- calendrier stylisé ---- */
.ds-sect--planification .ds-plan__stage{min-width:0;}
.ds-sect--planification .ds-plan__cal{
  margin:0;padding:0;overflow:hidden;min-width:0;
  background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.03));
  border-color:rgba(255,255,255,.13);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 40px 90px -50px rgba(0,0,0,.9);
}
.ds-sect--planification .ds-plan__cal:hover{transform:none;}
.ds-sect--planification .ds-plan__barre{
  display:flex;align-items:center;gap:12px;padding:12px 16px;
  border-bottom:1px solid rgba(255,255,255,.09);background:rgba(4,16,31,.45);
}
.ds-sect--planification .ds-plan__barre-tag{
  font-size:11px;color:var(--vt-blue-lt);padding:4px 9px;border-radius:999px;
  background:rgba(37,99,235,.16);border:1px solid rgba(143,178,255,.3);
}
.ds-sect--planification .ds-plan__barre-sem{font-weight:700;font-size:14px;color:var(--vt-ink);}
.ds-sect--planification .ds-plan__barre-dots{margin-left:auto;display:inline-flex;gap:5px;}
.ds-sect--planification .ds-plan__barre-dots i{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.18);}

.ds-sect--planification .ds-plan__corps{
  display:grid;grid-template-columns:minmax(0,1fr) 214px;min-width:0;
}
.ds-sect--planification .ds-plan__semaine{
  --dsv-plan-h:30px;
  position:relative;min-width:0;padding:12px 12px 12px 0;
  display:grid;grid-template-columns:40px minmax(0,1fr);grid-template-rows:auto auto auto;
}
.ds-sect--planification .ds-plan__jours{
  grid-column:2;grid-row:1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;
  font-size:11px;color:var(--vt-ink-3);padding:0 0 8px;
}
.ds-sect--planification .ds-plan__jours span{text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ds-sect--planification .ds-plan__jours span:nth-child(4){color:var(--vt-ink);}
.ds-sect--planification .ds-plan__heures{letter-spacing:.06em;
  grid-column:1;grid-row:2;position:relative;height:calc(var(--dsv-plan-h) * 9);
  font-size:11px;color:var(--vt-ink-3);
}
.ds-sect--planification .ds-plan__heures span{position:absolute;right:8px;transform:translateY(-50%);white-space:nowrap;}
.ds-sect--planification .ds-plan__heures span:nth-child(1){top:0}
.ds-sect--planification .ds-plan__heures span:nth-child(2){top:calc(var(--dsv-plan-h) * 2)}
.ds-sect--planification .ds-plan__heures span:nth-child(3){top:calc(var(--dsv-plan-h) * 4)}
.ds-sect--planification .ds-plan__heures span:nth-child(4){top:calc(var(--dsv-plan-h) * 6)}
.ds-sect--planification .ds-plan__heures span:nth-child(5){top:calc(var(--dsv-plan-h) * 8)}
.ds-sect--planification .ds-plan__cols{
  grid-column:2;grid-row:2;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;
  height:calc(var(--dsv-plan-h) * 9);
  background:
    repeating-linear-gradient(180deg, rgba(255,255,255,.07) 0 1px, transparent 1px var(--dsv-plan-h));
  border-top:1px solid rgba(255,255,255,.1);
}
.ds-sect--planification .ds-plan__col{position:relative;min-width:0;border-left:1px solid rgba(255,255,255,.06);}
.ds-sect--planification .ds-plan__col:nth-child(4){background:rgba(255,255,255,.025);}
.ds-sect--planification .ds-plan__rdv{
  position:absolute;left:3px;right:3px;
  top:calc(var(--d,0) * var(--dsv-plan-h));height:calc(var(--h,2) * var(--dsv-plan-h) - 3px);
  display:flex;flex-direction:column;gap:2px;overflow:hidden;
  padding:5px 7px;border-radius:8px;border:1px solid transparent;border-left-width:3px;
  font-size:11px;line-height:1.25;color:var(--vt-ink);
  opacity:0;transform:translateY(6px);
}
.ds-sect--planification.est-visible .ds-plan__rdv{animation:dsv-plan-rdv .6s cubic-bezier(.2,.7,.25,1) forwards;}
.ds-sect--planification.est-visible .ds-plan__col:nth-child(1) .ds-plan__rdv{animation-delay:.4s}
.ds-sect--planification.est-visible .ds-plan__col:nth-child(2) .ds-plan__rdv{animation-delay:.55s}
.ds-sect--planification.est-visible .ds-plan__col:nth-child(3) .ds-plan__rdv{animation-delay:.7s}
.ds-sect--planification.est-visible .ds-plan__col:nth-child(4) .ds-plan__rdv{animation-delay:.85s}
.ds-sect--planification.est-visible .ds-plan__col:nth-child(5) .ds-plan__rdv{animation-delay:1s}
@keyframes dsv-plan-rdv{to{opacity:1;transform:translateY(0);}}
.ds-sect--planification .ds-plan__rdv b{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ds-sect--planification .ds-plan__rdv i{font-style:normal;font-size:11px;opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ds-sect--planification .ds-plan__rdv em{
  font-style:normal;font-size:11px;letter-spacing:.06em;margin-top:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.ds-sect--planification .ds-plan__rdv--a{background:rgba(37,99,235,.22);border-color:rgba(143,178,255,.3);border-left-color:var(--vt-blue-lt);}
.ds-sect--planification .ds-plan__rdv--b{background:rgba(14,165,160,.2);border-color:rgba(111,227,214,.3);border-left-color:var(--vt-teal-lt);}
.ds-sect--planification .ds-plan__rdv--c{background:rgba(245,181,68,.12);border-color:rgba(245,181,68,.25);border-left-color:var(--vt-amber-lt);}
.ds-sect--planification .ds-plan__rdv--ouvert{
  border-color:rgba(143,178,255,.7);box-shadow:0 0 0 3px rgba(143,178,255,.16),0 14px 28px -16px rgba(0,0,0,.9);
}
.ds-sect--planification .ds-plan__rdv--ouvert em{color:var(--vt-teal-lt);}
.ds-sect--planification .ds-plan__rdv--attente em{color:var(--vt-amber-lt);}
.ds-sect--planification .ds-plan__rdv--attente{border-style:dashed;border-left-style:solid;}
.ds-sect--planification .ds-plan__rdv--attente em::before{
  content:"";display:inline-block;width:7px;height:7px;border-radius:50%;margin:0 5px 0 0;vertical-align:1px;
  background:var(--vt-amber);box-shadow:0 0 0 3px rgba(245,181,68,.2);
  animation:dsv-pulse-soft 3s ease-in-out infinite;
}
.ds-sect--planification .ds-plan__legende{
  grid-column:2;grid-row:3;list-style:none;margin:10px 0 0;padding:0;
  display:flex;flex-wrap:wrap;gap:6px 14px;font-size:11px;color:var(--vt-ink-3);
}
.ds-sect--planification .ds-plan__legende li{display:inline-flex;align-items:center;gap:7px;}
.ds-sect--planification .ds-plan__lg{display:inline-block;width:10px;height:10px;border-radius:3px;flex:0 0 auto;}
.ds-sect--planification .ds-plan__lg--a{background:var(--vt-blue-lt);}
.ds-sect--planification .ds-plan__lg--b{background:var(--vt-teal-lt);}
.ds-sect--planification .ds-plan__lg--c{background:var(--vt-amber-lt);}

/* panneau latéral du rendez-vous ouvert */
.ds-sect--planification .ds-plan__panneau{
  min-width:0;padding:14px 14px 16px;
  border-left:1px solid rgba(255,255,255,.09);background:rgba(4,16,31,.42);
  display:flex;flex-direction:column;gap:12px;
}
.ds-sect--planification .ds-plan__panneau-tag{margin:0;font-size:11px;color:var(--vt-blue-lt);}
.ds-sect--planification .ds-plan__champs{margin:0;display:grid;gap:9px;}
.ds-sect--planification .ds-plan__champ{
  display:flex;flex-direction:column;gap:3px;min-width:0;
  padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);
}
.ds-sect--planification .ds-plan__champ dt{font-size:11px;color:var(--vt-ink-3);letter-spacing:.1em;}
.ds-sect--planification .ds-plan__champ dd{
  margin:0;display:flex;align-items:center;gap:7px;min-width:0;
  font-size:12.5px;font-weight:600;line-height:1.35;color:var(--vt-ink);
}
.ds-sect--planification .ds-plan__champ dd svg{width:14px;height:14px;flex:0 0 auto;}
.ds-sect--planification .ds-plan__champ--ok{border-color:rgba(111,227,214,.35);background:rgba(14,165,160,.08);}
.ds-sect--planification .ds-plan__champ--ok dd{color:var(--vt-teal-lt);}
.ds-sect--planification .ds-plan__btn{
  align-self:flex-start;display:inline-flex;align-items:center;justify-content:center;
  padding:9px 14px;border-radius:10px;font-size:12.5px;font-weight:700;color:#EAF2FF;
  border:1px solid transparent;
  background:
    linear-gradient(rgba(255,255,255,.06),rgba(255,255,255,.03)) padding-box,
    linear-gradient(120deg,rgba(255,255,255,.4),rgba(255,255,255,.08) 45%,rgba(14,165,160,.55)) border-box;
}
.ds-sect--planification .ds-plan__illu{
  margin:0;padding:8px 16px 12px;text-align:right;font-size:11px;color:var(--vt-ink-3);opacity:.85;
  border-top:1px solid rgba(255,255,255,.07);
}
.ds-sect--planification .ds-plan__exergue{
  margin:22px 0 0;font-size:clamp(17px,1.5vw,21px);font-weight:800;letter-spacing:-.02em;color:var(--vt-ink);
  padding-left:16px;border-left:3px solid var(--vt-teal-lt);line-height:1.3;
}

/* encadré PLANIFIÉ — vue de charge (feuille de route, non disponible) */
.ds-sect--planification .ds-plan__planifie{
  margin-top:22px;padding:16px 18px;border-radius:16px;opacity:.6;
  background:rgba(255,255,255,.025);border:1px dashed rgba(255,255,255,.28);
  transition:opacity .25s ease;
}
.ds-sect--planification .ds-plan__planifie:hover,
.ds-sect--planification .ds-plan__planifie:focus-within{opacity:.85;}
.ds-sect--planification .ds-plan__planifie-tag{
  display:inline-block;margin:0 0 12px;padding:3px 9px;border-radius:999px;font-size:11px;
  color:var(--vt-ink-2);background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.22);
}
.ds-sect--planification .ds-plan__planifie-corps{display:grid;grid-template-columns:minmax(0,1fr) 200px;gap:16px;align-items:center;}
.ds-sect--planification .ds-plan__planifie-txt p{margin:0;font-size:13px;line-height:1.6;color:var(--vt-ink-2);}
.ds-sect--planification .ds-plan__planifie-txt strong{color:var(--vt-ink);}
.ds-sect--planification .ds-plan__croquis{min-width:0;padding:10px 10px 6px;border-radius:12px;border:1px dashed rgba(255,255,255,.18);}
.ds-sect--planification .ds-plan__croquis-tag{margin:0 0 6px;font-size:11px;letter-spacing:.08em;color:var(--vt-ink-3);}
.ds-sect--planification .ds-plan__croquis svg{display:block;width:100%;height:auto;}

@media (max-width:1180px){
  .ds-sect--planification .ds-plan__corps{grid-template-columns:minmax(0,1fr) 190px;}
}
@media (max-width:899px){
  .ds-sect--planification .ds-plan__grille{grid-template-columns:1fr;}
  .ds-sect--planification .ds-plan__copy{max-width:none;}
  .ds-sect--planification .ds-plan__corps{grid-template-columns:1fr;}
  .ds-sect--planification .ds-plan__panneau{border-left:0;border-top:1px solid rgba(255,255,255,.09);}
  .ds-sect--planification .ds-plan__champs{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:560px){
  .ds-sect--planification .ds-plan__semaine{--dsv-plan-h:26px;grid-template-columns:42px minmax(0,1fr);padding-right:8px;}
  .ds-sect--planification .ds-plan__heures span{right:6px;letter-spacing:.02em;}
  .ds-sect--planification .ds-plan__rdv{padding:4px 5px;left:2px;right:2px;}
  .ds-sect--planification .ds-plan__rdv i,
  .ds-sect--planification .ds-plan__rdv em{display:none;}
  .ds-sect--planification .ds-plan__rdv--ouvert em{display:block;}
  .ds-sect--planification .ds-plan__champs{grid-template-columns:1fr;}
  .ds-sect--planification .ds-plan__planifie-corps{grid-template-columns:1fr;}
  .ds-sect--planification .ds-plan__barre{flex-wrap:wrap;}
  .ds-sect--planification .ds-plan__illu{text-align:center;}
}


/* =====================================================================
   Mouvement réduit — états finaux (la règle globale coupe déjà les animations)
   ===================================================================== */
@media (prefers-reduced-motion:reduce){
  .ds-sect--offline .ds-offline__frise::after{transform:none;}
  .ds-sect--offline .ds-offline__tag--queue{--dsv-off-q:0;border-color:rgba(111,227,214,.45);}
  .ds-sect--commercial .ds-com__zones rect{opacity:1;}
  .ds-sect--commercial .ds-com__fil{stroke-dashoffset:0;}
  .ds-sect--commercial .ds-com__seg i{width:var(--w,0);}
  .ds-sect--commercial .ds-com__niveaux::after{transform:none;}
  .ds-sect--planification .ds-plan__rdv{opacity:1;transform:none;}
}


/* ============ HOMEPAGE V2 — lot C ============ */
/* ==========================================================================
   DomiSpect — Accueil V2 · LOT C (sections 10 à 14 de l'ordre final)
   10 .ds-sect--equipes    #equipes          (A5 Équipes et rôles)
   11 .ds-sect--actions    #actions          (A6 Actions et tâches)
   12 .ds-sect--portail    #portail          (A7 Portail client)
   13 .ds-sect--bord       #tableau-de-bord  (A8 Tableau de bord)
   14 .ds-sect--conformite #conformite       (A9 Conformité « Prêt à signer ? »)
   Tout est scopé sous .ds-sect--NOM. Keyframes préfixés dsv-c-. Les composants
   communs (.ds-sect, .ds-wrap, .ds-eyebrow, .ds-h2, .ds-lead, .ds-mono, .ds-cta,
   .ds-link, .ds-card, .ds-note, .ds-reveal) et les variables --vt-* ne sont pas
   redéclarés. Ambre = l'humain, l'effort, l'alerte · bleu → sarcelle = le système.
   ========================================================================== */

/* =====================================================================
   SECTION 10 — .ds-sect--equipes
   ===================================================================== */
.ds-sect--equipes{
  background:
    radial-gradient(80% 60% at 12% 8%, rgba(37,99,235,.30), transparent 62%),
    radial-gradient(70% 55% at 88% 92%, rgba(14,165,160,.22), transparent 62%),
    linear-gradient(180deg,#04101F 0%,#07203A 45%,#0A2A42 100%);
}
.ds-sect--equipes .eq-atmo{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;}
.ds-sect--equipes .eq-halo{position:absolute;border-radius:50%;filter:blur(70px);opacity:.5;}
.ds-sect--equipes .eq-halo--bleu{width:46vw;height:46vw;max-width:600px;max-height:600px;left:-14vw;top:-12vw;background:radial-gradient(circle,rgba(37,99,235,.55),transparent 68%);animation:dsv-c-derive 28s ease-in-out infinite alternate;}
.ds-sect--equipes .eq-halo--sarcelle{width:40vw;height:40vw;max-width:520px;max-height:520px;right:-10vw;bottom:-14vw;background:radial-gradient(circle,rgba(14,165,160,.45),transparent 68%);animation:dsv-c-derive 34s ease-in-out infinite alternate-reverse;}
@keyframes dsv-c-derive{from{transform:translate3d(0,0,0);}to{transform:translate3d(3%,4%,0);}}

.ds-sect--equipes .eq-tete{max-width:780px;margin:0 0 34px;}
.ds-sect--equipes .eq-texte{margin:0;max-width:66ch;font-size:clamp(14.5px,1.1vw,16px);line-height:1.68;color:var(--vt-ink-3);}

/* --- sélecteur de rôle --- */
.ds-sect--equipes .eq-tabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:0 0 18px;}
.ds-sect--equipes .eq-tab{
  display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:0;
  padding:14px 14px 12px;border-radius:16px;cursor:pointer;text-align:left;
  color:var(--vt-ink-2);font-family:inherit;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.10);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
  transition:transform .22s cubic-bezier(.22,.7,.24,1),border-color .22s ease,background-color .22s ease,box-shadow .22s ease;
}
.ds-sect--equipes .eq-tab:hover{transform:translateY(-2px);border-color:rgba(111,227,214,.34);}
.ds-sect--equipes .eq-tab:focus-visible{outline:3px solid rgba(111,227,214,.6);outline-offset:2px;}
.ds-sect--equipes .eq-tab[aria-selected="true"]{
  color:#fff;
  background:linear-gradient(180deg,rgba(14,165,160,.18),rgba(37,99,235,.12));
  border-color:rgba(111,227,214,.5);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 18px 40px -24px rgba(14,165,160,.8);
}
.ds-sect--equipes .eq-tab__ico{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);color:var(--vt-teal-lt);transition:background-color .22s ease,color .22s ease;}
.ds-sect--equipes .eq-tab__ico svg{width:20px;height:20px;}
.ds-sect--equipes .eq-tab[aria-selected="true"] .eq-tab__ico{background:linear-gradient(140deg,var(--vt-blue),var(--vt-teal));color:#fff;border-color:transparent;}
.ds-sect--equipes .eq-tab__lbl{font-weight:700;font-size:14px;letter-spacing:-.01em;line-height:1.2;}
.ds-sect--equipes .eq-tab__code{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11px;letter-spacing:.1em;color:var(--vt-ink-3);max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* --- cadre d'écran unique --- */
.ds-sect--equipes .eq-stage{position:relative;}
.ds-sect--equipes .eq-stage::before{content:"";position:absolute;inset:-6% -4%;z-index:0;border-radius:50%;pointer-events:none;background:radial-gradient(50% 50% at 50% 50%,rgba(37,99,235,.22),transparent 70%);filter:blur(30px);}
.ds-sect--equipes .eq-screen{
  position:relative;z-index:1;border-radius:20px;overflow:hidden;
  background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.03));
  border:1px solid rgba(255,255,255,.14);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 40px 90px -50px rgba(0,0,0,.9);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
}
.ds-sect--equipes .eq-screen__top{display:flex;align-items:center;gap:14px;padding:12px 18px;border-bottom:1px solid rgba(255,255,255,.10);background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,0));}
.ds-sect--equipes .eq-screen__dots{display:inline-flex;gap:6px;}
.ds-sect--equipes .eq-screen__dots i{width:7px;height:7px;border-radius:50%;background:rgba(198,214,236,.25);}
.ds-sect--equipes .eq-screen__illu{margin-left:auto;text-transform:none;letter-spacing:.06em;}
.ds-sect--equipes .eq-live{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);margin:0;padding:0;border:0;}
.ds-sect--equipes .eq-panel{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);animation:dsv-c-glisse .45s cubic-bezier(.22,.7,.24,1) both;}
.ds-sect--equipes .eq-panel[hidden]{display:none;}
@keyframes dsv-c-glisse{from{opacity:0;transform:translateX(14px);}to{opacity:1;transform:none;}}

/* interface stylisée */
.ds-sect--equipes .eq-ui{display:grid;grid-template-columns:150px minmax(0,1fr);min-height:300px;border-right:1px solid rgba(255,255,255,.08);}
.ds-sect--equipes .eq-ui__nav{list-style:none;margin:0;padding:14px 10px;border-right:1px solid rgba(255,255,255,.08);background:rgba(4,16,31,.35);display:flex;flex-direction:column;gap:4px;}
.ds-sect--equipes .eq-ui__nav li{position:relative;padding:6px 10px 6px 22px;border-radius:8px;font-size:12px;color:var(--vt-ink-3);opacity:.35;white-space:nowrap;}
.ds-sect--equipes .eq-ui__nav li::before{content:"";position:absolute;left:8px;top:50%;width:7px;height:7px;border-radius:2px;transform:translateY(-50%);background:currentColor;opacity:.5;}
.ds-sect--equipes .eq-ui__nav li.on{opacity:1;color:#EAF2FF;background:rgba(111,227,214,.08);}
.ds-sect--equipes .eq-ui__nav li.on::before{background:var(--vt-teal-lt);opacity:1;box-shadow:0 0 0 3px rgba(111,227,214,.15);}
.ds-sect--equipes .eq-ui__main{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:16px;align-content:start;}
.ds-sect--equipes .eq-w{position:relative;min-width:0;padding:12px 14px;border-radius:12px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09);display:flex;flex-direction:column;gap:8px;}
.ds-sect--equipes .eq-w--wide{grid-column:1 / -1;}
.ds-sect--equipes .eq-w--amber{border-color:rgba(245,181,68,.42);background:rgba(245,181,68,.07);}
.ds-sect--equipes .eq-w__t{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11px;letter-spacing:.1em;color:var(--vt-ink-3);}
.ds-sect--equipes .eq-w__val{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11.5px;font-weight:600;letter-spacing:.08em;color:#EAF2FF;}
.ds-sect--equipes .eq-w--amber .eq-w__val{color:var(--vt-amber-lt);}
.ds-sect--equipes .eq-w .eq-w__val--teal{color:var(--vt-teal-lt);}
.ds-sect--equipes .eq-w .eq-w__val--amber{color:var(--vt-amber-lt);}
.ds-sect--equipes .eq-w__ln{display:block;height:6px;border-radius:3px;background:rgba(198,214,236,.18);}
.ds-sect--equipes .eq-w__ln--4{width:40%;}
.ds-sect--equipes .eq-w__ln--5{width:50%;}
.ds-sect--equipes .eq-w__ln--6{width:60%;}
.ds-sect--equipes .eq-w__ln--7{width:70%;}
.ds-sect--equipes .eq-w__kpis{display:flex;flex-wrap:wrap;gap:12px 22px;}
.ds-sect--equipes .eq-w__kpis span{display:flex;flex-direction:column;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--vt-ink-3);}
.ds-sect--equipes .eq-w__kpis b{font-family:'Manrope',system-ui,sans-serif;font-size:22px;font-weight:800;line-height:1;letter-spacing:-.02em;color:#fff;margin-bottom:5px;}
.ds-sect--equipes .eq-w__week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;height:44px;align-items:end;}
.ds-sect--equipes .eq-w__week i{display:block;border-radius:4px;height:55%;background:rgba(198,214,236,.18);}
.ds-sect--equipes .eq-w__week i.b{background:rgba(37,99,235,.6);height:70%;}
.ds-sect--equipes .eq-w__week i.t{background:rgba(14,165,160,.62);height:50%;}
.ds-sect--equipes .eq-w__week i.a{background:rgba(245,181,68,.55);height:85%;}
.ds-sect--equipes .eq-w__rows{display:flex;flex-direction:column;}
.ds-sect--equipes .eq-w__row{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12.5px;color:var(--vt-ink-2);padding:6px 0;border-bottom:1px solid rgba(255,255,255,.07);min-width:0;}
.ds-sect--equipes .eq-w__row:last-child{border-bottom:0;}
.ds-sect--equipes .eq-w__row em{font-style:normal;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11px;letter-spacing:.08em;color:var(--vt-ink-3);flex:none;}
.ds-sect--equipes .eq-w__row i{font-style:normal;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11px;letter-spacing:.06em;white-space:nowrap;}
.ds-sect--equipes .eq-w__row i.teal{color:var(--vt-teal-lt);}
.ds-sect--equipes .eq-w__row i.amber{color:var(--vt-amber-lt);}
.ds-sect--equipes .eq-w__domi{display:flex;align-items:center;gap:12px;}
.ds-sect--equipes .eq-w__mic{width:26px;height:26px;border-radius:50%;flex:none;background:linear-gradient(140deg,var(--vt-blue),var(--vt-teal));box-shadow:0 0 0 6px rgba(14,165,160,.14);}
.ds-sect--equipes .eq-w__wave{display:inline-flex;align-items:center;gap:3px;height:22px;}
.ds-sect--equipes .eq-w__wave i{display:block;width:3px;border-radius:2px;background:var(--vt-teal-lt);height:40%;animation:dsv-c-onde 1.4s ease-in-out infinite;}
.ds-sect--equipes .eq-w__wave i:nth-child(2){animation-delay:.15s;height:70%;}
.ds-sect--equipes .eq-w__wave i:nth-child(3){animation-delay:.3s;height:100%;}
.ds-sect--equipes .eq-w__wave i:nth-child(4){animation-delay:.45s;height:60%;}
.ds-sect--equipes .eq-w__wave i:nth-child(5){animation-delay:.6s;height:85%;}
.ds-sect--equipes .eq-w__wave i:nth-child(6){animation-delay:.75s;height:45%;}
@keyframes dsv-c-onde{0%,100%{transform:scaleY(.5);}50%{transform:scaleY(1);}}

/* texte du panneau */
.ds-sect--equipes .eq-panel__txt{padding:26px;display:flex;flex-direction:column;justify-content:center;gap:14px;}
.ds-sect--equipes .eq-panel__phrase{margin:0;font-size:clamp(1.25rem,1rem + .9vw,1.7rem);font-weight:800;letter-spacing:-.02em;line-height:1.15;color:#fff;text-wrap:balance;}
.ds-sect--equipes .eq-panel__pts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;}
.ds-sect--equipes .eq-panel__pts li{position:relative;padding-left:20px;font-size:14.5px;color:var(--vt-ink-2);line-height:1.45;}
.ds-sect--equipes .eq-panel__pts li::before{content:"";position:absolute;left:0;top:.6em;width:10px;height:1.5px;background:linear-gradient(90deg,var(--vt-blue),var(--vt-teal));}

/* pied */
.ds-sect--equipes .eq-ligne{margin:22px 0 0;text-align:center;}
.ds-sect--equipes .eq-pied{margin-top:26px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 24px;}
.ds-sect--equipes .eq-message{margin:0;font-size:clamp(1.05rem,.95rem + .5vw,1.3rem);font-weight:700;color:#fff;letter-spacing:-.015em;}

@media (max-width:1100px){
  .ds-sect--equipes .eq-tabs{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media (max-width:900px){
  .ds-sect--equipes .eq-panel{grid-template-columns:1fr;}
  .ds-sect--equipes .eq-ui{border-right:0;border-bottom:1px solid rgba(255,255,255,.08);grid-template-columns:130px minmax(0,1fr);min-height:0;}
  .ds-sect--equipes .eq-panel__txt{padding:20px 18px 22px;}
}
@media (max-width:640px){
  .ds-sect--equipes .eq-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
  .ds-sect--equipes .eq-tab{padding:12px;}
  .ds-sect--equipes .eq-ui{grid-template-columns:1fr;}
  .ds-sect--equipes .eq-ui__nav{flex-direction:row;flex-wrap:wrap;border-right:0;border-bottom:1px solid rgba(255,255,255,.08);padding:10px;gap:4px 2px;}
  .ds-sect--equipes .eq-ui__nav li{padding:5px 8px 5px 18px;font-size:11px;}
  .ds-sect--equipes .eq-ui__main{grid-template-columns:1fr;padding:12px;}
}

/* =====================================================================
   SECTION 11 — .ds-sect--actions
   ===================================================================== */
.ds-sect--actions{
  background:
    radial-gradient(75% 60% at 85% 10%, rgba(14,165,160,.26), transparent 62%),
    radial-gradient(60% 50% at 8% 80%, rgba(245,181,68,.14), transparent 62%),
    linear-gradient(180deg,#0A2A42 0%,#07203A 50%,#04101F 100%);
}
.ds-sect--actions .ac-atmo{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;}
.ds-sect--actions .ac-halo{position:absolute;border-radius:50%;filter:blur(72px);opacity:.5;}
.ds-sect--actions .ac-halo--sarcelle{width:44vw;height:44vw;max-width:560px;max-height:560px;right:-12vw;top:-14vw;background:radial-gradient(circle,rgba(14,165,160,.5),transparent 68%);}
.ds-sect--actions .ac-halo--ambre{width:34vw;height:34vw;max-width:440px;max-height:440px;left:-10vw;bottom:-12vw;background:radial-gradient(circle,rgba(245,181,68,.32),transparent 68%);opacity:.4;}

.ds-sect--actions .ac-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(34px,5vw,72px);align-items:start;}
.ds-sect--actions .ac-copy{position:sticky;top:96px;}
.ds-sect--actions .ac-texte{margin:0 0 22px;max-width:60ch;font-size:clamp(14.5px,1.1vw,16px);line-height:1.68;color:var(--vt-ink-3);}

/* mini-scène : toit, cheminée, solin */
.ds-sect--actions .ac-scene{margin:0 0 20px;padding:0;position:relative;}
.ds-sect--actions .ac-svg{display:block;width:100%;height:auto;border-radius:16px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.1);}
.ds-sect--actions .ac-scene__cap{display:block;margin-top:8px;text-transform:none;letter-spacing:.06em;}
.ds-sect--actions .ac-goutte{transform-origin:136px 128px;animation:dsv-c-pouls 2.6s ease-in-out infinite;}
.ds-sect--actions .ac-coche{opacity:0;transform-origin:136px 128px;transform:scale(.6);}
.ds-sect--actions .ac-coche__trait{stroke-dasharray:20;stroke-dashoffset:20;}
.ds-sect--actions .ac-lbl-ferme{opacity:0;}
.ds-sect--actions.est-visible .ac-goutte{animation:dsv-c-goutte-out .5s ease 2.6s forwards;}
.ds-sect--actions.est-visible .ac-coche{animation:dsv-c-coche-in .5s cubic-bezier(.22,.7,.24,1) 2.8s forwards;}
.ds-sect--actions.est-visible .ac-coche__trait{animation:dsv-c-trait .4s ease 3.1s forwards;}
.ds-sect--actions.est-visible .ac-lbl-ouvert{animation:dsv-c-fade-out .3s ease 2.7s forwards;}
.ds-sect--actions.est-visible .ac-lbl-ferme{animation:dsv-c-fade-in .3s ease 2.9s forwards;}
@keyframes dsv-c-pouls{0%,100%{opacity:1;}50%{opacity:.6;}}
@keyframes dsv-c-goutte-out{to{opacity:0;transform:scale(.6);}}
@keyframes dsv-c-coche-in{to{opacity:1;transform:scale(1);}}
@keyframes dsv-c-trait{to{stroke-dashoffset:0;}}
@keyframes dsv-c-fade-out{to{opacity:0;}}
@keyframes dsv-c-fade-in{to{opacity:1;}}

.ds-sect--actions .ac-cloture{margin:0 0 12px;max-width:52ch;font-size:15px;line-height:1.55;color:var(--vt-ink-2);}
.ds-sect--actions .ac-encart{display:inline-block;margin:0 0 22px;padding:7px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.04);color:var(--vt-ink-2);}
.ds-sect--actions .ac-pied{display:flex;flex-direction:column;gap:14px;align-items:flex-start;}
.ds-sect--actions .ac-message{margin:0;font-size:clamp(1.05rem,.95rem + .5vw,1.3rem);font-weight:700;color:#fff;letter-spacing:-.015em;}

/* frise verticale */
.ds-sect--actions .ac-frise{position:relative;list-style:none;margin:0;padding:0 0 0 46px;display:flex;flex-direction:column;gap:16px;}
.ds-sect--actions .ac-frise::before{content:"";position:absolute;left:15px;top:18px;bottom:18px;width:2px;border-radius:2px;background:linear-gradient(180deg,rgba(37,99,235,.9),rgba(14,165,160,.9));opacity:.28;}
.ds-sect--actions .ac-frise::after{content:"";position:absolute;left:15px;top:18px;width:2px;height:0;border-radius:2px;background:linear-gradient(180deg,var(--vt-blue),var(--vt-teal-lt));box-shadow:0 0 12px rgba(111,227,214,.6);}
.ds-sect--actions.est-visible .ac-frise::after{animation:dsv-c-fil 2.2s cubic-bezier(.2,.7,.25,1) .3s forwards;}
@keyframes dsv-c-fil{to{height:calc(100% - 36px);}}
.ds-sect--actions .ac-etape{position:relative;}
.ds-sect--actions .ac-noeud{
  position:absolute;left:-46px;top:14px;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;
  background:#07203A;border:1.5px solid rgba(111,227,214,.55);color:var(--vt-teal-lt);
  font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11.5px;font-weight:600;
  box-shadow:0 0 0 5px rgba(14,165,160,.12);
}
.ds-sect--actions .ac-noeud b{font-weight:600;}
.ds-sect--actions .ac-noeud--fin{background:var(--vt-teal);border-color:var(--vt-teal-lt);color:#04101F;box-shadow:0 0 0 6px rgba(14,165,160,.22),0 0 24px rgba(111,227,214,.5);}
.ds-sect--actions .ac-noeud--fin svg{width:16px;height:16px;}
.ds-sect--actions .ac-carte{
  padding:16px 18px;border-radius:16px;
  background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.12);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 30px 70px -46px rgba(0,0,0,.95);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  transition:transform .25s ease,border-color .25s ease;
}
.ds-sect--actions .ac-carte:hover{transform:translateY(-2px);border-color:rgba(111,227,214,.34);}
.ds-sect--actions .ac-carte--fin{border-color:rgba(111,227,214,.5);background:linear-gradient(180deg,rgba(14,165,160,.14),rgba(14,165,160,.05));}
.ds-sect--actions .ac-carte__tete{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 8px;}
.ds-sect--actions .ac-carte__titre{margin:0;font-size:15.5px;font-weight:800;letter-spacing:-.01em;color:#fff;}
.ds-sect--actions .ac-statut{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11px;font-weight:600;letter-spacing:.1em;padding:4px 9px;border-radius:999px;white-space:nowrap;}
.ds-sect--actions .ac-statut--ambre{color:var(--vt-amber-lt);background:rgba(245,181,68,.12);border:1px solid rgba(245,181,68,.4);}
.ds-sect--actions .ac-statut--sarcelle{color:#04101F;background:linear-gradient(100deg,var(--vt-teal-lt),var(--vt-teal));border:1px solid transparent;box-shadow:0 6px 16px -8px rgba(14,165,160,.9);}
.ds-sect--actions .ac-carte__txt{margin:0;font-size:14px;line-height:1.55;color:var(--vt-ink-2);}
.ds-sect--actions .ac-carte__meta{display:flex;align-items:center;gap:10px;margin-top:12px;flex-wrap:wrap;}
.ds-sect--actions .ac-vignette{width:44px;height:34px;border-radius:7px;overflow:hidden;position:relative;flex:none;border:1px solid rgba(255,255,255,.14);background:linear-gradient(160deg,#1B3A5C,#0B2238);}
.ds-sect--actions .ac-vignette i{position:absolute;inset:0;}
.ds-sect--actions .ac-vignette--photo i{background:radial-gradient(60% 60% at 40% 60%,rgba(245,181,68,.55),transparent 70%),repeating-linear-gradient(0deg,rgba(255,255,255,.05) 0 1px,transparent 1px 5px);}
.ds-sect--actions .ac-vignette--preuve i{background:radial-gradient(60% 60% at 50% 50%,rgba(111,227,214,.4),transparent 70%),repeating-linear-gradient(0deg,rgba(255,255,255,.05) 0 1px,transparent 1px 5px);}
.ds-sect--actions .ac-champs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0 0;}
.ds-sect--actions .ac-champs div{min-width:0;padding:8px 10px;border-radius:10px;background:rgba(4,16,31,.4);border:1px solid rgba(255,255,255,.08);}
.ds-sect--actions .ac-champs dt{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--vt-ink-3);margin:0 0 4px;}
.ds-sect--actions .ac-champs dd{margin:0;font-size:13px;font-weight:700;color:#fff;line-height:1.35;}
.ds-sect--actions .ac-champs .ac-champs__prio{color:var(--vt-amber-lt);}
.ds-sect--actions .ac-courriel{display:flex;align-items:center;gap:10px;margin-top:12px;color:var(--vt-teal-lt);}
.ds-sect--actions .ac-courriel svg{width:20px;height:20px;flex:none;}
.ds-sect--actions .ac-carte__mono{margin:10px 0 0;color:var(--vt-teal-lt);}

@media (max-width:900px){
  .ds-sect--actions .ac-inner{grid-template-columns:1fr;}
  .ds-sect--actions .ac-copy{position:static;}
}
@media (max-width:520px){
  .ds-sect--actions .ac-champs{grid-template-columns:1fr;}
  .ds-sect--actions .ac-frise{padding-left:40px;}
  .ds-sect--actions .ac-noeud{left:-40px;width:28px;height:28px;}
  .ds-sect--actions .ac-carte__tete{flex-wrap:wrap;}
}

/* =====================================================================
   SECTION 12 — .ds-sect--portail
   ===================================================================== */
.ds-sect--portail{
  background:
    radial-gradient(70% 55% at 10% 10%, rgba(37,99,235,.28), transparent 62%),
    radial-gradient(70% 55% at 90% 85%, rgba(14,165,160,.22), transparent 62%),
    linear-gradient(180deg,#04101F 0%,#07203A 50%,#0A2A42 100%);
}
.ds-sect--portail .po-atmo{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;}
.ds-sect--portail .po-halo{position:absolute;border-radius:50%;filter:blur(70px);opacity:.5;}
.ds-sect--portail .po-halo--bleu{width:42vw;height:42vw;max-width:560px;max-height:560px;left:-12vw;top:-10vw;background:radial-gradient(circle,rgba(37,99,235,.5),transparent 68%);}
.ds-sect--portail .po-halo--sarcelle{width:38vw;height:38vw;max-width:500px;max-height:500px;right:-10vw;bottom:-12vw;background:radial-gradient(circle,rgba(14,165,160,.45),transparent 68%);}

.ds-sect--portail .po-tete{max-width:780px;margin:0 0 34px;}
.ds-sect--portail .po-grille{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(18px,3vw,32px);align-items:stretch;}
.ds-sect--portail .po-col{
  display:flex;flex-direction:column;min-width:0;
  padding:clamp(20px,2.6vw,30px);border-radius:20px;
  background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.12);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 40px 90px -50px rgba(0,0,0,.9);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
}
.ds-sect--portail .po-col__kicker{display:flex;align-items:center;gap:8px;margin:0 0 12px;color:var(--vt-teal-lt);}
.ds-sect--portail .po-pastille{width:8px;height:8px;border-radius:50%;flex:none;}
.ds-sect--portail .po-pastille--ok{background:var(--vt-teal-lt);box-shadow:0 0 0 4px rgba(111,227,214,.16);}
.ds-sect--portail .po-col__titre{margin:0 0 10px;font-size:clamp(1.15rem,1rem + .6vw,1.45rem);font-weight:800;letter-spacing:-.02em;color:#fff;}
.ds-sect--portail .po-col__txt{margin:0 0 18px;font-size:14.5px;line-height:1.65;color:var(--vt-ink-2);}
.ds-sect--portail .po-col__txt strong{color:#fff;}

/* maquette « tablette » */
.ds-sect--portail .po-tablette{
  margin-top:auto;border-radius:18px;overflow:hidden;
  background:linear-gradient(180deg,rgba(12,32,54,.9),rgba(7,20,36,.92));
  border:1px solid rgba(255,255,255,.14);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 40px 90px -50px rgba(0,0,0,.9);
}
.ds-sect--portail .po-tablette__barre{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.04);}
.ds-sect--portail .po-tablette__dots{display:inline-flex;gap:6px;flex:none;}
.ds-sect--portail .po-tablette__dots i{width:7px;height:7px;border-radius:50%;background:rgba(198,214,236,.25);}
.ds-sect--portail .po-tablette__url{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-transform:none;letter-spacing:.04em;padding:4px 10px;border-radius:6px;background:rgba(4,16,31,.5);}
.ds-sect--portail .po-tablette__lien{display:inline-flex;align-items:center;gap:6px;color:var(--vt-teal-lt);white-space:nowrap;flex:none;}
.ds-sect--portail .po-tablette__lien svg{width:13px;height:13px;}
.ds-sect--portail .po-tablette__page{padding:16px;display:flex;flex-direction:column;gap:12px;background:linear-gradient(180deg,rgba(242,247,255,.06),rgba(242,247,255,.02));}
.ds-sect--portail .po-doc__couv{display:flex;gap:14px;align-items:center;padding:12px;border-radius:12px;background:rgba(242,247,255,.05);border:1px solid rgba(255,255,255,.1);}
.ds-sect--portail .po-doc__photo{width:74px;height:56px;border-radius:8px;flex:none;position:relative;overflow:hidden;background:linear-gradient(180deg,#0B2238 0 58%,#12384A 58%);}
.ds-sect--portail .po-doc__photo i{position:absolute;left:24%;right:24%;bottom:42%;height:34%;background:#1B3A5C;border:1px solid rgba(255,255,255,.22);}
.ds-sect--portail .po-doc__photo i::before{content:"";position:absolute;left:-14%;right:-14%;bottom:100%;height:70%;background:#2563EB;opacity:.85;clip-path:polygon(0 100%,50% 0,100% 100%);}
.ds-sect--portail .po-doc__photo i::after{content:"";position:absolute;left:40%;bottom:0;width:20%;height:55%;background:var(--vt-amber);opacity:.85;border-radius:1px 1px 0 0;}
.ds-sect--portail .po-doc__entete{display:flex;flex-direction:column;gap:4px;min-width:0;}
.ds-sect--portail .po-doc__eti{color:var(--vt-ink-3);}
.ds-sect--portail .po-doc__adresse{font-weight:800;font-size:15px;color:#fff;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ds-sect--portail .po-doc__signe{color:var(--vt-teal-lt);}
.ds-sect--portail .po-doc__bloc{display:flex;flex-direction:column;gap:6px;}
.ds-sect--portail .po-doc__h{color:var(--vt-ink-3);margin-bottom:2px;}
.ds-sect--portail .po-doc__ln{display:block;height:6px;border-radius:3px;background:rgba(198,214,236,.2);}
.ds-sect--portail .po-doc__ln--4{width:40%;}
.ds-sect--portail .po-doc__ln--5{width:50%;}
.ds-sect--portail .po-doc__ln--7{width:70%;}
.ds-sect--portail .po-doc__ln--8{width:80%;}
.ds-sect--portail .po-doc__ln--9{width:90%;}
.ds-sect--portail .po-doc__statuts{display:flex;gap:8px;}
.ds-sect--portail .po-doc__statuts i{display:block;width:26px;height:8px;border-radius:4px;background:rgba(155,176,204,.3);}
.ds-sect--portail .po-doc__statuts i.ok{background:var(--vt-teal-lt);}
.ds-sect--portail .po-doc__statuts i.att{background:rgba(245,181,68,.55);}
.ds-sect--portail .po-doc__statuts i.def{background:var(--vt-amber);}
.ds-sect--portail .po-doc__actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:4px;}
.ds-sect--portail .po-doc__btn{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:10px;font-size:12.5px;font-weight:700;color:#04101F;background:linear-gradient(100deg,var(--vt-teal-lt),var(--vt-teal));box-shadow:0 8px 20px -10px rgba(14,165,160,.9);}
.ds-sect--portail .po-doc__btn svg{width:14px;height:14px;}
.ds-sect--portail .po-doc__lang{color:var(--vt-ink-3);}
.ds-sect--portail .po-note{margin-top:12px;}

/* croquis du portail de projet (planifié) */
.ds-sect--portail .po-croquis{margin-top:auto;position:relative;}
.ds-sect--portail .po-croquis__eti{display:inline-block;margin-bottom:10px;padding:5px 10px;border-radius:999px;color:var(--vt-ink-2);border:1px dashed rgba(255,255,255,.32);}
.ds-sect--portail .po-croquis__cadre{padding:16px;border-radius:16px;border:1px dashed rgba(255,255,255,.28);background:rgba(255,255,255,.02);opacity:.7;}
.ds-sect--portail .po-croquis__tete{display:flex;justify-content:space-between;gap:12px;margin-bottom:12px;}
.ds-sect--portail .po-croquis__ln{display:block;height:8px;border-radius:4px;background:rgba(155,176,204,.25);}
.ds-sect--portail .po-croquis__ln--6{width:60%;}
.ds-sect--portail .po-croquis__ln--3{width:24%;}
.ds-sect--portail .po-croquis__grille{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;}
.ds-sect--portail .po-croquis__tuile{display:block;height:44px;border-radius:8px;border:1px dashed rgba(155,176,204,.4);background:repeating-linear-gradient(45deg,rgba(155,176,204,.06) 0 6px,transparent 6px 12px);}
.ds-sect--portail .po-croquis__tuile--large{grid-column:1 / -1;height:32px;}
.ds-sect--portail .po-croquis__cap{display:block;margin-top:12px;text-align:center;color:var(--vt-ink-3);}
.ds-sect--portail .po-col__planifie{margin:16px 0 0;font-size:14px;line-height:1.6;color:var(--vt-ink-3);}
.ds-sect--portail .po-col__planifie-eti{display:inline-block;margin-right:8px;padding:3px 8px;border-radius:6px;border:1px dashed rgba(255,255,255,.32);color:var(--vt-ink-2);vertical-align:1px;}
.ds-sect--portail .po-pied{margin-top:28px;}

@media (max-width:900px){
  .ds-sect--portail .po-grille{grid-template-columns:1fr;}
}
@media (max-width:420px){
  .ds-sect--portail .po-tablette__url{display:none;}
  .ds-sect--portail .po-doc__actions{flex-wrap:wrap;}
}

/* =====================================================================
   SECTION 13 — .ds-sect--bord (tableau de bord)
   ===================================================================== */
.ds-sect--bord{
  background:
    radial-gradient(70% 50% at 20% 0%, rgba(14,165,160,.24), transparent 62%),
    radial-gradient(60% 50% at 90% 30%, rgba(37,99,235,.26), transparent 62%),
    radial-gradient(50% 40% at 60% 100%, rgba(245,181,68,.12), transparent 70%),
    linear-gradient(180deg,#04101F 0%,#061A2E 40%,#07203A 100%);
}
.ds-sect--bord .tb-atmo{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;}
.ds-sect--bord .tb-halo{position:absolute;border-radius:50%;filter:blur(74px);opacity:.5;}
.ds-sect--bord .tb-halo--sarcelle{width:44vw;height:44vw;max-width:580px;max-height:580px;left:-12vw;top:-12vw;background:radial-gradient(circle,rgba(14,165,160,.5),transparent 68%);}
.ds-sect--bord .tb-halo--bleu{width:40vw;height:40vw;max-width:540px;max-height:540px;right:-10vw;top:10%;background:radial-gradient(circle,rgba(37,99,235,.5),transparent 68%);}
.ds-sect--bord .tb-halo--ambre{width:30vw;height:30vw;max-width:400px;max-height:400px;left:40%;bottom:-14vw;background:radial-gradient(circle,rgba(245,181,68,.3),transparent 70%);opacity:.4;}
.ds-sect--bord .tb-grille{
  position:absolute;inset:0;
  background:
    repeating-linear-gradient(0deg, rgba(255,255,255,.04) 0 1px, transparent 1px 48px),
    repeating-linear-gradient(90deg, rgba(255,255,255,.03) 0 1px, transparent 1px 48px);
  -webkit-mask-image:radial-gradient(110% 70% at 50% 0%, #000 0%, rgba(0,0,0,.3) 50%, transparent 80%);
  mask-image:radial-gradient(110% 70% at 50% 0%, #000 0%, rgba(0,0,0,.3) 50%, transparent 80%);
}

.ds-sect--bord .tb-tete{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(20px,4vw,56px);align-items:end;margin:0 0 30px;}
.ds-sect--bord .tb-tete__copy .ds-lead{margin-bottom:0;}
.ds-sect--bord .tb-texte{margin:0 0 6px;font-size:clamp(14.5px,1.1vw,16px);line-height:1.68;color:var(--vt-ink-3);}

/* grande carte */
.ds-sect--bord .tb-carte{
  position:relative;border-radius:22px;overflow:hidden;
  background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.03));
  border:1px solid rgba(255,255,255,.14);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 40px 90px -50px rgba(0,0,0,.9);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
}
.ds-sect--bord .tb-carte::before{content:"";position:absolute;inset:-20% -10%;z-index:0;pointer-events:none;background:radial-gradient(40% 40% at 20% 20%,rgba(37,99,235,.18),transparent 70%),radial-gradient(40% 40% at 85% 80%,rgba(14,165,160,.16),transparent 70%);}
.ds-sect--bord .tb-carte > *{position:relative;z-index:1;}
.ds-sect--bord .tb-carte__barre{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 20px;border-bottom:1px solid rgba(255,255,255,.1);background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,0));}
.ds-sect--bord .tb-carte__dots{display:inline-flex;gap:6px;}
.ds-sect--bord .tb-carte__dots i{width:7px;height:7px;border-radius:50%;background:rgba(198,214,236,.25);}
.ds-sect--bord .tb-carte__titre{font-weight:800;font-size:15px;color:#fff;letter-spacing:-.01em;}
.ds-sect--bord .tb-carte__date{color:var(--vt-ink-3);}
.ds-sect--bord .tb-carte__illu{margin-left:auto;text-transform:none;letter-spacing:.06em;color:var(--vt-amber-lt);}
.ds-sect--bord .tb-corps{padding:18px 20px 20px;display:flex;flex-direction:column;gap:14px;}

/* tuiles */
.ds-sect--bord .tb-tuiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;}
.ds-sect--bord .tb-tuile{
  position:relative;min-width:0;padding:14px 16px;border-radius:14px;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);
  display:flex;flex-direction:column;gap:8px;
  transition:transform .25s ease,border-color .25s ease;
}
.ds-sect--bord .tb-tuile:hover{transform:translateY(-2px);border-color:rgba(111,227,214,.34);}
.ds-sect--bord .tb-tuile--ambre{border-color:rgba(245,181,68,.42);background:rgba(245,181,68,.06);}
.ds-sect--bord .tb-tuile--confirmer{opacity:.72;border-style:dashed;padding-right:92px;}
.ds-sect--bord .tb-tuile__t{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11px;letter-spacing:.1em;color:var(--vt-ink-3);}
.ds-sect--bord .tb-tuile__val{display:flex;align-items:baseline;gap:6px;font-size:clamp(28px,2.6vw,38px);font-weight:800;line-height:1;letter-spacing:-.03em;color:#fff;}
.ds-sect--bord .tb-tuile__val small{font-size:14px;font-weight:600;color:var(--vt-ink-2);letter-spacing:0;}
.ds-sect--bord .tb-tuile__val--ambre{color:var(--vt-amber);}
.ds-sect--bord .tb-tuile__sub{font-size:11px;color:var(--vt-ink-3);}
.ds-sect--bord .tb-tuile__sub b{font-weight:600;color:#fff;}
.ds-sect--bord .tb-tuile__sub b.teal{color:var(--vt-teal-lt);}
.ds-sect--bord .tb-tuile__sub--ambre{color:var(--vt-amber-lt);}
.ds-sect--bord .tb-tag{position:absolute;top:10px;right:10px;padding:3px 7px;border-radius:6px;font-size:11px;color:var(--vt-ink-3);border:1px dashed rgba(255,255,255,.3);}

/* mini-graphiques */
.ds-sect--bord .tb-barres{width:100%;height:44px;display:block;overflow:visible;}
.ds-sect--bord .tb-barre{fill:rgba(37,99,235,.55);transform:scaleY(0);transform-origin:bottom;transform-box:fill-box;}
.ds-sect--bord .tb-barre--now{fill:var(--vt-teal-lt);}
.ds-sect--bord.est-visible .tb-barre{animation:dsv-c-barre .8s cubic-bezier(.2,.7,.25,1) forwards;}
.ds-sect--bord.est-visible .tb-barre:nth-child(1){animation-delay:.4s;}
.ds-sect--bord.est-visible .tb-barre:nth-child(2){animation-delay:.5s;}
.ds-sect--bord.est-visible .tb-barre:nth-child(3){animation-delay:.6s;}
.ds-sect--bord.est-visible .tb-barre:nth-child(4){animation-delay:.7s;}
.ds-sect--bord.est-visible .tb-barre:nth-child(5){animation-delay:.8s;}
@keyframes dsv-c-barre{to{transform:scaleY(1);}}
.ds-sect--bord .tb-jauge{display:flex;height:8px;border-radius:4px;overflow:hidden;background:rgba(255,255,255,.08);}
.ds-sect--bord .tb-jauge i{display:block;height:100%;transform:scaleX(0);transform-origin:left;}
.ds-sect--bord .tb-jauge__fermees{width:69%;background:linear-gradient(90deg,var(--vt-blue),var(--vt-teal));}
.ds-sect--bord .tb-jauge__ouvertes{width:31%;background:rgba(245,181,68,.6);}
.ds-sect--bord.est-visible .tb-jauge i{animation:dsv-c-jauge 1s cubic-bezier(.2,.7,.25,1) .5s forwards;}
.ds-sect--bord.est-visible .tb-jauge__ouvertes{animation-delay:1.1s;}
@keyframes dsv-c-jauge{to{transform:scaleX(1);}}
.ds-sect--bord .tb-anneau{position:relative;width:80px;height:80px;}
.ds-sect--bord .tb-anneau svg{width:100%;height:100%;display:block;}
.ds-sect--bord.est-visible .tb-anneau__arc{animation:dsv-c-anneau 1.2s cubic-bezier(.2,.7,.25,1) .4s forwards;}
@keyframes dsv-c-anneau{to{stroke-dashoffset:96;}}
.ds-sect--bord .tb-anneau__val{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;}
.ds-sect--bord .tb-anneau__val b{font-size:17px;font-weight:800;color:#fff;letter-spacing:-.02em;}
.ds-sect--bord .tb-anneau__val i{font-style:normal;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11px;color:var(--vt-ink-3);margin-top:3px;}

/* rangée basse */
.ds-sect--bord .tb-bas{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:12px;}
.ds-sect--bord .tb-liste,
.ds-sect--bord .tb-alertes{padding:14px 16px;border-radius:14px;background:rgba(4,16,31,.35);border:1px solid rgba(255,255,255,.09);min-width:0;}
.ds-sect--bord .tb-bloc__t{display:block;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11px;letter-spacing:.12em;color:var(--vt-ink-3);margin-bottom:10px;}
.ds-sect--bord .tb-liste__ent,
.ds-sect--bord .tb-liste__row{display:grid;grid-template-columns:1.1fr 1.7fr 1fr auto;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.07);font-size:13px;color:var(--vt-ink-2);}
.ds-sect--bord .tb-liste__ent{font-size:11px;color:var(--vt-ink-3);padding-top:0;}
.ds-sect--bord .tb-liste__row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ds-sect--bord .tb-liste__row span:first-child{color:#fff;font-weight:600;}
.ds-sect--bord .tb-st{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11px;letter-spacing:.08em;padding:3px 8px;border-radius:999px;border:1px solid rgba(255,255,255,.14);color:var(--vt-ink-3);}
.ds-sect--bord .tb-st--ambre{color:var(--vt-amber-lt);border-color:rgba(245,181,68,.4);background:rgba(245,181,68,.1);}
.ds-sect--bord .tb-st--teal{color:#04101F;background:var(--vt-teal-lt);border-color:transparent;}
.ds-sect--bord .tb-liste__plus{display:block;margin-top:10px;color:var(--vt-teal-lt);}
.ds-sect--bord .tb-alerte{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;border-radius:12px;margin-bottom:8px;border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.03);}
.ds-sect--bord .tb-alerte:last-child{margin-bottom:0;}
.ds-sect--bord .tb-alerte div{display:flex;flex-direction:column;gap:4px;min-width:0;}
.ds-sect--bord .tb-alerte b{font-size:13px;color:#fff;font-weight:700;line-height:1.35;}
.ds-sect--bord .tb-alerte .ds-mono{font-size:11px;}
.ds-sect--bord .tb-alerte__ico{width:28px;height:28px;flex:none;border-radius:8px;display:grid;place-items:center;}
.ds-sect--bord .tb-alerte__ico svg{width:16px;height:16px;}
.ds-sect--bord .tb-alerte--ambre{border-color:rgba(245,181,68,.4);background:rgba(245,181,68,.08);}
.ds-sect--bord .tb-alerte--ambre .tb-alerte__ico{color:var(--vt-amber);background:rgba(245,181,68,.14);}
.ds-sect--bord .tb-alerte--ok .tb-alerte__ico{color:var(--vt-teal-lt);background:rgba(14,165,160,.14);}

.ds-sect--bord .tb-legende{margin:16px 0 0;text-align:center;}
.ds-sect--bord .tb-pied{margin-top:26px;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:16px 24px;}

@media (max-width:1100px){
  .ds-sect--bord .tb-tuiles{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media (max-width:900px){
  .ds-sect--bord .tb-tete{grid-template-columns:1fr;}
  .ds-sect--bord .tb-tuiles{grid-template-columns:repeat(2,minmax(0,1fr));}
  .ds-sect--bord .tb-bas{grid-template-columns:1fr;}
  .ds-sect--bord .tb-liste__ent{display:none;}
  .ds-sect--bord .tb-liste__row{grid-template-columns:minmax(0,1fr) auto;row-gap:3px;}
  .ds-sect--bord .tb-liste__row span:nth-child(2),
  .ds-sect--bord .tb-liste__row span:nth-child(3){grid-column:1 / -1;font-size:12px;color:var(--vt-ink-3);}
  .ds-sect--bord .tb-liste__row span:nth-child(4){grid-column:2;grid-row:1;}
}
@media (max-width:520px){
  .ds-sect--bord .tb-corps{padding:14px 12px 16px;}
  .ds-sect--bord .tb-tuiles{gap:8px;}
  .ds-sect--bord .tb-tuile{padding:12px;}
  .ds-sect--bord .tb-tuile--confirmer{padding-right:12px;padding-top:34px;}
  .ds-sect--bord .tb-tuile__val{font-size:26px;}
  .ds-sect--bord .tb-carte__illu{margin-left:0;flex-basis:100%;}
}

/* =====================================================================
   SECTION 14 — .ds-sect--conformite
   ===================================================================== */
.ds-sect--conformite{
  background:
    radial-gradient(70% 55% at 88% 8%, rgba(245,181,68,.16), transparent 62%),
    radial-gradient(70% 55% at 8% 70%, rgba(14,165,160,.24), transparent 62%),
    linear-gradient(180deg,#07203A 0%,#0A2A42 45%,#04101F 100%);
}
.ds-sect--conformite .cf-atmo{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;}
.ds-sect--conformite .cf-halo{position:absolute;border-radius:50%;filter:blur(72px);opacity:.45;}
.ds-sect--conformite .cf-halo--ambre{width:36vw;height:36vw;max-width:460px;max-height:460px;right:-10vw;top:-12vw;background:radial-gradient(circle,rgba(245,181,68,.4),transparent 68%);}
.ds-sect--conformite .cf-halo--sarcelle{width:44vw;height:44vw;max-width:560px;max-height:560px;left:-14vw;bottom:-14vw;background:radial-gradient(circle,rgba(14,165,160,.5),transparent 68%);}

.ds-sect--conformite .cf-tete{max-width:820px;margin:0 0 36px;}
.ds-sect--conformite .cf-texte{margin:0;max-width:70ch;font-size:clamp(14.5px,1.1vw,16px);line-height:1.68;color:var(--vt-ink-3);}
.ds-sect--conformite .cf-grille{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.95fr);gap:clamp(24px,4vw,56px);align-items:start;}

/* quatre garde-fous */
.ds-sect--conformite .cf-colonnes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.ds-sect--conformite .cf-col{
  min-width:0;padding:18px;border-radius:16px;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.11);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 30px 70px -46px rgba(0,0,0,.95);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  transition:transform .25s ease,border-color .25s ease;
}
.ds-sect--conformite .cf-col:hover{transform:translateY(-2px);border-color:rgba(111,227,214,.34);}
.ds-sect--conformite .cf-col__ico{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;margin-bottom:12px;background:rgba(14,165,160,.12);border:1px solid rgba(111,227,214,.3);color:var(--vt-teal-lt);}
.ds-sect--conformite .cf-col__ico svg{width:22px;height:22px;}
.ds-sect--conformite .cf-col--alerte .cf-col__ico{color:var(--vt-amber);background:rgba(245,181,68,.12);border-color:rgba(245,181,68,.35);}
.ds-sect--conformite .cf-col--trace .cf-col__ico{color:var(--vt-blue-lt);background:rgba(37,99,235,.14);border-color:rgba(143,178,255,.3);}
.ds-sect--conformite .cf-col__titre{margin:0 0 6px;font-size:16px;font-weight:800;letter-spacing:-.01em;color:#fff;}
.ds-sect--conformite .cf-col__txt{margin:0;font-size:13.5px;line-height:1.6;color:var(--vt-ink-2);}
.ds-sect--conformite .cf-exergue{grid-column:1 / -1;margin:8px 0 0;padding:16px 18px;border-radius:14px;border-left:2px solid rgba(111,227,214,.5);background:rgba(255,255,255,.03);font-size:15px;line-height:1.6;color:var(--vt-ink-2);}
.ds-sect--conformite .cf-exergue__sys{color:var(--vt-teal-lt);font-weight:700;}
.ds-sect--conformite .cf-exergue__hum{color:var(--vt-amber-lt);font-weight:700;}

/* checklist */
.ds-sect--conformite .cf-stage{position:relative;}
.ds-sect--conformite .cf-stage::before{content:"";position:absolute;inset:-8% -6%;z-index:0;pointer-events:none;border-radius:50%;background:radial-gradient(50% 50% at 50% 50%,rgba(14,165,160,.22),transparent 70%);filter:blur(30px);}
.ds-sect--conformite .cf-check{
  position:relative;z-index:1;border-radius:20px;overflow:hidden;
  background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.03));
  border:1px solid rgba(255,255,255,.14);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 40px 90px -50px rgba(0,0,0,.9);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
}
.ds-sect--conformite .cf-check__top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 18px;border-bottom:1px solid rgba(255,255,255,.1);background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,0));}
.ds-sect--conformite .cf-check__illu{text-transform:none;letter-spacing:.06em;}
.ds-sect--conformite .cf-check__titre{display:flex;align-items:center;gap:12px;margin:0;padding:18px 20px 8px;font-size:clamp(1.3rem,1.1rem + .8vw,1.7rem);font-weight:800;letter-spacing:-.02em;color:#fff;}
.ds-sect--conformite .cf-check__plume{width:36px;height:36px;flex:none;border-radius:10px;display:grid;place-items:center;background:linear-gradient(140deg,var(--vt-blue),var(--vt-teal));color:#fff;box-shadow:0 10px 24px -12px rgba(14,165,160,.9);}
.ds-sect--conformite .cf-check__plume svg{width:20px;height:20px;}
.ds-sect--conformite .cf-lignes{list-style:none;margin:0;padding:8px 12px 12px;display:flex;flex-direction:column;gap:6px;}
.ds-sect--conformite .cf-ligne{
  position:relative;display:flex;align-items:center;gap:12px;
  padding:10px 12px;border-radius:12px;
  background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);
  font-size:13.5px;line-height:1.45;color:var(--vt-ink-2);
}
.ds-sect--conformite .cf-ligne__txt{flex:1;min-width:0;}
.ds-sect--conformite .cf-coche{width:22px;height:22px;flex:none;color:var(--vt-teal-lt);}
.ds-sect--conformite .cf-coche svg{width:100%;height:100%;display:block;}
.ds-sect--conformite .cf-coche__trait{stroke-dasharray:12;stroke-dashoffset:12;}
.ds-sect--conformite .cf-ligne--ok{opacity:.5;}
.ds-sect--conformite .cf-lignes .cf-ligne:nth-child(n+3){--pause:.4s;}
.ds-sect--conformite.est-visible .cf-ligne--ok{animation:dsv-c-ligne .4s ease forwards;animation-delay:calc(.5s + var(--n,0) * .12s + var(--pause,0s));}
.ds-sect--conformite.est-visible .cf-ligne--ok .cf-coche__trait{animation:dsv-c-trait .35s ease forwards;animation-delay:calc(.55s + var(--n,0) * .12s + var(--pause,0s));}
@keyframes dsv-c-ligne{to{opacity:1;}}
/* ligne RBQ : pause de 400 ms en état « bloqué » avant la coche */
.ds-sect--conformite .cf-ligne__badge{
  position:absolute;right:10px;top:50%;transform:translateY(-50%);
  padding:4px 9px;border-radius:999px;white-space:nowrap;
  color:var(--vt-amber-lt);background:rgba(245,181,68,.15);border:1px solid rgba(245,181,68,.45);
  opacity:0;pointer-events:none;
}
.ds-sect--conformite.est-visible .cf-ligne__badge{animation:dsv-c-badge .5s ease .74s forwards;}
@keyframes dsv-c-badge{0%{opacity:0;}15%,85%{opacity:1;}100%{opacity:0;}}
/* ligne manquante (ambre : l'humain doit agir) */
.ds-sect--conformite .cf-ligne--manque{opacity:.5;border-color:rgba(245,181,68,.45);background:rgba(245,181,68,.08);color:#FFF3DC;}
.ds-sect--conformite .cf-ligne--manque b{color:var(--vt-amber-lt);font-weight:700;}
.ds-sect--conformite .cf-coche--ambre{color:var(--vt-amber);}
.ds-sect--conformite.est-visible .cf-ligne--manque{animation:dsv-c-attention .5s cubic-bezier(.22,.7,.24,1) 1.7s forwards;}
@keyframes dsv-c-attention{from{opacity:.5;transform:translateX(-4px);}to{opacity:1;transform:none;}}
.ds-sect--conformite .cf-ligne__action{flex:none;padding:3px 8px;border-radius:6px;white-space:nowrap;color:var(--vt-amber-lt);border:1px solid rgba(245,181,68,.4);}
/* relecture recommandée, non bloquante */
.ds-sect--conformite .cf-ligne--reco{opacity:.5;}
.ds-sect--conformite.est-visible .cf-ligne--reco{animation:dsv-c-ligne .4s ease 1.95s forwards;}
.ds-sect--conformite .cf-coche--demi{color:var(--vt-amber);}
.ds-sect--conformite .cf-ligne--reco .cf-ligne__action{color:var(--vt-teal-lt);border-color:rgba(111,227,214,.35);}
/* bouton de signature (inactif) */
.ds-sect--conformite .cf-signer{padding:6px 20px 20px;display:flex;flex-direction:column;gap:10px;align-items:flex-start;}
.ds-sect--conformite .cf-signer__btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:13px 20px;border-radius:14px;font-size:14.5px;font-weight:700;
  color:rgba(242,247,255,.5);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);
  cursor:not-allowed;
}
.ds-sect--conformite .cf-signer__btn svg{width:15px;height:15px;color:var(--vt-amber);}
.ds-sect--conformite .cf-signer__msg{margin:0;display:flex;align-items:flex-start;gap:8px;font-size:12.5px;line-height:1.5;color:var(--vt-amber-lt);}
.ds-sect--conformite .cf-signer__pt{width:7px;height:7px;border-radius:50%;flex:none;margin-top:6px;background:var(--vt-amber);box-shadow:0 0 0 3px rgba(245,181,68,.2);animation:dsv-c-pouls 2.6s ease-in-out infinite;}
.ds-sect--conformite .cf-note{margin-top:12px;}

.ds-sect--conformite .cf-pied{margin-top:34px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 24px;}
.ds-sect--conformite .cf-cloture{margin:0;max-width:42ch;font-size:clamp(1.05rem,.95rem + .5vw,1.3rem);font-weight:700;color:#fff;letter-spacing:-.015em;}

@media (max-width:900px){
  .ds-sect--conformite .cf-grille{grid-template-columns:1fr;}
}
@media (max-width:560px){
  .ds-sect--conformite .cf-colonnes{grid-template-columns:1fr;}
  .ds-sect--conformite .cf-ligne{flex-wrap:wrap;}
  .ds-sect--conformite .cf-ligne__badge{display:none;}
  .ds-sect--conformite .cf-ligne__action{order:3;flex-basis:100%;width:max-content;margin-left:34px;}
  .ds-sect--conformite .cf-signer__btn{width:100%;}
}

/* =====================================================================
   MOUVEMENT RÉDUIT — états finaux du lot C (la règle globale coupe les
   animations ; ici on fixe les valeurs d'arrivée)
   ===================================================================== */
@media (prefers-reduced-motion:reduce){
  .ds-sect--equipes .eq-panel{animation:none;}
  .ds-sect--actions .ac-goutte{opacity:0;}
  .ds-sect--actions .ac-coche{opacity:1;transform:none;}
  .ds-sect--actions .ac-coche__trait{stroke-dashoffset:0;}
  .ds-sect--actions .ac-lbl-ouvert{opacity:0;}
  .ds-sect--actions .ac-lbl-ferme{opacity:1;}
  .ds-sect--actions .ac-frise::after{height:calc(100% - 36px);}
  .ds-sect--bord .tb-barre{transform:none;}
  .ds-sect--bord .tb-jauge i{transform:none;}
  .ds-sect--bord .tb-anneau__arc{stroke-dashoffset:96;}
  .ds-sect--conformite .cf-ligne--ok,
  .ds-sect--conformite .cf-ligne--manque,
  .ds-sect--conformite .cf-ligne--reco{opacity:1;transform:none;}
  .ds-sect--conformite .cf-coche__trait{stroke-dashoffset:0;}
  .ds-sect--conformite .cf-ligne__badge{opacity:0;}
}


/* ============ HOMEPAGE V2 — lot D ============ */
/* ==========================================================================
   DomiSpect — Accueil V2 · LOT D (sections 15 à 24 de l'ordre final)
   Tout est scopé sous la section concernée ; aucune variable ni composant
   commun (.ds-*) n'est redéclaré ; @keyframes préfixés dsv-lotd-.
   Sections : normes · quebec (ajouts) · manifeste (ajouts) · migration ·
   roi · tarifs (ajouts) · final (ajouts) · mouvement réduit.
   ========================================================================== */


/* =====================================================================
   15 — RÉFÉRENTIELS  (.ds-sect--normes) — version nuit, remplace le
   <style> inline de la V1 (variables --surface/--accent inexistantes)
   ===================================================================== */
.ds-sect--normes{
  scroll-margin-top:80px;
  background:
    radial-gradient(80% 55% at 8% 0%, rgba(37,99,235,.26), transparent 62%),
    radial-gradient(70% 55% at 96% 100%, rgba(14,165,160,.22), transparent 66%),
    linear-gradient(180deg,#07203A 0%,#061A2E 52%,#04101F 100%);
}
.ds-sect--normes .nrm-atmo{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;}
.ds-sect--normes .nrm-halo{position:absolute;border-radius:50%;filter:blur(80px);}
.ds-sect--normes .nrm-halo--bleu{width:46vw;height:46vw;max-width:560px;max-height:560px;left:-12%;top:-10%;background:radial-gradient(circle,rgba(37,99,235,.36),transparent 70%);animation:dsv-lotd-souffle 14s ease-in-out infinite;}
.ds-sect--normes .nrm-halo--teal{width:40vw;height:40vw;max-width:500px;max-height:500px;right:-10%;bottom:-14%;background:radial-gradient(circle,rgba(14,165,160,.30),transparent 70%);animation:dsv-lotd-souffle 17s ease-in-out infinite 2s;}
.ds-sect--normes .nrm-trame{
  position:absolute;inset:0;
  background:
    repeating-linear-gradient(0deg,rgba(255,255,255,.028) 0 1px,transparent 1px 28px),
    repeating-linear-gradient(90deg,rgba(255,255,255,.028) 0 1px,transparent 1px 28px);
  -webkit-mask-image:radial-gradient(70% 60% at 50% 30%,#000 10%,transparent 76%);
  mask-image:radial-gradient(70% 60% at 50% 30%,#000 10%,transparent 76%);
}
.ds-sect--normes .nrm-tete{max-width:760px;margin-bottom:clamp(30px,4vw,48px);}
.ds-sect--normes .nrm-titre{max-width:20ch;}
.ds-sect--normes .nrm-intro{max-width:66ch;margin-bottom:0;}
.ds-sect--normes .nrm-grille{display:grid;grid-template-columns:1fr;gap:clamp(14px,1.8vw,22px);}
@media (min-width:900px){ .ds-sect--normes .nrm-grille{grid-template-columns:repeat(2,minmax(0,1fr));} }
.ds-sect--normes .nrm-carte{
  display:flex;flex-direction:column;min-width:0;
  padding:clamp(20px,2.4vw,28px) clamp(18px,2.2vw,26px);
  border-radius:20px;
}
.ds-sect--normes .nrm-carte--res{
  border-color:rgba(111,227,214,.26);
  background:
    radial-gradient(110% 80% at 50% -10%,rgba(14,165,160,.14),transparent 62%),
    linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.022));
}
.ds-sect--normes .nrm-carte__tete{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:16px;}
.ds-sect--normes .nrm-picto{width:56px;height:56px;flex:0 0 auto;opacity:.95;filter:drop-shadow(0 0 18px rgba(111,227,214,.22));}
.ds-sect--normes .nrm-tag{
  display:inline-flex;align-items:center;gap:7px;width:fit-content;
  font-family:'IBM Plex Mono',ui-monospace,monospace;font-weight:600;
  font-size:11px;letter-spacing:.12em;text-transform:uppercase;line-height:1;
  padding:6px 10px;border-radius:999px;white-space:nowrap;
}
.ds-sect--normes .nrm-tag--live{color:var(--vt-teal-lt);background:rgba(14,165,160,.12);border:1px solid rgba(111,227,214,.32);}
.ds-sect--normes .nrm-tag--live i{width:6px;height:6px;border-radius:50%;background:var(--vt-teal-lt);box-shadow:0 0 0 3px rgba(111,227,214,.18);}
.ds-sect--normes .nrm-tag--soon{color:var(--vt-amber-lt);background:rgba(245,181,68,.10);border:1px solid rgba(245,181,68,.36);}
.ds-sect--normes .nrm-nom{margin:0 0 6px;font-size:clamp(1.25rem,1.6vw,1.5rem);font-weight:800;letter-spacing:-.015em;color:var(--vt-ink);}
.ds-sect--normes .nrm-norme{margin:0 0 12px;color:var(--vt-teal-lt);font-weight:600;letter-spacing:.08em;line-height:1.6;}
.ds-sect--normes .nrm-desc{margin:0 0 16px;font-size:.98rem;line-height:1.6;color:var(--vt-ink-2);}
.ds-sect--normes .nrm-liste{list-style:none;margin:0 0 20px;padding:0;display:flex;flex-direction:column;gap:10px;}
.ds-sect--normes .nrm-liste li{position:relative;padding-left:26px;font-size:.95rem;line-height:1.55;color:var(--vt-ink-2);}
.ds-sect--normes .nrm-liste li::before{
  content:"";position:absolute;left:1px;top:.58em;width:11px;height:6px;
  border-left:2px solid var(--vt-teal-lt);border-bottom:2px solid var(--vt-teal-lt);transform:rotate(-45deg);
  filter:drop-shadow(0 0 6px rgba(111,227,214,.55));
}
.ds-sect--normes .nrm-liste__soon{color:var(--vt-ink-3);}
.ds-sect--normes .nrm-liste__soon::before{border-color:rgba(245,181,68,.7);filter:none;}
.ds-sect--normes .nrm-liste__soon .nrm-tag{margin-left:4px;vertical-align:middle;padding:4px 8px;}
.ds-sect--normes .nrm-pied{margin:auto 0 0;padding-top:8px;}
.ds-sect--normes .nrm-avis{
  margin:clamp(26px,3.2vw,36px) 0 0;padding:16px 20px;max-width:80ch;
  border-left:3px solid rgba(143,178,255,.45);border-radius:0 12px 12px 0;
  background:rgba(255,255,255,.035);color:var(--vt-ink-3);font-size:.92rem;line-height:1.6;
}


/* =====================================================================
   17 — QUÉBEC D'ABORD, CANADA ENSUITE  (.ds-sect--quebec) — AJOUTS
   ===================================================================== */
.ds-sect--quebec .dsq-grid--six{grid-template-columns:repeat(3,minmax(0,1fr));}
.ds-sect--quebec .dsq-grid--six>li:nth-child(5){animation-delay:.58s}
.ds-sect--quebec .dsq-grid--six>li:nth-child(6){animation-delay:.66s}
.ds-sect--quebec .dsq-grid--six .dsq-chip{min-width:0;}
.ds-sect--quebec .dsq-desc{margin:0;font-size:.92rem;line-height:1.55;color:var(--vt-ink-2);}
.ds-sect--quebec .dsq-grid--six .dsq-note{font-size:11px;line-height:1.6;}
.ds-sect--quebec .dsq-responsabilite{
  margin:clamp(22px,2.8vw,30px) auto 0;max-width:78ch;text-align:center;
  font-size:.95rem;line-height:1.65;color:var(--vt-ink-3);
}
.ds-sect--quebec .dsq-bas{
  display:grid;grid-template-columns:1fr;gap:clamp(14px,1.8vw,22px);
  margin-top:clamp(26px,3.4vw,40px);
}
@media (min-width:940px){ .ds-sect--quebec .dsq-bas{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:stretch;} }

/* encadré « Ailleurs au Canada » : neutre, bordure pointillée, étiquette PLANIFIÉ */
.ds-sect--quebec .dsq-canada{
  position:relative;min-width:0;
  padding:clamp(20px,2.4vw,28px) clamp(18px,2.2vw,26px);
  border-radius:18px;border:1px dashed rgba(198,214,236,.34);
  background:rgba(255,255,255,.025);
}
.ds-sect--quebec .dsq-canada__tag{display:inline-flex;align-items:center;gap:8px;margin:0 0 12px;color:var(--vt-ink-3);font-size:11px;}
.ds-sect--quebec .dsq-canada__point{width:7px;height:7px;border-radius:50%;border:1.5px solid var(--vt-ink-3);background:transparent;}
.ds-sect--quebec .dsq-canada__titre{margin:0 0 10px;font-size:clamp(1.15rem,1.5vw,1.35rem);font-weight:800;letter-spacing:-.015em;color:var(--vt-ink);}
.ds-sect--quebec .dsq-canada__txt{margin:0;font-size:.95rem;line-height:1.65;color:var(--vt-ink-2);}
.ds-sect--quebec .dsq-futur{
  margin-top:16px;padding:12px 14px;border-radius:12px;
  border:1px dashed rgba(198,214,236,.22);background:rgba(255,255,255,.02);opacity:.82;
}
.ds-sect--quebec .dsq-futur__tag{margin:0 0 6px;color:var(--vt-ink-3);font-size:11px;}
.ds-sect--quebec .dsq-futur__txt{margin:0;font-size:.88rem;line-height:1.6;color:var(--vt-ink-3);}
.ds-sect--quebec .dsq-futur__txt strong{color:var(--vt-ink-2);font-weight:700;}

/* écran « Registre Loi 25 » (illustration) */
.ds-sect--quebec .dsq-ecran{
  min-width:0;display:flex;flex-direction:column;
  padding:14px 14px 12px;border-radius:18px;
  background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.022));
  border:1px solid rgba(255,255,255,.12);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10), 0 40px 90px -50px rgba(0,0,0,.9);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
}
.ds-sect--quebec .dsq-ecran__barre{
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 14px;
  padding:6px 8px 12px;border-bottom:1px solid rgba(255,255,255,.10);
}
.ds-sect--quebec .dsq-ecran__titre{display:inline-flex;align-items:center;gap:8px;color:var(--vt-ink-2);font-size:11px;}
.ds-sect--quebec .dsq-ecran__led{width:7px;height:7px;border-radius:50%;background:var(--vt-teal-lt);box-shadow:0 0 0 3px rgba(111,227,214,.18);}
.ds-sect--quebec .dsq-ecran__resp{color:var(--vt-ink-3);font-size:11px;}
.ds-sect--quebec .dsq-ecran__thead,
.ds-sect--quebec .dsq-ecran__ligne{
  display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;
  padding:11px 8px;
}
.ds-sect--quebec .dsq-ecran__thead{color:var(--vt-ink-3);font-size:11px;padding-bottom:6px;}
.ds-sect--quebec .dsq-ecran__thead span:last-child,
.ds-sect--quebec .dsq-ecran__ligne .dsq-ech{text-align:right;min-width:4.2em;}
.ds-sect--quebec .dsq-ecran__ligne{border-top:1px solid rgba(255,255,255,.06);font-size:.9rem;color:var(--vt-ink-2);}
.ds-sect--quebec .dsq-ecran__ligne .dsq-mono{font-size:11px;color:var(--vt-ink-3);}
.ds-sect--quebec .dsq-ecran__lib{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ds-sect--quebec .dsq-ech{
  display:inline-block;padding:4px 8px;border-radius:7px;font-weight:600;
  color:var(--vt-teal-lt) !important;background:rgba(14,165,160,.10);border:1px solid rgba(111,227,214,.24);
}
.ds-sect--quebec .dsq-ech--ambre{
  color:var(--vt-amber-lt) !important;background:rgba(245,181,68,.12);border-color:rgba(245,181,68,.45);
  box-shadow:0 0 0 4px rgba(245,181,68,.10);animation:dsv-lotd-pouls 2.6s ease-in-out infinite;
}
.ds-sect--quebec .dsq-ecran__ligne--alerte{background:linear-gradient(90deg,rgba(245,181,68,.06),transparent 70%);border-radius:10px;}
.ds-sect--quebec .dsq-ecran__legende{margin:auto 0 0;padding:12px 8px 2px;text-align:right;font-size:11px;color:var(--vt-ink-3);opacity:.85;}
.ds-sect--quebec .dsq-ctas{display:flex;flex-wrap:wrap;gap:12px 28px;justify-content:center;margin-top:clamp(24px,3vw,34px);}

@media (max-width:900px){
  .ds-sect--quebec .dsq-grid--six{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:560px){
  .ds-sect--quebec .dsq-grid--six{grid-template-columns:1fr;}
  .ds-sect--quebec .dsq-grid--six .dsq-chip{
    grid-template-areas:"ico eyebrow" "ico label" "desc desc" "note note";
  }
  .ds-sect--quebec .dsq-desc{grid-area:desc;margin-top:6px;}
  .ds-sect--quebec .dsq-ecran__thead{display:none;}
  .ds-sect--quebec .dsq-ecran__ligne{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"lib ech" "date ech";row-gap:2px;}
  .ds-sect--quebec .dsq-ecran__lib{grid-area:lib;white-space:normal;}
  .ds-sect--quebec .dsq-ecran__ligne>.dsq-mono:not(.dsq-ech){grid-area:date;}
  .ds-sect--quebec .dsq-ecran__ligne .dsq-ech{grid-area:ech;align-self:center;}
  .ds-sect--quebec .dsq-responsabilite{text-align:left;}
  .ds-sect--quebec .dsq-ctas{justify-content:flex-start;}
}


/* =====================================================================
   18 — DIFFÉRENCIATION  (.ds-sect--manifeste) — AJOUTS
   ===================================================================== */
.ds-sect--manifeste .dsx-ancre{position:absolute;top:0;left:0;width:0;height:0;scroll-margin-top:80px;}

/* le mot « entier » se dessine au lieu de disparaître */
.ds-sect--manifeste .dsx-ghost{animation:dsv-lotd-dessine 9s ease-in-out infinite;}
.ds-sect--manifeste .dsx-vanish::after{
  content:"";position:absolute;left:1%;right:1%;bottom:-.08em;height:.07em;border-radius:99px;
  background:linear-gradient(90deg,rgba(37,99,235,.0),rgba(37,99,235,.9) 20%,rgba(14,165,160,.95) 80%,rgba(111,227,214,0));
  transform:scaleX(0);transform-origin:left center;filter:blur(.3px);
}
.ds-sect--manifeste.est-visible .dsx-vanish::after{animation:dsv-lotd-souligne 1.1s cubic-bezier(.22,.7,.24,1) .9s forwards;}

/* deux schémas : frontières (ambre) / chaîne (sarcelle) */
.ds-sect--manifeste .dsx-schemas{
  display:grid;grid-template-columns:1fr;gap:clamp(12px,1.6vw,18px);
  margin:0 0 clamp(26px,3.4vw,38px);
}
@media (min-width:760px){ .ds-sect--manifeste .dsx-schemas{grid-template-columns:repeat(2,minmax(0,1fr));} }
.ds-sect--manifeste .dsx-schema{
  margin:0;min-width:0;padding:14px 14px 12px;border-radius:16px;
  background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.015));
  border:1px solid rgba(255,255,255,.10);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}
.ds-sect--manifeste .dsx-schema svg{display:block;width:100%;height:auto;max-width:100%;overflow:visible;}
.ds-sect--manifeste .dsx-schema__labels{
  display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin:2px 0 8px;
  font-size:11px;letter-spacing:.08em;text-align:center;color:var(--vt-ink-3);
}
.ds-sect--manifeste .dsx-schema__labels span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ds-sect--manifeste .dsx-schema figcaption{margin-top:6px;text-align:center;font-size:11px;color:var(--vt-ink-3);}
.ds-sect--manifeste .dsx-schema--frontieres{border-color:rgba(245,181,68,.20);}
.ds-sect--manifeste .dsx-schema--frontieres figcaption{color:var(--vt-amber-lt);}
.ds-sect--manifeste .dsx-frontiere{animation:dsv-lotd-pouls 3.2s ease-in-out infinite;transform-origin:center;}
.ds-sect--manifeste .dsx-schema--chaine{border-color:rgba(111,227,214,.22);}
.ds-sect--manifeste .dsx-schema--chaine figcaption{color:var(--vt-teal-lt);}
.ds-sect--manifeste .dsx-fil{stroke-dasharray:460;stroke-dashoffset:460;}
.ds-sect--manifeste.est-visible .dsx-fil{animation:dsv-lotd-trace 1.2s cubic-bezier(.2,.7,.25,1) .3s forwards;}
.ds-sect--manifeste .dsx-pastille{filter:drop-shadow(0 0 8px rgba(245,181,68,.8));}
.ds-sect--manifeste.est-visible .dsx-pastille{animation:dsv-lotd-pastille 2.6s cubic-bezier(.3,.6,.3,1) 1s forwards;}

.ds-sect--manifeste .dsx-soustitre{
  margin:0 0 14px;font-family:'IBM Plex Mono',ui-monospace,monospace;font-weight:600;
  font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--vt-ink-2);
}
.ds-sect--manifeste .dsx-cell--dim strong{color:var(--vt-ink-2);font-weight:700;}
.ds-sect--manifeste .dsx-row:hover .dsx-cell--dim strong{color:var(--vt-ink);}
.ds-sect--manifeste .dsx-cell--dim>span{min-width:0;}
.ds-sect--manifeste .dsx-exergue{
  margin:clamp(22px,2.8vw,30px) 0 0;max-width:70ch;
  padding:16px 0 0 20px;border-left:2px solid rgba(111,227,214,.55);
  font-size:clamp(1.02rem,1.3vw,1.18rem);line-height:1.6;font-weight:600;color:var(--vt-ink);
}
.ds-sect--manifeste .dsx-exergue strong{
  background:linear-gradient(96deg,#FFE7C0 0%,#F5B544 52%,#FFD79A 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;
}
@supports not ((-webkit-background-clip:text) or (background-clip:text)){
  .ds-sect--manifeste .dsx-exergue strong{color:var(--vt-amber);-webkit-text-fill-color:var(--vt-amber);}
}
@media (max-width:760px){
  .ds-sect--manifeste .dsx-schema svg text{font-size:11px;}
}


/* =====================================================================
   19 — MIGRATION  (.ds-sect--migration)
   ===================================================================== */
.ds-sect--migration{
  scroll-margin-top:80px;
  background:
    radial-gradient(90% 60% at 50% -8%, rgba(37,99,235,.28), transparent 62%),
    radial-gradient(60% 50% at 100% 90%, rgba(14,165,160,.22), transparent 66%),
    linear-gradient(180deg,#0A1C24 0%,#07203A 46%,#04101F 100%);
}
.ds-sect--migration .mig-atmo{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;}
.ds-sect--migration .mig-halo{position:absolute;border-radius:50%;filter:blur(80px);}
.ds-sect--migration .mig-halo--bleu{width:44vw;height:44vw;max-width:540px;max-height:540px;left:-10%;top:-8%;background:radial-gradient(circle,rgba(37,99,235,.34),transparent 70%);animation:dsv-lotd-souffle 15s ease-in-out infinite;}
.ds-sect--migration .mig-halo--teal{width:38vw;height:38vw;max-width:480px;max-height:480px;right:-8%;bottom:-10%;background:radial-gradient(circle,rgba(14,165,160,.30),transparent 70%);animation:dsv-lotd-souffle 18s ease-in-out infinite 1.6s;}
.ds-sect--migration .mig-trame{
  position:absolute;inset:0;
  background:repeating-linear-gradient(90deg,rgba(255,255,255,.016) 0 1px,transparent 1px 72px);
}
.ds-sect--migration .mig-haut{
  display:grid;grid-template-columns:1fr;gap:clamp(20px,3vw,40px);align-items:start;
  margin-bottom:clamp(30px,4vw,48px);
}
@media (min-width:940px){ .ds-sect--migration .mig-haut{grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);} }
.ds-sect--migration .mig-tete .ds-h2{max-width:18ch;}
.ds-sect--migration .mig-tete .ds-lead{margin-bottom:0;}

/* ce qui suit */
.ds-sect--migration .mig-suit{padding:clamp(18px,2vw,22px);min-width:0;}
.ds-sect--migration .mig-suit__titre{margin:0 0 12px;color:var(--vt-teal-lt);}
.ds-sect--migration .mig-suit__liste{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-wrap:wrap;gap:8px;}
.ds-sect--migration .mig-suit__liste li{
  display:inline-flex;align-items:center;gap:7px;
  padding:6px 11px;border-radius:9px;font-size:12.8px;font-weight:600;color:#DCE9F8;
  background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.11);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.09);white-space:nowrap;
}
.ds-sect--migration .mig-suit__liste li::before{content:"";width:6px;height:6px;border-radius:50%;background:linear-gradient(140deg,var(--vt-blue),var(--vt-teal));}

/* frise des quatre étapes sur fil sarcelle */
.ds-sect--migration .mig-frise{
  position:relative;list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:1fr;gap:clamp(14px,1.8vw,20px);
  counter-reset:mig;
}
@media (min-width:700px){ .ds-sect--migration .mig-frise{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (min-width:1080px){
  .ds-sect--migration .mig-frise{grid-template-columns:repeat(4,minmax(0,1fr));padding-top:22px;}
  .ds-sect--migration .mig-frise::before{
    content:"";position:absolute;left:4%;right:4%;top:0;height:2px;border-radius:2px;
    background:linear-gradient(90deg,var(--vt-blue),var(--vt-teal) 60%,var(--vt-teal-lt));
    box-shadow:0 0 18px rgba(14,165,160,.55);
    transform:scaleX(0);transform-origin:left center;
  }
  .ds-sect--migration.est-visible .mig-frise::before{animation:dsv-lotd-fil 1.2s cubic-bezier(.2,.7,.25,1) .5s forwards;}
  .ds-sect--migration .mig-etape::before{
    content:"";position:absolute;left:50%;top:-22px;width:10px;height:10px;border-radius:50%;
    transform:translateX(-50%) translateY(-4px);
    background:#0A2A42;border:2px solid var(--vt-teal-lt);box-shadow:0 0 0 4px rgba(111,227,214,.16);
  }
  .ds-sect--migration .mig-etape--bascule::before{background:var(--vt-amber);border-color:var(--vt-amber-lt);box-shadow:0 0 0 4px rgba(245,181,68,.22);}
}
.ds-sect--migration .mig-etape{
  position:relative;display:flex;flex-direction:column;min-width:0;
  padding:clamp(18px,2vw,22px);
}
.ds-sect--migration .mig-etape__num{display:inline-flex;align-items:center;gap:10px;margin:0 0 12px;color:var(--vt-ink-3);}
.ds-sect--migration .mig-etape__num i{
  font-style:normal;font-size:12px;font-weight:600;color:var(--vt-teal-lt);
  padding:5px 8px;border-radius:7px;background:rgba(111,227,214,.08);border:1px solid rgba(111,227,214,.22);
}
.ds-sect--migration .mig-etape__titre{margin:0 0 8px;font-size:clamp(1.1rem,1.4vw,1.25rem);font-weight:800;letter-spacing:-.012em;color:var(--vt-ink);}
.ds-sect--migration .mig-etape__txt{margin:0;font-size:.95rem;line-height:1.6;color:var(--vt-ink-2);}
/* mini-écran « Équipe et rôles » (illustration, HTML pour garder 11 px) */
.ds-sect--migration .mig-ecran{
  margin-top:16px;padding:0 0 6px;border-radius:12px;overflow:hidden;min-width:0;
  background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.14);
}
.ds-sect--migration .mig-ecran__barre{
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 10px;padding:8px 12px;
  background:rgba(255,255,255,.04);border-bottom:1px solid rgba(255,255,255,.08);
  font-size:11px;color:var(--vt-ink-3);
}
.ds-sect--migration .mig-ecran__n{color:var(--vt-teal-lt);}
.ds-sect--migration .mig-ecran__ligne{
  display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"av nom" "roles roles";
  align-items:center;column-gap:8px;row-gap:6px;padding:8px 12px;min-width:0;
}
.ds-sect--migration .mig-ecran__ligne+.mig-ecran__ligne{border-top:1px solid rgba(255,255,255,.05);}
.ds-sect--migration .mig-ecran__avatar{
  flex:0 0 auto;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;
  font-size:11px;letter-spacing:.02em;color:var(--vt-ink);
  border:1.5px solid transparent;
  background:linear-gradient(#0A2A42,#0A2A42) padding-box,linear-gradient(140deg,var(--vt-blue),var(--vt-teal)) border-box;
}
.ds-sect--migration .mig-ecran__avatar{grid-area:av;}
.ds-sect--migration .mig-ecran__nom{grid-area:nom;height:6px;width:var(--w,60%);border-radius:3px;background:rgba(255,255,255,.2);}
.ds-sect--migration .mig-ecran__roles{grid-area:roles;display:flex;flex-wrap:wrap;gap:4px;min-width:0;}
.ds-sect--migration .mig-role{
  font-size:11px;letter-spacing:.06em;line-height:1;padding:4px 7px;border-radius:999px;white-space:nowrap;
  color:var(--vt-ink-2);background:rgba(143,178,255,.10);border:1px solid rgba(143,178,255,.38);
}
.ds-sect--migration .mig-role--teal{color:var(--vt-teal-lt);background:rgba(111,227,214,.10);border-color:rgba(111,227,214,.42);}
.ds-sect--migration .mig-role--ambre{color:var(--vt-amber-lt);background:rgba(245,181,68,.14);border-color:rgba(245,181,68,.5);}
.ds-sect--migration .mig-etape__legende{margin:8px 0 0;font-size:11px;color:var(--vt-ink-3);opacity:.8;}
.ds-sect--migration .mig-etape--bascule{border-color:rgba(245,181,68,.32);}
.ds-sect--migration .mig-etape__tag{
  margin:auto 0 0;padding-top:14px;color:var(--vt-amber-lt);font-size:11px;
}

/* encadré honnête + CTA */
.ds-sect--migration .mig-pied{
  display:grid;grid-template-columns:1fr;gap:clamp(16px,2.4vw,28px);align-items:center;
  margin-top:clamp(26px,3.4vw,40px);
}
@media (min-width:900px){ .ds-sect--migration .mig-pied{grid-template-columns:minmax(0,1fr) auto;} }
.ds-sect--migration .mig-honnete{
  padding:clamp(16px,2vw,22px);border-radius:16px;
  border:1px dashed rgba(198,214,236,.32);background:rgba(255,255,255,.025);
}
.ds-sect--migration .mig-honnete__tag{display:inline-flex;align-items:center;gap:8px;margin:0 0 8px;color:var(--vt-amber-lt);font-size:11px;}
.ds-sect--migration .mig-honnete__point{width:7px;height:7px;border-radius:50%;background:var(--vt-amber);box-shadow:0 0 0 3px rgba(245,181,68,.18);}
.ds-sect--migration .mig-honnete__txt{margin:0;font-size:.95rem;line-height:1.65;color:var(--vt-ink-2);max-width:72ch;}
.ds-sect--migration .mig-cta{justify-self:start;}
@media (max-width:420px){ .ds-sect--migration .mig-cta{width:100%;} }


/* =====================================================================
   20 — ROI SIMPLIFIÉ  (.ds-sect--roi)
   ===================================================================== */
.ds-sect--roi{
  scroll-margin-top:80px;
  background:
    radial-gradient(100% 60% at 50% -10%, rgba(14,165,160,.24), transparent 62%),
    radial-gradient(60% 50% at 0% 100%, rgba(245,181,68,.10), transparent 66%),
    linear-gradient(180deg,#04101F 0%,#061A2E 50%,#07203A 100%);
}
.ds-sect--roi .roi-atmo{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;}
.ds-sect--roi .roi-plan{position:absolute;left:0;right:0;top:0;width:100%;height:clamp(160px,22vw,260px);opacity:.55;}
.ds-sect--roi .roi-halo{position:absolute;border-radius:50%;filter:blur(80px);}
.ds-sect--roi .roi-halo--teal{width:44vw;height:44vw;max-width:540px;max-height:540px;right:-10%;top:0;background:radial-gradient(circle,rgba(14,165,160,.30),transparent 70%);animation:dsv-lotd-souffle 15s ease-in-out infinite;}
.ds-sect--roi .roi-halo--ambre{width:30vw;height:30vw;max-width:380px;max-height:380px;left:-6%;bottom:-8%;background:radial-gradient(circle,rgba(245,181,68,.18),transparent 70%);animation:dsv-lotd-souffle 18s ease-in-out infinite 1.4s;}
.ds-sect--roi .roi-tete{max-width:760px;margin-bottom:clamp(28px,3.6vw,44px);}
.ds-sect--roi .roi-tete .ds-h2{max-width:20ch;}
.ds-sect--roi .roi-tete .ds-lead{margin-bottom:0;}

.ds-sect--roi .roi-calc{
  display:grid;grid-template-columns:1fr;min-width:0;overflow:hidden;
  border-radius:22px;
}
.ds-sect--roi .roi-calc:hover{transform:none;}
@media (min-width:900px){ .ds-sect--roi .roi-calc{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);} }
.ds-sect--roi .roi-bloc__titre{margin:0 0 18px;color:var(--vt-teal-lt);}

/* entrées */
.ds-sect--roi .roi-entrees{padding:clamp(20px,2.6vw,32px);min-width:0;}
.ds-sect--roi .roi-champ{margin:0 0 22px;}
.ds-sect--roi .roi-champ__tete{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px;}
.ds-sect--roi .roi-champ label{font-size:.98rem;font-weight:700;color:var(--vt-ink);letter-spacing:-.01em;}
.ds-sect--roi .roi-val{
  flex:0 0 auto;font-family:'IBM Plex Mono',ui-monospace,monospace;font-weight:600;
  font-size:14px;letter-spacing:.06em;color:var(--vt-amber-lt);
  padding:5px 10px;border-radius:8px;background:rgba(245,181,68,.10);border:1px solid rgba(245,181,68,.32);
  white-space:nowrap;
}
.ds-sect--roi .roi-curseur{
  -webkit-appearance:none;appearance:none;display:block;width:100%;height:22px;margin:0;
  background:transparent;cursor:pointer;accent-color:var(--vt-teal);
}
.ds-sect--roi .roi-curseur:focus{outline:none;}
.ds-sect--roi .roi-curseur:focus-visible{outline:2px solid rgba(111,227,214,.6);outline-offset:4px;border-radius:8px;}
.ds-sect--roi .roi-curseur::-webkit-slider-runnable-track{height:6px;border-radius:99px;background:linear-gradient(90deg,var(--vt-blue),var(--vt-teal));box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);}
.ds-sect--roi .roi-curseur::-moz-range-track{height:6px;border-radius:99px;background:linear-gradient(90deg,var(--vt-blue),var(--vt-teal));}
.ds-sect--roi .roi-curseur::-webkit-slider-thumb{
  -webkit-appearance:none;appearance:none;width:22px;height:22px;margin-top:-8px;border-radius:50%;
  background:var(--vt-amber);border:2px solid #FFF3DC;
  box-shadow:0 0 0 5px rgba(245,181,68,.18),0 8px 18px -8px rgba(0,0,0,.9);
}
.ds-sect--roi .roi-curseur::-moz-range-thumb{
  width:20px;height:20px;border-radius:50%;background:var(--vt-amber);border:2px solid #FFF3DC;
  box-shadow:0 0 0 5px rgba(245,181,68,.18),0 8px 18px -8px rgba(0,0,0,.9);
}
.ds-sect--roi .roi-champ .ds-note{margin-top:8px;}
.ds-sect--roi .roi-hyp{
  margin-top:8px;padding:14px 16px;border-radius:12px;
  border:1px dashed rgba(198,214,236,.28);background:rgba(255,255,255,.025);
}
.ds-sect--roi .roi-hyp__tag{margin:0 0 8px;color:var(--vt-ink-2);}
.ds-sect--roi .roi-hyp__liste{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:5px;font-size:11px;line-height:1.5;text-transform:none;letter-spacing:.06em;}
.ds-sect--roi .roi-hyp__liste li::before{content:"·";margin-right:8px;color:var(--vt-teal-lt);}

/* sorties */
.ds-sect--roi .roi-sorties{
  position:relative;min-width:0;padding:clamp(20px,2.6vw,32px);
  background:linear-gradient(180deg,rgba(14,165,160,.10),rgba(37,99,235,.06));
  border-top:1px solid rgba(255,255,255,.10);
}
@media (min-width:900px){ .ds-sect--roi .roi-sorties{border-top:0;border-left:1px solid rgba(255,255,255,.10);} }
.ds-sect--roi .roi-sortie{display:flex;flex-direction:column;gap:4px;padding:14px 0;border-top:1px solid rgba(255,255,255,.08);}
.ds-sect--roi .roi-sortie:first-of-type{border-top:0;padding-top:0;}
.ds-sect--roi .roi-sortie__val{
  font-family:'IBM Plex Mono',ui-monospace,monospace;font-weight:600;
  font-size:clamp(1.9rem,1rem + 2.4vw,2.6rem);line-height:1.05;letter-spacing:-.02em;color:var(--vt-ink);
  font-variant-numeric:tabular-nums;
}
.ds-sect--roi .roi-sortie--valeur .roi-sortie__val{
  background:linear-gradient(120deg,#FFFFFF 0%,#8FB2FF 55%,#6FE3D6 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;
}
@supports not ((-webkit-background-clip:text) or (background-clip:text)){
  .ds-sect--roi .roi-sortie--valeur .roi-sortie__val{color:var(--vt-teal-lt);-webkit-text-fill-color:var(--vt-teal-lt);}
}
.ds-sect--roi .roi-sortie__lib{font-size:.98rem;font-weight:700;color:var(--vt-ink-2);letter-spacing:-.01em;}
.ds-sect--roi .roi-sortie__sub{font-size:12.5px;line-height:1.5;color:var(--vt-ink-3);}
.ds-sect--roi .roi-sortie__sub.ds-mono{font-size:11px;text-transform:none;letter-spacing:.06em;}
.ds-sect--roi .roi-sortie__sub [data-roi-res]{color:var(--vt-ink-2);font-weight:600;}
.ds-sect--roi .roi-jauge{
  display:block;height:8px;margin-top:8px;border-radius:99px;overflow:hidden;
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.10);
}
.ds-sect--roi .roi-jauge i{
  display:block;height:100%;width:var(--p,50%);border-radius:99px;
  background:linear-gradient(90deg,var(--vt-blue),var(--vt-teal-lt));
  box-shadow:0 0 14px rgba(111,227,214,.5);transition:width .3s ease;
}
.ds-sect--roi .roi-avert{
  margin:18px 0 0;padding:12px 14px;border-radius:10px;
  font-size:12.5px;line-height:1.55;color:var(--vt-ink-2);
  background:rgba(245,181,68,.07);border:1px solid rgba(245,181,68,.28);
}
.ds-sect--roi .roi-pied{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;
  margin-top:clamp(18px,2.4vw,26px);
}
.ds-sect--roi .roi-pied .ds-note{max-width:70ch;}


/* =====================================================================
   21 — TARIFS  (.ds-sect--tarifs) — AJOUTS
   ===================================================================== */
@media (min-width:1080px){ .ds-sect--tarifs .tf-desc{min-height:6.4em;} }
@media (min-width:680px) and (max-width:1079px){ .ds-sect--tarifs .tf-desc{min-height:5.2em;} }
.ds-sect--tarifs .tf-inclus{
  list-style:none;margin:16px 0 0;padding:12px 0 0;
  border-top:1px solid rgba(255,255,255,.08);
  display:flex;flex-direction:column;gap:7px;
}
.ds-sect--tarifs .tf-inclus li{display:flex;align-items:baseline;justify-content:space-between;gap:10px;min-width:0;}
.ds-sect--tarifs .tf-inclus__k{
  font-family:'IBM Plex Mono',ui-monospace,monospace;font-weight:500;
  font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--vt-ink-3);line-height:1.5;
}
.ds-sect--tarifs .tf-inclus__v{
  flex:0 0 auto;font-size:13px;font-weight:700;color:var(--vt-ink);text-align:right;white-space:nowrap;
}
.ds-sect--tarifs .tf-inclus__v--oui{color:var(--vt-teal-lt);}
.ds-sect--tarifs .tf-inclus__v--non{color:var(--vt-ink-3);font-weight:500;}
.ds-sect--tarifs .tf-carte--vedette .tf-inclus{border-top-color:rgba(143,178,255,.22);}
.ds-sect--tarifs .tf-rappel__liens{display:flex;flex-wrap:wrap;gap:10px 22px;}
@media (max-width:640px){ .ds-sect--tarifs .tf-inclus__k{font-size:11px !important;} }


/* =====================================================================
   23 — CLÔTURE  (.ds-sect--final) — AJOUTS
   ===================================================================== */
.ds-sect--final .fn-titre{max-width:20ch;}
.ds-sect--final .fn-sous{
  margin:-6px 0 16px;
  font-family:'IBM Plex Mono',ui-monospace,monospace;font-weight:600;
  font-size:clamp(11px,1.05vw,12.5px);letter-spacing:.1em;text-transform:uppercase;line-height:1.8;
  color:var(--vt-teal-lt);
}
.ds-sect--final .fn-essai-note{margin:-10px 0 20px;font-size:12.5px;line-height:1.55;color:var(--vt-ink-3);}
.ds-sect--final .fn-audiences{
  list-style:none;margin:0 0 20px;padding:14px 0 0;
  border-top:1px solid rgba(255,255,255,.10);
  display:flex;flex-wrap:wrap;gap:8px 18px;
}
.ds-sect--final .fn-audience{
  display:inline-flex;align-items:center;gap:6px;
  font-size:13.5px;font-weight:600;color:var(--vt-ink-2);text-decoration:none;
  border-bottom:1px solid rgba(198,214,236,.22);padding-bottom:2px;
  transition:color .25s ease,border-color .25s ease;
}
.ds-sect--final .fn-audience span{transition:transform .25s ease;}
.ds-sect--final .fn-audience:hover{color:#fff;border-bottom-color:rgba(111,227,214,.7);}
.ds-sect--final .fn-audience:hover span{transform:translateX(3px);}
.ds-sect--final .fn-audience:focus-visible{outline:2px solid var(--vt-teal-lt);outline-offset:3px;border-radius:4px;}
.ds-sect--final .fn-frise__legende{
  grid-column:1/-1;margin:0 0 4px;
  font-family:'IBM Plex Mono',ui-monospace,monospace;font-weight:600;
  font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--vt-ink-3);
}
@media (max-width:420px){
  .ds-sect--final .fn-audiences{flex-direction:column;gap:10px;}
}


/* =====================================================================
   KEYFRAMES DU LOT D (préfixe dsv-lotd-)
   ===================================================================== */
@keyframes dsv-lotd-souffle{
  0%,100%{opacity:.65;transform:scale(1);}
  50%{opacity:1;transform:scale(1.06);}
}
@keyframes dsv-lotd-pouls{
  0%,100%{opacity:1;}
  50%{opacity:.55;}
}
@keyframes dsv-lotd-dessine{
  0%,100%{opacity:.06;filter:blur(12px);transform:translate(14px,-6px);}
  55%{opacity:.40;filter:blur(0);transform:translate(0,0);}
}
@keyframes dsv-lotd-souligne{
  to{transform:scaleX(1);}
}
@keyframes dsv-lotd-trace{
  to{stroke-dashoffset:0;}
}
@keyframes dsv-lotd-pastille{
  from{transform:translateX(0);}
  to{transform:translateX(384px);}
}
@keyframes dsv-lotd-fil{
  to{transform:scaleX(1);}
}


/* =====================================================================
   MOUVEMENT RÉDUIT — tout à l'état final
   ===================================================================== */
@media (prefers-reduced-motion:reduce){
  .ds-sect--normes *,
  .ds-sect--migration *,
  .ds-sect--roi *,
  .ds-sect--quebec .dsq-ech--ambre,
  .ds-sect--manifeste .dsx-frontiere,
  .ds-sect--manifeste .dsx-ghost,
  .ds-sect--manifeste .dsx-fil,
  .ds-sect--manifeste .dsx-pastille,
  .ds-sect--manifeste .dsx-vanish::after{
    animation:none !important;
    transition:none !important;
  }
  .ds-sect--quebec .dsq-grid--six>li{opacity:1 !important;transform:none !important;animation:none !important;}
  .ds-sect--manifeste .dsx-ghost{opacity:.4;filter:none;transform:none;}
  .ds-sect--manifeste .dsx-vanish::after{transform:scaleX(1);}
  .ds-sect--manifeste .dsx-fil{stroke-dashoffset:0 !important;}
  .ds-sect--manifeste .dsx-pastille{transform:translateX(384px);}
  .ds-sect--migration .mig-frise::before{transform:scaleX(1) !important;}
  .ds-sect--roi .roi-jauge i{transition:none;}
}


/* =====================================================================
   ACCUEIL V3 (21 sept. 2026) — workflow en 6 phases (wf-phase), section
   « Sur le terrain », garde-fous fusionnés, livraison + facture, CHOISIR,
   clôture sans horaire « après ». Aucune règle existante retirée.
   ===================================================================== */

/* ---------- 02 — workflow : rail de 6 phases dépliables ---------- */
.ds-sect--workflow .wf-rail--phases{
  grid-template-columns:repeat(6,minmax(0,1fr));column-gap:clamp(8px,1vw,14px);row-gap:22px;padding:0;
}
.ds-sect--workflow .wf-rail--phases::before{
  content:"";position:absolute;left:0;right:0;top:var(--y);height:2px;z-index:0;
  background:linear-gradient(90deg,rgba(37,99,235,.75),rgba(14,165,160,.75));
  box-shadow:0 0 12px rgba(111,227,214,.35);border-radius:2px;
  transform-origin:left center;
}
.ds-sect--workflow[data-anime] .wf-rail--phases::before{transform:scaleX(0);}
.ds-sect--workflow[data-anime].est-visible .wf-rail--phases::before{animation:dsv-wf-trace .9s cubic-bezier(.2,.7,.25,1) forwards;}
.ds-sect--workflow .wf-phase{display:contents;}
.ds-sect--workflow .wf-phase__btn{
  grid-row:1;position:relative;z-index:1;
  display:flex;flex-direction:column;align-items:center;gap:6px;
  width:100%;margin:var(--y) 0 0;padding:30px 10px 12px;
  border-radius:16px;cursor:pointer;text-align:center;
  font:inherit;color:var(--vt-ink);
  background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.028));
  border:1px solid rgba(255,255,255,.11);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 40px 90px -50px rgba(0,0,0,.9);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  transition:transform .22s cubic-bezier(.22,.7,.24,1),border-color .22s ease,box-shadow .22s ease,background .22s ease;
}
.ds-sect--workflow[data-anime] .wf-phase__btn{opacity:0;transform:translateY(14px);}
.ds-sect--workflow[data-anime].est-visible .wf-phase__btn{animation:dsv-wf-plante .7s cubic-bezier(.2,.7,.25,1) forwards;animation-delay:calc(.15s + var(--p,0) * .1s);}
.ds-sect--workflow .wf-phase__btn:hover,
.ds-sect--workflow .wf-phase__btn:focus-visible{border-color:rgba(111,227,214,.4);}
.ds-sect--workflow .wf-phase__btn:focus-visible{outline:3px solid rgba(111,227,214,.6);outline-offset:3px;}
.ds-sect--workflow .wf-phase.is-open .wf-phase__btn{
  border-color:rgba(111,227,214,.55);
  background:linear-gradient(180deg,rgba(111,227,214,.13),rgba(255,255,255,.035));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 0 0 1px rgba(111,227,214,.16),0 46px 100px -48px rgba(0,0,0,.95);
}
.ds-sect--workflow .wf-phase__num{
  position:absolute;top:0;left:50%;transform:translateX(-50%);z-index:2;
  width:36px;height:36px;border-radius:50%;
  display:grid;place-items:center;
  font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:12px;font-weight:600;letter-spacing:.04em;
  color:var(--vt-ink);
  background:linear-gradient(180deg,#0E2A44,#081A2E);
  border:1px solid rgba(143,178,255,.45);
  box-shadow:0 0 0 4px rgba(4,16,31,.95),0 8px 18px -8px rgba(0,0,0,.9);
  transition:border-color .25s ease,box-shadow .25s ease,background .25s ease,color .25s ease;
}
.ds-sect--workflow .wf-phase.is-lu .wf-phase__num{border-color:var(--vt-teal-lt);box-shadow:0 0 0 4px rgba(4,16,31,.95),0 0 18px rgba(111,227,214,.55);}
.ds-sect--workflow .wf-phase.is-ici .wf-phase__num{background:linear-gradient(140deg,var(--vt-teal-lt),var(--vt-blue));color:#04101F;border-color:transparent;}
.ds-sect--workflow .wf-phase.is-ici .wf-phase__num .wf-token{opacity:1;transform:scale(1);}
.ds-sect--workflow .wf-phase__lock{
  position:absolute;top:2px;right:10px;z-index:2;
  width:20px;height:20px;border-radius:50%;display:grid;place-items:center;
  color:var(--vt-amber);background:rgba(38,26,10,.92);border:1px solid rgba(245,181,68,.5);
}
.ds-sect--workflow .wf-phase__lock svg{width:12px;height:12px;}
.ds-sect--workflow .wf-phase__lbl{font-size:14px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;line-height:1.2;}
.ds-sect--workflow .wf-phase__sub{font-size:10.5px;letter-spacing:.05em;line-height:1.45;color:var(--vt-ink-2);}
.ds-sect--workflow .wf-phase__meta{display:flex;flex-direction:column;align-items:center;gap:3px;margin-top:2px;font-size:9.5px;letter-spacing:.06em;line-height:1.35;}
.ds-sect--workflow .wf-phase__garde{color:var(--vt-amber-lt);}
.ds-sect--workflow .wf-phase__hum{color:var(--vt-amber);}
.ds-sect--workflow .wf-phase__hum::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:5px;vertical-align:1px;background:var(--vt-amber);box-shadow:0 0 8px var(--vt-amber);}
.ds-sect--workflow .wf-phase__chev{
  width:9px;height:9px;margin-top:4px;
  border-right:2px solid rgba(198,214,236,.6);border-bottom:2px solid rgba(198,214,236,.6);
  transform:rotate(45deg);transition:transform .22s ease;
}
.ds-sect--workflow .wf-phase.is-open .wf-phase__chev{transform:rotate(-135deg) translate(-2px,-2px);}
.ds-sect--workflow .wf-phase__steps{
  --y:17px;
  grid-row:2;grid-column:1 / -1;position:relative;
  list-style:none;margin:0;padding:22px 18px 18px;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;align-items:start;
  border-radius:18px;background:rgba(7,25,45,.55);border:1px solid rgba(255,255,255,.09);
}
.ds-sect--workflow .wf-phase__steps[hidden]{display:none;}
.ds-sect--workflow .wf-rail--phases .wf-step::before,
.ds-sect--workflow .wf-rail--phases .wf-step::after{display:none;}
.ds-sect--workflow .wf-rail--phases .wf-step__btn{padding-top:28px;}
.ds-sect--workflow .wf-rail--phases .wf-step:hover .wf-step__btn{transform:none;}
.ds-sect--workflow .wf-rail--phases .wf-step.is-open .wf-step__btn{transform:none;}
/* infobulles : toujours statiques sous la carte, dépliées au clic seulement (aucun survol) */
.ds-sect--workflow .wf-rail--phases .wf-tip{
  position:static;width:auto;margin:8px 0 0;
  opacity:1;visibility:visible;transform:none;transition:none;pointer-events:auto;
  display:none;
}
.ds-sect--workflow .wf-rail--phases .wf-step.is-open .wf-tip{display:block;}
.ds-sect--workflow .wf-rail--phases .wf-step:hover .wf-tip,
.ds-sect--workflow .wf-rail--phases .wf-step:focus-within .wf-tip{transform:none;}
.ds-sect--workflow .wf-rail--phases .wf-step:hover{z-index:auto;}
/* pied : H3 + phrase, CTA centrés */
.ds-sect--workflow .wf-cloture__p{margin:12px auto 0;max-width:66ch;text-align:center;font-size:15px;line-height:1.6;color:var(--vt-ink-2);}
.ds-sect--workflow .wf-pied--v3{grid-template-columns:1fr;justify-items:center;text-align:center;gap:12px;}
.ds-sect--workflow .wf-pied--v3 .wf-illu{text-align:center;}
.ds-sect--workflow .wf-pied--v3 + .wf-planifie{margin-top:clamp(22px,3vw,30px);}
@media (max-width:1180px){
  .ds-sect--workflow .wf-phase__sub{font-size:10px;}
  .ds-sect--workflow .wf-phase__meta{font-size:9px;}
}
@media (min-width:901px) and (max-width:1023px){
  .ds-sect--workflow .wf-rail--phases{grid-template-columns:repeat(3,minmax(0,1fr));}
  .ds-sect--workflow .wf-phase[data-phase="4"] .wf-phase__btn,
  .ds-sect--workflow .wf-phase[data-phase="5"] .wf-phase__btn,
  .ds-sect--workflow .wf-phase[data-phase="6"] .wf-phase__btn{grid-row:2;}
  .ds-sect--workflow .wf-phase__steps{grid-row:3;}
}
@media (max-width:900px){
  .ds-sect--workflow .wf-rail--phases{display:block;padding:0;}
  .ds-sect--workflow .wf-rail--phases::before{display:none;}
  .ds-sect--workflow .wf-phase{display:block;}
  .ds-sect--workflow .wf-phase + .wf-phase{margin-top:10px;}
  .ds-sect--workflow .wf-phase__btn{
    flex-direction:row;flex-wrap:wrap;align-items:center;text-align:left;gap:3px 10px;
    margin:0;padding:12px 40px 12px 56px;min-height:60px;
  }
  .ds-sect--workflow .wf-phase__num{left:18px;top:50%;transform:translate(-50%,-50%);}
  .ds-sect--workflow .wf-phase__lock{top:auto;bottom:10px;right:12px;}
  .ds-sect--workflow .wf-phase__lbl{flex:1 1 auto;}
  .ds-sect--workflow .wf-phase__sub{flex:1 1 100%;}
  .ds-sect--workflow .wf-phase__meta{flex:1 1 100%;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;gap:3px 10px;}
  .ds-sect--workflow .wf-phase__chev{position:absolute;right:16px;top:50%;margin:0;transform:translateY(-70%) rotate(45deg);}
  .ds-sect--workflow .wf-phase.is-open .wf-phase__chev{transform:translateY(-30%) rotate(-135deg);}
  .ds-sect--workflow .wf-phase__steps{display:grid;grid-template-columns:1fr;gap:10px;margin:8px 0 0;padding:12px;}
  .ds-sect--workflow .wf-rail--phases .wf-step__btn{padding:12px 14px 12px 56px;}
  .ds-sect--workflow .wf-rail--phases .wf-tip{margin-left:0;}
}

/* ---------- 05 — « Sur le terrain » : trois volets dans une seule section ---------- */
.ds-sect--terrain{
  padding-bottom:clamp(40px,5vw,72px);
  background:
    radial-gradient(110% 76% at 18% 6%, rgba(14,165,160,.26), transparent 62%),
    radial-gradient(95% 70% at 86% 60%, rgba(37,99,235,.22), transparent 66%),
    radial-gradient(60% 46% at 62% 32%, rgba(245,181,68,.08), transparent 70%),
    linear-gradient(180deg,#04101F 0%,#0A1C24 34%,#0A2A42 70%,#04101F 100%);
}
.ds-sect--terrain .terrain-tete{max-width:820px;margin-bottom:0;}
.ds-sect--terrain .terrain-bande{
  list-style:none;margin:6px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px;
  font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--vt-ink-2);
}
.ds-sect--terrain .terrain-bande li{padding:7px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);}
.ds-sect--terrain .terrain-volet{
  position:relative;isolation:auto;overflow:visible;
  padding:clamp(34px,4.5vw,60px) 0 0;background:none;
}
.ds-sect--terrain .terrain-volet::before{display:none;}
.ds-sect--terrain .terrain-volet .dictee-atmo{display:none;}
.ds-sect--terrain .terrain-volet + .terrain-volet{margin-top:clamp(34px,4.5vw,60px);border-top:1px solid rgba(255,255,255,.08);}
.ds-sect--terrain .dictee-wrap,
.ds-sect--terrain .ds-review__inner,
.ds-sect--terrain .ds-offline__inner{max-width:1200px;margin-inline:auto;}
.ds-sect--terrain .dictee-titre{font-size:clamp(1.5rem,1rem + 1.4vw,2.15rem);}
.ds-sect--terrain .ds-review__title,
.ds-sect--terrain .ds-offline__title{font-size:clamp(1.5rem,1rem + 1.4vw,2.15rem);}
.ds-sect--terrain .dictee-volets{margin-top:clamp(24px,3vw,36px);}
.ds-sect--terrain .ds-offline__frise-wrap{margin-top:clamp(28px,3.5vw,44px);}
/* volet 1 : le geste humain — Appliquer / Ignorer */
.ds-sect--dictee .obs-decision{display:flex;gap:8px;margin:16px 0 0;}
.ds-sect--dictee .obs-btn{
  flex:1;padding:10px 12px;border-radius:10px;text-align:center;
  font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
}
.ds-sect--dictee .obs-btn--appliquer{color:#04101F;background:linear-gradient(140deg,var(--vt-amber-lt),var(--vt-amber));box-shadow:0 10px 24px -14px rgba(245,181,68,.9);}
.ds-sect--dictee .obs-btn--ignorer{color:var(--vt-ink-2);border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.04);}
.ds-sect--dictee .obs-decision__leg{margin:10px 0 0;font-size:10.5px;letter-spacing:.08em;color:var(--vt-amber-lt);}
/* volet 3 : deux colonnes FONCTIONNE HORS LIGNE / REPREND À LA RECONNEXION */
.ds-sect--offline .ds-offline__deux{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:6px 0 22px;max-width:620px;}
.ds-sect--offline .ds-offline__col{padding:12px 14px 14px;border-radius:12px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.11);box-shadow:inset 0 1px 0 rgba(255,255,255,.08);}
.ds-sect--offline .ds-offline__col--ok{border-color:rgba(111,227,214,.35);}
.ds-sect--offline .ds-offline__col--sync{border-color:rgba(143,178,255,.32);}
.ds-sect--offline .ds-offline__col-t{margin:0 0 8px;font-size:11px;letter-spacing:.1em;color:var(--vt-teal-lt);}
.ds-sect--offline .ds-offline__col--sync .ds-offline__col-t{color:var(--vt-blue-lt);}
.ds-sect--offline .ds-offline__col ul{list-style:none;margin:0;padding:0;display:grid;gap:5px;font-size:13px;line-height:1.45;color:var(--vt-ink-2);}
.ds-sect--offline .ds-offline__col li{position:relative;padding-left:14px;}
.ds-sect--offline .ds-offline__col li::before{content:"";position:absolute;left:0;top:.5em;width:6px;height:6px;border-radius:50%;background:var(--vt-teal-lt);opacity:.7;}
.ds-sect--offline .ds-offline__col--sync li::before{background:var(--vt-blue-lt);}
@media (max-width:520px){.ds-sect--offline .ds-offline__deux{grid-template-columns:1fr;}}

/* ---------- 06 — commercial : grille réduite (bloc « structure » retiré), un seul compteur ---------- */
.ds-sect--commercial .ds-com__grille--v3{grid-template-columns:minmax(0,1fr);max-width:920px;}
.ds-sect--commercial .ds-com__kpis--v3{grid-template-columns:minmax(0,220px);}
.ds-sect--commercial .ds-com__legende-insp{margin-left:0;}

/* ---------- 08 — équipes : 7 onglets ---------- */
.ds-sect--equipes .eq-tabs{grid-template-columns:repeat(7,minmax(0,1fr));}
@media (max-width:1000px){.ds-sect--equipes .eq-tabs{grid-template-columns:repeat(4,minmax(0,1fr));}}
@media (max-width:640px){.ds-sect--equipes .eq-tabs{grid-template-columns:repeat(2,minmax(0,1fr));}}

/* ---------- 09 — actions : sous-ligne « qui » ---------- */
.ds-sect--actions .ac-qui{display:block;margin-top:3px;font-size:10px;letter-spacing:.1em;color:var(--vt-ink-3);}

/* ---------- 10 — livraison : colonne facture (maquette de /facturation/ dupliquée) ---------- */
.ds-sect--portail .po-facture{margin-top:auto;padding:18px;font-size:.82rem;box-shadow:0 30px 60px -36px rgba(0,0,0,.9);}
.ds-sect--portail .po-facture .doc-head{align-items:flex-start;}
.ds-sect--portail .po-facture__etat{flex-wrap:wrap;gap:10px;}
.ds-sect--portail .po-facture__btn{
  display:inline-block;padding:7px 12px;border-radius:8px;
  font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  color:#04101F;background:linear-gradient(140deg,var(--vt-amber-lt),var(--vt-amber));
}
.ds-sect--portail .po-facture__bascule{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;}
.ds-sect--portail .po-facture__fleche{color:var(--vt-ink-3);}
.ds-sect--portail .po-col--fac .po-note{margin-top:14px;}

/* ---------- 11 — garde-fous : dépliants Pourquoi / Comment, référentiels, RBQ, Québec ---------- */
.ds-sect--conformite .cf-ligne{flex-wrap:wrap;}
.ds-sect--conformite .cf-why{flex:1 1 100%;margin:2px 0 0 34px;font-size:12.5px;line-height:1.55;color:var(--vt-ink-2);}
.ds-sect--conformite .cf-why summary{
  cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:7px;
  font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--vt-teal-lt);
}
.ds-sect--conformite .cf-why summary::-webkit-details-marker{display:none;}
.ds-sect--conformite .cf-why summary::before{
  content:"+";width:15px;height:15px;border-radius:4px;display:grid;place-items:center;flex:none;
  border:1px solid rgba(111,227,214,.45);font-size:12px;line-height:1;
}
.ds-sect--conformite .cf-why[open] summary::before{content:"–";}
.ds-sect--conformite .cf-why summary:focus-visible{outline:2px solid var(--vt-teal-lt);outline-offset:3px;border-radius:4px;}
.ds-sect--conformite .cf-why p{margin:8px 0 2px;}
.ds-sect--conformite .cf-why b{color:var(--vt-ink);font-weight:700;}
.ds-sect--conformite .cf-why a{color:var(--vt-teal-lt);}
.ds-sect--conformite .cf-cloture-visuel{margin:12px 0 0;font-size:14px;font-weight:600;color:var(--vt-ink);}
.ds-sect--conformite .cf-suite{
  margin-top:clamp(34px,4.5vw,56px);padding-top:clamp(28px,3.5vw,40px);border-top:1px solid rgba(255,255,255,.08);
  display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(24px,4vw,56px);align-items:start;
}
.ds-sect--conformite .cf-h3{margin:0 0 10px;font-size:clamp(1.25rem,1rem + .9vw,1.7rem);font-weight:800;letter-spacing:-.02em;color:var(--vt-ink);}
.ds-sect--conformite .cf-ref__lead{margin:0 0 16px;font-size:15px;line-height:1.6;color:var(--vt-ink-2);max-width:60ch;}
.ds-sect--conformite .cf-tuiles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
.ds-sect--conformite .cf-tuile{display:flex;flex-direction:column;gap:8px;padding:16px;min-width:0;}
.ds-sect--conformite .cf-tuile__k{font-size:11px;letter-spacing:.12em;color:var(--vt-teal-lt);}
.ds-sect--conformite .cf-tuile__t{font-size:13px;line-height:1.5;color:var(--vt-ink-2);}
.ds-sect--conformite .cf-tuile--rbq{border-color:rgba(245,181,68,.4);}
.ds-sect--conformite .cf-tuile--rbq .cf-tuile__k{color:var(--vt-amber-lt);}
.ds-sect--conformite .cf-tuile__lien{margin-top:auto;font-size:13px;}
.ds-sect--conformite .cf-avis{margin-top:14px;max-width:70ch;}
.ds-sect--conformite .cf-avis a{color:var(--vt-teal-lt);}
.ds-sect--conformite .cf-quebec{position:relative;padding:18px 20px 20px;border-radius:18px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.1);}
.ds-sect--conformite .cf-quebec .ds-eyebrow{margin-bottom:12px;}
.ds-sect--conformite .cf-quebec__puces{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:7px;font-size:13.5px;line-height:1.5;color:var(--vt-ink-2);}
.ds-sect--conformite .cf-quebec__puces li{position:relative;padding-left:16px;}
.ds-sect--conformite .cf-quebec__puces li::before{content:"";position:absolute;left:0;top:.55em;width:7px;height:7px;border-radius:50%;background:linear-gradient(140deg,var(--vt-blue),var(--vt-teal));}
.ds-sect--conformite .cf-canada{margin:0 0 12px;padding-top:12px;border-top:1px dashed rgba(155,176,204,.35);font-size:13.5px;line-height:1.55;color:var(--vt-ink-2);}
.ds-sect--conformite .cf-canada strong{color:var(--vt-ink);}
.ds-sect--conformite .cf-quebec__liens{margin:0;display:flex;flex-wrap:wrap;gap:8px 18px;font-size:13.5px;}
@media (max-width:900px){
  .ds-sect--conformite .cf-suite{grid-template-columns:1fr;}
  .ds-sect--conformite .cf-tuiles{grid-template-columns:1fr;}
  .ds-sect--conformite .cf-why{margin-left:0;}
}

/* ---------- 13 — CHOISIR : rangée d'audiences + carte migration ---------- */
.ds-sect--solutions .sol-audiences{
  list-style:none;margin:clamp(22px,3vw,32px) 0 0;padding:16px 0 0;
  border-top:1px solid rgba(255,255,255,.10);
  display:flex;flex-wrap:wrap;gap:8px 18px;
}
.ds-sect--solutions .sol-audience{
  display:inline-flex;align-items:center;gap:6px;
  font-size:13.5px;font-weight:600;color:var(--vt-ink-2);text-decoration:none;
  border-bottom:1px solid rgba(198,214,236,.22);padding-bottom:2px;
  transition:color .25s ease,border-color .25s ease;
}
.ds-sect--solutions .sol-audience span{transition:transform .25s ease;}
.ds-sect--solutions .sol-audience:hover{color:#fff;border-bottom-color:rgba(111,227,214,.7);}
.ds-sect--solutions .sol-audience:hover span{transform:translateX(3px);}
.ds-sect--solutions .sol-audience:focus-visible{outline:2px solid var(--vt-teal-lt);outline-offset:3px;border-radius:4px;}
.ds-sect--solutions .sol-mig{position:relative;margin-top:18px;padding:18px 20px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px 22px;align-items:center;}
.ds-sect--solutions .sol-mig__k{margin:0;font-size:11px;letter-spacing:.12em;color:var(--vt-teal-lt);white-space:nowrap;}
.ds-sect--solutions .sol-mig__p{margin:0;font-size:13.5px;line-height:1.55;color:var(--vt-ink-2);}
@media (max-width:760px){
  .ds-sect--solutions .sol-audiences{flex-direction:column;gap:10px;}
  .ds-sect--solutions .sol-mig{grid-template-columns:1fr;}
}

/* ---------- 01 / 04 / 16 — astérisque unique avec lien ---------- */
.v-terrain__note a,
.ds-sect--residentiel .res-meter__note a,
.ds-sect--final .fn-avant__note a{color:inherit;text-decoration:underline;text-underline-offset:2px;}
.v-terrain__note a:hover,
.ds-sect--residentiel .res-meter__note a:hover,
.ds-sect--final .fn-avant__note a:hover{color:var(--vt-teal-lt);}

/* ---------- 16 — clôture : une ligne avant / avec, sans horaire « après » ---------- */
.ds-sect--final .fn-avant{margin-top:clamp(28px,4vw,44px);padding-top:18px;border-top:1px solid rgba(255,255,255,.10);text-align:center;}
.ds-sect--final .fn-avant__ligne{margin:0;font-size:clamp(.95rem,.9rem + .3vw,1.1rem);line-height:1.6;color:var(--vt-ink);}
.ds-sect--final .fn-avant__k{font-size:11px;letter-spacing:.12em;color:var(--vt-amber-lt);margin-right:6px;}
.ds-sect--final .fn-avant__k--ds{color:var(--vt-teal-lt);}
.ds-sect--final .fn-avant__sep{margin:0 10px;color:rgba(111,227,214,.7);}
.ds-sect--final .fn-avant__note{margin:10px auto 0;max-width:70ch;font-size:12.5px;line-height:1.55;color:var(--vt-ink-3);}
@media (max-width:640px){.ds-sect--final .fn-avant__sep{display:block;margin:6px 0;}}

/* ---------- mouvement réduit : phases et jeton à l'état final ---------- */
@media (prefers-reduced-motion:reduce){
  .ds-sect--workflow .wf-phase__btn,
  .ds-sect--workflow .wf-rail--phases::before{animation:none !important;opacity:1 !important;transform:none !important;}
}

/* ---------- V3 — densité : hauteur cible ≤ 24 écrans à 1366×768 (corr. 2) ---------- */
html.theme-terrain .ds-sect{padding-top:clamp(52px,6vw,80px);padding-bottom:clamp(52px,6vw,80px);}
html.theme-terrain .ds-sect--terrain{padding-bottom:clamp(36px,4.5vw,60px);}
.ds-sect--workflow .wf-head{margin-bottom:clamp(26px,3.5vw,40px);}
.ds-sect--workflow .wf-phase__btn{padding-top:44px;}
.ds-sect--manifeste .dsx-title{margin-bottom:18px;max-width:26ch;}
.ds-sect--manifeste .dsx-l1{font-size:clamp(1.05rem,2vw,1.35rem);}
.ds-sect--manifeste .dsx-l2{font-size:clamp(1.75rem,3.6vw,2.6rem);}
.ds-sect--manifeste .dsx-lede{margin-bottom:clamp(22px,3vw,32px);}
.ds-sect--manifeste .dsx-schemas{margin-bottom:8px;}
.ds-sect--soiree .soiree-haut{align-items:center;}
.ds-sect--soiree .soiree-scene{max-width:560px;justify-self:end;}
.ds-sect--residentiel .res-methode{margin-top:clamp(30px,4vw,48px);}
.ds-sect--residentiel .res-parcours{margin-top:clamp(26px,3.5vw,40px);}
.ds-sect--commercial .ds-com__grille--v3{max-width:none;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:start;}
.ds-sect--commercial .ds-com__grille--v3 .ds-com__bats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px;}
.ds-sect--commercial .ds-com__grille--v3 .ds-com__bat{grid-template-columns:28px minmax(0,1fr);padding:8px 0;}
.ds-sect--commercial .ds-com__grille--v3 .ds-com__bat:nth-child(2){border-top:0;}
.ds-sect--commercial .ds-com__grille--v3 .ds-com__kpis--v3{grid-template-columns:minmax(0,1fr);margin:0;border-top:0;background:none;padding:0;}
.ds-sect--commercial .ds-com__grille--v3 .ds-com__pied-col{display:flex;flex-direction:column;gap:18px;}
.ds-sect--commercial .ds-com__pied-col .ds-com__kpi dd{font-size:2rem;}
.ds-sect--actions .ac-scene{max-width:420px;}
.ds-sect--conformite .cf-tete{margin-bottom:26px;}
.ds-sect--conformite .cf-suite{margin-top:clamp(26px,3.5vw,40px);padding-top:clamp(22px,3vw,30px);}
.ds-sect--solutions .sol-head{margin-bottom:clamp(24px,3vw,36px);}
.ds-sect--bord .tb-tete{margin-bottom:22px;}
.ds-sect--equipes .eq-tete,.ds-sect--portail .po-tete{margin-bottom:24px;}
@media (max-width:1000px){
  .ds-sect--commercial .ds-com__grille--v3{grid-template-columns:1fr;}
}
@media (max-width:640px){
  .ds-sect--commercial .ds-com__grille--v3 .ds-com__bats{grid-template-columns:1fr;}
  .ds-sect--commercial .ds-com__grille--v3 .ds-com__bat:nth-child(2){border-top:1px solid rgba(255,255,255,.07);}
}

/* ---------- V3 — densité (suite) : en-têtes sur deux colonnes ≥ 1000 px, hors ligne sans scène, résidentiel resserré ---------- */
@media (min-width:1000px){
  .ds-sect--workflow .wf-head,
  .ds-sect--conformite .cf-tete,
  .ds-sect--commercial .ds-com__tete,
  .ds-sect--equipes .eq-tete,
  .ds-sect--terrain .terrain-tete{
    max-width:none;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);column-gap:clamp(28px,4vw,64px);row-gap:0;align-items:end;
  }
  .ds-sect--workflow .wf-head > .ds-eyebrow,
  .ds-sect--workflow .wf-head > .ds-h2,
  .ds-sect--conformite .cf-tete > .ds-eyebrow,
  .ds-sect--conformite .cf-tete > .ds-h2,
  .ds-sect--commercial .ds-com__tete > .ds-eyebrow,
  .ds-sect--commercial .ds-com__tete > .ds-h2,
  .ds-sect--equipes .eq-tete > .ds-eyebrow,
  .ds-sect--equipes .eq-tete > .ds-h2,
  .ds-sect--terrain .terrain-tete > .ds-eyebrow,
  .ds-sect--terrain .terrain-tete > .ds-h2{grid-column:1;}
  .ds-sect--workflow .wf-head > .ds-lead,
  .ds-sect--workflow .wf-head > .wf-intro,
  .ds-sect--conformite .cf-tete > .ds-lead,
  .ds-sect--conformite .cf-tete > .cf-texte,
  .ds-sect--commercial .ds-com__tete > .ds-lead,
  .ds-sect--commercial .ds-com__tete > .ds-com__texte,
  .ds-sect--commercial .ds-com__tete > .ds-com__forfaits,
  .ds-sect--equipes .eq-tete > .ds-lead,
  .ds-sect--equipes .eq-tete > .eq-texte,
  .ds-sect--terrain .terrain-tete > .terrain-bande{grid-column:2;}
  .ds-sect--workflow .wf-head > .ds-eyebrow,
  .ds-sect--conformite .cf-tete > .ds-eyebrow,
  .ds-sect--commercial .ds-com__tete > .ds-eyebrow,
  .ds-sect--equipes .eq-tete > .ds-eyebrow,
  .ds-sect--terrain .terrain-tete > .ds-eyebrow{grid-row:1;align-self:start;}
  .ds-sect--workflow .wf-head > .ds-h2,
  .ds-sect--conformite .cf-tete > .ds-h2,
  .ds-sect--commercial .ds-com__tete > .ds-h2,
  .ds-sect--equipes .eq-tete > .ds-h2,
  .ds-sect--terrain .terrain-tete > .ds-h2{grid-row:2 / span 3;align-self:start;margin-bottom:0;}
  .ds-sect--workflow .wf-head > .ds-lead,
  .ds-sect--conformite .cf-tete > .ds-lead,
  .ds-sect--commercial .ds-com__tete > .ds-lead,
  .ds-sect--equipes .eq-tete > .ds-lead{grid-row:1 / span 2;align-self:end;margin-bottom:12px;}
  .ds-sect--terrain .terrain-tete > .terrain-bande{grid-row:1 / span 4;align-self:end;justify-content:flex-end;}
  .ds-sect--workflow .wf-head > .wf-intro,
  .ds-sect--conformite .cf-tete > .cf-texte,
  .ds-sect--commercial .ds-com__tete > .ds-com__texte,
  .ds-sect--equipes .eq-tete > .eq-texte{grid-row:3;align-self:start;margin:0;}
  .ds-sect--commercial .ds-com__tete > .ds-com__forfaits{grid-row:4;align-self:start;margin-top:10px;}
  .ds-sect--terrain .terrain-tete .ds-h2{margin-bottom:0;}
}
/* hors ligne : plus de scène en coupe (la frise 8 étapes reste la preuve) ; listes à droite du texte */
.ds-sect--terrain .ds-offline__scene{display:none;}
.ds-sect--terrain .ds-offline__inner{grid-template-columns:minmax(0,1fr);}
@media (min-width:860px){
  .ds-sect--terrain .ds-offline__copy{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);column-gap:clamp(24px,3.5vw,56px);align-items:start;}
  .ds-sect--terrain .ds-offline__copy > *{grid-column:1;}
  .ds-sect--terrain .ds-offline__copy > .ds-offline__deux{grid-column:2;grid-row:1 / span 6;max-width:none;margin:0;align-self:center;}
}
/* volets plus serrés */
.ds-sect--terrain .terrain-volet{padding-top:clamp(28px,3.5vw,44px);}
.ds-sect--terrain .terrain-volet + .terrain-volet{margin-top:clamp(28px,3.5vw,44px);}
.ds-sect--terrain .ds-review__inner{gap:clamp(24px,3.5vw,48px);}
.ds-sect--terrain .ds-offline__frise-wrap{margin-top:clamp(22px,3vw,36px);padding-top:clamp(18px,2.5vw,26px);}
/* résidentiel : scène plus basse, étapes plus compactes */
.ds-sect--soiree .soiree-scene{max-width:500px;}
.ds-sect--residentiel .res-step__pic{width:clamp(48px,5.5vw,56px);height:clamp(48px,5.5vw,56px);}
.ds-sect--residentiel .res-steps{margin-top:clamp(20px,3vw,30px);}
.ds-sect--residentiel .res-methode{margin-top:clamp(24px,3.5vw,40px);}
/* solutions : scènes plus basses */
@media (min-width:900px){.ds-sect--solutions .sol-card__scene{aspect-ratio:16 / 8.5;}}

/* ---------- V3 — densité (fin) : espacements verticaux resserrés sur l'accueil ---------- */
html.theme-terrain .ds-sect{padding-top:clamp(44px,5.2vw,66px);padding-bottom:clamp(44px,5.2vw,66px);}
.ds-sect--soiree .soiree-titre{font-size:clamp(1.7rem,3.6vw,2.6rem);}
.ds-sect--soiree .soiree-punch{margin-top:clamp(22px,3vw,34px);font-size:clamp(1.15rem,2.4vw,1.6rem);}
.ds-sect--soiree .soiree-haut{grid-template-columns:minmax(0,1fr) minmax(0,.9fr);}
.ds-sect--soiree .soiree-scene{max-width:560px;}
.ds-sect--residentiel .res-h3{font-size:clamp(1.3rem,2.4vw,1.8rem);}
.ds-sect--residentiel .res-cta{margin-top:18px;}
.ds-sect--dictee .obs-l{padding:7px 12px;}
.ds-sect--dictee .obs-champs{gap:6px;}
.ds-sect--dictee .obs-bas{padding-top:12px;}
.ds-sect--dictee .obs-decision{margin-top:12px;}
.ds-sect--terrain .ds-review__page{padding:clamp(14px,1.6vw,18px);}
.ds-sect--terrain .ds-review__blk + .ds-review__blk{margin-top:10px;}
.ds-sect--actions .ac-frise{gap:12px;}
.ds-sect--actions .ac-carte{padding:12px 16px;}
.ds-sect--actions .ac-carte__txt{margin:0 0 8px;}
.ds-sect--solutions .sol-card__scene{aspect-ratio:auto;height:150px;}
.ds-sect--solutions .sol-card__body{gap:10px;padding:clamp(16px,1.8vw,22px);}
.ds-sect--conformite .cf-col{padding:14px 16px;}
.ds-sect--conformite .cf-lignes{gap:5px;}
.ds-sect--conformite .cf-ligne{padding:8px 12px;}
.ds-sect--tarifs .tf-tete{margin-bottom:22px;}
.ds-sect--tarifs .tf-intro{max-width:78ch;}
.ds-sect--bord .tb-corps{gap:12px;}
.ds-sect--portail .po-col{padding:clamp(16px,2vw,24px);}
.ds-sect--equipes .eq-tete{margin-bottom:18px;}
.ds-sect--planification .ds-plan__grille{align-items:start;}
.ds-sect--final .fn-avant{margin-top:clamp(20px,3vw,32px);}

/* ---------- V3 — densité : maquettes des volets terrain plus compactes ---------- */
.ds-sect--terrain .ds-review__doc{gap:10px;}
.ds-sect--terrain .ds-review__blk{gap:6px;}
.ds-sect--terrain .ds-review__thumb{height:26px;}
@media (min-width:1100px){
  .ds-sect--terrain .obs-champs{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 8px;}
  .ds-sect--terrain .obs-l{grid-template-columns:minmax(0,1fr);gap:2px;}
  .ds-sect--terrain .obs-l:nth-child(4){grid-column:1 / -1;}
}
.ds-sect--terrain .dictee-volets{margin-top:clamp(18px,2.5vw,28px);}
.ds-sect--conformite .cf-suite{margin-top:clamp(22px,3vw,34px);padding-top:clamp(18px,2.5vw,26px);}
.ds-sect--conformite .cf-tuile{padding:14px;gap:6px;}
.ds-sect--tarifs .tf-carte{padding:clamp(16px,1.8vw,20px) clamp(16px,1.8vw,20px) clamp(18px,2vw,22px);}
.ds-sect--workflow .wf-phase__steps{padding:18px 16px 14px;}
.ds-sect--manifeste .dsx-lede{margin-bottom:clamp(16px,2vw,24px);}
.ds-sect--final .fn-haut{align-items:center;}

/* ---------- V3 — garde-fous : référentiels + Québec dans la colonne gauche, sous les 4 tuiles ---------- */
.ds-sect--conformite .cf-colonnes > .cf-ref,
.ds-sect--conformite .cf-colonnes > .cf-quebec{grid-column:1 / -1;}
.ds-sect--conformite .cf-colonnes > .cf-ref{margin-top:14px;padding-top:16px;border-top:1px solid rgba(255,255,255,.08);}
.ds-sect--conformite .cf-colonnes .cf-tuiles{grid-template-columns:1fr;gap:8px;}
.ds-sect--conformite .cf-colonnes .cf-tuile{display:grid;grid-template-columns:150px minmax(0,1fr);gap:4px 14px;align-items:start;padding:10px 14px;}
.ds-sect--conformite .cf-colonnes .cf-tuile__lien{grid-column:2;margin-top:0;}
.ds-sect--conformite .cf-colonnes > .cf-quebec{margin-top:12px;padding:14px 16px 16px;}
.ds-sect--conformite .cf-colonnes .cf-quebec__puces{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 14px;font-size:13px;}
.ds-sect--conformite .cf-ref__lead{margin-bottom:12px;font-size:14px;}
.ds-sect--conformite .cf-avis{margin-top:10px;font-size:12px;}
.ds-sect--conformite .cf-grille{align-items:start;}
@media (max-width:640px){
  .ds-sect--conformite .cf-colonnes .cf-tuile{grid-template-columns:1fr;}
  .ds-sect--conformite .cf-colonnes .cf-tuile__lien{grid-column:1;}
  .ds-sect--conformite .cf-colonnes .cf-quebec__puces{grid-template-columns:1fr;}
}
/* ---------- V3 — densité : derniers réglages ---------- */
html.theme-terrain .ds-sect{padding-top:clamp(40px,4.8vw,60px);padding-bottom:clamp(40px,4.8vw,60px);}
.ds-sect--terrain .terrain-volet{padding-top:clamp(22px,3vw,36px);}
.ds-sect--terrain .terrain-volet + .terrain-volet{margin-top:clamp(22px,3vw,36px);}
.ds-sect--soiree .soiree-punch{max-width:none;margin-top:clamp(18px,2.5vw,28px);}
.ds-sect--residentiel .res-cta{margin-top:14px;}
.ds-sect--workflow .wf-head{margin-bottom:clamp(20px,3vw,32px);}

/* ---------- V3 — densité : ajustements finaux ---------- */
html.theme-terrain .ds-sect{padding-top:clamp(36px,4.4vw,54px);padding-bottom:clamp(36px,4.4vw,54px);}
.ds-sect--conformite .cf-colonnes .cf-quebec__puces{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 12px;font-size:12.5px;}
.ds-sect--terrain .ds-review__ln{height:7px;}
.ds-sect--terrain .ds-review__blk:nth-child(3) .ds-review__ln:nth-child(n+3){display:none;}
.ds-sect--solutions .sol-card__scene{height:124px;}
.ds-sect--tarifs .tf-inclus{margin-top:12px;padding-top:8px;}
.ds-sect--tarifs .tf-inclus li{padding:4px 0;}
.ds-sect--actions .ac-carte__txt{font-size:13.5px;line-height:1.5;}
.ds-sect--actions .ac-carte__meta{margin-top:8px;}
.ds-sect--manifeste .dsx-schema svg{max-height:84px;width:100%;}
.ds-sect--final .fn-scene{max-width:560px;justify-self:end;}
@media (max-width:1000px){.ds-sect--conformite .cf-colonnes .cf-quebec__puces{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:640px){.ds-sect--conformite .cf-colonnes .cf-quebec__puces{grid-template-columns:1fr;}}

/* ---------- V3 — densité : dernier cran ---------- */
html.theme-terrain .ds-sect{padding-top:clamp(34px,4.2vw,50px);padding-bottom:clamp(34px,4.2vw,50px);}
.ds-sect--terrain .terrain-volet + .terrain-volet{margin-top:clamp(18px,2.5vw,28px);}
.ds-sect--terrain .terrain-volet{padding-top:clamp(18px,2.5vw,28px);}
.ds-sect--terrain .ds-offline__frise-wrap{margin-top:18px;padding-top:16px;}
.ds-sect--terrain .ds-review__foot{padding:10px 18px;}
.ds-sect--tarifs .tf-rappel{margin-top:18px;padding:12px clamp(14px,2vw,20px);}
@media (min-width:860px){.ds-sect--terrain .ds-offline__copy > .ds-offline__eyebrow{justify-self:start;}}
