/*
 * creep-site — CSS du kit (feature `kit`, LIBS-139).
 *
 * UNIQUEMENT du structurel : aucune couleur, aucune typographie imposée — le
 * site garde son design. Ce fichier ferme trois besoins précis :
 *
 * 1. Masquer le champ piège de creep-contact par une CLASSE, jamais par un
 *    style en ligne : la CSP de la feature `axum` n'admet `style=""` sur
 *    aucune balise (voir CLAUDE.md, feature `kit`, macro `piege`).
 * 2. Une utilitaire `.visually-hidden` classique (le texte reste lisible par
 *    un lecteur d'écran, invisible à l'écran) pour les libellés qui n'ont
 *    pas besoin d'être visibles (ex. légende d'une icône de fermeture).
 * 3. Le positionnement de la bannière de consentement (fixe en bas d'écran)
 *    et l'état `[x-cloak]` : avant qu'Alpine ne s'initialise, tout élément
 *    marqué `x-cloak` reste masqué — sans quoi un panneau conçu pour être
 *    replié apparaîtrait un instant déplié le temps qu'Alpine démarre.
 *
 * Chaque composant `kit.js` fonctionne SANS ce fichier : il ne fait
 * qu'améliorer la présentation, jamais conditionner le fonctionnement.
 */

.creep-piege {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}

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

[x-cloak] {
  display: none !important;
}

.creep-consentement {
  position: fixed;
  inset-inline: 0;
  bottom: 0;
  z-index: 1000;
}

.creep-consentement__panneau {
  max-height: 80vh;
  overflow-y: auto;
}

.creep-carrousel {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
}

.creep-carrousel__diapositive {
  flex: 0 0 100%;
  scroll-snap-align: start;
}

.creep-galerie__visionneuse {
  position: fixed;
  inset: 0;
  z-index: 1000;
}
