/* =====================================================================
   FIBRE EHYUA — Système de design v3
   Palette : bleu marine dominant, vert clair en accent, blanc
   Fondation partagée par toutes les pages.
   ===================================================================== */

:root {
  /* --- Couleurs de marque --- */
  --navy-900: #06173A;   /* fonds profonds, footer */
  --navy-800: #0A2A5E;   /* couleur principale (header, hero) */
  --navy-700: #133a7a;
  --navy-600: #1d4a93;
  --navy-100: #EEF3FA;   /* surfaces bleutées claires */
  --navy-050: #F6F9FD;

  --green-500: #34D399;  /* accent principal, action */
  --green-600: #16a874;  /* hover action */
  --green-400: #5EE0A8;  /* accent sur fond foncé */
  --green-100: #E3F7EE;  /* surfaces succès claires */
  --green-700: #0F7A52;  /* texte sur fond vert clair */

  --ink: #0A1A33;        /* texte principal */
  --ink-soft: #5F6B7D;   /* texte secondaire */
  --ink-faint: #93a0b3;  /* texte tertiaire */
  --line: #E4EAF2;       /* bordures */
  --white: #FFFFFF;

  /* Accents secondaires (marques opérateurs, usage limité) */
  --amber-bg: #FAEEDA;
  --amber-tx: #854F0B;

  /* --- Typographie --- */
  --font-display: 'Sora', system-ui, sans-serif;
  --font-body: 'DM Sans', system-ui, sans-serif;

  /* --- Rayons & ombres --- */
  --r-sm: 10px;
  --r-md: 14px;
  --r-lg: 20px;
  --r-pill: 999px;
  --shadow-sm: 0 1px 3px rgba(10,42,94,0.06);
  --shadow-md: 0 6px 20px rgba(10,42,94,0.08);
  --shadow-lg: 0 18px 50px rgba(6,23,58,0.16);

  /* --- Mise en page --- */
  --maxw: 1140px;
  --header-h: 64px;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

body {
  font-family: var(--font-body);
  color: var(--ink);
  background: var(--white);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 { font-family: var(--font-display); font-weight: 600; line-height: 1.2; color: var(--ink); }

a { color: inherit; text-decoration: none; }

img { max-width: 100%; display: block; }

.container { width: 100%; max-width: var(--maxw); margin: 0 auto; padding: 0 20px; }

/* --- Boutons --- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  font-family: var(--font-display); font-size: 16px; font-weight: 500;
  padding: 15px 24px; border-radius: var(--r-md); border: none; cursor: pointer;
  transition: transform .15s ease, background .2s ease, box-shadow .2s ease;
  text-align: center;
}
.btn:active { transform: scale(.98); }

.btn-primary { background: var(--green-500); color: #06371F; }
.btn-primary:hover { background: var(--green-600); color: #fff; }

.btn-outline { background: var(--white); color: var(--navy-800); border: 1.5px solid var(--navy-800); }
.btn-outline:hover { background: var(--navy-800); color: #fff; }

.btn-ghost-light { background: rgba(255,255,255,0.12); color: #fff; border: 1.5px solid rgba(255,255,255,0.3); }
.btn-ghost-light:hover { background: rgba(255,255,255,0.2); }

.btn-block { width: 100%; }

/* --- Badge / pill --- */
.pill {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 13px; padding: 6px 13px; border-radius: var(--r-pill);
}
.pill-green-dark { background: rgba(52,211,153,0.16); color: var(--green-400); }
.pill-green { background: var(--green-100); color: var(--green-700); }

/* --- Cartes --- */
.card {
  background: var(--white); border: 1px solid var(--line);
  border-radius: var(--r-lg); box-shadow: var(--shadow-sm);
}

/* --- Utilitaires d'animation (révélation au scroll) ---
   Le contenu reste VISIBLE par défaut. L'effet ne s'active que si le JS
   a posé la classe .js-reveal sur <html> (progressive enhancement). */
.js-reveal .reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s ease; }
.js-reveal .reveal.is-visible { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  .js-reveal .reveal { opacity: 1; transform: none; transition: none; }
  html { scroll-behavior: auto; }
}

/* --- Accessibilité --- */
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
:focus-visible { outline: 3px solid var(--green-400); outline-offset: 2px; }
