
.aurore { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; background: var(--hero-fond); }
.aurore span { position: absolute; border-radius: 50%; filter: blur(70px); opacity: .95; }
.aurore .a1 { width: 62vmax; height: 62vmax; left: -18vmax; top: -30vmax; background: radial-gradient(circle, var(--g1) 0%, transparent 68%); animation: derive 22s ease-in-out infinite; }
.aurore .a2 { width: 52vmax; height: 52vmax; right: -20vmax; bottom: -26vmax; background: radial-gradient(circle, var(--g2) 0%, transparent 68%); animation: derive 26s ease-in-out infinite reverse; }
.aurore .a3 { width: 46vmax; height: 46vmax; left: 34%; top: -26vmax; background: radial-gradient(circle, var(--g3) 0%, transparent 68%); animation: derive 30s ease-in-out infinite; }
.aurore::after { content: ""; position: absolute; inset: 0; background: linear-gradient(var(--voile-aurore), var(--voile-aurore)); }
:root[data-theme="nuit"] .aurore span { opacity: .55; }
.grain {
  position: absolute; inset: 0; z-index: 1; opacity: .32; mix-blend-mode: soft-light; filter: none !important; border-radius: 0 !important;
  width: auto !important; height: auto !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");
}
.hero { position: relative; overflow: clip; padding: clamp(116px, 13vh, 150px) 0 clamp(56px, 6vw, 88px); }
.hero > .contenu { position: relative; z-index: 2; }
.hero-grille { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(32px, 5vw, 72px); align-items: center; }
.hero-texte { display: flex; flex-direction: column; align-items: flex-start; gap: var(--e6); }
.hero .titre-hero { font-weight: 400; max-width: 13ch; }
.hero .titre-hero b { font-weight: 700; }
.hero .lead { max-width: 52ch; color: var(--ink-2); }
.hero .actions { margin-top: var(--e2); }
.hero-chiffres { display: flex; flex-wrap: wrap; gap: var(--e6) var(--e10); margin-top: var(--e4); padding-top: var(--e6); border-top: 1px solid var(--ligne); }
.hc { display: flex; flex-direction: column; gap: 2px; }
.hc-val { font-size: clamp(1.75rem, 1.3rem + 1.2vw, 2.25rem); font-weight: 650; letter-spacing: -.04em; line-height: 1.1; white-space: nowrap; }
.hc-fl { color: var(--ink-3); font-weight: 400; margin: 0 .1em; }
.hc-apres { color: var(--acc-fort); }
.hc-lb { font-size: var(--t-donnee); color: var(--ink-2); }
.hero-note { font-size: var(--t-label); color: var(--ink-3); }
.hero-visuel { position: relative; }
.hero-scene { position: relative; perspective: 1800px; padding: 104px 0 84px; }
.hero-appareil {
  max-width: 640px; margin-left: auto;
  transform: rotateY(-9deg) rotateX(4deg) rotateZ(.5deg); transform-style: preserve-3d;
  transition: transform .9s var(--entree);
}
.hero-scene:hover .hero-appareil { transform: rotateY(-4deg) rotateX(2deg); }
.hero-appareil .ecran { min-height: 470px; }
.hero-appareil .e-page { padding: 18px; }
.bulle {
  position: absolute; z-index: 3; width: 212px;
  display: flex; flex-direction: column; gap: 4px; padding: var(--e4);
  border-radius: var(--r-lg);
  background: var(--verre-fort);
  backdrop-filter: blur(22px) saturate(160%); -webkit-backdrop-filter: blur(22px) saturate(160%);
  box-shadow: var(--verre-bord), 0 24px 50px -22px rgba(58,50,99,.45);
  font-size: var(--t-donnee); line-height: 1.5; color: var(--ink-2);
  animation: flotte 7s ease-in-out infinite;
  transition: scale .35s var(--entree);
}
.bulle strong { font-size: var(--t-donnee); font-weight: 650; color: var(--ink); }
.bulle:hover { scale: 1.04; animation-play-state: paused; z-index: 5; }
.bulle-ico { width: 30px; height: 30px; border-radius: 9px; display: grid; place-items: center; font-size: 16px; margin-bottom: 4px; }
.bi-perte { background: var(--perte-voile); color: var(--perte); }
.bi-alerte { background: var(--alerte-voile); color: var(--alerte); }
.bi-acc { background: var(--acc-voile); color: var(--acc-fort); }
.bulle-g { left: -84px; top: -30px; animation-delay: -1s; }
.bulle-d { right: -64px; top: 62%; animation-delay: -3.5s; }
.bulle-b { left: -48px; bottom: 0; animation-delay: -5.5s; }
.bande-preuve {
  position: relative; padding: var(--e5) 0; overflow: hidden;
  background:
    linear-gradient(var(--voile-aurore), var(--voile-aurore)),
    linear-gradient(90deg, color-mix(in srgb, var(--g1) 55%, transparent), color-mix(in srgb, var(--g3) 40%, transparent) 50%, color-mix(in srgb, var(--g2) 45%, transparent)),
    var(--hero-fond);
}
.bande-preuve p { display: flex; align-items: center; justify-content: center; gap: var(--e3); font-size: var(--t-corps); color: var(--ink); text-align: center; }
.bande-preuve i { font-size: 20px; color: var(--acc-fort); }
.z1-tete { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: var(--e8) var(--e16); align-items: end; }
.z1-tete .lead { max-width: 56ch; }
.frise74 { margin-top: var(--e12); padding: var(--e8); display: flex; flex-direction: column; gap: var(--e5); }
.frise74-tete { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--e2) var(--e6); align-items: baseline; }
.frise74-dit { font-size: var(--t-donnee); color: var(--ink-2); }
.frise74-traits { display: grid; grid-template-columns: repeat(74, minmax(0, 1fr)); gap: 3px; height: 64px; align-items: end; }
.frise74-traits i { display: block; height: 100%; border-radius: 3px; transform-origin: 50% 100%; }
.frise74-traits .v { background: var(--gain); }
.frise74-traits .h { background: var(--perte); }
html.anim .frise74 .frise74-traits i { scale: 1 0; transition: scale .55s var(--entree); }
html.anim .frise74.actif .frise74-traits i { scale: 1 1; }
.frise74-barre { display: flex; gap: 4px; height: 76px; }
.fb { flex: var(--part) 1 0; min-width: 0; border-radius: var(--r-md); display: flex; align-items: center; gap: var(--e3); padding: 0 var(--e5); color: var(--sur-sem); overflow: hidden; }
.fb-v { background: var(--gain); }
.fb-h { background: var(--perte); }
.fb-n { font-size: 2rem; font-weight: 700; letter-spacing: -.04em; }
.fb-lb { font-size: var(--t-label); font-weight: 700; letter-spacing: var(--suivi-label); text-transform: uppercase; }
html.anim .frise74 .frise74-barre { clip-path: inset(0 100% 0 0 round var(--r-md)); transition: clip-path 1.4s cubic-bezier(.33,1,.68,1) 1s; }
html.anim .frise74.actif .frise74-barre { clip-path: inset(0 0 0 0 round var(--r-md)); }
.z1-suite { margin-top: var(--e12); display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: var(--e6) var(--e16); }
.z1-textes { display: flex; flex-direction: column; gap: var(--e4); }
.z2, .z7 { overflow: clip; }
.z2-lueur, .z7-lueur {
  position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(50% 60% at 20% 0%, color-mix(in srgb, var(--lueur) 34%, transparent), transparent 70%),
    radial-gradient(40% 50% at 95% 100%, color-mix(in srgb, var(--g2) 18%, transparent), transparent 70%);
}
.z2 > .contenu, .z7 > .contenu { position: relative; }
.z2-tete { max-width: 760px; display: flex; flex-direction: column; gap: var(--e5); }
.z2 .titre-sect, .z7 .titre-sect { color: #fff; }
.z2-colonnes { margin-top: var(--e12); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--e6); }
.col {
  position: relative; border-radius: var(--r-xl); padding: var(--e8);
  background: linear-gradient(170deg, rgba(255,255,255,.075), rgba(255,255,255,.025));
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.11), 0 30px 60px -30px rgba(0,0,0,.5);
  display: flex; flex-direction: column; gap: var(--e6);
}
.col-v { --teinte: var(--gain-nuit); }
.col-h { --teinte: var(--perte-nuit); }
.col-tete { display: flex; align-items: flex-end; gap: var(--e3); }
.col-n { font-size: clamp(3.5rem, 2.4rem + 3vw, 5rem); font-weight: 700; letter-spacing: -.05em; line-height: .9; color: var(--teinte); }
.col-lb { font-size: var(--t-label); font-weight: 700; letter-spacing: var(--suivi-label); text-transform: uppercase; color: var(--teinte); max-width: 10ch; line-height: 1.35; padding-bottom: 6px; }
.col-courbe { width: 100%; height: 150px; overflow: visible; }
.col-courbe .zero { stroke: rgba(255,255,255,.18); stroke-width: 1; stroke-dasharray: 3 5; vector-effect: non-scaling-stroke; }
.col-courbe .trace { fill: none; stroke: var(--teinte); stroke-width: 2.5; stroke-linejoin: round; stroke-linecap: round; vector-effect: non-scaling-stroke; filter: drop-shadow(0 0 8px color-mix(in srgb, var(--teinte) 55%, transparent)); }
html.anim .z2-colonnes .trace { clip-path: inset(-40px 100% -40px -40px) view-box; transition: clip-path 1.8s cubic-bezier(.45,0,.2,1) .5s; }
html.anim .z2-colonnes.actif .trace { clip-path: inset(-40px -40px -40px -40px) view-box; }
.col-stats { margin: 0; display: flex; flex-direction: column; }
.col-stats div { display: flex; justify-content: space-between; align-items: baseline; gap: var(--e4); padding: var(--e3) 0; border-top: 1px solid rgba(255,255,255,.10); }
.col-stats dt { font-size: var(--t-donnee); color: var(--ink-nuit); }
.col-stats dd { margin: 0; font-size: var(--t-corps); font-weight: 650; color: #fff; }
.col-stats dd.gain { color: var(--gain-nuit); }
.col-stats dd.perte { color: var(--perte-nuit); }
html.anim .z2-colonnes .col { transition: translate 1.2s cubic-bezier(.33,1,.68,1) .1s, opacity .8s var(--entree); opacity: 0; }
html.anim .z2-colonnes .col-v { translate: 12% 0; }
html.anim .z2-colonnes .col-h { translate: -12% 0; }
html.anim .z2-colonnes.actif .col { translate: 0 0; opacity: 1; }
.z2-chute { margin-top: var(--e12); display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: var(--e6) var(--e16); align-items: start; }
.z2-chute .titre-3 { color: #fff; font-size: clamp(1.4rem, 1.1rem + 1vw, 1.9rem); }
.z2-chute > div { display: flex; flex-direction: column; gap: var(--e3); }
.fond-nuit .texte { color: var(--ink-nuit); }
.lueur-curseur { overflow: hidden; }
.lueur-curseur::before {
  content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; opacity: 0; z-index: 0;
  transition: opacity .26s var(--entree);
  background: radial-gradient(320px circle at var(--mx, 50%) var(--my, 50%), rgba(255,255,255,.12) 0%, transparent 62%);
}
.lueur-curseur:hover::before { opacity: 1; }
.lueur-curseur > * { position: relative; z-index: 1; }
.z3-tete { max-width: 780px; display: flex; flex-direction: column; gap: var(--e5); }
.scrolly { margin-top: var(--e10); display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: var(--e8) var(--e16); }
.scrolly-colle { grid-column: 2; grid-row: 1; position: sticky; top: 104px; align-self: start; display: flex; flex-direction: column; gap: var(--e5); }
.etapes { grid-column: 1; grid-row: 1; display: flex; flex-direction: column; }
.scrolly-ecrans { position: relative; height: 480px; }
.sc-ecran { position: absolute; inset: 0; opacity: 0; translate: 0 18px; scale: .97; transition: opacity .25s var(--doux), translate .35s var(--doux), scale .35s var(--doux); pointer-events: none; }
.sc-ecran.actif { opacity: 1; translate: 0 0; scale: 1; transition: opacity .45s var(--doux) .12s, translate .6s var(--entree) .12s, scale .6s var(--entree) .12s; }
.scrolly-action { display: flex; flex-wrap: wrap; align-items: center; gap: var(--e3) var(--e4); }
.etape {
  display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: var(--e5);
  padding: var(--e10) 0; border-top: 1px solid var(--ligne);
  transition: opacity .45s var(--doux);
}
.etape:first-child { border-top: 0; padding-top: var(--e2); }
html.anim .etape:not(.actif) { opacity: .42; }
.etape-ico {
  width: 48px; height: 48px; border-radius: 14px; display: grid; place-items: center;
  background: var(--carte); box-shadow: var(--om-1); color: var(--acc-fort); font-size: 22px;
  transition: background .4s var(--doux), color .4s var(--doux), box-shadow .4s var(--doux);
}
.etape.actif .etape-ico { background: linear-gradient(180deg, var(--btn1), var(--btn2)); color: var(--sur-btn); box-shadow: var(--om-btn); }
.etape-n { display: block; font-size: var(--t-label); font-weight: 700; letter-spacing: .16em; color: var(--acc-fort); margin-bottom: var(--e2); }
.etape-t { font-size: var(--t-titre); font-weight: 650; letter-spacing: -.025em; line-height: 1.2; margin-bottom: var(--e3); }
.etape p { font-size: var(--t-corps); line-height: 1.7; color: var(--ink-2); max-width: 46ch; }
.etape-ecran { display: none; }
.z4-tete { max-width: 780px; display: flex; flex-direction: column; gap: var(--e5); }
.z4-duo { margin-top: var(--e12); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--e8); }
.z4-cas { margin: 0; display: flex; flex-direction: column; gap: var(--e5); }
.z4-cas-tete { display: flex; flex-direction: column; gap: var(--e2); }
.et-perte { color: var(--perte-texte, #b03a3e); }
.et-alerte { color: var(--alerte); }
:root[data-theme="nuit"] .et-perte { color: var(--perte); }
.z4-ecran { min-height: 430px; }
@media (min-width: 981px) {
  .z4-duo { grid-template-rows: auto auto auto; row-gap: var(--e5); }
  .z4-cas { display: grid; grid-row: span 3; grid-template-rows: subgrid; }
}
.z4-legende { max-width: 52ch; }
.z7-tete { max-width: 720px; margin: 0 auto; text-align: center; display: flex; flex-direction: column; align-items: center; gap: var(--e5); }
.z7-grille { margin-top: var(--e12); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--e10) var(--e16); align-items: center; }
.z7-demo { display: flex; flex-direction: column; align-items: center; gap: var(--e3); text-align: center; }
.z7-aide { font-size: var(--t-donnee); color: var(--ink-nuit); max-width: 40ch; min-height: 1.6em; }
.z7-aide-2 { margin-top: calc(var(--e2) * -1); }
.z7-sans { display: flex; flex-direction: column; gap: var(--e4); max-width: 46ch; }
.z7-sans .titre-3 { color: #fff; font-size: clamp(1.4rem, 1.1rem + 1vw, 1.9rem); }
.z7-action { margin-top: var(--e12); display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--e3) var(--e5); }
.orbe-hote { --p: 0; position: relative; width: 236px; height: 236px; display: grid; place-items: center; margin-bottom: var(--e3); }
.orbe-anneau { position: absolute; inset: 0; width: 100%; height: 100%; rotate: -90deg; }
.orbe-fond { fill: none; stroke: rgba(255,255,255,.12); stroke-width: 6; }
.orbe-plein { fill: none; stroke: var(--lueur); stroke-width: 6; stroke-linecap: round; stroke-dasharray: 100; stroke-dashoffset: calc(100 - var(--p) * 100); filter: drop-shadow(0 0 10px var(--lueur)); }
.orbe-hote.tenu .orbe-plein { stroke: var(--gain-nuit); filter: drop-shadow(0 0 12px var(--gain-nuit)); }
.orbe {
  position: relative; width: 188px; height: 188px; border-radius: 50%;
  display: grid; place-items: center; padding: 0 28px; text-align: center;
  background: radial-gradient(circle at 35% 30%, #c7bbff 0%, #8a74f0 45%, #5b45c9 100%);
  color: #16122e; font-size: var(--t-corps); font-weight: 700; line-height: 1.25; letter-spacing: -.01em;
  box-shadow: 0 0 0 1px rgba(255,255,255,.25) inset, 0 20px 60px -10px rgba(133,96,236,.65), 0 0 calc(20px + var(--p) * 60px) color-mix(in srgb, var(--lueur) calc(var(--p) * 100%), transparent);
  user-select: none; -webkit-user-select: none; -webkit-touch-callout: none; touch-action: pan-y;
  scale: calc(1 - var(--p) * .05);
  transition: box-shadow .2s linear, background .4s var(--doux);
}
.orbe:focus-visible { outline: 3px solid #fff; outline-offset: 6px; }
.orbe-hote.tenu .orbe { background: radial-gradient(circle at 35% 30%, #b9f3df 0%, #4fc7a5 50%, #1f8f70 100%); scale: 1; }
.orbe-hote::before { content: ""; position: absolute; inset: 18px; border-radius: 50%; background: radial-gradient(circle, color-mix(in srgb, var(--lueur) 30%, transparent), transparent 70%); animation: respire 3.4s ease-in-out infinite; }
.z5-tete { max-width: 800px; display: flex; flex-direction: column; gap: var(--e5); }
.couverture { margin-top: var(--e12); padding: var(--e8); display: grid; grid-template-columns: 200px repeat(5, minmax(0, 1fr)); row-gap: var(--e4); column-gap: 6px; }
.cv-phases { display: contents; }
.cv-phases .etiquette { grid-row: 1; padding: 0 var(--e2) var(--e2); border-bottom: 2px solid var(--ligne-forte); }
.cv-p1 { grid-column: 2 / 5; }
.cv-p2 { grid-column: 5 / 6; }
.cv-p3 { grid-column: 6 / 7; }
.cv-voie { display: contents; }
.cv-nom { grid-column: 1; display: flex; align-items: center; gap: var(--e2); font-size: var(--t-donnee); font-weight: 650; color: var(--ink); }
.cv-tg .cv-nom { color: var(--acc-fort); font-size: 1.125rem; font-weight: 700; letter-spacing: -.025em; gap: var(--e3); }
.cv-autres .cv-nom { color: var(--ink-2); font-weight: 500; }
.cv-sceau {
  flex: none; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 11px;
  background: linear-gradient(180deg, var(--btn1), var(--btn2)); box-shadow: var(--om-btn);
}
.cv-sceau .logo-t rect { fill: var(--sur-btn); }
.cv-segments { display: contents; }
.cv-s {
  display: flex; align-items: center; min-height: 64px; padding: var(--e3) var(--e4);
  font-size: var(--t-donnee); font-weight: 600; line-height: 1.35;
}
.cv-tg .cv-s { background: linear-gradient(180deg, color-mix(in srgb, var(--acc-fort) 88%, #fff), var(--acc-fort)); color: var(--sur-btn); }
.cv-tg .cv-s:first-child { border-radius: var(--r-md) 0 0 var(--r-md); }
.cv-tg .cv-s:last-child { border-radius: 0 var(--r-md) var(--r-md) 0; }
.cv-tg { --rang: 3; }
.cv-tg .cv-nom, .cv-tg .cv-s { grid-row: 2; }
.cv-autres .cv-nom, .cv-autres .cv-vide, .cv-autres .cv-s { grid-row: 3; }
.cv-vide { grid-column: 2 / 6; border: 1.5px dashed var(--ligne-forte); border-radius: var(--r-md); min-height: 64px; }
.cv-autres .cv-s { grid-column: 6; background: var(--surface-neutre); color: var(--ink); border-radius: var(--r-md); box-shadow: inset 0 0 0 1px var(--ligne-forte), var(--om-1); }
html.anim .couverture .cv-tg .cv-s { opacity: 0; translate: -12px 0; transition: opacity .5s var(--entree), translate .6s var(--entree); transition-delay: calc(.2s + var(--i) * .22s); }
html.anim .couverture.actif .cv-tg .cv-s { opacity: 1; translate: 0 0; }
html.anim .couverture .cv-tard { opacity: 0; scale: .92; transition: opacity .5s var(--entree), scale .6s var(--ressort); transition-delay: 1.6s; }
html.anim .couverture.actif .cv-tard { opacity: 1; scale: 1; }
.z5-chute { margin-top: var(--e8); max-width: 72ch; }
.z6-tete { max-width: 780px; display: flex; flex-direction: column; gap: var(--e5); }
.z6-appareil { margin: var(--e12) auto 0; max-width: 1000px; }
.z6-chute { margin-top: var(--e10); max-width: 72ch; }
.z8-tete { max-width: 800px; display: flex; flex-direction: column; gap: var(--e5); }
.constellation {
  position: relative; margin-top: var(--e12);
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr) minmax(0, 1fr);
  grid-template-rows: auto auto; gap: var(--e10) var(--e8); align-items: center;
}
.cst-fils { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.cst-fils path { fill: none; stroke: var(--acc); stroke-width: 1.5; stroke-dasharray: 4 6; opacity: .55; vector-effect: non-scaling-stroke; }
.cst-noyau { grid-column: 2; grid-row: 1 / 3; position: relative; z-index: 1; }
.cst-ecran { border-radius: var(--r-xl); }
.cst-ecran .e-page { padding: 20px; gap: 16px; }
.sat { position: relative; z-index: 1; display: flex; flex-direction: column; gap: var(--e2); padding: var(--e3); border-radius: var(--r-xl); background: var(--verre); box-shadow: var(--verre-bord), var(--om-2); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); }
.sat-1 { grid-column: 1; grid-row: 1; }
.sat-2 { grid-column: 3; grid-row: 1; }
.sat-3 { grid-column: 1; grid-row: 2; }
.sat-4 { grid-column: 3; grid-row: 2; }
.sat-vignette { border-radius: var(--r-md); box-shadow: 0 0 0 1px rgba(41,43,49,.07), 0 16px 34px -18px rgba(58,50,99,.4); }
.sat-vignette .e-page { padding: 10px; gap: 6px; }
.sat-corps { display: flex; flex-direction: column; gap: var(--e2); padding: var(--e3) var(--e3) var(--e2); }
.sat-ico { width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; background: var(--acc-voile); color: var(--acc-fort); font-size: 18px; }
.sat h3 { font-size: var(--t-corps); font-weight: 650; letter-spacing: -.015em; }
.sat p { font-size: var(--t-donnee); line-height: 1.6; color: var(--ink-2); }
.sat-lit { font-size: var(--t-label); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--acc-fort); }
html.anim .constellation .cst-fils path { stroke-dashoffset: 400; stroke-dasharray: 400; transition: stroke-dashoffset 1.2s cubic-bezier(.33,1,.68,1) .5s; }
html.anim .constellation.actif .cst-fils path { stroke-dashoffset: 0; stroke-dasharray: 4 6; transition: stroke-dashoffset 1.2s cubic-bezier(.33,1,.68,1) .5s, stroke-dasharray 0s linear 1.7s; }
html.anim .constellation .sat { opacity: 0; scale: .94; transition: opacity .7s var(--entree), scale .7s var(--entree); transition-delay: calc(1.1s + var(--i) * .12s); }
html.anim .constellation.actif .sat { opacity: 1; scale: 1; }
.z8-chute { margin-top: var(--e10); max-width: 72ch; }
.objections { margin-top: var(--e10); counter-reset: obj; }
.objection {
  counter-increment: obj;
  display: grid; grid-template-columns: 64px minmax(0, .9fr) minmax(0, 1.25fr); gap: var(--e4) var(--e10);
  padding: var(--e8) 0; border-top: 1px solid var(--ligne);
}
.objection::before { content: counter(obj, decimal-leading-zero); font-size: var(--t-label); font-weight: 700; letter-spacing: .16em; color: var(--acc-fort); padding-top: .55em; font-variant-numeric: tabular-nums; }
.obj-q { font-size: clamp(1.25rem, 1.05rem + .8vw, 1.65rem); font-weight: 600; letter-spacing: -.03em; line-height: 1.25; }
.z10 { position: relative; overflow: clip; }
.z10 > .contenu { position: relative; z-index: 2; }
.z10-aurore .a1 { left: -10vmax; top: auto; bottom: -34vmax; }
.z10-aurore .a2 { right: -16vmax; top: -30vmax; bottom: auto; }
.z10-grille { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, .8fr); gap: var(--e10) var(--e16); align-items: center; }
.z10-principal { display: flex; flex-direction: column; gap: var(--e6); align-items: flex-start; }
.z10 .titre-sect { font-size: clamp(2.3rem, 1.5rem + 3vw, 3.9rem); max-width: 14ch; }
.z10 .lead { color: var(--ink-2); }
.z10-24h { padding: var(--e8); border-radius: var(--r-xl); display: flex; flex-direction: column; gap: var(--e4); }
@media (min-width: 1041px) and (max-width: 1279px) {
  .bulle-g { left: calc(8px - clamp(32px, 5vw, 72px)); top: -52px; }
  .bulle-d { right: calc(12px - var(--gouttiere)); }
}
@media (min-width: 981px) and (orientation: portrait) {
  html.anim .etape:not(.actif) { opacity: 1; }
}
@media (min-width: 981px) and (max-height: 670px) {
  .scrolly-colle { top: 82px; gap: var(--e3); }
}
@media (max-width: 1040px) {
  .hero-grille { grid-template-columns: minmax(0, 1fr); }
  .hero .titre-hero { max-width: 16ch; }
  .hero-appareil { transform: none; margin: 0 auto; }
  .hero-scene:hover .hero-appareil { transform: none; }
  .bulle { animation: none; }
  .constellation { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .cst-noyau { grid-column: 1 / -1; grid-row: 1; width: 100%; max-width: 760px; justify-self: center; }
  .sat-1, .sat-2, .sat-3, .sat-4 { grid-column: auto; grid-row: auto; }
  .cst-fils { display: none; }
}
@media (min-width: 641px) and (max-width: 1040px) {
  .hero-scene { max-width: 640px; margin-inline: auto; padding: 0; perspective: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--e3); }
  .hero-appareil { grid-column: 1 / -1; order: -1; margin: 0 0 var(--e2); max-width: none; }
  .bulle { position: relative; inset: auto; width: auto; }
  .constellation { align-items: stretch; }
  .sat { display: grid; grid-row: span 2; grid-template-rows: subgrid; row-gap: var(--e2); }
  .sat-1, .sat-2, .sat-3, .sat-4 { grid-row: span 2; }
  .sat-vignette { align-self: start; }
}
@media (max-width: 980px) {
  [data-page="accueil"] main { overflow-x: clip; }
  .z1-tete, .z1-suite, .z2-chute, .z10-grille, .z7-grille { grid-template-columns: minmax(0, 1fr); }
  .z2-colonnes, .z4-duo { grid-template-columns: minmax(0, 1fr); }
  html.anim .z2-colonnes .col-v, html.anim .z2-colonnes .col-h { translate: 0 30px; }
  .scrolly { grid-template-columns: minmax(0, 1fr); }
  .scrolly-colle { grid-column: 1; grid-row: auto; position: static; }
  html.scrolly-clones .scrolly-ecrans { display: none; }
  html.scrolly-clones .etape-ecran { display: block; margin-top: var(--e5); position: relative; }
  html.scrolly-clones .etape-ecran .sc-ecran { position: relative; inset: auto; opacity: 1; translate: 0 0; scale: 1; }
  html.scrolly-clones .etape.actif .etape-ico { background: var(--carte); color: var(--acc-fort); box-shadow: var(--om-1); }
  .etape { min-height: 0; }
  html.anim .etape:not(.actif) { opacity: 1; }
  .z7-sans { max-width: none; }
  .z4-ecran { min-height: 0; }
  .objection { grid-template-columns: 44px minmax(0, 1fr); }
  .objection .texte { grid-column: 2; }
  .z1-textes, .z2-chute > div, .objection .texte { max-width: var(--lecture); }
}
@media (min-width: 641px) and (max-width: 980px) {
  .z2-colonnes, .z7-grille { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  html.anim .z2-colonnes .col-v { translate: 12% 0; }
  html.anim .z2-colonnes .col-h { translate: -12% 0; }
  .col { padding: var(--e6); }
  .z7-grille { gap: var(--e8); }
  .z7-sans { max-width: 46ch; }
}
@media (max-width: 900px) {
  .couverture { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); padding: var(--e5); column-gap: var(--e3); }
  .cv-phases { display: none; }
  .cv-voie { display: flex; flex-direction: column; gap: 4px; }
  .cv-tg { grid-column: 1; grid-row: 1; }
  .cv-autres { grid-column: 2; grid-row: 1; }
  .cv-segments { display: flex; flex-direction: column; gap: 4px; }
  .cv-nom { min-height: 46px; }
  .cv-tg .cv-nom { font-size: 1rem; gap: var(--e2); }
  .cv-sceau { width: 28px; height: 28px; border-radius: 9px; }
  .cv-sceau .logo-t { width: 15px; height: 15px; }
  .cv-tg .cv-s, .cv-tg .cv-s:first-child, .cv-tg .cv-s:last-child { border-radius: var(--r-sm); min-height: 58px; }
  .cv-autres .cv-segments { flex: 1; }
  .cv-vide { flex: 1; min-height: calc(4 * 58px + 3 * 4px); }
  .cv-autres .cv-s { min-height: 58px; }
}
@media (max-width: 760px) {
  .frise74-traits { gap: 2px; height: 48px; }
  .frise74-barre { height: 64px; }
  .fb { padding: 0 var(--e3); }
  .fb-n { font-size: 1.5rem; }
  .fb-lb { font-size: var(--t-label); letter-spacing: .04em; }
  .frise74 { padding: var(--e5); }
}
@media (max-width: 385px) {
  .cv-nom { min-height: 64px; align-items: flex-end; }
  .cv-tg .cv-nom { flex-direction: column; justify-content: flex-end; align-items: flex-start; gap: 6px; }
}
@media (max-width: 640px) {
  .hero-scene { display: grid; grid-template-columns: minmax(0, 1fr); padding: 0; perspective: 1400px; }
  .hero-appareil,
  .hero-scene:hover .hero-appareil { grid-area: 2 / 1; margin: 0 6px 0 0; transform: rotateY(-7deg) rotateX(3deg) rotateZ(.4deg); }
  .hero-appareil { transform-style: flat; }
  .hero-appareil .ecran { min-height: 0; overflow: hidden; -webkit-mask-image: linear-gradient(#000 calc(100% - 36px), transparent); mask-image: linear-gradient(#000 calc(100% - 36px), transparent); }
  .hero-appareil .e-page { padding: 12px 12px 0; }
  .hero-appareil .e-carte { padding: 12px 12px 30px; gap: 8px; }
  .hero-appareil .e-centre { display: none; }
  .hero-appareil .e-tete .e-sous { max-width: 42ch; }
  .hero-appareil .e-entre { flex-direction: column; align-items: flex-start; }
  .hero-appareil .e-grille-4 { margin-top: 4px; }
  .hero-appareil .e-sortie { margin-top: 14px; padding: 12px; flex-direction: row; flex-wrap: wrap; justify-content: center; align-items: center; column-gap: 8px; row-gap: 5px; }
  .hero-appareil .e-sortie > .e-sous { flex-basis: 100%; }
  .bulle { position: relative; inset: auto; z-index: 3; margin: 0; display: grid; grid-template-columns: 30px minmax(0, 1fr); column-gap: 10px; row-gap: 2px; align-items: start; padding: 10px 12px; }
  .bulle-ico { grid-row: 1 / span 2; margin-bottom: 0; }
  .bulle > strong, .bulle > span:last-child { grid-column: 2; }
  .bulle > span:last-child, .hero-appareil .e-tete .e-sous, .hero-appareil .e-sortie > .e-sous { text-wrap: pretty; }
  .hero-scene .insecable-tel { white-space: nowrap; }
  .bulle:hover { scale: none; }
  .bulle-g { grid-area: 1 / 1; width: 88%; margin: 0 0 -8px -4px; }
  .bulle-d, .bulle-b { align-items: center; }
  .bulle-d .bulle-ico, .bulle-b .bulle-ico { grid-row: auto; }
  .bulle-d > span:last-child, .bulle-b > span:last-child { grid-column: 1 / -1; }
  .bulle-d { grid-area: 2 / 1; align-self: start; justify-self: end; width: calc(50% + var(--gouttiere) + 2px); min-height: 128px; align-content: center; margin: 217px calc(4px - var(--gouttiere)) 0 0; }
  .bulle-b { grid-area: 3 / 1; justify-self: end; width: 96%; margin: -18px -4px 0 0; }
  .constellation { grid-template-columns: minmax(0, 1fr); }
  .e-grille-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .col { padding: var(--e6); }
  .col-courbe { height: 110px; }
  .z2-lueur, .z7-lueur {
    background:
      radial-gradient(420px 360px at 20% 0%, color-mix(in srgb, var(--lueur) 34%, transparent), transparent 70%),
      radial-gradient(360px 300px at 95% 100%, color-mix(in srgb, var(--g2) 18%, transparent), transparent 70%);
  }
  .objection { grid-template-columns: minmax(0, 1fr); }
  .objection::before { padding-top: 0; }
  .objection .texte { grid-column: auto; }
  .z4-ecran { min-height: 0; }
  .e-rail { display: none; }
  .e-coque { grid-template-columns: minmax(0, 1fr); }
  .frise74-barre { height: 68px; }
  .fb { flex-direction: column; align-items: flex-start; justify-content: center; gap: 3px; padding: 0 var(--e2) 0 var(--e3); }
  .fb-n { line-height: 1; }
  .fb-lb { letter-spacing: .02em; line-height: 1.15; }
  .etape { grid-template-columns: 40px minmax(0, 1fr); column-gap: var(--e3); row-gap: 0; align-items: center; }
  .etape > div { display: contents; }
  .etape-ico { grid-row: 1 / span 2; width: 40px; height: 40px; border-radius: 12px; font-size: 19px; align-self: center; }
  .etape-n { margin-bottom: 2px; align-self: end; }
  .etape-t { margin-bottom: 0; align-self: start; }
  .etape p, html.scrolly-clones .etape-ecran { grid-column: 1 / -1; }
  .etape p { margin-top: var(--e3); }
  .z3 .e-voyant, .z4 .e-voyant { flex-wrap: wrap; row-gap: 10px; }
  .z3 .e-voyant > .e-droite, .z4 .e-voyant > .e-droite { flex: 1 0 100%; flex-direction: row; align-items: baseline; gap: 8px; text-align: left; padding-top: 10px; border-top: 1px solid var(--bord); }
  .z3 .e-voyant > .e-droite > .e-lb, .z4 .e-voyant > .e-droite > .e-lb { margin-right: auto; }
  .z3 .e-table .e-tr { grid-template-columns: 76px minmax(0, 1fr) 58px; }
  .z3 .e-table .e-tr > :first-child { display: none; }
  .z6 .e-signal { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 14px; row-gap: 3px; align-items: center; padding: 14px; }
  .z6 .e-signal > .e-anneau-hote { grid-row: 1 / span 2; }
  .z6 .e-signal > .e-pile { display: contents; }
  .z6 .e-signal .e-lb { align-self: end; }
  .z6 .e-signal .e-grand { align-self: start; }
  .z6 .e-signal .e-sous { grid-column: 1 / -1; }
  .z6 .e-signal .e-grand + .e-sous { margin-top: 8px; }
  .z8 .cst-ecran .e-sans-casse { flex-wrap: wrap; }
  .z8 .cst-ecran .e-sans-casse > .e-pile { flex-basis: 100%; }
}
@media (max-width: 480px) {
  .hero .actions, .z10 .actions { align-self: stretch; }
  .hero .actions .btn, .z10 .actions .btn { flex: 1 1 auto; }
  .bande-preuve p { flex-direction: column; gap: var(--e1); }
  .bande-preuve p > span { text-wrap: balance; }
  .frise74-tete .etiquette { text-wrap: balance; }
}
@media (max-width: 400px) {
  .z4-ecran .e-carte > .e-rangee > .e-btn { flex: 1 1 100%; white-space: normal; height: auto; min-height: 30px; padding-block: 6px; line-height: 1.3; text-align: center; }
}
@media (max-width: 385px) {
  .hero-appareil .e-sortie { margin-top: 20px; }
}
@media (max-width: 380px) {
  .frise74 { padding: var(--e4) var(--e3); }
  .fb-lb { font-size: 11px; letter-spacing: 0; }
  .z3 .e-verdict, .z4 .e-verdict { font-size: 19px; }
  .z3 .e-table .e-pilule i { display: none; }
  .z3 .e-table .e-tr { grid-template-columns: 66px minmax(0, 1fr) 50px; gap: 6px; padding-inline: 8px; }
  .z3 .e-table .e-th { letter-spacing: .02em; }
}
@media (max-width: 360px) {
  .hero-appareil .e-entete { padding: 0 12px; gap: 8px; }
  .hero-appareil .e-entete .e-sous { white-space: nowrap; }
  .hero-appareil .e-entete .e-btn i { display: none; }
}
@media (max-width: 340px) {
  .frise74 { padding: var(--e4) var(--e2); }
  .fb { padding: 0 var(--e2); }
}
@media (orientation: landscape) and (max-height: 500px) and (max-width: 980px) {
  .hero { padding: 72px 0 40px; }
  .hero-texte { gap: var(--e3); }
  .hero .titre-hero { font-size: clamp(2rem, 10vh, 2.75rem); max-width: 30ch; text-wrap: balance; }
  .hero .lead { max-width: 72ch; }
  .hero .actions { margin-top: 0; }
  .etape { padding: var(--e6) 0; }
  .col-courbe { height: 110px; }
  .z10 .titre-sect { font-size: clamp(2rem, 10vh, 2.6rem); max-width: 24ch; text-wrap: balance; }
}
.page-hero { position: relative; overflow: clip; padding: clamp(128px, 15vh, 168px) 0 clamp(48px, 6vw, 80px); }
.page-hero > .contenu { position: relative; z-index: 2; }
.coiffe::before { content: ""; position: absolute; inset: auto 0 0 0; height: 45%; z-index: 2; background: linear-gradient(to bottom, transparent, var(--apres, var(--soutenu))); }
.page-hero-contenu { display: flex; flex-direction: column; gap: var(--e6); max-width: 900px; }
.page-hero .titre-hero { font-size: clamp(2.4rem, 1.4rem + 3.8vw, 4.4rem); max-width: 18ch; }
.page-hero .lead { max-width: 62ch; }
.bloc-tete-zone { padding-bottom: var(--e8); }
.bloc-tete-zone + .zone { padding-top: var(--e8); }
.bloc-tete { display: flex; flex-direction: column; gap: var(--e4); max-width: 780px; }
.bloc-tete .etiquette { color: var(--acc-fort); }
.fond-soutenu .bloc-tete .etiquette { color: var(--ink-2); }
.bloc-tete-nuit .titre-sect { color: #fff; }
.fonctions { display: flex; flex-direction: column; gap: clamp(56px, 8vw, 104px); }
.fonction { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: var(--e8) clamp(32px, 5vw, 72px); align-items: center; }
.fonction.inverse { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); }
.fonction.inverse .fonction-texte { grid-column: 2; grid-row: 1; }
.fonction.inverse .fonction-visuel { grid-column: 1; grid-row: 1; }
.fonction-texte { display: flex; flex-direction: column; gap: var(--e4); }
.fonction-texte .titre-3 { font-size: clamp(1.45rem, 1.15rem + 1vw, 2rem); letter-spacing: -.035em; line-height: 1.15; }
.fonction-ico {
  width: 48px; height: 48px; border-radius: 14px; display: grid; place-items: center; font-size: 22px;
  background: linear-gradient(180deg, var(--btn1), var(--btn2)); color: var(--sur-btn); box-shadow: var(--om-btn);
}
.fonction-visuel { min-width: 0; }
.ecran-carte .e-page { padding: 16px; }
.ecran-verrou { min-height: 440px; display: grid; }
.e-note-bas { max-width: 44ch; text-transform: none; letter-spacing: 0; font-weight: 450; font-size: 11px; }
.e-petit-lb .e-lb { font-size: 9.5px; letter-spacing: .08em; text-transform: none; }
.e-perf { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.e-perf .e-val { font-size: 18px; }
.e-courbe { width: 100%; height: 150px; }
.e-courbe .e-depart { stroke: var(--ink-4); stroke-width: 1; stroke-dasharray: 3 5; vector-effect: non-scaling-stroke; }
.e-courbe .e-trace { fill: none; stroke: var(--perte); stroke-width: 2; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
html.anim [data-dec] .e-courbe .e-trace { clip-path: inset(-40px 100% -40px -40px) view-box; transition: clip-path 1.8s cubic-bezier(.45,0,.2,1) .4s; }
html.anim [data-dec].actif .e-courbe .e-trace { clip-path: inset(-40px -40px -40px -40px) view-box; }
.e-depart-lb { align-self: flex-end; text-transform: none; letter-spacing: 0; margin-top: -6px; }
.titre-sect-moyen { font-size: clamp(1.7rem, 1.2rem + 1.8vw, 2.6rem); max-width: 22ch; }
.tuiles { margin-top: var(--e10); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--e4); }
.tuiles-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.tuile {
  position: relative; padding: var(--e6); border-radius: var(--r-lg);
  background: var(--carte); box-shadow: var(--om-1);
  display: flex; flex-direction: column; gap: var(--e3);
  transition: translate .35s var(--entree), box-shadow .35s var(--doux);
}
.tuile:hover { translate: 0 -3px; box-shadow: var(--om-2); }
.tuile h4, .principe h3, .a-venir-item h3 { font-size: 1.0625rem; font-weight: 650; letter-spacing: -.02em; line-height: 1.3; }
.tuile p, .principe p, .a-venir-item p { font-size: var(--t-donnee); line-height: 1.65; color: var(--ink-2); }
.tuile-ico { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; font-size: 20px; background: var(--acc-voile); color: var(--acc-fort); }
.tuiles .tuile:first-child { grid-column: span 2; }
.tuiles-4 .tuile:first-child { grid-column: auto; }
.principes { margin-top: var(--e10); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--e8) var(--e6); }
.principe { display: flex; flex-direction: column; gap: var(--e3); padding-top: var(--e5); border-top: 2px solid var(--acc-trait); }
.a-venir { overflow: clip; }
.a-venir > .contenu { position: relative; }
.a-venir .lead { color: var(--ink-nuit); }
.a-venir-grille { margin-top: var(--e10); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--e4); }
.a-venir-item {
  position: relative; padding: var(--e6); border-radius: var(--r-lg);
  background: linear-gradient(170deg, rgba(255,255,255,.07), rgba(255,255,255,.02));
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.10);
  display: flex; flex-direction: column; gap: var(--e3);
}
.a-venir-item h3 { color: #fff; }
.a-venir-item p { color: var(--ink-nuit); }
.a-venir-item .tuile-ico { background: rgba(192,166,255,.14); color: var(--lueur); }
.bande-finale { position: relative; overflow: clip; }
.bande-finale > .contenu { position: relative; z-index: 2; }
.bande-finale-contenu { display: flex; flex-direction: column; align-items: center; text-align: center; gap: var(--e6); }
.bande-finale .titre-sect { font-size: clamp(2.3rem, 1.5rem + 3vw, 3.9rem); max-width: 18ch; }
.bande-finale .lead { max-width: 60ch; }
.bande-finale .actions { justify-content: center; }
@media (max-width: 980px) {
  .fonction, .fonction.inverse { grid-template-columns: minmax(0, 1fr); }
  .fonction.inverse .fonction-texte, .fonction.inverse .fonction-visuel { grid-column: 1; grid-row: auto; }
  .tuiles, .tuiles-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tuiles .tuile:first-child { grid-column: span 2; }
  .principes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .tuiles, .tuiles-4, .principes, .a-venir-grille { grid-template-columns: minmax(0, 1fr); }
  .tuiles .tuile:first-child { grid-column: auto; }
  .ecran-verrou { min-height: 0; }
}
.contenu.page-hero-contenu, .contenu.bloc-tete { max-width: calc(var(--large) + 2 * var(--gouttiere)); }
.bloc-tete .lead { max-width: 60ch; }
.page-hero { padding-bottom: clamp(28px, 3.5vw, 48px); }
.bloc-tete-zone { padding-top: clamp(40px, 4.5vw, 64px); }
.retour {
  align-self: flex-start; display: inline-flex; align-items: center; gap: var(--e2);
  height: 36px; padding: 0 var(--e4) 0 var(--e3); border-radius: var(--pill);
  background: var(--verre); box-shadow: var(--verre-bord), var(--om-1); backdrop-filter: blur(10px);
  font-size: var(--t-donnee); font-weight: 600; color: var(--ink-2); text-decoration: none;
  transition: color .2s var(--doux), background-color .2s var(--doux);
}
.retour i { font-size: 15px; transition: translate .35s var(--ressort); }
.retour:hover { color: var(--ink); background: var(--verre-fort); }
.retour:hover i { translate: -3px 0; }
.fil-seance { position: relative; display: flex; justify-content: space-between; align-items: center; width: min(100%, 420px); margin-top: var(--e2); }
.fil-seance::before {
  content: ""; position: absolute; left: 22px; right: 22px; top: 50%; height: 2px; margin-top: -1px; border-radius: 2px;
  background: linear-gradient(90deg, var(--acc), var(--g2), var(--acc-fort)); opacity: .55; transform-origin: 0 50%;
}
.fil-seance a {
  position: relative; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center;
  font-size: 19px; color: var(--acc-fort); text-decoration: none;
  background: var(--carte); box-shadow: var(--om-1), inset 0 0 0 1px var(--trait);
  transition: translate .35s var(--ressort), background-color .25s var(--doux), color .25s var(--doux), box-shadow .25s var(--doux);
}
.fil-seance a:hover, .fil-seance a:focus-visible { translate: 0 -3px; background: linear-gradient(180deg, var(--btn1), var(--btn2)); color: var(--sur-btn); box-shadow: var(--om-btn); }
.fil-seance a:nth-child(2) { --n: 1; }
.fil-seance a:nth-child(3) { --n: 2; }
.fil-seance a:nth-child(4) { --n: 3; }
.fil-seance a:nth-child(5) { --n: 4; }
html.anim .fil-seance::before { scale: 0 1; transition: scale 1.3s var(--entree) .45s; }
html.anim .fil-seance.vu::before { scale: 1 1; }
html.anim .fil-seance:not(.vu) a { opacity: 0; }
html.anim .fil-seance.vu a { animation: fil-pop .6s var(--ressort) both; animation-delay: calc(.5s + var(--n, 0) * .14s); }
@keyframes fil-pop { from { opacity: 0; scale: .5; } to { opacity: 1; scale: 1; } }
.tete-large { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: var(--e4) clamp(32px, 5vw, 80px); align-items: center; margin-bottom: clamp(32px, 4.5vw, 60px); }
.tete-large .titre-sect { max-width: 14ch; }
.tete-large .lead { max-width: 60ch; }
.tete-large-texte { display: flex; flex-direction: column; gap: var(--e4); }
.tete-large-texte .texte { max-width: 60ch; }
.ecran-large { font-size: 13px; }
.tt { margin-top: var(--e10); display: flex; flex-direction: column; gap: var(--e3); }
.tt-tete, .tt-ligne { display: grid; grid-template-columns: minmax(0, 1fr) 40px minmax(0, 1fr); align-items: center; gap: var(--e4); }
.tt-tete { padding: 0 var(--e6); font-size: var(--t-label); font-weight: 700; letter-spacing: var(--suivi-label); color: var(--ink-nuit-2); }
.tt-tete .tt-oui { grid-column: 3; color: var(--gain-nuit); }
.tt-ligne {
  padding: var(--e5) var(--e6); border-radius: var(--r-lg);
  background: linear-gradient(170deg, rgba(255,255,255,.075), rgba(255,255,255,.02));
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.10);
}
.tt-ligne .tt-non, .tt-ligne .tt-oui { position: relative; display: block; padding-left: 32px; font-size: var(--t-corps); line-height: 1.5; }
.tt-ligne .tt-non { color: var(--ink-nuit); }
.tt-ligne .tt-oui { color: #fff; font-weight: 550; }
.tt-ligne .tt-non > i, .tt-ligne .tt-oui > i { position: absolute; left: 0; top: 2px; font-size: 20px; }
.tt-ligne .tt-non > i { color: var(--ink-nuit-2); }
.tt-ligne .tt-oui > i { color: var(--gain-nuit); }
.tt-fl { justify-self: center; font-size: 20px; color: var(--lueur); }
.tt-barre {
  background: linear-gradient(currentColor, currentColor) no-repeat 0 58% / 100% 1.5px;
  -webkit-box-decoration-break: clone; box-decoration-break: clone;
}
html.anim .tt .tt-ligne { opacity: 0; translate: 0 14px; transition: opacity .6s var(--entree), translate .7s var(--entree); transition-delay: calc(var(--i, 0) * .22s); }
html.anim .tt .tt-barre { background-size: 0 1.5px; transition: background-size .7s var(--doux) calc(.45s + var(--i, 0) * .22s); }
html.anim .tt .tt-fl, html.anim .tt .tt-ligne .tt-oui { opacity: 0; translate: -10px 0; transition: opacity .5s var(--entree), translate .6s var(--entree); transition-delay: calc(.95s + var(--i, 0) * .22s); }
html.anim .tt.actif .tt-ligne { opacity: 1; translate: 0 0; }
html.anim .tt.actif .tt-barre { background-size: 100% 1.5px; }
html.anim .tt.actif .tt-fl, html.anim .tt.actif .tt-ligne .tt-oui { opacity: 1; translate: 0 0; }
.relance {
  position: relative; overflow: hidden; margin-top: clamp(40px, 5vw, 72px);
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--e5) var(--e8);
  padding: var(--e6) var(--e8); border-radius: var(--r-xl);
  background: var(--carte); box-shadow: var(--om-1), inset 0 0 0 1px var(--trait);
}
.relance::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(55% 160% at 0% 50%, color-mix(in srgb, var(--acc) 13%, transparent), transparent 70%);
}
.relance p { position: relative; flex: 1 1 360px; max-width: 64ch; font-size: clamp(1rem, .95rem + .3vw, 1.125rem); line-height: 1.55; color: var(--ink); text-wrap: pretty; }
.relance .btn { position: relative; flex: none; }
.relance-nuit { background: linear-gradient(170deg, rgba(255,255,255,.085), rgba(255,255,255,.03)); box-shadow: inset 0 0 0 1px rgba(255,255,255,.12); }
.relance-nuit::before { background: radial-gradient(55% 160% at 0% 50%, color-mix(in srgb, var(--lueur) 22%, transparent), transparent 70%); }
.relance-nuit p { color: #fff; }
.firmes { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 14px; align-items: start; }
.firmes .ecran-carte .e-page { padding: 10px; }
.firme .e-carte { gap: 14px; padding: 18px; }
.firmes .firme .e-carte { gap: 12px; padding: 14px; }
.firme-ico { width: 38px; height: 38px; flex: none; border-radius: 11px; display: grid; place-items: center; font-size: 19px; background: var(--acc-voile); color: var(--acc); box-shadow: inset 0 0 0 1px var(--acc-trait); }
.firme-pnl { height: 26px; padding: 0 11px; font-size: 12.5px; font-weight: 700; font-variant-numeric: tabular-nums; }
.firme-lim { display: flex; flex-direction: column; gap: 6px; padding-top: 12px; border-top: 1px solid var(--bord); }
.firme-lim-tete { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 4px 10px; }
.firme-val { font-size: 12px; color: var(--ink-3); }
.firme-val b { font-size: 15px; font-weight: 700; letter-spacing: -.02em; color: var(--ink); font-variant-numeric: tabular-nums; }
.firme-jauge { height: 8px; }
.firme-jauge-alerte > i { background: var(--alerte); }
.firme-jauge-gain > i { background: var(--gain); }
.firme-chute { color: var(--ink); font-weight: 600; }
html.anim [data-dec] .firme-jauge > i { scale: 0 1; transition: scale 1.2s var(--entree) .35s; }
html.anim [data-dec] .firme-lim:nth-of-type(3) .firme-jauge > i { transition-delay: .55s; }
html.anim [data-dec] .firme-lim:nth-of-type(4) .firme-jauge > i { transition-delay: .75s; }
html.anim [data-dec] .firme-lim:nth-of-type(5) .firme-jauge > i { transition-delay: .95s; }
html.anim [data-dec] .firme + .firme .firme-jauge > i { transition-delay: .5s; }
html.anim [data-dec] .firme + .firme .firme-lim:nth-of-type(3) .firme-jauge > i { transition-delay: .7s; }
html.anim [data-dec] .firme + .firme .firme-lim:nth-of-type(4) .firme-jauge > i { transition-delay: .9s; }
html.anim [data-dec] .firme + .firme .firme-lim:nth-of-type(5) .firme-jauge > i { transition-delay: 1.1s; }
html.anim [data-dec].actif .firme-jauge > i { scale: 1 1; }
.verrou-grille { margin-top: var(--e10); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--e10) clamp(40px, 6vw, 96px); align-items: center; }
.verrou-ecran { min-width: 0; }
.verrou-zone .ecran-verrou { min-height: 500px; }
.verrou-zone .ecran-verrou .e-anneau { transition: --p .9s linear; }
.verrou-textes { display: flex; flex-direction: column; gap: var(--e8); counter-reset: marche; }
.verrou-textes .texte { position: relative; padding-left: 60px; }
.verrou-textes .texte::before {
  counter-increment: marche; content: counter(marche, decimal-leading-zero);
  position: absolute; left: 0; top: -.15em; width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center;
  font-size: 13px; font-weight: 700; color: var(--lueur);
  background: rgba(192,166,255,.12); box-shadow: inset 0 0 0 1px rgba(192,166,255,.26);
}
.verrou-textes .texte:not(:last-child)::after {
  content: ""; position: absolute; left: 20px; top: 46px; bottom: calc(-1 * var(--e8) + 4px); width: 1px;
  background: linear-gradient(rgba(192,166,255,.30), rgba(192,166,255,.06));
}
.duo-jour { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(32px, 5vw, 72px); row-gap: 0; }
.jour-bloc { grid-row: span 3; display: grid; grid-template-rows: subgrid; row-gap: var(--e4); align-content: start; min-width: 0; }
.jour-bloc .titre-3 { font-size: clamp(1.45rem, 1.15rem + 1vw, 2rem); letter-spacing: -.035em; line-height: 1.15; }
.jour-bloc > .ecran { align-self: start; margin-top: var(--e4); }
.compteurs .e-page { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.compteur, .cj { border-radius: 14px; background: var(--grad-carte); box-shadow: var(--om-2); }
:root[data-theme="nuit"] .compteur, :root[data-theme="nuit"] .cj { border: 1px solid var(--bord); }
.compteur { min-width: 0; padding: 14px; display: flex; flex-direction: column; gap: 6px; }
.compteur-val { font-size: 22px; font-weight: 700; letter-spacing: -.035em; line-height: 1.1; font-variant-numeric: tabular-nums; }
.compteur .e-sous { font-size: 11.5px; }
.pips { display: flex; gap: 4px; margin: 2px 0; }
.pips i { flex: 1; height: 6px; border-radius: 999px; background: var(--surface-3); box-shadow: inset 0 0 0 1px var(--bord); transition: background-color .5s var(--entree) .3s; }
.pips i:nth-child(2) { transition-delay: .45s; }
.pips i.pris { background: var(--acc); box-shadow: none; }
.compteur-alerte { background: linear-gradient(176deg, var(--alerte-voile), transparent 70%), var(--grad-carte); box-shadow: var(--om-2), inset 0 0 0 1px var(--alerte-trait); }
.compteur-alerte .pips i.pris { background: var(--alerte); }
.compteur-alerte .pips i.dernier { background: transparent; box-shadow: inset 0 0 0 1.5px var(--perte); animation: pip-guet 1.8s ease-in-out infinite; }
@keyframes pip-guet { 50% { background: var(--perte-voile); } }
html.anim [data-dec]:not(.actif) .pips i.pris { background: var(--surface-3); }
.cj { display: flex; align-items: center; gap: 22px; padding: 18px; }
.cj-anneau { width: 132px; height: 132px; }
.cj-taux { font-size: 26px; font-weight: 700; letter-spacing: -.04em; line-height: 1; color: var(--gain); font-variant-numeric: tabular-nums; }
.cj-detail { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 12px; }
.cj-ligne { display: flex; align-items: center; gap: 12px; }
.cj-val { font-size: 18px; font-weight: 700; letter-spacing: -.03em; }
.cj-points { flex: none; width: 70px; display: flex; gap: 4px; }
.cj-points i { width: 13px; height: 13px; border-radius: 50%; }
.cj-points .v { background: var(--gain); }
.cj-points .h { background: var(--perte); }
.cj-points .r { box-shadow: inset 0 0 0 2px var(--ink-3); }
.cj-apart { padding-top: 12px; border-top: 1px dashed var(--bord-fort); }
.suite-cartes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--e4); width: min(100%, 880px); margin-top: var(--e2); }
.suite-carte {
  position: relative; display: flex; align-items: center; gap: var(--e4); padding: var(--e5) var(--e6); border-radius: var(--r-xl);
  background: var(--verre-fort); box-shadow: var(--verre-bord), var(--om-1); backdrop-filter: blur(14px);
  text-align: left; text-decoration: none; color: var(--ink);
  transition: translate .35s var(--ressort), box-shadow .3s var(--doux);
}
.suite-carte:hover { translate: 0 -3px; box-shadow: var(--verre-bord), var(--om-2); }
.suite-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.suite-txt b { font-size: 1.0625rem; font-weight: 650; letter-spacing: -.02em; }
.suite-txt span { font-size: var(--t-donnee); line-height: 1.55; color: var(--ink-2); }
.suite-fl { font-size: 18px; color: var(--acc-fort); transition: translate .35s var(--ressort); }
.suite-carte:hover .suite-fl { translate: 4px 0; }
@media (max-width: 980px) {
  .verrou-grille, .duo-jour { grid-template-columns: minmax(0, 1fr); }
  .duo-jour { row-gap: var(--e12); }
  .verrou-zone .ecran-verrou { min-height: 440px; }
}
@media (max-width: 860px) {
  .tete-large { grid-template-columns: minmax(0, 1fr); align-items: start; }
}
@media (max-width: 760px) {
  .tt-tete, .tt-ligne { grid-template-columns: minmax(0, 1fr); gap: var(--e3); }
  .tt-tete { padding: 0 var(--e5); }
  .tt-tete .tt-oui { grid-column: auto; }
  .tt-ligne { padding: var(--e5); }
  .tt-fl { justify-self: start; rotate: 90deg; margin-left: 1px; }
  .relance { padding: var(--e6); }
  .suite-cartes { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 560px) {
  .compteurs .e-page { grid-template-columns: minmax(0, 1fr); }
  .cj { flex-direction: column; align-items: flex-start; }
  .verrou-textes .texte { padding-left: 52px; }
}
.hero-pile { position: absolute; right: var(--gouttiere); top: 48%; translate: 0 -50%; width: 350px; display: none; }
@media (min-width: 1180px) { .hero-pile { display: block; } }
.hero-mini { position: relative; border-radius: 16px; }
.hero-mini .e-page { padding: 14px 16px; }
.hm-1 { width: 290px; margin-left: 46px; rotate: -3deg; }
.hm-2 { width: 340px; margin-top: -6px; rotate: 2deg; z-index: 2; }
.hm-3 { width: 300px; margin-left: 26px; margin-top: -4px; rotate: -1.5deg; }
.hm-ico { width: 38px; height: 38px; flex: none; border-radius: 11px; display: grid; place-items: center; font-size: 19px; }
.hm-ico-perte { background: var(--perte-voile); color: var(--perte); box-shadow: inset 0 0 0 1px var(--perte-trait); }
.hm-t { font-size: 13.5px; font-weight: 650; letter-spacing: -.01em; }
.hm-av { font-size: 12px; font-weight: 700; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.hm-decompte { font-size: 20px; font-weight: 700; letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
html.anim .hero-mini { animation: hm-flotte 8s ease-in-out infinite; }
html.anim .hm-2 { animation-delay: -2.7s; }
html.anim .hm-3 { animation-delay: -5.3s; }
@keyframes hm-flotte { 0%, 100% { translate: 0 0; } 50% { translate: 0 -8px; } }
@media (max-width: 640px) {
  .ecran-large .e-secondaire { display: none; }
}
.hm-ecart { padding: 12px; gap: 8px; }
.hm-somme { font-size: 18px; }
.hm-grand { font-size: 22px; font-weight: 650; letter-spacing: -.03em; line-height: 1.1; }
.ecran-perf .e-perf { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ecran-perf .e-courbe { height: 210px; }
@media (max-width: 760px) {
  .ecran-perf .e-perf { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ecran-perf .e-courbe { height: 150px; }
}
.ecart-grille { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: var(--e10) clamp(40px, 6vw, 96px); align-items: center; }
.ecart-carte { min-width: 0; }
.ecart-carte .e-somme { font-size: 30px; }
html.anim [data-dec] .e-partage-anime > i { width: 0; transition: width 1.4s var(--entree) .4s; }
html.anim [data-dec].actif .e-partage-anime > i { width: var(--l); }
.liste-num { display: flex; flex-direction: column; gap: var(--e8); counter-reset: point; }
.liste-num .texte { position: relative; padding-left: 60px; }
.liste-num .texte::before {
  counter-increment: point; content: counter(point, decimal-leading-zero);
  position: absolute; left: 0; top: -.15em; width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center;
  font-size: 13px; font-weight: 700; color: var(--acc-fort);
  background: var(--acc-voile); box-shadow: inset 0 0 0 1px var(--trait);
}
.liste-num .texte:not(:last-child)::after {
  content: ""; position: absolute; left: 20px; top: 46px; bottom: calc(-1 * var(--e8) + 4px); width: 1px;
  background: linear-gradient(var(--trait), transparent);
}
.creneaux-grille { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: var(--e10) clamp(40px, 6vw, 96px); align-items: center; }
.creneaux-texte { display: flex; flex-direction: column; gap: var(--e5); }
.creneaux-ecran { min-width: 0; }
.creneaux-ecran .e-page { gap: 10px; }
.revue .e-page { gap: 10px; }
.revue-q { display: flex; align-items: flex-start; gap: 14px; padding: 14px; border-radius: 14px; background: var(--grad-carte); box-shadow: var(--om-2); }
:root[data-theme="nuit"] .revue-q { border: 1px solid var(--bord); }
.revue-n {
  flex: none; width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center;
  font-size: 13px; font-weight: 700; color: var(--acc); background: var(--acc-voile); box-shadow: inset 0 0 0 1px var(--acc-trait);
}
.revue-t { font-size: 14px; font-weight: 650; letter-spacing: -.01em; line-height: 1.35; }
.garanties { margin-top: var(--e10); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--e4); }
.garantie {
  padding: var(--e6); border-radius: var(--r-lg); background: var(--carte); box-shadow: var(--om-1);
  display: flex; flex-direction: column; gap: var(--e4);
  transition: translate .35s var(--entree), box-shadow .35s var(--doux);
}
.garantie:hover { translate: 0 -3px; box-shadow: var(--om-2); }
.garantie p { font-size: var(--t-corps); line-height: 1.65; color: var(--ink-2); }
.garantie b { color: var(--ink); }
@media (max-width: 980px) {
  .ecart-grille, .creneaux-grille, .garanties { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 560px) {
  .liste-num .texte { padding-left: 52px; }
}
.onglets { position: absolute; right: calc(var(--gouttiere) + 24px); top: 50%; translate: 0 -46%; display: none; grid-template-columns: repeat(2, 116px); gap: 18px; rotate: -5deg; }
@media (min-width: 1180px) { .onglets { display: grid; } }
.onglet { width: 116px; height: 116px; border-radius: 30px; display: grid; place-items: center; font-size: 44px; }
.onglet.on { background: linear-gradient(160deg, var(--btn1), var(--btn2)); color: var(--sur-btn); box-shadow: var(--om-btn), 0 30px 60px -30px rgba(58,50,99,.6); }
html.anim .onglet { animation: hm-flotte 7s ease-in-out infinite; animation-delay: calc(var(--n, 0) * -1.7s); }
.calc .e-page { gap: 10px; }
.calc-champs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.calc-champ { position: relative; min-width: 0; border-radius: 12px; padding: 10px 12px; display: flex; flex-direction: column; gap: 3px; background: var(--surface); border: 1px solid var(--bord); }
.calc-champ b { font-size: 17px; font-weight: 680; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.calc-lien { position: absolute; top: 10px; right: 10px; font-size: 13px; color: var(--acc); }
.calc-saisie { background: var(--surface-pleine); border-color: var(--acc); box-shadow: 0 0 0 3px var(--acc-voile); }
.calc-saisie b::after { content: ""; display: inline-block; width: 1.5px; height: .95em; margin-left: 3px; vertical-align: -2px; background: var(--acc); animation: clignote 1.1s steps(1) infinite; }
@keyframes clignote { 50% { opacity: 0; } }
.calc-egal { display: grid; place-items: center; font-size: 18px; color: var(--ink-3); }
.calc-resultat {
  display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 12px;
  padding: 14px 16px; border-radius: 14px; background: var(--acc-voile); border: 1px solid var(--acc-trait);
}
.calc-resultat .e-lb { color: var(--ink-2); }
.calc-lot { font-size: 30px; font-weight: 700; letter-spacing: -.04em; line-height: 1; color: var(--acc-vif); font-variant-numeric: tabular-nums; }
.calc-explique { font-size: 12px; line-height: 1.6; color: var(--ink-2); }
.calc-explique b { color: var(--ink); font-weight: 650; }
.cal .e-page { gap: 8px; }
.cal-tete { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 4px; }
.cal-titre { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; }
.cal-titre i { font-size: 17px; color: var(--acc); }
.cal-titre b { font-weight: 650; }
.cal-ligne { display: grid; grid-template-columns: 44px 48px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 10px; background: var(--surface); border: 1px solid var(--bord); }
.cal-h { font-size: 13px; font-weight: 650; font-variant-numeric: tabular-nums; }
.cal-t { font-size: 12.5px; font-weight: 500; }
.cal-dev, .cal-imp { justify-self: start; }
.bientot-grille { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--e4); }
.bientot {
  display: flex; flex-direction: column; gap: var(--e4); padding: var(--e6); border-radius: var(--r-lg);
  background: var(--carte); box-shadow: var(--om-1);
}
.bientot-tete { display: flex; align-items: center; gap: var(--e3); }
.bientot-tete b { font-size: 1.125rem; font-weight: 650; letter-spacing: -.02em; }
.bientot p { font-size: var(--t-corps); line-height: 1.65; color: var(--ink-2); }
.tt-vj .tt-tete, .tt-vj .tt-ligne { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.tt-vj .tt-tete .tt-oui { grid-column: 1; }
.tt-vj .tt-tete .tt-non { color: var(--perte-nuit); }
.tt-vj .tt-ligne .tt-oui { font-weight: 500; }
.tt-vj .tt-ligne .tt-non > i { color: var(--perte-nuit); }
html.anim .tt-vj .tt-ligne .tt-oui { opacity: 1; translate: 0 0; }
html.anim .tt-vj .tt-barre { transition-delay: calc(.6s + var(--i, 0) * .22s); }
@media (max-width: 760px) {
  .bientot-grille { grid-template-columns: minmax(0, 1fr); }
  .tt-vj .tt-tete, .tt-vj .tt-ligne { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 420px) {
  .calc-champs { grid-template-columns: minmax(0, 1fr); }
  .cal-ligne { grid-template-columns: 40px auto minmax(0, 1fr); grid-template-areas: "h dev imp" "h t t"; row-gap: 4px; }
  .cal-h { grid-area: h; }
  .cal-dev { grid-area: dev; }
  .cal-imp { grid-area: imp; justify-self: end; }
  .cal-t { grid-area: t; }
}
.seul-mensuel { display: none; }
.prix-anime.seul-annuel { display: inline-block; }
[data-periode="mensuel"] .seul-annuel { display: none; }
[data-periode="mensuel"] .seul-mensuel { display: inline; }
[data-periode="mensuel"] .prix-anime.seul-mensuel { display: inline-block; }
html.anim .prix-anime { animation: prix-entre .5s var(--entree) both; }
@keyframes prix-entre { from { opacity: 0; translate: 0 .3em; } to { opacity: 1; translate: 0 0; } }
.tarifs-tete { align-items: center; text-align: center; }
.tarifs-titre { font-weight: 400; max-width: 24ch; }
.page-hero .tarifs-titre { max-width: 24ch; }
.tarifs-titre b { font-weight: 700; }
.tarifs-tete .lead { max-width: 58ch; }
.tarifs-garanties { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: var(--e2) var(--e6); }
.tarifs-garanties li { display: inline-flex; align-items: center; gap: var(--e2); font-size: var(--t-donnee); font-weight: 550; color: var(--ink-2); }
.tarifs-garanties i { font-size: 17px; color: var(--acc-fort); }
.periode { position: relative; display: inline-flex; padding: 5px; border-radius: var(--pill); background: var(--verre); box-shadow: var(--verre-bord), var(--om-1); backdrop-filter: blur(12px); }
.periode-btn {
  position: relative; z-index: 1; display: inline-flex; align-items: center; gap: var(--e2);
  height: 42px; padding: 0 var(--e5); border: 0; border-radius: var(--pill); background: transparent;
  font: inherit; font-size: var(--t-donnee); font-weight: 600; color: var(--ink-2); cursor: pointer;
  transition: color .25s var(--doux), background-color .25s var(--doux);
}
.periode-btn[aria-pressed="true"] { color: var(--ink); background: var(--carte); box-shadow: var(--om-1); }
.periode-btn:focus-visible { outline: 2px solid var(--acc); outline-offset: 2px; }
.periode-badge { display: inline-flex; align-items: center; height: 22px; padding: 0 8px; border-radius: var(--pill); background: var(--acc-voile); color: var(--acc-fort); font-size: 10.5px; font-weight: 700; letter-spacing: .08em; }
.periode-curseur { position: absolute; top: 5px; bottom: 5px; left: 0; width: var(--w, 0); translate: var(--x, 0) 0; border-radius: var(--pill); background: var(--carte); box-shadow: var(--om-1); opacity: 0; transition: translate .45s var(--entree), width .45s var(--entree); }
.periode.mesure .periode-curseur { opacity: 1; }
.periode.mesure .periode-btn[aria-pressed="true"] { background: transparent; box-shadow: none; }
.prix-grille { margin-top: var(--e8); width: min(100%, 1060px); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--e6); align-items: start; text-align: left; }
.prix-carte {
  position: relative; display: flex; flex-direction: column; gap: var(--e5);
  padding: clamp(24px, 3vw, 36px); border-radius: var(--r-2xl);
  background: var(--verre-fort); box-shadow: var(--verre-bord), var(--om-2); backdrop-filter: blur(16px);
}
.nom-prem, .nom-prem .mot-i {
  background: linear-gradient(110deg, var(--g1) 0%, var(--g2) 50%, var(--g3) 100%);
  -webkit-background-clip: text; background-clip: text;
  color: transparent; -webkit-text-fill-color: transparent;
}
.prix-premium {
  border: 1.5px solid transparent;
  background: linear-gradient(var(--carte), var(--carte)) padding-box, linear-gradient(140deg, var(--g1), var(--g2) 55%, var(--acc)) border-box;
  box-shadow: var(--om-3), 0 40px 90px -40px color-mix(in srgb, var(--acc) 55%, transparent);
}
.prix-badge {
  position: absolute; top: -14px; left: clamp(24px, 3vw, 36px); z-index: 4;   
  display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 12px; border-radius: var(--pill);
  background: var(--carte); color: var(--acc-fort); box-shadow: inset 0 0 0 1px var(--trait), var(--om-1);
  font-size: var(--t-label); font-weight: 700; letter-spacing: var(--suivi-label);
}
.prix-badge i { font-size: 13px; }
.prix-tete { display: flex; flex-direction: column; gap: 4px; }
.prix-nom { font-size: 1.5rem; font-weight: 650; letter-spacing: -.03em; line-height: 1.2; }
.prix-aide { font-size: var(--t-donnee); line-height: 1.55; color: var(--ink-2); }
.prix-aide2 { font-size: var(--t-donnee); line-height: 1.55; font-weight: 600; color: var(--ink); }
.prix-montant { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
.prix-val { font-size: clamp(2.75rem, 2rem + 2.4vw, 3.75rem); font-weight: 700; letter-spacing: -.05em; line-height: 1; font-variant-numeric: tabular-nums; }
.prix-barre { font-size: 1.25rem; font-weight: 500; color: var(--ink-3); text-decoration-thickness: 2px; }
.prix-periode { flex-basis: 100%; font-size: var(--t-donnee); color: var(--ink-2); }
.prix-btn { width: 100%; justify-content: center; }
.prix-note { margin-top: calc(-1 * var(--e2)); text-align: center; font-size: var(--t-label); color: var(--ink-2); }
.prix-groupe { padding-top: var(--e5); border-top: 1px solid var(--ligne); font-size: var(--t-label); font-weight: 700; letter-spacing: var(--suivi-label); color: var(--ink-2); }
.prix-liste { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.prix-liste li { display: grid; grid-template-columns: 20px minmax(0, 1fr); column-gap: 10px; font-size: var(--t-donnee); line-height: 1.5; color: var(--ink-2); }
.prix-liste li > b, .prix-liste li > span { grid-column: 2; }
.prix-liste li > i { font-size: 16px; margin-top: 2px; color: var(--ink-3); }
.prix-liste-plus li > i { color: var(--acc-fort); }
.prix-liste-plus li > b { font-weight: 650; color: var(--ink); }
html.anim .prix-liste li { opacity: 0; translate: -14px 0; transition: opacity .5s var(--entree), translate .6s var(--entree); transition-delay: var(--delai, 0ms); }
html.anim .prix-liste li.vu { opacity: 1; translate: 0 0; }
html.anim .prix-liste li.vu > i { animation: ico-pop .55s var(--ressort) both; animation-delay: calc(var(--delai, 0ms) + 120ms); }
.prix-verrou { padding-top: var(--e2); }
.prix-verrou li > i { color: var(--ink-4); }
.prix-chute { padding: var(--e4); border-radius: var(--r-md); background: var(--acc-voile); font-size: var(--t-donnee); line-height: 1.6; color: var(--ink-2); }
.prix-chute b { color: var(--ink); }
.prix-socle { display: flex; align-items: center; gap: var(--e3); padding: var(--e3) var(--e4); border-radius: var(--r-md); background: var(--acc-voile); }
.prix-socle i { font-size: 20px; color: var(--acc-fort); }
.prix-socle b { font-size: var(--t-donnee); font-weight: 650; }
.prix-tout { margin-top: var(--e6); display: inline-flex; align-items: center; gap: var(--e2); font-size: var(--t-donnee); font-weight: 600; color: var(--acc-fort); text-decoration: none; }
.prix-tout i { font-size: 18px; transition: translate .35s var(--ressort); }
.prix-tout:hover i { translate: 0 3px; }
.ancrage .titre-sect { max-width: 20ch; }
.ancrage-barres { margin-top: var(--e10); max-width: 1000px; display: flex; flex-direction: column; gap: var(--e10); }
.ab-tete { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--e2) var(--e5); }
.ab-val { font-size: clamp(2.5rem, 1.7rem + 2.6vw, 4rem); font-weight: 700; letter-spacing: -.05em; line-height: 1; font-variant-numeric: tabular-nums; }
.ab-lb { font-size: var(--t-lead); font-weight: 600; }
.ab-prix .ab-val { color: var(--lueur); }
.ab-ecart .ab-val { color: var(--perte-nuit); }
.ab-piste { margin-top: var(--e5); height: 18px; border-radius: var(--pill); background: rgba(255,255,255,.08); box-shadow: inset 0 0 0 1px rgba(255,255,255,.06); overflow: hidden; }
.ab-barre { display: block; height: 100%; width: var(--a); border-radius: var(--pill); transition: width .9s var(--entree); }
[data-periode="mensuel"] .ab-barre { width: var(--m); }
.ab-prix .ab-barre { background: linear-gradient(90deg, var(--acc), var(--lueur)); box-shadow: 0 0 24px color-mix(in srgb, var(--lueur) 45%, transparent); }
.ab-ecart .ab-barre { background: linear-gradient(90deg, color-mix(in srgb, var(--perte-nuit) 55%, transparent), var(--perte-nuit)); box-shadow: 0 0 24px color-mix(in srgb, var(--perte-nuit) 35%, transparent); }
.ab-note { margin-top: var(--e3); max-width: 70ch; font-size: var(--t-donnee); line-height: 1.6; color: var(--ink-nuit); }
html.anim .ancrage-barres .ab-barre { width: 0; }
html.anim .ancrage-barres.actif .ab-barre { width: var(--a); }
html.anim [data-periode="mensuel"] .ancrage-barres.actif .ab-barre { width: var(--m); }
html.anim .ancrage-barres .ab-ecart .ab-barre { transition-delay: .35s; }
.comparatif-boite { border-radius: var(--r-xl); background: var(--carte); box-shadow: var(--om-2); overflow: clip; }
.comparatif { width: 100%; border-collapse: separate; border-spacing: 0; }
.comparatif th, .comparatif td { padding: 14px 22px; text-align: left; font-weight: 400; border-bottom: 1px solid var(--ligne); vertical-align: middle; }
.comparatif tbody tr:last-child > * { border-bottom: 0; }
.comparatif thead th { position: sticky; top: 78px; z-index: 2; background: var(--carte); vertical-align: bottom; border-bottom: 1px solid var(--ligne-forte); }
.comparatif thead th:not(:first-child) { width: 22%; text-align: center; }
.comparatif td { text-align: center; }
.comparatif tbody th { font-size: var(--t-donnee); line-height: 1.5; color: var(--ink); }
.comparatif td:last-child, .comparatif thead th.cmp-premium { background: color-mix(in srgb, var(--acc) 6%, var(--carte)); }
.cmp-lb { font-size: var(--t-label); font-weight: 700; letter-spacing: var(--suivi-label); color: var(--ink-2); }
.cmp-fil { display: inline-block; transition: opacity .17s ease, translate .17s ease; }
.cmp-fil.part { opacity: 0; translate: 0 -6px; }
.cmp-fil.vient { opacity: 0; translate: 0 6px; }
.cmp-fil.module { font-size: inherit; letter-spacing: normal; color: var(--ink); font-weight: 400; }
.cmp-fil.module .cmp-g b { color: var(--ink); }
@media (prefers-reduced-motion: reduce) { .cmp-fil { transition: none; } .cmp-fil.part, .cmp-fil.vient { opacity: 1; translate: 0 0; } }
@media (max-width: 640px) {
  .cmp-fil.module .cmp-g i { display: none; }
  .cmp-fil.module .cmp-g b { font-size: .9375rem; line-height: 1.25; }
}
.cmp-formule { display: flex; flex-direction: column; align-items: center; gap: 2px; }
.cmp-formule > b:first-child { font-size: 1.0625rem; font-weight: 650; }
.cmp-prix { font-size: 1.5rem; font-weight: 700; letter-spacing: -.04em; line-height: 1.2; font-variant-numeric: tabular-nums; }
.cmp-btn { margin-top: 8px; display: inline-flex; align-items: center; height: 34px; padding: 0 14px; border-radius: var(--pill); font-size: var(--t-donnee); font-weight: 600; color: var(--ink); text-decoration: none; background: var(--verre-fort); box-shadow: var(--verre-bord), var(--om-1); white-space: nowrap; transition: translate .3s var(--ressort); }
.cmp-btn:hover { translate: 0 -2px; }
.cmp-btn-plein { background: linear-gradient(180deg, var(--btn1), var(--btn2)); color: var(--sur-btn); box-shadow: var(--om-btn); }
.cmp-groupe th { padding-top: 26px; padding-bottom: 12px; background: var(--carte); }
.cmp-g { display: inline-flex; align-items: center; gap: var(--e2); }
.cmp-g i { font-size: 18px; color: var(--acc-fort); }
.cmp-g b { font-size: 1.0625rem; font-weight: 650; letter-spacing: -.02em; }
.cmp-oui { font-size: 21px; color: var(--acc-fort); }
.cmp-non { font-size: 18px; color: var(--ink-3); }
.cmp-txt { font-size: var(--t-label); font-weight: 600; line-height: 1.4; color: var(--ink-2); }
.cmp-txt-plein { color: var(--acc-fort); }
.comparatif tbody tr:not(.cmp-groupe) { transition: background-color .2s var(--doux); }
.comparatif tbody tr:not(.cmp-groupe):hover > * { background-color: color-mix(in srgb, var(--acc) 4%, transparent); }
.cmp-pied { margin-top: var(--e8); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--e5) var(--e8); }
.cmp-pied .texte { flex: 1 1 420px; max-width: 72ch; }
:root { interpolate-size: allow-keywords; }
.faq-grille { display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.5fr); gap: var(--e10) clamp(40px, 6vw, 96px); align-items: start; }
.faq-tete { position: sticky; top: 112px; }
.faq-tete .titre-sect { max-width: 12ch; }
.faq { display: flex; flex-direction: column; gap: var(--e3); }
.faq-q { border-radius: var(--r-lg); background: var(--carte); box-shadow: var(--om-1); transition: box-shadow .3s var(--doux); }
.faq-q[open] { box-shadow: var(--om-2), inset 0 0 0 1px var(--trait); }
.faq-q summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: var(--e4); padding: var(--e5) var(--e6); border-radius: var(--r-lg); }
.faq-q summary::-webkit-details-marker { display: none; }
.faq-q summary b { font-size: var(--t-corps); font-weight: 600; line-height: 1.45; letter-spacing: -.01em; }
.faq-q summary i { flex: none; width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; font-size: 16px; color: var(--acc-fort); background: var(--acc-voile); transition: rotate .4s var(--entree); }
.faq-q[open] summary i { rotate: 180deg; }
.faq-q summary:focus-visible { outline: 2px solid var(--acc); outline-offset: 2px; }
.faq-q p { padding: 0 var(--e6) var(--e6); font-size: var(--t-corps); line-height: 1.7; color: var(--ink-2); max-width: 68ch; }
.faq-q::details-content { block-size: 0; overflow: clip; transition: block-size .4s var(--entree), content-visibility .4s allow-discrete; }
.faq-q[open]::details-content { block-size: auto; }
@media (max-width: 900px) {
  .prix-grille { grid-template-columns: minmax(0, 1fr); max-width: 560px; }
  .faq-grille { grid-template-columns: minmax(0, 1fr); }
  .faq-tete { position: static; }
  .faq-tete .titre-sect { max-width: none; }
}
@media (max-width: 640px) {
  .comparatif th, .comparatif td { padding: 12px 10px; }
  .comparatif thead th { top: 66px; }
  .comparatif thead th:not(:first-child) { width: 27%; }
  .cmp-btn { height: 30px; padding: 0 10px; font-size: 12px; }
  .cmp-prix { font-size: 1.2rem; }
  .periode-btn { padding: 0 var(--e4); }
}
.page-hero .tarifs-titre { font-size: clamp(2.3rem, min(1.3rem + 3.3vw, 4.6vw), 4rem); max-width: none; text-wrap: balance; }
.cmp-tete { margin-bottom: clamp(32px, 4.5vw, 56px); }
.cmp-tete .titre-sect { max-width: 20ch; }
.ancrage-barres { max-width: none; }
.formulaire { display: flex; flex-direction: column; gap: var(--e5); }
.champ { display: flex; flex-direction: column; gap: var(--e2); min-width: 0; }
.champ label, .champ-lb { font-size: var(--t-label); font-weight: 700; letter-spacing: var(--suivi-label); color: var(--ink-2); }
.champ-tete { display: flex; justify-content: space-between; align-items: baseline; gap: var(--e3); }
.champ-lien { font-size: var(--t-label); font-weight: 600; color: var(--acc-fort); }
.champ input, .champ textarea {
  width: 100%; height: 52px; padding: 0 16px; border-radius: var(--r-md);
  border: 1px solid var(--ligne-forte); background: var(--carte); color: var(--ink);
  font: inherit; font-size: 1rem;
  transition: border-color .2s var(--doux), box-shadow .2s var(--doux), background-color .2s var(--doux);
}
.champ textarea { height: auto; min-height: 168px; padding: 14px 16px; line-height: 1.6; resize: vertical; }
.champ input::placeholder, .champ textarea::placeholder { color: var(--ink-3); opacity: 1; }
.champ input:hover, .champ textarea:hover { border-color: color-mix(in srgb, var(--acc) 45%, var(--ligne-forte)); }
.champ input:focus, .champ textarea:focus { outline: none; border-color: var(--acc); box-shadow: 0 0 0 4px var(--acc-voile); }
.en-erreur input, .en-erreur textarea { border-color: var(--perte); box-shadow: 0 0 0 4px var(--perte-voile); }
.champ-erreur { display: flex; align-items: center; gap: 6px; font-size: var(--t-donnee); font-weight: 500; color: var(--perte-texte); }
.champ-erreur::before {
  content: ""; flex: none; width: 15px; height: 15px; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M128 24a104 104 0 1 0 104 104A104.11 104.11 0 0 0 128 24Zm-8 56a8 8 0 0 1 16 0v56a8 8 0 0 1-16 0Zm8 104a12 12 0 1 1 12-12 12 12 0 0 1-12 12Z'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M128 24a104 104 0 1 0 104 104A104.11 104.11 0 0 0 128 24Zm-8 56a8 8 0 0 1 16 0v56a8 8 0 0 1-16 0Zm8 104a12 12 0 1 1 12-12 12 12 0 0 1-12 12Z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.champ-erreur[hidden] { display: none; }
html.anim .champ-erreur:not([hidden]) { animation: erreur-entre .35s var(--entree); }
@keyframes erreur-entre { from { opacity: 0; translate: 0 -4px; } to { opacity: 1; translate: 0 0; } }
.champ-aide { font-size: var(--t-label); line-height: 1.5; color: var(--ink-2); }
.champ-aide a { font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.btn-plein { width: 100%; justify-content: center; height: 52px; }
html.anim .secoue { animation: secoue .42s var(--doux); }
@keyframes secoue { 20% { translate: -6px 0; } 40% { translate: 5px 0; } 60% { translate: -3px 0; } 80% { translate: 2px 0; } }
.force { display: flex; gap: 4px; height: 4px; }
.force i { flex: 1; border-radius: var(--pill); background: var(--ligne); transition: background-color .3s var(--doux); }
.force[data-n="1"] i:nth-child(1) { background: var(--perte); }
.force[data-n="2"] i:nth-child(-n+2) { background: var(--alerte); }
.force[data-n="3"] i { background: var(--gain); }
.auth { position: relative; overflow: clip; min-height: 100vh; padding: clamp(120px, 15vh, 168px) 0 clamp(64px, 8vw, 112px); display: flex; align-items: center; }
.auth-aurore { position: absolute; inset: 0; z-index: 0; }
.auth-grille { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 470px) minmax(0, 1fr); gap: clamp(40px, 7vw, 120px); align-items: center; }
.auth-carte {
  display: flex; flex-direction: column; gap: var(--e5); padding: clamp(28px, 4vw, 44px); border-radius: var(--r-2xl);
  background: var(--verre-fort); box-shadow: var(--verre-bord), var(--om-3);
  backdrop-filter: blur(22px) saturate(150%); -webkit-backdrop-filter: blur(22px) saturate(150%);
}
.auth-titre { font-size: clamp(2.1rem, 1.6rem + 1.6vw, 2.9rem); font-weight: 700; letter-spacing: -.045em; line-height: 1.05; }
.auth-sous { margin-top: calc(-1 * var(--e2)); font-size: var(--t-corps); line-height: 1.6; color: var(--ink-2); text-wrap: pretty; }
.auth-bascule { text-align: center; font-size: var(--t-donnee); color: var(--ink-2); }
.auth-bascule a { font-weight: 650; color: var(--acc-fort); }
.auth-visuel { position: relative; height: 470px; }
.auth-visuel .hero-mini { position: absolute; width: 340px; }
.auth-visuel .av-1 { top: 0; left: 8%; rotate: -2.5deg; }
.auth-visuel .av-2 { top: 36%; right: 0; rotate: 2deg; z-index: 2; }
.auth-visuel .av-3 { bottom: 0; left: 0; rotate: -1deg; }
html.anim .auth-visuel .hero-mini { animation: hm-flotte 8s ease-in-out infinite; }
html.anim .auth-visuel .av-2 { animation-delay: -2.7s; }
html.anim .auth-visuel .av-3 { animation-delay: -5.3s; }
.hm-ico-gain { background: var(--gain-voile); color: var(--gain); box-shadow: inset 0 0 0 1px var(--gain-trait); }
.hm-ico-alerte { background: var(--alerte-voile); color: var(--alerte); box-shadow: inset 0 0 0 1px var(--alerte-trait); }
.contact-grille { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); gap: var(--e10) clamp(40px, 6vw, 96px); align-items: start; }
.contact-formulaire { padding: clamp(24px, 3.5vw, 40px); border-radius: var(--r-2xl); background: var(--carte); box-shadow: var(--om-2); }
.champs-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--e5) var(--e4); }
.sujets { display: flex; flex-wrap: wrap; gap: var(--e2); }
.sujet {
  height: 40px; padding: 0 16px; border-radius: var(--pill); cursor: pointer;
  border: 1px solid var(--ligne-forte); background: transparent; color: var(--ink-2);
  font: inherit; font-size: var(--t-donnee); font-weight: 550;
  transition: background-color .2s var(--doux), border-color .2s var(--doux), color .2s var(--doux), translate .3s var(--ressort);
}
.sujet:hover { translate: 0 -1px; border-color: color-mix(in srgb, var(--acc) 50%, var(--ligne-forte)); }
.sujet[aria-pressed="true"] { background: var(--acc-voile); border-color: var(--acc); color: var(--ink); }
.sujet:focus-visible { outline: 2px solid var(--acc); outline-offset: 2px; }
.contact-envoi { display: flex; flex-wrap: wrap; align-items: center; gap: var(--e4) var(--e6); }
.contact-envoi .note { flex: 1 1 260px; }
.accuse { display: flex; flex-direction: column; align-items: flex-start; gap: var(--e3); padding: var(--e6) 0; }
.accuse[hidden] { display: none; }
.accuse-ico { width: 56px; height: 56px; border-radius: 16px; display: grid; place-items: center; font-size: 30px; background: var(--gain-voile); color: var(--gain); }
.accuse-titre { font-size: 1.6rem; font-weight: 650; letter-spacing: -.03em; outline: none; }
.accuse p { max-width: 52ch; line-height: 1.65; color: var(--ink-2); }
.accuse a { font-weight: 650; color: var(--acc-fort); }
html.anim .accuse:not([hidden]) { animation: erreur-entre .5s var(--entree); }
.voies { display: flex; flex-direction: column; gap: var(--e4); }
.voie { display: flex; flex-direction: column; gap: var(--e2); padding: var(--e6); border-radius: var(--r-lg); background: var(--carte); box-shadow: var(--om-1); }
.voie .tuile-ico { margin-bottom: var(--e2); }
.voie .etiquette { color: var(--ink-2); }
.voie b { font-size: 1.0625rem; font-weight: 650; letter-spacing: -.02em; line-height: 1.4; }
.voie p { font-size: var(--t-donnee); line-height: 1.6; color: var(--ink-2); }
.contact-suite .etiquette { color: var(--ink-2); }
.raccourcis { margin-top: var(--e5); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--e4); }
@media (max-width: 1100px) { .raccourcis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.raccourci {
  position: relative; display: flex; flex-direction: column; gap: var(--e3); padding: var(--e6); border-radius: var(--r-lg);
  background: var(--carte); box-shadow: var(--om-1); color: var(--ink); text-decoration: none;
  transition: translate .35s var(--entree), box-shadow .35s var(--doux);
}
.raccourci:hover { translate: 0 -4px; box-shadow: var(--om-2); }
.raccourci b { font-size: 1.0625rem; font-weight: 650; letter-spacing: -.02em; }
.raccourci > span:not(.tuile-ico) { font-size: var(--t-donnee); line-height: 1.6; color: var(--ink-2); }
.raccourci-fl { position: absolute; top: var(--e6); right: var(--e6); font-size: 18px; color: var(--acc-fort); transition: translate .35s var(--ressort); }
.raccourci:hover .raccourci-fl { translate: 4px 0; }
@media (max-width: 980px) {
  .auth-grille, .contact-grille { grid-template-columns: minmax(0, 1fr); }
  .auth-grille { justify-items: center; }
  .auth-carte { width: min(100%, 520px); }
  .auth-visuel { display: none; }
}
@media (max-width: 760px) {
  .raccourcis { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 560px) {
  .champs-2 { grid-template-columns: minmax(0, 1fr); }
  .auth { padding-top: 104px; }
}
.champs-2 { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); }
@media (max-width: 560px) { .champs-2 { grid-template-columns: minmax(0, 1fr); } }
.doc-hero .page-hero-contenu { gap: var(--e5); }
.doc-hero .titre-hero { font-size: clamp(2.3rem, 1.4rem + 3vw, 3.8rem); }
.doc-meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--e3); }
.doc-meta .etiquette { color: var(--acc-fort); }
.doc-maj { display: inline-flex; align-items: center; height: 26px; padding: 0 10px; border-radius: var(--pill); background: var(--verre); box-shadow: var(--verre-bord); font-size: var(--t-label); font-weight: 650; letter-spacing: var(--suivi-label); color: var(--ink-2); }
.doc-grille { display: grid; grid-template-columns: 290px minmax(0, 1fr); gap: var(--e10) clamp(40px, 6vw, 96px); align-items: start; }
.doc-sommaire { position: sticky; top: 100px; max-height: calc(100vh - 124px); overflow: auto; overscroll-behavior: contain; display: flex; flex-direction: column; gap: var(--e3); padding: 2px var(--e2) 2px 2px; }
.doc-sommaire .etiquette { color: var(--ink-2); padding-left: 10px; }
.doc-sommaire ol { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.doc-sommaire a { display: flex; align-items: baseline; gap: var(--e3); padding: 7px 10px; border-radius: var(--r-sm); font-size: var(--t-donnee); line-height: 1.4; color: var(--ink-2); text-decoration: none; transition: background-color .2s var(--doux), color .2s var(--doux), box-shadow .2s var(--doux); }
.doc-sommaire a:hover { background: var(--acc-voile); color: var(--ink); }
.doc-sommaire a[aria-current] { background: var(--carte); color: var(--ink); box-shadow: var(--om-1); }
.som-n { flex: none; font-size: var(--t-label); font-weight: 700; color: var(--acc-fort); font-variant-numeric: tabular-nums; }
.doc-corps { max-width: 780px; display: flex; flex-direction: column; gap: var(--e10); }
.doc-bandeau { display: flex; flex-direction: column; gap: var(--e2); padding: var(--e5) var(--e6); border-radius: var(--r-lg); background: var(--alerte-voile); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--alerte) 32%, transparent); }
.doc-bandeau strong { display: inline-flex; align-items: center; gap: var(--e2); font-weight: 650; color: var(--ink); }
.doc-bandeau strong i { font-size: 20px; color: var(--alerte); }
.doc-bandeau span { font-size: var(--t-donnee); line-height: 1.6; color: var(--ink-2); }
.art { scroll-margin-top: 104px; display: flex; flex-direction: column; gap: var(--e4); padding-top: var(--e8); border-top: 1px solid var(--ligne); }
.art-tete { display: flex; align-items: baseline; gap: var(--e4); }
.art-n { flex: none; font-size: var(--t-label); font-weight: 700; letter-spacing: .1em; color: var(--acc-fort); font-variant-numeric: tabular-nums; }
.art h2 { font-size: clamp(1.35rem, 1.15rem + .7vw, 1.75rem); font-weight: 650; letter-spacing: -.03em; line-height: 1.2; text-wrap: balance; }
.art-corps { display: flex; flex-direction: column; gap: var(--e4); }
.art-corps p, .art-corps li { max-width: 68ch; font-size: var(--t-corps); line-height: 1.75; color: var(--ink-2); text-wrap: pretty; }
.art-corps h3 { margin-top: var(--e2); font-size: 1.0625rem; font-weight: 650; letter-spacing: -.01em; color: var(--ink); }
.art-corps ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--e2); }
.art-corps li { position: relative; padding-left: 22px; }
.art-corps li::before { content: ""; position: absolute; left: 4px; top: .72em; width: 6px; height: 6px; border-radius: 50%; background: var(--acc); }
.art-corps .art-encadre { padding: var(--e5) var(--e6); border-radius: var(--r-md); background: var(--acc-voile); border-left: 3px solid var(--acc-fort); font-weight: 500; color: var(--ink); }
.ident-manquant { padding: 0 3px; border-radius: 4px; background: var(--alerte-voile); color: var(--ink); -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.doc-voisins { display: flex; flex-direction: column; gap: var(--e4); padding-top: var(--e8); border-top: 1px solid var(--ligne); }
.doc-voisins .etiquette { color: var(--ink-2); }
.doc-voisins-liste { display: flex; flex-wrap: wrap; gap: var(--e3); }
.doc-voisins-liste a { display: inline-flex; align-items: center; gap: var(--e2); height: 44px; padding: 0 var(--e5); border-radius: var(--pill); background: var(--carte); box-shadow: var(--om-1); font-size: var(--t-donnee); font-weight: 600; color: var(--ink); text-decoration: none; transition: translate .3s var(--ressort), box-shadow .3s var(--doux); }
.doc-voisins-liste a:hover { translate: 0 -2px; box-shadow: var(--om-2); }
.doc-voisins-liste a i { color: var(--acc-fort); }
@media (max-width: 980px) {
  .doc-grille { grid-template-columns: minmax(0, 1fr); }
  .doc-sommaire { position: static; max-height: none; overflow: visible; padding: var(--e5); border-radius: var(--r-lg); background: var(--carte); box-shadow: var(--om-1); }
  .doc-sommaire ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px var(--e3); }
}
@media (max-width: 560px) {
  .doc-sommaire ol { grid-template-columns: minmax(0, 1fr); }
  .art-tete { flex-direction: column; gap: var(--e2); }
}
.doc-zone > .contenu > .doc-bandeau { margin-bottom: var(--e10); max-width: 1100px; }
.tarifs-chute { display: inline-block; max-width: min(100%, 10em); text-wrap: balance; }
.doc-zone { padding-top: clamp(32px, 4vw, 56px); }
