/* OncoLab Dz — site public (accueil, connexion, inscription).
   Bleu nuit + vert du logo ; IBM Plex Sans / Plex Sans Arabic. */
.site {
  --night: #0E1F4D;
  --night-2: #142a63;
  --ink: #14213D;
  --muted-s: #55627D;
  --paper: #F5F8FC;
  --line: #DCE3EE;
  --leaf: #37852A; /* vert du logo foncé : texte blanc 4,6:1 */
  --leaf-bright: #7DD35F;
  --sky: #176B96; /* bleu du logo foncé : liens ≥ 5:1 */
  --amber-s: #9A6212;
  background: var(--paper);
  color: var(--ink);
  font-size: 16px;
  line-height: 1.6;
}
.site .wrap { width: 100%; max-width: 1180px; margin: 0 auto; padding: 0 32px; }
.site h1, .site h2, .site h3 { color: var(--night); font-weight: 600; letter-spacing: -0.01em; }
[dir="rtl"] .site h1, [dir="rtl"] .site h2, [dir="rtl"] .site h3 { letter-spacing: 0; }
.site h2 { font-size: 2rem; line-height: 1.2; margin: 0 0 12px; }
.site h3 { font-size: 1.08rem; margin: 0 0 8px; }
.site a { color: var(--sky); }
.site :focus-visible { outline: 3px solid var(--leaf-bright); outline-offset: 2px; border-radius: 4px; }
.skip { position: absolute; inset-inline-start: 12px; top: -60px; background: #fff; padding: 8px 14px; border-radius: 6px; z-index: 100; }
.skip:focus { top: 12px; }
.s-ltr { unicode-bidi: isolate; }

/* Boutons du site */
.s-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 10px 18px; border-radius: 6px; font-weight: 600; font-size: .95rem; text-decoration: none !important; border: 1px solid transparent; line-height: 1.2; white-space: nowrap; }
.s-btn-lg { padding: 14px 22px; font-size: 1rem; }
.s-btn-primary { background: var(--leaf); color: #fff !important; }
.s-btn-primary:hover { background: #2F7323; }
.s-btn-ghost { color: var(--night) !important; border-color: var(--line); background: #fff; }
.s-btn-ghost:hover { border-color: var(--night); }
.s-btn-on-dark { color: #fff !important; border-color: rgba(255,255,255,.35); }
.s-btn-on-dark:hover { border-color: #fff; background: rgba(255,255,255,.06); }

/* En-tête */
.site-top { background: #fff; border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 30; }
.site-top-inner { display: flex; align-items: center; gap: 24px; min-height: 76px; }
.site-logo img { height: 48px; display: block; }
.site-nav { display: flex; gap: 22px; margin-inline-start: auto; }
.site-nav a { color: var(--ink); font-weight: 500; font-size: .95rem; text-decoration: none; padding: 6px 0; border-bottom: 2px solid transparent; }
.site-nav a:hover { border-bottom-color: var(--leaf); }
.site-actions { display: flex; align-items: center; gap: 10px; }

/* Bandeau */
.s-hero { background: var(--night); color: #D6DEF0; padding: 72px 0 0; position: relative; overflow: hidden; }
.hero-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 56px; align-items: center; }
.s-hero h1 { color: #fff; font-size: clamp(2rem, 3.6vw, 3rem); line-height: 1.12; margin: 0 0 20px; font-weight: 600; }
.hero-lead { font-size: 1.12rem; max-width: 34em; margin: 0 0 32px; color: #C2CDE6; }
.hero-cta { display: flex; gap: 12px; flex-wrap: wrap; }
.s-hero .flash { margin-bottom: 20px; }

/* Piste génique */
.track { margin: 0; background: var(--night-2); border: 1px solid rgba(255,255,255,.09); border-radius: 10px; padding: 22px 24px 18px; }
.track figcaption { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-bottom: 6px; }
.track-kicker { color: #9FB0D6; font-size: .88rem; }
.track-gene { color: #fff; font-weight: 600; font-size: 1.05rem; }
.track svg { width: 100%; height: auto; display: block; }
.track-ruler line { stroke: #3B4F82; stroke-width: 1; }
.track-intron { stroke: #5A6E9E; stroke-width: 2; }
.track-exon { fill: #24397A; stroke: #6F86C2; stroke-width: 1.2; }
.track-del { fill: var(--leaf); opacity: .92; }
.track-bracket { fill: none; stroke: var(--leaf-bright); stroke-width: 1.6; }
.track-stem { stroke: #8496C4; stroke-width: 1.6; }
.track-head { fill: var(--night-2); stroke: #8496C4; stroke-width: 1.8; }
.track-stem-hit { stroke: var(--leaf-bright); stroke-width: 2; }
.track-head-hit { fill: var(--leaf-bright); stroke: var(--leaf-bright); }
.track text { fill: #9FB0D6; font-size: 13px; text-anchor: middle; font-family: 'IBM Plex Sans', sans-serif; }
.track-legend { list-style: none; margin: 10px 0 0; padding: 0; display: flex; gap: 22px; flex-wrap: wrap; font-size: .9rem; color: #C2CDE6; }
.track-legend li { display: flex; align-items: center; gap: 8px; }
.track-legend .dot { width: 11px; height: 11px; border-radius: 50%; border: 2px solid #8496C4; }
.track-legend .dot-hit { background: var(--leaf-bright); border-color: var(--leaf-bright); }
/* Mouvement du bandeau : une seule séquence (titre → gène → mutation), désactivée si l'utilisateur réduit les animations */
.s-hero > .wrap { position: relative; z-index: 1; }
.hero-helix { position: absolute; inset: -20px; z-index: 0; pointer-events: none; opacity: .11;
  transform: translate3d(calc(var(--px, 0) * 14px), calc(var(--py, 0) * 10px), 0); transition: transform .6s ease-out; }
.hero-helix svg { width: 100%; height: 100%; display: block; }
.helix-strand { fill: none; stroke: #7FA3E8; stroke-width: 2; }
.helix-strand-b { stroke: var(--leaf-bright); }
.helix-rung { stroke: #9FB6E6; stroke-width: 1.2; }
.track-pulse { fill: none; stroke: var(--leaf-bright); stroke-width: 2; opacity: 0; transform-box: fill-box; transform-origin: center; }
@media (prefers-reduced-motion: no-preference) {
  .hero-title .w { display: inline-block; opacity: 0; transform: translateY(.35em); animation: wordIn .6s cubic-bezier(.2, .7, .2, 1) forwards; animation-delay: calc(var(--i) * 55ms + 80ms); }
  .hero-helix { animation: helixIn 1.6s ease-out both; }
  .helix-scroll { animation: helixDrift 70s linear infinite; }
  .track-intron { stroke-dasharray: 520; stroke-dashoffset: 520; animation: draw .7s .4s ease-out forwards; }
  .track-exon { transform-box: fill-box; transform-origin: left center; transform: scaleX(0); animation: grow .45s ease-out forwards; animation-delay: calc(.75s + var(--i) * .12s); }
  [dir="rtl"] .track-exon { transform-origin: left center; }
  .track-del { opacity: 0; animation: show .4s 1.35s ease-out forwards; }
  .track-bracket { stroke-dasharray: 60; stroke-dashoffset: 60; animation: draw .35s 1.55s ease-out forwards; }
  .track-stem-hit { stroke-dasharray: 60; stroke-dashoffset: 60; animation: draw .55s 1.75s ease-out forwards; }
  .track-head-hit { transform-box: fill-box; transform-origin: center; transform: scale(0); animation: pop .4s 2.25s cubic-bezier(.3, 1.6, .5, 1) forwards; }
  .track-pulse { animation: pulse 1.6s 2.5s ease-out 2; }
}
@keyframes wordIn { to { opacity: 1; transform: none; } }
@keyframes helixIn { from { opacity: 0; } }
@keyframes helixDrift { to { transform: translateX(-1400px); } }
@keyframes grow { to { transform: scaleX(1); } }
@keyframes draw { to { stroke-dashoffset: 0; } }
@keyframes pop { to { transform: scale(1); } }
@keyframes show { to { opacity: .92; } }
@keyframes pulse { 0% { opacity: .7; transform: scale(1); } 100% { opacity: 0; transform: scale(3.2); } }
@media (max-width: 720px) { .hero-helix { opacity: .07; } }

.facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 64px 0 0; border-top: 1px solid rgba(255,255,255,.12); }
.facts > div { padding: 24px 24px 28px 0; }
.facts > div + div { padding-inline-start: 24px; border-inline-start: 1px solid rgba(255,255,255,.12); }
[dir="rtl"] .facts > div { padding: 24px 0 28px 24px; }
[dir="rtl"] .facts > div + div { padding-inline-start: 24px; }
.facts dt { color: #fff; font-size: 2rem; font-weight: 600; line-height: 1.1; margin-bottom: 4px; font-variant-numeric: tabular-nums; }
.facts dt .ico { width: 30px; height: 30px; color: var(--leaf-bright); }
.facts dd { margin: 0; color: #AFBCDB; font-size: .95rem; }

/* Sections */
.s-section { padding: 88px 0; scroll-margin-top: 76px; }
.s-alt { background: #fff; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.s-head { max-width: 46em; margin-bottom: 40px; }
.s-head p { color: var(--muted-s); font-size: 1.06rem; margin: 0; }

/* Répertoire des analyses */
.directory { display: grid; gap: 36px; }
.dir-group h3 { font-size: .98rem; color: var(--muted-s); font-weight: 600; margin: 0 0 6px; padding-bottom: 10px; border-bottom: 2px solid var(--night); }
.dir-group ul { list-style: none; margin: 0; padding: 0; }
.dir-row { display: grid; grid-template-columns: 120px minmax(0, 2.2fr) minmax(0, 1.3fr) minmax(0, 1.3fr) 120px 80px 110px; gap: 20px; align-items: baseline; padding: 16px 0; border-bottom: 1px solid var(--line); }
.dir-code { font-weight: 600; font-size: 1.12rem; color: var(--night); }
.dir-code i { font-weight: 600; }
.dir-name { font-weight: 500; }
.dir-name small { display: block; color: var(--muted-s); font-weight: 400; font-size: .88rem; }
.dir-meta { color: var(--muted-s); font-size: .92rem; }
.dir-label { display: none; }
.dir-delay { font-variant-numeric: tabular-nums; color: var(--ink); font-size: .95rem; }
.dir-link { display: inline-flex; align-items: center; gap: 4px; font-weight: 600; font-size: .92rem; justify-self: end; }
.dir-link .ico { width: 16px; height: 16px; }

/* Déroulement */
.process { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; counter-reset: none; }
.process li { position: relative; padding: 0 20px 0 0; }
[dir="rtl"] .process li { padding: 0 0 0 20px; }
.process-n { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--night); color: #fff; font-weight: 600; margin-bottom: 18px; position: relative; z-index: 1; }
.process li:not(:last-child)::after { content: ''; position: absolute; top: 20px; inset-inline-start: 40px; inset-inline-end: 0; height: 2px; background: var(--line); }
.process h3 { font-size: 1.02rem; }
.process p { color: var(--muted-s); font-size: .94rem; margin: 0; padding-inline-end: 8px; }

/* Guide */
.guide { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 48px; align-items: start; }
.guide-blocks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 40px; }
.guide-block h3 { padding-bottom: 10px; border-bottom: 1px solid var(--line); margin-bottom: 12px; }
.guide-block ul, .guide-reject ul { margin: 0; padding-inline-start: 18px; }
.guide-block li { margin-bottom: 8px; color: #33415E; font-size: .96rem; }
.guide-block li::marker { color: var(--leaf); }
.guide-reject { background: #FBF4E8; border-inline-start: 4px solid #D9962B; padding: 22px 24px; border-radius: 0 8px 8px 0; }
[dir="rtl"] .guide-reject { border-radius: 8px 0 0 8px; }
.guide-reject h3 { display: flex; align-items: center; gap: 8px; color: var(--amber-s); }
.guide-reject li { margin-bottom: 6px; font-size: .94rem; color: #4D3A16; }
.guide-reject p { margin: 16px 0 0; font-size: .88rem; color: #6E5A33; }

/* Laboratoire */
.lab { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; align-items: start; }
.lab-text p { font-size: 1.06rem; color: #33415E; max-width: 34em; }
.commitments { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 32px; margin: 8px 0 0; }
.commitments dt { display: flex; align-items: center; gap: 8px; font-weight: 600; color: var(--night); margin-bottom: 4px; }
.commitments dt .ico { width: 20px; height: 20px; color: var(--leaf); }
.commitments dd { margin: 0; color: var(--muted-s); font-size: .95rem; }

/* FAQ */
.faq-wrap { max-width: 900px; }
.faq details { border-bottom: 1px solid var(--line); }
.faq details:first-child { border-top: 1px solid var(--line); }
.faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 20px 0; font-weight: 600; color: var(--night); font-size: 1.04rem; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary .ico { flex: none; transition: transform .2s; color: var(--sky); }
.faq details[open] summary .ico { transform: rotate(45deg); }
.faq details p { margin: 0 0 22px; color: #33415E; max-width: 46em; }

/* Contact */
.s-contact { background: var(--night); color: #C2CDE6; }
.s-contact h2 { color: #fff; }
.contact { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 56px; align-items: start; }
.contact p { font-size: 1.06rem; margin: 0 0 24px; }
.contact-list { margin: 0; display: grid; gap: 20px; }
.contact-list dt { display: flex; align-items: center; gap: 8px; color: #8EA0CC; font-size: .88rem; margin-bottom: 2px; }
.contact-list dt .ico { width: 18px; height: 18px; }
.contact-list dd { margin: 0; color: #fff; font-size: 1.08rem; }
.contact-list a { color: #fff; }
.contact-empty { color: #8EA0CC; font-style: italic; }

/* Pied de page */
.site-foot { background: #0A1838; color: #8EA0CC; font-size: .92rem; padding: 48px 0 0; }
.site-foot-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 40px; padding-bottom: 32px; }
.site-foot-logo { width: 44px; height: 44px; border-radius: 8px; background: #fff; padding: 3px; }
.site-foot-name { color: #fff; font-weight: 600; margin: 10px 0 4px; }
.site-foot p { margin: 0 0 6px; }
.site-foot nav { display: grid; gap: 8px; align-content: start; }
.site-foot a { color: #C2CDE6; text-decoration: none; }
.site-foot a:hover { color: #fff; text-decoration: underline; }
.site-foot-legal { border-top: 1px solid rgba(255,255,255,.08); padding-top: 18px; padding-bottom: 22px; font-size: .84rem; }

/* Pages connexion / inscription dans le site */
.site .auth-wrap { padding: 56px 16px 72px; background: var(--paper); }
.site .auth-card { border-radius: 10px; box-shadow: 0 1px 2px rgba(14,31,77,.05); border-color: var(--line); }
.site .auth-card h1 { color: var(--night); font-weight: 600; }

/* Responsive */
@media (max-width: 1080px) {
  .site-nav { display: none; }
  .hero-grid, .guide, .lab, .contact { grid-template-columns: minmax(0, 1fr); }
  .guide-reject { max-width: 560px; }
  .dir-row { grid-template-columns: 110px minmax(0, 1fr) 90px; grid-template-areas: none; }
  .dir-meta { grid-column: 2 / 3; }
  .dir-meta .dir-label { display: inline; color: var(--ink); font-weight: 500; margin-inline-end: 6px; }
  .dir-delay { grid-column: 3; grid-row: 1; }
  .dir-link { grid-column: 2 / 4; justify-self: start; }
  .process { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .process li { display: grid; grid-template-columns: 40px 1fr; column-gap: 16px; padding: 0; }
  .process li .process-n { grid-row: span 2; margin: 0; }
  .process li:not(:last-child)::after { top: 40px; bottom: -24px; inset-inline-start: 19px; inset-inline-end: auto; width: 2px; height: auto; }
}
@media (max-width: 720px) {
  .site .wrap { padding: 0 16px; }
  .site-top-inner { min-height: 64px; gap: 10px; }
  .site-logo img { height: 36px; }
  .site-actions .s-btn-ghost { display: none; }
  .site-actions .s-btn { padding: 8px 12px; font-size: .88rem; }
  .site-actions { gap: 8px; }
  .site-lang.lang-switch { height: 34px; padding: 2px; }
  .site-lang .lang-opt { min-width: 28px; padding: 0 5px; font-size: .78rem; }
  .s-hero { padding-top: 44px; }
  .facts { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 44px; }
  .facts > div, [dir="rtl"] .facts > div { padding: 18px 12px 18px 0; }
  .facts > div + div { border-inline-start: 0; padding-inline-start: 0; }
  .facts > div:nth-child(even) { padding-inline-start: 16px; border-inline-start: 1px solid rgba(255,255,255,.12); }
  .facts > div:nth-child(n+3) { border-top: 1px solid rgba(255,255,255,.12); }
  .s-section { padding: 60px 0; }
  .site h2 { font-size: 1.6rem; }
  .guide-blocks, .commitments { grid-template-columns: minmax(0, 1fr); }
  .dir-row { grid-template-columns: minmax(0, 1fr) auto; gap: 6px 16px; }
  .dir-code { grid-column: 1; }
  .dir-delay { grid-column: 2; grid-row: 1; }
  .dir-name, .dir-meta, .dir-link { grid-column: 1 / -1; }
  .track { padding: 16px; }
  .site-foot-grid { grid-template-columns: minmax(0, 1fr); gap: 24px; }
}

/* Fiche d'analyse */
.sheet-head { background: #fff; border-bottom: 1px solid var(--line); padding: 36px 0 0; }
.sheet-back { display: inline-flex; align-items: center; gap: 6px; font-size: .92rem; font-weight: 500; text-decoration: none; }
.sheet-back .ico { width: 16px; height: 16px; }
.sheet-organ { margin: 28px 0 6px; color: var(--muted-s); font-weight: 500; }
.sheet-head h1 { font-size: clamp(1.7rem, 3vw, 2.4rem); line-height: 1.2; margin: 0 0 14px; max-width: 26em; }
.sheet-code { display: block; color: var(--leaf); font-size: .62em; font-weight: 600; margin-bottom: 6px; }
.sheet-code i { font-weight: 600; }
.sheet-lead { font-size: 1.1rem; color: #33415E; max-width: 44em; margin: 0; }
.sheet-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 36px 0 0; border-top: 1px solid var(--line); }
.sheet-facts > div { padding: 18px 20px 22px 0; }
.sheet-facts > div + div { padding-inline-start: 20px; border-inline-start: 1px solid var(--line); }
[dir="rtl"] .sheet-facts > div { padding: 18px 0 22px 20px; }
[dir="rtl"] .sheet-facts > div + div { padding-inline-start: 20px; }
.sheet-facts dt { color: var(--muted-s); font-size: .88rem; margin-bottom: 4px; }
.sheet-facts dd { margin: 0; font-weight: 600; color: var(--night); }
.sheet-facts dd small { display: block; font-weight: 400; color: var(--muted-s); font-size: .84rem; }
.sheet-body { padding-top: 56px; }
.sheet-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 64px; align-items: start; }
.sheet-main h2 { font-size: 1.35rem; margin: 0 0 14px; }
.sheet-main h2 + p, .sheet-main p + h2, .sheet-main ul + p + h2 { margin-top: 0; }
.sheet-main p { color: #33415E; font-size: 1.04rem; max-width: 40em; margin: 0 0 16px; }
.sheet-main p:last-of-type { margin-bottom: 40px; }
.sheet-sample { margin: 0 0 16px; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.sheet-sample li { padding: 14px 0 14px 28px; border-bottom: 1px solid var(--line); position: relative; color: #33415E; }
[dir="rtl"] .sheet-sample li { padding: 14px 28px 14px 0; }
.sheet-sample li::before { content: ''; position: absolute; inset-inline-start: 4px; top: 22px; width: 10px; height: 10px; border-radius: 2px; background: var(--leaf); }
.sheet-guide-link { font-size: .95rem; }
.sheet-cta { background: var(--night); color: #C2CDE6; border-radius: 10px; padding: 26px; }
.sheet-cta h2 { color: #fff; font-size: 1.2rem; margin: 0 0 8px; }
.sheet-cta p { margin: 0 0 20px; font-size: .96rem; }
.sheet-cta .s-btn { width: 100%; }
.sheet-cta-alt { display: block; text-align: center; margin-top: 12px; color: #C2CDE6 !important; font-size: .92rem; }
.sheet-related { margin-top: 32px; }
.sheet-related h2 { font-size: 1rem; color: var(--muted-s); margin: 0 0 8px; }
.sheet-related ul { list-style: none; margin: 0; padding: 0; }
.sheet-related a { display: block; padding: 12px 0; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; }
.sheet-related a:hover { color: var(--sky); }
.sheet-related a span { display: block; font-weight: 600; color: var(--night); }
@media (max-width: 1080px) {
  .sheet-grid { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .sheet-side { max-width: 560px; }
}
@media (max-width: 720px) {
  .sheet-facts { grid-template-columns: minmax(0, 1fr); }
  .sheet-facts > div + div, [dir="rtl"] .sheet-facts > div + div { border-inline-start: 0; padding-inline-start: 0; border-top: 1px solid var(--line); }
}
[dir="rtl"] .sheet-code { text-align: right; }

/* Bénéfices clés : volet sous les boutons du bandeau */
.benefits { display: grid; grid-template-rows: 1fr; }
.js .benefits { grid-template-rows: 0fr; transition: grid-template-rows .35s ease; }
.js .benefits.open { grid-template-rows: 1fr; }
.benefits-inner { overflow: hidden; min-height: 0; }
.benefits h2 { color: #fff; font-size: 1.15rem; margin: 40px 0 18px; }
.benefits dl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; margin: 0 0 8px; }
.benefits dt { display: flex; align-items: center; gap: 8px; color: #fff; font-weight: 600; margin-bottom: 6px; }
.benefits dt .ico { color: var(--leaf-bright); width: 20px; height: 20px; }
.benefits dd { margin: 0; color: #B9C6E2; font-size: .96rem; }
.toggle-ico { width: 18px; height: 18px; transition: transform .25s; }
[aria-expanded="true"] .toggle-ico { transform: rotate(45deg); }
@media (prefers-reduced-motion: reduce) { .js .benefits, .toggle-ico { transition: none; } }

/* Fonctionnement : étapes en lignes (titres longs du client) */
.process { grid-template-columns: minmax(0, 1fr); gap: 0; max-width: 980px; }
.process li { display: grid; grid-template-columns: 56px minmax(0, 1fr) minmax(0, 1.3fr); column-gap: 24px; align-items: start; padding: 22px 0; border-top: 1px solid var(--line); }
[dir="rtl"] .process li { padding: 22px 0; }
.process li:last-child { border-bottom: 1px solid var(--line); }
.process li:not(:last-child)::after { display: none; }
.process-n { margin: 0; }
.process h3 { margin: 8px 0 0; font-size: 1.05rem; }
.process p { margin: 8px 0 0; padding: 0; font-size: .98rem; }
@media (max-width: 1080px) {
  .benefits dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .process li { grid-template-columns: 48px minmax(0, 1fr); }
  .process li p { grid-column: 2; }
}
@media (max-width: 720px) {
  .benefits dl { grid-template-columns: minmax(0, 1fr); gap: 18px; }
}
#benefits { scroll-margin-top: 80px; }

.dir-price { font-weight: 600; color: var(--night); font-variant-numeric: tabular-nums; white-space: nowrap; }
.sheet-facts { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1080px) {
  .dir-price { grid-column: 2 / 3; }
  .sheet-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sheet-facts > div:nth-child(3) { border-inline-start: 0; padding-inline-start: 0; }
}
@media (max-width: 720px) {
  .dir-price { grid-column: 1 / -1; }
  .sheet-facts { grid-template-columns: minmax(0, 1fr); }
}

/* Boutons-liens (ex. page d'erreur) : la couleur des liens du site ne doit pas s'appliquer */
.site a.btn, .site a.btn:hover { color: #fff; text-decoration: none; }
.site a.btn-light, .site a.btn-light:hover { color: var(--night); }
@media (prefers-reduced-motion: no-preference) {
  .track-stem:not(.track-stem-hit), .track-head:not(.track-head-hit) { opacity: 0; animation: fadeIn .4s 1.25s ease-out forwards; }
}
@keyframes fadeIn { to { opacity: 1; } }
/* Très petits écrans : le bouton d'inscription reste dans le bandeau d'accueil */
@media (max-width: 400px) {
  .site-top-inner { gap: 8px; }
  .site-logo img { height: 32px; }
  .site-actions .s-btn { padding: 7px 10px; font-size: .82rem; }
}
@media (max-width: 359px) {
  .site-actions .s-btn-primary { display: none; }
}

/* Bouton WhatsApp flottant */
.wa-float { position: fixed; inset-block-end: 20px; inset-inline-end: 20px; z-index: 40; display: inline-flex; align-items: center; gap: 8px; height: 52px; padding: 0 18px 0 14px; border-radius: 999px; background: #1E8E4A; color: #fff; font-weight: 600; font-size: .95rem; text-decoration: none; box-shadow: 0 8px 22px rgba(14, 31, 77, .28); }
.wa-float:hover { background: #17753d; text-decoration: none; color: #fff; }
.wa-float .ico { width: 26px; height: 26px; }
@media (max-width: 640px) { .wa-float { height: 54px; width: 54px; padding: 0; justify-content: center; } .wa-float span { display: none; } }
@media print { .wa-float { display: none; } }
