/*! Revalta — revalta-app.css v1.0.0 (31/10/2026). Feuille unique de l'application app.revalta.com : tokens, typographie, boutons revalta-btn*, champs et primitives, section revalta-section-onboarding, mouvement. Polices auto-hébergées (../fonts/), aucun appel à un serveur tiers. Générée depuis le design system ; ne pas modifier à la main. */
/* fonts/fonts.css (chemins réécrits pour dist/) */
/* Revalta v2 — Instrument Sans (Rodrigo Fuenzalida, Instrument, SIL OFL), auto-hébergée. Variable wdth/wght 400–700 ; aucun italique dans la charte (l'italique fourni n'est volontairement pas déclaré). */
@font-face { font-family: "Instrument Sans"; src: url("../fonts/InstrumentSans-VariableFont_wdth,wght.ttf") format("truetype-variations"), url("../fonts/InstrumentSans-VariableFont_wdth,wght.ttf") format("truetype"); font-weight: 400 700; font-stretch: 100%; font-style: normal; font-display: swap; }

/* tokens/colors.css */
/* Revalta v2 — couleurs. Base : papier / encre / ardoise / bleu encre / marine ; identité web : blanc chaud, bleu très clair, or. Aucun #000, aucun #fff pur (hors texte du bouton or). */
:root {
  /* Base — surface papier (défaut web) */
  --revalta-bg: #F5F3EE;                 /* papier — bande "paper" */
  --revalta-light: #FBFAF7;              /* blanc chaud — sol web, cartes sur papier */
  --revalta-sky: #E8EEF7;                /* bleu très clair — bande et panneau */
  --revalta-fg1: #101C33;                /* encre — texte principal */
  --revalta-fg2: #5A6579;                /* ardoise — texte secondaire, 5,3:1 sur papier */
  --revalta-accent: #1F71DE;             /* bleu action — 4,50:1 sur blanc chaud, 4,23:1 sur papier, 4,02:1 sur sky (12/10/2026, ex #1F4B8F) */
  --revalta-sep: rgba(16, 28, 51, 0.16); /* filet — l'encre atténuée */
  /* Inverse — surface marine (sections inverses, vidéo) */
  --revalta-bg-inverse: #0F1B33;         /* marine */
  --revalta-fg1-inverse: #F5F3EE;        /* papier sur marine */
  --revalta-fg2-inverse: #A7B1C4;        /* secondaire sur marine, 7,9:1 */
  --revalta-accent-inverse: #1F71DE;     /* accent sur marine, 3,65:1 : jamais pour un texte de moins de 18 px (12/10/2026, ex glace #8FB3E3, conservée en vidéo) */
  --revalta-sep-inverse: rgba(245, 243, 238, 0.16);
  --revalta-accent-default: #1F71DE;
  --revalta-sep-default: rgba(16, 28, 51, 0.16);
  /* Or — valeurs et reconnaissance (montants, chiffres, numéros, étoiles) */
  --revalta-gold: #A67F26;               /* sur papier/blanc : échelle titre ou glyphes, jamais texte courant */
  --revalta-gold-inverse: #D9B45B;       /* sur marine : peut porter du texte courant */
  --revalta-gold-deep: #8A6A1F;          /* bouton or, texte blanc (5:1) */
  /* Pages de flux (31/10/2026) — sol des pages de flux : alias validé, aucune nouvelle valeur */
  --revalta-w-floor-flow: var(--revalta-light);
  /* États (31/10/2026) — réservés à « refusé » / « validé » et aux alertes de l'application. Jamais décoratifs, jamais dans une section marketing. */
  --revalta-error: #9B4A3C;              /* brique éteinte — 5,8:1 sur blanc chaud */
  --revalta-success: #4E6B5C;            /* vert gris — 5,6:1 sur blanc chaud */
  --revalta-error-inverse: #F2C9BE;      /* sur marine — 11,4:1 (valeur d'erreur de la référence de souscription) */
  --revalta-success-inverse: #BFD8C8;    /* sur marine — 11,4:1 */
  /* Voiles sur image (grain 0.2 overlay en plus) */
  --revalta-veil: rgba(251, 250, 247, 0.72);      /* voile clair — texte encre */
  --revalta-veil-inverse: rgba(15, 27, 51, 0.66); /* voile sombre — texte papier */
  /* Sémantique */
  --surface-page: var(--revalta-light);
  --surface-band-paper: var(--revalta-bg);
  --surface-band-sky: var(--revalta-sky);
  --surface-inverse: var(--revalta-bg-inverse);
  --surface-card: var(--revalta-light);
  --surface-glass: rgba(245, 243, 238, 0.06); /* verre dépoli sur marine (+ flou 12px) */
  --text-body: var(--revalta-fg1);
  --text-secondary: var(--revalta-fg2);
  --text-on-inverse: var(--revalta-fg1-inverse);
  --text-secondary-on-inverse: var(--revalta-fg2-inverse);
  --text-value: var(--revalta-gold);
  --action-primary: var(--revalta-accent);
  --action-primary-hover: var(--revalta-fg1);
  --border-hairline: var(--revalta-sep);
  --focus-ring: var(--revalta-accent);
}
/* Bascule : dans une surface inverse, accent et filet prennent leur valeur inverse. */
.revalta-section-inverse, .revalta-bg-B, [data-revalta-surface="inverse"] {
  --revalta-accent: var(--revalta-accent-inverse);
  --revalta-sep: var(--revalta-sep-inverse);
  --text-value: var(--revalta-gold-inverse);
  --surface-card: var(--surface-glass);
  --revalta-error: var(--revalta-error-inverse);
  --revalta-success: var(--revalta-success-inverse);
}
[data-revalta-surface="default"] {
  --revalta-accent: var(--revalta-accent-default);
  --revalta-sep: var(--revalta-sep-default);
  --revalta-eyebrow: initial;
}
/* Eyebrow sur marine : hérite de la couleur de la surface (#1F71DE n'atteint pas AA sur marine en 12 px) — 12/10/2026 */
.revalta-section-inverse { --revalta-eyebrow: currentColor; }

/* tokens/typography.css */
/* Revalta v2 — typographie. Instrument Sans 400 / 500 / 600 ; aucun italique, aucun 300, aucun 700. */
:root {
  --revalta-font: "Instrument Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --revalta-w-light: 400;   /* @kind font */ /* corps, chiffres, mentions */
  --revalta-w-medium: 500;  /* @kind font */ /* labels, boutons, h3, nom de produit */
  --revalta-w-title: 600;   /* @kind font */ /* h1 / h2 web seulement */
  /* Échelle web (identité 2026) */
  --revalta-web-size-body: 17px;
  --revalta-web-lh-body: 1.55; /* @kind font */
  --revalta-web-size-h1: clamp(36px, 3.9vw, 58px);
  --revalta-web-size-hero: clamp(36px, 3.9vw, 58px); /* titre du hero ; agrandi sur mobile ci-dessous */
  --revalta-web-size-h2: clamp(32px, 3.6vw, 52px);
  --revalta-web-size-h3: 22px;
  --revalta-web-size-lede: clamp(17px, 1.3vw, 20px);
  --revalta-web-size-small: 15px;
  --revalta-web-size-meta: 13px;
  --revalta-web-size-eyebrow: 12px;
  --revalta-web-size-figure: clamp(30px, 2.8vw, 40px);
  --revalta-web-size-score: clamp(56px, 6vw, 84px);
  /* Échelle vidéo 1920×1080 */
  --revalta-size-titleHero: 88px;
  --revalta-size-titleSection: 48px;
  --revalta-size-body: 32px;
  --revalta-size-label: 14px;
  --revalta-size-legalMentions: 18px;
  --revalta-size-productNameSmall: 22px;
  --revalta-lh-tight: 1.1;    /* @kind font */
  --revalta-lh-normal: 1.5;   /* @kind font */
  --revalta-lh-relaxed: 1.7;  /* @kind font */
  --revalta-lh-legal: 1.8;    /* @kind font */
  --revalta-ls-label: 0.15em; /* @kind font */
  --revalta-ls-title: -0.03em; /* @kind font */
  --revalta-ls-default: 0;    /* @kind font */
  /* Sémantique */
  --font-body: var(--revalta-font);
  --font-display: var(--revalta-font);
}
/* Mobile : le titre du hero occupe la largeur (≈ 55 px à 375, 64 px max). */
@media (max-width: 900px) { :root { --revalta-web-size-hero: clamp(40px, calc(8px + 12.5vw), 64px); } }

/* tokens/spacing.css */
/* Revalta v2 — espacement, rayons, largeur, header, ombres. */
:root {
  /* Web */
  --revalta-web-pad-section: 96px;  /* padding vertical des sections */
  --revalta-web-pad-x: 5vw;         /* gouttière latérale (9vw → 5vw le 12/10/2026) */
  --revalta-web-gap-block: 64px;    /* en-tête → contenu */
  --revalta-web-gap-tight: 10px;    /* eyebrow → titre → lede (24 → 10 le 12/10/2026) */
  --revalta-max: 1350px;            /* largeur de contenu (1240 → 1350 le 12/10/2026) */
  --revalta-header-h: 90px;         /* header fixe au repos */
  --revalta-header-h-scrolled: 72px;
  /* Rayons — tout est rond sur le web (image franche à bords vifs exceptée) */
  --revalta-r-panel: 28px;  /* panneaux contenus, simulateur, grands cadres image */
  --revalta-r-card: 20px;   /* cartes, vignettes, résultats */
  --revalta-r-field: 16px;  /* champs, options, lignes d'accordéon */
  --revalta-r-pill: 999px;  /* boutons, puces, badges, sélecteurs, segments */
  /* Composants */
  --revalta-btn-pad: 15px 24px;
  --revalta-btn-pad-sm: 12px 20px;
  --revalta-card-pad: 28px;
  --revalta-card-gap: 14px;
  --revalta-option-pad: 20px;       /* option du questionnaire ; 14 px en hauteur réduite */
  --revalta-grid-gap: 20px;
  /* Vidéo 1920×1080 */
  --revalta-pad-frame: 144px;
  --revalta-gap-block: 48px;
  --revalta-gap-tight: 12px;
  /* Ombres — deux exceptions fonctionnelles seulement (sous-menu, lift) */
  --revalta-shadow-menu: 0 18px 48px rgba(15, 27, 51, 0.12);
  --revalta-shadow-lift: 0 12px 32px rgba(15, 27, 51, 0.08);
  --revalta-glass-blur: 22px;
}
@media (max-height: 680px), (max-width: 560px) and (max-height: 780px) {
  :root { --revalta-option-pad: 14px; }
}
@media (max-width: 768px) {
  :root { --revalta-web-pad-section: 64px; --revalta-web-pad-x: 22px; --revalta-web-gap-block: 48px; --revalta-web-gap-tight: 10px; }
}

/* tokens/motion.css */
/* Revalta v2 — motion. easeOutCubic pour les entrées, easeInOutCubic pour les interactions. Jamais de rebond, rotation, zoom, blur. */
:root {
  --revalta-fps: 30; /* @kind other */
  --revalta-ease: cubic-bezier(0.33, 1, 0.68, 1);        /* @kind other */ /* easeOutCubic — entrées, reveal */
  --revalta-ease-inout: cubic-bezier(0.65, 0, 0.35, 1);  /* @kind other */ /* easeInOutCubic — interactions, wipe */
  --revalta-fade-in: 600ms;    /* @kind other */ /* 18 frames */
  --revalta-fade-out: 467ms;   /* @kind other */ /* 14 frames */
  --revalta-stagger: 200ms;    /* @kind other */ /* 6 frames */
  --revalta-hover: 200ms;      /* @kind other */
  --revalta-translateY: 20px;
  --revalta-translateY-out: -12px;
  --revalta-lift-y: -2px;
  --revalta-arrow-x: 4px;
}
@keyframes revalta-fade-in { from { opacity: 0; transform: translateY(var(--revalta-translateY)); } to { opacity: 1; transform: translateY(0); } }
@keyframes revalta-fade-out { from { opacity: 1; transform: translateY(0); } to { opacity: 0; transform: translateY(var(--revalta-translateY-out)); } }

/* Base application — sol, texte, liens de prose, focus, surface inverse (sous-ensemble de tokens/base.css, sans header, bandes ni sections marketing) */
.revalta,.revalta *{box-sizing:border-box}
body.revalta{margin:0;background:var(--surface-page)}
.revalta{color:var(--revalta-fg1);font-family:var(--revalta-font);font-weight:var(--revalta-w-light);font-size:var(--revalta-web-size-body);line-height:var(--revalta-web-lh-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-variant-numeric:tabular-nums}
.revalta-section-inverse{background:var(--revalta-bg-inverse);color:var(--revalta-fg1-inverse)}
.revalta-section-inverse:not([data-revalta-broll]){background-image:linear-gradient(315deg,var(--revalta-accent),var(--revalta-bg-inverse) 53%)}
.revalta-gold{color:var(--revalta-gold)}
.revalta-section-inverse .revalta-gold{color:var(--revalta-gold-inverse)}
.revalta a:not([class]){color:inherit;text-decoration:underline;text-decoration-color:var(--revalta-accent);text-decoration-thickness:1px;text-underline-offset:.18em;transition:color var(--revalta-hover) var(--revalta-ease)}
.revalta a:not([class]):hover{color:var(--revalta-accent)}
.revalta :focus-visible{outline:2px solid var(--revalta-accent);outline-offset:2px}

/* web/buttons.css */
/* Revalta v2 — boutons du contrat de classes (revalta-btn*) et utilitaires. Port du bloc v1 (colors_and_type.css, 28/09 et 12/10/2026), versé au v2 le 31/10/2026 pour les pages de flux et l'application. Le composant React Button en est l'équivalent visuel. */
.revalta-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:var(--revalta-btn-pad);border:1px solid transparent;border-radius:var(--revalta-r-pill);font-family:var(--revalta-font);font-size:15px;font-weight:var(--revalta-w-medium);letter-spacing:0;line-height:1.2;text-decoration:none;cursor:pointer;background:transparent;white-space:nowrap;user-select:none;-webkit-appearance:none;appearance:none;transition:background 200ms var(--revalta-ease),color 200ms var(--revalta-ease),border-color 200ms var(--revalta-ease)}
.revalta-btn:focus-visible{outline:2px solid var(--revalta-accent);outline-offset:3px}
.revalta-btn svg{width:18px;height:18px;flex-shrink:0;stroke:currentColor;stroke-width:1.5;fill:none;stroke-linecap:round;stroke-linejoin:round;transition:transform 200ms var(--revalta-ease)}
.revalta-btn:hover svg{transform:translateX(var(--revalta-arrow-x))}
.revalta-btn[disabled],.revalta-btn[aria-disabled="true"]{opacity:.45;cursor:not-allowed}
.revalta-btn[disabled]:hover svg{transform:none}
.revalta-btn-sm{padding:var(--revalta-btn-pad-sm);font-size:14px}
/* Primaire sur clair : dégradé « produit » 315°, accent → marine 53 % ; au survol, un calque où le marine n'est atteint qu'à 100 % monte en opacité (le bleu gagne le bouton ; background-image ne s'interpole pas). */
.revalta-btn-primary{position:relative;isolation:isolate;background-color:var(--revalta-bg-inverse);background-image:linear-gradient(315deg,var(--revalta-accent-default),var(--revalta-bg-inverse) 53%);color:var(--revalta-light);border-color:transparent}
.revalta-btn-primary::before{content:"";position:absolute;inset:-1px;z-index:-1;border-radius:inherit;background-image:linear-gradient(315deg,var(--revalta-accent-default),var(--revalta-bg-inverse));opacity:0;transition:opacity 200ms var(--revalta-ease);pointer-events:none}
.revalta-btn-primary:hover::before{opacity:1}
.revalta-btn-primary[disabled]::before{opacity:0}
.revalta-btn-secondary{background:transparent;color:var(--revalta-fg1);border-color:var(--revalta-fg1)}
.revalta-btn-secondary:hover{background:var(--revalta-fg1);color:var(--revalta-light)}
.revalta-btn-gold{background:var(--revalta-gold-deep);color:#fff;border-color:transparent}
.revalta-btn-gold:hover{background:var(--revalta-fg1);color:var(--revalta-light)}
.revalta-btn-ghost{background:transparent;color:inherit;border-color:transparent}
.revalta-btn-ghost:hover{background:color-mix(in srgb,currentColor 8%,transparent)}
/* Surface inverse (marine, image + voile sombre) : primaire papier, survol or ; secondaire contour papier. */
.revalta-section-inverse .revalta-btn-primary,[data-revalta-surface="inverse"] .revalta-btn-primary{background:var(--revalta-fg1-inverse);color:var(--revalta-bg-inverse);border-color:transparent}
.revalta-section-inverse .revalta-btn-primary:hover,[data-revalta-surface="inverse"] .revalta-btn-primary:hover{background:var(--revalta-gold-inverse);color:var(--revalta-bg-inverse)}
.revalta-section-inverse .revalta-btn-primary::before,[data-revalta-surface="inverse"] .revalta-btn-primary::before{display:none}
.revalta-section-inverse .revalta-btn-secondary,[data-revalta-surface="inverse"] .revalta-btn-secondary{background:transparent;color:var(--revalta-fg1-inverse);border-color:var(--revalta-fg1-inverse)}
.revalta-section-inverse .revalta-btn-secondary:hover,[data-revalta-surface="inverse"] .revalta-btn-secondary:hover{background:var(--revalta-fg1-inverse);color:var(--revalta-bg-inverse)}
.revalta-btn-group{display:flex;flex-wrap:wrap;align-items:center;gap:12px;width:auto}
@media (prefers-reduced-motion:reduce){.revalta-btn,.revalta-btn svg,.revalta-btn-primary::before{transition:none}.revalta-btn:hover svg{transform:none}}
/* Utilitaire — masqué à l'écran, lu par les lecteurs d'écran. */
.revalta-visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* web/primitives.css */
/* Revalta v2 — primitives autonomes pour l'application (espace client, administration), 31/10/2026. Dérivées des sections existantes, indépendantes d'elles ; chaque primitive lit les tokens et bascule seule sur une surface inverse (.revalta-section-inverse, [data-revalta-surface="inverse"]). Aucune couleur, aucun rayon, aucune graisse hors tokens. */

/* Carte — papier sans filet sur blanc ; blanche à filet sur papier et ciel ; verre dépoli sur marine. Rayon 20. */
.revalta-card{display:grid;gap:var(--revalta-card-gap);align-content:start;padding:var(--revalta-card-pad);border-radius:var(--revalta-r-card);background:var(--revalta-bg);border:1px solid transparent;color:var(--revalta-fg1);min-width:0}
[data-revalta-band="paper"] .revalta-card,[data-revalta-band="sky"] .revalta-card,.revalta-card-bordered{background:var(--revalta-light);border-color:var(--revalta-sep)}
.revalta-section-inverse .revalta-card,[data-revalta-surface="inverse"] .revalta-card{background:var(--surface-glass);border-color:var(--revalta-sep-inverse);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--revalta-fg1-inverse)}
.revalta-card-eyebrow{margin:0;font-size:var(--revalta-web-size-eyebrow);font-weight:500;letter-spacing:var(--revalta-ls-label);text-transform:uppercase;color:var(--revalta-fg2)}
.revalta-card-title{margin:0;font-size:20px;font-weight:500;letter-spacing:-.02em;line-height:1.25;text-wrap:balance}
.revalta-card-text{margin:0;font-size:15px;line-height:1.55;color:var(--revalta-fg2);text-wrap:pretty}
.revalta-section-inverse :is(.revalta-card-eyebrow,.revalta-card-text),[data-revalta-surface="inverse"] :is(.revalta-card-eyebrow,.revalta-card-text){color:var(--revalta-fg2-inverse)}

/* Liste de définitions libellé / valeur ; -amount sur la valeur quand c'est un montant (or) */
.revalta-facts{margin:0;display:grid}
.revalta-facts > div{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:11px 0;border-top:1px solid var(--revalta-sep);font-size:15px}
.revalta-facts > div:first-child{border-top:0}
.revalta-facts-lines > div:first-child{border-top:1px solid var(--revalta-sep)}
.revalta-facts dt{color:var(--revalta-fg2)}
.revalta-facts dd{margin:0;text-align:right;font-weight:500;font-variant-numeric:tabular-nums}
.revalta-facts .revalta-facts-amount{color:var(--text-value)}
.revalta-section-inverse .revalta-facts dt,[data-revalta-surface="inverse"] .revalta-facts dt{color:var(--revalta-fg2-inverse)}

/* Tableau sobre : filets, chiffres tabulaires */
.revalta-table{width:100%;border-collapse:collapse;font-size:15px;font-variant-numeric:tabular-nums}
.revalta-table caption{caption-side:top;text-align:left;padding:0 0 12px;font-size:15px;font-weight:500}
.revalta-table thead th{padding:0 12px 10px 0;font-size:12px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;text-align:left;color:var(--revalta-fg2);border-bottom:1px solid var(--revalta-sep)}
.revalta-table tbody th,.revalta-table td{padding:11px 12px 11px 0;border-top:1px solid var(--revalta-sep);text-align:left;vertical-align:baseline}
.revalta-table tbody tr:first-child > *{border-top:0}
.revalta-table tbody th{font-weight:400;color:var(--revalta-fg2)}
.revalta-table td{font-weight:500}
.revalta-table :is(th,td):last-child{padding-right:0}
.revalta-table .revalta-table-num{text-align:right;white-space:nowrap}
.revalta-table .revalta-table-total > *{border-top:2px solid var(--revalta-fg1);color:var(--text-value)}
.revalta-section-inverse .revalta-table :is(thead th,tbody th),[data-revalta-surface="inverse"] .revalta-table :is(thead th,tbody th){color:var(--revalta-fg2-inverse)}
.revalta-section-inverse .revalta-table .revalta-table-total > *,[data-revalta-surface="inverse"] .revalta-table .revalta-table-total > *{border-top-color:rgba(245,243,238,.4)}

/* Champ — libellé, champ à filet bas, aide, erreur (dérivé du § 21 ; sur marine, dérivé de -fields) */
.revalta-field{display:grid;gap:8px;min-width:0}
.revalta-field-label{font-size:12px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--revalta-fg2)}
.revalta-field-optional{font-size:10px;letter-spacing:.06em;text-transform:none;opacity:.8;margin-left:6px}
.revalta-field-input{width:100%;font:inherit;font-size:17px;line-height:1.4;color:inherit;background:transparent;border:0;border-bottom:1px solid var(--revalta-sep);border-radius:0;padding:10px 0;outline:0;transition:border-color 200ms var(--revalta-ease)}
textarea.revalta-field-input{resize:vertical;min-height:112px}
.revalta-field-input:focus{border-bottom-color:var(--revalta-fg1)}
.revalta-field-input:focus-visible{outline:0}
.revalta-field-hint{font-size:13px;line-height:1.5;color:var(--revalta-fg2)}
.revalta-field-error{font-size:13px;line-height:1.5;color:var(--revalta-error)}
.revalta-field-error:empty{display:none}
.revalta-field-input[aria-invalid="true"]{border-bottom-color:var(--revalta-error)}
.revalta-select{width:100%;appearance:none;-webkit-appearance:none;font:inherit;font-size:15px;font-weight:500;color:var(--revalta-fg1);background:var(--revalta-light) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23101C33' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>") no-repeat right 16px center;border:1px solid var(--revalta-sep);border-radius:var(--revalta-r-pill);padding:12px 44px 12px 18px;cursor:pointer}
.revalta-section-inverse :is(.revalta-field-label,.revalta-field-hint),[data-revalta-surface="inverse"] :is(.revalta-field-label,.revalta-field-hint){color:var(--revalta-fg2-inverse)}
.revalta-section-inverse .revalta-field-input,[data-revalta-surface="inverse"] .revalta-field-input{border-bottom-color:rgba(245,243,238,.35)}
.revalta-section-inverse .revalta-field-input:focus,[data-revalta-surface="inverse"] .revalta-field-input:focus{border-bottom-color:var(--revalta-fg1-inverse)}

/* Chip (filtre, sélection) et badge (statut) — pilules */
.revalta-chip{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border:1px solid var(--revalta-sep);border-radius:var(--revalta-r-pill);background:transparent;font:inherit;font-size:13px;font-weight:500;letter-spacing:.04em;color:var(--revalta-fg2);text-decoration:none;cursor:pointer;transition:border-color 200ms var(--revalta-ease),color 200ms var(--revalta-ease),background 200ms var(--revalta-ease)}
.revalta-chip:hover,.revalta-chip[aria-pressed="true"],.revalta-chip[aria-current="true"]{border-color:var(--revalta-fg1);color:var(--revalta-fg1)}
.revalta-chip[aria-pressed="true"],.revalta-chip[aria-current="true"]{background:color-mix(in srgb,var(--revalta-fg1) 6%,transparent)}
.revalta-chip svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.5}
.revalta-section-inverse .revalta-chip,[data-revalta-surface="inverse"] .revalta-chip{color:var(--revalta-fg2-inverse)}
.revalta-section-inverse .revalta-chip:is(:hover,[aria-pressed="true"],[aria-current="true"]),[data-revalta-surface="inverse"] .revalta-chip:is(:hover,[aria-pressed="true"],[aria-current="true"]){border-color:var(--revalta-fg1-inverse);color:var(--revalta-fg1-inverse)}
.revalta-badge{display:inline-flex;align-items:center;gap:7px;padding:5px 11px;border-radius:var(--revalta-r-pill);border:1px solid transparent;font-size:12px;font-weight:500;letter-spacing:.08em;line-height:1.3;text-transform:uppercase;white-space:nowrap;background:var(--revalta-sky);color:var(--revalta-fg1)}
.revalta-badge-paper{background:var(--revalta-bg)}
.revalta-badge-outline{background:transparent;border-color:var(--revalta-sep);color:var(--revalta-fg2)}
.revalta-badge-gold{background:var(--revalta-gold-deep);color:var(--revalta-light)}
.revalta-section-inverse .revalta-badge,[data-revalta-surface="inverse"] .revalta-badge{background:rgba(245,243,238,.10);color:var(--revalta-fg1-inverse)}
.revalta-section-inverse .revalta-badge-gold,[data-revalta-surface="inverse"] .revalta-badge-gold{background:var(--revalta-gold-inverse);color:var(--revalta-bg-inverse)}
/* États d'une pièce : attendu, déposé, en vérification, validé, refusé, expiré */
.revalta-badge[data-revalta-state]::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.revalta-badge[data-revalta-state="expected"]{background:transparent;border-color:var(--revalta-sep);color:var(--revalta-fg2)}
.revalta-badge[data-revalta-state="expected"]::before{background:transparent;box-shadow:inset 0 0 0 1px currentColor}
.revalta-badge[data-revalta-state="uploaded"]{background:var(--revalta-bg);color:var(--revalta-fg1)}
.revalta-badge[data-revalta-state="review"]{background:var(--revalta-sky);color:var(--revalta-fg1)}
.revalta-badge[data-revalta-state="validated"]{background:color-mix(in srgb,var(--revalta-success) 12%,transparent);color:var(--revalta-success)}
.revalta-badge[data-revalta-state="refused"]{background:color-mix(in srgb,var(--revalta-error) 10%,transparent);color:var(--revalta-error)}
.revalta-badge[data-revalta-state="expired"]{background:transparent;border-color:var(--revalta-sep);color:var(--revalta-fg2)}
.revalta-badge[data-revalta-state="expired"]::before{border-radius:1px;height:1.5px;width:8px}
.revalta-section-inverse .revalta-badge:is([data-revalta-state="expected"],[data-revalta-state="expired"]),[data-revalta-surface="inverse"] .revalta-badge:is([data-revalta-state="expected"],[data-revalta-state="expired"]){background:transparent;border-color:var(--revalta-sep-inverse);color:var(--revalta-fg2-inverse)}
.revalta-section-inverse .revalta-badge[data-revalta-state="validated"],[data-revalta-surface="inverse"] .revalta-badge[data-revalta-state="validated"]{background:color-mix(in srgb,var(--revalta-success) 14%,transparent);color:var(--revalta-success)}
.revalta-section-inverse .revalta-badge[data-revalta-state="refused"],[data-revalta-surface="inverse"] .revalta-badge[data-revalta-state="refused"]{background:color-mix(in srgb,var(--revalta-error) 14%,transparent);color:var(--revalta-error)}

/* Alerte en ligne : information, succès, avertissement, erreur. L'icône suit la couleur du texte, jamais l'accent. */
.revalta-alert{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 12px;align-items:start;padding:16px 18px;border-radius:var(--revalta-r-field);border:1px solid transparent;background:var(--revalta-sky);color:var(--revalta-fg1);font-size:15px;line-height:1.5}
.revalta-alert > svg{grid-row:span 2;width:20px;height:20px;margin-top:1px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.revalta-alert-title{margin:0;font-weight:500}
.revalta-alert-text{margin:0;font-size:14px;color:var(--revalta-fg2)}
.revalta-alert-text a{color:inherit}
.revalta-alert-warning{background:var(--revalta-bg);border-color:color-mix(in srgb,var(--revalta-fg1) 30%,transparent)}
.revalta-alert-success{background:color-mix(in srgb,var(--revalta-success) 8%,var(--revalta-light));border-color:color-mix(in srgb,var(--revalta-success) 30%,transparent)}
.revalta-alert-success > svg,.revalta-alert-success .revalta-alert-title{color:var(--revalta-success)}
.revalta-alert-error{background:color-mix(in srgb,var(--revalta-error) 7%,var(--revalta-light));border-color:color-mix(in srgb,var(--revalta-error) 30%,transparent)}
.revalta-alert-error > svg,.revalta-alert-error .revalta-alert-title{color:var(--revalta-error)}
.revalta-section-inverse .revalta-alert,[data-revalta-surface="inverse"] .revalta-alert{background:var(--surface-glass);border-color:var(--revalta-sep-inverse);color:var(--revalta-fg1-inverse)}
.revalta-section-inverse .revalta-alert-text,[data-revalta-surface="inverse"] .revalta-alert-text{color:var(--revalta-fg2-inverse)}
.revalta-section-inverse .revalta-alert-success,[data-revalta-surface="inverse"] .revalta-alert-success{border-color:color-mix(in srgb,var(--revalta-success) 40%,transparent)}
.revalta-section-inverse .revalta-alert-error,[data-revalta-surface="inverse"] .revalta-alert-error{border-color:color-mix(in srgb,var(--revalta-error) 40%,transparent)}

/* État vide */
.revalta-empty{display:grid;justify-items:center;gap:10px;padding:48px 24px;border-radius:var(--revalta-r-card);background:var(--revalta-bg);text-align:center}
.revalta-empty > svg{width:28px;height:28px;margin-bottom:6px;fill:none;stroke:var(--revalta-fg2);stroke-width:1;stroke-linecap:round;stroke-linejoin:round}
.revalta-empty-title{margin:0;font-size:20px;font-weight:500;letter-spacing:-.02em}
.revalta-empty-text{margin:0;max-width:46ch;font-size:15px;line-height:1.55;color:var(--revalta-fg2);text-wrap:pretty}
.revalta-empty .revalta-btn{margin-top:10px}
[data-revalta-band="paper"] .revalta-empty{background:var(--revalta-light)}
.revalta-section-inverse .revalta-empty,[data-revalta-surface="inverse"] .revalta-empty{background:var(--surface-glass)}
.revalta-section-inverse .revalta-empty-text,[data-revalta-surface="inverse"] .revalta-empty-text{color:var(--revalta-fg2-inverse)}

/* Zone de dépôt de fichiers — <label> autour d'un input[type=file] masqué ; -active pendant le glisser */
.revalta-dropzone{position:relative;display:grid;justify-items:center;gap:6px;padding:32px 24px;border:1px dashed color-mix(in srgb,var(--revalta-fg1) 30%,transparent);border-radius:var(--revalta-r-card);background:var(--revalta-bg);text-align:center;cursor:pointer;transition:border-color 200ms var(--revalta-ease),background 200ms var(--revalta-ease)}
.revalta-dropzone:hover,.revalta-dropzone-active{border-color:var(--revalta-fg1);background:var(--revalta-light)}
.revalta-dropzone:has(input:focus-visible){outline:2px solid var(--revalta-accent);outline-offset:2px}
.revalta-dropzone input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.revalta-dropzone > svg{width:24px;height:24px;margin-bottom:4px;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:round;stroke-linejoin:round}
.revalta-dropzone-title{font-size:15px;font-weight:500}
.revalta-dropzone-hint{font-size:13px;color:var(--revalta-fg2)}
.revalta-section-inverse .revalta-dropzone,[data-revalta-surface="inverse"] .revalta-dropzone{background:var(--surface-glass);border-color:rgba(245,243,238,.35)}
.revalta-section-inverse .revalta-dropzone-hint,[data-revalta-surface="inverse"] .revalta-dropzone-hint{color:var(--revalta-fg2-inverse)}

/* Progression segmentée et en-tête d'étapes, hors section */
.revalta-progress{display:grid;gap:10px}
.revalta-progress-label{font-size:12px;letter-spacing:.15em;text-transform:uppercase;color:var(--revalta-fg2)}
.revalta-progress-bar{display:flex;gap:6px;height:2px}
.revalta-progress-segment{flex:1 1 0;min-width:4px;height:2px;border-radius:var(--revalta-r-pill);background:var(--revalta-sep);transition:background .3s var(--revalta-ease)}
.revalta-progress-segment-done{background:var(--text-value)}
.revalta-steps{list-style:none;margin:0;padding:0;display:grid;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:6px}
.revalta-steps-item{padding-top:8px;border-top:2px solid var(--revalta-sep);font-size:11px;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--revalta-fg2);transition:border-color .3s var(--revalta-ease)}
.revalta-steps-item-current,.revalta-steps-item-done{color:var(--revalta-fg1);border-top-color:var(--text-value)}
.revalta-section-inverse :is(.revalta-progress-label,.revalta-steps-item),[data-revalta-surface="inverse"] :is(.revalta-progress-label,.revalta-steps-item){color:var(--revalta-fg2-inverse)}
.revalta-section-inverse .revalta-progress-segment,[data-revalta-surface="inverse"] .revalta-progress-segment{background:rgba(245,243,238,.22)}
.revalta-section-inverse .revalta-progress-segment-done,[data-revalta-surface="inverse"] .revalta-progress-segment-done{background:var(--revalta-gold-inverse)}
.revalta-section-inverse :is(.revalta-steps-item-current,.revalta-steps-item-done),[data-revalta-surface="inverse"] :is(.revalta-steps-item-current,.revalta-steps-item-done){color:var(--revalta-fg1-inverse)}

/* Coquille d'application : barre supérieure (logo 180 px, navigation, menu de compte) ; -sidebar pour l'administration */
.revalta-app-shell{min-height:100vh;min-height:100dvh;display:grid;grid-template-rows:auto 1fr;background:var(--revalta-w-floor-flow);color:var(--revalta-fg1);font-family:var(--revalta-font);font-size:var(--revalta-web-size-body);line-height:var(--revalta-web-lh-body)}
.revalta-app-bar{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:24px;height:72px;padding:0 var(--revalta-web-pad-x);background:rgba(251,250,247,.86);-webkit-backdrop-filter:blur(22px) saturate(160%);backdrop-filter:blur(22px) saturate(160%);border-bottom:1px solid var(--revalta-sep)}
.revalta-app-logo{display:flex;align-items:center}
.revalta-app-logo img{width:180px;height:auto;display:block}
.revalta-app-nav{display:flex;align-items:center;gap:4px;min-width:0;overflow-x:auto;scrollbar-width:none}
.revalta-app-nav-link{display:inline-flex;align-items:center;gap:10px;padding:9px 14px;border-radius:var(--revalta-r-pill);font-size:14px;font-weight:500;color:var(--revalta-fg2);text-decoration:none;white-space:nowrap;transition:background 200ms var(--revalta-ease),color 200ms var(--revalta-ease)}
.revalta-app-nav-link:hover{background:color-mix(in srgb,currentColor 8%,transparent);color:var(--revalta-fg1)}
.revalta-app-nav-link[aria-current="page"]{color:var(--revalta-fg1);background:color-mix(in srgb,var(--revalta-fg1) 6%,transparent)}
.revalta-app-nav-link svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:round;stroke-linejoin:round}
.revalta-app-account{position:relative}
.revalta-app-account > summary{list-style:none;display:inline-flex;align-items:center;gap:10px;padding:4px 14px 4px 4px;border:1px solid var(--revalta-sep);border-radius:var(--revalta-r-pill);font-size:14px;font-weight:500;cursor:pointer;user-select:none}
.revalta-app-account > summary::-webkit-details-marker{display:none}
.revalta-app-account > summary:hover{border-color:var(--revalta-fg1)}
.revalta-app-avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--revalta-sky);font-size:13px;font-weight:500;letter-spacing:.02em}
.revalta-app-account > summary svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5}
.revalta-app-account[open] > summary svg{transform:rotate(180deg)}
.revalta-app-menu{position:absolute;right:0;top:calc(100% + 8px);min-width:240px;display:grid;gap:2px;padding:8px;margin:0;list-style:none;background:var(--revalta-light);border:1px solid var(--revalta-sep);border-radius:var(--revalta-r-card);box-shadow:var(--revalta-shadow-menu)}
.revalta-app-menu a,.revalta-app-menu button{display:block;width:100%;padding:10px 14px;border:0;border-radius:12px;background:none;font:inherit;font-size:14px;text-align:left;color:var(--revalta-fg1);text-decoration:none;cursor:pointer}
.revalta-app-menu a:hover,.revalta-app-menu button:hover{background:var(--revalta-bg)}
.revalta-app-menu hr{border:0;border-top:1px solid var(--revalta-sep);margin:6px 8px}
.revalta-app-main{width:min(var(--revalta-max),100%);margin:0 auto;padding:40px var(--revalta-web-pad-x) 64px;display:grid;gap:32px;align-content:start;min-width:0}
.revalta-app-head{display:grid;gap:var(--revalta-web-gap-tight);max-width:70ch}
.revalta-app-shell .revalta-app-main > :first-child{padding-top:0} /* neutralise la compensation du header du site (base.css) */
.revalta-app-eyebrow{margin:0;font-size:var(--revalta-web-size-eyebrow);font-weight:500;letter-spacing:var(--revalta-ls-label);text-transform:uppercase;color:var(--revalta-fg2)}
.revalta-app-title{margin:0;font-size:clamp(28px,2.4vw,38px);font-weight:600;letter-spacing:-.03em;line-height:1.1;text-wrap:balance}
.revalta-app-lede{margin:0;font-size:var(--revalta-web-size-lede);line-height:1.5;color:var(--revalta-fg2);text-wrap:pretty}
.revalta-app-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:var(--revalta-grid-gap);align-items:start}
.revalta-app-shell-sidebar{grid-template-columns:260px minmax(0,1fr);grid-template-rows:auto 1fr}
.revalta-app-shell-sidebar > .revalta-app-bar{grid-column:1/-1;grid-template-columns:auto 1fr auto}
.revalta-app-side{position:sticky;top:72px;align-self:start;height:calc(100vh - 72px);padding:24px 16px;border-right:1px solid var(--revalta-sep);display:grid;align-content:start;gap:2px;overflow-y:auto}
.revalta-app-side .revalta-app-nav-link{display:flex;border-radius:var(--revalta-r-field)}
.revalta-app-side-title{margin:18px 14px 6px;font-size:12px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--revalta-fg2)}
.revalta-app-side-title:first-child{margin-top:0}
.revalta-app-shell-sidebar .revalta-app-main{width:100%;max-width:var(--revalta-max);margin:0}
@media (max-width:1024px){
  .revalta-app-shell-sidebar{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto 1fr}
  .revalta-app-side{position:static;height:auto;border-right:0;border-bottom:1px solid var(--revalta-sep);display:flex;gap:4px;overflow-x:auto;padding:10px var(--revalta-web-pad-x)}
  .revalta-app-side-title{display:none}
  .revalta-app-side .revalta-app-nav-link{border-radius:var(--revalta-r-pill)}
}
@media (max-width:640px){
  .revalta-app-bar{grid-template-columns:auto auto;justify-content:space-between}
  .revalta-app-bar > .revalta-app-nav{display:none}
  .revalta-app-logo img{width:140px}
  .revalta-app-account-name{display:none}
}

/* sections/onboarding.css */
/* Revalta v2 — section de flux .revalta-section-onboarding (parcours de souscription). Versée au DS le 31/10/2026 depuis la page privée de référence (classes ro-* renommées, valeurs reprises sans arrondi). Claire par défaut (sol blanc chaud, panneau en dégradé produit) ; marine par .revalta-section-inverse. Navigation : sections/revalta-onboarding.js. Structure canonique : sections/README.md § 30-31. */

/* Mode « page de flux » : en attendant que la publication n'émette plus le header et le footer du site (option layout: "flow"), l'attribut data-revalta-chrome="none" les masque. */
body:has(.revalta-section-onboarding[data-revalta-chrome="none"]) > header,body:has(.revalta-section-onboarding[data-revalta-chrome="none"]) > footer,body:has(.revalta-section-onboarding[data-revalta-chrome="none"]) > .revalta-header,body:has(.revalta-section-onboarding[data-revalta-chrome="none"]) > .revalta-footer{display:none!important}
body.revalta main > .revalta-section-onboarding:first-child{padding-top:0}

.revalta-section-onboarding{
  --revalta-onboarding-paper:var(--revalta-fg1-inverse);--revalta-onboarding-paper2:var(--revalta-fg2-inverse);--revalta-onboarding-ink:var(--revalta-fg1);--revalta-onboarding-navy:var(--revalta-bg-inverse);--revalta-onboarding-gold:var(--revalta-gold-inverse);
  --revalta-onboarding-glass:rgba(245,243,238,.06);--revalta-onboarding-glass-strong:rgba(245,243,238,.10);--revalta-onboarding-line:var(--revalta-sep-inverse);
  --revalta-onboarding-gradient:linear-gradient(315deg,var(--revalta-accent-default),var(--revalta-bg-inverse) 53%);
  /* Couleurs du cadre (bandeau, en-tête, accompagnement) — variante claire */
  --revalta-onboarding-fg:var(--revalta-fg1);--revalta-onboarding-fg2:var(--revalta-fg2);--revalta-onboarding-outline:var(--revalta-sep-default);--revalta-onboarding-outline-hover:rgba(16,28,51,.4);--revalta-onboarding-hover:rgba(16,28,51,.05);--revalta-onboarding-step-on:var(--revalta-gold);
  min-height:100vh;min-height:100dvh;width:100%;margin:0;padding:0;display:flex;flex-direction:column;
  font-family:var(--revalta-font);font-weight:var(--revalta-w-light);font-size:var(--revalta-web-size-body);line-height:var(--revalta-web-lh-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-variant-numeric:tabular-nums;
}
.revalta-section-onboarding:not(.revalta-section-inverse){background:var(--revalta-w-floor-flow);color:var(--revalta-fg1)}
.revalta-section-onboarding.revalta-section-inverse{
  --revalta-onboarding-fg:var(--revalta-fg1-inverse);--revalta-onboarding-fg2:var(--revalta-fg2-inverse);--revalta-onboarding-outline:var(--revalta-sep-inverse);--revalta-onboarding-outline-hover:rgba(245,243,238,.4);--revalta-onboarding-hover:rgba(245,243,238,.10);--revalta-onboarding-step-on:var(--revalta-gold-inverse);
  background-color:var(--revalta-bg-inverse);background-image:var(--revalta-onboarding-gradient);color:var(--revalta-fg1-inverse);
}
.revalta-section-onboarding *{box-sizing:border-box}
.revalta-section-onboarding-content{flex:1;display:flex;flex-direction:column;width:100%;padding:0 var(--revalta-web-pad-x,5vw) 24px}

/* Bandeau */
.revalta-section-onboarding-bar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:72px;gap:16px}
.revalta-section-onboarding-bar-back{display:inline-flex;align-items:center;gap:10px;justify-self:start;color:var(--revalta-onboarding-fg);text-decoration:none;font-size:14px;font-weight:500;padding:10px 16px 10px 12px;border:1px solid var(--revalta-onboarding-outline);border-radius:999px;transition:background .2s var(--revalta-ease),border-color .2s var(--revalta-ease)}
.revalta-section-onboarding-bar-back:hover{background:var(--revalta-onboarding-hover);border-color:var(--revalta-onboarding-outline-hover)}
.revalta-section-onboarding-bar-back svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s var(--revalta-ease)}
.revalta-section-onboarding-bar-back:hover svg{transform:translateX(-3px)}
.revalta-section-onboarding-bar-logo{display:flex;align-items:center;justify-content:center}
.revalta-section-onboarding-bar-logo img{height:44px;width:auto;display:block}

/* En-tête d'étapes : eyebrow + quatre intitulés soulignés d'un filet de 2 px, jamais de numéro */
.revalta-section-onboarding-head{padding-top:22px;display:grid;gap:10px}
.revalta-section-onboarding-eyebrow{margin:0;font-size:13px;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--revalta-onboarding-fg)}
.revalta-section-onboarding-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.revalta-section-onboarding-step{display:block;padding-top:8px;border-top:2px solid var(--revalta-onboarding-outline);font-size:11px;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--revalta-onboarding-fg2);transition:border-color .3s var(--revalta-ease)}
.revalta-section-onboarding-step-current,.revalta-section-onboarding-step-done{color:var(--revalta-onboarding-fg);border-top-color:var(--revalta-onboarding-step-on)}

/* Grille */
.revalta-section-onboarding-grid{flex:1;display:grid;grid-template-columns:minmax(240px,3fr) minmax(0,8fr);gap:clamp(24px,3.5vw,56px);align-items:start;padding-top:40px}

/* Colonne d'accompagnement */
.revalta-section-onboarding-aside{position:sticky;top:24px;display:flex;flex-direction:column;gap:24px}
.revalta-section-onboarding-aside [hidden]{display:none}
.revalta-section-onboarding-intro-title{margin:0;font-size:clamp(20px,1.6vw,24px);font-weight:600;letter-spacing:-.03em;line-height:1.15;color:var(--revalta-onboarding-fg)}
.revalta-section-onboarding-intro-text{margin:10px 0 0;font-size:14px;line-height:1.6;color:var(--revalta-onboarding-fg2);max-width:46ch}
.revalta-section-onboarding-video-title{margin:0 0 12px;font-size:16px;font-weight:500;letter-spacing:-.01em;color:var(--revalta-onboarding-fg)}
.revalta-section-onboarding-video-frame{position:relative;aspect-ratio:16/10;border-radius:var(--revalta-r-panel);overflow:hidden;background:var(--revalta-onboarding-navy);border:1px solid rgba(16,28,51,.12);color:var(--revalta-onboarding-paper)}
.revalta-section-onboarding-video-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:none}
.revalta-section-onboarding-video-poster{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:20px;gap:4px;background:radial-gradient(120% 90% at 20% 10%,rgba(31,113,222,.45),transparent 60%),linear-gradient(160deg,rgba(245,243,238,.06),rgba(15,27,51,.5))}
.revalta-section-onboarding-video-poster-kicker{font-size:12px;letter-spacing:.15em;text-transform:uppercase;color:var(--revalta-onboarding-paper2)}
.revalta-section-onboarding-video-poster-title{font-size:clamp(16px,1.2vw,18px);font-weight:500;letter-spacing:-.01em;line-height:1.25;max-width:18ch}
.revalta-section-onboarding-video-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:inline-flex;align-items:center;gap:12px;padding:8px 20px 8px 8px;border-radius:999px;border:0;cursor:pointer;background:var(--revalta-onboarding-paper);color:var(--revalta-onboarding-ink);font:inherit;font-size:14px;font-weight:500;transition:transform .2s var(--revalta-ease)}
.revalta-section-onboarding-video-play:hover{transform:translate(-50%,-50%) scale(1.03)}
.revalta-section-onboarding-video-play:focus-visible{outline:2px solid var(--revalta-onboarding-paper);outline-offset:3px}
.revalta-section-onboarding-video-play-circle{width:36px;height:36px;border-radius:50%;background:var(--revalta-onboarding-ink);display:grid;place-items:center}
.revalta-section-onboarding-video-play-circle svg{width:16px;height:16px;fill:var(--revalta-onboarding-paper);transform:translateX(1px)}
.revalta-section-onboarding-video-badge{position:absolute;top:16px;right:16px;margin:0;font-size:12px;letter-spacing:.08em;text-transform:uppercase;padding:6px 12px;border-radius:999px;background:rgba(15,27,51,.5);border:1px solid var(--revalta-onboarding-line)}
.revalta-section-onboarding-video-playing .revalta-section-onboarding-video-poster,.revalta-section-onboarding-video-playing .revalta-section-onboarding-video-play,.revalta-section-onboarding-video-playing .revalta-section-onboarding-video-badge{display:none}
.revalta-section-onboarding-video-playing .revalta-section-onboarding-video-media{display:block}
.revalta-section-onboarding-video-caption{margin:12px 0 0;font-size:13px;line-height:1.5;color:var(--revalta-onboarding-fg2)}
.revalta-section-onboarding-help{margin:0;font-size:13px;line-height:1.6;color:var(--revalta-onboarding-fg2)}
.revalta-section-onboarding .revalta-section-onboarding-help a{color:var(--revalta-onboarding-fg)}
.revalta-section-inverse .revalta-section-onboarding-video-frame{background:var(--revalta-onboarding-glass);border-color:var(--revalta-onboarding-line)}
.revalta-section-inverse .revalta-section-onboarding-video-poster{background:radial-gradient(120% 90% at 20% 10%,rgba(31,113,222,.35),transparent 60%),linear-gradient(160deg,rgba(245,243,238,.08),rgba(15,27,51,.4))}

/* Panneau de parcours — toujours texte papier : dégradé produit en claire, verre dépoli en marine */
.revalta-section-onboarding-panel{--revalta-error:var(--revalta-error-inverse);--revalta-success:var(--revalta-success-inverse);background:var(--revalta-onboarding-gradient);border:1px solid transparent;border-radius:var(--revalta-r-panel);padding:clamp(20px,2.4vw,32px);display:flex;flex-direction:column;color:var(--revalta-onboarding-paper)}
.revalta-section-inverse .revalta-section-onboarding-panel{background:var(--revalta-onboarding-glass);border-color:var(--revalta-onboarding-line);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}
/* Primaire dans le panneau : papier, texte encre ; survol or, comme tout primaire sur marine (règle « inverse » du DS). */
.revalta-section-onboarding-panel .revalta-btn.revalta-btn-primary{background:var(--revalta-onboarding-paper);background-image:none;color:var(--revalta-onboarding-ink);border-color:var(--revalta-onboarding-paper)}
.revalta-section-onboarding-panel .revalta-btn.revalta-btn-primary:hover{background:var(--revalta-onboarding-gold);border-color:var(--revalta-onboarding-gold);color:var(--revalta-onboarding-ink)}
.revalta-section-onboarding-panel .revalta-btn.revalta-btn-primary svg{stroke:currentColor}
.revalta-section-onboarding-panel .revalta-btn.revalta-btn-primary::before{display:none}
.revalta-section-onboarding-panel .revalta-btn:focus-visible{outline-color:var(--revalta-onboarding-paper)}
.revalta-section-onboarding-panel .revalta-btn-secondary{color:var(--revalta-onboarding-paper);border-color:var(--revalta-onboarding-paper)}
.revalta-section-onboarding-panel .revalta-btn-secondary:hover{background:var(--revalta-onboarding-paper);color:var(--revalta-onboarding-ink)}

/* Progression segmentée */
.revalta-section-onboarding-progress{display:grid;gap:10px;margin-bottom:22px}
.revalta-section-onboarding-progress-label{display:block;font-size:12px;letter-spacing:.15em;text-transform:uppercase;color:var(--revalta-onboarding-paper2)}
.revalta-section-onboarding-progress-bar{display:flex;gap:6px;width:100%;height:2px}
.revalta-section-onboarding-progress-segment{display:block;flex:1 1 0;min-width:4px;height:2px;border-radius:999px;background:rgba(245,243,238,.22);transition:background .3s var(--revalta-ease)}
.revalta-section-onboarding-progress-segment-done{background:var(--revalta-onboarding-gold)}

/* Scène et écrans */
.revalta-section-onboarding-stage{position:relative;flex:1}
.revalta-section-onboarding-slide{display:block;margin:0;padding:0;border:0}
.revalta-section-onboarding-slide[hidden]{display:none}
.revalta-section-onboarding-slide-in{animation:revalta-onboarding-in .42s var(--revalta-ease) both}
.revalta-section-onboarding-slide-out{animation:revalta-onboarding-out .26s var(--revalta-ease) both;pointer-events:none}
.revalta-section-onboarding-slide-in-back{animation:revalta-onboarding-in-back .42s var(--revalta-ease) both}
.revalta-section-onboarding-slide-out-back{animation:revalta-onboarding-out-back .26s var(--revalta-ease) both;pointer-events:none}
@keyframes revalta-onboarding-in{from{opacity:0;transform:translateY(36px)}to{opacity:1;transform:none}}
@keyframes revalta-onboarding-out{from{opacity:1;transform:none}to{opacity:0;transform:translateY(-28px)}}
@keyframes revalta-onboarding-in-back{from{opacity:0;transform:translateY(-36px)}to{opacity:1;transform:none}}
@keyframes revalta-onboarding-out-back{from{opacity:1;transform:none}to{opacity:0;transform:translateY(28px)}}

.revalta-section-onboarding-kicker{margin:0 0 10px;font-size:12px;letter-spacing:.15em;text-transform:uppercase;color:var(--revalta-onboarding-paper2)}
.revalta-section-onboarding-title{margin:0;font-size:clamp(22px,2.1vw,30px);font-weight:600;letter-spacing:-.03em;line-height:1.15;max-width:30ch}
.revalta-section-onboarding-title:focus{outline:none}
.revalta-section-onboarding-title em{font-style:normal;color:var(--revalta-onboarding-gold)}
.revalta-section-onboarding-lede{margin:10px 0 0;font-size:15px;line-height:1.55;color:var(--revalta-onboarding-paper2);max-width:60ch}
.revalta-section-onboarding-subtitle{margin:24px 0 12px;font-size:15px;font-weight:500;letter-spacing:-.01em}
.revalta-section-onboarding-text{margin:0 0 12px;font-size:14px;line-height:1.6;color:var(--revalta-onboarding-paper2)}
.revalta-section-onboarding-fine{margin:12px 0 0;font-size:12px;line-height:1.6;color:var(--revalta-onboarding-paper2)}
.revalta-section-onboarding-note{margin:14px 0 0;font-size:13px;line-height:1.6;color:var(--revalta-onboarding-paper2);max-width:70ch}
.revalta-section-onboarding-note:empty{display:none}
.revalta-section-onboarding .revalta-section-onboarding-note a{color:var(--revalta-onboarding-paper)}
.revalta-section-onboarding-note-error{color:var(--revalta-error)}

/* Cartes-choix : sans puce radio, sans contour or */
.revalta-section-onboarding-legend{padding:0;margin:24px 0 12px;font-size:12px;letter-spacing:.15em;text-transform:uppercase;color:var(--revalta-onboarding-paper2)}
.revalta-section-onboarding-options{border:0;margin:20px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.revalta-section-onboarding-options + .revalta-section-onboarding-options{margin-top:4px}
.revalta-section-onboarding-option{position:relative;display:grid;align-content:start;gap:4px;padding:16px 18px;border-radius:var(--revalta-r-field);border:1px solid var(--revalta-onboarding-line);background:var(--revalta-onboarding-glass);cursor:pointer;transition:background .2s var(--revalta-ease),border-color .2s var(--revalta-ease)}
.revalta-section-onboarding-option:hover{background:var(--revalta-onboarding-glass-strong);border-color:rgba(245,243,238,.4)}
.revalta-section-onboarding-option input{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
.revalta-section-onboarding-option:has(input:checked){background:rgba(245,243,238,.16);border-color:rgba(245,243,238,.7)}
.revalta-section-onboarding-option:has(input:focus-visible){outline:2px solid var(--revalta-onboarding-paper);outline-offset:2px}
.revalta-section-onboarding-option:has(input[type=checkbox]:checked)::after{content:"";position:absolute;top:16px;right:16px;width:8px;height:14px;border-right:1.5px solid var(--revalta-onboarding-paper);border-bottom:1.5px solid var(--revalta-onboarding-paper);transform:rotate(45deg)}
.revalta-section-onboarding-option-title{font-size:15px;font-weight:500;letter-spacing:-.01em;line-height:1.3}
.revalta-section-onboarding-option-body{font-size:13px;line-height:1.5;color:var(--revalta-onboarding-paper2)}

/* Champs de saisie (coordonnées) */
.revalta-section-onboarding-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px;margin-top:28px}
.revalta-section-onboarding-fields label{display:grid;gap:8px}
.revalta-section-onboarding-fields label > span{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--revalta-onboarding-paper2)}
.revalta-section-onboarding-fields small{font-size:10px;letter-spacing:.06em;text-transform:none;opacity:.8}
.revalta-section-onboarding-fields input{font:inherit;font-size:16px;color:var(--revalta-onboarding-paper);background:transparent;border:0;border-bottom:1px solid rgba(245,243,238,.35);padding:10px 0;outline:0;border-radius:0}
.revalta-section-onboarding-fields input:focus{border-bottom-color:var(--revalta-onboarding-paper)}
.revalta-section-onboarding-fields input[aria-invalid="true"]{border-bottom-color:var(--revalta-error)}
.revalta-section-onboarding-fields .revalta-section-onboarding-fields-wide{grid-column:1/-1}

/* Résultat : liste de définitions en cartes */
.revalta-section-onboarding-facts{margin:28px 0 0;display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.revalta-section-onboarding-facts-item{margin:0;padding:18px 20px;border-radius:var(--revalta-r-card);border:1px solid var(--revalta-onboarding-line);background:var(--revalta-onboarding-glass)}
.revalta-section-onboarding-facts-item dt{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--revalta-onboarding-paper2)}
.revalta-section-onboarding-facts-item dd{margin:8px 0 0;font-size:20px;font-weight:500;letter-spacing:-.02em;color:var(--revalta-onboarding-gold)}

/* Actions : attributs fonctionnels sur le conteneur, jamais sur le bouton */
.revalta-section-onboarding-actions{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:22px;flex-wrap:wrap}
.revalta-section-onboarding-prev,.revalta-section-onboarding-link{background:none;border:0;padding:0;font:inherit;font-size:14px;color:var(--revalta-onboarding-paper2);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.revalta-section-onboarding-prev:hover,.revalta-section-onboarding-link:hover{color:var(--revalta-onboarding-paper)}
.revalta-section-onboarding-prev:focus-visible,.revalta-section-onboarding-link:focus-visible{outline:2px solid var(--revalta-onboarding-paper);outline-offset:3px;border-radius:2px}
.revalta-section-onboarding-prev[hidden]{display:none}
.revalta-section-onboarding-actions .revalta-btn{margin-left:auto}
.revalta-section-onboarding-actions .revalta-btn[disabled]{opacity:.45;cursor:not-allowed}
.revalta-section-onboarding-actions:not(:has(.revalta-btn)){margin-top:16px}

/* Étape 2 · simulateur */
.revalta-section-onboarding-sim{margin-top:28px;display:grid;grid-template-columns:1.1fr .9fr;gap:24px;align-items:start}
.revalta-section-onboarding-sim-controls{display:grid;gap:18px}
.revalta-section-onboarding-sim-row{display:grid;gap:10px}
.revalta-section-onboarding-sim-row-head{display:flex;justify-content:space-between;gap:12px;font-size:13px;color:var(--revalta-onboarding-paper2)}
.revalta-section-onboarding-sim-row-head output{color:var(--revalta-onboarding-paper);font-weight:500}
.revalta-section-onboarding-sim-row input[type=range]{width:100%;accent-color:var(--revalta-onboarding-gold);margin:0}
.revalta-section-onboarding-sim-output{padding:22px 24px;border-radius:var(--revalta-r-card);background:var(--revalta-onboarding-paper);color:var(--revalta-onboarding-ink)}
.revalta-section-onboarding-sim-output-label{margin:0;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--revalta-fg2)}
.revalta-section-onboarding-sim-output-figure{margin:8px 0 14px;font-size:clamp(30px,3vw,40px);font-weight:500;letter-spacing:-.03em;color:var(--revalta-gold)}

/* Listes libellé / valeur : chiffres du simulateur, frais, répartition, récapitulatif */
.revalta-section-onboarding-figures,.revalta-section-onboarding-fees,.revalta-section-onboarding-split,.revalta-section-onboarding-recap{margin:0;display:grid;gap:0}
:is(.revalta-section-onboarding-figures,.revalta-section-onboarding-fees,.revalta-section-onboarding-split,.revalta-section-onboarding-recap) > div{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-top:1px solid var(--revalta-onboarding-line);font-size:14px}
:is(.revalta-section-onboarding-figures,.revalta-section-onboarding-split) > div:first-child{border-top:0}
:is(.revalta-section-onboarding-figures,.revalta-section-onboarding-fees,.revalta-section-onboarding-split,.revalta-section-onboarding-recap) dt{color:var(--revalta-onboarding-paper2)}
:is(.revalta-section-onboarding-figures,.revalta-section-onboarding-fees,.revalta-section-onboarding-split,.revalta-section-onboarding-recap) dd{margin:0;text-align:right;font-weight:500}
.revalta-section-onboarding-sim-output .revalta-section-onboarding-figures > div{border-color:rgba(16,28,51,.12)}
.revalta-section-onboarding-sim-output .revalta-section-onboarding-figures dt{color:var(--revalta-fg2)}
.revalta-section-onboarding-sim-output .revalta-section-onboarding-figures dd{color:var(--revalta-onboarding-ink)}

/* Étape 2 · performances */
.revalta-section-onboarding-columns{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:4px}
.revalta-section-onboarding-table{width:100%;border-collapse:collapse;font-size:14px}
.revalta-section-onboarding-table th{text-align:left;font-weight:400;color:var(--revalta-onboarding-paper2);padding:9px 0;border-top:1px solid var(--revalta-onboarding-line)}
.revalta-section-onboarding-table td{text-align:right;font-weight:500;padding:9px 0;border-top:1px solid var(--revalta-onboarding-line)}
.revalta-section-onboarding-table-total th,.revalta-section-onboarding-table-total td{border-top:2px solid rgba(245,243,238,.4);color:var(--revalta-onboarding-gold)}

/* § 31 — saisie d'un code à six chiffres. Sans script : un champ unique aux chiffres espacés ; avec le script (-code-field-ready) : six cases miroir, le champ reste le seul élément saisissable. */
.revalta-section-onboarding-code-text{margin:10px 0 0;font-size:15px;line-height:1.55;color:var(--revalta-onboarding-paper2);max-width:60ch}
.revalta-section-onboarding-code-address{color:var(--revalta-onboarding-paper);font-weight:500}
.revalta-section-onboarding-code-field{position:relative;margin-top:28px;width:min(100%,386px)}
.revalta-section-onboarding-code-input{display:block;width:100%;height:64px;padding:0 20px;border-radius:var(--revalta-r-field);border:1px solid var(--revalta-onboarding-line);background:var(--revalta-onboarding-glass);color:var(--revalta-onboarding-paper);font:inherit;font-size:28px;font-weight:500;letter-spacing:.5em;font-variant-numeric:tabular-nums;outline:0}
.revalta-section-onboarding-code-input:focus{border-color:rgba(245,243,238,.7)}
.revalta-section-onboarding-code-cells{display:none}
.revalta-section-onboarding-code-field-ready .revalta-section-onboarding-code-input{position:absolute;inset:0;z-index:1;height:100%;padding:0;border:0;background:transparent;color:transparent;caret-color:transparent;letter-spacing:0}
.revalta-section-onboarding-code-field-ready .revalta-section-onboarding-code-input::selection{background:transparent}
.revalta-section-onboarding-code-field-ready .revalta-section-onboarding-code-cells{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.revalta-section-onboarding-code-cell{display:grid;place-items:center;height:64px;border-radius:var(--revalta-r-field);border:1px solid var(--revalta-onboarding-line);background:var(--revalta-onboarding-glass);font-size:28px;font-weight:500;letter-spacing:-.02em;color:var(--revalta-onboarding-paper);transition:background .2s var(--revalta-ease),border-color .2s var(--revalta-ease)}
.revalta-section-onboarding-code-cell-filled{border-color:rgba(245,243,238,.4)}
.revalta-section-onboarding-code-cell-active{background:rgba(245,243,238,.16);border-color:rgba(245,243,238,.7)}
.revalta-section-onboarding-code-field-error .revalta-section-onboarding-code-cell,.revalta-section-onboarding-code-field-error .revalta-section-onboarding-code-input{border-color:var(--revalta-error)}
.revalta-section-onboarding-code-field:has(.revalta-section-onboarding-code-input:focus-visible){outline:2px solid var(--revalta-onboarding-paper);outline-offset:4px;border-radius:calc(var(--revalta-r-field) + 4px)}
.revalta-section-onboarding-code-links{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px}
.revalta-section-onboarding-code-resend[disabled]{text-decoration:none;cursor:default;color:var(--revalta-onboarding-paper2);opacity:.8}
.revalta-section-onboarding-code-resend[disabled]:hover{color:var(--revalta-onboarding-paper2)}

/* § 31 — voile de contenu réservé : gabarit factice flouté + carte de vérification */
.revalta-section-onboarding-veil{position:relative}
.revalta-section-onboarding-veil-active{min-height:480px}
.revalta-section-onboarding-veil-card{display:none}
.revalta-section-onboarding-veil-active > .revalta-section-onboarding-veil-content{filter:blur(7px);opacity:.4;pointer-events:none;user-select:none}
.revalta-section-onboarding-veil-active > .revalta-section-onboarding-veil-card{display:block;position:absolute;top:clamp(16px,4vw,48px);left:0;right:0;margin:0 auto;z-index:2;width:min(440px,calc(100% - 32px));padding:28px;border-radius:var(--revalta-r-card);border:1px solid var(--revalta-onboarding-line);background:rgba(245,243,238,.08);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);color:var(--revalta-onboarding-paper);animation:revalta-fade-in var(--revalta-fade-in) var(--revalta-ease) both}
.revalta-section-onboarding-veil-card .revalta-section-onboarding-title{font-size:clamp(20px,1.8vw,24px)}
.revalta-section-onboarding-veil-card .revalta-section-onboarding-code-field{width:100%}
.revalta-section-onboarding-veil-card .revalta-section-onboarding-code-cells{gap:8px}
.revalta-section-onboarding-veil-card .revalta-section-onboarding-code-cell{height:56px;font-size:24px}
.revalta-section-onboarding-veil-card .revalta-section-onboarding-code-input{height:56px;font-size:24px}

/* Mouvement réduit : ni translation, ni hauteur animée (le script coupe aussi la transition de hauteur) */
@media (prefers-reduced-motion:reduce){
  .revalta-section-onboarding-slide-in,.revalta-section-onboarding-slide-out,.revalta-section-onboarding-slide-in-back,.revalta-section-onboarding-slide-out-back,.revalta-section-onboarding-veil-active > .revalta-section-onboarding-veil-card{animation:none}
  .revalta-section-onboarding-video-play:hover{transform:translate(-50%,-50%)}
  .revalta-section-onboarding-bar-back:hover svg{transform:none}
}

/* ≤ 1024 px : une colonne ; panneau d'abord (défaut, à valider), data-revalta-order="aside-first" pour l'ordre de la référence */
@media (max-width:1024px){
  .revalta-section-onboarding-grid{grid-template-columns:1fr;gap:24px}
  .revalta-section-onboarding-aside{position:static}
  .revalta-section-onboarding:not([data-revalta-order="aside-first"]) .revalta-section-onboarding-panel{order:-1}
  .revalta-section-onboarding-video-frame{aspect-ratio:16/9}
  .revalta-section-onboarding-columns,.revalta-section-onboarding-sim{grid-template-columns:1fr}
  .revalta-section-onboarding-panel{min-height:0}
}
@media (max-width:640px){
  .revalta-section-onboarding-content{padding:0 18px 24px}
  .revalta-section-onboarding-bar{height:72px}
  .revalta-section-onboarding-bar-back span{display:none}
  .revalta-section-onboarding-bar-back{padding:10px}
  .revalta-section-onboarding-bar-logo img{height:40px}
  .revalta-section-onboarding-step{font-size:10px}
  .revalta-section-onboarding-facts,.revalta-section-onboarding-fields,.revalta-section-onboarding-options{grid-template-columns:1fr}
  .revalta-section-onboarding-intro-text{display:none}
  .revalta-section-onboarding-code-cells{gap:6px}
  .revalta-section-onboarding-code-cell{height:56px;font-size:24px}
}
