/* =========================================================
   Cuitata — feuille de style complémentaire à Tailwind
   Seul ce qui ne se fait pas en classes Tailwind vit ici :
   polices, placeholders, masonry, filtres, champs, boutons.
   Palette : voir tailwind.config dans le <head> de chaque page.
   ========================================================= */

/* --- Polices --------------------------------------------------------- */
@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500;700&display=swap');

:root {
  --noir:        #0A0A0B;   /* fond dominant */
  --noir-carte:  #0D0D0F;  /* fond des cartes */
  --ligne:       #1E1E21;  /* bordures discrètes */
  --ligne-forte: #2A2A2E; /* bordures de boutons */
  --rouge:       #FF2D1F;  /* accent principal */
  --rouge-clair: #FF6A5C;
  --gris:        #8C8C93;   /* texte secondaire */
  --blanc:       #F2F2F3;  /* texte principal */
}

html { scroll-behavior: smooth; }
body { background: var(--noir); color: var(--blanc); -webkit-font-smoothing: antialiased; }
::selection { background: var(--rouge); color: var(--noir); }
:focus-visible { outline: 2px solid var(--rouge); outline-offset: 2px; }

/* --- Liens ----------------------------------------------------------- */
a { color: var(--rouge); text-decoration: none; }
a:hover { color: var(--rouge-clair); }

/* --- Boutons ----------------------------------------------------------
   .cta        = action principale (rouge plein)
   .cta-ghost  = action secondaire (contour)
   .cta-lg     = version large, utilisée dans les hero et les formules */
.cta, .cta-ghost {
  display: inline-flex; align-items: center; justify-content: center; gap: .75rem;
  font-weight: 800; font-size: 16px; padding: 18px 32px; text-align: center;
  transition: background-color .18s, border-color .18s, transform .18s, color .18s;
}
.cta { background: var(--rouge); color: var(--noir); }
.cta:hover { background: var(--rouge-clair); color: var(--noir); transform: translateY(-2px); }
.cta:active { transform: translateY(0); }
.cta-ghost { border: 1px solid var(--ligne-forte); color: var(--blanc); }
.cta-ghost:hover { border-color: var(--rouge); color: var(--blanc); transform: translateY(-2px); }
.cta-lg { font-size: 18px; padding: 22px 36px; }
.cta-block { display: flex; width: 100%; }

/* --- Placeholder image / vidéo ---------------------------------------
   À remplacer par une <img> ou une <video> : garder .ph sur le
   conteneur suffit à conserver le ratio et le cadre. */
.ph { background-image: repeating-linear-gradient(135deg, #141416 0 10px, #0F0F11 10px 20px); }

/* --- Carte au survol -------------------------------------------------- */
.lift { transition: transform .25s cubic-bezier(.2,.7,.3,1), border-color .25s; }
.lift:hover { transform: translateY(-4px); border-color: var(--rouge); }

/* --- Masonry : nombre de colonnes explicite par palier ---------------- */
.masonry { column-count: 1; column-gap: 20px; }
.masonry > * { break-inside: avoid; margin: 0 0 20px; width: 100%; }
@media (min-width: 640px)  { .masonry { column-count: 2; } }
@media (min-width: 1120px) { .masonry { column-count: 3; } }

/* --- Tags (état actif piloté par js/main.js) -------------------------- */
.tag { transition: border-color .18s, color .18s, background-color .18s; }
.tag:hover { border-color: var(--ligne-forte); color: var(--blanc); }
.tag.is-active { border-color: var(--rouge); background: rgba(255,45,31,.1); color: var(--rouge); }

/* --- Barre de filtres collante (galerie) ----------------------------- */
.filtres { position: sticky; top: 68px; z-index: 30; background: rgba(10,10,11,.94); backdrop-filter: blur(12px); }

/* --- Champs de formulaire -------------------------------------------- */
.field { width: 100%; background: var(--noir); border: 1px solid var(--ligne-forte);
  color: var(--blanc); font-size: 15px; padding: 13px 14px; font-family: Archivo, sans-serif; }
.field::placeholder { color: #5C5C64; }
.field:hover { border-color: #3A3A40; }
