html { background: var(--color-background); }
body {
  min-height: 100vh;
  min-height: 100svh;
  background: var(--color-background);
  color: var(--color-text);
  font-family: var(--font-family);
  font-weight: 700;
  font-size: var(--text-size);
  line-height: var(--text-leading);
  -webkit-font-smoothing: antialiased;
}

/* ---------- En-tête : barre blanche flottante, fixe ---------- */
.site-header {
  position: fixed;
  z-index: 10;
  inset: var(--header-gap) var(--header-gap) auto var(--header-gap);
  height: var(--header-height);
  padding-inline: var(--header-pad-x);
  background: var(--color-header-bg);
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.logo {
  color: var(--color-logo);
  font-size: var(--logo-size);
  font-weight: 900;
  font-stretch: 102%;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
}
.logo-short { display: inline; letter-spacing: 0.3em; margin-right: -0.3em; }
.logo-full  { display: none; }
.site-nav ul { display: flex; align-items: center; gap: var(--nav-gap); }
.site-nav a {
  color: var(--color-nav);
  font-size: var(--nav-size);
  font-weight: 700;
  line-height: 1;
  text-transform: uppercase;
  transition: color var(--transition-fast);
}
@media (min-width: 1200px) {
  .logo-short { display: none; }
  .logo-full  { display: inline; }
}
/* ASSUMPTION : survol / page courante non documentés dans les captures */
.site-nav a:hover,
.site-nav a[aria-current="page"] { color: var(--color-logo); }

a:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 4px;
}
.site-header a:focus-visible { outline-color: #000; }

/* ---------- Accueil : image plein cadre ---------- */
.hero { height: 100vh; height: 100svh; }
.hero picture { height: 100%; }
.hero img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }

.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
