/* =========================================================
   VICOL — Base / Reset
   ========================================================= */
*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior: auto; } }

body, h1, h2, h3, h4, p, figure, blockquote, dl, dd{ margin: 0; }
ul[class], ol[class]{ margin: 0; padding: 0; list-style: none; }

html, body{ height: 100%; }
body{
  font-family: var(--font-body);
  font-size: var(--fs-md);
  line-height: 1.65;
  color: var(--c-ink);
  background: var(--c-white);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}

img, picture, svg{ display: block; max-width: 100%; }
img{ height: auto; }

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

button, input, select, textarea{ font: inherit; color: inherit; }
button{ cursor: pointer; background: none; border: none; }

h1, h2, h3, h4{
  font-family: var(--font-display);
  color: var(--c-ink);
  line-height: 1.15;
  font-weight: 700;
}
h1{ font-size: var(--fs-5xl); letter-spacing: -0.01em; }
h2{ font-size: var(--fs-3xl); letter-spacing: -0.005em; }
h3{ font-size: var(--fs-xl); }
h4{ font-size: var(--fs-lg); }

p{ color: var(--c-ink-soft); max-width: 62ch; }

/* Accessibilité : focus clavier toujours visible */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
[tabindex]:focus-visible{
  outline: 2px solid var(--c-focus);
  outline-offset: 3px;
  border-radius: var(--radius-sm);
}

/* Lien d'évitement */
.skip-link{
  position: absolute;
  left: -999px;
  top: 0;
  background: var(--c-blue-dark);
  color: var(--c-white);
  padding: 12px 20px;
  z-index: 2000;
  font-weight: 600;
}
.skip-link:focus{ left: var(--sp-3); top: var(--sp-3); }

.container{
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-pad);
}

.visually-hidden{
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

::selection{ background: var(--c-teal); color: var(--c-ink); }

/* Chargement des polices — évite le FOUC brutal */
.fonts-loading body{ opacity: .98; }
