/* =========================================================
   GLOBAL.CSS — Styles partagés sur toutes les pages
   ========================================================= */

/* --- Fonts --- */
/* Polices auto-hébergées : voir public/assets/css/fonts.css. L'@import vers
   fonts.googleapis.com envoyait l'IP de chaque visiteur à Google avant même
   l'affichage de la bannière de consentement. */
@import url('/assets/css/fonts.css');

/* Franklin Gothic Demi, auto-hébergée comme les autres polices du site.
   Elle était appelée sur le serveur d'assets par une URL SIGNÉE ÉCRITE EN DUR,
   avec une expiration en 2076. Une signature figée dans un fichier statique ne
   survit pas à une rotation de clé : le jour de la rotation, la police tombe en
   repli silencieux sur Arial Narrow dans le pied de page et le carrousel, et
   rien ne le signale. Une feuille de style ne peut pas signer à la requête,
   donc la seule sortie est de ne plus avoir besoin de signature.
   Voir la règle « jamais de signature stockée ». */
@font-face {
  font-family: 'Franklin Gothic Demi';
  src: url('/assets/fonts/franklin-gothic-demi.woff2') format('woff2'),
       url('/assets/fonts/franklin-gothic-demi.woff') format('woff');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

/* --- Reset --- */
* { margin: 0; padding: 0; box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  width: 100%;
  height: 100%;
}

body {
  font-family: 'Inter', sans-serif;
  line-height: 1.6;
  color: var(--ff-black);
  background: var(--ff-gray-1);
  margin: 0;
  padding: 0;
  padding-top: 60px;
  width: 100%;
  min-height: 100%;
}

main { min-height: 0; }

/* --- CSS Variables --- */
:root {
  --pinned-hero-height: 0px;
  --scroll-content-height: 0px;
  --footer-height: 0px;
  --scroll-y: 0px;
  --header-offset: 0px;
}

/* --- Container --- */
.container {
  width: 100%;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 15px;
  padding-right: 15px;
}

/* --- Section Headers --- */
.section-header {
  text-align: center;
  padding: 70px 0 30px;
}

.section-header-tight {
  padding: 56px 0 36px;
}

.section-title {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 2.9rem;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--ff-black);
  margin-bottom: 10px;
}

.section-lead {
  color: var(--ff-gray-5);
  max-width: 720px;
  margin: 0 auto;
  font-size: 1.05rem;
  line-height: 1.7;
}

/* --- Utility --- */
.hidden {
  display: none;
}

/* One-shot notice after a rejected form (expired CSRF token), see layouts */
.csrf-notice {
  background: var(--ff-white);
  border-bottom: 1px solid var(--ff-gray-2);
  color: var(--ff-gray-6);
  text-align: center;
  padding: 12px 16px;
  font-size: 0.9rem;
}

@media (max-width: 768px) {
  .section-header {
    padding: 56px 0 22px;
  }
}
