/* ============================================================
   INOVA DIGITAL — CSS global du template (autonome)
   Extrait fidèlement du <helmet><style> de TEMPLATE_DESIGN/INOVA DIGITAL.dc.html
   Le design des pages est porté en styles inline (fidélité 100 %) ;
   ce fichier ne contient QUE le socle global + les keyframes partagés.
   Polices : Rajdhani (titres) + Rubik (corps) — chargées dans _head.php.
   ============================================================ */

html, body {
  margin: 0;
  padding: 0;
  background: #0f1013;
  color: #f4f2ee;
  font-family: Rubik, system-ui, sans-serif;
  overflow-x: hidden;
}
* { box-sizing: border-box; }
a { color: #fdd600; text-decoration: none; }
a:hover { color: #ffe95c; }
button { font-family: inherit; cursor: pointer; }
::selection { background: #a71e22; color: #fff; }
/* Champs de formulaire : bordure or au focus (fidélité template) */
input:focus, textarea:focus, select:focus { border-color: #fdd600 !important; }
input::placeholder, textarea::placeholder { color: #6d6d76; }

/* ---- Keyframes partagés (marquee, pulsations, révélation, etc.) ---- */
@keyframes inova-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes inova-pulse   { 0%,100% { opacity: .35; transform: scale(1); } 50% { opacity: .7; transform: scale(1.06); } }
@keyframes inova-dot     { 0%,60%,100% { opacity: .25; transform: translateY(0); } 30% { opacity: 1; transform: translateY(-3px); } }
@keyframes inova-in      { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes inova-ring    { 0% { transform: scale(1); opacity: .55; } 70% { transform: scale(1.55); opacity: 0; } 100% { transform: scale(1.55); opacity: 0; } }
@keyframes inova-nudge   { 0%,88%,100% { transform: translateY(0); } 92% { transform: translateY(-4px); } 96% { transform: translateY(-2px); } }

/* ---- En-tête fixe : décalage du contenu (le header mesure 78px) ---- */
body { padding-top: 78px; }

/* ---- Contenu texte (pages légales / confidentialité) ---- */
.inova-prose h2 { font-family: Rajdhani, sans-serif; font-weight: 700; font-size: clamp(20px, 2.6vw, 28px); letter-spacing: .02em; text-transform: uppercase; color: #f4f2ee; margin: 34px 0 14px; padding-top: 16px; border-top: 1px solid #23262c; }
.inova-prose h2:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.inova-prose p, .inova-prose li { color: #a9a8b0; font-weight: 300; line-height: 1.8; font-size: 15.5px; margin: 0 0 14px; }
.inova-prose strong { color: #e2e0da; font-weight: 500; }
.inova-prose a { color: #fdd600; }
.inova-prose ul { padding-left: 20px; margin: 0 0 16px; }
.inova-prose code { background: #16181d; border: 1px solid #2c3038; padding: 1px 6px; font-size: 13px; color: #fdd600; }

/* ---- Bascule desktop / mobile du menu (breakpoint template ~1060px) ---- */
@media (max-width: 1059px) { .inova-desktop-nav { display: none !important; } }
@media (min-width: 1060px) { .inova-burger { display: none !important; } }

/* ---- Filet de sécurité révélation au scroll ----
   Les éléments [data-reveal] portent leur propre opacity:0 inline.
   inova.js les révèle via IntersectionObserver. Si JS est absent,
   ou pour l'impression, on force la visibilité pour ne jamais masquer le contenu. */
@media print { [data-reveal] { opacity: 1 !important; transform: none !important; } }
@media (prefers-reduced-motion: reduce) {
  [data-reveal] { transition: none !important; }
}
