/*
Theme Name: Le Faucon Digital
Theme URI: https://lefaucondigital.fr
Author: Le Faucon Digital
Author URI: https://lefaucondigital.fr
Description: Thème premium sur mesure — identité sombre violet-fuchsia, axé génération de leads.
Version: 1.0.0
License: GNU General Public License v2 or later
Text Domain: faucon-digital
Tags: dark, agency, portfolio, lead-generation, one-page
*/

/* ═══════════════════════════════════════════
   VARIABLES
═══════════════════════════════════════════ */
:root {
  --nuit:     #0D0F1A;
  --bleu:     #1C244B;
  --bleu2:    #2A3566;
  --violet:   #9B337F;
  --fuchsia:  #B91B78;
  --fuchsia2: #D4348E;
  --blanc:    #FFFFFF;
  --gris:     #F4F4F6;
  --gris2:    #E8E8F0;
  --gris-txt: #6B6B80;
  --texte:    #1A1A2E;
  --light:    #F5F0F8;
  --muted:    #9A93AF;
  --bord-d:   rgba(155,51,127,0.22);
  --grad:     linear-gradient(135deg, #9B337F 0%, #B91B78 100%);
}

/* ═══════════════════════════════════════════
   RESET & BASE
═══════════════════════════════════════════ */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; font-size: 16px; }
body {
  font-family: 'Poppins', sans-serif;
  background: var(--blanc);
  color: var(--texte);
  overflow-x: hidden;
  line-height: 1.6;
}
img { max-width: 100%; height: auto; display: block; }
a { text-decoration: none; color: inherit; }
ul { list-style: none; }
button { cursor: pointer; font-family: 'Poppins', sans-serif; }

/* ═══════════════════════════════════════════
   ANIMATIONS
═══════════════════════════════════════════ */
@keyframes fadeInUp    { from { opacity:0; transform:translateY(36px) } to { opacity:1; transform:translateY(0) } }
@keyframes fadeInLeft  { from { opacity:0; transform:translateX(-40px) } to { opacity:1; transform:translateX(0) } }
@keyframes fadeInRight { from { opacity:0; transform:translateX(40px) } to { opacity:1; transform:translateX(0) } }
@keyframes shimmer     { 0% { background-position:200% center } 100% { background-position:-200% center } }
@keyframes gradShift   { 0%,100% { background-position:0% 50% } 50% { background-position:100% 50% } }
@keyframes pulse       { 0%,100% { opacity:1; transform:scale(1) } 50% { opacity:.3; transform:scale(1.7) } }
@keyframes floatUp     { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-12px) } }
@keyframes floatDown   { 0%,100% { transform:translateY(0) } 50% { transform:translateY(9px) } }
@keyframes rotate      { to { transform:rotate(360deg) } }
@keyframes rotateRev   { to { transform:rotate(-360deg) } }
@keyframes blink       { 0%,100% { box-shadow:0 0 10px rgba(185,27,120,.5) } 50% { box-shadow:0 0 26px rgba(185,27,120,.9) } }
@keyframes particle    { 0% { transform:translateY(0) scale(1); opacity:.7 } 100% { transform:translateY(-130px) scale(0); opacity:0 } }
@keyframes bgMove      { 0% { background-position:0 0 } 100% { background-position:60px 60px } }

/* SCROLL REVEAL */
.rv  { opacity:0; transform:translateY(30px); transition:opacity .75s ease,transform .75s ease; }
.rvl { opacity:0; transform:translateX(-36px); transition:opacity .75s ease,transform .75s ease; }
.rvr { opacity:0; transform:translateX(36px);  transition:opacity .75s ease,transform .75s ease; }
.rvs { opacity:0; transform:scale(.88);         transition:opacity .7s ease,transform .7s ease; }
.rv.on,.rvl.on,.rvr.on,.rvs.on { opacity:1; transform:none; }
