/* ═══════════════════════════════════════════════════════════
   CROWNGLORY — Identité Visuelle Premium v2.0
   Luxe Royal × Intelligence Artificielle
   Palette : Rouge Cramoisi #8B1A2E | Or Métallique #B8964A | Noir #0A0A0F
   ═══════════════════════════════════════════════════════════ */

/* ── VARIABLES CSS ──────────────────────────────────────── */
:root {
  /* Palette principale — inspirée carte de visite */
  --rouge-royal:     #8B1A2E;
  --rouge-profond:   #6B1222;
  --rouge-vif:       #A82040;
  --rouge-lueur:     rgba(139,26,46,.35);

  --or-metal:        #B8964A;
  --or-clair:        #D4B86A;
  --or-chaud:        #C9A445;
  --or-pale:         #E8D5A3;
  --or-lueur:        rgba(184,150,74,.30);

  --noir-absolu:     #0A0A0F;
  --noir-profond:    #0F0F18;
  --noir-riche:      #15151F;
  --noir-card:       #1A1A26;
  --noir-border:     #252535;

  --blanc:           #FFFFFF;
  --blanc-creme:     #FAF7F2;
  --blanc-soft:      #F5F0E8;

  --gris-clair:      #F2EEE8;
  --gris-moyen:      #E0D8CC;
  --gris-texte:      #8A8070;
  --gris-sombre:     #3A3530;

  --rouge-erreur:    #E53935;
  --vert-succes:     #2E7D5E;

  /* Typographies */
  --font-titre:      'Playfair Display', 'Cinzel', 'Georgia', serif;
  --font-sous-titre: 'Montserrat', 'Inter', sans-serif;
  --font-corps:      'Inter', 'Open Sans', sans-serif;

  /* Ombres Luxe + IA */
  --shadow-sm:       0 2px 8px rgba(0,0,0,.12);
  --shadow-md:       0 6px 24px rgba(0,0,0,.18);
  --shadow-lg:       0 12px 48px rgba(0,0,0,.25);
  --shadow-or:       0 8px 32px rgba(184,150,74,.28);
  --shadow-rouge:    0 8px 32px rgba(139,26,46,.30);
  --glow-or:         0 0 30px rgba(184,150,74,.20), 0 0 60px rgba(184,150,74,.10);
  --glow-rouge:      0 0 30px rgba(139,26,46,.25), 0 0 60px rgba(139,26,46,.12);

  /* Gradients signature */
  --gradient-hero:   linear-gradient(160deg, #0A0A0F 0%, #15101A 40%, #1A0A12 70%, #0F0F18 100%);
  --gradient-or:     linear-gradient(135deg, #C9A445 0%, #B8964A 50%, #9A7A35 100%);
  --gradient-rouge:  linear-gradient(135deg, #A82040 0%, #8B1A2E 50%, #6B1222 100%);
  --gradient-glass:  linear-gradient(135deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
  --gradient-neural: radial-gradient(ellipse 80% 60% at 20% 30%, rgba(139,26,46,.12) 0%, transparent 60%),
                     radial-gradient(ellipse 60% 80% at 80% 70%, rgba(184,150,74,.08) 0%, transparent 60%);

  /* Rayons & transitions */
  --rayon:           10px;
  --rayon-lg:        18px;
  --rayon-xl:        28px;
  --transition:      .35s cubic-bezier(.4,0,.2,1);
  --max-width:       1200px;

  /* ── ALIAS VARIABLES — compatibilité ── */
  /* or-royal = synonyme de or-metal (doré principal) */
  --or-royal:        #B8964A;
  --or-fonce:        #9A7A35;
  /* bleu-nuit / bleu-profond = noir-card (sections sombres) */
  --bleu-nuit:       #1A1A26;
  --bleu-profond:    #15151F;
  /* gris-anthracite = gris foncé pour textes */
  --gris-anthracite: #4A4540;
  /* violet pour éléments créatifs */
  --violet:          #6B2FA0;
}

/* ── RESET & BASE ────────────────────────────────────────── */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; font-size:16px; }
body {
  font-family: var(--font-corps);
  color: var(--gris-sombre);
  background: var(--blanc);
  line-height: 1.7;
  overflow-x: hidden;
}
img { max-width:100%; height:auto; display:block; }
a { text-decoration:none; color:inherit; transition:color var(--transition); }
ul,ol { list-style:none; }
button,input,textarea,select { font:inherit; border:none; outline:none; background:none; cursor:pointer; }

/* ── TYPOGRAPHIE ─────────────────────────────────────────── */
h1,h2,h3,h4 {
  font-family: var(--font-titre);
  line-height: 1.2;
  letter-spacing: .02em;
  font-weight: 700;
  color: var(--noir-profond);
}
h1 { font-size: clamp(2rem, 5vw, 4.5rem); }
h2 { font-size: clamp(1.6rem, 3.5vw, 2.8rem); }
h3 { font-size: clamp(1.2rem, 2.5vw, 1.9rem); }
h4 { font-size: clamp(1rem, 2vw, 1.4rem); }
p  { font-size: clamp(1rem, 1.5vw, 1.1rem); line-height:1.75; }

.texte-or      { color: var(--or-metal); }
.texte-rouge   { color: var(--rouge-royal); }
.texte-blanc   { color: var(--blanc); }
.texte-pale    { color: var(--or-pale); }
.italic        { font-style: italic; font-family: var(--font-titre); }

/* ── CONTENEUR ───────────────────────────────────────────── */
.container {
  width: 92%;
  max-width: var(--max-width);
  margin: 0 auto;
}
.container-sm { max-width: 800px; }
.section { padding: 100px 0; }
.section-sm { padding: 60px 0; }

/* ══════════════════════════════════════════════════════════
   HEADER — Glassmorphism IA
   ══════════════════════════════════════════════════════════ */
#header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 1000;
  height: 80px;
  background: rgba(10,10,15,.85);
  backdrop-filter: blur(24px) saturate(180%);
  -webkit-backdrop-filter: blur(24px) saturate(180%);
  border-bottom: 1px solid rgba(184,150,74,.12);
  transition: all var(--transition);
  display: flex;
  align-items: center;
}
#header.scrolled {
  background: rgba(10,10,15,.96);
  border-bottom-color: rgba(184,150,74,.22);
  box-shadow: 0 4px 24px rgba(0,0,0,.35);
}
.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
}

/* LOGO avec image réelle */
.logo {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-titre);
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--blanc);
  letter-spacing: .04em;
  text-transform: uppercase;
}
.logo-img {
  width: 36px;
  height: 36px;
  object-fit: contain;
  filter: drop-shadow(0 0 8px rgba(184,150,74,.4));
}
.logo span.glory { color: var(--or-metal); }
.logo-slogan {
  display: none;
  font-size: .62rem;
  letter-spacing: .12em;
  color: rgba(184,150,74,.6);
  text-transform: uppercase;
  font-family: var(--font-sous-titre);
  font-weight: 400;
}

/* NAV */
.nav-links {
  display: flex;
  align-items: center;
  gap: 2rem;
}
.nav-links a {
  font-family: var(--font-sous-titre);
  font-size: .82rem;
  font-weight: 600;
  color: rgba(255,255,255,.75);
  letter-spacing: .06em;
  text-transform: uppercase;
  position: relative;
  padding-bottom: 3px;
  transition: color var(--transition);
}
.nav-links a::after {
  content:'';
  position:absolute;
  bottom:0; left:0;
  width:0; height:1px;
  background: var(--gradient-or);
  transition: width var(--transition);
}
.nav-links a:hover::after,
.nav-links a.active::after { width:100%; }
.nav-links a:hover,
.nav-links a.active { color: var(--or-clair); }

/* CTA Header */
.btn-header-cta {
  background: var(--gradient-rouge);
  color: var(--or-clair) !important;
  padding: 11px 22px;
  border-radius: 6px;
  font-family: var(--font-sous-titre);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  white-space: nowrap;
  border: 1px solid rgba(184,150,74,.25);
  transition: all var(--transition);
  position: relative;
  overflow: hidden;
}
.btn-header-cta::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(184,150,74,.12), transparent);
  opacity: 0;
  transition: opacity var(--transition);
}
.btn-header-cta:hover::before { opacity: 1; }
.btn-header-cta:hover {
  box-shadow: var(--shadow-rouge);
  transform: translateY(-1px);
  border-color: rgba(184,150,74,.4);
}
.btn-header-cta::after { display:none !important; }

/* HAMBURGER */
.hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  width: 32px;
  cursor: pointer;
  z-index: 1010;
}
.hamburger span {
  display: block;
  height: 2px;
  background: var(--or-clair);
  border-radius: 2px;
  transition: var(--transition);
}
.hamburger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity:0; }
.hamburger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* NAV MOBILE */
.nav-mobile {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(10,10,15,.97);
  backdrop-filter: blur(30px);
  z-index: 999;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2.5rem;
  opacity: 0;
  transform: translateX(100%);
  transition: opacity .4s ease, transform .4s ease;
}
.nav-mobile.open {
  display: flex;
  opacity: 1;
  transform: translateX(0);
}
.nav-mobile a {
  font-family: var(--font-titre);
  font-size: 1.8rem;
  color: var(--blanc);
  font-weight: 700;
  transition: color var(--transition);
}
.nav-mobile a:hover { color: var(--or-clair); }
.nav-mobile .btn-mobile-cta {
  background: var(--gradient-rouge);
  color: var(--or-pale);
  padding: 14px 36px;
  border-radius: 8px;
  font-family: var(--font-sous-titre);
  font-size: 1rem;
  font-weight: 700;
  border: 1px solid rgba(184,150,74,.3);
  margin-top: 1rem;
}

/* ══════════════════════════════════════════════════════════
   BANDEAU URGENCE — Style IA Neural
   ══════════════════════════════════════════════════════════ */
.bandeau-urgence {
  background: linear-gradient(90deg, var(--noir-absolu) 0%, var(--rouge-profond) 30%, var(--rouge-royal) 50%, var(--rouge-profond) 70%, var(--noir-absolu) 100%);
  background-size: 200% 100%;
  animation: bandeau-slide 6s linear infinite;
  min-height: 50px;
  height: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  margin-top: 80px;
  font-family: var(--font-sous-titre);
  font-size: .82rem;
  font-weight: 600;
  color: var(--or-pale);
  letter-spacing: .04em;
  gap: .8rem;
  padding: 8px 1rem;
  border-bottom: 1px solid rgba(184,150,74,.15);
}
@keyframes bandeau-slide {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}
.bandeau-urgence .icon-urgence {
  animation: pulse-icon 2s infinite;
  font-size: 1rem;
  color: var(--or-metal);
}
.bandeau-urgence strong { color: var(--or-clair); }
.bandeau-urgence a {
  color: var(--or-clair);
  text-decoration: underline;
  text-underline-offset: 3px;
  font-weight: 700;
}
@keyframes pulse-icon {
  0%,100% { opacity:1; transform:scale(1); }
  50%      { opacity:.7; transform:scale(1.15); }
}

/* ══════════════════════════════════════════════════════════
   BOUTONS — Système complet Luxe IA
   ══════════════════════════════════════════════════════════ */
.btn {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: 16px 40px;
  border-radius: 6px;
  font-family: var(--font-sous-titre);
  font-weight: 700;
  font-size: .95rem;
  letter-spacing: .06em;
  cursor: pointer;
  transition: all var(--transition);
  white-space: nowrap;
  position: relative;
  overflow: hidden;
}
.btn::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,.08), transparent 60%);
  opacity: 0;
  transition: opacity var(--transition);
}
.btn:hover::before { opacity: 1; }

/* Bouton Or — CTA principal */
.btn-or {
  background: var(--gradient-or);
  color: var(--noir-absolu);
  border: 1px solid var(--or-chaud);
}
.btn-or:hover {
  box-shadow: var(--shadow-or), var(--glow-or);
  transform: translateY(-3px) scale(1.02);
}

/* Bouton Rouge — CTA secondaire */
.btn-rouge {
  background: var(--gradient-rouge);
  color: var(--or-pale);
  border: 1px solid rgba(184,150,74,.25);
}
.btn-rouge:hover {
  box-shadow: var(--shadow-rouge), var(--glow-rouge);
  transform: translateY(-3px) scale(1.02);
  border-color: rgba(184,150,74,.45);
}

/* Bouton outline blanc (sur fond sombre) */
.btn-outline-blanc {
  background: transparent;
  border: 1.5px solid rgba(255,255,255,.35);
  color: var(--blanc);
}
.btn-outline-blanc:hover {
  background: rgba(255,255,255,.08);
  border-color: var(--or-pale);
  color: var(--or-pale);
  transform: translateY(-3px);
}

/* Bouton outline or */
.btn-outline-or {
  background: transparent;
  border: 1.5px solid var(--or-metal);
  color: var(--or-metal);
}
.btn-outline-or:hover {
  background: var(--or-metal);
  color: var(--noir-absolu);
  transform: translateY(-3px);
  box-shadow: var(--shadow-or);
}

/* Bouton blanc (sur fond coloré) */
.btn-blanc {
  background: var(--blanc);
  color: var(--rouge-royal);
  border: 1px solid transparent;
}
.btn-blanc:hover {
  background: var(--noir-absolu);
  color: var(--or-clair);
  box-shadow: 0 12px 40px rgba(0,0,0,.3);
  transform: translateY(-3px);
}

.btn-sm  { padding: 11px 24px; font-size:.8rem; }
.btn-lg  { padding: 18px 52px; font-size:1rem; }
.btn-full { width:100%; justify-content:center; }

/* ══════════════════════════════════════════════════════════
   HERO PRINCIPAL — Noir Profond + Neural + Particules
   ══════════════════════════════════════════════════════════ */
.hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  overflow: hidden;
  background: var(--noir-absolu);
}
.hero-bg {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 80% 50% at 50% -10%, rgba(139,26,46,.25) 0%, transparent 60%),
    radial-gradient(ellipse 50% 60% at 90% 80%, rgba(184,150,74,.08) 0%, transparent 55%),
    radial-gradient(ellipse 60% 40% at 10% 60%, rgba(139,26,46,.10) 0%, transparent 50%),
    var(--gradient-hero);
  z-index: 0;
}
/* Grille IA — effet neural network subtil */
.hero-bg::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(184,150,74,.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(184,150,74,.03) 1px, transparent 1px);
  background-size: 60px 60px;
  mask-image: radial-gradient(ellipse 80% 80% at 50% 50%, black 30%, transparent 100%);
}
.hero-particles {
  position: absolute;
  inset: 0;
  overflow: hidden;
  z-index: 1;
}
.particle {
  position: absolute;
  width: 2px; height: 2px;
  background: var(--or-metal);
  border-radius: 50%;
  opacity: .35;
  animation: float-particle linear infinite;
}
@keyframes float-particle {
  0%   { transform: translateY(100vh) translateX(0); opacity:0; }
  10%  { opacity:.35; }
  90%  { opacity:.15; }
  100% { transform: translateY(-10vh) translateX(20px); opacity:0; }
}
.hero-content {
  position: relative;
  z-index: 2;
  max-width: 920px;
  padding: 0 1.5rem;
}
.hero-badge {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  background: rgba(139,26,46,.15);
  border: 1px solid rgba(184,150,74,.25);
  color: var(--or-pale);
  padding: 8px 22px;
  border-radius: 30px;
  font-family: var(--font-sous-titre);
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  margin-bottom: 2rem;
  backdrop-filter: blur(10px);
}
.hero h1 {
  color: var(--blanc);
  margin-bottom: 1.5rem;
  text-shadow: 0 2px 40px rgba(0,0,0,.5);
}
.hero h1 .accent {
  color: var(--or-clair);
  background: linear-gradient(135deg, #D4B86A 0%, #C9A445 40%, #E8D07A 70%, #B8964A 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.hero-sous-titre {
  font-size: clamp(1rem, 2vw, 1.2rem);
  color: var(--or-pale);
  margin-bottom: 1.5rem;
  font-family: var(--font-titre);
  font-style: italic;
  opacity: .85;
}
.hero-desc {
  font-size: clamp(.9rem, 1.5vw, 1.05rem);
  color: rgba(255,255,255,.65);
  margin-bottom: 2.5rem;
  max-width: 680px;
  margin-left: auto;
  margin-right: auto;
  line-height: 1.8;
}
.hero-services {
  font-family: var(--font-sous-titre);
  font-size: .8rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255,255,255,.38);
  margin-bottom: 3rem;
}
.hero-services span { color: var(--or-metal); margin: 0 .6rem; }
.hero-btns {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: center;
  margin-bottom: 3rem;
}
.hero-scroll {
  position: absolute;
  bottom: 2.5rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .5rem;
  color: rgba(184,150,74,.5);
  font-family: var(--font-sous-titre);
  font-size: .7rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  animation: bounce 2s ease-in-out infinite;
  z-index: 2;
}
@keyframes bounce {
  0%,100% { transform: translateX(-50%) translateY(0); }
  50%      { transform: translateX(-50%) translateY(10px); }
}

/* ══════════════════════════════════════════════════════════
   SECTION CHIFFRES / STATS — Style IA
   ══════════════════════════════════════════════════════════ */
.stats-bande {
  background: var(--noir-riche);
  padding: 50px 0;
  border-top: 1px solid rgba(184,150,74,.12);
  border-bottom: 1px solid rgba(184,150,74,.12);
  position: relative;
  overflow: hidden;
}
.stats-bande::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 80% 100% at 50% 50%, rgba(139,26,46,.06) 0%, transparent 70%);
}
.stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
  text-align: center;
  position: relative;
  z-index: 1;
}
.stat-item {
  position: relative;
  padding: 1.5rem;
}
.stat-item::after {
  content: '';
  position: absolute;
  right: 0; top: 20%;
  height: 60%;
  width: 1px;
  background: linear-gradient(to bottom, transparent, rgba(184,150,74,.2), transparent);
}
.stat-item:last-child::after { display: none; }
.stat-item .chiffre {
  font-family: var(--font-titre);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 700;
  background: var(--gradient-or);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  line-height: 1;
  display: block;
}
.stat-item .label {
  font-family: var(--font-sous-titre);
  font-size: .75rem;
  color: rgba(255,255,255,.45);
  letter-spacing: .1em;
  text-transform: uppercase;
  margin-top: .4rem;
  display: block;
}

/* ══════════════════════════════════════════════════════════
   SECTION SERVICES CARDS — Glassmorphism
   ══════════════════════════════════════════════════════════ */
.services-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 1.5rem;
}
.service-card {
  background: var(--blanc-creme);
  border: 1px solid var(--gris-moyen);
  border-radius: var(--rayon-lg);
  padding: 2.5rem 2rem;
  transition: all var(--transition);
  position: relative;
  overflow: hidden;
}
.service-card::before {
  content:'';
  position:absolute;
  top:0; left:0;
  width:100%; height:3px;
  background: var(--gradient-rouge);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--transition);
}
.service-card::after {
  content:'';
  position:absolute;
  bottom:0; right:0;
  width:60%; height:60%;
  background: radial-gradient(circle at 100% 100%, rgba(184,150,74,.04), transparent 70%);
  pointer-events: none;
}
.service-card:hover::before { transform: scaleX(1); }
.service-card:hover {
  transform: translateY(-8px);
  box-shadow: var(--shadow-lg);
  border-color: rgba(184,150,74,.3);
  background: var(--blanc);
}
.service-icon {
  width: 54px; height: 54px;
  background: linear-gradient(135deg, rgba(139,26,46,.08), rgba(184,150,74,.06));
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  margin-bottom: 1.5rem;
  border: 1px solid rgba(184,150,74,.2);
}
.service-card h3 {
  font-size: 1.15rem;
  margin-bottom: .75rem;
  color: var(--noir-profond);
}
.service-card p {
  font-size: .92rem;
  color: var(--gris-texte);
  margin-bottom: 1rem;
}
.micro-temoignage {
  font-style: italic;
  font-size: .85rem;
  color: var(--gris-texte);
  border-left: 2px solid var(--or-metal);
  padding-left: .75rem;
  margin-top: 1rem;
}

/* ══════════════════════════════════════════════════════════
   SECTION SOMBRE — Fond Neural IA
   ══════════════════════════════════════════════════════════ */
.section-sombre {
  background: var(--noir-profond);
  color: var(--blanc);
  position: relative;
  overflow: hidden;
}
.section-sombre::before {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--gradient-neural);
  pointer-events: none;
}
.section-sombre h2,
.section-sombre h3 { color: var(--blanc); }
.section-sombre p { color: rgba(255,255,255,.72); }

.problem-box {
  background: rgba(139,26,46,.08);
  border: 1px solid rgba(184,150,74,.18);
  backdrop-filter: blur(10px);
  border-radius: var(--rayon-lg);
  padding: 2.5rem;
  margin: 2rem 0;
  position: relative;
}
.problem-list li {
  display: flex;
  align-items: center;
  gap: .75rem;
  font-size: 1.02rem;
  color: rgba(255,255,255,.72);
  padding: .65rem 0;
  border-bottom: 1px solid rgba(255,255,255,.05);
}
.problem-list li:last-child { border-bottom:none; }
.x-icon { color: #FF6B6B; font-size: 1rem; }

.mouvements-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin-top: 3rem;
  position: relative;
  z-index: 1;
}
.mouvement-card {
  background: var(--blanc);
  border-radius: var(--rayon-lg);
  padding: 2rem;
  border-top: 4px solid var(--rouge-royal);
  box-shadow: var(--shadow-md);
  transition: all var(--transition);
}
.mouvement-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-lg), 0 0 20px rgba(139,26,46,.08);
  border-top-color: var(--or-metal);
}
.mouvement-card .num {
  font-family: var(--font-titre);
  font-size: 2.8rem;
  background: var(--gradient-or);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  font-weight: 700;
  line-height: 1;
  display: block;
  margin-bottom: .5rem;
}
.mouvement-card h3 { font-size: 1.05rem; color: var(--noir-profond); margin-bottom: .5rem; }
.mouvement-card p  { font-size: .88rem; color: var(--gris-texte); }

/* ══════════════════════════════════════════════════════════
   SECTION SERVICES DÉTAILLÉS
   ══════════════════════════════════════════════════════════ */
.service-detail {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
  padding: 4rem 0;
  border-bottom: 1px solid rgba(184,150,74,.12);
}
.service-detail:last-child { border-bottom: none; }
.service-detail.reverse { direction: rtl; }
.service-detail.reverse > * { direction: ltr; }
.service-num {
  font-family: var(--font-titre);
  font-size: 5rem;
  background: linear-gradient(135deg, rgba(184,150,74,.1), rgba(139,26,46,.08));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  font-weight: 700;
  line-height: 1;
  display: block;
  margin-bottom: -.5rem;
}
.service-badge {
  display: inline-block;
  background: rgba(139,26,46,.08);
  border: 1px solid rgba(139,26,46,.2);
  color: var(--rouge-royal);
  padding: 4px 14px;
  border-radius: 20px;
  font-size: .72rem;
  font-weight: 700;
  font-family: var(--font-sous-titre);
  letter-spacing: .1em;
  text-transform: uppercase;
  margin-bottom: 1rem;
}
.service-detail h3 {
  font-size: clamp(1.3rem, 2.5vw, 1.7rem);
  margin-bottom: 1rem;
  color: var(--noir-profond);
}
.service-detail-intro {
  font-size: .98rem;
  color: var(--gris-texte);
  margin-bottom: 1.5rem;
  font-style: italic;
}
.benefices-list li {
  display: flex;
  align-items: flex-start;
  gap: .75rem;
  padding: .5rem 0;
  font-size: .92rem;
  color: var(--gris-sombre);
}
.check-or { color: var(--or-metal); flex-shrink: 0; margin-top: 3px; }
.service-stats {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  margin-top: 1.5rem;
}
.stat-badge {
  background: var(--gris-clair);
  padding: 5px 14px;
  border-radius: 20px;
  font-size: .78rem;
  font-weight: 600;
  font-family: var(--font-sous-titre);
  color: var(--gris-sombre);
  border: 1px solid var(--gris-moyen);
}
.service-visual {
  background: linear-gradient(135deg, var(--noir-riche), var(--noir-card));
  border: 1px solid rgba(184,150,74,.15);
  border-radius: var(--rayon-xl);
  height: 320px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 5rem;
  position: relative;
  overflow: hidden;
}
.service-visual::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 30% 30%, rgba(139,26,46,.12), transparent 60%),
    radial-gradient(circle at 70% 70%, rgba(184,150,74,.06), transparent 60%);
}
.service-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: var(--rayon-xl);
}

/* ══════════════════════════════════════════════════════════
   SECTION PROCESS
   ══════════════════════════════════════════════════════════ */
.process-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
  position: relative;
}
.process-grid::before {
  content:'';
  position:absolute;
  top: 44px; left: 12%;
  width: 76%; height: 1px;
  background: linear-gradient(90deg, var(--rouge-royal), var(--or-metal), transparent);
  z-index: 0;
}
.etape-card {
  background: var(--blanc-creme);
  border-radius: var(--rayon-lg);
  padding: 2rem 1.5rem;
  border-top: 4px solid var(--gris-moyen);
  box-shadow: var(--shadow-sm);
  transition: all var(--transition);
  position: relative;
  z-index: 1;
}
.etape-card:hover {
  border-top-color: var(--rouge-royal);
  transform: translateY(-6px);
  box-shadow: var(--shadow-lg);
  background: var(--blanc);
}
.etape-num {
  font-family: var(--font-titre);
  font-size: 2.5rem;
  background: var(--gradient-or);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  font-weight: 700;
  display: block;
  line-height: 1;
  margin-bottom: .8rem;
}
.etape-card h3 {
  font-size: .95rem;
  font-family: var(--font-sous-titre);
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--noir-profond);
  margin-bottom: .75rem;
}
.etape-card ul li {
  font-size: .85rem;
  color: var(--gris-texte);
  padding: .25rem 0;
  padding-left: 1rem;
  position: relative;
}
.etape-card ul li::before {
  content: '·';
  position: absolute;
  left: 0;
  color: var(--or-metal);
  font-size: 1.2rem;
  line-height: 1;
}
.etape-duree {
  display: inline-block;
  margin-top: 1rem;
  background: rgba(139,26,46,.07);
  color: var(--rouge-royal);
  padding: 4px 12px;
  border-radius: 20px;
  font-size: .72rem;
  font-weight: 700;
  font-family: var(--font-sous-titre);
  border: 1px solid rgba(139,26,46,.15);
}

/* ══════════════════════════════════════════════════════════
   SECTION PROFILS CLIENTS
   ══════════════════════════════════════════════════════════ */
.profils-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
  gap: 1.5rem;
}
.profil-card {
  border: 1px solid var(--gris-moyen);
  border-radius: var(--rayon-lg);
  overflow: hidden;
  transition: all var(--transition);
  background: var(--blanc);
}
.profil-card:hover {
  border-color: rgba(184,150,74,.35);
  box-shadow: var(--shadow-md);
}
.profil-header {
  padding: 1.5rem 2rem;
  display: flex;
  align-items: center;
  gap: 1rem;
  cursor: pointer;
  background: var(--blanc);
  transition: background var(--transition);
}
.profil-header:hover { background: #FDF9F2; }
.profil-emoji { font-size: 2.2rem; }
.profil-header h3 {
  font-size: 1rem;
  color: var(--noir-profond);
  flex: 1;
}
.profil-toggle {
  width: 28px; height: 28px;
  border-radius: 50%;
  background: rgba(139,26,46,.07);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--rouge-royal);
  font-size: .9rem;
  transition: transform var(--transition);
  flex-shrink: 0;
}
.profil-card.open .profil-toggle { transform: rotate(45deg); }
.profil-body {
  max-height: 0;
  overflow: hidden;
  transition: max-height .5s ease;
  background: var(--gris-clair);
}
.profil-card.open .profil-body { max-height: 600px; }
.profil-body-inner { padding: 1.5rem 2rem; }
.profil-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  margin-bottom: 1.5rem;
}
.profil-col h4 {
  font-size: .75rem;
  font-family: var(--font-sous-titre);
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--gris-texte);
  margin-bottom: .75rem;
}
.profil-col li {
  font-size: .85rem;
  color: var(--gris-sombre);
  padding: .3rem 0;
  display: flex;
  align-items: flex-start;
  gap: .5rem;
}
.profil-resultat {
  background: linear-gradient(135deg, rgba(184,150,74,.08), rgba(139,26,46,.04));
  border: 1px solid rgba(184,150,74,.18);
  border-radius: 8px;
  padding: 1rem;
  font-size: .88rem;
  color: var(--gris-sombre);
  margin-bottom: 1rem;
}
.profil-temoignage {
  font-style: italic;
  font-size: .85rem;
  color: var(--gris-texte);
  border-left: 3px solid var(--rouge-royal);
  padding-left: 1rem;
  margin-bottom: 1.5rem;
}

/* ══════════════════════════════════════════════════════════
   SECTION TÉMOIGNAGES — Dark Premium
   ══════════════════════════════════════════════════════════ */
.temoignages-section {
  background: var(--noir-riche);
  padding: 100px 0;
  position: relative;
  overflow: hidden;
}
.temoignages-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 60% 40% at 20% 50%, rgba(139,26,46,.08) 0%, transparent 60%),
    radial-gradient(ellipse 50% 50% at 80% 50%, rgba(184,150,74,.05) 0%, transparent 60%);
}
.temoignages-section h2 { color: var(--blanc); position: relative; }
.temoignages-section h2 .accent {
  color: var(--or-clair);
  background: linear-gradient(135deg, #D4B86A 0%, #C9A445 40%, #E8D07A 70%, #B8964A 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.temoignages-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin-top: 3rem;
  position: relative;
  z-index: 1;
}
.temoignage-card {
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(184,150,74,.12);
  border-radius: var(--rayon-lg);
  padding: 2rem;
  transition: all var(--transition);
  backdrop-filter: blur(10px);
}
.temoignage-card:hover {
  background: rgba(255,255,255,.06);
  border-color: rgba(184,150,74,.28);
  transform: translateY(-4px);
  box-shadow: 0 12px 40px rgba(0,0,0,.3);
}
.temoignage-stars {
  color: var(--or-metal);
  font-size: .95rem;
  margin-bottom: 1rem;
  letter-spacing: .1em;
}
.temoignage-texte {
  font-size: .92rem;
  color: rgba(255,255,255,.72);
  font-style: italic;
  line-height: 1.75;
  margin-bottom: 1.5rem;
}
.temoignage-auteur {
  display: flex;
  align-items: center;
  gap: .75rem;
}
.auteur-avatar {
  width: 44px; height: 44px;
  border-radius: 50%;
  background: var(--gradient-rouge);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--or-pale);
  font-weight: 700;
  font-size: .95rem;
  flex-shrink: 0;
  border: 1px solid rgba(184,150,74,.2);
  overflow: hidden;
}
.auteur-avatar img { width: 100%; height: 100%; object-fit: cover; }
.auteur-nom { font-weight: 700; color: var(--blanc); font-size: .9rem; }
.auteur-titre { font-size: .75rem; color: rgba(255,255,255,.4); }
.resultat-badge {
  display: inline-block;
  background: rgba(184,150,74,.12);
  border: 1px solid rgba(184,150,74,.25);
  color: var(--or-clair);
  padding: 3px 10px;
  border-radius: 12px;
  font-size: .7rem;
  font-weight: 700;
  font-family: var(--font-sous-titre);
  margin-top: .4rem;
}

/* ══════════════════════════════════════════════════════════
   SECTION CTA FINALE — Rouge Royal Immersif
   ══════════════════════════════════════════════════════════ */
.cta-final {
  background: linear-gradient(135deg, var(--rouge-profond) 0%, var(--rouge-royal) 40%, var(--rouge-profond) 100%);
  padding: 100px 0;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.cta-final::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 60% 80% at 50% -20%, rgba(184,150,74,.12), transparent 60%),
    linear-gradient(180deg, rgba(10,10,15,.15) 0%, transparent 50%, rgba(10,10,15,.15) 100%);
}
.cta-final::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(184,150,74,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(184,150,74,.04) 1px, transparent 1px);
  background-size: 40px 40px;
}
.cta-final h2 { color: var(--or-pale); position: relative; z-index: 1; }
.cta-final p  { color: rgba(232,213,163,.75); font-size: 1.08rem; position: relative; z-index: 1; }
.cta-final .btn-or {
  margin-top: 2.5rem;
  position: relative;
  z-index: 1;
}
.cta-garanties {
  display: flex;
  justify-content: center;
  gap: 2rem;
  flex-wrap: wrap;
  margin-top: 1.5rem;
  font-family: var(--font-sous-titre);
  font-size: .78rem;
  font-weight: 600;
  color: rgba(232,213,163,.5);
  letter-spacing: .06em;
  text-transform: uppercase;
  position: relative;
  z-index: 1;
}
.cta-garanties span { display: flex; align-items: center; gap: .35rem; }

/* ══════════════════════════════════════════════════════════
   FOOTER — Noir Profond Premium
   ══════════════════════════════════════════════════════════ */
#footer {
  background: var(--noir-absolu);
  padding: 80px 0 40px;
  border-top: 1px solid rgba(184,150,74,.12);
}
.footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 3rem;
  margin-bottom: 3rem;
}
.footer-logo {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 1rem;
}
.footer-logo img {
  width: 32px;
  height: 32px;
  object-fit: contain;
  filter: drop-shadow(0 0 6px rgba(184,150,74,.3));
}
.footer-logo-text {
  font-family: var(--font-titre);
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--blanc);
  letter-spacing: .04em;
  text-transform: uppercase;
}
.footer-logo-text span { color: var(--or-metal); }
.footer-tagline {
  font-size: .85rem;
  color: rgba(255,255,255,.35);
  line-height: 1.7;
  margin-bottom: 1.5rem;
  font-style: italic;
}
.footer-social {
  display: flex;
  gap: .75rem;
}
.social-link {
  width: 36px; height: 36px;
  border-radius: 8px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(184,150,74,.12);
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,.45);
  font-size: .9rem;
  transition: all var(--transition);
}
.social-link:hover {
  background: var(--rouge-royal);
  color: var(--or-pale);
  border-color: var(--rouge-royal);
  box-shadow: var(--shadow-rouge);
}
.footer-col h4 {
  font-family: var(--font-sous-titre);
  font-size: .75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: var(--or-metal);
  margin-bottom: 1.25rem;
}
.footer-col ul li { padding: .35rem 0; }
.footer-col ul a {
  font-size: .85rem;
  color: rgba(255,255,255,.42);
  transition: color var(--transition);
}
.footer-col ul a:hover { color: var(--or-clair); }
.footer-contact li {
  display: flex;
  align-items: center;
  gap: .6rem;
  font-size: .85rem;
  color: rgba(255,255,255,.42);
  padding: .4rem 0;
}
.footer-contact li span.icon { color: var(--or-metal); flex-shrink: 0; }
.footer-bottom {
  padding-top: 2rem;
  border-top: 1px solid rgba(255,255,255,.06);
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
}
.footer-copyright { font-size: .78rem; color: rgba(255,255,255,.25); }
.footer-legal {
  display: flex;
  gap: 1.5rem;
  flex-wrap: wrap;
}
.footer-legal a {
  font-size: .78rem;
  color: rgba(255,255,255,.25);
  transition: color var(--transition);
}
.footer-legal a:hover { color: var(--or-metal); }

/* ══════════════════════════════════════════════════════════
   SECTION TITRE GÉNÉRIQUE
   ══════════════════════════════════════════════════════════ */
.section-header {
  text-align: center;
  max-width: 700px;
  margin: 0 auto 4rem;
}
.section-label {
  display: inline-block;
  font-family: var(--font-sous-titre);
  font-size: .7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .18em;
  color: var(--rouge-royal);
  margin-bottom: .75rem;
  position: relative;
}
.section-label::before,
.section-label::after {
  content: '—';
  color: var(--or-metal);
  margin: 0 .5rem;
  opacity: .5;
}
.section-header h2 { margin-bottom: 1rem; }
.section-header p {
  font-size: 1.02rem;
  color: var(--gris-texte);
  line-height: 1.8;
}
.separateur-or {
  width: 50px; height: 2px;
  background: var(--gradient-or);
  border-radius: 2px;
  margin: 1.2rem auto;
}

/* ══════════════════════════════════════════════════════════
   PAGE HERO GÉNÉRIQUE (sous-pages)
   ══════════════════════════════════════════════════════════ */
.page-hero {
  background: var(--noir-profond);
  padding: 150px 0 80px;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.page-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 80% 60% at 50% 0%, rgba(139,26,46,.20), transparent 60%),
    radial-gradient(ellipse 50% 80% at 80% 100%, rgba(184,150,74,.06), transparent 60%);
}
/* Grille neural hero */
.page-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(184,150,74,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(184,150,74,.025) 1px, transparent 1px);
  background-size: 50px 50px;
  mask-image: radial-gradient(ellipse 70% 70% at 50% 50%, black 30%, transparent 100%);
}
.page-hero h1 { color: var(--blanc); position: relative; z-index: 1; }
.page-hero p  { color: rgba(255,255,255,.6); max-width:650px; margin:1rem auto 0; position:relative; z-index:1; }
.page-hero .section-label { position: relative; z-index:1; color: var(--or-clair); }
.page-hero .section-label::before,
.page-hero .section-label::after { color: rgba(184,150,74,.4); }
.page-hero h1 .accent {
  color: var(--or-clair);
  background: linear-gradient(135deg, #D4B86A 0%, #C9A445 40%, #E8D07A 70%, #B8964A 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* ══════════════════════════════════════════════════════════
   PAGE PACKS
   ══════════════════════════════════════════════════════════ */
.packs-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
  margin-top: 3rem;
  padding-top: 1rem;
}
.pack-card {
  background: var(--blanc);
  border: 1.5px solid var(--gris-moyen);
  border-radius: var(--rayon-xl);
  padding: 2.5rem 2rem;
  padding-top: 3rem;
  box-shadow: var(--shadow-md);
  position: relative;
  transition: all var(--transition);
  overflow: visible;
}
.pack-card::after {
  content: '';
  position: absolute;
  bottom: 0; right: 0;
  width: 150px; height: 150px;
  background: radial-gradient(circle at 100% 100%, rgba(184,150,74,.05), transparent 70%);
  pointer-events: none;
}
.pack-card:hover {
  border-color: var(--or-metal);
  transform: scale(1.02);
  box-shadow: var(--shadow-or);
}
.pack-card.populaire { border-color: rgba(139,26,46,.3); }
.pack-card.recommande {
  border-color: var(--or-metal);
  box-shadow: var(--shadow-or);
}
.pack-badge {
  position: absolute;
  top: -14px; left: 50%;
  transform: translateX(-50%);
  background: var(--gradient-rouge);
  color: var(--or-pale);
  padding: 5px 20px;
  border-radius: 20px;
  font-size: .72rem;
  font-weight: 700;
  font-family: var(--font-sous-titre);
  letter-spacing: .08em;
  text-transform: uppercase;
  white-space: nowrap;
  border: 1px solid rgba(184,150,74,.25);
}
.pack-badge.crown {
  background: var(--noir-profond);
  color: var(--or-clair);
  border: 1px solid var(--or-metal);
}
.pack-niveau {
  font-family: var(--font-sous-titre);
  font-size: .72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .14em;
  color: var(--rouge-royal);
  margin-bottom: .5rem;
}
.pack-card h2 { font-size: 1.4rem; margin-bottom: .25rem; color: var(--noir-profond); }
.pack-sous-titre { font-size: .85rem; color: var(--gris-texte); margin-bottom: 1.5rem; font-style: italic; }
.pack-prix {
  font-family: var(--font-titre);
  font-size: 2.4rem;
  font-weight: 700;
  background: var(--gradient-or);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  line-height: 1;
  margin-bottom: .25rem;
}
.pack-prix-note { font-size: .8rem; color: var(--gris-texte); margin-bottom: 1.5rem; }
.pack-pour {
  font-size: .85rem; color: var(--gris-texte); font-style: italic;
  margin-bottom: 1.5rem; padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--gris-moyen);
}
.pack-features li {
  display: flex; align-items: flex-start; gap: .6rem;
  font-size: .88rem; color: var(--gris-sombre); padding: .42rem 0;
}
.pack-features .check { color: var(--vert-succes); flex-shrink: 0; margin-top: 2px; }
.pack-features .cross { color: var(--gris-moyen); flex-shrink: 0; margin-top: 2px; }
.pack-limite {
  margin-top: 1.25rem; font-size: .8rem;
  color: var(--rouge-vif); font-weight: 600;
  font-family: var(--font-sous-titre);
  display: flex; align-items: center; gap: .4rem;
}
.pack-stat {
  margin-top: 1rem; padding: .75rem 1rem;
  background: rgba(139,26,46,.05);
  border-radius: 8px; font-size: .8rem;
  color: var(--gris-texte); border-left: 3px solid var(--rouge-royal);
}

/* TABLEAU COMPARAISON */
.comparaison-table {
  width: 100%; border-collapse: collapse; font-size: .88rem;
}
.comparaison-table th {
  padding: 1.2rem 1rem;
  background: var(--noir-profond);
  color: var(--blanc);
  font-family: var(--font-sous-titre);
  font-weight: 700; font-size: .75rem;
  text-transform: uppercase; letter-spacing: .08em; text-align: center;
}
.comparaison-table th:first-child { text-align: left; }
.comparaison-table th.highlight {
  background: var(--rouge-royal);
  color: var(--or-pale);
}
.comparaison-table td {
  padding: .9rem 1rem;
  border-bottom: 1px solid var(--gris-moyen);
  color: var(--gris-sombre); text-align: center;
}
.comparaison-table td:first-child { text-align: left; font-weight: 600; }
.comparaison-table tr:hover td { background: #FDF9F2; }
.comparaison-table .oui { color: var(--vert-succes); font-size: 1.1rem; }
.comparaison-table .non { color: var(--gris-moyen); font-size: 1.1rem; }

/* ══════════════════════════════════════════════════════════
   PAGE RÉALISATIONS
   ══════════════════════════════════════════════════════════ */
.filtres-bar {
  display: flex; flex-wrap: wrap; gap: .75rem;
  justify-content: center; margin-bottom: 3rem;
}
.filtre-btn {
  padding: 8px 22px; border-radius: 25px;
  border: 1.5px solid var(--rouge-royal);
  font-family: var(--font-sous-titre);
  font-size: .78rem; font-weight: 700;
  letter-spacing: .06em; text-transform: uppercase;
  color: var(--rouge-royal); cursor: pointer;
  transition: all var(--transition);
}
.filtre-btn:hover, .filtre-btn.actif {
  background: var(--gradient-rouge);
  color: var(--or-pale);
  border-color: var(--rouge-royal);
  box-shadow: var(--shadow-rouge);
}
.cas-client {
  background: var(--blanc);
  border-radius: var(--rayon-xl);
  overflow: hidden; box-shadow: var(--shadow-md);
  margin-bottom: 4rem;
  border: 1px solid var(--gris-moyen);
  transition: all var(--transition);
}
.cas-client:hover { box-shadow: var(--shadow-lg); }
.cas-header {
  background: linear-gradient(135deg, var(--noir-riche), var(--noir-card));
  padding: 2rem 2.5rem;
  display: flex; align-items: center;
  justify-content: space-between; flex-wrap: wrap; gap: 1rem;
  border-bottom: 1px solid rgba(184,150,74,.12);
}
.cas-header h3 { color: var(--blanc); font-size: 1.3rem; }
.cas-meta { font-size: .8rem; color: rgba(255,255,255,.42); margin-top: .25rem; }
.cas-pack-badge {
  background: rgba(139,26,46,.15);
  border: 1px solid rgba(184,150,74,.3);
  color: var(--or-clair); padding: 5px 14px;
  border-radius: 20px; font-size: .75rem;
  font-weight: 700; font-family: var(--font-sous-titre);
}
.cas-body { padding: 2.5rem; }
.avant-apres { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; margin: 1.5rem 0; }
.avant, .apres { border-radius: var(--rayon); padding: 1.5rem; }
.avant { background: #FEF3F2; border: 1px solid #FCA5A5; }
.apres { background: #F0FDF4; border: 1px solid #86EFAC; }
.av-ap-titre {
  font-family: var(--font-sous-titre);
  font-size: .72rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .1em; margin-bottom: 1rem;
}
.avant .av-ap-titre { color: #DC2626; }
.apres .av-ap-titre { color: #16A34A; }
.av-ap-stat { display: flex; align-items: baseline; gap: .4rem; margin: .4rem 0; }
.av-ap-stat .valeur { font-family: var(--font-titre); font-size: 1.5rem; font-weight: 700; line-height: 1; }
.avant .av-ap-stat .valeur { color: #DC2626; }
.apres .av-ap-stat .valeur { color: #16A34A; }
.av-ap-stat .desc { font-size: .8rem; color: var(--gris-texte); }
.cas-temoignage {
  background: var(--gris-clair); border-radius: var(--rayon);
  padding: 1.5rem; border-left: 4px solid var(--rouge-royal); margin-top: 1.5rem;
}
.cas-temoignage blockquote { font-style: italic; font-size: .92rem; color: var(--gris-sombre); line-height: 1.7; margin-bottom: .75rem; }
.cas-temoignage cite { font-size: .8rem; color: var(--gris-texte); font-style: normal; font-weight: 600; }

/* ══════════════════════════════════════════════════════════
   PAGE CONTACT / FORMULAIRE
   ══════════════════════════════════════════════════════════ */
.form-progress { display: flex; align-items: center; gap: 0; margin-bottom: 3rem; }
.progress-step { flex: 1; text-align: center; position: relative; }
.progress-step::before {
  content: ''; position: absolute;
  top: 20px; left: -50%; width: 100%; height: 2px;
  background: var(--gris-moyen); z-index: 0;
}
.progress-step:first-child::before { display: none; }
.progress-step.done::before { background: var(--gradient-rouge); }
.step-circle {
  width: 40px; height: 40px; border-radius: 50%;
  background: var(--gris-moyen);
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: .88rem;
  font-family: var(--font-sous-titre); color: var(--gris-texte);
  margin: 0 auto .5rem; position: relative; z-index: 1;
  transition: all var(--transition);
}
.progress-step.active .step-circle,
.progress-step.done .step-circle {
  background: var(--gradient-rouge);
  color: var(--or-pale);
  box-shadow: var(--shadow-rouge);
}
.step-label {
  font-size: .75rem; font-family: var(--font-sous-titre);
  color: var(--gris-texte); text-transform: uppercase; letter-spacing: .06em;
}
.progress-step.active .step-label { color: var(--rouge-royal); font-weight: 700; }
.form-etape { display: none; }
.form-etape.active { display: block; }
.form-group { margin-bottom: 1.75rem; }
.form-group label {
  display: block; font-family: var(--font-sous-titre);
  font-size: .78rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .06em;
  color: var(--noir-profond); margin-bottom: .6rem;
}
.form-group label .required { color: var(--rouge-erreur); margin-left: 2px; }
.form-input, .form-textarea, .form-select {
  width: 100%; padding: 14px 18px;
  border: 2px solid var(--gris-moyen);
  border-radius: 8px; font-size: .95rem;
  color: var(--gris-sombre); background: var(--blanc);
  transition: border-color var(--transition), box-shadow var(--transition);
}
.form-input:focus, .form-textarea:focus, .form-select:focus {
  border-color: var(--rouge-royal);
  box-shadow: 0 0 0 3px rgba(139,26,46,.10);
}
.form-textarea { min-height: 120px; resize: vertical; }
.form-options { display: flex; flex-direction: column; gap: .6rem; }
.option-item {
  display: flex; align-items: flex-start; gap: .75rem;
  padding: 1rem 1.25rem; border: 2px solid var(--gris-moyen);
  border-radius: 8px; cursor: pointer; transition: all var(--transition);
}
.option-item:hover { border-color: var(--rouge-royal); background: #FDF9F2; }
.option-item input { display: none; }
.option-item.selected { border-color: var(--rouge-royal); background: rgba(139,26,46,.04); }
.option-check {
  width: 20px; height: 20px; border-radius: 50%;
  border: 2px solid var(--gris-moyen);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0; transition: all var(--transition); margin-top: 1px;
}
.option-item.selected .option-check {
  background: var(--gradient-rouge);
  border-color: var(--rouge-royal); color: var(--blanc); font-size: .7rem;
}
.option-texte { font-size: .92rem; color: var(--gris-sombre); line-height: 1.4; }
.form-checkbox-group { display: flex; flex-direction: column; gap: .6rem; }
.checkbox-item { display: flex; align-items: flex-start; gap: .75rem; cursor: pointer; }
.checkbox-item input[type="checkbox"] { display: none; }
.custom-checkbox {
  width: 20px; height: 20px; border: 2px solid var(--gris-moyen);
  border-radius: 4px; display: flex; align-items: center; justify-content: center;
  flex-shrink: 0; transition: all var(--transition); margin-top: 2px;
}
.checkbox-item input:checked + .custom-checkbox {
  background: var(--gradient-rouge); border-color: var(--rouge-royal); color: var(--blanc); font-size: .7rem;
}
.checkbox-texte { font-size: .88rem; color: var(--gris-sombre); }
.form-navigation {
  display: flex; justify-content: space-between; align-items: center;
  margin-top: 2.5rem; padding-top: 2rem; border-top: 1px solid var(--gris-moyen);
}

/* ══════════════════════════════════════════════════════════
   FAQ ACCORDION
   ══════════════════════════════════════════════════════════ */
.faq-item {
  border: 1px solid var(--gris-moyen); border-radius: var(--rayon);
  margin-bottom: 1rem; overflow: hidden; transition: all var(--transition);
  background: var(--blanc);
}
.faq-item:hover { border-color: rgba(139,26,46,.3); }
.faq-question {
  padding: 1.5rem 2rem; display: flex; align-items: center;
  justify-content: space-between; cursor: pointer;
  background: var(--blanc); transition: background var(--transition);
}
.faq-question:hover { background: #FDF9F2; }
.faq-question h3 {
  font-size: .98rem; font-family: var(--font-sous-titre);
  color: var(--noir-profond); font-weight: 700;
  flex: 1; padding-right: 1rem;
}
.faq-icon {
  width: 32px; height: 32px; border-radius: 50%;
  background: rgba(139,26,46,.07);
  display: flex; align-items: center; justify-content: center;
  color: var(--rouge-royal); font-size: 1.2rem; font-weight: 700;
  transition: transform var(--transition); flex-shrink: 0;
}
.faq-item.open .faq-icon { transform: rotate(45deg); }
.faq-reponse { max-height: 0; overflow: hidden; transition: max-height .5s ease; }
.faq-item.open .faq-reponse { max-height: 800px; }
.faq-reponse-inner {
  padding: 0 2rem 1.75rem; background: var(--gris-clair);
  font-size: .92rem; color: var(--gris-texte); line-height: 1.8;
}
.faq-reponse-inner p { margin-bottom: .75rem; }
.faq-reponse-inner ul { margin: .75rem 0 .75rem 1.2rem; list-style: disc; }
.faq-reponse-inner ul li { margin: .3rem 0; }
.faq-reponse-inner strong { color: var(--noir-profond); }

/* ══════════════════════════════════════════════════════════
   PAGE MANIFESTE
   ══════════════════════════════════════════════════════════ */
.manifeste-body { max-width: 800px; margin: 0 auto; padding: 0 1.5rem; }
.manifeste-section {
  margin-bottom: 4rem; padding-bottom: 4rem;
  border-bottom: 1px solid var(--gris-moyen);
}
.manifeste-section:last-of-type { border-bottom: none; }
.manifeste-num {
  font-family: var(--font-titre);
  font-size: 5rem; background: linear-gradient(135deg, rgba(184,150,74,.12), rgba(139,26,46,.08));
  -webkit-background-clip: text; -webkit-text-fill-color: transparent;
  background-clip: text;
  font-weight: 700; line-height: 1; display: block; margin-bottom: -.5rem;
}
.manifeste-section h2 { margin-bottom: 1.5rem; }
.manifeste-section p { font-size: 1.02rem; line-height: 1.85; margin-bottom: 1.25rem; color: var(--gris-sombre); }
.pull-quote {
  font-family: var(--font-titre); font-style: italic;
  font-size: 1.45rem; color: var(--noir-profond);
  border-left: 4px solid var(--rouge-royal); padding: 1rem 2rem;
  margin: 2rem 0; background: rgba(139,26,46,.04);
  border-radius: 0 var(--rayon) var(--rayon) 0; line-height: 1.5;
}
.criteres-list li {
  display: flex; align-items: flex-start; gap: 1rem;
  margin-bottom: 1.5rem; padding: 1.25rem 1.5rem;
  background: var(--gris-clair); border-radius: var(--rayon);
  border-left: 4px solid var(--rouge-royal);
}
.criteres-list .num-critere {
  font-family: var(--font-titre); font-size: 1.8rem;
  background: var(--gradient-rouge);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent;
  background-clip: text;
  font-weight: 700; line-height: 1; flex-shrink: 0; min-width: 2rem;
}
.criteres-list .critere-texte h4 { font-size: 1rem; color: var(--noir-profond); margin-bottom: .4rem; }
.criteres-list .critere-texte p { font-size: .88rem; margin: 0; }

/* ══════════════════════════════════════════════════════════
   PAGE STUDIO
   ══════════════════════════════════════════════════════════ */
.studio-features {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem;
}
.studio-feature {
  text-align: center; padding: 2rem;
  background: var(--blanc-creme); border-radius: var(--rayon-lg);
  border: 1px solid var(--gris-moyen); transition: all var(--transition);
}
.studio-feature:hover {
  border-color: rgba(139,26,46,.3); transform: translateY(-6px);
  box-shadow: var(--shadow-md); background: var(--blanc);
}
.studio-feature .icon { font-size: 2.5rem; margin-bottom: 1rem; }
.studio-feature h3 { font-size: 1.05rem; color: var(--noir-profond); margin-bottom: .5rem; }
.studio-feature p { font-size: .85rem; color: var(--gris-texte); }
.tarifs-studio { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.tarif-card {
  background: var(--blanc); border: 1.5px solid var(--gris-moyen);
  border-radius: var(--rayon); padding: 2rem; text-align: center;
  transition: all var(--transition);
}
.tarif-card:hover, .tarif-card.populaire {
  border-color: var(--rouge-royal); box-shadow: var(--shadow-rouge);
}
.tarif-card h3 { font-size: 1.2rem; margin-bottom: .5rem; }
.tarif-prix {
  font-family: var(--font-titre); font-size: 2.2rem;
  background: var(--gradient-or);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent;
  background-clip: text;
  font-weight: 700; margin: 1rem 0;
}

/* ══════════════════════════════════════════════════════════
   PAGE 404
   ══════════════════════════════════════════════════════════ */
.page-404 {
  min-height: 100vh; display: flex; align-items: center;
  justify-content: center; text-align: center;
  background: var(--noir-profond); padding: 2rem;
}
.page-404 .grand-chiffre {
  font-family: var(--font-titre); font-size: 12rem;
  background: linear-gradient(135deg, rgba(139,26,46,.18), rgba(184,150,74,.12));
  -webkit-background-clip: text; -webkit-text-fill-color: transparent;
  background-clip: text;
  font-weight: 700; line-height: 1; display: block; margin-bottom: -2rem;
}
.page-404 h1 { color: var(--blanc); margin-bottom: 1rem; }
.page-404 p { color: rgba(255,255,255,.5); margin-bottom: 2.5rem; }

/* ══════════════════════════════════════════════════════════
   ANIMATIONS AOS-LIKE
   ══════════════════════════════════════════════════════════ */
[data-aos] {
  opacity: 0; transform: translateY(30px);
  transition: opacity .7s ease, transform .7s ease;
}
[data-aos="fade-left"]  { transform: translateX(-30px); }
[data-aos="fade-right"] { transform: translateX(30px); }
[data-aos="zoom-in"]    { transform: scale(.95); }
[data-aos].aos-animate { opacity: 1; transform: translateY(0) translateX(0) scale(1); }

/* ══════════════════════════════════════════════════════════
   MENTIONS LÉGALES / CONFIDENTIALITÉ / CGV
   ══════════════════════════════════════════════════════════ */
.legal-body { max-width: 860px; margin: 0 auto; padding: 0 1.5rem; }
.legal-body h2 {
  font-size: 1.3rem; margin: 2.5rem 0 1rem;
  color: var(--noir-profond); padding-bottom: .5rem;
  border-bottom: 1px solid var(--gris-moyen);
}
.legal-body p, .legal-body li { font-size: .92rem; color: var(--gris-texte); line-height: 1.8; margin-bottom: .75rem; }
.legal-body ul { margin-left: 1.5rem; list-style: disc; }

/* ══════════════════════════════════════════════════════════
   ABONNEMENTS
   ══════════════════════════════════════════════════════════ */
.abonnements-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; margin-top: 3rem; }
.abo-card {
  background: var(--blanc); border: 1.5px solid var(--gris-moyen);
  border-radius: var(--rayon); padding: 2rem 1.5rem; text-align: center;
  transition: all var(--transition); position: relative;
}
.abo-card:hover, .abo-card.plus-choisi { border-color: var(--rouge-royal); box-shadow: var(--shadow-rouge); }
.abo-niveau { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--rouge-royal); margin-bottom: .5rem; font-family: var(--font-sous-titre); }
.abo-card h3 { font-size: 1.2rem; margin-bottom: 1rem; }
.abo-prix { font-family: var(--font-titre); font-size: 2rem; background: var(--gradient-or); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; font-weight: 700; display: block; }
.abo-periode { font-size: .78rem; color: var(--gris-texte); margin-bottom: 1.5rem; }
.abo-features li { font-size: .83rem; color: var(--gris-sombre); padding: .3rem 0; display: flex; align-items: center; gap: .5rem; text-align: left; }

/* ══════════════════════════════════════════════════════════
   BOUTON FLOTTANT WHATSAPP
   ══════════════════════════════════════════════════════════ */
.whatsapp-float {
  position: fixed; bottom: 2rem; right: 2rem;
  width: 54px; height: 54px; border-radius: 50%;
  background: #25D366; color: var(--blanc);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.5rem; z-index: 900;
  box-shadow: 0 4px 20px rgba(37,211,102,.4);
  transition: all var(--transition);
  animation: whatsapp-pulse 3s ease-in-out infinite;
}
.whatsapp-float:hover { transform: scale(1.12); box-shadow: 0 6px 28px rgba(37,211,102,.5); }
@keyframes whatsapp-pulse {
  0%,100% { box-shadow: 0 4px 20px rgba(37,211,102,.4), 0 0 0 0 rgba(37,211,102,.3); }
  50%      { box-shadow: 0 4px 20px rgba(37,211,102,.4), 0 0 0 12px rgba(37,211,102,.0); }
}

/* ══════════════════════════════════════════════════════════
   SCROLL TO TOP
   ══════════════════════════════════════════════════════════ */
.scroll-top {
  position: fixed; bottom: 6rem; right: 2rem;
  width: 42px; height: 42px; border-radius: 8px;
  background: rgba(10,10,15,.8);
  border: 1px solid rgba(184,150,74,.25);
  color: var(--or-metal);
  display: none; align-items: center; justify-content: center;
  font-size: 1rem; z-index: 900;
  transition: all var(--transition); backdrop-filter: blur(10px);
}
.scroll-top.visible { display: flex; }
.scroll-top:hover {
  background: var(--rouge-royal);
  color: var(--or-pale); border-color: var(--rouge-royal);
  transform: translateY(-2px);
}

/* ══════════════════════════════════════════════════════════
   RESPONSIVE
   ══════════════════════════════════════════════════════════ */
@media (max-width: 1100px) {
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .service-detail { grid-template-columns: 1fr; gap: 2rem; }
  .service-detail.reverse { direction: ltr; }
  .service-visual { height: 200px; }
}
@media (max-width: 992px) {
  .nav-links { display: none; }
  .hamburger { display: flex; }
  .stats-grid { grid-template-columns: repeat(2, 1fr); }
  .process-grid { grid-template-columns: repeat(2, 1fr); }
  .process-grid::before { display: none; }
  .mouvements-grid { grid-template-columns: 1fr; }
  .packs-grid { grid-template-columns: 1fr; }
  .temoignages-grid { grid-template-columns: 1fr; }
  .abonnements-grid { grid-template-columns: repeat(2, 1fr); }
  .studio-features { grid-template-columns: repeat(2, 1fr); }
  .tarifs-studio { grid-template-columns: 1fr; }
  .avant-apres { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  .section { padding: 60px 0; }
  .bandeau-urgence { font-size: .75rem; padding: 0 .75rem; gap: .4rem; flex-wrap: wrap; height: auto; min-height: 50px; }
  .hero-btns { flex-direction: column; align-items: center; }
  .profil-cols { grid-template-columns: 1fr; }
  .services-grid { grid-template-columns: 1fr; }
  .profils-grid { grid-template-columns: 1fr; }
  .abonnements-grid { grid-template-columns: 1fr; }
  .studio-features { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr; gap: 2rem; }
  .footer-bottom { flex-direction: column; text-align: center; }
  .comparaison-table { font-size: .75rem; }
  .comparaison-table th, .comparaison-table td { padding: .65rem .45rem; }
  .stat-item::after { display: none; }
}
@media (max-width: 576px) {
  .process-grid { grid-template-columns: 1fr; }
  .cta-garanties { gap: 1rem; }
  .cas-header { flex-direction: column; }
  .form-navigation { flex-direction: column; gap: 1rem; }
  .manifeste-num { font-size: 3rem; }
  .page-404 .grand-chiffre { font-size: 7rem; }
}

/* ══════════════════════════════════════════════════════════
   UTILITAIRES
   ══════════════════════════════════════════════════════════ */
.text-center  { text-align: center; }
.text-left    { text-align: left; }
.mt-1 { margin-top: .5rem; }
.mt-2 { margin-top: 1rem; }
.mt-3 { margin-top: 1.5rem; }
.mt-4 { margin-top: 2rem; }
.mb-2 { margin-bottom: 1rem; }
.mb-3 { margin-bottom: 1.5rem; }
.mb-4 { margin-bottom: 2rem; }
.flex { display: flex; }
.flex-center { display: flex; align-items: center; justify-content: center; }
.gap-1 { gap: .5rem; }
.gap-2 { gap: 1rem; }
.hidden { display: none !important; }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }

/* ╔══════════════════════════════════════════════════════════╗
   ║  CROWNGLORY — ULTRA-LUXE IA LAYER v3.0                  ║
   ║  Cinématique · Glassmorphism · Micro-animations          ║
   ╚══════════════════════════════════════════════════════════╝ */

/* ── VARIABLES ENRICHIES ─────────────────────────────────── */
:root {
  --gold-shine: linear-gradient(105deg,
    #C9A445 0%, #E8D07A 25%, #B8964A 50%,
    #D4B86A 75%, #9A7A35 100%);
  --cinematic-bg: radial-gradient(ellipse 120% 80% at 50% -5%,
      rgba(139,26,46,.22) 0%, transparent 55%),
    radial-gradient(ellipse 60% 100% at 100% 50%,
      rgba(184,150,74,.06) 0%, transparent 50%),
    radial-gradient(ellipse 80% 60% at 0% 80%,
      rgba(139,26,46,.08) 0%, transparent 50%),
    linear-gradient(160deg,#0A0A0F 0%,#120816 35%,#1A0B12 65%,#0F0F18 100%);
  --glass-dark:  rgba(15,15,24,.72);
  --glass-light: rgba(255,255,255,.04);
  --border-gold: 1px solid rgba(184,150,74,.18);
  --border-glow: 1px solid rgba(184,150,74,.35);
  --neon-or:     0 0 20px rgba(184,150,74,.35), 0 0 60px rgba(184,150,74,.12);
  --neon-rouge:  0 0 20px rgba(139,26,46,.45), 0 0 60px rgba(139,26,46,.15);
}

/* ── KEYFRAMES ULTRA-LUXE ────────────────────────────────── */
@keyframes shimmer-or {
  0%   { background-position: -200% center; }
  100% { background-position:  200% center; }
}
@keyframes glow-pulse {
  0%,100% { box-shadow: 0 0 20px rgba(184,150,74,.2); }
  50%      { box-shadow: 0 0 40px rgba(184,150,74,.45), 0 0 80px rgba(184,150,74,.15); }
}
@keyframes float-up {
  0%   { transform: translateY(0px) rotate(0deg); opacity:.4; }
  50%  { transform: translateY(-30px) rotate(3deg); opacity:.8; }
  100% { transform: translateY(0px) rotate(0deg); opacity:.4; }
}
@keyframes border-rotate {
  0%   { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes slide-in-left {
  from { opacity:0; transform: translateX(-60px); }
  to   { opacity:1; transform: translateX(0); }
}
@keyframes slide-in-right {
  from { opacity:0; transform: translateX(60px); }
  to   { opacity:1; transform: translateX(0); }
}
@keyframes scale-in {
  from { opacity:0; transform: scale(.85); }
  to   { opacity:1; transform: scale(1); }
}
@keyframes text-reveal {
  from { clip-path: inset(0 100% 0 0); }
  to   { clip-path: inset(0 0% 0 0); }
}
@keyframes counter-up {
  from { opacity:0; transform: translateY(20px); }
  to   { opacity:1; transform: translateY(0); }
}
@keyframes aurora {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}
@keyframes card-hover-glow {
  0%,100% { box-shadow: 0 4px 24px rgba(0,0,0,.15); }
  50%      { box-shadow: 0 20px 60px rgba(139,26,46,.15), 0 0 0 1px rgba(184,150,74,.25); }
}
@keyframes line-grow {
  from { width: 0; }
  to   { width: 100%; }
}
@keyframes dot-pulse {
  0%,100% { transform:scale(1); opacity:1; }
  50%      { transform:scale(1.4); opacity:.7; }
}

/* ── HERO ULTRA-CINÉMATIQUE ──────────────────────────────── */
.hero {
  background: var(--cinematic-bg) !important;
}
.hero h1 {
  font-family: 'Cinzel', 'Playfair Display', serif !important;
  letter-spacing: .06em;
  text-shadow:
    0 2px 60px rgba(0,0,0,.7),
    0 0 40px rgba(139,26,46,.15);
}
.hero h1 .accent {
  color: var(--or-clair) !important;
  background: linear-gradient(135deg, #D4B86A 0%, #C9A445 40%, #E8D07A 70%, #B8964A 100%) !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  background-clip: text !important;
  animation: none !important;
  display: inline;
}
/* Ligne décorative dorée sous le badge */
.hero-badge {
  position: relative;
  animation: scale-in .6s cubic-bezier(.34,1.56,.64,1) forwards;
}
.hero-badge::after {
  content: '';
  position: absolute;
  bottom: -8px; left: 50%;
  transform: translateX(-50%);
  width: 40px; height: 1px;
  background: var(--gradient-or);
  opacity: .5;
}

/* ── PAGE HERO ULTRA-LUXE (sous-pages) ───────────────────── */
.page-hero {
  background: var(--cinematic-bg) !important;
  min-height: 380px;
  display: flex;
  align-items: center;
  position: relative;
}
.page-hero::before {
  background:
    radial-gradient(ellipse 90% 70% at 50% -5%, rgba(139,26,46,.28), transparent 60%),
    radial-gradient(ellipse 40% 60% at 90% 100%, rgba(184,150,74,.08), transparent 55%) !important;
}
.page-hero h1 {
  font-family: 'Cinzel', serif !important;
  letter-spacing: .04em;
  text-shadow: 0 2px 40px rgba(0,0,0,.6);
}
.page-hero h1 .accent, .page-hero span[style*="var(--or"] {
  color: var(--or-clair);
  background: linear-gradient(135deg, #D4B86A 0%, #C9A445 40%, #E8D07A 70%, #B8964A 100%) !important;
  background-size: 100% 100% !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  background-clip: text !important;
  animation: none !important;
}
/* Orbe lumineux flottant sur les heroes */
.page-hero::after {
  content: '';
  position: absolute;
  width: 600px; height: 600px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(184,150,74,.04) 0%, transparent 70%);
  top: -100px; right: -200px;
  pointer-events: none;
  z-index: 0;
  animation: float-up 8s ease-in-out infinite;
}

/* ── SECTION STATS — ULTRA PREMIUM ──────────────────────── */
.stats-bande {
  position: relative;
  overflow: hidden;
}
.stats-bande::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg,
    transparent 0%, rgba(184,150,74,.03) 25%,
    rgba(139,26,46,.04) 50%, rgba(184,150,74,.03) 75%, transparent 100%);
  background-size: 300% 100%;
  animation: aurora 6s linear infinite;
}
.stat-item .chiffre {
  color: var(--or-clair) !important;
  background: linear-gradient(135deg, #D4B86A 0%, #C9A445 40%, #E8D07A 70%, #B8964A 100%) !important;
  background-size: 100% 100% !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  background-clip: text !important;
  animation: none !important;
}

/* ── SERVICE CARDS — GLASSMORPHISM LUXE ─────────────────── */
.service-card {
  background: linear-gradient(135deg,
    rgba(250,247,242,1) 0%,
    rgba(240,235,225,.95) 100%) !important;
  backdrop-filter: blur(10px);
  transition: all .4s cubic-bezier(.4,0,.2,1) !important;
  overflow: hidden;
}
.service-card::before {
  background: linear-gradient(90deg, #C9A445, #E8D07A, #B8964A) !important;
  height: 2px !important;
  background-size: 100% 100% !important;
  animation: none !important;
}
.service-card:hover::before {
  animation-play-state: running;
  transform: scaleX(1) !important;
}
.service-card:hover {
  transform: translateY(-12px) !important;
  box-shadow:
    0 30px 80px rgba(0,0,0,.12),
    0 0 0 1px rgba(184,150,74,.2),
    inset 0 1px 0 rgba(255,255,255,.8) !important;
  background: rgba(255,255,255,1) !important;
}
.service-icon {
  background: linear-gradient(135deg,
    rgba(139,26,46,.10), rgba(184,150,74,.08)) !important;
  box-shadow: 0 4px 16px rgba(139,26,46,.08) !important;
  transition: all var(--transition);
}
.service-card:hover .service-icon {
  background: linear-gradient(135deg,
    rgba(139,26,46,.15), rgba(184,150,74,.14)) !important;
  box-shadow: 0 6px 20px rgba(139,26,46,.15) !important;
  transform: scale(1.08) rotate(-3deg);
}

/* ── SECTION SOMBRE RENFORCÉE ────────────────────────────── */
.section-sombre::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(184,150,74,.02) 1px, transparent 1px),
    linear-gradient(90deg, rgba(184,150,74,.02) 1px, transparent 1px);
  background-size: 50px 50px;
  pointer-events: none;
  z-index: 0;
}
.section-sombre .container { position: relative; z-index: 1; }
.mouvement-card {
  background: linear-gradient(135deg,
    rgba(255,255,255,.98) 0%,
    rgba(250,247,240,1) 100%) !important;
  border-top: none !important;
  border: 1px solid rgba(184,150,74,.15);
  position: relative;
  overflow: hidden;
}
.mouvement-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, #C9A445, #E8D07A, #B8964A);
  background-size: 100% 100%;
  animation: none;
}
.mouvement-card::after {
  content: '';
  position: absolute;
  bottom: -40px; right: -40px;
  width: 120px; height: 120px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(184,150,74,.06), transparent 70%);
}
.mouvement-card:hover {
  transform: translateY(-8px) !important;
  box-shadow:
    0 24px 60px rgba(0,0,0,.12),
    0 0 0 1px rgba(184,150,74,.3) !important;
  border-color: rgba(184,150,74,.3) !important;
}

/* ── TÉMOIGNAGES — CINEMATIC ─────────────────────────────── */
.temoignage-card {
  background: linear-gradient(135deg,
    rgba(255,255,255,.05) 0%,
    rgba(255,255,255,.02) 100%) !important;
  border: 1px solid rgba(184,150,74,.14) !important;
  position: relative;
  overflow: hidden;
}
.temoignage-card::before {
  content: '"';
  position: absolute;
  top: -10px; left: 20px;
  font-family: 'Playfair Display', serif;
  font-size: 8rem;
  color: rgba(184,150,74,.06);
  line-height: 1;
  pointer-events: none;
  font-weight: 700;
}
.temoignage-card:hover {
  background: linear-gradient(135deg,
    rgba(255,255,255,.08) 0%,
    rgba(255,255,255,.04) 100%) !important;
  border-color: rgba(184,150,74,.32) !important;
  transform: translateY(-8px) !important;
  box-shadow:
    0 24px 60px rgba(0,0,0,.35),
    inset 0 1px 0 rgba(255,255,255,.08) !important;
}
.temoignage-stars {
  letter-spacing: .2em;
  font-size: 1.1rem !important;
  color: var(--or-clair);
  background: linear-gradient(135deg, #D4B86A 0%, #C9A445 40%, #E8D07A 70%, #B8964A 100%);
  background-size: 100% 100%;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: none;
}

/* ── CTA FINALE CINÉMATIQUE ──────────────────────────────── */
.cta-final {
  background: linear-gradient(160deg,
    #1A0512 0%, #8B1A2E 30%, #A82040 50%,
    #8B1A2E 70%, #1A0512 100%) !important;
  background-size: 300% 300% !important;
  animation: aurora 8s ease infinite;
}
.cta-final h2 {
  font-family: 'Cinzel', serif !important;
  letter-spacing: .04em;
  text-shadow: 0 2px 30px rgba(0,0,0,.4);
}

/* ── PACK CARDS — PRESTIGE ABSOLU ────────────────────────── */
.pack-card {
  background: linear-gradient(160deg,
    rgba(255,255,255,1) 0%,
    rgba(252,249,242,1) 100%) !important;
  transition: all .45s cubic-bezier(.4,0,.2,1) !important;
  position: relative;
  overflow: visible !important;
  padding-top: 3rem !important;
}
.pack-card::before {
  content: '';
  position: absolute;
  inset: -1px;
  border-radius: calc(var(--rayon-xl) + 1px);
  background: linear-gradient(135deg,
    rgba(184,150,74,.0) 0%, rgba(184,150,74,.0) 100%);
  z-index: -1;
  transition: background var(--transition);
}
.pack-card:hover::before {
  background: linear-gradient(135deg,
    rgba(184,150,74,.35) 0%, rgba(139,26,46,.2) 100%);
}
.pack-card:hover {
  transform: translateY(-12px) scale(1.02) !important;
  box-shadow:
    0 40px 100px rgba(0,0,0,.15),
    0 0 0 1px rgba(184,150,74,.3),
    inset 0 1px 0 rgba(255,255,255,.9) !important;
}
.pack-card.recommande {
  background: linear-gradient(160deg,
    rgba(10,10,15,1) 0%,
    rgba(21,21,31,1) 100%) !important;
  border-color: rgba(184,150,74,.4) !important;
}
.pack-card.recommande .pack-niveau { color: var(--or-clair) !important; }
.pack-card.recommande h2 { color: var(--blanc) !important; }
.pack-card.recommande .pack-sous-titre { color: rgba(255,255,255,.5) !important; }
.pack-card.recommande .pack-pour { color: rgba(255,255,255,.45) !important; border-color: rgba(255,255,255,.08) !important; }
.pack-card.recommande .pack-features li { color: rgba(255,255,255,.8) !important; }
.pack-card.recommande .pack-prix-note { color: rgba(255,255,255,.45) !important; }

/* Wrapper interne pour overflow: hidden sans couper les badges */
.pack-card-inner-clip {
  overflow: hidden;
  border-radius: var(--rayon-xl);
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}

/* Pack Crown — Noir Absolu Exclusif */
.pack-card.exclusive {
  background: linear-gradient(160deg,
    rgba(8,6,12,1) 0%,
    rgba(15,12,22,1) 100%) !important;
  border: 1px solid rgba(184,150,74,.25) !important;
  box-shadow: inset 0 0 80px rgba(184,150,74,.03) !important;
}
.pack-card.exclusive .pack-niveau { color: var(--or-metal) !important; }
.pack-card.exclusive h2 { color: var(--blanc) !important; }
.pack-card.exclusive .pack-sous-titre { color: rgba(255,255,255,.45) !important; }
.pack-card.exclusive .pack-pour { color: rgba(255,255,255,.4) !important; border-color: rgba(255,255,255,.06) !important; }
.pack-card.exclusive .pack-features li { color: rgba(255,255,255,.75) !important; }
.pack-card.exclusive .pack-prix-note { color: rgba(255,255,255,.4) !important; }

/* Prix — Or statique garanti visible */
.pack-prix {
  color: var(--or-clair) !important;
  background: linear-gradient(135deg, #D4B86A 0%, #C9A445 40%, #E8D07A 70%, #B8964A 100%) !important;
  background-size: 100% 100% !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  background-clip: text !important;
  animation: none !important;
}

/* ── ÉTAPE CARDS PROCESS ─────────────────────────────────── */
.etape-card {
  background: linear-gradient(160deg,
    rgba(252,249,242,.98) 0%,
    rgba(248,244,235,1) 100%) !important;
  border-top: none !important;
  border-left: 3px solid transparent;
  position: relative;
  overflow: hidden;
}
.etape-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: var(--gold-shine);
  background-size: 200% auto;
  transition: background-position var(--transition);
}
.etape-card:hover::before { background-position: 100% center; }
.etape-card:hover {
  border-left-color: var(--or-metal);
  transform: translateY(-10px) !important;
  box-shadow:
    0 30px 70px rgba(0,0,0,.1),
    0 0 0 1px rgba(184,150,74,.2) !important;
  background: rgba(255,255,255,1) !important;
}
.etape-num {
  color: var(--or-clair) !important;
  background: linear-gradient(135deg, #D4B86A 0%, #C9A445 40%, #E8D07A 70%, #B8964A 100%) !important;
  background-size: 100% 100% !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  background-clip: text !important;
  animation: none !important;
}

/* ── FAQ ACCORDION — ULTRA LUXE ──────────────────────────── */
.faq-item {
  background: linear-gradient(135deg,
    rgba(255,255,255,1) 0%,
    rgba(252,249,242,.98) 100%) !important;
  border: 1px solid rgba(184,150,74,.12) !important;
  transition: all var(--transition) !important;
}
.faq-item:hover {
  border-color: rgba(184,150,74,.3) !important;
  box-shadow: 0 8px 40px rgba(0,0,0,.06) !important;
}
.faq-item.open {
  border-color: rgba(184,150,74,.35) !important;
  box-shadow:
    0 12px 50px rgba(0,0,0,.08),
    inset 0 1px 0 rgba(255,255,255,.9) !important;
}
.faq-question {
  background: transparent !important;
}
.faq-icon {
  background: linear-gradient(135deg,
    rgba(139,26,46,.08), rgba(184,150,74,.06)) !important;
  border: 1px solid rgba(184,150,74,.15) !important;
}
.faq-item.open .faq-icon {
  background: var(--gradient-rouge) !important;
  color: var(--or-pale) !important;
  box-shadow: var(--shadow-rouge);
}
.faq-reponse-inner {
  background: linear-gradient(135deg,
    rgba(248,244,235,.95) 0%,
    rgba(252,249,242,1) 100%) !important;
}

/* ── PROFIL CARDS — GLASS PREMIUM ───────────────────────── */
.profil-card {
  background: linear-gradient(135deg,
    rgba(255,255,255,1) 0%,
    rgba(252,249,242,.95) 100%) !important;
  border: 1px solid rgba(184,150,74,.12) !important;
}
.profil-card:hover {
  border-color: rgba(184,150,74,.3) !important;
  box-shadow:
    0 20px 60px rgba(0,0,0,.08),
    0 0 0 1px rgba(184,150,74,.15) !important;
}
.profil-header {
  background: transparent !important;
}
.profil-header:hover { background: rgba(184,150,74,.03) !important; }
.profil-body {
  background: linear-gradient(135deg,
    rgba(248,244,235,.8) 0%,
    rgba(252,249,242,.9) 100%) !important;
}

/* ── SÉPARATEUR OR — SHIMMER ─────────────────────────────── */
.separateur-or {
  width: 60px !important;
  height: 2px !important;
  background: var(--gold-shine) !important;
  background-size: 200% auto !important;
  animation: shimmer-or 3s linear infinite;
  border-radius: 2px;
  position: relative;
}
.separateur-or::after {
  content: '';
  position: absolute;
  top: -2px; left: 50%;
  transform: translateX(-50%);
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--or-metal);
  box-shadow: 0 0 8px rgba(184,150,74,.6);
}

/* ── SECTION-HEADER HAUT DE GAMME ────────────────────────── */
.section-header h2 {
  font-family: 'Cinzel', 'Playfair Display', serif !important;
  letter-spacing: .03em;
}
.section-label {
  position: relative;
  letter-spacing: .22em !important;
}

/* ── FOOTER ULTRA-NOIR ───────────────────────────────────── */
#footer {
  background:
    radial-gradient(ellipse 70% 50% at 50% 0%,
      rgba(139,26,46,.06), transparent 60%),
    var(--noir-absolu) !important;
}
.footer-tagline { font-family: var(--font-titre); font-style: italic; }
.social-link {
  transition: all .3s cubic-bezier(.4,0,.2,1) !important;
}
.social-link:hover {
  background: var(--gradient-rouge) !important;
  transform: translateY(-3px) scale(1.1) !important;
  box-shadow: var(--neon-rouge) !important;
  border-color: transparent !important;
}

/* ── HEADER RENFORCÉ ─────────────────────────────────────── */
.logo-img {
  animation: glow-pulse 4s ease-in-out infinite;
}
.btn-header-cta {
  background: linear-gradient(135deg, #D4B86A 0%, #C9A445 50%, #B8964A 100%) !important;
  background-size: 100% 100% !important;
  animation: none !important;
  color: var(--noir-absolu) !important;
  font-weight: 800 !important;
  border: none !important;
  box-shadow: 0 4px 20px rgba(184,150,74,.25) !important;
  transition: all .35s cubic-bezier(.4,0,.2,1) !important;
}
.btn-header-cta:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 30px rgba(184,150,74,.4) !important;
  background: linear-gradient(135deg, #E8D07A 0%, #D4B86A 50%, #C9A445 100%) !important;
}

/* ── BOUTONS ULTRA-LUXE ──────────────────────────────────── */
.btn-or {
  background: linear-gradient(135deg, #D4B86A 0%, #C9A445 50%, #B8964A 100%) !important;
  background-size: 100% 100% !important;
  animation: none !important;
  color: var(--noir-absolu) !important;
  font-family: 'Cinzel', var(--font-sous-titre) !important;
  letter-spacing: .08em !important;
  transition: all .35s cubic-bezier(.4,0,.2,1) !important;
}
.btn-or:hover {
  background: linear-gradient(135deg, #E8D07A 0%, #D4B86A 50%, #C9A445 100%) !important;
  box-shadow:
    0 12px 40px rgba(184,150,74,.5),
    0 0 0 3px rgba(184,150,74,.15) !important;
  transform: translateY(-4px) scale(1.03) !important;
}

/* ── CAS CLIENT — RÉALISATIONS LUXE ─────────────────────── */
.cas-client {
  background: linear-gradient(135deg,
    rgba(255,255,255,1) 0%,
    rgba(252,249,242,.95) 100%) !important;
  border: 1px solid rgba(184,150,74,.15) !important;
  transition: all .4s cubic-bezier(.4,0,.2,1) !important;
}
.cas-client:hover {
  box-shadow:
    0 30px 80px rgba(0,0,0,.1),
    0 0 0 1px rgba(184,150,74,.25) !important;
  transform: translateY(-4px);
}
.cas-header {
  background: linear-gradient(135deg,
    rgba(8,6,12,1) 0%,
    rgba(21,15,28,1) 50%,
    rgba(15,10,20,1) 100%) !important;
  position: relative;
  overflow: hidden;
}
.cas-header::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 60% 80% at 0% 50%, rgba(139,26,46,.15), transparent 60%),
    radial-gradient(ellipse 40% 60% at 100% 50%, rgba(184,150,74,.06), transparent 60%);
}
.cas-header h3, .cas-header > * { position: relative; z-index: 1; }

/* ── FILTRE BOUTONS RÉALISATIONS ─────────────────────────── */
.filtre-btn {
  background: rgba(255,255,255,.6) !important;
  backdrop-filter: blur(10px) !important;
  border: 1px solid rgba(184,150,74,.2) !important;
  color: var(--gris-sombre) !important;
  font-family: 'Cinzel', var(--font-sous-titre) !important;
  transition: all .3s cubic-bezier(.4,0,.2,1) !important;
}
.filtre-btn:hover, .filtre-btn.actif {
  background: var(--gradient-rouge) !important;
  color: var(--or-pale) !important;
  border-color: transparent !important;
  box-shadow: var(--neon-rouge) !important;
  transform: translateY(-2px);
}

/* ── MANIFESTE — TYPOGRAPHIE DIVINE ─────────────────────── */
.manifeste-body h2, .pull-quote {
  font-family: 'Cinzel', serif !important;
}
.pull-quote {
  background: linear-gradient(135deg,
    rgba(139,26,46,.05), rgba(184,150,74,.04)) !important;
  border-left: 4px solid !important;
  border-image: var(--gold-shine) 1 !important;
  border-left-color: var(--rouge-royal) !important;
}
.manifeste-num {
  color: var(--or-clair) !important;
  background: linear-gradient(135deg, #D4B86A 0%, #C9A445 40%, #E8D07A 70%, #B8964A 100%) !important;
  background-size: 100% 100% !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  background-clip: text !important;
  animation: none !important;
}

/* ── STUDIO FEATURES ULTRA-LUXE ──────────────────────────── */
.studio-feature {
  background: linear-gradient(135deg,
    rgba(252,249,242,1) 0%,
    rgba(248,244,235,.95) 100%) !important;
  position: relative;
  overflow: hidden;
}
.studio-feature::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: var(--gold-shine);
  background-size: 200% auto;
  animation: shimmer-or 3s linear infinite;
}
.studio-feature:hover {
  transform: translateY(-10px) !important;
  box-shadow:
    0 30px 70px rgba(0,0,0,.1),
    0 0 0 1px rgba(184,150,74,.25) !important;
  background: rgba(255,255,255,1) !important;
}
.tarif-card {
  background: linear-gradient(160deg,
    rgba(255,255,255,1) 0%,
    rgba(252,249,242,1) 100%) !important;
  border: 1px solid rgba(184,150,74,.15) !important;
  transition: all .4s cubic-bezier(.4,0,.2,1) !important;
  position: relative;
  overflow: hidden;
}
.tarif-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: var(--gold-shine);
  background-size: 200% auto;
  animation: shimmer-or 3s linear infinite;
  opacity: 0;
  transition: opacity var(--transition);
}
.tarif-card:hover::before, .tarif-card.populaire::before { opacity: 1; }
.tarif-card:hover, .tarif-card.populaire {
  border-color: rgba(184,150,74,.4) !important;
  box-shadow:
    0 20px 60px rgba(0,0,0,.1),
    0 0 0 1px rgba(184,150,74,.2) !important;
  transform: translateY(-6px);
}
.tarif-prix {
  color: var(--or-clair) !important;
  background: linear-gradient(135deg, #D4B86A 0%, #C9A445 40%, #E8D07A 70%, #B8964A 100%) !important;
  background-size: 100% 100% !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  background-clip: text !important;
  animation: none !important;
}

/* ── BANDEAU URGENCE ENRICHI ─────────────────────────────── */
.bandeau-urgence {
  background: linear-gradient(90deg,
    var(--noir-absolu) 0%,
    rgba(139,26,46,.8) 25%,
    rgba(107,18,34,.9) 50%,
    rgba(139,26,46,.8) 75%,
    var(--noir-absolu) 100%) !important;
  background-size: 300% 100% !important;
  animation: aurora 5s linear infinite !important;
  min-height: 50px !important;
  height: auto !important;
  padding: 8px 1rem !important;
}

/* ── ABONNEMENTS CARDS ───────────────────────────────────── */
.abo-card {
  background: linear-gradient(160deg,
    rgba(255,255,255,1) 0%,
    rgba(252,249,242,.98) 100%) !important;
  border: 1px solid rgba(184,150,74,.12) !important;
  position: relative;
  overflow: visible; /* CRITIQUE : visible pour que le badge ne soit pas coupé */
  padding-top: 2.5rem !important; /* espace pour le badge absolu top:-12px */
  transition: all .4s cubic-bezier(.4,0,.2,1) !important;
}
.abo-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: var(--gold-shine);
  background-size: 200% auto;
  animation: shimmer-or 3s linear infinite;
  opacity: 0;
  transition: opacity var(--transition);
}
.abo-card:hover::before, .abo-card.plus-choisi::before { opacity: 1; }
.abo-card:hover, .abo-card.plus-choisi {
  border-color: rgba(184,150,74,.3) !important;
  box-shadow:
    0 20px 60px rgba(0,0,0,.08),
    0 0 0 1px rgba(184,150,74,.2) !important;
  transform: translateY(-6px);
}
.abo-prix {
  color: var(--or-clair) !important;
  background: linear-gradient(135deg, #D4B86A 0%, #C9A445 40%, #E8D07A 70%, #B8964A 100%) !important;
  background-size: 100% 100% !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  background-clip: text !important;
  animation: none !important;
}

/* ── SERVICE DETAIL — ENHANCED ───────────────────────────── */
.service-visual {
  background: linear-gradient(135deg,
    rgba(10,10,15,1) 0%,
    rgba(21,21,31,1) 100%) !important;
  box-shadow: 0 20px 60px rgba(0,0,0,.2) !important;
}
.service-visual::before {
  background:
    radial-gradient(circle at 30% 30%, rgba(139,26,46,.15), transparent 60%),
    radial-gradient(circle at 70% 70%, rgba(184,150,74,.08), transparent 60%) !important;
}

/* ── CONTACT FORM — ÉLÉGANCE ─────────────────────────────── */
.form-input:focus, .form-textarea:focus, .form-select:focus {
  border-color: var(--or-metal) !important;
  box-shadow:
    0 0 0 3px rgba(184,150,74,.12),
    0 4px 20px rgba(184,150,74,.08) !important;
}
.option-item:hover {
  border-color: var(--or-metal) !important;
  background: rgba(184,150,74,.04) !important;
}
.option-item.selected {
  border-color: var(--or-metal) !important;
  background: rgba(184,150,74,.06) !important;
}

/* ── WHATSAPP FLOAT — LUXE ───────────────────────────────── */
.whatsapp-float {
  width: 58px !important;
  height: 58px !important;
  box-shadow:
    0 6px 24px rgba(37,211,102,.4),
    0 0 0 3px rgba(37,211,102,.1) !important;
}

/* ── STAT BADGE — SHIMMER ────────────────────────────────── */
.stat-badge {
  background: linear-gradient(135deg,
    rgba(248,244,235,1), rgba(252,249,242,1)) !important;
  border: 1px solid rgba(184,150,74,.2) !important;
}

/* ── SECTION-HEADER TITRE OR ─────────────────────────────── */
h2 .texte-or,
h1 .texte-or {
  /* Texte doré simple — pas de clip transparent pour éviter les rectangles vides */
  color: #C9A445 !important;
  -webkit-text-fill-color: #C9A445 !important;
  background: none !important;
  display: inline;
  animation: none !important;
}
h2 span[style*="var(--or"],
h1 span[style*="var(--or"] {
  color: #C9A445 !important;
  -webkit-text-fill-color: #C9A445 !important;
  background: none !important;
  display: inline;
  animation: none !important;
}
.problem-box {
  background: linear-gradient(135deg,
    rgba(139,26,46,.08) 0%,
    rgba(20,10,20,.4) 100%) !important;
  border: 1px solid rgba(184,150,74,.2) !important;
  backdrop-filter: blur(20px) !important;
}

/* ── RÉSULTAT BADGE PROFIL ───────────────────────────────── */
.profil-resultat {
  background: linear-gradient(135deg,
    rgba(184,150,74,.08), rgba(139,26,46,.04)) !important;
  border: 1px solid rgba(184,150,74,.2) !important;
}

/* ── SCROLL-TOP ENHANCED ─────────────────────────────────── */
.scroll-top:hover {
  background: var(--gradient-rouge) !important;
  box-shadow: var(--neon-rouge) !important;
  transform: translateY(-4px) !important;
}

/* ── GRID CONNEXION LINES ANIMATION ─────────────────────── */
.process-grid::before {
  background: linear-gradient(90deg,
    transparent 0%, var(--rouge-royal) 20%,
    var(--or-metal) 50%, var(--or-clair) 80%, transparent 100%) !important;
  animation: shimmer-or 4s linear infinite;
  background-size: 200% 100% !important;
  height: 2px !important;
}

/* ── SECTION BACKGROUND LÉGÈRE POUR CLARTE ──────────────── */
.section:not(.section-sombre) {
  background: var(--blanc-creme);
}
.section:nth-child(even):not(.section-sombre):not(.temoignages-section):not(.cta-final) {
  background: var(--blanc);
}

/* ── LEGAL PAGE REFINEMENTS ──────────────────────────────── */
.legal-body h2 {
  font-family: 'Cinzel', serif !important;
  background: var(--gold-shine);
  background-size: 200% auto;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  border-bottom-color: rgba(184,150,74,.2) !important;
}

/* ── SCROLLBAR LUXE ──────────────────────────────────────── */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: var(--noir-profond); }
::-webkit-scrollbar-thumb {
  background: linear-gradient(to bottom, var(--rouge-royal), var(--or-metal));
  border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(to bottom, var(--or-metal), var(--rouge-royal));
}

/* ── SELECTION COLORS ────────────────────────────────────── */
::selection {
  background: rgba(139,26,46,.25);
  color: var(--or-clair);
}

/* ── RESPONSIVE ULTRA LAYER ──────────────────────────────── */
@media (max-width: 768px) {
  .hero h1 { letter-spacing: .03em; }
  .page-hero { min-height: 300px; }
  .temoignage-card::before { font-size: 5rem; }
}
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after {
    animation-duration: .01ms !important;
    transition-duration: .01ms !important;
  }
}

/* ══════════════════════════════════════════════════════════
   RÈGLE UNIVERSELLE — .accent TOUJOURS VISIBLE EN OR
   Filet de sécurité absolu contre les rectangles vides
   ══════════════════════════════════════════════════════════ */
.accent {
  /* Couleur solide or — 100% fiable tous navigateurs */
  color: #C9A445 !important;
  -webkit-text-fill-color: #C9A445 !important;
  background: none !important;
  animation: none !important;
  display: inline;
}

/* Surcharge pour les spans avec inline style shimmer — neutraliser */
span[style*="shimmer"],
span[style*="gold-shine"],
h1 span[style*="gold-shine"],
h2 span[style*="gold-shine"] {
  background: linear-gradient(135deg, #D4B86A 0%, #C9A445 40%, #E8D07A 70%, #B8964A 100%) !important;
  background-size: 100% 100% !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  background-clip: text !important;
  animation: none !important;
}

/* ══════════════════════════════════════════════════════════
   EFFETS IA-LUXE — Interactions dynamiques premium
   ══════════════════════════════════════════════════════════ */

/* Cursor personnalisé */
@media (pointer: fine) {
  body { cursor: none; }
  a, button, .btn, [role="button"], label, select, input[type="submit"] {
    cursor: none;
  }
}

/* Section glow actif */
.section-active {
  animation: none;
}

/* Card spotlight hover effect */
.pack-card, .service-card, .temoignage-card {
  --spotlight-x: 50%;
  --spotlight-y: 50%;
}
.pack-card::after,
.service-card::after,
.temoignage-card::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: radial-gradient(
    circle 180px at var(--spotlight-x, 50%) var(--spotlight-y, 50%),
    rgba(184,150,74,.04) 0%,
    transparent 70%
  );
  pointer-events: none;
  opacity: 0;
  transition: opacity .3s ease;
  z-index: 2;
}
.pack-card:hover::after,
.service-card:hover::after,
.temoignage-card:hover::after {
  opacity: 1;
}

/* Transitions section */
.section, .page-hero, .stats-bande {
  transition: background .4s ease;
}

/* Bouton outline OR hover premium */
.btn-outline-or {
  transition: all .35s cubic-bezier(.4,0,.2,1) !important;
}
.btn-outline-or:hover {
  background: linear-gradient(135deg, #D4B86A 0%, #C9A445 50%, #B8964A 100%) !important;
  color: var(--noir-absolu) !important;
  border-color: transparent !important;
  box-shadow: 0 8px 30px rgba(184,150,74,.4) !important;
  transform: translateY(-3px) !important;
}

/* Pack card — transition 3D fluide */
.pack-card {
  transform-style: preserve-3d;
  will-change: transform;
}

/* Filtre boutons — glow actif */
.filtre-btn.actif {
  background: linear-gradient(135deg, #D4B86A 0%, #C9A445 50%, #B8964A 100%) !important;
  color: var(--noir-absolu) !important;
  box-shadow: 0 4px 20px rgba(184,150,74,.35) !important;
}

/* Cookie banner */
#cookieBanner {
  position: fixed;
  bottom: 20px; left: 50%; transform: translateX(-50%) translateY(120px);
  background: var(--noir-card);
  border: 1px solid rgba(184,150,74,.2);
  border-radius: var(--rayon);
  padding: 1rem 1.5rem;
  display: flex; align-items: center; gap: 1rem;
  color: rgba(255,255,255,.75);
  font-size: .82rem;
  font-family: var(--font-sous-titre);
  z-index: 9000;
  backdrop-filter: blur(12px);
  transition: transform .4s cubic-bezier(.34,1.56,.64,1);
  white-space: nowrap;
  box-shadow: 0 8px 32px rgba(0,0,0,.4);
}
#cookieBanner.visible {
  transform: translateX(-50%) translateY(0);
}
#cookieBanner a { color: var(--or-metal); text-decoration: underline; }
#acceptCookies {
  background: linear-gradient(135deg, #D4B86A, #B8964A);
  color: var(--noir-absolu);
  padding: 6px 16px;
  border-radius: 6px;
  font-weight: 700;
  font-size: .78rem;
  cursor: pointer;
  border: none;
  font-family: var(--font-sous-titre);
  transition: all .25s ease;
  flex-shrink: 0;
}
#acceptCookies:hover {
  transform: scale(1.05);
  box-shadow: 0 4px 12px rgba(184,150,74,.4);
}

/* Scroll fluide global */
html { scroll-behavior: smooth; }

/* Sélection de texte premium */
::selection {
  background: rgba(184,150,74,.25);
  color: var(--or-clair);
}

/* Focus visible premium */
:focus-visible {
  outline: 2px solid rgba(184,150,74,.6);
  outline-offset: 3px;
  border-radius: 4px;
}

/* ══════════════════════════════════════════════════════════
   IA-LUXE v2.0 — Styles additionnels
   ══════════════════════════════════════════════════════════ */

/* Barre de progression de scroll */
#scroll-progress {
  position: fixed; top: 0; left: 0; height: 2px;
  background: linear-gradient(90deg, var(--rouge-royal), var(--or-metal), var(--or-clair));
  z-index: 99999;
  box-shadow: 0 0 8px rgba(184,150,74,.4);
  transition: width .1s ease;
}

/* Pack-badge pulse — pas de translation si pas position absolute */
.pack-badge {
  white-space: nowrap;
  font-size: .72rem;
}

/* Stat items flottants */
.stat-item {
  transition: transform .3s ease;
}

/* CTA breathe override */
.cta-final .btn-or {
  animation: cta-breathe 3s ease-in-out infinite !important;
}

/* Abo-card overflow fix final — inner wrapper pour ::before */
.abo-card {
  padding-top: 2.5rem !important;
}
/* Quand il n'y a pas de badge, réduire le padding */
.abo-card:not(.plus-choisi) {
  padding-top: 2rem !important;
}

/* Responsive — désactiver les animations lourdes sur mobile */
@media (max-width: 768px) {
  .stat-item {
    animation: none !important;
  }
  #cursor-glow, #cursor-dot { display: none !important; }
}

/* ══════════════════════════════════════════════════════════
   ANIMATIONS SIGNATURE — BOUCLE PERMANENTE
   Zones ciblées : CrownGlory, bandeau, nav-bar, CTAs
   ══════════════════════════════════════════════════════════ */

/* ── KEYFRAMES ─────────────────────────────────────────── */
@keyframes crown-glory-shimmer {
  0%   { background-position: -200% center; }
  100% { background-position: 200% center; }
}
@keyframes crown-glow-pulse {
  0%,100% {
    text-shadow:
      0 0 8px  rgba(184,150,74,.4),
      0 0 20px rgba(184,150,74,.2),
      0 0 40px rgba(184,150,74,.08);
  }
  50% {
    text-shadow:
      0 0 12px rgba(184,150,74,.8),
      0 0 30px rgba(184,150,74,.5),
      0 0 60px rgba(184,150,74,.25),
      0 0 80px rgba(184,150,74,.1);
  }
}
@keyframes bandeau-pulse-glow {
  0%,100% {
    box-shadow: inset 0 0 0px rgba(184,150,74,0),
                0 0 0px rgba(139,26,46,0);
  }
  50% {
    box-shadow: inset 0 0 30px rgba(184,150,74,.12),
                0 2px 20px rgba(139,26,46,.5);
  }
}
@keyframes bandeau-text-shimmer {
  0%,100% { color: rgba(232,208,163,1); }
  50%     { color: rgba(255,240,190,1); text-shadow: 0 0 12px rgba(232,208,163,.6); }
}
@keyframes nav-bar-border-glow {
  0%,100% {
    border-color: rgba(184,150,74,.2);
    box-shadow: 0 1px 0 rgba(184,150,74,.1);
  }
  50% {
    border-color: rgba(184,150,74,.7);
    box-shadow:
      0 1px 0 rgba(184,150,74,.5),
      0 0 20px rgba(184,150,74,.2),
      0 -1px 0 rgba(184,150,74,.3) inset;
  }
}
@keyframes cta-pulse-loop {
  0%,100% {
    box-shadow:
      0 4px 20px rgba(139,26,46,.35),
      0 0 0 0 rgba(184,150,74,0);
    transform: scale(1);
  }
  40% {
    box-shadow:
      0 6px 35px rgba(139,26,46,.6),
      0 0 0 4px rgba(184,150,74,.12),
      0 0 40px rgba(184,150,74,.15);
    transform: scale(1.02);
  }
  80% {
    box-shadow:
      0 4px 20px rgba(139,26,46,.35),
      0 0 0 8px rgba(184,150,74,0);
    transform: scale(1);
  }
}
@keyframes bandeau-link-arrow {
  0%,100% { letter-spacing: .04em; opacity: .85; }
  50%     { letter-spacing: .1em;  opacity: 1;   color: #fff; }
}
@keyframes glory-color-wave {
  0%   { color: #C9A445; }
  25%  { color: #E8D07A; }
  50%  { color: #D4B86A; }
  75%  { color: #B8964A; }
  100% { color: #C9A445; }
}

/* ── 1. TEXTES "CrownGlory" — shimmer + glow en boucle ── */
/* Cible : .logo (header + footer), tout texte Crown + Glory */
.logo {
  animation: crown-glow-pulse 3.5s ease-in-out infinite;
}
.logo span.glory {
  display: inline-block;
  background: linear-gradient(
    90deg,
    #B8964A 0%, #D4B86A 25%,
    #F5E4A0 45%, #E8D07A 55%,
    #C9A445 75%, #B8964A 100%
  );
  background-size: 300% auto;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: crown-glory-shimmer 2.5s linear infinite,
             crown-glow-pulse 3.5s ease-in-out infinite;
}
/* Le mot "Crown" dans le logo */
.logo-text-crown,
a.logo > span:first-of-type {
  display: inline-block;
  animation: glory-color-wave 5s ease-in-out infinite;
}

/* ── 2. BANDEAU URGENCE — luminosité pulsante ───────────── */
.bandeau-urgence {
  animation:
    bandeau-slide 6s linear infinite,
    bandeau-pulse-glow 4s ease-in-out infinite !important;
}
.bandeau-urgence span,
.bandeau-urgence strong {
  animation: bandeau-text-shimmer 3.5s ease-in-out infinite;
}
/* Lien "Vérifier les disponibilités →" */
.bandeau-urgence a {
  animation: bandeau-link-arrow 2.8s ease-in-out infinite !important;
  font-weight: 700 !important;
  border-bottom: 1px solid rgba(255,255,255,.3) !important;
  padding-bottom: 1px !important;
}

/* ── 3. BARRE NAV (ligne Agence d'Établissement) ───────── */
/* La barre en dessous du bandeau = le header lui-même scrolled */
#header {
  transition: border-color .4s ease, box-shadow .4s ease !important;
}
#header.scrolled {
  animation: nav-bar-border-glow 4s ease-in-out infinite !important;
}
/* Ligne hero-badge (Agence d'Établissement d'Identités Royales) */
.hero-badge {
  animation: nav-bar-border-glow 4s ease-in-out infinite !important;
}

/* ── 4. CTAs PRINCIPAUX — pulse loop captivant ──────────── */
.btn-header-cta,
.hero .btn-or,
.cta-final .btn-or {
  animation: cta-pulse-loop 3.2s ease-in-out infinite !important;
}
/* Sécurité : assurer que le texte CTA reste visible */
.btn-header-cta {
  -webkit-text-fill-color: initial !important;
  color: var(--or-pale) !important;
}

/* ── FOOTER LOGO — même glow ────────────────────────────── */
.footer-brand .logo {
  animation: crown-glow-pulse 3.5s ease-in-out infinite !important;
}
.footer-brand .logo .glory {
  background: linear-gradient(
    90deg,
    #B8964A 0%, #D4B86A 25%, #F5E4A0 45%, #C9A445 75%, #B8964A 100%
  );
  background-size: 300% auto;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: crown-glory-shimmer 2.5s linear infinite !important;
}
