/* =====================================================================
   KYOLIS Manager — Base
   Reset léger, polices, styles des éléments de contenu en light DOM.
   Les composants encapsulés gèrent leur propre style ; ce fichier ne
   couvre que le document hôte et le contenu rédactionnel des pages.
   ---------------------------------------------------------------------
   POLICES : servies par le site lui-même (assets/fonts/, licence OFL),
   jamais par Google. Aucune adresse IP de visiteur ne part chez un tiers,
   ce que promet la politique de confidentialité. Fichiers repris des
   paquets Fontsource de l'application (sous-ensemble latin, accents compris).
   ===================================================================== */
@font-face{font-family:"Montserrat";src:url("../assets/fonts/montserrat-latin-500-normal.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Montserrat";src:url("../assets/fonts/montserrat-latin-600-normal.woff2") format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Montserrat";src:url("../assets/fonts/montserrat-latin-700-normal.woff2") format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"Montserrat";src:url("../assets/fonts/montserrat-latin-800-normal.woff2") format("woff2");font-weight:800;font-display:swap}
@font-face{font-family:"Open Sans";src:url("../assets/fonts/open-sans-latin-300-normal.woff2") format("woff2");font-weight:300;font-display:swap}
@font-face{font-family:"Open Sans";src:url("../assets/fonts/open-sans-latin-400-normal.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Open Sans";src:url("../assets/fonts/open-sans-latin-400-italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Open Sans";src:url("../assets/fonts/open-sans-latin-600-normal.woff2") format("woff2");font-weight:600;font-display:swap}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--font-body);
  color:var(--color-ink);
  background:var(--color-white);
  line-height:1.65;
  font-size:var(--text-base);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}

/* Conteneur de largeur, utilisé en light DOM par les pages */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--space-4)}
.narrow{max-width:760px;margin:0 auto}
.center{text-align:center}
@media(max-width:560px){.wrap{padding:0 var(--space-2)}}

/* Titres de contenu en light DOM (indexables).
   Graisse 700 et approche serrée : plus de retenue que le 900 d'origine. */
h1,h2,h3{font-family:var(--font-display);letter-spacing:-.02em;color:var(--color-ink);line-height:1.12}
h2{font-size:var(--h2);font-weight:700;margin-bottom:var(--space-3)}
.lead{font-size:var(--text-lg);color:var(--color-gray);font-weight:400;line-height:1.6}
@media(max-width:680px){h2{font-size:30px}.lead{font-size:17px}}

/* Eyebrow réutilisé en light DOM */
.eyebrow{font-family:var(--font-display);font-weight:700;text-transform:uppercase;letter-spacing:.16em;font-size:var(--text-xs);color:var(--color-green);margin-bottom:var(--space-2)}

/* Sections : rythme constant de 96px */
.section{padding:var(--space-12) 0}
.section--paper{background:var(--color-paper);border-top:1px solid var(--color-line);border-bottom:1px solid var(--color-line)}
@media(max-width:680px){.section{padding:var(--space-8) 0}}

/* Accessibilité : focus visible global */
:focus-visible{outline:2px solid var(--color-green);outline-offset:3px;border-radius:4px}

/* Mouvement réduit respecté globalement */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{animation:none!important;transition:none!important}
}
