/* Réglages visuels pilotés depuis /admin — Alpinia Web Craft
 *
 * Toutes les règles sont conditionnées à un attribut posé par
 * assets/js/site-content.js. Sans réglage dans l'admin, ce fichier
 * n'applique strictement rien : la direction artistique du site reste
 * celle de alpinia.css.
 *
 * C'est le seul endroit où un réglage d'admin touche au style, et la liste
 * est fermée : pas de CSS libre, pas de couleurs ni de tailles arbitraires. */

/* Section masquée depuis l'admin. !important car certaines sections ont un
 * display imposé (flex/grid) qui prendrait le dessus sur [hidden]. */
[data-sec-hidden] {
  display: none !important;
}

/* ── Espacement ───────────────────────────────────────────────────────── */

[data-spacing='compact'] {
  padding-top: clamp(28px, 4vw, 54px) !important;
  padding-bottom: clamp(28px, 4vw, 54px) !important;
}

[data-spacing='large'] {
  padding-top: clamp(90px, 12vw, 190px) !important;
  padding-bottom: clamp(90px, 12vw, 190px) !important;
}

/* ── Variantes ────────────────────────────────────────────────────────── */

/* Minimal : allège la section en retirant les mentions secondaires. */
[data-variant='minimal'] .sechead__aside,
[data-variant='minimal'] > .wrap > .label:last-child {
  display: none;
}

/* Accent : reprend le rouge de la charte sur le surtitre, rien de plus. */
[data-variant='accent'] .sechead__idx,
[data-variant='accent'] .idx {
  color: var(--red, #d33);
}

/* ── Animations d'entrée ──────────────────────────────────────────────── */

@media (prefers-reduced-motion: no-preference) {
  [data-anim-preset] {
    animation-duration: .7s;
    animation-timing-function: cubic-bezier(.22, .61, .36, 1);
    animation-fill-mode: both;
  }

  [data-anim-preset='fade-up'] { animation-name: alpinia-fade-up; }
  [data-anim-preset='fade-in'] { animation-name: alpinia-fade-in; }
  [data-anim-preset='slide-up'] { animation-name: alpinia-slide-up; }
  [data-anim-preset='scale'] { animation-name: alpinia-scale; }
}

@keyframes alpinia-fade-up {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: none; }
}

@keyframes alpinia-fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes alpinia-slide-up {
  from { transform: translateY(60px); }
  to { transform: none; }
}

@keyframes alpinia-scale {
  from { opacity: 0; transform: scale(.96); }
  to { opacity: 1; transform: none; }
}
