/* Ozone Groupe ™ — ambiance « zenode.fr » en noir et blanc :
   grands titres Space Grotesk, filets fins, listes à lignes, boutons nets. Chargé en dernier sur toutes les pages. */
:root { --display: "Space Grotesk", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; --r: 10px; }
body, body.home { font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; }
h1, h2, h3, .brand-name, .wf-num, .drawer-label, .kpi strong, .zn-stat b, .zn-price { font-family: var(--display); }
h1, h2 { font-weight: 600; letter-spacing: -0.045em; text-wrap: balance; }
h3 { font-weight: 600; letter-spacing: -0.03em; }
.brand-name { font-weight: 650; letter-spacing: -0.03em; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- Navigation : liens à plat, souligné pour la page active ---------- */
html body .nav-links ul { border: 0; background: transparent; padding: 0; gap: 4px; }
html body .nav-link, html[data-theme="dark"] body .nav-link { border-radius: 0; background: transparent; }
html body .nav-link:hover, html[data-theme="dark"] body .nav-link:hover { background: transparent; color: var(--text); }
html body .nav-link[aria-current="page"], html[data-theme="dark"] body .nav-link[aria-current="page"] {
  background: transparent; color: var(--text);
  text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 8px;
}

/* ---------- Boutons ---------- */
.btn, body.home .btn, html body .btn { border-radius: var(--r); }
.btn svg { transition: transform .25s var(--ease, ease); }
.btn:hover svg { transform: translate(2px, -2px); }

/* ---------- Accueil ---------- */
body.home .wf-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .95fr); column-gap: clamp(32px, 6vw, 96px); row-gap: clamp(28px, 4vw, 44px); align-items: start; grid-template-rows: auto auto 1fr; padding-top: clamp(56px, 8vw, 112px); padding-bottom: clamp(64px, 8vw, 112px); }
body.home .wf-hero::before { display: none; }
body.home .wf-hero .wf-copy { display: contents; }
body.home .wf-hero h1 { grid-column: 1 / -1; font-size: clamp(46px, 9.4vw, 136px); line-height: .94; letter-spacing: -0.055em; max-width: none; text-wrap: initial; }
body.home .wf-hero h1 .dim { color: var(--muted-soft); }
body.home .wf-hero .wf-copy > p { grid-column: 1; grid-row: 2; max-width: 500px; margin: 0; font-size: clamp(17px, 1.5vw, 20px); line-height: 1.6; }
body.home .wf-hero .wf-actions { grid-column: 1; grid-row: 3; margin-top: 4px; justify-content: flex-start; align-self: start; }
body.home .wf-tablewrap { grid-column: 2; grid-row: 2 / span 2; border: 0; border-top: 1px solid var(--line-strong); border-radius: 0; background: transparent; box-shadow: none; overflow: visible; }
body.home .wf-table th { font-weight: 500; font-size: 13px; color: var(--muted-soft); background: transparent; }
body.home .wf-table td, body.home .wf-table th { border-bottom: 1px solid var(--line); }

/* Sections : filet fin en haut, titre à gauche et texte à droite */
body.home .wf-section, body.home .section { border-top: 1px solid var(--line); padding-block: clamp(64px, 8vw, 112px); }
body.home .section-head { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 20px clamp(32px, 6vw, 96px); align-items: end; max-width: none; margin: 0 0 clamp(40px, 5vw, 64px); text-align: left; }
body.home .section-head h2 { font-size: clamp(34px, 5vw, 66px); line-height: 1; max-width: 14ch; }
body.home .section-head p { margin: 0; font-size: 17px; line-height: 1.6; max-width: 480px; }

/* Principes : colonnes séparées par des filets, sans cartes */
body.home .wf-trio { gap: 0; border-top: 1px solid var(--line-strong); }
body.home .wf-pillar { padding: 32px 32px 36px; border: 0; border-left: 1px solid var(--line); border-radius: 0; background: transparent; }
body.home .wf-pillar:first-child { border-left: 0; padding-left: 0; }
body.home .wf-num { font-size: 13px; letter-spacing: .08em; color: var(--muted-soft); }
body.home .wf-pillar h3 { font-size: clamp(26px, 2.6vw, 34px); letter-spacing: -0.04em; }
body.home .wf-more { text-align: left; }
body.home .kpi, body.home .stat-panel { border-radius: 12px; }
body.home .aj-team { justify-content: flex-start; }

/* Bande finale et pied de page */
body.home .wf-cta h2 { font-size: clamp(40px, 7vw, 96px); line-height: .96; letter-spacing: -0.055em; max-width: 12ch; }
body.home .wf-foot h4 { font-weight: 500; letter-spacing: 0; }

@media (max-width: 860px) {
  body.home .wf-hero { grid-template-columns: 1fr; }
  body.home .wf-hero .wf-copy > p, body.home .wf-hero .wf-actions, body.home .wf-tablewrap { grid-column: 1; grid-row: auto; }
  body.home .section-head { grid-template-columns: 1fr; align-items: start; }
  body.home .wf-pillar, body.home .wf-pillar:first-child { padding: 28px 0; border-left: 0; border-top: 1px solid var(--line); }
}

/* ---------- Pages internes (Légal, Zenode, Ajouter) ---------- */
.legal-hero h1, .zn-hero h1, .aj-hero h1, main > .container > h1 { font-size: clamp(44px, 7.4vw, 104px); line-height: .96; letter-spacing: -0.055em; }
.zn-card, .zn-stat, .zn-shot, .zn-logo-card, .toc, .legal-card, .kpi, .stat-panel { border-radius: 12px; }
.legal-content h2, .zn-wrap h2 { font-size: clamp(28px, 3.4vw, 44px); line-height: 1.05; letter-spacing: -0.045em; }
.zn-wrap section + section, .legal-content section + section { margin-top: clamp(56px, 7vw, 96px); }

/* Même largeur de contenu que la barre de navigation, sur toute la page d'accueil */
body.home main > .container, body.home main > section.container, body.home .wf-foot > .container { width: min(1072px, calc(100% - 48px)); max-width: none; margin-inline: auto; padding-inline: 0; }
body.home .wf-final { margin-top: 0; padding-bottom: 0; }
.zn-wrap { padding-top: clamp(24px, 4vw, 56px); }
.zn-wrap > section { padding-top: clamp(40px, 5vw, 64px); border-top: 1px solid var(--line); }
.zn-wrap > section:first-child { border-top: 0; }

/* =====================================================================
   Pages internes dans le même langage que l'accueil
   ===================================================================== */
.wf-foot .container { width: min(1072px, calc(100% - 48px)); max-width: none; margin-inline: auto; padding-inline: 0; }
.wf-foot{background:var(--card);border-top:1px solid var(--line);padding-top:72px}
.wf-foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px}
.wf-foot-grid p{margin-top:16px;max-width:340px;color:var(--muted);font-size:15px}
.wf-foot h4{font-size:13px;font-weight:500;color:var(--muted);margin-bottom:14px}
.wf-foot ul{list-style:none;display:grid;gap:10px}
.wf-foot li a{font-size:14.5px;color:var(--text);transition:color .2s}
.wf-foot li a:hover{color:var(--g-dark)}
.wf-foot-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:64px;padding:24px 0;border-top:1px solid var(--line);font-size:13.5px;color:var(--muted)}
@media(max-width:860px){.wf-foot-grid{grid-template-columns:1fr 1fr}.wf-foot-grid>div:first-child{grid-column:1/-1}}
.wf-foot { margin-top: clamp(64px, 8vw, 112px); }

/* Légal : liste de documents à lignes */
.hub-grid { gap: 0; border-top: 1px solid var(--line-strong); margin-top: 40px; }
.hub-card { padding: 28px 8px; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: transparent; box-shadow: none; }
.hub-card:hover { background: transparent; box-shadow: none; transform: none; padding-left: 20px; }
.hub-ico { border-radius: 10px; }
.hub-body strong, .hub-body h2, .hub-body h3 { font-family: var(--display); font-size: 22px; letter-spacing: -0.03em; }

/* Légal : documents */
.toc { background: transparent; border: 0; border-top: 1px solid var(--line-strong); border-radius: 0; padding: 20px 0 0; }
.legal-content h2 { font-size: clamp(26px, 2.8vw, 36px); line-height: 1.05; letter-spacing: -0.045em; }
.legal-content section + section { border-top: 1px solid var(--line); padding-top: clamp(40px, 5vw, 64px); }

/* Zenode : mêmes sections que l'accueil (filet, titre à gauche, texte à droite) */
.zn-wrap > section { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); column-gap: clamp(32px, 6vw, 96px); row-gap: 0; align-items: end; }
.zn-wrap > section > * { grid-column: 1 / -1; }
.zn-wrap > section > h2 { grid-column: 1; grid-row: 1; font-size: clamp(30px, 4vw, 52px); line-height: 1.02; max-width: 18ch; margin: 0 0 clamp(32px, 4vw, 56px); }
.zn-wrap > section > h2 + p { grid-column: 2; grid-row: 1; align-self: end; margin: 0 0 clamp(32px, 4vw, 56px); max-width: 480px; }
.zn-wrap > section > p { max-width: 640px; }
.zn-wrap > section { padding-bottom: clamp(48px, 6vw, 88px); }

.zn-grid { gap: 0; border-top: 1px solid var(--line-strong); }
.zn-grid .zn-card { padding: 32px 32px 36px; border: 0; border-left: 1px solid var(--line); border-radius: 0; background: transparent; }
.zn-grid .zn-card:first-child { border-left: 0; padding-left: 0; }
.zn-grid.two { column-gap: 0; }
.zn-grid.two .zn-card { border-left: 0; border-bottom: 1px solid var(--line); padding: 28px 24px 28px 0; }
.zn-grid.two .zn-card:nth-child(even) { padding-left: 32px; padding-right: 0; border-left: 1px solid var(--line); }
a.zn-card:hover { transform: none; box-shadow: none; background: transparent; }
.zn-stats { gap: 0; border-top: 1px solid var(--line-strong); }
.zn-stat { border: 0; border-left: 1px solid var(--line); border-radius: 0; background: transparent; padding: 24px 24px 24px 28px; }
.zn-stat:first-child { border-left: 0; padding-left: 0; }
.zn-stat b { font-size: clamp(26px, 3vw, 38px); letter-spacing: -0.04em; }
.zn-bots { gap: 0; border-top: 1px solid var(--line-strong); }
.zn-bots li { border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: transparent; }
.zn-shot, .zn-logo-card, .zn-join { border-radius: 12px; }
.zn-hero { padding-bottom: clamp(32px, 5vw, 64px); }

/* Ajouter : bots en lignes, étapes en tête de section */
.aj-grid { grid-template-columns: 1fr; gap: 0; border-top: 1px solid var(--line-strong); }
.aj-card, .aj-card.wide { grid-column: 1 / -1; flex-direction: row; align-items: center; gap: 28px; padding: 28px 8px; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: transparent; box-shadow: none; }
.aj-card:hover { transform: none; box-shadow: none; background: transparent; border-color: var(--line); }
.aj-card .aj-avatar { width: 88px; height: 88px; border-radius: 20px; }
.aj-card .aj-name h2 { font-size: clamp(24px, 2.6vw, 32px); letter-spacing: -0.04em; }
.aj-section { margin-top: clamp(64px, 8vw, 112px); padding-top: clamp(40px, 5vw, 64px); border-top: 1px solid var(--line); }
.aj-section > h2 { font-size: clamp(30px, 4vw, 52px); line-height: 1; letter-spacing: -0.05em; margin-bottom: 20px; }
.aj-facts li, .aj-filters button { border-radius: var(--r); }

@media (max-width: 860px) {
  .zn-wrap > section { grid-template-columns: 1fr; }
  .zn-wrap > section > h2, .zn-wrap > section > h2 + p { grid-column: 1; grid-row: auto; }
  .zn-grid .zn-card, .zn-grid.two .zn-card, .zn-grid.two .zn-card:nth-child(even), .zn-stat { padding: 24px 0; border-left: 0; border-top: 1px solid var(--line); }
  .aj-card, .aj-card.wide { flex-direction: column; align-items: flex-start; }
}

/* Légal : liste sans icônes, numérotée en CSS */
.hub-grid { counter-reset: hub; }
.hub-card { counter-increment: hub; grid-template-columns: 56px minmax(0, 1fr); align-items: start; }
.hub-card::before { content: "0" counter(hub); font-family: var(--display); font-size: 13px; letter-spacing: .08em; color: var(--muted-soft); padding-top: 6px; }
.hub-card:hover { padding-left: 8px; }
.hub-card:hover .hub-body strong { text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; }

/* Zenode : aperçus espacés, sans soulignement */
.zn-grid:has(.zn-shot) { gap: 24px; border-top: 0; }
.zn-wrap .zn-shot, .zn-wrap .zn-shot * { text-decoration: none !important; }

/* =====================================================================
   Dégradés : titres et halo du hero
   ===================================================================== */
html[data-theme="dark"] [data-split]:not(.wf-cta h2) .wi,
html[data-theme="dark"] body:not(.home) main h1 { background-image: linear-gradient(180deg, #ffffff 25%, #7d7d7d 115%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; }
html[data-theme="dark"] [data-split] .dim .wi { background-image: linear-gradient(180deg, #8d8d8d 20%, #3d3d3d 120%); }
html[data-theme="dark"] .wf-cta [data-split] .wi, html[data-theme="dark"] .wf-cta h2 .wi { background: none; -webkit-text-fill-color: #fff; color: #fff; }
html:not([data-theme="dark"]) [data-split] .wi { background-image: linear-gradient(180deg, #0a0a0a 30%, #5c5c5c 120%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; }
html:not([data-theme="dark"]) [data-split] .dim .wi { background-image: linear-gradient(180deg, #8a8a8a 20%, #c4c4c4 120%); }
html:not([data-theme="dark"]) .wf-cta [data-split] .wi { background: none; -webkit-text-fill-color: #fff; color: #fff; }
.wi { display: inline-block; padding-bottom: .08em; margin-bottom: -.08em; }

/* Halo derrière le hero (sombre : lueur blanche très douce, claire : gris léger) */
body.home .wf-hero::before { display: block; content: ""; position: absolute; inset: -10% -30vw auto; height: 90%; z-index: -1; pointer-events: none;
  background: radial-gradient(55% 60% at 30% 0%, rgba(0, 0, 0, .07), transparent 70%); }
html[data-theme="dark"] body.home .wf-hero::before { background: radial-gradient(55% 60% at 30% 0%, rgba(255, 255, 255, .11), transparent 70%), radial-gradient(40% 50% at 85% 10%, rgba(255, 255, 255, .05), transparent 70%); }
