/* Correctifs appliqués hors compilation Tailwind (audit Impeccable du 2026-11-08).
   À reporter dans design/site.css puis supprimer ce fichier et son <link> dans includes/header.php. */

/* Police Inter : le style la demandait sans jamais la charger (chaque visiteur voyait
   la police de son système). Inter variable 4.x, sous-ensemble latin, auto-hébergée
   (Fontsource @fontsource-variable/inter 5.2.5, licence SIL OFL 1.1). */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/assets/fonts/inter-latin-wght-normal-5.2.5.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Contraste WCAG AA : #ef174c ne donnait que 4,3:1 avec le blanc (badge « Nouveau », bulle d annonce).
   #d81043 (rouge des boutons, --color-accent) donne 5,2:1. */
:root { --accent-red: #d81043; }

/* Bandeau final : le dégradé finissait en #00a651 (3,2:1 avec le texte blanc).
   #067647 (--success) garde le vert de la marque et donne 5,7:1. */
.banner { background: linear-gradient(135deg, #075bd8, #071a3d 65%, #067647); }

/* Image d accueil servie en <picture> (WebP + tailles adaptées) : la balise picture ne doit
   pas créer de boîte, pour que l image garde exactement sa mise en page d origine. */
.hero-visual > picture { display: contents; }

/* ---------------------------------------------------------------------------
   Animation (impeccable animate, 2026-11-08)
   --------------------------------------------------------------------------- */

/* « Notre méthode » : un trait aux couleurs de chaque étape se dessine de 01 à 04,
   puis le numéro de l étape s allume. Sans JavaScript, ou avec les animations
   réduites, les traits sont simplement affichés (script.js ajoute .motion-ready). */
.process-step { position: relative; overflow: hidden; --step-color: var(--secondary); }
.process-step:nth-child(2) { --step-color: #0a8fa8; }
.process-step:nth-child(3) { --step-color: var(--success); }
.process-step:nth-child(4) { --step-color: var(--accent-red); }
.process-step::after {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 4px;
  background: var(--step-color);
}
.process.motion-ready .process-step::after {
  clip-path: inset(0 100% 0 0);
  transition: clip-path 650ms cubic-bezier(0.16, 1, 0.3, 1);
}
.process.motion-ready .process-step .card-body::before {
  opacity: 0.25;
  transition: opacity 300ms ease-out;
}
.process.is-revealed .process-step::after { clip-path: inset(0 0 0 0); }
.process.is-revealed .process-step .card-body::before { opacity: 1; }
.process.motion-ready .process-step:nth-child(2)::after { transition-delay: 140ms; }
.process.motion-ready .process-step:nth-child(3)::after { transition-delay: 280ms; }
.process.motion-ready .process-step:nth-child(4)::after { transition-delay: 420ms; }
.process.motion-ready .process-step:nth-child(1) .card-body::before { transition-delay: 350ms; }
.process.motion-ready .process-step:nth-child(2) .card-body::before { transition-delay: 490ms; }
.process.motion-ready .process-step:nth-child(3) .card-body::before { transition-delay: 630ms; }
.process.motion-ready .process-step:nth-child(4) .card-body::before { transition-delay: 770ms; }
@media print {
  .process.motion-ready .process-step::after { clip-path: none; }
  .process.motion-ready .process-step .card-body::before { opacity: 1; }
}

/* Menu mobile : il glisse en place au lieu d apparaître d un coup. */
@keyframes doozen-nav-in { from { opacity: 0; transform: translateY(-6px); } }
@keyframes doozen-nav-fade { from { opacity: 0; } }
@media (max-width: 1079.98px) {
  .nav.open { animation: doozen-nav-in 180ms cubic-bezier(0.16, 1, 0.3, 1); }
}
@media (max-width: 1079.98px) and (prefers-reduced-motion: reduce) {
  .nav.open { animation: doozen-nav-fade 120ms ease-out; }
}

/* Badge « Nouveau » : trois pulsations pour attirer l oeil, puis il se tient tranquille. */
.announcement-bubble .badge { animation-iteration-count: 3; }
