/* Page d'accueil (index.html et en/index.html), gabarit « Registre ».
   Besoins propres à la page uniquement, jetons de :root seulement (aucune nouvelle couleur). */

/* Titres de niveau 4 conservés de la page d'origine (étapes, cellules) : sans la marge par défaut du navigateur */
main h4{margin:0}

/* Méthode EN (3 étapes) : sur la grille à 2 colonnes, la dernière carte seule prend toute la largeur (comme .cells--3).
   Sans effet sur la pile collante à 1 colonne du mode animé, ni sur les 4 étapes du FR. */
@media (min-width:64rem){.steps>:last-child:nth-child(odd){grid-column:1/-1}}

/* Schémas repris de la page d'origine (pile, matrice) : texte en chasse fixe, comme avant */
.dgm{font-family:var(--font-mono)}

/* Schémas : palette d'origine ramenée aux jetons nuit « Registre », sans toucher au balisage ni au texte */
.dgm text[fill="#d4e4fa" i]{fill:var(--on-night)}
.dgm :is(text,circle)[fill="#8b97b5" i]{fill:var(--on-night-2)}
.dgm circle[fill="#c0c5e7" i]{fill:var(--on-night)}
.dgm [stroke="#1A3A8F" i]{stroke:var(--perimeter-line)}
.dgm [stroke="#34d399" i]{stroke:var(--ok-night)}
.dgm [fill="#34d399" i]{fill:var(--ok-night)}
.dgm rect:is([fill="#122131" i],[fill="#0d1c2d" i]){fill:var(--night-2)}
.dgm rect[fill="rgba(52,211,153,.10)"]{fill:var(--ok-night);fill-opacity:.1}
.dgm rect[fill="rgba(192,197,231,.06)"]{fill:var(--on-night);fill-opacity:.06}

/* Schéma de la pile : viewBox de 800 unités, largeur lisible conservée sous 47.5rem (le cadre défile).
   Sous-libellés agrandis (8 et 8.5 unités d'origine, illisibles) : ils tiennent dans leurs cadres en FR et en EN */
#stack .diagram--scroll>svg{--diagram-min:50rem}
#stack .dgm text[font-size="8"]{font-size:10.5px}
#stack .dgm text[font-size="8.5"]{font-size:10px}

/* « Par où commencer ? » : texte et aperçu de la matrice côte à côte quand la colonne le permet.
   Filet haut retiré quand il suit la liste à filets (.cells) : un seul trait entre les deux blocs */
.audit{display:grid;gap:var(--space-l);align-items:start;padding-block:var(--space-l);border-block:1px solid var(--line)}
#decision .cells+.audit{border-top:0}
.audit .diagram{max-width:24rem;padding:var(--space-xs)}
/* Matrice réduite à environ 320 px (viewBox de 340) : texte porté à 12 unités (≈ 11 px rendus au lieu de 9,4 à 10,6),
   libellés toujours dans leur quadrant et chiffres dans leurs pastilles, en FR comme en EN */
.audit .dgm text{font-size:12px}
@container body (min-width:48rem){.audit{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}}

/* Accueil EN : la question d'exemple reste un titre (h2) dans la barre de la fenêtre de réponse */
.answer__bar h2{font:inherit;color:inherit}

/* Pied de page de l'accueil (plus fourni que le partial) : la mention longue prend la largeur disponible */
@media (min-width:64rem){.site-footer--home .site-footer__meta{grid-template-columns:minmax(0,1fr) auto auto}}

/* Héros sans ligne de preuve (accueil EN) : respiration avant la bande suivante */
.hero__grid:last-child{padding-bottom:var(--space-2xl)}

/* Simulateur ROI (balisage généré par roi-widget.js, base dans site.css § 28) : mêmes compléments que
   assets/pages/simulateur-roi.css. Boutons d'export côte à côte : le widget les place à la racine, la grille
   de § 28 les empilerait ; l'espacement passe par gap, d'où la marge de § 28 ramenée à zéro sur ces boutons. */
.px-roi{display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--space-m) .75rem}
.px-roi>*{flex:1 1 100%;min-width:0}
.px-roi>button{flex:0 0 auto;margin:0}

/* Volets d'hypothèses et de calculs : indicateur « + » / « − » à la place du triangle natif */
.px-roi summary{gap:1rem;list-style:none}
.px-roi summary::-webkit-details-marker{display:none}
.px-roi summary::after{content:"+";content:"+" / "";margin-left:auto;font:400 1.25rem/1 var(--font-mono);color:var(--fg-2)}
.px-roi details[open]>summary::after{content:"−";content:"−" / ""}

/* Légende des tableaux au format des sur-titres ; chiffre clé des cartes sur une seule ligne (unité comprise) */
.px-roi caption{caption-side:top;padding-bottom:.75rem;text-align:left;font:500 var(--step-label)/1.3 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--fg-2)}
.px-roi strong[data-result]{font-size:clamp(1.5rem,1.2rem + .8vw,1.875rem)}

/* Champs alignés sur une même rangée de .roi-grid (2 ou 3 colonnes) : le libellé, étiré à la hauteur de la rangée,
   reste en haut et son champ se cale en bas, même quand un libellé voisin passe sur deux lignes (§ 28 : align-content:start) */
.px-roi .roi-grid>label{grid-template-rows:1fr auto}

/* Volet des calculs : le titre du second tableau se détache du dernier filet du tableau « Détail des résultats » */
.px-roi .roi-table+h3{margin-top:var(--space-m)}

/* Formulaire de contact : explication au-dessus du bouton ; flèche noire dans le bouton, à droite du libellé */
.form-submit-hint{margin:0 0 calc(var(--space-s) * -1);font-size:var(--step-small);line-height:1.45;color:var(--ink-2)}
.form-grid .btn .btn__arrow{flex:none;width:1.25rem;height:1.25rem;color:currentColor;stroke-width:2.25}
@keyframes form-nudge{50%{transform:translateX(4px)}}
@media (prefers-reduced-motion:no-preference){:root:not([data-motion="off"]) .form-grid .btn .btn__arrow{animation:form-nudge 1.1s ease-in-out .6s 3}}

/* Références « Clients » (#references, EN #clients) : fiches restaurées de la version du 1er août 2026.
   Deux fiches côte à côte dès 64rem, empilées en dessous. Chaque fiche est un conteneur (client) :
   ses trois tuiles de chiffres s'empilent quand la fiche est trop étroite pour les libellés. */
.clients{display:grid;gap:var(--col-gap)}
@media (min-width:64rem){.clients{grid-template-columns:repeat(2,minmax(0,1fr))}}
.client{--bg:var(--night-2);container:client/inline-size;display:flex;flex-direction:column;gap:var(--space-s);min-width:0;padding:clamp(1.25rem,1rem + 1.5vw,2.5rem);background:var(--bg);border:1px solid var(--line-strong)}
/* Logos sur fond clair arrondi ; filet entre les deux logos d'Annemasse */
.client__logos{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-s);align-self:flex-start;max-width:100%;padding:var(--space-xs) var(--space-s);background:var(--paper);border-radius:var(--r-2)}
.client__logo{width:auto;height:2.75rem}
.client__logo--s{height:2rem}
.client__logo--l{height:3rem}
.client__logo+.client__logo{padding-left:var(--space-s);border-left:1px solid var(--rule)}
.client__label{display:flex;align-items:center;gap:.5rem}
.client__label .icon,.client__award .icon{color:var(--orange)}
/* Distinction : filet orange, texte appuyé */
.client__award{display:flex;align-items:flex-start;gap:var(--space-xs);padding:var(--space-s);background:var(--night);border-left:3px solid var(--orange);font-weight:600;font-size:1.125rem;line-height:1.4}
.client__award .icon{margin-top:.1em}
.client__award .muted{font-weight:400}
/* Chiffres en trois tuiles */
.client__figures{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2xs)}
.client__figures li{display:grid;gap:.375rem;align-content:start;justify-items:center;min-width:0;padding:var(--space-s) var(--space-2xs);background:var(--night);border:1px solid var(--line);text-align:center}
.client__value{font-size:clamp(1.5rem,7cqi,2.25rem);font-weight:300;line-height:1;letter-spacing:-.03em;white-space:nowrap;font-variant-numeric:tabular-nums}
.client__unit{font:400 var(--step-label)/1.35 var(--font-mono);color:var(--fg-2)}
@container client (max-width:21.99rem){
  .client__figures{grid-template-columns:1fr}
  .client__figures li{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:flex-start;gap:.25rem var(--space-xs);padding-inline:var(--space-s);text-align:left}
}
/* Citation du maire : corps de texte plutôt que chapeau, la fiche reste lisible à côté de sa voisine */
.client .quote blockquote{font-size:1.125rem}
/* Pied de fiche calé en bas (liens alignés d'une fiche à l'autre) ; encadré « Preuve de scalabilité » */
.client__foot{display:grid;gap:var(--space-s);margin-top:auto;padding-top:var(--space-2xs)}
.client__scale{display:grid;gap:var(--space-2xs);padding:var(--space-s);background:var(--night);border:1px solid var(--line)}
.client__scale .label{color:var(--orange)}
/* Cartes qui suivent les fiches : la section passe en pleine largeur, on garde une longueur de ligne lisible (EN : une seule carte) */
.clients~.cells p{max-width:68ch}
