/* ============================================================
   SOLUTIONZ — Design System v4
   Mode sombre (défaut) + Mode clair
   Bascule via data-theme="light" sur <html>
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Rajdhani:wght@400;500;600;700&family=Lato:wght@300;400;700&display=swap');

/* ══════════════════════════════════════════════════════════════
   TOKENS — MODE SOMBRE (défaut)
══════════════════════════════════════════════════════════════ */
:root {
  /* Accent commun aux deux thèmes */
  --bleu-vif:   #1e4fff;
  --bleu-clair: #3a6fff;
  --or:         #c8a96e;
  --or-clair:   #e8d5a8;

  /* Surfaces sombres */
  --bg-page:    #0a0e1a;
  --bg-section: #0d1526;
  --bg-card:    #1a2744;
  --bg-footer:  #060810;

  /* Textes sombres */
  --txt-titre:  #ffffff;
  --txt-corps:  #e8edf5;
  --txt-secondaire: #c8d4e8;
  --txt-discret:#6b7a99;

  /* Bordures sombres */
  --bordure:    rgba(200,212,232,0.15);
  --bordure-forte: rgba(200,212,232,0.3);

  /* Nav sombre */
  --nav-bg:     rgba(10,14,26,0.90);
  --nav-bg-scrolled: rgba(10,14,26,0.98);
  --nav-volet-bg: #0d1526;

  /* Logo filtre */
  --logo-filter: brightness(0) invert(1);
  --logo-hover:  brightness(0) saturate(100%) invert(72%) sepia(40%) saturate(400%) hue-rotate(5deg);

  /* Overlay volet */
  --overlay-bg: rgba(5,8,18,0.75);

  /* Ombres */
  --ombre-card: 0 4px 24px rgba(10,14,26,0.6);

  /* Hero déco */
  --hero-grille: rgba(200,212,232,0.03);
  --hero-radial1: rgba(30,79,255,0.12);
  --hero-radial2: rgba(200,169,110,0.06);

  /* Page header */
  --header-bg1: #0a0e1a;
  --header-bg2: #0d1526;
  --header-grille: rgba(200,212,232,0.03);

  /* CTA section */
  --cta-bg1: #1a2744;
  --cta-bg2: #0d1526;

  /* Btn contour */
  --btn-contour-txt: #e8edf5;

  /* Tokens fixes */
  --font-titre: 'Rajdhani', sans-serif;
  --font-corps: 'Lato', sans-serif;
  --rayon:  8px;
  --rayon-l:16px;
  --transition: 0.3s cubic-bezier(0.4,0,0.2,1);
  --nav-h:  68px;
}

/* ══════════════════════════════════════════════════════════════
   TOKENS — MODE CLAIR
   Palette : blanc cassé + bleu acier + accent or/cuivre
══════════════════════════════════════════════════════════════ */
[data-theme="light"] {
  --bg-page:    #f4f6fb;
  --bg-section: #eaecf4;
  --bg-card:    #ffffff;
  --bg-footer:  #1a2236;

  --txt-titre:  #111827;
  --txt-corps:  #1f2937;
  --txt-secondaire: #374151;
  --txt-discret:#6b7280;

  --bordure:    rgba(30,79,255,0.12);
  --bordure-forte: rgba(30,79,255,0.3);

  --nav-bg:     rgba(244,246,251,0.92);
  --nav-bg-scrolled: rgba(244,246,251,0.99);
  --nav-volet-bg: #ffffff;

  --logo-filter: brightness(0) saturate(100%);
  --logo-hover:  brightness(0) saturate(100%) invert(40%) sepia(80%) saturate(600%) hue-rotate(200deg);

  --overlay-bg: rgba(17,24,39,0.5);

  --ombre-card: 0 4px 24px rgba(30,79,255,0.08);

  --hero-grille: rgba(30,79,255,0.04);
  --hero-radial1: rgba(30,79,255,0.07);
  --hero-radial2: rgba(200,169,110,0.05);

  --header-bg1: #e8ecf6;
  --header-bg2: #dde3f0;
  --header-grille: rgba(30,79,255,0.04);

  --cta-bg1: #dde3f0;
  --cta-bg2: #e8ecf6;

  --btn-contour-txt: #1f2937;

  --or: #a07840;
  --or-clair: #c49a5a;
}

/* ══════════════════════════════════════════════════════════════
   RESET & BASE
══════════════════════════════════════════════════════════════ */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; overflow-x:hidden; }
body {
  font-family:var(--font-corps);
  background:var(--bg-page);
  color:var(--txt-corps);
  line-height:1.7;
  overflow-x:hidden;
  position:relative;
  transition:background 0.3s ease, color 0.3s ease;
}
img { max-width:100%; display:block; height:auto; }
a { color:inherit; text-decoration:none; }
ul { list-style:none; }

/* ── Utilitaires ── */
.container { max-width:1200px; margin:0 auto; padding:0 20px; }

.section-titre {
  font-family:var(--font-titre);
  font-size:clamp(1.6rem,5vw,3rem);
  font-weight:700; letter-spacing:0.04em; text-transform:uppercase;
  color:var(--txt-titre); margin-bottom:0.4em;
  word-break:break-word; overflow-wrap:break-word;
}
.section-sous-titre {
  font-size:1rem; color:var(--txt-discret);
  max-width:600px; margin-bottom:2.5rem; font-weight:300;
}
.ligne-or {
  width:60px; height:3px;
  background:linear-gradient(90deg,var(--or),var(--or-clair));
  margin-bottom:1.5rem; border-radius:2px;
}
.tag-or {
  display:inline-block;
  font-family:var(--font-titre); font-size:0.75rem; font-weight:600;
  letter-spacing:0.12em; text-transform:uppercase;
  color:var(--or); border:1px solid var(--or);
  padding:4px 12px; border-radius:20px; margin-bottom:1rem;
}

/* ── Boutons ── */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:var(--font-titre); font-size:0.92rem; font-weight:600;
  letter-spacing:0.07em; text-transform:uppercase;
  padding:12px 24px; border-radius:var(--rayon);
  border:none; cursor:pointer; transition:var(--transition);
  white-space:normal; text-align:center; line-height:1.3;
}
.btn-primaire {
  background:linear-gradient(135deg,var(--bleu-vif),var(--bleu-clair));
  color:#fff; box-shadow:0 4px 20px rgba(30,79,255,0.35);
}
.btn-primaire:hover { transform:translateY(-2px); box-shadow:0 8px 32px rgba(30,79,255,0.5); }
.btn-or {
  background:linear-gradient(135deg,var(--or),var(--or-clair));
  color:#fff; box-shadow:0 4px 20px rgba(200,169,110,0.3);
}
[data-theme="light"] .btn-or { color:#fff; }
.btn-or:hover { transform:translateY(-2px); box-shadow:0 8px 32px rgba(200,169,110,0.5); }
.btn-contour {
  background:transparent; color:var(--btn-contour-txt);
  border:1px solid var(--bordure-forte);
}
.btn-contour:hover { background:var(--bordure); border-color:var(--bleu-clair); }

/* ══════════════════════════════════════════════════════════════
   BOUTON THÈME
══════════════════════════════════════════════════════════════ */
.theme-toggle {
  display:flex; align-items:center; justify-content:center;
  width:36px; height:36px; border-radius:50%;
  background:var(--bg-card); border:1px solid var(--bordure-forte);
  cursor:pointer; transition:var(--transition);
  color:var(--txt-secondaire); flex-shrink:0;
}
.theme-toggle:hover { border-color:var(--or); color:var(--or); transform:rotate(15deg); }
.theme-toggle svg { width:17px; height:17px; }
/* Icône : lune en sombre, soleil en clair */
.theme-toggle .icon-lune  { display:block; }
.theme-toggle .icon-soleil { display:none; }
[data-theme="light"] .theme-toggle .icon-lune  { display:none; }
[data-theme="light"] .theme-toggle .icon-soleil { display:block; }

/* ══════════════════════════════════════════════════════════════
   NAVIGATION
══════════════════════════════════════════════════════════════ */
.nav {
  position:fixed; top:0; left:0; right:0; z-index:1000;
  background:var(--nav-bg);
  backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
  border-bottom:1px solid var(--bordure);
  transition:background var(--transition);
  width:100%;
}
.nav.scrolled { background:var(--nav-bg-scrolled); }

.nav-inner {
  max-width:1200px; margin:0 auto; padding:0 20px;
  display:flex; align-items:center; justify-content:space-between;
  height:var(--nav-h); gap:16px;
}
.nav-logo { display:flex; align-items:center; gap:10px; flex-shrink:0; min-width:0; }
.nav-logo img {
  width:36px; height:36px; object-fit:contain; flex-shrink:0;
  filter:var(--logo-filter); transition:var(--transition);
}
.nav-logo:hover img { filter:var(--logo-hover); }
.nav-logo-texte {
  font-family:var(--font-titre); font-size:1.4rem; font-weight:700;
  letter-spacing:0.1em; text-transform:uppercase; color:var(--txt-titre);
  white-space:nowrap;
}
.nav-logo-texte span { color:var(--or); }

.nav-liens { display:flex; align-items:center; gap:28px; flex-shrink:0; }
.nav-liens a {
  font-family:var(--font-titre); font-size:0.9rem; font-weight:600;
  letter-spacing:0.07em; text-transform:uppercase;
  color:var(--txt-discret); transition:var(--transition); position:relative; white-space:nowrap;
}
.nav-liens a::after {
  content:''; position:absolute; bottom:-4px; left:0;
  width:0; height:2px; background:var(--or); transition:var(--transition);
}
.nav-liens a:hover { color:var(--txt-titre); }
.nav-liens a:hover::after, .nav-liens a.actif::after { width:100%; }
.nav-liens a.actif { color:var(--or); }

.nav-tel {
  font-family:var(--font-titre); font-size:0.95rem; font-weight:700;
  color:var(--or); display:flex; align-items:center; gap:6px;
  transition:var(--transition); white-space:nowrap; flex-shrink:0;
}
.nav-tel:hover { color:var(--or-clair); }

.nav-burger {
  display:none; flex-direction:column; justify-content:center;
  gap:5px; cursor:pointer; padding:8px;
  background:none; border:none; flex-shrink:0; width:40px; height:40px;
}
.nav-burger span {
  display:block; width:22px; height:2px;
  background:var(--txt-secondaire);
  transition:var(--transition); border-radius:2px;
}
.nav-burger.actif span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.nav-burger.actif span:nth-child(2) { opacity:0; transform:scaleX(0); }
.nav-burger.actif span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* ── Volet latéral ── */
.nav-overlay {
  position:fixed; inset:0; z-index:1100;
  background:var(--overlay-bg); backdrop-filter:blur(4px);
  opacity:0; pointer-events:none; transition:opacity 0.35s ease;
}
.nav-overlay.visible { opacity:1; pointer-events:all; }

.nav-volet {
  position:fixed; top:0; right:0; z-index:1200;
  width:clamp(260px,85vw,320px); height:100%;
  background:var(--nav-volet-bg);
  border-left:1px solid var(--bordure);
  display:flex; flex-direction:column;
  transform:translateX(100%);
  transition:transform 0.35s cubic-bezier(0.4,0,0.2,1);
  overflow-y:auto; overflow-x:hidden;
}
.nav-volet.ouvert { transform:translateX(0); }

.nav-volet-header {
  display:flex; align-items:center; justify-content:space-between;
  padding:0 20px; height:var(--nav-h);
  border-bottom:1px solid var(--bordure); flex-shrink:0;
}
.nav-volet-logo { display:flex; align-items:center; gap:10px; }
.nav-volet-logo img { width:30px; height:30px; object-fit:contain; filter:var(--logo-filter); }
.nav-volet-logo span {
  font-family:var(--font-titre); font-size:1.2rem; font-weight:700;
  letter-spacing:0.1em; text-transform:uppercase; color:var(--txt-titre);
}
.nav-volet-logo span em { color:var(--or); font-style:normal; }

.nav-volet-close {
  width:34px; height:34px; border-radius:50%;
  background:var(--bg-section); border:1px solid var(--bordure);
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; color:var(--txt-discret); transition:var(--transition); flex-shrink:0;
}
.nav-volet-close:hover { background:rgba(200,169,110,0.15); color:var(--or); }

.nav-volet-liens { padding:12px 0; flex:1; }
.nav-volet-liens a {
  display:flex; align-items:center; gap:12px; padding:15px 24px;
  font-family:var(--font-titre); font-size:1.05rem; font-weight:600;
  letter-spacing:0.06em; text-transform:uppercase;
  color:var(--txt-discret); border-left:3px solid transparent;
  transition:var(--transition);
}
.nav-volet-liens a:hover, .nav-volet-liens a.actif {
  color:var(--or); background:rgba(200,169,110,0.06); border-left-color:var(--or);
}

.nav-volet-contact {
  padding:20px; border-top:1px solid var(--bordure); flex-shrink:0;
}
.nav-volet-contact a {
  display:flex; align-items:center; gap:9px;
  font-size:0.88rem; color:var(--txt-discret);
  margin-bottom:10px; transition:var(--transition);
}
.nav-volet-contact a:hover { color:var(--or); }
.nav-volet-contact a svg { color:var(--or); flex-shrink:0; }
.nav-volet-contact .btn { width:100%; margin-top:10px; }

/* ─ Séparateur thème dans le volet ─ */
.nav-volet-theme {
  padding:16px 24px 4px;
  display:flex; align-items:center; justify-content:space-between;
}
.nav-volet-theme span {
  font-family:var(--font-titre); font-size:0.78rem; font-weight:600;
  letter-spacing:0.1em; text-transform:uppercase; color:var(--txt-discret);
}

@media (max-width:920px) {
  .nav-liens, .nav-tel { display:none; }
  .nav-burger { display:flex; }
  .theme-toggle.desktop-only { display:none; }
}
@media (min-width:921px) {
  .theme-toggle.mobile-only { display:none; }
}

/* ══════════════════════════════════════════════════════════════
   HERO
══════════════════════════════════════════════════════════════ */
.hero {
  position:relative; min-height:100svh;
  display:flex; align-items:center;
  overflow:hidden; padding-top:var(--nav-h);
}
.hero-bg {
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse 80% 60% at 70% 40%,var(--hero-radial1) 0%,transparent 60%),
    radial-gradient(ellipse 50% 40% at 20% 80%,var(--hero-radial2) 0%,transparent 50%),
    linear-gradient(160deg,var(--bg-page) 0%,var(--bg-section) 50%,var(--bg-page) 100%);
}
.hero-grille {
  position:absolute; inset:0;
  background-image:
    linear-gradient(var(--hero-grille) 1px,transparent 1px),
    linear-gradient(90deg,var(--hero-grille) 1px,transparent 1px);
  background-size:60px 60px;
}
.hero-visuel {
  position:absolute; right:-40px; top:50%;
  transform:translateY(-50%);
  width:420px; height:420px; z-index:1;
  opacity:0.07; object-fit:contain;
  filter:var(--logo-filter);
}
.hero-contenu { position:relative; z-index:2; max-width:680px; padding:40px 0; width:100%; }
.hero-badge {
  display:inline-flex; align-items:center; gap:9px;
  background:rgba(200,169,110,0.1); border:1px solid rgba(200,169,110,0.3);
  border-radius:30px; padding:6px 16px; margin-bottom:1.5rem;
  font-family:var(--font-titre); font-size:0.75rem; font-weight:600;
  letter-spacing:0.14em; text-transform:uppercase; color:var(--or);
}
[data-theme="light"] .hero-badge { background:rgba(160,120,64,0.08); }
.hero-badge-dot {
  width:7px; height:7px; background:var(--or); border-radius:50%;
  flex-shrink:0; animation:pulse 2s infinite;
}
@keyframes pulse {
  0%,100% { opacity:1; transform:scale(1); }
  50% { opacity:0.5; transform:scale(0.8); }
}
.hero h1 {
  font-family:var(--font-titre);
  font-size:clamp(2.2rem,7vw,4.8rem);
  font-weight:700; line-height:1.05;
  letter-spacing:0.02em; text-transform:uppercase;
  color:var(--txt-titre); margin-bottom:1.2rem; word-break:break-word;
}
.hero h1 .accent { color:var(--or); }
.hero h1 .bleu { color:var(--bleu-clair); }
.hero-desc { font-size:1rem; color:var(--txt-discret); max-width:540px; margin-bottom:2rem; font-weight:300; line-height:1.8; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-bottom:2.5rem; }
.hero-stats { display:flex; gap:28px; flex-wrap:wrap; }
.hero-stat { display:flex; flex-direction:column; }
.hero-stat-nb { font-family:var(--font-titre); font-size:1.7rem; font-weight:700; color:var(--or); line-height:1; }
.hero-stat-label { font-size:0.74rem; color:var(--txt-discret); text-transform:uppercase; letter-spacing:0.1em; margin-top:3px; }

@media (max-width:768px) { .hero-visuel { display:none; } .hero-contenu { padding:24px 0; } }
@media (max-width:480px) {
  .hero h1 { font-size:clamp(1.9rem,9vw,2.6rem); }
  .hero-actions { flex-direction:column; }
  .hero-actions .btn { width:100%; }
}

/* ══════════════════════════════════════════════════════════════
   BANDE URGENCE
══════════════════════════════════════════════════════════════ */
.bande-urgence {
  background:linear-gradient(135deg,var(--bleu-vif),var(--bleu-clair));
  padding:16px 20px;
}
.bande-urgence-inner {
  max-width:1200px; margin:0 auto;
  display:flex; align-items:center; justify-content:space-between;
  gap:12px; flex-wrap:wrap;
}
.bande-urgence-texte {
  font-family:var(--font-titre); font-size:0.95rem; font-weight:600;
  letter-spacing:0.04em; color:#fff;
  display:flex; align-items:center; gap:9px; flex-shrink:1; min-width:0;
}
.bande-urgence-tel {
  font-family:var(--font-titre); font-size:1.2rem; font-weight:700;
  color:#fff; display:flex; align-items:center; gap:7px;
  transition:var(--transition); flex-shrink:0;
}
.bande-urgence-tel:hover { opacity:0.85; }
@media (max-width:500px) {
  .bande-urgence-inner { justify-content:center; text-align:center; }
  .bande-urgence-texte { justify-content:center; font-size:0.85rem; }
  .bande-urgence-tel { font-size:1.05rem; }
}

/* ══════════════════════════════════════════════════════════════
   SECTION SERVICES
══════════════════════════════════════════════════════════════ */
.section-services { padding:72px 0; background:var(--bg-section); position:relative; }
.section-services::before {
  content:''; position:absolute; top:0; left:0; right:0; height:1px;
  background:linear-gradient(90deg,transparent,var(--bleu-vif),transparent);
}
.services-grille {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));
  gap:18px; margin-top:2.5rem;
}
.service-card {
  background:var(--bg-card); border:1px solid var(--bordure);
  border-radius:var(--rayon-l); padding:26px 22px;
  transition:var(--transition); position:relative; overflow:hidden;
}
.service-card::before {
  content:''; position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg,var(--bleu-vif),var(--bleu-clair));
  transform:scaleX(0); transition:var(--transition);
}
.service-card:hover { transform:translateY(-4px); border-color:var(--bordure-forte); box-shadow:var(--ombre-card); }
.service-card:hover::before { transform:scaleX(1); }
.service-icone {
  width:48px; height:48px;
  background:rgba(30,79,255,0.08); border-radius:var(--rayon);
  display:flex; align-items:center; justify-content:center;
  margin-bottom:14px; font-size:1.4rem; transition:var(--transition);
}
[data-theme="light"] .service-icone { background:rgba(30,79,255,0.07); }
.service-card:hover .service-icone { background:rgba(30,79,255,0.15); }
.service-card h3 {
  font-family:var(--font-titre); font-size:1.15rem; font-weight:700;
  letter-spacing:0.05em; text-transform:uppercase;
  color:var(--txt-titre); margin-bottom:9px; word-break:break-word;
}
.service-card p { font-size:0.88rem; color:var(--txt-discret); line-height:1.7; }
.service-card-lien {
  display:inline-flex; align-items:center; gap:5px; margin-top:14px;
  font-family:var(--font-titre); font-size:0.8rem; font-weight:600;
  letter-spacing:0.07em; text-transform:uppercase;
  color:var(--bleu-clair); transition:var(--transition);
}
.service-card-lien:hover { gap:10px; color:var(--or); }

/* ══════════════════════════════════════════════════════════════
   SECTION ATOUTS
══════════════════════════════════════════════════════════════ */
.section-atouts { padding:72px 0; background:var(--bg-page); }
.atouts-layout { display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
.atouts-liste { display:flex; flex-direction:column; gap:22px; }
.atout-item { display:flex; gap:16px; align-items:flex-start; }
.atout-num {
  font-family:var(--font-titre); font-size:2rem; font-weight:700;
  color:rgba(30,79,255,0.15); line-height:1; min-width:42px; flex-shrink:0;
}
[data-theme="light"] .atout-num { color:rgba(30,79,255,0.12); }
.atout-texte h4 {
  font-family:var(--font-titre); font-size:1.05rem; font-weight:700;
  letter-spacing:0.05em; text-transform:uppercase;
  color:var(--txt-titre); margin-bottom:4px;
}
.atout-texte p { font-size:0.86rem; color:var(--txt-discret); line-height:1.7; }
.atouts-visuel { position:relative; min-width:0; }
.atouts-carte-principale {
  background:var(--bg-card); border:1px solid var(--bordure);
  border-radius:var(--rayon-l); padding:32px;
  position:relative; overflow:hidden;
  box-shadow:var(--ombre-card);
}
.atouts-carte-principale::after {
  content:''; position:absolute; bottom:-60px; right:-60px;
  width:180px; height:180px;
  background:radial-gradient(circle,rgba(30,79,255,0.1),transparent 70%);
  border-radius:50%; pointer-events:none;
}
.carte-logo-grand {
  font-family:var(--font-titre); font-size:clamp(1.8rem,3.5vw,3rem);
  font-weight:700; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--txt-titre); margin-bottom:12px; word-break:break-word;
}
.carte-logo-grand span { color:var(--or); }
.carte-slogan { font-size:0.9rem; color:var(--txt-discret); margin-bottom:20px; line-height:1.6; }
.carte-zone {
  display:inline-flex; align-items:center; gap:7px;
  background:rgba(200,169,110,0.1); border:1px solid rgba(200,169,110,0.25);
  border-radius:6px; padding:8px 14px;
  font-family:var(--font-titre); font-size:0.85rem; font-weight:600; color:var(--or);
  flex-wrap:wrap;
}
[data-theme="light"] .carte-zone { background:rgba(160,120,64,0.08); }
@media (max-width:860px) { .atouts-layout { grid-template-columns:1fr; gap:36px; } }

/* ══════════════════════════════════════════════════════════════
   SECTION ÉQUIPEMENTS
══════════════════════════════════════════════════════════════ */
.section-equipements {
  padding:60px 0; background:var(--bg-section);
  border-top:1px solid var(--bordure);
}
.equipements-grille {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,130px),1fr));
  gap:12px; margin-top:2.2rem;
}
.equipement-item {
  background:var(--bg-card); border:1px solid var(--bordure);
  border-radius:var(--rayon); padding:18px 10px;
  text-align:center; transition:var(--transition);
}
.equipement-item:hover { border-color:var(--bleu-clair); transform:translateY(-3px); box-shadow:var(--ombre-card); }
.equipement-item .icone { font-size:1.7rem; margin-bottom:7px; }
.equipement-item span {
  display:block; font-family:var(--font-titre); font-size:0.75rem;
  font-weight:600; letter-spacing:0.05em; text-transform:uppercase;
  color:var(--txt-secondaire); line-height:1.3;
}

/* ══════════════════════════════════════════════════════════════
   SECTION CTA
══════════════════════════════════════════════════════════════ */
.section-cta {
  padding:72px 0;
  background:linear-gradient(135deg,var(--cta-bg1) 0%,var(--cta-bg2) 100%);
  position:relative; overflow:hidden;
}
.section-cta::before {
  content:''; position:absolute; top:-80px; right:-80px;
  width:350px; height:350px;
  background:radial-gradient(circle,rgba(30,79,255,0.1),transparent 70%);
  border-radius:50%; pointer-events:none;
}
.cta-inner { text-align:center; position:relative; z-index:2; }
.cta-inner h2 {
  font-family:var(--font-titre);
  font-size:clamp(1.6rem,4vw,2.8rem);
  font-weight:700; letter-spacing:0.04em; text-transform:uppercase;
  color:var(--txt-titre); margin-bottom:1rem; word-break:break-word;
}
.cta-inner p { font-size:0.97rem; color:var(--txt-discret); max-width:520px; margin:0 auto 1.8rem; font-weight:300; }
.cta-actions { display:flex; justify-content:center; gap:12px; flex-wrap:wrap; }
@media (max-width:420px) {
  .cta-actions { flex-direction:column; align-items:stretch; }
  .cta-actions .btn { width:100%; }
}

/* ══════════════════════════════════════════════════════════════
   FOOTER
══════════════════════════════════════════════════════════════ */
.footer {
  background:var(--bg-footer);
  border-top:1px solid var(--bordure);
  padding:48px 20px 0;
}
/* Le footer est toujours sombre (les deux thèmes) */
.footer,
.footer .footer-logo-texte,
.footer .footer-col h4 { color:#ffffff; }
.footer .footer-desc,
.footer .footer-col ul li a,
.footer .footer-bas p { color:#6b7a99; }
.footer .footer-logo img { filter:brightness(0) invert(1); }
.footer .footer-logo-texte span { color:#c8a96e; }
.footer .footer-col ul li a::before { color:#c8a96e; }
.footer .footer-col ul li a:hover { color:#e8edf5; }
.footer .footer-contact-item { color:#c8d4e8; }
.footer .footer-contact-item svg { color:#c8a96e; }
.footer .footer-contact-item:hover { color:#c8a96e; }
.footer .footer-bas a { color:#6b7a99; }
.footer .footer-bas a:hover { color:#c8a96e; }
.footer .carte-zone { color:#c8a96e; border-color:rgba(200,169,110,0.2); background:rgba(200,169,110,0.1); }

.footer-grille {
  max-width:1200px; margin:0 auto;
  display:grid; grid-template-columns:2fr 1fr 1fr 1fr;
  gap:36px; padding-bottom:36px;
}
.footer-logo { display:flex; align-items:center; gap:10px; margin-bottom:12px; }
.footer-logo img { width:28px; height:28px; object-fit:contain; flex-shrink:0; }
.footer-logo-texte { font-family:var(--font-titre); font-size:1.2rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; }
.footer-desc { font-size:0.84rem; line-height:1.8; margin-bottom:16px; }
.footer-contact-item {
  display:flex; align-items:center; gap:8px; font-size:0.85rem;
  margin-bottom:7px; transition:var(--transition);
  overflow-wrap:break-word; word-break:break-all; min-width:0;
}
.footer-contact-item svg { width:14px; height:14px; flex-shrink:0; }
.footer-col h4 { font-family:var(--font-titre); font-size:0.82rem; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; margin-bottom:16px; }
.footer-col ul li { margin-bottom:8px; }
.footer-col ul li a {
  font-size:0.83rem; transition:var(--transition);
  display:flex; align-items:center; gap:5px;
  overflow-wrap:break-word; min-width:0;
}
.footer-col ul li a:hover { padding-left:4px; }
.footer-bas {
  max-width:1200px; margin:0 auto;
  border-top:1px solid rgba(200,212,232,0.1); padding:18px 0;
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:8px;
}
.footer-bas p { font-size:0.78rem; }

@media (max-width:900px) { .footer-grille { grid-template-columns:1fr 1fr; gap:24px; } }
@media (max-width:540px) {
  .footer-grille { grid-template-columns:1fr; gap:20px; }
  .footer-bas { flex-direction:column; align-items:flex-start; }
}

/* ══════════════════════════════════════════════════════════════
   ANIMATIONS
══════════════════════════════════════════════════════════════ */
@keyframes fadeUp {
  from { opacity:0; transform:translateY(24px); }
  to   { opacity:1; transform:translateY(0); }
}
.fade-up { animation:fadeUp 0.7s cubic-bezier(0.4,0,0.2,1) both; }
.fade-up-1 { animation-delay:0.1s; }
.fade-up-2 { animation-delay:0.2s; }
.fade-up-3 { animation-delay:0.3s; }
.fade-up-4 { animation-delay:0.5s; }
.fade-up-5 { animation-delay:0.7s; }

.reveal { opacity:0; transform:translateY(20px); transition:opacity 0.6s ease, transform 0.6s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }
.reveal-delay-1 { transition-delay:0.1s; }
.reveal-delay-2 { transition-delay:0.2s; }
.reveal-delay-3 { transition-delay:0.3s; }
.reveal-delay-4 { transition-delay:0.4s; }

/* ══════════════════════════════════════════════════════════════
   PAGE HEADER
══════════════════════════════════════════════════════════════ */
.page-header {
  padding:calc(var(--nav-h) + 52px) 0 52px;
  background:linear-gradient(160deg,var(--header-bg1) 0%,var(--header-bg2) 100%);
  position:relative; overflow:hidden;
  border-bottom:1px solid var(--bordure);
}
.page-header::before {
  content:''; position:absolute; inset:0;
  background-image:
    linear-gradient(var(--header-grille) 1px,transparent 1px),
    linear-gradient(90deg,var(--header-grille) 1px,transparent 1px);
  background-size:60px 60px;
}
.page-header-inner { position:relative; z-index:2; }
.page-header h1 {
  font-family:var(--font-titre);
  font-size:clamp(1.8rem,5vw,3.6rem);
  font-weight:700; letter-spacing:0.04em; text-transform:uppercase;
  color:var(--txt-titre); margin-bottom:0.6rem; word-break:break-word;
}
.page-header p { font-size:0.97rem; color:var(--txt-discret); max-width:520px; font-weight:300; line-height:1.7; }
.fil-ariane {
  display:flex; align-items:center; gap:6px; flex-wrap:wrap;
  font-family:var(--font-titre); font-size:0.75rem;
  letter-spacing:0.08em; text-transform:uppercase;
  color:var(--txt-discret); margin-bottom:1rem;
}
.fil-ariane a { color:var(--or); transition:var(--transition); }
.fil-ariane a:hover { color:var(--or-clair); }
