/* Charte Héliane (kit d'intégration v0.2 du 20/10/2026) appliquée aux pages de l'adhérent et à la connexion sur l'hôte Héliane.
   Chargée seulement sur ces pages (fragments/head.html, attribut heliane) : ses règles n'atteignent jamais REGINE.
   Valeurs : tokens.css, copie du kit, à ne pas modifier ici. */
@import url("./tokens.css");
@font-face { font-family: Manrope; src: url("./fonts/Manrope-variable.ttf") format("truetype"); font-style: normal; font-weight: 200 800; font-display: swap; }
@font-face { font-family: "Barlow Condensed"; src: url("./fonts/BarlowCondensed-SemiBold.ttf") format("truetype"); font-style: normal; font-weight: 600; font-display: swap; }

/* Chargée après Tailwind : à priorité égale, ces règles l'emportent sur ses utilitaires */
body, .font-sans { font-family: var(--font-body); color: var(--color-ink); }
h1, h2, .font-titre { font-family: var(--font-display); letter-spacing: .01em; }
h1, h2, h1.font-bold, h2.font-bold, h2.font-semibold, .font-titre.font-bold { font-weight: 600; }
.tabular-nums, td { font-variant-numeric: tabular-nums; }

/* Marque */
.heliane-fond { background: var(--color-ink); color: var(--color-on-dark); }
.heliane-accent { background: var(--color-accent); }
.heliane-marque { display: inline-flex; align-items: center; gap: var(--space-12); }
.heliane-marque img { width: 40px; height: 40px; }
.heliane-logotype { font: 600 1.75rem/1 var(--font-display); letter-spacing: .08em; }
.heliane-fond :focus-visible { outline: 3px solid var(--color-focus-dark); outline-offset: 2px; }

/* Rôles sur les classes communes des pages : action bleu électrique, texte bleu nuit, cartes et contrôles arrondis */
.text-regine-blue { color: var(--color-ink) !important; }
.bg-regine-blue { background: var(--color-ink) !important; }
.btn { min-height: 44px; border-radius: var(--radius-control); }
.btn-primaire { background: var(--color-primary); color: var(--color-on-primary); }
.btn-primaire:hover { background: var(--color-primary-hover); }
.btn-accent { background: var(--color-accent); color: var(--color-on-accent); }
.btn-accent:hover { background: var(--color-accent); text-decoration: underline; }
.btn-neutre { border-color: var(--color-border); color: var(--color-ink); }
.btn-neutre:hover { background: var(--color-surface-subtle); }
.btn-danger { background: var(--color-error-bg); color: var(--color-error); border-color: var(--color-error); }
.carte { border-radius: var(--radius-card); box-shadow: var(--shadow-card); color: var(--color-ink); }
.carte :focus-visible { outline-color: var(--color-primary); }
.champ { min-height: 44px; border-color: var(--color-border); border-radius: var(--radius-control); }
.champ:focus { box-shadow: 0 0 0 3px var(--color-primary); border-color: var(--color-primary); }
.champ:focus-visible { outline: none; }
a { text-underline-offset: .2em; }
:where(a, button, input, select, textarea, summary):focus-visible { outline: 3px solid var(--color-primary); outline-offset: 3px; }

/* Solde de crédits : citron, texte bleu nuit (le citron n'est pas le succès) */
.heliane-credit { background: var(--color-accent); color: var(--color-on-accent); border-radius: var(--radius-card); }

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; } }
