/* ==========================================================================
   RBF — BASE
   Reset, typographie, conteneurs, fil d'Ariane, consentement, saut de contenu.
   Aucune couche décorative sombre héritée : les anciennes feuilles empilaient
   un dégradé noir (hero__voile / hero__fond) qui recouvrait le thème clair.
   Ici, tout part du contrat de thème défini dans rbf-tokens.css.
   ========================================================================== */

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0; padding:0; background:var(--rbf-white); color:var(--text);
  font:400 17px/1.6 var(--font-sans);
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
img,svg,video{ max-width:100%; height:auto; }
img{ display:block; }
a{ color:inherit; text-decoration-color:rgba(0,0,0,.25); text-underline-offset:2px; }
a:hover{ text-decoration-color:currentColor; }
button,input,select,textarea{ font:inherit; color:inherit; }
ul,ol{ margin:0 0 1em; padding-left:1.2em; }
p{ margin:0 0 1em; }
p:last-child,ul:last-child,ol:last-child{ margin-bottom:0; }
strong,b{ font-weight:700; }
hr{ border:0; border-top:1px solid var(--border); margin:2em 0; }

h1,h2,h3,h4{ font-family:var(--font-display); font-weight:800; text-transform:uppercase;
  line-height:1; letter-spacing:-.005em; color:var(--rbf-navy); margin:0 0 .5em; }
h1{ font-size:clamp(32px,4.2vw,58px); }
h2{ font-size:clamp(28px,3.6vw,46px); }
h3{ font-size:clamp(20px,1.7vw,26px); }
h4{ font-size:18px; letter-spacing:.04em; }
[data-theme="dark"] h1,[data-theme="dark"] h2,[data-theme="dark"] h3,[data-theme="dark"] h4,
.theme-dark h1,.theme-dark h2,.theme-dark h3,.theme-dark h4{ color:#fff; }

/* conteneurs */
.enveloppe,.container,.wrap{ width:100%; max-width:var(--c); margin:0 auto; padding:0 20px; }
@media (min-width:1600px){ .enveloppe,.container,.wrap{ max-width:1320px; } }

/* saut de contenu */
.skip{ position:absolute; left:-9999px; top:0; z-index:200; background:var(--rbf-navy); color:#fff;
  padding:12px 18px; border-radius:0 0 var(--r-xs) 0; font-weight:700; }
.skip:focus{ left:0; }

/* fil d'Ariane */
.fil{ font-size:13.5px; color:var(--text-3); padding:12px 0 0; }
.fil a{ color:var(--text-3); text-decoration:none; }
.fil a:hover{ color:var(--accent); text-decoration:underline; }
.fil span{ padding:0 6px; opacity:.6; }

/* accessibilité : focus visible, cible tactile minimum */
:focus-visible{ outline:3px solid var(--rbf-cyan); outline-offset:2px; border-radius:6px; }
@media (pointer:coarse){ a,button,summary{ min-height:44px; } }
.vh, .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; }

/* ==========================================================================
   CONSENTEMENT — discret, jamais au-dessus de l'action principale
   ========================================================================== */
.cookies{
  position:fixed; z-index:120; left:auto; right:22px; bottom:22px; width:360px; max-width:360px;
  background:var(--rbf-white); border:1px solid var(--border); border-radius:var(--r-lg);
  box-shadow:var(--sh-3); padding:14px 16px; font-size:12.5px; color:var(--text-2);
}
.cookies[hidden]{ display:none; }
.cookies p{ margin:0 0 10px; line-height:1.45; }
.cookies a{ color:var(--rbf-navy); }
.cookies button{ border:0; border-radius:var(--r-pill); padding:11px 16px; font-weight:700; cursor:pointer; }
.cookies button[value="accept"],.cookies .accepter{ background:var(--rbf-orange); color:#fff; }
.cookies button[value="refuse"],.cookies .refuser{ background:var(--rbf-ice); color:var(--rbf-navy); }
.cookies .actions,.cookies__actions{ display:flex; gap:8px; }
@media (max-width:1024px){
  .cookies{ left:12px; right:12px; width:auto; max-width:none; bottom:84px; max-height:76px; overflow:hidden; padding:9px 11px; }
  .cookies p{ font-size:10.5px; margin:0 0 6px; }
  .cookies button{ padding:8px 10px; font-size:12px; flex:1; }
}

/* modale de rappel (héritée du tunnel : on la remet au propre) */
[role="dialog"]{ background:var(--rbf-white); border:1px solid var(--border); border-radius:var(--r-lg);
  box-shadow:var(--sh-3); color:var(--text); }
[role="dialog"] h2{ color:var(--rbf-navy); font-size:24px; }

/* ==========================================================================
   FORMULAIRES (base : les composants V8 précisent ensuite)
   ========================================================================== */
label{ display:block; font:700 13px/1.3 var(--font-sans); color:var(--rbf-navy); margin-bottom:6px; }
input,select,textarea{
  width:100%; padding:14px 14px; border:2px solid var(--border); border-radius:var(--r-xs);
  background:var(--rbf-white); color:var(--text); font-size:16px;
}
input:focus,select:focus,textarea:focus{ border-color:var(--rbf-cyan); outline:3px solid rgba(0,216,255,.35); outline-offset:0; }
input[type="checkbox"],input[type="radio"]{ width:auto; min-height:0; }
::placeholder{ color:#5F7078; opacity:1; }

/* ==========================================================================
   MESSAGES D'ÉTAT (confirmation de lead, erreurs de formulaire)
   ========================================================================== */
[role="status"],.succes,.alerte{ border-radius:var(--r-xs); }
.succes{ background:#E9F9F1; border:1px solid var(--rbf-success); color:#0C5B3A; padding:14px 16px; }
.alerte{ background:#FFF1E6; border:1px solid var(--rbf-orange); color:#8A3200; padding:14px 16px; }

/* ==========================================================================
   TABLES ET CONTENUS ÉDITORIAUX (guides, mentions)
   ========================================================================== */
table{ width:100%; border-collapse:collapse; font-size:15px; }
th,td{ text-align:left; padding:10px 12px; border-bottom:1px solid var(--border); }
th{ color:var(--rbf-navy); font-weight:700; }
.maj{ font-size:12.5px; color:var(--text-3); }
blockquote{ margin:1.5em 0; padding:14px 18px; background:var(--rbf-ice); border-left:4px solid var(--rbf-cyan); }
