/* SEO Miatu : feuille de style du site public (seo.miatu.eus).
   Source de vérité : DESIGN.md à la racine du projet. Charte Miatu « Lumière » v2,
   mêmes tokens que le rapport vendu (app/engine/skill_ref/DESIGN-rapport.md).
   Mode clair uniquement. Aucun dégradé, aucun emoji, une seule ombre. */

/* ---------- Polices auto-hébergées (RGPD) ---------- */
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/IBMPlexSans-400.woff2') format('woff2')}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/IBMPlexSans-500.woff2') format('woff2')}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/IBMPlexSans-600.woff2') format('woff2')}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/IBMPlexSans-700.woff2') format('woff2')}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/SpaceGrotesk-400.woff2') format('woff2')}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/SpaceGrotesk-700.woff2') format('woff2')}

/* ---------- Tokens (copiés du rapport v2, voir DESIGN.md) ---------- */
:root{
  /* marque */
  --urdina:#36A7D0;
  --blue-600:#158CB7;  /* survol du bouton primaire : oklch(0.60 0.115 230) de l'échelle Miatu */
  --blue-700:#076C92;  /* liens, eyebrows, numéros, texte des boutons secondaires */
  --blue-800:#084E6C;  /* survols, en-têtes, valeurs fortes */
  /* faces du Cube : mélange URDINA + blanc (formule de la charte) */
  --cube-16:color-mix(in oklab,var(--urdina) 16%,#fff);
  --cube-24:color-mix(in oklab,var(--urdina) 24%,#fff);
  --cube-48:color-mix(in oklab,var(--urdina) 48%,#fff);
  /* neutres chauds */
  --ink:#181714; --ink-soft:#494844; --ink-faint:#73716E;
  --neutral-300:#CFCECA; --neutral-100:#F2F2EF;
  --paper:#FAFAF7; --card:#FFFFFF; --tint:#EAF6FB; --line:#DBDFE0;
  /* sémantique : CONTENU seulement (badges de diagnostic, erreurs de saisie) */
  --ok:#2E9E7B; --warn:#C98A1F; --bad:#C8503A;
  --ok-bg:#EDF7EF; --warn-bg:#FDF6E7; --bad-bg:#FDECEA;
  --ok-ink:#2C7A3F; --warn-ink:#8A6116; --bad-ink:#A33327;      /* encres B2 de la charte (contraste AA) */
  --ok-line:#D3EBD8; --warn-line:#F4E4BD; --bad-line:#F0CFCA;
  /* forme et profondeur */
  --radius:12px; --radius-sm:8px; --pill:999px;
  --shadow:0 1px 2px rgba(22,42,64,.06),0 12px 32px -18px rgba(22,42,64,.14);
  /* typographie */
  --disp:'Space Grotesk',system-ui,sans-serif;
  --sans:'IBM Plex Sans',system-ui,sans-serif;
  /* mise en page */
  --maxw:1100px; --gutter:16px; --header-h:64px;
  --dur:.15s; --ease:cubic-bezier(.4,0,.2,1);
}
@media (min-width:768px){:root{--gutter:24px}}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px);background:var(--paper)}
body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.7 var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
img,svg{display:block;max-width:100%}
h1,h2,h3,h4{margin:0;font-family:var(--disp);font-weight:700;color:var(--ink);text-wrap:balance}
h1{font-size:clamp(2rem,1.25rem + 3.2vw,3.25rem);line-height:1.05;letter-spacing:-.025em}
h2{font-size:clamp(1.6rem,1.25rem + 1.5vw,2.125rem);line-height:1.15;letter-spacing:-.02em}
h3{font-size:1.125rem;line-height:1.3;letter-spacing:-.01em}
p,ul,ol,dl,dd,figure,blockquote{margin:0}
ul,ol{padding:0}
a{color:var(--blue-700);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;transition:color var(--dur)}
a:hover{color:var(--blue-800)}
strong,b{font-weight:600}
:focus-visible{outline:2px solid var(--blue-700);outline-offset:2px}
::selection{background:var(--cube-24);color:var(--ink)}
main:focus{outline:none}
.tnum{font-variant-numeric:tabular-nums}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
.wrap{width:100%;max-width:calc(var(--maxw) + 2 * var(--gutter));margin-inline:auto;padding-inline:var(--gutter)}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}

.skip-link{position:absolute;left:var(--gutter);top:-80px;z-index:100;padding:10px 16px;background:var(--card);color:var(--blue-800);border:1px solid var(--line);border-radius:var(--pill);box-shadow:var(--shadow);font-weight:600;text-decoration:none}
.skip-link:focus{top:12px}

/* ---------- Devices de la charte ---------- */
/* Cube : filled = fait, open = en cours, ghost = à venir / vide. Jamais de halo. */
.cube{flex:none;overflow:visible}
.cube path{fill:none;stroke:var(--urdina);stroke-width:1.5;stroke-linejoin:round;transition:fill var(--dur),stroke var(--dur)}
.cube--filled .cube-top{fill:var(--urdina)}
.cube--filled .cube-left{fill:var(--cube-24)}
.cube--filled .cube-right{fill:var(--cube-48)}
.cube--open .cube-top{fill:var(--cube-16)}
.cube--ghost path{stroke:var(--neutral-300)}
/* Marker : trait épais (5 px) sous chaque H1, largeur proportionnelle au titre */
.marker{display:block;margin-top:14px;overflow:visible}
.marker path{fill:none;stroke:var(--urdina);stroke-width:5;stroke-linecap:round}
/* Eyebrow : puce-cube + capitales espacées */
.eyebrow{display:flex;align-items:flex-start;gap:8px;margin:0 0 16px;font:600 .72rem/1.3 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--blue-700)}
.eyebrow .cube{margin-top:.5px}
/* Icônes Lucide en SVG inline */
.icon{flex:none}

/* ---------- Boutons : pilule, deux niveaux ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:11px 20px;border:1px solid transparent;border-radius:var(--pill);font:600 .875rem/1.2 var(--sans);text-align:center;text-decoration:none;cursor:pointer;transition:background-color var(--dur),color var(--dur),border-color var(--dur),box-shadow var(--dur)}
.btn .icon{width:18px;height:18px}
.btn-primary{background:var(--urdina);border-color:var(--urdina);color:#fff}
.btn-primary:hover{background:var(--blue-600);border-color:var(--blue-600);color:#fff}
.btn-secondary{background:var(--card);border-color:var(--line);color:var(--blue-700)}
.btn-secondary:hover{color:var(--blue-800);box-shadow:var(--shadow)}
.btn-block{display:flex;width:100%;min-height:48px}
.btn[disabled],.btn[aria-disabled="true"]{opacity:.5;cursor:not-allowed;box-shadow:none}
.btn-row{display:flex;flex-wrap:wrap;gap:12px}

/* ---------- En-tête ---------- */
.site-header{position:sticky;top:0;z-index:50;background:var(--paper);border-bottom:1px solid var(--line)}
.header-inner{position:relative;display:flex;align-items:center;gap:12px;min-height:var(--header-h)}
.brand{display:inline-flex;align-items:center;gap:10px;margin-right:auto;color:var(--ink);text-decoration:none}
.brand:hover{color:var(--ink)}
.brand-mark{width:30px;height:30px}
.brand-name{font:700 1.125rem/1 var(--disp);letter-spacing:-.02em;white-space:nowrap}
.brand-seo{color:var(--blue-700)}
.site-nav{display:flex;align-items:center;gap:16px}
.nav-links{list-style:none;display:flex;flex-wrap:wrap;gap:2px}
.nav-links a{display:block;padding:8px 11px;border-radius:var(--pill);color:var(--ink-soft);font:500 .875rem/1.2 var(--sans);text-decoration:none;white-space:nowrap;transition:color var(--dur),background-color var(--dur)}
.nav-links a:hover{color:var(--ink);background:var(--neutral-100)}
.header-cta{min-height:40px;padding:9px 16px;white-space:nowrap}
.nav-toggle{display:none;align-items:center;justify-content:center;width:44px;height:44px;margin-right:-8px;padding:0;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--ink);cursor:pointer}
.nav-toggle .icon{width:24px;height:24px}
.nav-toggle .icon-close{display:none}
.nav-open .nav-toggle .icon-open{display:none}
.nav-open .nav-toggle .icon-close{display:block}

/* Sélecteur de langue FR / EUS */
.lang-switch{display:inline-flex;align-items:center;gap:2px;padding:2px;border:1px solid var(--line);border-radius:var(--pill);background:var(--card)}
.lang-switch a,.lang-switch .lang-current{display:block;min-width:40px;padding:5px 10px;border-radius:var(--pill);font:600 .75rem/1.2 var(--sans);letter-spacing:.06em;text-align:center;text-decoration:none}
.lang-switch a{color:var(--ink-soft)}
.lang-switch a:hover{color:var(--blue-800);background:var(--neutral-100)}
.lang-switch .lang-current{background:var(--tint);color:var(--blue-800)}

@media (max-width:1019.98px){
  .js .nav-toggle{display:inline-flex}
  .js .site-nav{display:none;position:absolute;top:100%;left:calc(-1 * var(--gutter));right:calc(-1 * var(--gutter));flex-direction:column;align-items:stretch;gap:16px;padding:8px var(--gutter) 20px;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:var(--shadow)}
  .js .nav-open .site-nav{display:flex}
  .js .nav-links{flex-direction:column;gap:0}
  .js .nav-links a{padding:13px 2px;border-radius:0;border-bottom:1px solid var(--line);font-size:1rem;color:var(--ink)}
  .js .nav-links a:hover{background:transparent;color:var(--blue-800)}
  .js .site-nav .lang-switch{align-self:flex-start}
  .no-js .header-inner{flex-wrap:wrap;padding-block:10px}
  .no-js .site-nav{order:3;width:100%;flex-wrap:wrap}
}
@media (max-width:420px){
  .brand-mark{width:26px;height:26px}
  .brand-name{font-size:1rem}
  .header-cta{padding:8px 13px;font-size:.8125rem}
}

/* Bandeau d'information (message de maintenance) */
.notice-bar{background:var(--tint);border-bottom:1px solid var(--line);color:var(--blue-800);font-size:.9375rem;line-height:1.5}
.notice-inner{display:flex;gap:10px;align-items:flex-start;padding-block:10px}
.notice-inner .cube{margin-top:3px}

/* ---------- Sections ---------- */
.section{padding-block:56px}
@media (min-width:900px){.section{padding-block:88px}}
.section + .section{border-top:1px solid var(--line)}
.section-head{max-width:760px;margin-bottom:32px}
.section-head h2 + p,.section-lead{margin-top:14px;color:var(--ink-soft);font-size:1.0625rem;line-height:1.65;max-width:64ch}
.footnote{margin-top:20px;font-size:.8125rem;line-height:1.5;color:var(--ink-faint)}

/* Listes à puce-cube */
.cube-list{list-style:none;display:grid;gap:9px}
.cube-list li{display:flex;gap:10px;align-items:flex-start;line-height:1.5}
.cube-list .cube{margin-top:4px}

/* ---------- Hero ---------- */
.hero{padding-block:36px 56px}
@media (min-width:900px){.hero{padding-block:64px 80px}}
.hero + .section{border-top:1px solid var(--line)}
.hero-grid{display:grid;gap:36px}
@media (min-width:980px){.hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,452px);gap:56px;align-items:start}}
.hero h1{max-width:15ch}
.hero .lead{margin-top:22px;max-width:44ch;font-size:1.125rem;line-height:1.6;color:var(--ink-soft)}
.hero .free-title{margin-top:28px;font-weight:600}
.hero .cube-list{margin-top:12px}
.trust{list-style:none;display:flex;flex-wrap:wrap;gap:6px 0;margin-top:28px;padding-top:18px;border-top:1px solid var(--line);font-size:.875rem;line-height:1.5;color:var(--ink-soft)}
.trust li{display:inline-flex;align-items:center}
.trust li:not(:last-child)::after{content:"\00B7";margin:0 10px;color:var(--ink-faint)}
#audit{scroll-margin-top:calc(var(--header-h) + 16px)}
@media (min-width:980px){.hero-copy{position:sticky;top:calc(var(--header-h) + 40px)}}
@media (max-width:599.98px){.trust{flex-direction:column;gap:2px}.trust li::after{display:none}}
.hero-proof{display:flex;gap:12px;align-items:flex-start;margin-top:28px;padding:16px 18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);color:var(--ink);text-decoration:none;font-size:.9375rem;line-height:1.55;transition:box-shadow var(--dur),border-color var(--dur)}
.hero-proof:hover{color:var(--ink);border-color:var(--cube-48);box-shadow:var(--shadow)}
.hero-proof .cube{margin-top:3px}
.hero-proof-text{display:block}
.hero-proof-link{display:inline-flex;align-items:center;gap:6px;margin-top:6px;font-weight:600;font-size:.875rem;color:var(--blue-700)}
.hero-proof:hover .hero-proof-link{color:var(--blue-800)}

/* ---------- Formulaires ---------- */
.form-card{padding:24px 20px}
@media (min-width:600px){.form-card{padding:28px}}
.form-title{font:700 1.375rem/1.2 var(--disp);letter-spacing:-.015em}
.form-intro{margin-top:6px;font-size:.9375rem;line-height:1.5;color:var(--ink-soft)}
.fields{display:grid;gap:18px;min-width:0;margin:22px 0 0;padding:0;border:0}
.field{min-width:0;margin:0;padding:0;border:0}
.field > label:not(.check),.field > legend{display:block;padding:0;font-weight:600;font-size:.9375rem;line-height:1.35;color:var(--ink)}
.opt{font-weight:400;color:var(--ink-faint)}
.hint{margin-top:3px;font-size:.8125rem;line-height:1.45;color:var(--ink-faint)}
.input{display:block;width:100%;min-height:46px;margin-top:8px;padding:10px 13px;border:1px solid var(--ink-faint);border-radius:var(--radius-sm);background:var(--card);color:var(--ink);font:400 1rem/1.4 var(--sans);transition:border-color var(--dur)}
.input::placeholder{color:var(--ink-faint);opacity:1}
.input:hover{border-color:var(--ink-soft)}
.input:focus{outline:2px solid var(--blue-700);outline-offset:1px;border-color:var(--blue-700)}
.has-error .input{border-color:var(--bad)}
.has-error .input:focus{outline-color:var(--bad)}
.field-error{display:flex;gap:6px;align-items:flex-start;margin-top:7px;font-size:.8125rem;font-weight:500;line-height:1.45;color:var(--bad)}
.field-error .icon{width:16px;height:16px;margin-top:1px}
.choices{display:grid;gap:8px;margin-top:8px}
.choice{display:flex;align-items:center;gap:10px;min-height:46px;padding:10px 13px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card);font-size:.9375rem;line-height:1.35;cursor:pointer;transition:border-color var(--dur),background-color var(--dur)}
.choice:hover{border-color:var(--ink-faint)}
.choice:has(input:checked){border-color:var(--urdina);background:color-mix(in oklab,var(--urdina) 7%,#fff)}
.choice input,.check input{flex:none;width:18px;height:18px;margin:0;accent-color:var(--urdina)}
.check{display:flex;gap:10px;align-items:flex-start;font-size:.875rem;line-height:1.5;color:var(--ink-soft);cursor:pointer}
.check input{margin-top:2px}
.check a{color:var(--blue-700)}
.more-field{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.more-field > summary{display:flex;align-items:center;gap:8px;min-height:44px;cursor:pointer;list-style:none;font-weight:600;font-size:.9375rem;color:var(--blue-700)}
.more-field > summary::-webkit-details-marker{display:none}
.more-field > summary .icon{width:18px;height:18px;transition:transform var(--dur) var(--ease)}
.more-field[open] > summary .icon{transform:rotate(90deg)}
.more-field > summary:hover{color:var(--blue-800)}
.more-field .field{padding-bottom:16px}
.hp{position:absolute!important;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.form-foot{margin-top:12px;font-size:.8125rem;line-height:1.5;color:var(--ink-faint);text-align:center}
.alert{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border:1px solid transparent;border-radius:var(--radius-sm);font-size:.875rem;line-height:1.5}
.alert .icon{width:18px;height:18px;margin-top:1px}
.alert--error{background:var(--bad-bg);border-color:var(--bad-line);color:var(--bad-ink)}
.alert--info{background:var(--tint);border-color:var(--cube-24);color:var(--blue-800)}
.alert + .fields,.form-head + .alert{margin-top:18px}
.alert p + p{margin-top:4px}
fieldset[disabled] .input,fieldset[disabled] .choice{opacity:.6}

/* ---------- Le moteur : poids des axes ---------- */
.weights{padding:24px 20px}
@media (min-width:768px){.weights{padding:32px}}
.weights-label{font:600 .72rem/1.3 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint)}
.weights-bar{display:flex;gap:4px;height:40px;margin-top:14px}
.weights-bar span{display:flex;align-items:center;justify-content:center;min-width:0;border-radius:6px;font:600 .8125rem/1 var(--sans);font-variant-numeric:tabular-nums;white-space:nowrap}
.sw-1{background:var(--urdina);color:var(--ink)}
.sw-2{background:var(--blue-800);color:#fff}
.sw-3{background:var(--cube-48);color:var(--ink)}
.sw-4{background:var(--blue-700);color:#fff}
.axes{list-style:none;display:grid;margin-top:24px}
@media (min-width:700px){.axes{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:36px}}
@media (min-width:1020px){.axes{grid-template-columns:repeat(4,minmax(0,1fr));column-gap:28px}}
.axis{padding:16px 0 4px;border-top:1px solid var(--line)}
.axis-head{display:flex;align-items:center;gap:8px}
.swatch{flex:none;width:12px;height:12px;border-radius:3px}
.axis-weight{font:600 .8125rem/1 var(--sans);font-variant-numeric:tabular-nums;color:var(--ink-soft)}
.axis h3{margin-top:10px;font-size:1.0625rem}
.axis p{margin-top:6px;font-size:.9375rem;line-height:1.6;color:var(--ink-soft)}
.extras{display:grid;gap:0;margin-top:32px}
@media (min-width:860px){.extras{grid-template-columns:200px repeat(2,minmax(0,1fr));column-gap:28px;align-items:start}}
.extras-title{padding-top:16px;font-size:1.0625rem}
.extra{display:flex;gap:12px;padding:16px 0;border-top:1px solid var(--line)}
@media (min-width:860px){.extras-title{border-top:1px solid var(--line)}}
.extra .cube{margin-top:4px}
.extra b{display:block;font-family:var(--disp);font-weight:700;letter-spacing:-.01em}
.extra p{margin-top:4px;font-size:.9375rem;line-height:1.6;color:var(--ink-soft)}

/* ---------- Comment ça marche ---------- */
.steps{list-style:none;display:grid;gap:28px}
@media (min-width:900px){.steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:36px}}
.step{position:relative}
.no{display:inline-flex;align-items:center;justify-content:center;min-width:40px;padding:4px 9px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card);font:700 .875rem/1.2 var(--disp);font-variant-numeric:tabular-nums;color:var(--blue-700)}
.step .no{min-width:44px;height:36px}
@media (min-width:900px){.step:not(:last-child)::after{content:"";position:absolute;top:18px;left:60px;right:-20px;height:1px;background:var(--line)}}
.step h3{margin-top:18px}
.step p{margin-top:8px;color:var(--ink-soft);font-size:.9688rem;line-height:1.65}

/* ---------- Le rapport complet : sommaire ---------- */
.toc{list-style:none;display:grid;column-gap:40px}
@media (min-width:800px){.toc{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(5,auto);grid-auto-flow:column}}
.toc li{display:grid;grid-template-columns:48px minmax(0,1fr);gap:14px;align-items:baseline;padding:14px 0;border-top:1px solid var(--line)}
.toc b{display:block;font:700 1rem/1.35 var(--disp);letter-spacing:-.01em}
.toc .what{display:block;margin-top:2px;font-size:.9375rem;line-height:1.55;color:var(--ink-soft)}
.guide-row{display:flex;gap:16px;align-items:flex-start;margin-top:24px;padding:20px;border:1px solid var(--cube-24);border-radius:var(--radius);background:var(--tint)}
.guide-row .icon{width:24px;height:24px;margin-top:2px;color:var(--blue-700)}
.guide-row b{display:block;font:700 1.0625rem/1.35 var(--disp);letter-spacing:-.01em}
.guide-row p{margin-top:4px;font-size:.9375rem;line-height:1.6;color:var(--ink-soft)}
.report-foot{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px;margin-top:28px}
.report-foot .formats{font-size:.875rem;line-height:1.5;color:var(--ink-faint)}

/* ---------- Résultats ---------- */
.results-grid{display:grid;gap:24px}
@media (min-width:980px){.results-grid{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:28px;align-items:stretch}}
.case,.aggregate{padding:24px 20px}
@media (min-width:768px){.case,.aggregate{padding:32px}}
.case-label{font:600 .72rem/1.3 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint)}
.case h3{margin-top:8px;font-size:1.5rem;letter-spacing:-.02em}
.case-desc{margin-top:4px;color:var(--ink-soft)}
.timeline{list-style:none;display:grid;margin-top:24px}
@media (min-width:640px){.timeline{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px}}
.milestone{padding:18px 0 4px;border-top:1px solid var(--line)}
.milestone-head{display:flex;gap:10px;align-items:center}
.milestone-when{font:600 .72rem/1.3 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint)}
.milestone h4{margin-top:10px;font-size:1.0625rem;line-height:1.3}
.milestone .facts{list-style:none;display:grid;gap:8px;margin-top:10px}
.milestone .facts li{position:relative;padding-left:16px;font-size:.9375rem;line-height:1.55;color:var(--ink-soft)}
.milestone .facts li::before{content:"";position:absolute;left:0;top:.62em;width:6px;height:6px;border-radius:2px;background:var(--neutral-300)}
.milestone--after .facts li::before{background:var(--urdina)}
.milestone--after .facts li{color:var(--ink)}
.big-num{display:block;font:700 clamp(3.25rem,2.4rem + 3vw,4.5rem)/1 var(--disp);letter-spacing:-.04em;font-variant-numeric:tabular-nums;color:var(--ink)}
.aggregate .big-label{display:block;margin-top:6px;font:700 1.125rem/1.3 var(--disp);letter-spacing:-.01em}
.aggregate .activities{margin-top:12px;font-size:.9375rem;line-height:1.6;color:var(--ink-soft)}
.range{margin-top:26px}
.range-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:.875rem}
.range-head b{font-weight:600}
.range-head span{font-weight:600;color:var(--blue-800);font-variant-numeric:tabular-nums}
.range-track{position:relative;height:10px;margin-top:10px;border-radius:var(--pill);background:var(--neutral-100)}
.range-fill{position:absolute;top:0;bottom:0;border-radius:var(--pill);background:var(--urdina)}
.range-scale{display:flex;justify-content:space-between;margin-top:6px;font-size:.75rem;color:var(--ink-faint);font-variant-numeric:tabular-nums}
.conclusion{margin-top:22px;padding-top:16px;border-top:1px solid var(--line);font:700 1.0625rem/1.4 var(--disp);letter-spacing:-.01em}

/* ---------- Tarif ---------- */
.plans{display:grid;gap:20px}
@media (min-width:860px){.plans{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:stretch}}
.plan{display:flex;flex-direction:column;padding:24px 20px}
@media (min-width:768px){.plan{padding:32px}}
.plan--full{border-color:var(--urdina)}
.plan h3{font-size:1.25rem}
.price{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin-top:14px}
.price-v{font:700 2.75rem/1 var(--disp);letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--ink)}
.price-u{font-weight:600;color:var(--ink-soft)}
.price-sub{margin-top:6px;font-size:.875rem;color:var(--ink-faint)}
.plan .cube-list{margin:24px 0 28px}
.plan .btn{margin-top:auto}
.plan-note{margin-top:12px;font-size:.8125rem;line-height:1.5;color:var(--ink-faint);text-align:center}
.help-line{display:flex;gap:12px;align-items:flex-start;margin-top:24px;padding:18px 20px;border-radius:var(--radius);background:var(--tint);border:1px solid var(--cube-24);line-height:1.6}
.help-line .cube{margin-top:4px}

/* ---------- FAQ ---------- */
.faq-grid{display:grid;gap:8px}
@media (min-width:980px){.faq-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.7fr);gap:48px;align-items:start}}
.faq-aside p{margin-top:14px;color:var(--ink-soft)}
.faq-list details{border-top:1px solid var(--line)}
.faq-list details:last-child{border-bottom:1px solid var(--line)}
.faq-list summary{display:flex;gap:12px;align-items:flex-start;padding:18px 0;cursor:pointer;list-style:none;font:700 1.0625rem/1.4 var(--disp);letter-spacing:-.01em;color:var(--ink)}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary .icon{width:20px;height:20px;margin-top:2px;color:var(--blue-700);transition:transform var(--dur) var(--ease)}
.faq-list details[open] summary .icon{transform:rotate(90deg)}
.faq-list summary:hover{color:var(--blue-800)}
.faq-list .answer{max-width:68ch;padding:0 0 20px 32px;color:var(--ink-soft)}

/* ---------- Pied de page ---------- */
.site-footer{padding:40px 0 28px;border-top:1px solid var(--line);background:var(--tint);color:var(--ink-soft);font-size:.875rem;line-height:1.65}
.footer-grid{display:grid;gap:28px}
@media (min-width:900px){.footer-grid{grid-template-columns:minmax(0,1fr) minmax(0,.8fr) minmax(0,1.3fr);gap:40px;align-items:start}}
.footer-logo{display:inline-block}
.footer-logo img{width:auto;height:34px}
.footer-tagline{margin-top:14px;font-weight:600;color:var(--ink)}
.footer-about{margin-top:2px}
.footer-nav ul{list-style:none;display:grid;gap:4px}
.footer-nav a,.footer-id a{color:var(--ink-soft);text-decoration-color:transparent}
.footer-nav a:hover,.footer-id a:hover{color:var(--blue-800);text-decoration-color:currentColor}
.footer-nav .lang-switch{margin-top:16px}
.footer-id{font-style:normal}
.footer-id b{color:var(--ink)}
.footer-bottom{margin-top:28px;padding-top:16px;border-top:1px solid var(--line);font-size:.8125rem}

/* ---------- En-tête de page (pages intérieures) ---------- */
.page-head{padding-block:40px 8px}
@media (min-width:900px){.page-head{padding-block:56px 12px}}
.page-head h1{font-size:clamp(1.9rem,1.35rem + 2.3vw,2.75rem);overflow-wrap:anywhere}
.page-head .desc{margin-top:16px;max-width:62ch;font-size:1.0625rem;line-height:1.6;color:var(--ink-soft)}
.meta-line{display:flex;flex-wrap:wrap;gap:4px 0;margin-top:14px;font-size:.875rem;line-height:1.5;color:var(--ink-faint)}
.meta-line > span:not(:last-child)::after{content:"\00B7";margin:0 10px;color:var(--neutral-300)}
.meta-line a{color:var(--ink-soft)}
@media (max-width:599.98px){.meta-line{flex-direction:column}.meta-line > span::after{display:none!important}}
.page-body{padding-block:24px 72px}
@media (min-width:900px){.page-body{padding-block:28px 96px}}
.two-col{display:grid;gap:28px}
@media (min-width:980px){.two-col{grid-template-columns:minmax(0,1fr) minmax(0,452px);gap:48px;align-items:start}}
.aside-box{padding:24px 20px}
@media (min-width:768px){.aside-box{padding:28px}}
.aside-box h2{font-size:1.25rem}
.aside-box .cube-list{margin-top:14px}
.aside-box .trust{margin-top:22px;flex-direction:column;gap:2px}
.aside-box .trust li::after{display:none}

/* ---------- Suivi d'audit ---------- */
.progress-card{max-width:760px;padding:24px 20px}
@media (min-width:768px){.progress-card{padding:28px 32px}}
.progress-top{display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.status-label{font-weight:600}
.progress-pct{font:600 .875rem/1 var(--sans);font-variant-numeric:tabular-nums;color:var(--blue-700);white-space:nowrap}
.progress{height:8px;margin-top:12px;border-radius:var(--pill);background:var(--neutral-100);overflow:hidden}
.progress-fill{height:100%;border-radius:var(--pill);background:var(--urdina);transition:width .6s var(--ease)}
.steps-list{list-style:none;display:grid;margin-top:20px}
.steps-list li{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--line);color:var(--ink-faint);line-height:1.4}
.steps-list li[data-state="done"]{color:var(--ink)}
.steps-list li[data-state="active"]{color:var(--ink);font-weight:600}
.steps-list li[data-state="active"] .cube{animation:v2pulse 1.4s ease-in-out infinite}
.progress-note{margin-top:16px;font-size:.875rem;line-height:1.55;color:var(--ink-soft)}
.state-box{display:flex;gap:16px;align-items:flex-start;max-width:760px;padding:22px 20px}
@media (min-width:768px){.state-box{padding:26px 28px}}
.state-box--ready{border-color:var(--urdina)}
.state-box .cube{margin-top:2px}
.success-box{margin-top:28px}
.state-box h2{font-size:1.375rem}
.state-box p{margin-top:6px;color:var(--ink-soft)}
.state-box .btn-row{margin-top:16px}
.state-box .state-body{flex:1;min-width:0}
.state-box .progress-card{max-width:none;margin-top:18px;padding:0;border:0;box-shadow:none}

/* Score : jauge éditoriale (nombre tabulaire + barre fine), jamais d'anneau */
.score-panel{display:grid;gap:28px;padding:24px 20px}
@media (min-width:880px){.score-panel{grid-template-columns:300px minmax(0,1fr);gap:44px;padding:32px}}
.mini-label{font:600 .72rem/1.3 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint)}
.gauge-num{display:flex;align-items:baseline;gap:6px;margin-top:10px}
.gauge-value{font:700 4.75rem/.9 var(--disp);letter-spacing:-.045em;font-variant-numeric:tabular-nums;color:var(--ink)}
.gauge-max{font:700 1.25rem/1 var(--disp);color:var(--ink-faint)}
.gauge-track{position:relative;height:10px;margin-top:20px;border-radius:var(--pill);background:var(--neutral-100)}
.gauge-fill{position:absolute;top:0;bottom:0;left:0;border-radius:var(--pill);background:var(--urdina)}
.gauge-tick{position:absolute;top:-3px;bottom:-3px;width:1px;background:var(--neutral-300)}
.gauge-scale{position:relative;height:16px;margin-top:6px;font-size:.75rem;line-height:16px;color:var(--ink-faint);font-variant-numeric:tabular-nums}
.gauge-scale span{position:absolute;top:0;transform:translateX(-50%)}
.gauge-scale span:first-child{transform:none}
.gauge-scale span:last-child{transform:translateX(-100%)}
.gauge-verdict{margin-top:16px}
.axes-title{font-size:1.0625rem}
.axis-rows{list-style:none;display:grid;margin-top:10px}
.axis-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name badge" "track val";gap:8px 14px;align-items:center;padding:13px 0;border-top:1px solid var(--line)}
@media (min-width:640px){.axis-row{grid-template-columns:minmax(150px,210px) minmax(0,1fr) 40px 132px;grid-template-areas:"name track val badge"}}
.axis-name{grid-area:name;font-weight:600;font-size:.9375rem;line-height:1.3}
.axis-name small{display:block;margin-top:2px;font-weight:400;font-size:.75rem;color:var(--ink-faint)}
.axis-track{grid-area:track;height:8px;border-radius:var(--pill);background:var(--neutral-100);overflow:hidden}
.axis-fill{display:block;height:100%;border-radius:var(--pill);background:var(--urdina)}
.axis-val{grid-area:val;font-weight:700;font-variant-numeric:tabular-nums;text-align:right}
.axis-badge{grid-area:badge;justify-self:end}
.legend-line{margin-top:14px;font-size:.8125rem;line-height:1.5;color:var(--ink-faint)}

/* Badges de diagnostic : couleur sémantique + icône + mot (jamais la couleur seule) */
.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 8px;border:1px solid transparent;border-radius:var(--pill);font:600 .75rem/1.4 var(--sans);white-space:nowrap}
.badge .icon{width:14px;height:14px}
.badge--ok{background:var(--ok-bg);border-color:var(--ok-line);color:var(--ok-ink)}
.badge--warn{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn-ink)}
.badge--bad{background:var(--bad-bg);border-color:var(--bad-line);color:var(--bad-ink)}
.badge--none{background:var(--neutral-100);color:var(--ink-soft)}

.teaser-grid{display:grid;gap:24px;margin-top:24px}
.paid-score{margin-top:28px}
@media (min-width:980px){.teaser-grid{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:28px;align-items:start}}
.block-title{font-size:1.25rem}
.block-lead{margin-top:6px;font-size:.9375rem;line-height:1.55;color:var(--ink-soft)}
.findings{list-style:none;margin-top:14px;padding:4px 20px}
@media (min-width:768px){.findings{padding:4px 28px}}
.finding{display:grid;gap:10px;padding:20px 0;border-top:1px solid var(--line)}
.finding:first-child{border-top:0}
@media (min-width:700px){.finding{grid-template-columns:150px minmax(0,1fr);gap:20px}}
.finding h3{font-size:1.0625rem}
.finding p{margin-top:6px;color:var(--ink-soft);font-size:.9688rem;line-height:1.65}
.chips{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.chip{display:inline-flex;align-items:center;max-width:100%;padding:6px 12px;border:1px solid var(--line);border-radius:var(--pill);background:var(--card);font:500 .875rem/1.3 var(--sans);overflow-wrap:anywhere}
.side-box{margin-top:14px;padding:22px 20px}
.side-box .block-lead{margin-top:0}
@media (min-width:768px){.side-box{padding:24px 26px}}
.note-line{display:flex;gap:10px;align-items:flex-start;margin-top:16px;font-size:.875rem;line-height:1.55;color:var(--ink-soft)}
.note-line .cube{margin-top:3px}

/* Aperçu verrouillé (paywall) : contenu factice flouté + cadenas, sans emoji */
.paywall{margin-top:56px;padding-top:48px;border-top:1px solid var(--line)}
.locked-layout{display:grid;gap:24px}
@media (min-width:980px){.locked-layout{grid-template-columns:minmax(0,1fr) minmax(0,384px);gap:32px;align-items:start}}
.locked-list{list-style:none;padding:6px 20px}
@media (min-width:768px){.locked-list{padding:6px 28px}}
.locked-item{padding:20px 0;border-top:1px solid var(--line)}
.locked-item:first-child{border-top:0}
.locked-title{display:flex;gap:10px;align-items:flex-start;font:700 1.0625rem/1.4 var(--disp);letter-spacing:-.01em}
.locked-title .icon{width:18px;height:18px;margin-top:3px;color:var(--ink-faint)}
.locked-preview{margin-top:12px;padding:12px 14px;border-radius:var(--radius-sm);background:var(--neutral-100);overflow:hidden}
.locked-preview > div{filter:blur(6px);user-select:none;pointer-events:none}
.fake-row{display:grid;grid-template-columns:minmax(0,2.2fr) 48px 56px;gap:12px;padding:3px 0;font-size:.875rem;line-height:1.5;color:var(--ink-soft)}
.fake-bar{display:grid;grid-template-columns:110px minmax(0,1fr);gap:12px;align-items:center;padding:4px 0;font-size:.875rem;color:var(--ink-soft)}
.fake-bar i{display:block;height:10px;border-radius:var(--pill);background:var(--urdina)}
.fake-text{font-size:.9375rem;line-height:1.6;color:var(--ink-soft)}
.locked-more{padding:20px 0;border-top:1px solid var(--line)}
@media (max-width:599.98px){.locked-item:nth-child(n+3) .locked-preview{display:none}}
.locked-more .mini-label{display:block;margin-bottom:10px}
.locked-more ul{list-style:none;display:flex;flex-wrap:wrap;gap:8px}
.locked-more li{display:inline-flex;align-items:center;gap:7px;padding:5px 12px 5px 10px;border:1px solid var(--line);border-radius:var(--pill);background:var(--card);font-size:.875rem;line-height:1.3;color:var(--ink-soft)}
.locked-more li .icon{width:13px;height:13px;color:var(--ink-faint)}
.buy{padding:24px 20px}
@media (min-width:768px){.buy{padding:28px}}
@media (min-width:980px){.buy{position:sticky;top:calc(var(--header-h) + 20px)}}
.buy h3{font-size:1.25rem}
.buy .price{margin-top:10px}
.buy .cube-list{margin:20px 0 22px;font-size:.9375rem}
.buy-form{display:grid;gap:16px;padding-top:20px;border-top:1px solid var(--line)}
.secure{display:flex;align-items:flex-start;gap:8px;font-size:.8125rem;line-height:1.45;color:var(--ink-faint)}
.secure .icon{width:14px;height:14px;margin-top:2px}

/* ---------- Pages légales (écran de lecture, partie B de la charte) ---------- */
.prose{max-width:54ch;font-size:1rem;line-height:1.7;color:var(--ink)}
.prose h2{margin:44px 0 12px;font-size:1.5rem;line-height:1.15}
.prose h2:first-child{margin-top:8px}
.prose h3{margin:26px 0 8px;font-size:1.0625rem;line-height:1.3}
.prose p,.prose ul,.prose ol,.prose dl,.prose table{margin:0 0 14px}
.prose ul,.prose ol{padding-left:1.3em}
.prose li{margin:5px 0}
.prose li::marker{color:var(--blue-700)}
.prose dl{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);gap:6px 18px}
.prose dt{font-weight:600}
.prose dd{color:var(--ink-soft)}
@media (max-width:560px){.prose dl{grid-template-columns:1fr;gap:0}.prose dd{margin-bottom:10px}}
.table-wrap{overflow-x:auto;margin:0 0 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card)}
.prose table{width:100%;margin:0;border-collapse:collapse;font-size:.9375rem;line-height:1.55}
.prose th,.prose td{padding:11px 14px;text-align:left;vertical-align:top}
.prose thead th{background:var(--tint);color:var(--blue-800);font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid var(--line)}
.prose tbody td{border-top:1px solid var(--line)}
.prose tbody tr:first-child td{border-top:0}
.legal-note{max-width:54ch;margin-bottom:28px}
.updated{margin-top:12px;font-size:.875rem;color:var(--ink-faint)}

/* ---------- Pages d'erreur et pages simples ---------- */
.simple-page{padding-block:48px 96px}
@media (min-width:900px){.simple-page{padding-block:72px 120px}}
.simple-page .desc{margin-top:16px;max-width:58ch;font-size:1.0625rem;line-height:1.6;color:var(--ink-soft)}
.simple-page .btn-row{margin-top:28px}
.error-code{display:flex;align-items:center;gap:14px;margin-bottom:22px;font:700 clamp(3.5rem,2.6rem + 4vw,5.5rem)/1 var(--disp);letter-spacing:-.04em;font-variant-numeric:tabular-nums;color:var(--neutral-300)}

/* ---------- Animations « Lumière » ---------- */
@keyframes v2in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes v2pulse{0%,100%{opacity:1}50%{opacity:.45}}
@keyframes v2draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
.v2in{animation:v2in .35s ease both}
.v2pulse{animation:v2pulse 1.4s ease-in-out infinite}
.v2draw{stroke-dasharray:1;stroke-dashoffset:1;animation:v2draw .7s var(--ease) .12s forwards}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .v2in{animation:none!important}
  .v2draw{animation:none!important;stroke-dashoffset:0}
  .steps-list li[data-state="active"] .cube,.v2pulse{animation:none!important}
}
