/************************************************************************
 * SB INGÉNIERIE - FEUILLE DE STYLE MAÎTRESSE 2025 (VERSION FINALE)
 * 
 * Auteur:  SB Ingénierie
 
 ************************************************************************/

/* ========================================================================
   1. TOKENS GLOBAUX & CONFIGURATION DE BASE (:root)
   ======================================================================== */
:root {
  /* Palette de couleurs principale (WCAG AA/AAA) */
  --color-primary: #2c5aa0;
  --color-primary-dark: #1e3d72;
  --color-primary-light: #3b82f6;
  --color-accent: #ff4500; /* Orange signature SB */
  --color-success: #059669;
  --color-warning: #d97706;
  --color-danger: #dc2626;
  --color-info: #0891b2;
  --color-white: #ffffff;
  --color-dark: #0f172a;

  /* Palette de gris */
  --gray-50: #f8fafc;
  --gray-100: #f1f5f9;
  --gray-200: #e2e8f0;
  --gray-400: #94a3b8;
  --gray-500: #64748b;
  --gray-600: #475569;
  --gray-700: #334155;
  --gray-800: #1e293b;
  --gray-900: #0b1427;

  /* Couleurs de fond sémantiques */
  --bg-primary: var(--gray-50);
  --bg-secondary: var(--white);
  --bg-accent: var(--gray-100);

  /* Couleurs de texte sémantiques */
  --text-primary: var(--gray-900);
  --text-secondary: var(--gray-700);
  --text-muted: var(--gray-500);

  /* Gradients */
  --gradient-hero: linear-gradient(135deg, var(--gray-900) 0%, var(--color-primary-dark) 55%, #3730a3 100%);
  --gradient-primary: linear-gradient(135deg, var(--color-primary-light), var(--color-primary));
  --gradient-success: linear-gradient(135deg, #10b981, var(--color-success));

  /* Typographie */
  --font-primary: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --text-base-size: clamp(1rem, 0.5vw + 0.875rem, 1.125rem); /* 16px à 18px */
  --text-scale-ratio: 1.25;
  --text-sm: clamp(0.8rem, 1.5vw, 0.9rem);
  --text-lg: clamp(1.25rem, 2vw, 1.5rem);
  --text-xl: clamp(1.56rem, 3vw, 2rem);
  --text-2xl: clamp(1.95rem, 4vw, 2.5rem);
  --text-3xl: clamp(2.44rem, 5vw, 3.2rem);
  --text-4xl: clamp(3.05rem, 7vw, 4rem);

  /* Espacements fluides */
  --space-1: clamp(0.25rem, 0.5vw, 0.375rem);
  --space-2: clamp(0.5rem, 1vw, 0.75rem);
  --space-3: clamp(0.75rem, 1.5vw, 1rem);
  --space-4: clamp(1rem, 2vw, 1.5rem);
  --space-6: clamp(1.5rem, 3vw, 2rem);
  --space-8: clamp(2rem, 4vw, 3rem);
  --space-12: clamp(3rem, 6vw, 4.5rem);
  --space-16: clamp(4rem, 8vw, 6rem);
  
  /* Ombres */
  --shadow-sm: 0 2px 8px rgba(15, 23, 42, 0.06);
  --shadow-md: 0 4px 12px rgba(15, 23, 42, 0.08);
  --shadow-lg: 0 8px 25px rgba(15, 23, 42, 0.1);
  --shadow-xl: 0 20px 45px rgba(15, 23, 42, 0.12);

  /* Rayons de bordure */
  --border-radius-sm: 8px;
  --border-radius-md: 12px;
  --border-radius-lg: 16px;
  --border-radius-xl: 24px;
  --border-radius-full: 9999px;

  /* Transitions */
  --transition-fast: 200ms cubic-bezier(0.4, 0, 0.2, 1);
  --transition-normal: 350ms cubic-bezier(0.4, 0, 0.2, 1);
  --transition-slow: 500ms cubic-bezier(0.4, 0, 0.2, 1);
  
  /* Z-index */
  --z-background: -1;
  --z-default: 1;
  --z-content: 10;
  --z-dropdown: 1000;
  --z-sticky: 1020;
  --z-nav: 1030;
  --z-modal-backdrop: 1040;
  --z-modal: 1050;
  --z-tooltip: 1060;
}

/* ========================================================================
   CORRECTIONS MOBILE CRITIQUES - À AJOUTER EN PRIORITÉ
   ======================================================================== */

/* Reset mobile viewport */
@viewport {
  width: device-width;
  zoom: 1.0;
}

/* Body responsive */
body {
  font-family: var(--font-primary);
  font-size: var(--text-base-size);
  color: var(--text-secondary);
  background-color: var(--bg-primary);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  padding-top: 70px; /* Réduit pour mobile */
  min-width: 320px; /* Largeur minimale */
  overflow-x: hidden; /* Évite le scroll horizontal */
}

/* Navbar mobile corrections */
@media (max-width: 991.98px) {
  body {
    padding-top: 60px; /* Encore plus petit sur mobile */
  }
  
  .navbar.fixed-top {
    padding: 0.5rem 0;
  }
  
  .navbar-brand {
    font-size: 0.9rem;
  }
  
  .brand-logo {
    height: 32px;
  }
}

/* Corrections conteneurs */
.container-fluid {
  max-width: 100vw;
  padding-right: 15px;
  padding-left: 15px;
  margin-right: auto;
  margin-left: auto;
}

@media (max-width: 767.98px) {
  .container-fluid {
    padding-right: 10px;
    padding-left: 10px;
  }
  
  body {
    padding-top: 55px;
  }
}

/* Hero section mobile */
@media (max-width: 767.98px) {
  .hero-premium {
    min-height: 100vh;
    padding: 2rem 0 1rem;
  }
  
  .hero-container {
    grid-template-columns: 1fr;
    gap: 1rem;
    text-align: center;
  }
}

/* Images responsives globales */
img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* Éléments cachés sur mobile */
@media (max-width: 575.98px) {
  .d-none-mobile {
    display: none !important;
  }
}

/* Corrections z-index navbar */
.navbar.fixed-top {
  z-index: 1030 !important;
}

/* Corrections overflow */
html, body {
  overflow-x: hidden;
  width: 100%;
}

/* Corrections touch */
@media (hover: none) and (pointer: coarse) {
  .btn:hover,
  .nav-link:hover,
  .card:hover {
    transform: none;
  }
}

/* ========================================================================
   2. STYLES DE BASE & RÉINITIALISATION
   ======================================================================== */
html {
  scroll-behavior: smooth;
  scroll-padding-top: 100px; /* Espace pour la navbar fixe */
}

body {
  font-family: var(--font-primary);
  font-size: var(--text-base-size);
  color: var(--text-secondary);
  background-color: var(--bg-primary);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  padding-top: 80px; /* Hauteur de la navbar */
}

a {
  color: var(--color-primary);
  text-decoration: none;
  transition: color var(--transition-fast);
}

a:hover {
  color: var(--color-primary-dark);
}

img, video {
  max-width: 100%;
  height: auto;
  display: block;
}

/* ========================================================================
   3. ANIMATIONS GLOBALES
   ======================================================================== */
@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes fadeUp {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes gentleFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-10px); }
}

@keyframes pulseRing {
  0% { transform: scale(0.8); opacity: 1; }
  100% { transform: scale(1.8); opacity: 0; }
}

@keyframes brandGlow {
  0%, 100% { text-shadow: 0 0 8px rgba(255, 69, 0, 0.4); }
  50% { text-shadow: 0 0 16px rgba(255, 69, 0, 0.6); }
}

/* ========================================================================
   4. BARRE DE NAVIGATION (NAVBAR)
   ======================================================================== */
.navbar.fixed-top {
  z-index: var(--z-nav);
  background: rgba(15, 23, 42, 0.65);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  padding: var(--space-2) 0;
  transition: background-color var(--transition-normal), box-shadow var(--transition-normal);
}

.navbar.scrolled {
  background: rgba(15, 23, 42, 0.85);
  box-shadow: var(--shadow-md);
}

.navbar-brand {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}

.brand-logo {
  height: 40px;
  width: auto;
}

.brand-text-premium .brand-primary {
  display: flex;
  align-items: baseline;
  gap: 0.3rem;
  font-weight: 900;
  font-size: 1.2rem;
  line-height: 1;
}

.brand-sb {
  color: var(--color-accent);
  animation: brandGlow 3s ease-in-out infinite;
}

.brand-ingenierie {
  color: var(--color-white);
}

.brand-tagline {
  font-size: 0.7rem;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.8);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.nav-link-premium {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-3);
  border-radius: var(--border-radius-md);
  color: rgba(255, 255, 255, 0.85);
  font-size: 0.88rem;
  font-weight: 600;
  position: relative;
  transition: color var(--transition-fast), background-color var(--transition-fast);
}

.nav-link-premium:hover,
.nav-link-premium.active {
  color: var(--color-white);
  background-color: rgba(255, 255, 255, 0.1);
}

.nav-link-premium.active::after {
  content: '';
  position: absolute;
  bottom: 4px;
  left: 50%;
  transform: translateX(-50%);
  width: 24px;
  height: 2px;
  background-color: var(--color-primary-light);
  border-radius: 1px;
}

.navbar-toggler-premium {
  border: none;
  background-color: rgba(255, 255, 255, 0.1);
  border-radius: var(--border-radius-sm);
  padding: var(--space-2);
}

.hamburger-premium span {
  display: block;
  width: 22px;
  height: 2px;
  margin: 5px 0;
  background-color: var(--color-white);
  transition: var(--transition-normal);
}

.navbar-toggler-premium[aria-expanded="true"] .hamburger-premium span:nth-of-type(1) {
  transform: translateY(7px) rotate(45deg);
}
.navbar-toggler-premium[aria-expanded="true"] .hamburger-premium span:nth-of-type(2) {
  opacity: 0;
}
.navbar-toggler-premium[aria-expanded="true"] .hamburger-premium span:nth-of-type(3) {
  transform: translateY(-7px) rotate(-45deg);
}

.btn-whatsapp-premium {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-4);
  border-radius: var(--border-radius-full);
  background: linear-gradient(135deg, #25d366, #128c7e);
  color: var(--color-white);
  font-weight: 700;
  font-size: 0.88rem;
  box-shadow: var(--shadow-sm);
  transition: transform var(--transition-fast), box-shadow var(--transition-fast);
}

.btn-whatsapp-premium:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}

.pulse-ring {
  position: absolute;
  inset: -2px;
  border: 1.5px solid rgba(255, 255, 255, 0.7);
  border-radius: 50%;
  animation: pulseRing 2s infinite;
  pointer-events: none;
}

/* ========================================================================
   5. SECTION HERO
/* =========================================================================
   CSS PREMIUM HERO SECTION — SB INGÉNIERIE BTP 2025 (VERSION FINALE)
   Optimisé pour bureau d'études technique et ingénierie
   ========================================================================= */

  /* Variables Design System BTP */
  :root {
    /* Palette couleurs industrie BTP 2025 */
    --btp-primary: #1e3a8a;
    --btp-primary-dark: #1e40af;
    --btp-secondary: #3b82f6;
    --btp-accent: #f97316;
    --btp-success: #059669;
    --btp-warning: #d97706;
    --btp-info: #0ea5e9;
    --btp-white: #ffffff;
    --btp-dark: #0f172a;
    --btp-slate: #334155;
    
    /* Grays techniques */
    --gray-50: #f8fafc;
    --gray-100: #f1f5f9;
    --gray-200: #e2e8f0;
    --gray-300: #cbd5e1;
    --gray-400: #94a3b8;
    --gray-500: #64748b;
    --gray-600: #475569;
    --gray-700: #334155;
    --gray-800: #1e293b;
    --gray-900: #0f172a;
    
    /* Gradients BTP premium */
    --gradient-hero: linear-gradient(135deg, #0f172a 0%, #1e3a8a 45%, #3730a3 100%);
    --gradient-mesh: radial-gradient(circle at 50% 50%, rgba(30, 58, 138, 0.12), transparent 60%);
    --gradient-overlay: linear-gradient(135deg, rgba(15, 23, 42, 0.8), rgba(30, 58, 138, 0.6));
    
    /* Typography fluide engineering */
    --text-xs: clamp(0.75rem, 1.2vw, 0.875rem);
    --text-sm: clamp(0.875rem, 1.4vw, 1rem);
    --text-base: clamp(1rem, 1.6vw, 1.125rem);
    --text-lg: clamp(1.125rem, 2vw, 1.25rem);
    --text-xl: clamp(1.25rem, 2.4vw, 1.5rem);
    --text-2xl: clamp(1.5rem, 3vw, 2rem);
    --text-3xl: clamp(1.875rem, 3.5vw, 2.5rem);
    --text-4xl: clamp(2.25rem, 4.5vw, 3.5rem);
    --text-5xl: clamp(3rem, 6vw, 4.5rem);
    
    /* Espacements techniques */
    --space-xs: 0.5rem;
    --space-sm: 0.75rem;
    --space-md: 1rem;
    --space-lg: 1.5rem;
    --space-xl: 2rem;
    --space-2xl: 3rem;
    --space-3xl: 4rem;
    --space-4xl: 6rem;
    
    /* Ombres industrielles */
    --shadow-sm: 0 1px 2px 0 rgba(15, 23, 42, 0.05);
    --shadow-md: 0 4px 6px -1px rgba(15, 23, 42, 0.1);
    --shadow-lg: 0 10px 15px -3px rgba(15, 23, 42, 0.1);
    --shadow-xl: 0 20px 25px -5px rgba(15, 23, 42, 0.15);
    --shadow-2xl: 0 25px 50px -12px rgba(15, 23, 42, 0.25);
    
    /* Rayons modernes */
    --radius-sm: 6px;
    --radius-md: 10px;
    --radius-lg: 16px;
    --radius-xl: 20px;
    --radius-2xl: 24px;
    --radius-full: 9999px;
    
    /* Transitions premium */
    --ease-out: cubic-bezier(0.4, 0, 0.2, 1);
    --ease-bounce: cubic-bezier(0.68, -0.55, 0.265, 1.55);
    --transition-fast: 200ms;
    --transition-normal: 350ms;
    --transition-slow: 500ms;
    
    /* Z-index hierarchy */
    --z-background: 0;
    --z-particles: 5;
    --z-content: 10;
    --z-floating: 15;
    --z-overlay: 20;
    --z-modal: 50;
  }
  
  /* Section Hero principale */
  .hero-premium {
    position: relative;
    min-height: 100vh;
    background: var(--gradient-hero);
    color: var(--btp-white);
    overflow: hidden;
    isolation: isolate;
    padding: var(--space-4xl) 0 var(--space-3xl);
    display: flex;
    align-items: center;
  }
  
  /* Particles et effets de fond */
  .particles-container {
    position: absolute;
    inset: 0;
    z-index: var(--z-particles);
    pointer-events: none;
    opacity: 0.4;
  }
  
  .hero-background {
    position: absolute;
    inset: 0;
    z-index: var(--z-background);
    pointer-events: none;
  }
  
  .gradient-mesh {
    position: absolute;
    border-radius: 50%;
    filter: blur(60px);
    animation: gentleFloat 20s ease-in-out infinite;
    will-change: transform;
  }
  
  .gradient-mesh.primary {
    top: 10%;
    right: 15%;
    width: 400px;
    height: 400px;
    background: var(--gradient-mesh);
    opacity: 0.6;
  }
  
  .gradient-mesh.secondary {
    bottom: 20%;
    left: 10%;
    width: 300px;
    height: 300px;
    background: radial-gradient(circle at 60% 40%, rgba(5, 150, 105, 0.15), transparent 70%);
    opacity: 0.5;
    animation-delay: 10s;
  }
  
  .floating-elements {
    position: absolute;
    inset: 0;
    pointer-events: none;
  }
  
  .floating-element {
    position: absolute;
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(59, 130, 246, 0.08), transparent 60%);
    animation: gentleFloat 15s ease-in-out infinite;
  }
  
  .floating-1 { top: 15%; left: 8%; animation-delay: 0s; }
  .floating-2 { top: 60%; right: 12%; animation-delay: 5s; }
  .floating-3 { bottom: 25%; left: 20%; animation-delay: 10s; }
  .floating-4 { top: 35%; right: 5%; animation-delay: 15s; }
  
  .hero-pattern {
    position: absolute;
    inset: 0;
    background-image: 
      radial-gradient(circle at 25% 25%, rgba(59, 130, 246, 0.05) 1px, transparent 1px),
      radial-gradient(circle at 75% 75%, rgba(16, 185, 129, 0.05) 1px, transparent 1px);
    background-size: 60px 60px;
    opacity: 0.3;
  }
  
  /* Layout principal */
  .container-fluid {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 var(--space-lg);
  }
  
  .hero-container {
    position: relative;
    z-index: var(--z-content);
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-2xl);
    align-items: start;
  }
  
  @media (min-width: 992px) {
    .hero-container {
      grid-template-columns: 1.2fr 0.8fr;
      gap: var(--space-3xl);
      align-items: center;
    }
  }
  
  /* Contenu principal (colonne gauche) */
  .hero-content {
    max-width: 680px;
    position: relative;
  }
  
  /* Badge premium */
  .hero-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--space-sm);
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(20px);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: var(--radius-full);
    padding: var(--space-sm) var(--space-lg);
    margin-bottom: var(--space-xl);
    font-weight: 600;
    font-size: var(--text-sm);
    box-shadow: var(--shadow-lg);
    transition: all var(--transition-normal) var(--ease-out);
  }
  
  .hero-badge:hover {
    transform: translateY(-2px);
    background: rgba(255, 255, 255, 0.15);
    box-shadow: var(--shadow-xl);
  }
  
  .badge-icon {
    width: 24px;
    height: 24px;
    background: linear-gradient(135deg, var(--btp-accent), var(--btp-primary));
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    box-shadow: var(--shadow-sm);
  }
  
  .separator {
    opacity: 0.6;
    margin: 0 var(--space-xs);
  }
  
  .highlight {
    color: var(--btp-accent);
    font-weight: 700;
  }
  
  /* Section titres */
  .hero-title-section {
    margin-bottom: var(--space-2xl);
  }
  
  .hero-title {
    font-size: var(--text-5xl);
    font-weight: 900;
    line-height: 1.1;
    margin: 0 0 var(--space-md);
    letter-spacing: -0.02em;
    text-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
  }
  
  .brand-sb {
    background: linear-gradient(135deg, #ff4500, #ff6b35);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    animation: brandGlow 3s ease-in-out infinite;
  }
  
  .brand-ingenierie {
    color: var(--btp-white);
  }
  
  .hero-subtitle {
    font-size: var(--text-3xl);
    font-weight: 700;
    color: rgba(255, 255, 255, 0.9);
    margin: 0 0 var(--space-lg);
    line-height: 1.3;
  }
  
  .title-decoration {
    display: flex;
    align-items: center;
    gap: var(--space-md);
    margin-bottom: var(--space-xl);
  }
  
  .decoration-line {
    flex: 1;
    height: 2px;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent);
  }
  
  .decoration-dot {
    width: 8px;
    height: 8px;
    background: var(--btp-accent);
    border-radius: 50%;
    animation: pulse 2s infinite;
    box-shadow: 0 0 12px rgba(249, 115, 22, 0.6);
  }
  
  /* Description */
  .hero-description {
    margin-bottom: var(--space-2xl);
  }
  
  .description-text {
    font-size: var(--text-lg);
    line-height: 1.7;
    color: rgba(248, 250, 252, 0.9);
    margin: 0;
    font-weight: 400;
  }
  
  .highlight-accent { color: #60a5fa; font-weight: 600; }
  .highlight-success { color: #34d399; font-weight: 600; }
  .highlight-warning { color: #fbbf24; font-weight: 600; }
  
  /* Features grid - 2 colonnes desktop */
  .hero-features {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-md);
    margin-bottom: var(--space-2xl);
  }
  
  @media (min-width: 768px) {
    .hero-features {
      grid-template-columns: repeat(2, 1fr);
      gap: var(--space-lg);
    }
  }
  
  .feature-card {
    display: flex;
    align-items: flex-start;
    gap: var(--space-md);
    padding: var(--space-lg);
    background: rgba(255, 255, 255, 0.08);
    backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: var(--radius-lg);
    transition: all var(--transition-normal) var(--ease-out);
    cursor: pointer;
    min-height: 120px;
  }
  
  .feature-card:hover,
  .feature-card:focus {
    transform: translateY(-4px);
    background: rgba(255, 255, 255, 0.12);
    box-shadow: var(--shadow-xl);
    outline: none;
  }
  
  .feature-card:focus-visible {
    outline: 2px solid var(--btp-accent);
    outline-offset: 2px;
  }
  
  .feature-icon {
    width: 48px;
    height: 48px;
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    flex-shrink: 0;
    box-shadow: var(--shadow-md);
    transition: transform var(--transition-normal) var(--ease-bounce);
  }
  
  .feature-card:hover .feature-icon {
    transform: scale(1.1) rotate(5deg);
  }
  
  /* Gradients pour les icônes BTP */
  .bg-primary-gradient { 
    background: linear-gradient(135deg, var(--btp-primary), var(--btp-secondary));
  }
  .bg-success-gradient { 
    background: linear-gradient(135deg, #10b981, var(--btp-success));
  }
  .bg-warning-gradient { 
    background: linear-gradient(135deg, #f59e0b, var(--btp-warning));
  }
  .bg-info-gradient { 
    background: linear-gradient(135deg, #06b6d4, var(--btp-info));
  }
  
  .feature-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
  }
  
  .feature-title {
    font-size: var(--text-base);
    font-weight: 700;
    color: white;
    margin: 0 0 var(--space-xs);
    line-height: 1.3;
  }
  
  .feature-desc {
    font-size: var(--text-sm);
    color: rgba(248, 250, 252, 0.8);
    margin: 0;
    line-height: 1.4;
  }
  
  /* CTA Buttons CORRIGÉS pour meilleure visibilité */
  .hero-cta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-lg);
  }
  
  .btn {
    display: inline-flex;
    align-items: center;
    gap: var(--space-sm);
    padding: var(--space-md) var(--space-xl);
    border: none;
    border-radius: var(--radius-full);
    text-decoration: none;
    font-weight: 700;
    font-size: var(--text-base);
    cursor: pointer;
    transition: all var(--transition-normal) var(--ease-out);
    box-shadow: var(--shadow-lg);
    backdrop-filter: blur(8px);
    position: relative;
    overflow: hidden;
    min-height: 56px;
  }
  
  .btn::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
    transform: translateX(-100%);
    transition: transform var(--transition-slow) var(--ease-out);
  }
  
  .btn:hover::before {
    transform: translateX(100%);
  }
  
  /* CORRECTION: Bouton calculateur avec contraste élevé */
  .btn-primary {
    background: linear-gradient(135deg, var(--btp-accent), #ea580c);
    color: white;
    border: 1px solid rgba(255, 255, 255, 0.3);
    box-shadow: 0 4px 20px rgba(249, 115, 22, 0.3);
  }
  
  .btn-primary:hover {
    transform: translateY(-3px) scale(1.05);
    box-shadow: 0 8px 32px rgba(249, 115, 22, 0.4);
    background: linear-gradient(135deg, #ea580c, #dc2626);
  }
  
  .btn-success {
    background: linear-gradient(135deg, #25d366, #128c7e);
    color: white;
    border: 1px solid rgba(255, 255, 255, 0.2);
  }
  
  .btn-success:hover {
    transform: translateY(-3px) scale(1.05);
    box-shadow: var(--shadow-2xl);
  }
  
  .btn-content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
  }
  
  .btn-text {
    font-weight: 700;
    line-height: 1.2;
  }
  
  .btn-subtitle {
    font-size: var(--text-xs);
    opacity: 0.9;
    font-weight: 400;
  }
  
  /* Colonne visuelle (droite) */
  .hero-visual {
    position: relative;
    display: flex;
    justify-content: center;
    z-index: var(--z-content);
  }
  
  .hero-visual-wrapper {
    position: relative;
    width: 100%;
    max-width: 520px;
  }
  
  .hero-image-container {
    position: relative;
    background: linear-gradient(135deg, rgba(59, 130, 246, 0.1), rgba(30, 58, 138, 0.05));
    border-radius: var(--radius-2xl);
    padding: 12px;
    backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    margin-bottom: var(--space-lg);
  }
  
  .hero-image-wrapper {
    position: relative;
    aspect-ratio: 4/3;
    border-radius: var(--radius-xl);
    overflow: hidden;
    background: linear-gradient(135deg, #0f172a, #1e293b);
    box-shadow: var(--shadow-2xl);
    border: 2px solid rgba(59, 130, 246, 0.2);
    transition: all var(--transition-normal) var(--ease-out);
  }
  
  .hero-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: all var(--transition-normal) var(--ease-out);
  }
  
  /* Overlay CTA sur image */
  .hero-cta-image-overlay {
    position: absolute;
    inset: 0;
    background: var(--gradient-overlay);
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: inherit;
    opacity: 1;
    transition: opacity var(--transition-normal) var(--ease-out);
    z-index: var(--z-overlay);
  }
  
  @media (hover: hover) {
    .hero-cta-image-overlay {
      opacity: 0;
    }
    
    .hero-image-wrapper:hover .hero-cta-image-overlay {
      opacity: 1;
    }
    
    .hero-image-wrapper:hover {
      transform: translateY(-4px) scale(1.02);
      border-color: rgba(59, 130, 246, 0.4);
      box-shadow: 0 32px 64px rgba(30, 58, 138, 0.3);
    }
    
    .hero-image-wrapper:hover .hero-image {
      transform: scale(1.1);
      filter: brightness(1.1) contrast(1.1);
    }
  }
  
  .btn-overlay-hero {
    padding: var(--space-sm) var(--space-lg);
    background: linear-gradient(135deg, var(--btp-accent), #ea580c);
    color: white;
    border: none;
    border-radius: var(--radius-full);
    font-weight: 700;
    font-size: var(--text-sm);
    cursor: pointer;
    transition: all var(--transition-normal) var(--ease-out);
    box-shadow: var(--shadow-lg);
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
  }
  
  .btn-overlay-hero:hover {
    transform: translateY(-2px) scale(1.05);
    box-shadow: var(--shadow-xl);
  }
  
  /* Tech frame */
  .tech-frame {
    position: absolute;
    inset: -4px;
    pointer-events: none;
    z-index: 2;
  }
  
  .frame-corner {
    position: absolute;
    width: 20px;
    height: 20px;
    border: 2px solid rgba(59, 130, 246, 0.4);
    transition: all var(--transition-normal) var(--ease-out);
  }
  
  .corner-tl { top: 0; left: 0; border-right: none; border-bottom: none; }
  .corner-tr { top: 0; right: 0; border-left: none; border-bottom: none; }
  .corner-bl { bottom: 0; left: 0; border-right: none; border-top: none; }
  .corner-br { bottom: 0; right: 0; border-left: none; border-top: none; }
  
  .hero-image-wrapper:hover .frame-corner {
    border-color: rgba(59, 130, 246, 0.8);
    transform: scale(1.1);
  }
  
/* Floating stats - Container principal */
.floating-stats {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 999;
}

/* Styles communs pour les cartes flottantes */
.floating-card {
  position: absolute;
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(15px);
  color: var(--gray-800);
  padding: 8px 12px;
  border-radius: 14px;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.12);
  display: flex;
  align-items: center;
  gap: 10px;
  border: 1px solid rgba(255, 255, 255, 0.3);
  font-weight: 700;
  font-size: 12px;
  pointer-events: auto;
  transition: all 0.3s ease;
  user-select: none;
  cursor: default;
  font-family: 'Inter', sans-serif;
  animation: gentleFloat 12s ease-in-out infinite;
}

.floating-card:hover {
  transform: translateY(-4px) scale(1.05);
  box-shadow: 0 14px 38px rgba(0, 0, 0, 0.2);
  backdrop-filter: blur(20px);
  animation-play-state: paused;
}

/* 📍 CARD PROJECTS - En haut à droite */
.card-projects {
  top: 16px;
  right: 16px;
  width: 120px;
  height: 52px;
  animation-delay: 2s;
}

/* 📍 CARD VALUE - En bas à gauche */  
.card-value {
  bottom: 16px;
  left: 16px;
  width: 120px;
  height: 52px;
  animation-delay: 6s;
}

/* Icônes des cartes */
.card-icon {
  width: 22px !important;
  height: 22px !important;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: white;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

/* Contenu des cartes */
.card-data {
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex-grow: 1;
}

.card-number {
  font-size: 18px;
  font-weight: 900;
  color: var(--gray-900);
  line-height: 1.1;
  margin: 0;
}

.card-label {
  font-size: 9px;
  font-weight: 600;
  color: var(--gray-600);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin: 2px 0 0 0;
}

/* Gradients pour les icônes */
.bg-primary-gradient {
  background: linear-gradient(135deg, #3b82f6, #1e40af);
}

.bg-success-gradient {
  background: linear-gradient(135deg, #10b981, #059669);
}

/* Icône Projects (stack de documents) */
.icon-projects-modern {
  width: 18px;
  height: 18px;
  position: relative;
}

.projects-stack {
  width: 18px;
  height: 18px;
  position: relative;
}

.project-layer {
  position: absolute;
  width: 10px;
  height: 6px;
  background: rgba(255, 255, 255, 0.9);
  border-radius: 1px;
  border: 1px solid rgba(255, 255, 255, 1);
}

.project-layer:nth-child(1) {
  top: 0;
  left: 0;
  background: rgba(255, 255, 255, 1);
  z-index: 3;
}

.project-layer:nth-child(2) {
  top: 2px;
  left: 2px;
  background: rgba(255, 255, 255, 0.8);
  z-index: 2;
}

.project-layer:nth-child(3) {
  top: 4px;
  left: 4px;
  background: rgba(255, 255, 255, 0.6);
  z-index: 1;
}

/* Icône Value (coin DH avec sparkles) */
.icon-value-modern {
  width: 18px;
  height: 18px;
  position: relative;
}

.value-coin {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.95);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 9px;
  font-weight: 800;
  color: #059669;
  border: 1px solid rgba(255, 255, 255, 1);
}

.value-sparkles {
  position: absolute;
  inset: 0;
}

.sparkle {
  position: absolute;
  width: 2px;
  height: 2px;
  background: rgba(255, 255, 255, 0.8);
  border-radius: 50%;
  animation: sparkleGlow 2s ease-in-out infinite;
}

.sparkle:nth-child(1) {
  top: 1px;
  right: 2px;
  animation-delay: 0s;
}

.sparkle:nth-child(2) {
  bottom: 2px;
  left: 1px;
  animation-delay: 0.7s;
}

.sparkle:nth-child(3) {
  top: 6px;
  right: 0px;
  animation-delay: 1.4s;
}

/* Animations */
@keyframes gentleFloat {
  0%, 100% { 
    transform: translateY(0); 
  }
  50% { 
    transform: translateY(-8px); 
  }
}

@keyframes sparkleGlow {
  0%, 100% { 
    opacity: 0; 
    transform: scale(0); 
  }
  50% { 
    opacity: 1; 
    transform: scale(1.2); 
  }
}

/* Responsive Design */
@media (max-width: 768px) {
  .card-projects {
    top: 14px;
    right: 14px;
    width: 100px;
    height: 44px;
    padding: 6px 10px;
  }
  
  .card-value {
    bottom: 14px;
    left: 14px;
    width: 100px;
    height: 44px;
    padding: 6px 10px;
  }
  
  .card-icon {
    width: 24px;
    height: 24px;
  }
  
  .card-number {
    font-size: 16px;
  }
  
  .card-label {
    font-size: 8px;
  }
  
  .value-coin {
    width: 14px;
    height: 14px;
    font-size: 8px;
  }
  
  .project-layer {
    width: 8px;
    height: 5px;
  }
}

@media (max-width: 480px) {
  .floating-stats {
    display: none;
  }
}

  /* Dashboard performance */
  .performance-dashboard {
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(20px);
    border-radius: var(--radius-xl);
    border: 1px solid rgba(255, 255, 255, 0.2);
    box-shadow: var(--shadow-xl);
    padding: var(--space-lg);
    color: var(--gray-800);
    position: relative;
    overflow: hidden;
    margin-top: var(--space-lg);
  }
  
  .performance-dashboard::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--btp-primary), var(--btp-accent), var(--btp-success), var(--btp-info));
    animation: gradientFlow 3s ease-in-out infinite;
  }
  
  .dashboard-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--space-lg);
    padding-bottom: var(--space-md);
    border-bottom: 1px solid rgba(15, 23, 42, 0.1);
  }
  
  .dashboard-title {
    font-size: var(--text-lg);
    font-weight: 700;
    color: var(--btp-primary);
    margin: 0;
    display: flex;
    align-items: center;
    gap: var(--space-sm);
  }
  
  .status-online {
    display: flex;
    align-items: center;
    gap: var(--space-xs);
    font-size: var(--text-xs);
    font-weight: 600;
    color: var(--btp-success);
    background: rgba(5, 150, 105, 0.1);
    padding: 4px var(--space-sm);
    border-radius: var(--radius-md);
    border: 1px solid rgba(5, 150, 105, 0.2);
  }
  
  .status-dot {
    width: 6px;
    height: 6px;
    background: var(--btp-success);
    border-radius: 50%;
    animation: pulse 2s infinite;
  }
  
  .dashboard-metrics {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-md);
  }
  
  .metric-item {
    text-align: center;
    padding: var(--space-md);
    background: rgba(59, 130, 246, 0.05);
    border-radius: var(--radius-md);
    border: 1px solid rgba(59, 130, 246, 0.1);
    transition: all var(--transition-normal) var(--ease-out);
  }
  
  .metric-item:hover {
    background: rgba(59, 130, 246, 0.1);
    transform: translateY(-2px);
  }
  
  .metric-icon-wrapper {
    margin-bottom: var(--space-xs);
    display: flex;
    justify-content: center;
  }
  
  .metric-content {
    display: flex;
    flex-direction: column;
    gap: 2px;
  }
  
  .metric-value {
    font-size: var(--text-lg);
    font-weight: 900;
    color: var(--btp-primary);
    margin: 0;
  }
  
  .metric-label {
    font-size: var(--text-xs);
    font-weight: 600;
    color: var(--gray-600);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: 0;
  }
  
  /* Scroll indicator */
  .scroll-indicator {
    position: absolute;
    bottom: var(--space-xl);
    left: 50%;
    transform: translateX(-50%);
    text-decoration: none;
    color: rgba(255, 255, 255, 0.7);
    transition: all var(--transition-normal) var(--ease-out);
    animation: bounce 2s infinite;
  }
  
  .scroll-indicator:hover {
    color: white;
    transform: translateX(-50%) translateY(-4px);
  }
  
  .scroll-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-sm);
  }
  
  .scroll-text {
    font-size: var(--text-sm);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
  }
  
  .scroll-line {
    width: 2px;
    height: 40px;
    background: linear-gradient(to bottom, currentColor, transparent);
  }
  
  /* =========================================================================
     ICÔNES MODERNES CSS - DESIGN PREMIUM BTP 2025 (CORRIGÉES)
     ========================================================================= */
  
  /* Icône Award moderne */
  .icon-award-modern {
    width: 20px;
    height: 20px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  
  .award-center {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.9);
    position: relative;
    z-index: 2;
  }
  
  .award-rays {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: 
      conic-gradient(from 0deg, 
        transparent 0deg, rgba(255, 255, 255, 0.3) 30deg, transparent 60deg,
        transparent 90deg, rgba(255, 255, 255, 0.3) 120deg, transparent 150deg,
        transparent 180deg, rgba(255, 255, 255, 0.3) 210deg, transparent 240deg,
        transparent 270deg, rgba(255, 255, 255, 0.3) 300deg, transparent 330deg
      );
    animation: rotate 3s linear infinite;
  }
  
  /* Icône Shield moderne */
  .icon-shield-modern {
    width: 18px;
    height: 22px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  
  .shield-body {
    width: 18px;
    height: 22px;
    background: rgba(255, 255, 255, 0.9);
    border-radius: 9px 9px 50% 50%;
    position: relative;
  }
  
  .shield-checkmark {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: var(--btp-primary);
    font-size: 12px;
    font-weight: bold;
    z-index: 2;
  }
  
  /* Icône Cube BIM moderne CORRIGÉE - Plus visible */
  .icon-cube-modern {
    width: 20px;
    height: 20px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  
  .cube-face {
    position: absolute;
    border-radius: 2px;
  }
  
  .face-top {
    width: 16px;
    height: 16px;
    background: rgba(255, 255, 255, 1);
    transform: perspective(50px) rotateX(45deg);
    top: 0;
    left: 2px;
    border: 1px solid rgba(255, 255, 255, 0.8);
  }
  
  .face-left {
    width: 8px;
    height: 16px;
    background: rgba(255, 255, 255, 0.7);
    transform: perspective(50px) rotateY(-45deg);
    top: 4px;
    left: -2px;
    border: 1px solid rgba(255, 255, 255, 0.6);
  }
  
  .face-right {
    width: 8px;
    height: 16px;
    background: rgba(255, 255, 255, 0.8);
    transform: perspective(50px) rotateY(45deg);
    top: 4px;
    right: -2px;
    border: 1px solid rgba(255, 255, 255, 0.7);
  }
  
  /* Alternative plus simple pour BIM si 3D ne marche pas */
  .icon-cube-simple {
    width: 18px;
    height: 18px;
    position: relative;
    background: rgba(255, 255, 255, 0.9);
    border-radius: 3px;
    border: 2px solid rgba(255, 255, 255, 1);
  }
  
  .icon-cube-simple::before {
    content: '';
    position: absolute;
    top: -4px;
    right: -4px;
    width: 16px;
    height: 16px;
    background: rgba(255, 255, 255, 0.7);
    border: 2px solid rgba(255, 255, 255, 0.8);
    border-radius: 2px;
    z-index: -1;
  }
  
  .icon-cube-simple::after {
    content: '';
    position: absolute;
    top: 2px;
    left: 2px;
    width: 6px;
    height: 6px;
    background: var(--btp-success);
    border-radius: 1px;
  }
  
  /* Icône Clock moderne */
  .icon-clock-modern {
    width: 20px;
    height: 20px;
    position: relative;
  }
  
  .clock-face {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.9);
    position: relative;
    border: 2px solid rgba(255, 255, 255, 1);
  }
  
  .clock-hand {
    position: absolute;
    background: var(--btp-warning);
    border-radius: 2px;
    transform-origin: bottom;
  }
  
  .hour-hand {
    width: 2px;
    height: 6px;
    top: 4px;
    left: 9px;
    transform: rotate(45deg);
  }
  
  .minute-hand {
    width: 1px;
    height: 8px;
    top: 2px;
    left: 9.5px;
    transform: rotate(90deg);
  }
  
  .clock-center {
    position: absolute;
    top: 8px;
    left: 8px;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--btp-warning);
    z-index: 3;
  }
  
  /* Icône Medal moderne */
  .icon-medal-modern {
    width: 20px;
    height: 24px;
    position: relative;
  }
  
  .medal-circle {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.9);
    position: absolute;
    top: 0;
    left: 2px;
    border: 2px solid rgba(255, 255, 255, 1);
  }
  
  .medal-ribbon-left,
  .medal-ribbon-right {
    width: 4px;
    height: 12px;
    background: rgba(255, 255, 255, 0.7);
    position: absolute;
    top: 12px;
  }
  
  .medal-ribbon-left {
    left: 4px;
    transform: rotate(-15deg);
    border-radius: 0 0 2px 2px;
  }
  
  .medal-ribbon-right {
    right: 4px;
    transform: rotate(15deg);
    border-radius: 0 0 2px 2px;
  }
  
  .medal-star {
    position: absolute;
    top: 3px;
    left: 7px;
    color: var(--btp-info);
    font-size: 10px;
    z-index: 2;
    font-weight: bold;
  }
  
  /* Icône Calculator moderne */
  .icon-calculator-modern {
    width: 16px;
    height: 20px;
    position: relative;
  }
  
  .calc-body {
    width: 16px;
    height: 20px;
    background: rgba(255, 255, 255, 0.9);
    border-radius: 3px;
    position: relative;
    border: 1px solid rgba(255, 255, 255, 1);
  }
  
  .calc-screen {
    width: 12px;
    height: 4px;
    background: var(--btp-primary);
    border-radius: 1px;
    position: absolute;
    top: 2px;
    left: 2px;
  }
  
  .calc-buttons {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1px;
    position: absolute;
    bottom: 2px;
    left: 2px;
    width: 12px;
  }
  
  .calc-btn {
    width: 2.5px;
    height: 2px;
    background: var(--btp-primary);
    border-radius: 0.5px;
  }
  
  /* Icône WhatsApp moderne */
  .icon-whatsapp-modern {
    width: 20px;
    height: 20px;
    position: relative;
  }
  
  .wa-circle {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.9);
    position: relative;
    border: 2px solid rgba(255, 255, 255, 1);
  }
  
  .wa-phone {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 12px;
  }
  
  /* Icônes Dashboard avec meilleur contraste */
  .icon-chart-modern {
    width: 20px;
    height: 16px;
    position: relative;
  }
  
  .chart-line {
    width: 100%;
    height: 100%;
    position: relative;
  }
  
  .line-point {
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--btp-accent);
    position: absolute;
    border: 1px solid white;
  }
  
  .point-1 { bottom: 2px; left: 2px; }
  .point-2 { bottom: 8px; left: 8px; }
  .point-3 { bottom: 12px; right: 2px; }
  
  .trend-line {
    position: absolute;
    bottom: 4px;
    left: 4px;
    right: 4px;
    height: 2px;
    background: linear-gradient(45deg, var(--btp-accent), var(--btp-primary));
    border-radius: 1px;
  }
  
  /* Icônes métriques dashboard améliorées */
  .icon-quality-modern,
  .icon-speed-modern,
  .icon-compliance-modern {
    width: 24px;
    height: 24px;
    position: relative;
  }
  
  .quality-badge {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--btp-success), #10b981);
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid rgba(255, 255, 255, 0.3);
  }
  
  .badge-checkmark {
    color: white;
    font-size: 14px;
    font-weight: bold;
  }
  
  .speed-gauge {
    width: 24px;
    height: 12px;
    border: 3px solid var(--btp-warning);
    border-bottom: none;
    border-radius: 24px 24px 0 0;
    position: relative;
    background: rgba(255, 255, 255, 0.1);
  }
  
  .gauge-needle {
    position: absolute;
    bottom: -2px;
    left: 50%;
    width: 2px;
    height: 10px;
    background: var(--btp-warning);
    border-radius: 1px;
    transform-origin: bottom;
    transform: translateX(-50%) rotate(30deg);
  }
  
  .gauge-center {
    position: absolute;
    bottom: -3px;
    left: 50%;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--btp-warning);
    transform: translateX(-50%);
    border: 1px solid white;
  }
  
  .compliance-shield {
    width: 24px;
    height: 24px;
    background: linear-gradient(135deg, var(--btp-info), #0ea5e9);
    border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid rgba(255, 255, 255, 0.3);
  }
  
  .shield-text {
    color: white;
    font-size: 8px;
    font-weight: bold;
  }
  
  /* Icônes floating stats améliorées */
  .icon-projects-modern {
    width: 20px;
    height: 20px;
    position: relative;
  }
  
  .projects-stack {
    width: 20px;
    height: 20px;
    position: relative;
  }
  
  .project-layer {
    position: absolute;
    width: 12px;
    height: 8px;
    background: rgba(255, 255, 255, 0.9);
    border-radius: 2px;
    border: 1px solid rgba(255, 255, 255, 1);
  }
  
  .project-layer:nth-child(1) {
    top: 0;
    left: 0;
    background: rgba(255, 255, 255, 1);
  }
  
  .project-layer:nth-child(2) {
    top: 3px;
    left: 3px;
    background: rgba(255, 255, 255, 0.8);
  }
  
  .project-layer:nth-child(3) {
    top: 6px;
    left: 6px;
    background: rgba(255, 255, 255, 0.6);
  }
  
  .icon-value-modern {
    width: 20px;
    height: 20px;
    position: relative;
  }
  
  .value-coin {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.9);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: 800;
    color: var(--btp-success);
    border: 2px solid rgba(255, 255, 255, 1);
  }
  
  .value-sparkles {
    position: absolute;
    inset: 0;
  }
  
  .sparkle {
    position: absolute;
    width: 1.5px;
    height: 1.5px;
    background: rgba(255, 255, 255, 0.8);
    border-radius: 50%;
    animation: sparkle 2s ease-in-out infinite;
  }
  
  .sparkle:nth-child(1) {
    top: 2px;
    right: 4px;
    animation-delay: 0s;
  }
  
  .sparkle:nth-child(2) {
    bottom: 3px;
    left: 2px;
    animation-delay: 0.7s;
  }
  
  .sparkle:nth-child(3) {
    top: 8px;
    right: 1px;
    animation-delay: 1.4s;
  }
  
  /* Animations */
  @keyframes gentleFloat {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-12px); }
  }
  
  @keyframes brandGlow {
    0%, 100% { text-shadow: 0 0 20px rgba(249, 115, 22, 0.5); }
    50% { text-shadow: 0 0 30px rgba(249, 115, 22, 0.8); }
  }
  
  @keyframes pulse {
    0%, 100% { transform: scale(1); opacity: 1; }
    50% { transform: scale(1.2); opacity: 0.7; }
  }
  
  @keyframes bounce {
    0%, 20%, 50%, 80%, 100% { transform: translateY(0); }
    40% { transform: translateY(-10px); }
    60% { transform: translateY(-5px); }
  }
  
  @keyframes gradientFlow {
    0%, 100% { background: linear-gradient(90deg, var(--btp-primary), var(--btp-accent), var(--btp-success), var(--btp-info)); }
    50% { background: linear-gradient(90deg, var(--btp-accent), var(--btp-success), var(--btp-info), var(--btp-primary)); }
  }
  
  @keyframes rotate {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
  }
  
  @keyframes sparkle {
    0%, 100% { opacity: 0; transform: scale(0); }
    50% { opacity: 1; transform: scale(1); }
  }
  
  /* Améliorations hover pour les icônes */
  .feature-card:hover .icon-award-modern .award-rays {
    animation-duration: 1s;
  }
  
  .feature-card:hover .icon-cube-modern {
    animation: cubeRotate 2s ease-in-out infinite;
  }
  
  @keyframes cubeRotate {
    0%, 100% { transform: rotateX(0deg) rotateY(0deg); }
    50% { transform: rotateX(15deg) rotateY(15deg); }
  }
  
  .feature-card:hover .icon-clock-modern .hour-hand {
    animation: clockTick 1s ease-in-out infinite;
  }
  
  .feature-card:hover .icon-clock-modern .minute-hand {
    animation: clockTick 1s ease-in-out infinite reverse;
  }
  
  @keyframes clockTick {
    0%, 100% { transform: rotate(45deg); }
    50% { transform: rotate(135deg); }
  }
  
  .floating-card:hover .value-sparkles .sparkle {
    animation-duration: 0.5s;
  }
  
  /* Responsive Design */
  @media (max-width: 991.98px) {
    .hero-premium {
      padding: var(--space-3xl) 0 var(--space-2xl);
      text-align: center;
    }
    
    .hero-container {
      grid-template-columns: 1fr;
      gap: var(--space-2xl);
    }
    
    .hero-features {
      grid-template-columns: 1fr;
      max-width: 600px;
      margin-inline: auto;
    }
    
    .floating-card,
    .performance-dashboard {
      display: none;
    }
  }
  
  @media (max-width: 767.98px) {
    .container-fluid {
      padding: 0 var(--space-md);
    }
    
    .hero-premium {
      padding: var(--space-2xl) 0;
      min-height: 100svh;
    }
    
    .hero-container {
      gap: var(--space-xl);
    }
    
    .hero-title {
      font-size: var(--text-4xl);
    }
    
    .hero-subtitle {
      font-size: var(--text-2xl);
    }
    
    .hero-cta {
      flex-direction: column;
      align-items: stretch;
    }
    
    .btn {
      justify-content: center;
      min-height: 52px;
    }
    
    .tech-frame,
    .scroll-indicator {
      display: none;
    }
  }
  
  @media (max-width: 639.98px) {
    .hero-features {
      grid-template-columns: 1fr;
    }
    
    .feature-card {
      padding: var(--space-md);
      min-height: auto;
    }
    
    .feature-icon {
      width: 40px;
      height: 40px;
    }
  }
  
  /* Optimisations performance */
  .hero-premium *,
  .hero-premium *::before,
  .hero-premium *::after {
    box-sizing: border-box;
  }
  
  /* Accessibility */
  @media (prefers-reduced-motion: reduce) {
    .hero-premium *,
    .hero-premium *::before,
    .hero-premium *::after {
      animation-duration: 0.01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: 0.01ms !important;
    }
  }
  
  /* Focus management */
  .hero-premium :focus {
    outline: 2px solid var(--btp-accent);
    outline-offset: 2px;
  }
  
  .hero-premium :focus:not(:focus-visible) {
    outline: none;
  }
  
  /* Print styles */
  @media print {
    .hero-premium {
      background: white !important;
      color: black !important;
      min-height: auto !important;
    }
    
    .particles-container,
    .hero-background,
    .floating-stats,
    .performance-dashboard,
    .scroll-indicator {
      display: none !important;
    }
  }
  

/* =========================================================================
   CSS PREMIUM SECTION À PROPOS — SB INGÉNIERIE BTP 2025 (VERSION FINALE)
   Design cohérent avec la section hero, optimisé pour bureau d'études
   ========================================================================= */

/* =========================================================================
   CSS PREMIUM SECTION À PROPOS — SB INGÉNIERIE BTP 2025 (VERSION CORRIGÉE)
   Design moderne, timeline optimisée, responsive mobile parfait
   ========================================================================= */

/* =========================================================================
   CSS FINAL OPTIMISÉ - SECTION À PROPOS SB INGÉNIERIE 2025
   Mise en page en colonnes responsive parfaite pour desktop & mobile
   ========================================================================= */

:root {
  /* Couleurs */
  --color-white: #ffffff;
  --color-gray-50: #f8fafc;
  --color-gray-100: #f1f5f9;
  --color-gray-200: #e2e8f0;
  --color-gray-400: #94a3b8;
  --color-gray-500: #6b7280;
  --color-gray-600: #475569;
  --color-gray-700: #334155;
  --color-gray-800: #1e293b;
  --color-gray-900: #0f172a;

  --color-primary: #1e40af;
  --color-primary-light: #3b82f6;
  --color-primary-dark: #1e3a8a;
  --color-accent: #f97316;
  --color-success: #10b981;
  --color-warning: #f59e0b;
  --color-info: #0ea5e9;

  /* Espacements */
  --space-xs: 0.25rem;
  --space-sm: 0.5rem;
  --space-md: 1rem;
  --space-lg: 1.5rem;
  --space-xl: 2rem;
  --space-2xl: 2.5rem;
  --space-3xl: 3rem;
  --space-4xl: 4rem;
  --space-5xl: 5rem;

  /* Bordures */
  --radius-sm: 0.375rem;
  --radius-md: 0.75rem;
  --radius-lg: 1rem;
  --radius-xl: 1.5rem;
  --radius-2xl: 2rem;
  --radius-3xl: 3rem;
  --radius-full: 50rem;

  /* Ombres */
  --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.06);
  --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.1);
  --shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.15);
  --shadow-xl: 0 20px 25px rgba(0, 0, 0, 0.2);
  --shadow-2xl: 0 25px 50px rgba(0, 0, 0, 0.25);

  /* Transitions */
  --transition-fast: all 0.15s cubic-bezier(0.4, 0, 0.2, 1);
  --transition-normal: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  --transition-slow: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

/* ===== BASE ===== */
*,
*::before,
*::after {
  box-sizing: border-box;
}

/* ===== SECTION PRINCIPALE ===== */
.about-section {
  position: relative;
  background: linear-gradient(135deg, var(--color-gray-50), var(--color-gray-100) 50%, var(--color-gray-50) 100%);
  padding: var(--space-5xl) 0;
  overflow: hidden;
  isolation: isolate;
  color: var(--color-gray-900);
  font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

/* ===== BACKGROUND EFFECTS ===== */
.about-background {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}

.gradient-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(100px);
  animation: gentleFloat 30s ease-in-out infinite;
  will-change: transform;
}

.orb-1 {
  top: 10%;
  right: 20%;
  width: 400px;
  height: 400px;
  background: radial-gradient(circle, rgba(30, 58, 138, 0.08), transparent 70%);
  opacity: 0.6;
}

.orb-2 {
  bottom: 15%;
  left: 15%;
  width: 350px;
  height: 350px;
  background: radial-gradient(circle, rgba(16, 185, 129, 0.06), transparent 70%);
  opacity: 0.5;
  animation-delay: 15s;
}

.about-pattern {
  position: absolute;
  inset: 0;
  background-image: 
    radial-gradient(circle at 20% 80%, rgba(249, 115, 22, 0.03) 1px, transparent 1px),
    radial-gradient(circle at 80% 20%, rgba(30, 58, 138, 0.03) 1px, transparent 1px);
  background-size: 60px 60px;
  opacity: 0.4;
}

/* ===== CONTAINER PRINCIPAL ===== */
.container {
  position: relative;
  z-index: 10;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 var(--space-lg);
}

/* ===== HEADER SECTION ===== */
.section-header {
  margin-bottom: var(--space-5xl);
  text-align: center;
}

.section-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--space-sm);
  background: rgba(255, 255, 255, 0.8);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(30, 58, 138, 0.2);
  border-radius: var(--radius-full);
  padding: var(--space-sm) var(--space-lg);
  margin-bottom: var(--space-xl);
  font-weight: 600;
  font-size: 0.875rem;
  color: var(--color-primary);
  box-shadow: var(--shadow-md);
  transition: var(--transition-normal);
  cursor: default;
}

.section-badge:hover {
  transform: translateY(-3px);
  background: rgba(255, 255, 255, 0.95);
  box-shadow: var(--shadow-lg);
  border-color: var(--color-primary);
}

.section-title {
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 900;
  line-height: 1.1;
  margin: 0 0 var(--space-xl);
  color: var(--color-gray-900);
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.text-primary {
  color: var(--color-primary) !important;
}

.text-success {
  color: var(--color-success) !important;
}

.text-warning {
  color: var(--color-warning) !important;
}

.text-info {
  color: var(--color-info) !important;
}

.section-subtitle {
  font-size: clamp(1rem, 2.5vw, 1.25rem);
  line-height: 1.7;
  color: var(--color-gray-600);
  max-width: 900px;
  margin: 0 auto var(--space-2xl);
}

/* ===== CERTIFICATIONS ===== */
.certifications-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--space-xl);
  margin-top: var(--space-3xl);
  max-width: 1200px;
  margin-inline: auto;
  justify-items: center;
}

.cert-badge {
  display: flex;
  align-items: center;
  gap: var(--space-lg);
  padding: var(--space-xl);
  background: var(--color-white);
  border-radius: var(--radius-2xl);
  box-shadow: var(--shadow-md);
  border: 2px solid transparent;
  transition: var(--transition-normal);
  cursor: default;
  width: 100%;
  max-width: 300px;
  position: relative;
  overflow: hidden;
}

.cert-badge::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, var(--color-primary), var(--color-primary-light));
  opacity: 0;
  transition: var(--transition-normal);
  z-index: -1;
}

.cert-badge:hover {
  transform: translateY(-6px) scale(1.02);
  box-shadow: var(--shadow-xl);
  border-color: var(--color-primary);
}

.cert-badge:hover::before {
  opacity: 0.05;
}

.cert-badge i {
  font-size: 2.5rem;
  flex-shrink: 0;
  transition: var(--transition-normal);
}

.cert-badge:hover i {
  transform: scale(1.1) rotate(5deg);
}

.cert-content {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  flex: 1;
}

.cert-number {
  font-size: clamp(1.25rem, 4vw, 1.75rem);
  font-weight: 900;
  color: var(--color-gray-900);
  line-height: 1;
}

.cert-label {
  font-size: clamp(0.75rem, 2vw, 0.875rem);
  font-weight: 600;
  color: var(--color-gray-600);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* Correction 5 ingénieurs */
.cert-badge:nth-child(2) .cert-number {
  position: relative;
  font-size: 0;
}

.cert-badge:nth-child(2) .cert-number::before {
  content: "5";
  position: absolute;
  top: 0;
  left: 0;
  font-size: clamp(1.25rem, 4vw, 1.75rem);
  font-weight: 900;
  color: var(--color-gray-900);
  line-height: 1;
}

/* ===== CONTENU PRINCIPAL ===== */
.about-main-content {
  margin-bottom: var(--space-5xl);
}

/* ===== BOOTSTRAP GRID FIXES ===== */
.row {
  display: flex;
  flex-wrap: wrap;
  margin-left: calc(-1 * var(--space-lg));
  margin-right: calc(-1 * var(--space-lg));
}

.g-5 > * {
  padding-left: var(--space-lg);
  padding-right: var(--space-lg);
  margin-bottom: var(--space-3xl);
}

.col-lg-6 {
  flex: 0 0 100%;
  max-width: 100%;
}

@media (min-width: 992px) {
  .col-lg-6 {
    flex: 0 0 50%;
    max-width: 50%;
  }
}

.align-items-center {
  align-items: center;
}

.text-center {
  text-align: center;
}

.me-2 {
  margin-right: var(--space-sm);
}

.me-3 {
  margin-right: var(--space-md);
}

.mb-3 {
  margin-bottom: var(--space-md);
}

.fs-1 {
  font-size: 2.5rem;
}

.fw-bold {
  font-weight: 700;
}

.text-muted {
  color: var(--color-gray-500);
}

/* ===== CONTENU ARTICLE ===== */
.about-content {
  display: flex;
  flex-direction: column;
  gap: var(--space-3xl);
}

.content-title {
  font-size: clamp(1.5rem, 3vw, 1.875rem);
  font-weight: 800;
  color: var(--color-gray-900);
  margin-bottom: var(--space-3xl);
  display: flex;
  align-items: center;
  line-height: 1.3;
  gap: var(--space-md);
}

/* ===== TIMELINE PREMIUM ===== */
.timeline-container {
  position: relative;
  padding-left: var(--space-3xl);
  margin-bottom: var(--space-3xl);
}

.timeline-container::before {
  content: '';
  position: absolute;
  left: 24px;
  top: 0;
  bottom: 0;
  width: 6px;
  background: linear-gradient(180deg, var(--color-primary) 0%, var(--color-accent) 50%, var(--color-success) 100%);
  border-radius: 6px;
  box-shadow: 
    0 0 20px rgba(30, 58, 138, 0.3),
    inset 0 0 0 2px rgba(255, 255, 255, 0.3);
  z-index: 0;
  animation: timelineGlow 4s ease-in-out infinite;
}

.timeline-item {
  position: relative;
  padding-bottom: var(--space-3xl);
  display: flex;
  align-items: flex-start;
  gap: var(--space-xl);
}

.timeline-marker {
  position: absolute;
  left: -40px;
  top: 0;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-size: 1.4rem;
  box-shadow: var(--shadow-lg);
  border: 4px solid var(--color-white);
  z-index: 2;
  transition: var(--transition-normal);
}

.timeline-marker:hover {
  transform: scale(1.15) rotate(10deg);
  box-shadow: var(--shadow-xl);
}

.timeline-marker-primary {
  background: linear-gradient(135deg, var(--color-primary), var(--color-primary-light));
}

.timeline-marker-warning {
  background: linear-gradient(135deg, var(--color-warning), #ea580c);
}

.timeline-marker-success {
  background: linear-gradient(135deg, var(--color-success), #34d399);
}

.timeline-content {
  flex: 1;
  background: var(--color-white);
  padding: var(--space-xl);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-md);
  border: 2px solid transparent;
  transition: var(--transition-normal);
  position: relative;
  overflow: hidden;
}

.timeline-content::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(135deg, var(--color-accent), #fbbf24);
  transform: scaleX(0);
  transform-origin: left;
  transition: var(--transition-normal);
}

.timeline-content:hover::before {
  transform: scaleX(1);
}

.timeline-content:hover {
  transform: translateX(12px);
  box-shadow: var(--shadow-xl);
  border-color: var(--color-primary);
}

.timeline-year {
  display: inline-block;
  background: linear-gradient(135deg, var(--color-accent), #ea580c);
  color: white;
  padding: var(--space-xs) var(--space-md);
  border-radius: var(--radius-full);
  font-size: 0.875rem;
  font-weight: 700;
  margin-bottom: var(--space-md);
  box-shadow: var(--shadow-sm);
}

.timeline-title {
  font-size: clamp(1.125rem, 3vw, 1.25rem);
  font-weight: 800;
  color: var(--color-gray-900);
  margin: 0 0 var(--space-md);
}

.timeline-description {
  font-size: clamp(0.875rem, 2.5vw, 1rem);
  line-height: 1.7;
  color: var(--color-gray-600);
  margin: 0;
}

/* ===== STATS GRID ===== */
.stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: var(--space-xl);
  margin-bottom: var(--space-3xl);
  max-width: 1200px;
  margin-inline: auto;
  justify-items: center;
}

.stat-item {
  text-align: center;
  padding: var(--space-xl);
  background: var(--color-white);
  border-radius: var(--radius-2xl);
  box-shadow: var(--shadow-md);
  border: 2px solid transparent;
  transition: var(--transition-normal);
  width: 100%;
  max-width: 260px;
  min-height: 140px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: var(--space-sm);
  cursor: default;
  position: relative;
  overflow: hidden;
}

.stat-item::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, var(--color-primary), var(--color-primary-light));
  opacity: 0;
  transition: var(--transition-normal);
  z-index: -1;
}

.stat-item:hover {
  transform: translateY(-8px) scale(1.05);
  box-shadow: var(--shadow-xl);
  border-color: var(--color-primary);
}

.stat-item:hover::before {
  opacity: 0.05;
}

.stat-number {
  font-size: clamp(2rem, 5vw, 2.75rem);
  font-weight: 900;
  color: var(--color-primary);
  line-height: 1;
  margin-bottom: var(--space-sm);
  display: block;
  white-space: nowrap;
}

.stat-label {
  font-size: clamp(0.75rem, 2vw, 0.875rem);
  font-weight: 700;
  color: var(--color-gray-600);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  text-align: center;
  line-height: 1.3;
  margin: 0;
}

/* ===== EXPERTISE SYNERGIE ===== */
.expertise-synergy {
  background: var(--color-white);
  padding: var(--space-xl);
  border-radius: var(--radius-2xl);
  box-shadow: var(--shadow-lg);
  border: 2px solid rgba(30, 58, 138, 0.1);
  position: relative;
  overflow: hidden;
  max-width: 500px;
  margin: 0 auto var(--space-2xl);
}

.expertise-synergy::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 6px;
  background: linear-gradient(90deg, var(--color-primary), var(--color-primary-light));
}

.synergy-title {
  font-size: 1.25rem;
  font-weight: 800;
  color: var(--color-gray-900);
  margin-bottom: var(--space-xl);
  display: flex;
  align-items: center;
}

.team-synergy {
  display: grid;
  gap: var(--space-lg);
  margin-bottom: var(--space-xl);
}

.team-member {
  display: flex;
  align-items: center;
  gap: var(--space-lg);
  padding: var(--space-lg);
  background: linear-gradient(135deg, rgba(30, 58, 138, 0.03) 0%, rgba(16, 185, 129, 0.02) 100%);
  border-radius: var(--radius-xl);
  border-left: 6px solid var(--color-primary);
  max-width: 420px;
  transition: var(--transition-normal);
}

.team-member:hover {
  transform: translateX(8px);
  background: linear-gradient(135deg, rgba(30, 58, 138, 0.06) 0%, rgba(16, 185, 129, 0.04) 100%);
}

.member-avatar {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--color-primary), var(--color-primary-light));
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-size: 1.5rem;
  flex-shrink: 0;
  box-shadow: var(--shadow-md);
  transition: var(--transition-normal);
}

.team-member:hover .member-avatar {
  transform: scale(1.1) rotate(5deg);
}

.member-info {
  flex: 1;
}

.member-name {
  display: block;
  font-size: 1.125rem;
  font-weight: 800;
  color: var(--color-gray-900);
  margin-bottom: var(--space-xs);
}

.member-role {
  font-size: 1rem;
  color: var(--color-gray-600);
  line-height: 1.6;
  margin: 0;
}

.synergy-note {
  font-size: 1rem;
  color: var(--color-gray-600);
  font-style: italic;
  margin: 0;
  text-align: center;
  padding-top: var(--space-lg);
  border-top: 2px solid rgba(30, 58, 138, 0.1);
  line-height: 1.5;
}

/* ===== COLONNE VISUELLE ===== */
.about-visual-content {
  position: relative;
}

.about-image-container {
  margin-bottom: var(--space-2xl);
}

.about-image-wrapper {
  position: relative;
  border-radius: var(--radius-3xl);
  overflow: hidden;
  box-shadow: var(--shadow-2xl);
  margin: 0;
  transition: var(--transition-slow);
}

.about-image-wrapper:hover {
  transform: scale(1.02);
  box-shadow: 0 32px 64px rgba(0, 0, 0, 0.2);
}

.about-main-image {
  width: 100%;
  height: auto;
  min-height: 500px;
  object-fit: cover;
  display: block;
  transition: var(--transition-slow);
}

.about-image-placeholder {
  min-height: 500px;
  background: linear-gradient(135deg, var(--color-gray-100), var(--color-gray-200));
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-3xl);
}

.placeholder-content {
  text-align: center;
  color: var(--color-gray-500);
}

.about-image-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(15, 23, 42, 0.8) 0%, rgba(30, 58, 138, 0.6) 100%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-xl);
  border-radius: inherit;
  opacity: 0;
  visibility: hidden;
  transition: var(--transition-normal);
}

@media (hover: hover) {
  .about-image-wrapper:hover .about-image-overlay {
    opacity: 1;
    visibility: visible;
  }
  
  .about-image-wrapper:hover .about-main-image {
    transform: scale(1.1);
    filter: brightness(0.7);
  }
}

.overlay-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-lg);
}

.overlay-badge {
  background: rgba(255, 255, 255, 0.95);
  color: var(--color-primary);
  padding: var(--space-md) var(--space-xl);
  border-radius: var(--radius-full);
  font-weight: 700;
  font-size: 1rem;
  backdrop-filter: blur(16px);
  box-shadow: var(--shadow-lg);
}

.btn-overlay-about {
  background: linear-gradient(135deg, var(--color-accent), #ea580c);
  color: white;
  border: none;
  padding: var(--space-lg) var(--space-2xl);
  border-radius: var(--radius-full);
  font-weight: 700;
  font-size: 1rem;
  cursor: pointer;
  transition: var(--transition-normal);
  box-shadow: var(--shadow-lg);
  display: inline-flex;
  align-items: center;
  gap: var(--space-sm);
}

.btn-overlay-about:hover {
  transform: translateY(-3px) scale(1.05);
  box-shadow: var(--shadow-xl);
}

/* ===== MISSION STATEMENT ===== */
.mission-statement {
  background: var(--color-white);
  padding: var(--space-2xl);
  border-radius: var(--radius-2xl);
  box-shadow: var(--shadow-lg);
  border-left: 6px solid var(--color-accent);
  margin: 0;
  position: relative;
  overflow: hidden;
}

.mission-statement::before {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  width: 100px;
  height: 100px;
  background: radial-gradient(circle, rgba(249, 115, 22, 0.1) 0%, transparent 70%);
  border-radius: 50%;
}

.quote-content {
  position: relative;
  margin-bottom: var(--space-xl);
}

.quote-icon {
  font-size: 2.5rem;
  color: var(--color-accent);
  margin-bottom: var(--space-lg);
  opacity: 0.8;
}

.quote-text {
  font-size: 1.25rem;
  line-height: 1.8;
  color: var(--color-gray-700);
  font-style: italic;
  margin: 0;
  font-weight: 500;
}

.quote-author {
  border-top: 2px solid rgba(30, 58, 138, 0.1);
  padding-top: var(--space-lg);
}

.author-info {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.author-names {
  font-size: 1.125rem;
  font-weight: 800;
  color: var(--color-gray-900);
}

.author-title {
  font-size: 1rem;
  color: var(--color-primary);
  font-weight: 600;
}

.author-experience {
  font-size: 0.875rem;
  color: var(--color-gray-500);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* ===== VALEURS SECTION ===== */
.values-section {
  margin-bottom: var(--space-5xl);
}

.values-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: var(--space-2xl);
  margin-top: var(--space-3xl);
}

.value-card {
  background: var(--color-white);
  padding: var(--space-2xl);
  border-radius: var(--radius-2xl);
  box-shadow: var(--shadow-md);
  border: 2px solid transparent;
  transition: var(--transition-normal);
  text-align: center;
  cursor: default;
  position: relative;
  overflow: hidden;
}

.value-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, var(--color-primary), var(--color-primary-light));
  opacity: 0;
  transition: var(--transition-normal);
  z-index: -1;
}

.value-card:hover {
  transform: translateY(-10px) scale(1.03);
  box-shadow: var(--shadow-2xl);
  border-color: var(--color-primary);
}

.value-card:hover::before {
  opacity: 0.03;
}

.value-icon {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--color-primary), var(--color-primary-light));
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-size: 2rem;
  margin: 0 auto var(--space-xl);
  box-shadow: var(--shadow-lg);
  transition: var(--transition-normal);
}

.value-card:hover .value-icon {
  transform: scale(1.2) rotate(10deg);
  box-shadow: var(--shadow-xl);
}

.value-title {
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--color-gray-900);
  margin: 0 0 var(--space-md);
}

.value-description {
  font-size: 1rem;
  line-height: 1.7;
  color: var(--color-gray-600);
  margin: 0;
}

/* ===== MISSION & VISION ===== */
.mission-vision-section {
  margin-bottom: var(--space-5xl);
}

.mission-card,
.vision-card {
  padding: var(--space-3xl);
  border-radius: var(--radius-2xl);
  box-shadow: var(--shadow-lg);
  text-align: center;
  transition: var(--transition-normal);
  height: 100%;
  position: relative;
  overflow: hidden;
}

.mission-card {
  background: linear-gradient(135deg, var(--color-white) 0%, var(--color-gray-50) 100%);
  border: 3px solid var(--color-primary);
}

.vision-card {
  background: linear-gradient(135deg, var(--color-primary), var(--color-primary-dark));
  color: var(--color-white);
  border: 3px solid var(--color-accent);
}

.mission-card::before,
.vision-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 6px;
}

.mission-card::before {
  background: linear-gradient(90deg, var(--color-primary), var(--color-primary-light));
}

.vision-card::before {
  background: linear-gradient(90deg, var(--color-accent), #ea580c);
}

.mission-card:hover,
.vision-card:hover {
  transform: translateY(-10px) scale(1.02);
  box-shadow: var(--shadow-2xl);
}

.card-icon {
  width: 90px;
  height: 90px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-size: 2.5rem;
  margin: 0 auto var(--space-xl);
  box-shadow: var(--shadow-lg);
  transition: var(--transition-normal);
}

.mission-card .card-icon {
  background: linear-gradient(135deg, var(--color-primary), var(--color-primary-light));
}

.vision-card .card-icon {
  background: linear-gradient(135deg, var(--color-accent), #ea580c);
}

.mission-card:hover .card-icon,
.vision-card:hover .card-icon {
  transform: scale(1.2) rotate(15deg);
}

.card-title {
  font-size: 1.75rem;
  font-weight: 900;
  margin: 0 0 var(--space-lg);
}

.mission-card .card-title {
  color: var(--color-gray-900);
}

.vision-card .card-title {
  color: var(--color-white);
}

.card-description {
  font-size: 1.125rem;
  line-height: 1.8;
  margin: 0;
}

.mission-card .card-description {
  color: var(--color-gray-600);
}

.vision-card .card-description {
  color: rgba(255, 255, 255, 0.95);
}

/* ===== CTA SECTION ===== */
.about-cta-section {
  background: linear-gradient(135deg, var(--color-primary), var(--color-primary-light));
  border-radius: var(--radius-3xl);
  padding: var(--space-3xl);
  color: white;
  text-align: center;
  box-shadow: var(--shadow-2xl);
  position: relative;
  overflow: hidden;
}

.about-cta-section::before {
  content: '';
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: linear-gradient(45deg, transparent, rgba(255, 255, 255, 0.1), transparent);
  animation: shimmer 4s ease-in-out infinite;
}

.cta-container {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-xl);
}

@media (min-width: 768px) {
  .cta-container {
    flex-direction: row;
    justify-content: space-between;
    text-align: left;
  }
}

.cta-content {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.cta-title {
  font-size: 1.875rem;
  font-weight: 900;
  margin: 0;
}

.cta-subtitle {
  font-size: 1.125rem;
  opacity: 0.95;
  margin: 0;
}

.cta-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-lg);
}

.btn-cta {
  display: inline-flex;
  align-items: center;
  gap: var(--space-sm);
  padding: var(--space-lg) var(--space-2xl);
  border-radius: var(--radius-full);
  font-weight: 700;
  font-size: 1rem;
  text-decoration: none;
  transition: var(--transition-normal);
  min-height: 56px;
}

.btn-cta.btn-outline {
  background: transparent;
  color: white;
  border: 3px solid rgba(255, 255, 255, 0.4);
}

.btn-cta.btn-outline:hover {
  background: white;
  color: var(--color-primary);
  border-color: white;
  transform: translateY(-3px) scale(1.05);
}

.btn-cta.btn-primary {
  background: linear-gradient(135deg, var(--color-accent), #ea580c);
  color: white;
  border: 3px solid transparent;
  box-shadow: var(--shadow-lg);
}

.btn-cta.btn-primary:hover {
  transform: translateY(-3px) scale(1.05);
  box-shadow: var(--shadow-xl);
}

/* ===== ANIMATIONS ===== */
@keyframes gentleFloat {
  0%, 100% { 
    transform: translate(0, 0) rotate(0deg); 
  }
  25% { 
    transform: translate(20px, -30px) rotate(1deg); 
  }
  50% { 
    transform: translate(-10px, -20px) rotate(-0.5deg); 
  }
  75% { 
    transform: translate(-20px, 10px) rotate(0.5deg); 
  }
}

@keyframes timelineGlow {
  0%, 100% {
    box-shadow: 
      0 0 20px rgba(30, 58, 138, 0.3),
      inset 0 0 0 2px rgba(255, 255, 255, 0.3);
  }
  50% {
    box-shadow: 
      0 0 30px rgba(30, 58, 138, 0.6),
      inset 0 0 0 2px rgba(255, 255, 255, 0.6);
  }
}

@keyframes shimmer {
  0% { transform: translateX(-100%) translateY(-100%) rotate(45deg); }
  100% { transform: translateX(100%) translateY(100%) rotate(45deg); }
}

/* ===== RESPONSIVE DESIGN ===== */

/* Desktop Large (1200px+) */
@media (min-width: 1200px) {
  .certifications-row {
    grid-template-columns: repeat(4, 1fr);
  }
  
  .values-grid {
    grid-template-columns: repeat(3, 1fr);
  }
  
  .stats-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* Desktop Medium (992px - 1199px) */
@media (min-width: 992px) and (max-width: 1199px) {
  .about-section {
    padding: var(--space-4xl) 0;
  }
  
  .timeline-container {
    padding-left: var(--space-2xl);
  }
  
  .timeline-marker {
    left: -32px;
    width: 48px;
    height: 48px;
    font-size: 1.2rem;
  }
  
  .certifications-row {
    grid-template-columns: repeat(3, 1fr);
  }
  
  .values-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Tablette (768px - 991px) */
@media (min-width: 768px) and (max-width: 991px) {
  .about-section {
    padding: var(--space-4xl) 0;
  }
  
  .timeline-container {
    padding-left: var(--space-xl);
  }
  
  .timeline-marker {
    left: -28px;
    width: 44px;
    height: 44px;
    font-size: 1rem;
  }
  
  .stats-grid {
    grid-template-columns: repeat(2, 1fr);
    max-width: 700px;
  }
  
  .certifications-row {
    grid-template-columns: repeat(2, 1fr);
  }
  
  .values-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-lg);
  }
  
  .team-member {
    max-width: 100%;
  }
}

/* Mobile Large (576px - 767px) */
@media (min-width: 576px) and (max-width: 767px) {
  .stats-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-lg);
    max-width: 600px;
  }
  
  .stat-item {
    max-width: 200px;
    min-height: 120px;
  }
  
  .values-grid {
    grid-template-columns: 1fr;
    gap: var(--space-lg);
  }
}

/* Mobile Standard (max 575px) */
@media (max-width: 575px) {
  .about-section {
    padding: var(--space-3xl) 0;
  }
  
  .container {
    padding: 0 var(--space-md);
  }
  
  .section-title {
    font-size: 1.875rem;
  }
  
  /* Stats parfaitement centrés */
  .stats-grid {
    grid-template-columns: 1fr !important;
    gap: var(--space-lg);
    justify-items: center;
    max-width: 100%;
    padding: 0 var(--space-sm);
  }
  
  .stat-item {
    max-width: 280px;
    width: 100%;
    justify-self: center;
  }
  
  /* Timeline mobile */
  .timeline-container {
    padding-left: var(--space-xl);
  }
  
  .timeline-container::before {
    left: 18px;
    width: 6px;
  }
  
  .timeline-marker {
    left: -24px;
    width: 48px;
    height: 48px;
    font-size: 1.2rem;
  }
  
  .timeline-item {
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    padding-bottom: var(--space-xl);
  }
  
  .timeline-content {
    width: 100%;
    margin-left: 0;
  }
  
  /* Certifications centrées */
  .certifications-row {
    grid-template-columns: 1fr;
    justify-items: center;
  }
  
  .cert-badge {
    max-width: 320px;
    width: 100%;
  }
  
  /* Valeurs en colonne */
  .values-grid {
    grid-template-columns: 1fr;
    gap: var(--space-lg);
  }
  
  /* Team members en colonne */
  .team-member {
    flex-direction: column;
    text-align: center;
    gap: var(--space-md);
    max-width: 300px;
    margin: 0 auto var(--space-lg);
    padding: var(--space-lg);
  }
  
  .member-avatar {
    margin-bottom: var(--space-sm);
  }
  
  /* CTA responsive */
  .cta-container {
    flex-direction: column;
    text-align: center;
  }
  
  .cta-buttons {
    flex-direction: column;
    width: 100%;
  }
  
  .btn-cta {
    justify-content: center;
    width: 100%;
  }
  
  /* Image responsive */
  .about-main-image {
    min-height: 300px;
  }
  
  .about-image-placeholder {
    min-height: 300px;
  }
}

/* Mobile Extra Small (max 380px) */
@media (max-width: 380px) {
  .about-section {
    padding: var(--space-2xl) 0;
  }
  
  .cert-badge {
    padding: var(--space-lg);
    gap: var(--space-md);
  }
  
  .stat-item {
    padding: var(--space-lg);
    min-height: 100px;
    max-width: 260px;
  }
  
  .timeline-container {
    padding-left: var(--space-lg);
  }
  
  .timeline-marker {
    left: -20px;
    width: 40px;
    height: 40px;
    font-size: 1rem;
  }
  
  .value-card {
    padding: var(--space-lg);
  }
  
  .mission-card,
  .vision-card {
    padding: var(--space-xl);
  }
  
  .team-member {
    padding: var(--space-md);
    max-width: 280px;
  }
}

/* ===== PERFORMANCE & ACCESSIBILITÉ ===== */
.about-section *,
.about-section *::before,
.about-section *::after {
  box-sizing: border-box;
}

/* GPU acceleration */
.gradient-orb,
.timeline-marker,
.cert-badge,
.stat-item,
.value-card {
  will-change: transform;
}

/* Respect des préférences utilisateur */
@media (prefers-reduced-motion: reduce) {
  .about-section *,
  .about-section *::before,
  .about-section *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* États focus accessibles */
.about-section button:focus-visible,
.about-section a:focus-visible,
.cert-badge:focus-visible,
.stat-item:focus-visible,
.value-card:focus-visible {
  outline: 3px solid var(--color-accent);
  outline-offset: 3px;
}

/* Zones tactiles mobiles */
@media (max-width: 575px) {
  .cert-badge,
  .stat-item,
  .value-card,
  .btn-cta,
  .timeline-content {
    min-height: 48px;
  }
}

/* Mode sombre supporté */
@media (prefers-color-scheme: dark) {
  .about-section {
    background: linear-gradient(135deg, var(--color-gray-800) 0%, var(--color-gray-900) 100%);
    color: var(--color-gray-100);
  }
  
  .cert-badge,
  .stat-item,
  .value-card,
  .timeline-content,
  .expertise-synergy,
  .mission-statement,
  .mission-card {
    background: var(--color-gray-800);
    color: var(--color-gray-100);
    border-color: var(--color-gray-700);
  }
}


/* =========================================================================
   CSS PREMIUM SECTION SERVICES — SB INGÉNIERIE BTP 2025
   Design cohérent avec hero et about sections, optimisé BTP
   ========================================================================= */

/* Section Services principale */
.services-section {
  position: relative;
  background: linear-gradient(135deg, var(--btp-white) 0%, var(--gray-50) 50%, var(--btp-white) 100%);
  color: var(--gray-800);
  padding: var(--space-4xl) 0;
  overflow: hidden;
  isolation: isolate;
}

/* Background effects subtils pour cohérence */
.services-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: 
    radial-gradient(circle at 15% 25%, rgba(30, 58, 138, 0.04) 1px, transparent 1px),
    radial-gradient(circle at 85% 75%, rgba(249, 115, 22, 0.03) 1px, transparent 1px);
  background-size: 60px 60px;
  opacity: 0.5;
  pointer-events: none;
  z-index: var(--z-background);
}

/* Header section services */
.services-section .section-header {
  position: relative;
  z-index: var(--z-content);
  margin-bottom: var(--space-4xl);
  text-align: center;
}

.services-section .section-title {
  font-size: var(--text-4xl);
  font-weight: 900;
  line-height: 1.2;
  margin: 0 0 var(--space-lg);
  color: var(--gray-900);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-sm);
}

.services-section .section-title i {
  color: var(--btp-primary);
  font-size: 0.9em;
  animation: rotateIcon 4s ease-in-out infinite;
}

.services-section .section-subtitle {
  font-size: var(--text-lg);
  line-height: 1.7;
  color: var(--gray-600);
  margin: 0 auto;
  max-width: 900px;
  font-weight: 400;
}

/* Grid services premium - 8 services en layout adaptatif */
#services-uniform-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: var(--space-xl);
  margin-bottom: var(--space-4xl);
  position: relative;
  z-index: var(--z-content);
}

@media (min-width: 768px) {
  #services-uniform-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1200px) {
  #services-uniform-grid {
    grid-template-columns: repeat(3, 1fr);
    max-width: 1400px;
    margin-inline: auto;
  }
}

@media (min-width: 1600px) {
  #services-uniform-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* Service Card Premium */
.service-card {
  position: relative;
  background: var(--btp-white);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-md);
  border: 1px solid rgba(30, 58, 138, 0.1);
  padding: var(--space-xl);
  transition: all var(--transition-normal) var(--ease-out);
  cursor: pointer;
  overflow: hidden;
  min-height: 280px;
  display: flex;
  flex-direction: column;
}

.service-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--btp-primary), var(--btp-accent));
  border-radius: var(--radius-xl) var(--radius-xl) 0 0;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--transition-normal) var(--ease-out);
}

.service-card:hover {
  transform: translateY(-8px) scale(1.02);
  box-shadow: var(--shadow-2xl);
  border-color: rgba(30, 58, 138, 0.2);
}

.service-card:hover::before {
  transform: scaleX(1);
}

/* Service Icon Container */
.service-icon-container {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: var(--space-lg);
}

.service-icon {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-size: 1.8rem;
  box-shadow: var(--shadow-md);
  transition: all var(--transition-normal) var(--ease-bounce);
  position: relative;
  overflow: hidden;
}

.service-icon::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(45deg, rgba(255, 255, 255, 0.2), transparent);
  border-radius: 50%;
  transform: scale(0);
  transition: transform var(--transition-normal) var(--ease-out);
}

.service-card:hover .service-icon {
  transform: scale(1.15) rotate(10deg);
}

.service-card:hover .service-icon::before {
  transform: scale(1);
}

/* Couleurs spécialisées par domaine BTP */
.service-icon.bg-primary {
  background: linear-gradient(135deg, var(--btp-primary), var(--btp-secondary));
}

.service-icon.bg-success {
  background: linear-gradient(135deg, var(--btp-success), #10b981);
}

.service-icon.bg-info {
  background: linear-gradient(135deg, var(--btp-info), #0ea5e9);
}

.service-icon.bg-secondary {
  background: linear-gradient(135deg, var(--gray-600), var(--gray-700));
}

.service-icon.bg-warning {
  background: linear-gradient(135deg, var(--btp-warning), #ea580c);
}

.service-icon.bg-dark {
  background: linear-gradient(135deg, var(--gray-800), var(--gray-900));
}

.service-icon.bg-danger {
  background: linear-gradient(135deg, #dc2626, #b91c1c);
}

/* Service Content */
.service-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  text-align: center;
}

.service-title {
  font-size: var(--text-lg);
  font-weight: 800;
  color: var(--gray-900);
  margin: 0 0 var(--space-md);
  line-height: 1.3;
}

.service-description {
  font-size: var(--text-base);
  line-height: 1.6;
  color: var(--gray-600);
  margin: 0 0 var(--space-lg);
  flex: 1;
}

/* Service Pricing */
.service-pricing {
  padding: var(--space-md);
  background: rgba(30, 58, 138, 0.05);
  border-radius: var(--radius-md);
  border-left: 3px solid var(--btp-primary);
  margin-bottom: var(--space-md);
}

.price-range {
  font-size: var(--text-base);
  font-weight: 700;
  color: var(--btp-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 0.25rem;
}

.price-range i {
  color: var(--btp-accent);
  margin-right: 0.25rem;
}

.service-pricing small {
  font-size: var(--text-sm);
  color: var(--gray-600);
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Service Overlay - Visible au survol uniquement */
.service-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(30, 58, 138, 0.9), rgba(59, 130, 246, 0.8));
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-xl);
  opacity: 0;
  visibility: hidden;
  transition: all var(--transition-normal) var(--ease-out);
  z-index: var(--z-overlay);
}

@media (hover: hover) {
  .service-card:hover .service-overlay {
    opacity: 1;
    visibility: visible;
  }
}

/* Bouton Service Hero Animated */
.btn-service-hero-animated {
  background: linear-gradient(135deg, var(--btp-accent), #ea580c);
  color: white;
  border: none;
  padding: var(--space-md) var(--space-xl);
  border-radius: var(--radius-full);
  font-weight: 700;
  font-size: var(--text-base);
  cursor: pointer;
  transition: all var(--transition-normal) var(--ease-out);
  box-shadow: var(--shadow-lg);
  display: inline-flex;
  align-items: center;
  gap: var(--space-sm);
  backdrop-filter: blur(8px);
  border: 2px solid rgba(255, 255, 255, 0.2);
}

.btn-service-hero-animated:hover {
  transform: translateY(-3px) scale(1.05);
  box-shadow: var(--shadow-2xl);
  border-color: rgba(255, 255, 255, 0.4);
}

.btn-service-hero-animated::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
  border-radius: inherit;
  transform: translateX(-100%);
  transition: transform var(--transition-slow) var(--ease-out);
}

.btn-service-hero-animated:hover::before {
  transform: translateX(100%);
}

/* CTA Section Services - Reprise du style about-cta */
.services-section .about-cta-section {
  background: linear-gradient(135deg, var(--btp-primary), var(--btp-primary-dark));
  border-radius: var(--radius-xl);
  padding: var(--space-2xl);
  color: white;
  text-align: center;
  box-shadow: var(--shadow-xl);
  position: relative;
  overflow: hidden;
  margin-top: var(--space-4xl);
}

.services-section .about-cta-section::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--btp-accent), #ea580c, var(--btp-success), var(--btp-info));
  animation: gradientFlow 4s ease-in-out infinite;
}

.about-cta-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-xl);
}

@media (min-width: 768px) {
  .about-cta-container {
    flex-direction: row;
    justify-content: space-between;
    text-align: left;
  }
}

.about-cta-content {
  flex: 1;
}

.about-cta-title {
  font-size: var(--text-2xl);
  font-weight: 900;
  margin: 0 0 var(--space-sm);
  color: white;
}

.about-cta-subtitle {
  font-size: var(--text-base);
  opacity: 0.9;
  margin: 0 0 var(--space-sm);
  line-height: 1.5;
}

.about-cta-underline {
  width: 60px;
  height: 3px;
  background: linear-gradient(90deg, var(--btp-accent), #ea580c);
  border-radius: 2px;
  margin: var(--space-md) auto 0;
}

@media (min-width: 768px) {
  .about-cta-underline {
    margin: var(--space-md) 0 0;
  }
}

/* Boutons CTA Services */
.about-cta-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-md);
  align-items: center;
}

.btn-about-cta,
.btn-services-cta {
  display: inline-flex;
  align-items: center;
  gap: var(--space-sm);
  padding: var(--space-md) var(--space-xl);
  border-radius: var(--radius-full);
  font-weight: 700;
  font-size: var(--text-base);
  text-decoration: none;
  transition: all var(--transition-normal) var(--ease-out);
  min-height: 52px;
  backdrop-filter: blur(8px);
}

.btn-about-outline {
  background: transparent;
  color: white;
  border: 2px solid rgba(255, 255, 255, 0.3);
}

.btn-about-outline:hover {
  background: white;
  color: var(--btp-primary);
  border-color: white;
  transform: translateY(-2px) scale(1.02);
}

.btn-services-primary {
  background: linear-gradient(135deg, #25d366, #128c7e);
  color: white;
  border: 2px solid rgba(255, 255, 255, 0.2);
  box-shadow: var(--shadow-lg);
}

.btn-services-primary:hover {
  transform: translateY(-2px) scale(1.05);
  box-shadow: var(--shadow-xl);
  border-color: rgba(255, 255, 255, 0.4);
}

/* Animations */
@keyframes rotateIcon {
  0%, 100% { transform: rotate(0deg); }
  25% { transform: rotate(5deg); }
  75% { transform: rotate(-5deg); }
}

@keyframes gradientFlow {
  0%, 100% { 
    background: linear-gradient(90deg, var(--btp-accent), #ea580c, var(--btp-success), var(--btp-info)); 
  }
  33% { 
    background: linear-gradient(90deg, #ea580c, var(--btp-success), var(--btp-info), var(--btp-accent)); 
  }
  66% { 
    background: linear-gradient(90deg, var(--btp-success), var(--btp-info), var(--btp-accent), #ea580c)); 
  }
}

/* Responsive Design */
@media (max-width: 991.98px) {
  .services-section {
    padding: var(--space-3xl) 0;
  }
  
  #services-uniform-grid {
    grid-template-columns: 1fr;
    gap: var(--space-lg);
  }
  
  .service-card {
    min-height: 250px;
  }
  
  .about-cta-container {
    flex-direction: column;
    text-align: center;
  }
}

@media (max-width: 767.98px) {
  .services-section {
    padding: var(--space-2xl) 0;
  }
  
  .services-section .section-title {
    font-size: var(--text-3xl);
    flex-direction: column;
    gap: var(--space-xs);
  }
  
  .service-card {
    padding: var(--space-lg);
    min-height: 220px;
  }
  
  .service-icon {
    width: 50px;
    height: 50px;
    font-size: 1.5rem;
  }
  
  .about-cta-buttons {
    flex-direction: column;
    width: 100%;
  }
  
  .btn-about-cta,
  .btn-services-cta {
    width: 100%;
    justify-content: center;
  }
}

@media (max-width: 575.98px) {
  #services-uniform-grid {
    grid-template-columns: 1fr;
    gap: var(--space-md);
  }
  
  .service-card {
    padding: var(--space-md);
  }
  
  .about-cta-section {
    padding: var(--space-lg);
    margin-top: var(--space-2xl);
  }
}

/* États focus et accessibilité */
.service-card:focus,
.btn-service-hero-animated:focus,
.btn-about-cta:focus,
.btn-services-cta:focus {
  outline: 2px solid var(--btp-accent);
  outline-offset: 2px;
}

.service-card:focus:not(:focus-visible),
.btn-service-hero-animated:focus:not(:focus-visible),
.btn-about-cta:focus:not(:focus-visible),
.btn-services-cta:focus:not(:focus-visible) {
  outline: none;
}

/* Optimisations performance */
.services-section *,
.services-section *::before,
.services-section *::after {
  box-sizing: border-box;
}

/* Accessibility */
@media (prefers-reduced-motion: reduce) {
  .services-section *,
  .services-section *::before,
  .services-section *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* Print styles */
@media print {
  .services-section {
    background: white !important;
    color: black !important;
  }
  
  .service-overlay,
  .about-cta-section {
    display: none !important;
  }
  
  .service-card {
    break-inside: avoid;
    box-shadow: none !important;
    border: 1px solid #ccc !important;
  }
}


/* =========================================================================
   CSS PREMIUM SECTION PROJETS — SB INGÉNIERIE BTP 2025
   Design cohérent avec hero, about et services, optimisé BTP
   ========================================================================= */
/* =========================================================================
CSS PREMIUM SECTION PROJETS — SB INGÉNIERIE BTP 2025 (VERSION CORRIGÉE)
Design cohérent avec le style premium du site, CTA harmonisée
========================================================================= */

/* Section Projets Premium - Version Complète */
.projects-section-premium {
  position: relative;
  background: linear-gradient(135deg, var(--gray-50) 0%, var(--color-white) 50%, var(--gray-100) 100%);
  color: var(--text-secondary);
  padding: var(--space-4xl) 0;
  overflow: hidden;
  isolation: isolate;
}

.projects-section-premium::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: 
    radial-gradient(circle at 25% 25%, rgba(30, 58, 138, 0.03) 1px, transparent 1px),
    radial-gradient(circle at 75% 75%, rgba(249, 115, 22, 0.02) 1px, transparent 1px);
  background-size: 80px 80px;
  opacity: 0.6;
  pointer-events: none;
  z-index: var(--z-background);
}

/* Header Premium */
.projects-header-premium {
  position: relative;
  z-index: var(--z-content);
  margin-bottom: var(--space-4xl);
  text-align: center;
}

.projects-header-decoration {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-md);
  margin-bottom: var(--space-xl);
}

.header-icon-wrapper {
  width: 80px;
  height: 80px;
  background: linear-gradient(135deg, var(--color-primary), var(--color-primary-dark));
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-size: 2rem;
  box-shadow: var(--shadow-xl);
  animation: gentleFloat 4s ease-in-out infinite;
}

.header-gradient-line {
  flex: 1;
  max-width: 200px;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--color-primary), transparent);
}

.projects-header-content {
  max-width: 900px;
  margin: 0 auto;
}

.projects-category-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--space-sm);
  background: rgba(30, 58, 138, 0.1);
  color: var(--color-primary);
  border: 1px solid rgba(30, 58, 138, 0.2);
  border-radius: var(--border-radius-full);
  padding: var(--space-sm) var(--space-lg);
  font-weight: 700;
  font-size: var(--text-sm);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: var(--space-lg);
  transition: var(--transition-normal);
}

.projects-main-title {
  font-size: var(--text-4xl);
  font-weight: 900;
  line-height: 1.2;
  margin: 0 0 var(--space-lg);
  color: var(--text-primary);
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.projects-subtitle {
  font-size: var(--text-lg);
  line-height: 1.7;
  color: var(--text-muted);
  margin: 0 0 var(--space-xl);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-md);
  flex-wrap: wrap;
}

.highlight-metric {
  color: var(--color-primary);
  font-weight: 700;
}

.separator {
  color: var(--gray-400);
  font-weight: 300;
}

.projects-quick-stats {
  display: flex;
  justify-content: center;
  gap: var(--space-xl);
  margin-top: var(--space-xl);
  flex-wrap: wrap;
}

.quick-stat-item {
  text-align: center;
  background: var(--color-white);
  padding: var(--space-lg) var(--space-xl);
  border-radius: var(--border-radius-lg);
  box-shadow: var(--shadow-md);
  border: 1px solid rgba(30, 58, 138, 0.1);
  transition: var(--transition-normal);
  min-width: 120px;
}

.quick-stat-item:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-lg);
  border-color: var(--color-primary);
}

.stat-value {
  font-size: var(--text-3xl);
  font-weight: 900;
  color: var(--color-primary);
  line-height: 1;
  margin-bottom: var(--space-sm);
}

.stat-label {
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* Navigation Premium */
.projects-navigation-premium {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--space-3xl);
  flex-wrap: wrap;
  gap: var(--space-md);
}

.projects-view-controls {
  display: flex;
  gap: var(--space-sm);
  background: var(--color-white);
  padding: var(--space-sm);
  border-radius: var(--border-radius-full);
  box-shadow: var(--shadow-md);
  border: 1px solid rgba(30, 58, 138, 0.1);
}

.view-control-btn {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  padding: var(--space-2) var(--space-lg);
  border: none;
  border-radius: var(--border-radius-full);
  background: transparent;
  color: var(--text-muted);
  font-weight: 600;
  cursor: pointer;
  transition: var(--transition-normal);
  position: relative;
}

.view-control-btn.active,
.view-control-btn:hover {
  background: linear-gradient(135deg, var(--color-primary), var(--color-primary-light));
  color: white;
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}

.btn-content {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
}

.btn-count {
  background: rgba(255, 255, 255, 0.9);
  color: var(--color-primary);
  font-weight: 700;
  font-size: var(--text-sm);
  border-radius: var(--border-radius-full);
  padding: var(--space-1) var(--space-sm);
  min-width: 1.5rem;
  text-align: center;
}

.view-control-btn.active .btn-count {
  background: white;
}

.projects-status-display {
  display: flex;
  align-items: center;
  gap: var(--space-md);
}

.status-indicator {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  background: rgba(16, 185, 129, 0.1);
  color: var(--color-success);
  padding: var(--space-sm) var(--space-md);
  border-radius: var(--border-radius-full);
  font-weight: 600;
  font-size: var(--text-sm);
  border: 1px solid rgba(16, 185, 129, 0.2);
}

/* Filtres Premium */
.projects-filters-premium {
  background: var(--color-white);
  padding: var(--space-xl);
  border-radius: var(--border-radius-xl);
  box-shadow: var(--shadow-lg);
  border: 1px solid rgba(30, 58, 138, 0.1);
  margin-bottom: var(--space-3xl);
  position: relative;
  overflow: hidden;
}

.projects-filters-premium::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--color-primary), var(--color-accent), var(--color-success), var(--color-info));
}

.filters-controls {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
  margin-bottom: var(--space-md);
}

.filter-btn {
  display: inline-flex;
  align-items: center;
  gap: var(--space-sm);
  padding: var(--space-2) var(--space-lg);
  border: 2px solid transparent;
  border-radius: var(--border-radius-full);
  background: rgba(107, 114, 128, 0.1);
  color: var(--text-muted);
  font-weight: 600;
  font-size: var(--text-sm);
  cursor: pointer;
  transition: var(--transition-normal);
  text-decoration: none;
  position: relative;
  overflow: hidden;
  backdrop-filter: blur(10px);
  white-space: nowrap;
}

.filter-btn .btn-content {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
}

.filter-btn .btn-count {
  background: rgba(255, 255, 255, 0.9);
  color: inherit;
  font-weight: 700;
  font-size: var(--text-sm);
  border-radius: var(--border-radius-md);
  padding: var(--space-1) var(--space-sm);
  min-width: 1.5rem;
  text-align: center;
  margin-left: var(--space-1);
}

.filter-btn:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-lg);
}

.filter-btn.active {
  transform: translateY(-3px);
  box-shadow: var(--shadow-lg);
}

/* Couleurs spécifiques par catégorie */
.filter-btn[data-category="residentiel"],
.filter-btn[data-category="residentiel"].active {
  background: linear-gradient(135deg, #10b981, #059669) !important;
  color: white !important;
  border-color: #10b981 !important;
}

.filter-btn[data-category="patrimoine"],
.filter-btn[data-category="patrimoine"].active {
  background: linear-gradient(135deg, #92400e, #78350f) !important;
  color: white !important;
  border-color: #92400e !important;
}

.filter-btn[data-category="eclairage"],
.filter-btn[data-category="eclairage"].active {
  background: linear-gradient(135deg, #f59e0b, #d97706) !important;
  color: white !important;
  border-color: #f59e0b !important;
}

.filter-btn[data-category="industriel"],
.filter-btn[data-category="industriel"].active {
  background: linear-gradient(135deg, #0ea5e9, #0284c7) !important;
  color: white !important;
  border-color: #0ea5e9 !important;
}

.filter-btn[data-category="maritime"],
.filter-btn[data-category="maritime"].active {
  background: linear-gradient(135deg, #06b6d4, #0891b2) !important;
  color: white !important;
  border-color: #06b6d4 !important;
}

.filter-btn[data-category="telecommunications"],
.filter-btn[data-category="telecommunications"].active {
  background: linear-gradient(135deg, #8b5cf6, #7c3aed) !important;
  color: white !important;
  border-color: #8b5cf6 !important;
}

.filter-btn[data-category="amenagement"],
.filter-btn[data-category="amenagement"].active {
  background: linear-gradient(135deg, #16a34a, #15803d) !important;
  color: white !important;
  border-color: #16a34a !important;
}

.filter-btn[data-category="administratif"],
.filter-btn[data-category="administratif"].active {
  background: linear-gradient(135deg, #dc2626, #b91c1c) !important;
  color: white !important;
  border-color: #dc2626 !important;
}

.filter-btn[data-category="educatif"],
.filter-btn[data-category="educatif"].active {
  background: linear-gradient(135deg, #ec4899, #db2777) !important;
  color: white !important;
  border-color: #ec4899 !important;
}

.filter-btn[data-category="sportif"],
.filter-btn[data-category="sportif"].active {
  background: linear-gradient(135deg, #f97316, #ea580c) !important;
  color: white !important;
  border-color: #f97316 !important;
}

.filter-btn[data-category="renforcement"],
.filter-btn[data-category="renforcement"].active {
  background: linear-gradient(135deg, #374151, #1f2937) !important;
  color: white !important;
  border-color: #374151 !important;
}

/* Grille Projets */
.projects-grid-premium {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(380px, 1fr));
  gap: var(--space-xl);
  margin-bottom: var(--space-3xl);
  position: relative;
  z-index: var(--z-content);
}

.project-card-premium {
  background: var(--color-white);
  border-radius: var(--border-radius-xl);
  overflow: hidden;
  box-shadow: var(--shadow-md);
  border: 1px solid rgba(0, 0, 0, 0.05);
  transition: var(--transition-normal);
  cursor: pointer;
}

.project-card-premium:hover {
  transform: translateY(-8px);
  box-shadow: var(--shadow-xl);
  border-color: var(--color-primary);
}

.project-image-wrapper {
  position: relative;
  aspect-ratio: 16/10;
  overflow: hidden;
}

.project-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: var(--transition-normal);
}

.project-card-premium:hover .project-image {
  transform: scale(1.05);
}

/* Badges colorés */
.project-badges-overlay {
  position: absolute;
  top: var(--space-md);
  left: var(--space-md);
  display: flex;
  gap: var(--space-sm);
  flex-wrap: wrap;
  z-index: var(--z-content);
}

.project-badge,
.project-category-badge {
  display: flex;
  align-items: center;
  gap: var(--space-1);
  padding: var(--space-sm) var(--space-2);
  border-radius: var(--border-radius-full);
  font-weight: 600;
  font-size: var(--text-sm);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  box-shadow: var(--shadow-md);
}

.project-badge.bg-warning {
  background: linear-gradient(135deg, #f59e0b, #d97706) !important;
  color: white !important;
  border-color: rgba(245, 158, 11, 0.3) !important;
}

.project-category-badge.bg-primary {
  background: linear-gradient(135deg, var(--color-primary), var(--color-primary-light)) !important;
  color: white !important;
  border-color: rgba(30, 58, 138, 0.3) !important;
}

.project-category-badge.bg-success {
  background: linear-gradient(135deg, #10b981, #059669) !important;
  color: white !important;
  border-color: rgba(16, 185, 129, 0.3) !important;
}

.project-category-badge.bg-info {
  background: linear-gradient(135deg, #0ea5e9, #0284c7) !important;
  color: white !important;
  border-color: rgba(14, 165, 233, 0.3) !important;
}

.project-category-badge.bg-dark {
  background: linear-gradient(135deg, #374151, #1f2937) !important;
  color: white !important;
  border-color: rgba(55, 65, 81, 0.3) !important;
}

.project-category-badge.bg-secondary {
  background: linear-gradient(135deg, #6b7280, #4b5563) !important;
  color: white !important;
  border-color: rgba(107, 114, 128, 0.3) !important;
}

.project-hover-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.7);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: var(--transition-normal);
}

.project-card-premium:hover .project-hover-overlay {
  opacity: 1;
}

.btn-project-details {
  background: linear-gradient(135deg, var(--color-primary), var(--color-primary-light));
  color: white;
  border: none;
  padding: var(--space-2) var(--space-lg);
  border-radius: var(--border-radius-full);
  font-weight: 600;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  transition: var(--transition-normal);
}

.btn-project-details:hover {
  transform: scale(1.05);
  box-shadow: var(--shadow-md);
}

.project-content {
  padding: var(--space-lg);
}

.project-title {
  font-size: var(--text-xl);
  font-weight: 700;
  color: var(--text-primary);
  margin: 0 0 var(--space-2);
  line-height: 1.3;
}

.project-description {
  font-size: var(--text-sm);
  color: var(--text-muted);
  line-height: 1.6;
  margin: 0 0 var(--space-md);
}

.project-metadata {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  margin-bottom: var(--space-md);
}

.metadata-row {
  display: flex;
  gap: var(--space-md);
}

.metadata-item {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  flex: 1;
  font-size: var(--text-sm);
}

.metadata-value {
  font-weight: 600;
  color: var(--text-secondary);
}

.project-services-tags {
  display: flex;
  gap: var(--space-sm);
  margin-bottom: var(--space-lg);
  flex-wrap: wrap;
}

.service-tag {
  background: rgba(30, 58, 138, 0.1);
  color: var(--color-primary);
  padding: var(--space-1) var(--space-2);
  border-radius: var(--border-radius-md);
  font-size: var(--text-sm);
  font-weight: 600;
  border: 1px solid rgba(30, 58, 138, 0.2);
}

.service-tag.more {
  background: rgba(107, 114, 128, 0.1);
  color: var(--text-muted);
  border-color: rgba(107, 114, 128, 0.2);
}

.project-actions {
  display: flex;
  gap: var(--space-2);
}

.btn-project-primary,
.btn-project-secondary {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-sm);
  padding: var(--space-2) var(--space-md);
  border-radius: var(--border-radius-md);
  font-weight: 600;
  font-size: var(--text-sm);
  cursor: pointer;
  transition: var(--transition-normal);
  border: none;
}

.btn-project-primary {
  background: linear-gradient(135deg, var(--color-primary), var(--color-primary-light));
  color: white;
}

.btn-project-primary:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}

.btn-project-secondary {
  background: rgba(16, 185, 129, 0.1);
  color: var(--color-success);
  border: 1px solid rgba(16, 185, 129, 0.2);
}

.btn-project-secondary:hover {
  background: var(--color-success);
  color: white;
  transform: translateY(-2px);
}

/* ✅ CTA SECTION PREMIUM HARMONISÉE */
/* === Bloc CTA Premium (sous la grille projets) === */
.projects-cta-premium {
  position: relative;
  margin-top: var(--space-4xl, 4rem);
  padding: var(--space-2xl, 3rem) 0;
  background: linear-gradient(135deg, var(--gray-50, #f8fafc) 0%, var(--color-white, #fff) 50%, var(--gray-100, #f1f5f9) 100%);
  isolation: isolate;
}

.projects-cta-premium .cta-premium-wrapper {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--space-lg, 1.5rem);
}

.projects-cta-premium .cta-premium-content {
  position: relative;
  background: rgba(255,255,255,0.92);
  border: 1px solid rgba(30, 58, 138, 0.12);
  border-radius: var(--border-radius-xl, 24px);
  box-shadow: var(--shadow-xl, 0 20px 45px rgba(15,23,42,0.12));
  padding: clamp(1.25rem, 2.5vw, 2rem) clamp(1rem, 2vw, 1.5rem);
  overflow: hidden;
}

/* Ruban supérieur dégradé identique aux sections premium */
.projects-cta-premium .cta-premium-content::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--color-primary, #2c5aa0), var(--color-accent, #ff4500), var(--color-success, #059669), var(--color-info, #0891b2));
}

/* Titres et texte */
.projects-cta-premium h3 {
  margin: 0 0 0.5rem;
  font-size: clamp(1.25rem, 2.5vw, 1.75rem);
  font-weight: 900;
  color: var(--text-primary, #0b1427);
}
.projects-cta-premium p {
  margin: 0 0 1.25rem;
  color: var(--text-secondary, #334155);
}

/* Actions: utiliser les styles de boutons premium (cohérents hero) */
.projects-cta-premium .cta-premium-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.9rem;
  margin-top: 0.75rem;
}

/* Bouton primaire (même look que .hero .btn-primary) */
.projects-cta-premium .btn-cta-primary {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.9rem 1.4rem;
  border: none;
  border-radius: var(--border-radius-full, 9999px);
  color: #fff;
  background: linear-gradient(135deg, var(--btp-accent, #f97316), #ea580c);
  border: 1px solid rgba(255,255,255,0.3);
  box-shadow: 0 8px 20px rgba(249, 115, 22, 0.30);
  font-weight: 800;
  transition: transform var(--transition-normal, 350ms cubic-bezier(0.4,0,0.2,1)), 
              box-shadow var(--transition-normal, 350ms cubic-bezier(0.4,0,0.2,1));
  position: relative;
  overflow: hidden;
}
.projects-cta-premium .btn-cta-primary::before {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.18), transparent);
  transform: translateX(-100%);
  transition: transform var(--transition-slow, 500ms cubic-bezier(0.4,0,0.2,1));
}
.projects-cta-premium .btn-cta-primary:hover::before { transform: translateX(100%); }
.projects-cta-premium .btn-cta-primary:hover { 
  transform: translateY(-3px) scale(1.02);
  box-shadow: 0 14px 32px rgba(249, 115, 22, 0.40);
}

/* Bouton secondaire (même look que .btn-success premium) */
.projects-cta-premium .btn-cta-secondary {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.9rem 1.4rem;
  border: none;
  border-radius: var(--border-radius-full, 9999px);
  color: #fff;
  background: linear-gradient(135deg, #25d366, #128c7e);
  border: 1px solid rgba(255,255,255,0.2);
  box-shadow: 0 8px 20px rgba(18, 140, 126, 0.28);
  font-weight: 800;
  transition: transform var(--transition-normal, 350ms cubic-bezier(0.4,0,0.2,1)), 
              box-shadow var(--transition-normal, 350ms cubic-bezier(0.4,0,0.2,1));
  position: relative;
  overflow: hidden;
}
.projects-cta-premium .btn-cta-secondary::before {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.14), transparent);
  transform: translateX(-100%);
  transition: transform var(--transition-slow, 500ms cubic-bezier(0.4,0,0.2,1));
}
.projects-cta-premium .btn-cta-secondary:hover::before { transform: translateX(100%); }
.projects-cta-premium .btn-cta-secondary:hover { 
  transform: translateY(-3px) scale(1.02);
  box-shadow: 0 14px 32px rgba(18, 140, 126, 0.36);
}

/* Garantie / trust row */
.projects-cta-premium .cta-premium-guarantee {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 1rem;
  font-weight: 700;
  color: var(--gray-700, #334155);
}
.projects-cta-premium .cta-premium-guarantee i {
  color: var(--color-success, #059669);
}

/* Responsive */
@media (max-width: 768px) {
  .projects-cta-premium .cta-premium-actions {
    flex-direction: column;
  }
  .projects-cta-premium .btn-cta-primary,
  .projects-cta-premium .btn-cta-secondary {
    justify-content: center;
  }
}


.cta-premium-wrapper {
  position: relative;
  z-index: var(--z-content);
}

.cta-premium-header h3 {
  font-size: var(--text-3xl);
  font-weight: 900;
  margin-bottom: var(--space-md);
  line-height: 1.3;
}

.cta-premium-header .lead {
  font-size: var(--text-lg);
  opacity: 0.95;
  line-height: 1.6;
  margin-bottom: var(--space-xl);
}

/* Boutons CTA premium */
.cta-premium-actions {
  display: flex;
  justify-content: center;
  gap: var(--space-lg);
  margin-bottom: var(--space-xl);
  flex-wrap: wrap;
}

.btn-cta-primary,
.btn-cta-secondary {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: var(--space-sm);
  padding: var(--space-md) var(--space-xl);
  border: none;
  border-radius: var(--border-radius-full);
  font-weight: 700;
  font-size: var(--text-base);
  cursor: pointer;
  transition: var(--transition-normal);
  overflow: hidden;
  backdrop-filter: blur(8px);
  min-height: 52px;
  text-decoration: none;
}

/* ✅ BOUTON PRIMARY - Lancer Mon Projet (effet overlay blanc transparent) */
.btn-cta-primary {
  background: rgba(255, 255, 255, 0.15);
  color: white;
  border: 2px solid rgba(255, 255, 255, 0.4);
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
  backdrop-filter: blur(10px);
  position: relative;
  overflow: hidden;
}

.btn-cta-primary::before {
  content: '';
  position: absolute;
  inset: 0;
  background: white;
  opacity: 0;
  transition: opacity 0.3s ease;
  z-index: -1;
  border-radius: inherit;
}

.btn-cta-primary:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 25px rgba(255, 255, 255, 0.3);
  color: var(--color-primary);
  border-color: rgba(255, 255, 255, 0.6);
}

.btn-cta-primary:hover::before {
  opacity: 1;
}

/* ✅ BOUTON SECONDARY - WhatsApp (reste vert) */
.btn-cta-secondary {
  background: linear-gradient(135deg, #25d366, #128c7e);
  color: white;
  border: 2px solid rgba(255, 255, 255, 0.2);
  box-shadow: var(--shadow-lg);
}

.btn-cta-secondary:hover {
  background: linear-gradient(135deg, #128c7e, #0d7355);
  transform: translateY(-3px);
  box-shadow: 0 8px 25px rgba(37, 211, 102, 0.4);
}


.btn-hero-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
  transform: translateX(-100%);
  transition: transform var(--transition-slow);
}

.btn-cta-primary:hover,
.btn-cta-secondary:hover {
  transform: translateY(-3px) scale(1.05);
  box-shadow: var(--shadow-2xl);
}

.btn-cta-primary:hover .btn-hero-bg,
.btn-cta-secondary:hover .btn-hero-bg {
  transform: translateX(100%);
}

/* États Loading et Empty */
.projects-loading-state,
.projects-empty-state {
  text-align: center;
  padding: var(--space-4xl) var(--space-xl);
}

.loading-spinner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-md);
}

.spinner {
  width: 40px;
  height: 40px;
  border: 4px solid rgba(30, 58, 138, 0.1);
  border-left: 4px solid var(--color-primary);
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

.empty-content {
  max-width: 400px;
  margin: 0 auto;
}

.empty-content i {
  font-size: var(--text-4xl);
  color: var(--gray-400);
  margin-bottom: var(--space-md);
}

.empty-content h4 {
  font-size: var(--text-xl);
  font-weight: 700;
  color: var(--text-secondary);
  margin: 0 0 var(--space-sm);
}

.empty-content p {
  color: var(--text-muted);
  margin: 0;
}

/* Animations */
@keyframes gentleFloat {
  0%, 100% { 
    transform: translateY(0px) scale(1); 
  }
  50% { 
    transform: translateY(-8px) scale(1.05); 
  }
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

@keyframes gradientFlow {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}

/* Responsive Design Complet */
@media (max-width: 991.98px) {
  .projects-section-premium {
    padding: var(--space-3xl) 0;
  }
  
  .projects-navigation-premium {
    flex-direction: column;
    align-items: stretch;
  }
  
  .projects-view-controls {
    align-self: center;
  }
  
  .projects-grid-premium {
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: var(--space-lg);
  }
  
  .filters-controls {
    gap: var(--space-sm);
  }
  
  .cta-premium-actions {
    flex-direction: column;
    align-items: center;
    gap: var(--space-md);
  }
}

@media (max-width: 767.98px) {
  .projects-main-title {
    font-size: var(--text-3xl);
  }
  
  .projects-subtitle {
    flex-direction: column;
    gap: var(--space-sm);
  }
  
  .projects-quick-stats {
    gap: var(--space-md);
  }
  
  .quick-stat-item {
    padding: var(--space-md) var(--space-lg);
    min-width: 100px;
  }
  
  .stat-value {
    font-size: var(--text-2xl);
  }
  
  .filters-controls {
    justify-content: flex-start;
    overflow-x: auto;
    padding-bottom: var(--space-sm);
  }
  
  .filter-btn {
    flex-shrink: 0;
    padding: var(--space-2) var(--space-md);
    font-size: var(--text-sm);
  }
  
  .metadata-row {
    flex-direction: column;
    gap: var(--space-1);
  }
  
  .projects-cta-premium {
    padding: var(--space-2xl) var(--space-lg);
    margin: var(--space-2xl) var(--space-md) 0;
  }
  
  .btn-cta-primary,
  .btn-cta-secondary {
    width: 100%;
    max-width: 300px;
    justify-content: center;
  }
}

@media (max-width: 575.98px) {
  .projects-grid-premium {
    grid-template-columns: 1fr;
  }
  
  .project-actions {
    flex-direction: column;
  }
  
  .projects-filters-premium {
    margin: 0 -var(--space-md) var(--space-xl) -var(--space-md);
    border-radius: var(--border-radius-lg);
    padding: var(--space-md);
  }
  
  .filter-btn {
    padding: var(--space-sm) var(--space-2);
    font-size: var(--text-sm);
  }
  
  .btn-cta-primary,
  .btn-cta-secondary {
    width: 100%;
    max-width: none;
    padding: var(--space-md) var(--space-lg);
  }
}

/* Classe utilitaire */
.d-none {
  display: none !important;
}

/* Optimisations performance */
.projects-section-premium *,
.projects-section-premium *::before,
.projects-section-premium *::after {
  box-sizing: border-box;
}

/* Accessibility */
@media (prefers-reduced-motion: reduce) {
  .projects-section-premium *,
  .projects-section-premium *::before,
  .projects-section-premium *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* États focus pour accessibilité */
.filter-btn:focus,
.btn-project-details:focus,
.btn-cta-primary:focus,
.btn-cta-secondary:focus {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.filter-btn:focus:not(:focus-visible),
.btn-project-details:focus:not(:focus-visible),
.btn-cta-primary:focus:not(:focus-visible),
.btn-cta-secondary:focus:not(:focus-visible) {
  outline: none;
}
/* === CTA: Voir nos projets (+20 projets variés) === */
.btn-cta-discover {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.9rem 1.4rem;
  border: none;
  border-radius: var(--border-radius-full, 9999px);
  color: var(--color-white, #fff);
  cursor: pointer;
  background: linear-gradient(135deg, var(--color-primary-light, #3b82f6), var(--color-primary, #2c5aa0));
  box-shadow: 0 10px 25px rgba(30, 64, 175, 0.25);
  transition: transform var(--transition-normal, 350ms cubic-bezier(0.4,0,0.2,1)), 
              box-shadow var(--transition-normal, 350ms cubic-bezier(0.4,0,0.2,1));
  overflow: hidden;
  isolation: isolate;
  will-change: transform;
}

.btn-cta-discover .btn-content {
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.2px;
}

.btn-cta-discover .btn-text {
  font-size: 0.95rem;
}

.btn-cta-discover .btn-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.6rem;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--color-primary, #2c5aa0);
  background: rgba(255,255,255,0.92);
  border-radius: var(--border-radius-full, 9999px);
  border: 1px solid rgba(255,255,255,0.6);
}

/* Fond animé brillant (cohérent avec .btn::before des autres CTA) */
.btn-cta-discover .btn-bg-animated {
  position: absolute;
  inset: 0;
  background: radial-gradient(120px 120px at var(--x, 50%) var(--y, 50%), rgba(255,255,255,0.18), transparent 60%) no-repeat,
              linear-gradient(90deg, transparent, rgba(255,255,255,0.14), transparent);
  transform: translateX(-100%);
  transition: transform var(--transition-slow, 500ms cubic-bezier(0.4,0,0.2,1));
  z-index: 1;
  pointer-events: none;
}

.btn-cta-discover:hover .btn-bg-animated,
.btn-cta-discover:focus-visible .btn-bg-animated {
  transform: translateX(100%);
}

.btn-cta-discover:hover,
.btn-cta-discover:focus-visible {
  transform: translateY(-3px) scale(1.02);
  box-shadow: 0 18px 40px rgba(30, 64, 175, 0.35);
  outline: none;
}

.btn-cta-discover:active {
  transform: translateY(0);
  box-shadow: 0 8px 20px rgba(30, 64, 175, 0.25);
}

/* Variante petit écran */
@media (max-width: 576px) {
  .btn-cta-discover {
    width: 100%;
    justify-content: center;
    padding: 0.9rem 1.1rem;
  }
  .btn-cta-discover .btn-text {
    font-size: 0.9rem;
  }
  .btn-cta-discover .btn-badge {
    display: none;
  }
}

/* Option: effet lumière suit la souris (facultatif) */
#btn-voir-plus:hover .btn-bg-animated {
  animation: none;
}
#btn-voir-plus {
  --x: 50%;
  --y: 50%;
}
#btn-voir-plus.add-mouse-light:hover .btn-bg-animated {
  background: radial-gradient(140px 140px at var(--x) var(--y), rgba(255,255,255,0.22), transparent 60%) no-repeat,
              linear-gradient(90deg, transparent, rgba(255,255,255,0.14), transparent);
}


/* =========================================================================
   CSS PREMIUM SECTION TÉMOIGNAGES — SB INGÉNIERIE BTP 2025 (VERSION FINALE)
   Design cohérent, mobile-first, accessible et performant
   ========================================================================= */

/* Section Témoignages principale */
.testimonials-section {
  position: relative;
  background: linear-gradient(135deg, var(--btp-white) 0%, var(--gray-50) 50%, var(--btp-white) 100%);
  color: var(--gray-800);
  padding: var(--space-4xl) 0;
  overflow: hidden;
  isolation: isolate;
}

/* Background effects subtils */
.testimonials-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: 
    radial-gradient(circle at 20% 30%, rgba(30, 58, 138, 0.03) 1px, transparent 1px),
    radial-gradient(circle at 80% 70%, rgba(5, 150, 105, 0.02) 1px, transparent 1px);
  background-size: 70px 70px;
  opacity: 0.6;
  pointer-events: none;
  z-index: var(--z-background);
}

/* Header section avec décoration premium */
.testimonials-section .section-header {
  position: relative;
  z-index: var(--z-content);
  margin-bottom: var(--space-4xl);
  text-align: center;
}

.testimonials-header-decoration {
  position: relative;
  margin-bottom: var(--space-lg);
}

.quote-decoration {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--btp-primary), var(--btp-secondary));
  margin-bottom: var(--space-lg);
  box-shadow: var(--shadow-lg);
  animation: quoteFloat 4s ease-in-out infinite;
  position: relative;
}

.quote-decoration::before {
  content: '';
  position: absolute;
  inset: -3px;
  border-radius: 50%;
  background: linear-gradient(45deg, var(--btp-accent), var(--btp-primary), var(--btp-success));
  opacity: 0.3;
  animation: rotate 6s linear infinite;
  z-index: -1;
}

.quote-decoration i {
  font-size: 2rem;
  color: white;
  z-index: 2;
}

.testimonials-section .section-title {
  font-size: var(--text-4xl);
  font-weight: 900;
  line-height: 1.2;
  margin: 0 0 var(--space-lg);
  color: var(--gray-900);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-sm);
}

.testimonials-section .section-title i {
  color: var(--btp-primary);
  font-size: 0.9em;
  animation: commentsGlow 3s ease-in-out infinite;
}

.testimonials-section .section-subtitle {
  font-size: var(--text-lg);
  line-height: 1.7;
  color: var(--gray-600);
  margin: 0 auto var(--space-md);
  max-width: 800px;
  font-weight: 400;
}

/* Badge de confiance */
.testimonials-trust-badge {
  margin-top: var(--space-lg);
}

.testimonials-trust-badge .badge {
  background: rgba(5, 150, 105, 0.1);
  color: var(--btp-success);
  border: 1px solid rgba(5, 150, 105, 0.2);
  border-radius: var(--radius-full);
  padding: var(--space-sm) var(--space-lg);
  font-weight: 700;
  font-size: var(--text-sm);
  display: inline-flex;
  align-items: center;
  gap: var(--space-xs);
  backdrop-filter: blur(8px);
}

/* Grille statistiques premium */
.testimonials-stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: var(--space-xl);
  margin-bottom: var(--space-4xl);
  max-width: 1000px;
  margin-inline: auto;
}

.stat-card {
  background: var(--btp-white);
  padding: var(--space-xl);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-md);
  border: 1px solid rgba(30, 58, 138, 0.1);
  text-align: center;
  transition: all var(--transition-normal) var(--ease-out);
  cursor: pointer;
  position: relative;
  overflow: hidden;
}

.stat-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--btp-primary), var(--btp-accent));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--transition-normal) var(--ease-out);
}

.stat-card:hover {
  transform: translateY(-8px) scale(1.02);
  box-shadow: var(--shadow-2xl);
  border-color: rgba(30, 58, 138, 0.2);
}

.stat-card:hover::before {
  transform: scaleX(1);
}

.stat-icon {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--btp-primary), var(--btp-secondary));
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-size: 1.5rem;
  margin: 0 auto var(--space-lg);
  box-shadow: var(--shadow-md);
  transition: transform var(--transition-normal) var(--ease-bounce);
}

.stat-card:hover .stat-icon {
  transform: scale(1.1) rotate(10deg);
}

.stat-value {
  font-size: var(--text-3xl);
  font-weight: 900;
  color: var(--btp-primary);
  line-height: 1;
  margin-bottom: 0.5rem;
}

.stat-label {
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--gray-600);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* Wrapper carousel premium */
.testimonials-premium-wrapper {
  position: relative;
  max-width: 1200px;
  margin: 0 auto var(--space-4xl);
}

/* États de chargement */
.testimonials-loading {
  padding: var(--space-4xl) 0;
  text-align: center;
}

.spinner {
  width: 40px;
  height: 40px;
  border: 4px solid rgba(30, 58, 138, 0.1);
  border-left: 4px solid var(--btp-primary);
  border-radius: 50%;
  animation: spin 1s linear infinite;
  margin: 0 auto var(--space-lg);
}

.loading-text {
  color: var(--gray-600);
  font-size: var(--text-base);
  margin: 0;
}

/* Message vide */
.testimonials-empty {
  padding: var(--space-4xl) 0;
}

.testimonials-empty .alert {
  background: rgba(14, 165, 233, 0.1);
  border: 1px solid rgba(14, 165, 233, 0.2);
  color: var(--btp-info);
  border-radius: var(--radius-lg);
  padding: var(--space-xl);
  max-width: 600px;
  margin: 0 auto;
}

/* Carousel moderne */
.testimonials-carousel-modern {
  position: relative;
  background: var(--btp-white);
  border-radius: var(--radius-2xl);
  box-shadow: var(--shadow-xl);
  border: 1px solid rgba(30, 58, 138, 0.1);
  overflow: hidden;
  padding: var(--space-2xl);
}

.carousel-viewport {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-lg);
  min-height: 300px;
}

.carousel-track {
  display: flex;
  transition: transform var(--transition-slow) var(--ease-out);
  will-change: transform;
}

/* Card témoignage dans carousel */
.testimonial-card {
  flex: 0 0 100%;
  padding: var(--space-xl);
  text-align: center;
  position: relative;
}

.testimonial-stars {
  margin-bottom: var(--space-lg);
  font-size: 1.2rem;
  color: var(--btp-warning);
}

.testimonial-quote {
  font-size: var(--text-xl);
  font-style: italic;
  line-height: 1.7;
  color: var(--gray-700);
  margin: 0 0 var(--space-xl);
  position: relative;
  padding: 0 var(--space-lg);
}

.testimonial-quote::before,
.testimonial-quote::after {
  content: '"';
  font-size: 3rem;
  color: var(--btp-primary);
  opacity: 0.3;
  position: absolute;
  font-family: serif;
}

.testimonial-quote::before {
  top: -10px;
  left: 0;
}

.testimonial-quote::after {
  bottom: -30px;
  right: 0;
}

.testimonial-author {
  border-top: 1px solid var(--gray-200);
  padding-top: var(--space-lg);
}

.testimonial-author h6 {
  font-size: var(--text-lg);
  font-weight: 800;
  color: var(--gray-900);
  margin: 0 0 var(--space-xs);
}

.position-company {
  font-size: var(--text-sm);
  color: var(--gray-600);
  line-height: 1.4;
}

.position-company strong {
  color: var(--btp-primary);
  font-weight: 700;
}

/* Navigation carousel */
.carousel-navigation {
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  transform: translateY(-50%);
  display: flex;
  justify-content: space-between;
  pointer-events: none;
  z-index: var(--z-floating);
}

.carousel-btn {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--btp-primary), var(--btp-secondary));
  border: none;
  color: white;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--shadow-lg);
  transition: all var(--transition-normal) var(--ease-out);
  pointer-events: all;
  backdrop-filter: blur(8px);
}

.carousel-btn:hover {
  transform: scale(1.1);
  box-shadow: var(--shadow-xl);
  background: linear-gradient(135deg, var(--btp-secondary), var(--btp-primary));
}

.carousel-btn-prev {
  margin-left: -25px;
}

.carousel-btn-next {
  margin-right: -25px;
}

.btn-icon-wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Pagination */
.carousel-pagination {
  display: flex;
  justify-content: center;
  gap: var(--space-sm);
  margin-top: var(--space-lg);
}

.pagination-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--gray-300);
  border: none;
  cursor: pointer;
  transition: all var(--transition-normal) var(--ease-out);
}

.pagination-dot.active,
.pagination-dot:hover {
  background: var(--btp-primary);
  transform: scale(1.2);
}

/* Contrôles de lecture */
.carousel-controls {
  position: absolute;
  top: var(--space-lg);
  right: var(--space-lg);
  z-index: var(--z-floating);
}

.control-btn {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(30, 58, 138, 0.1);
  border: 1px solid rgba(30, 58, 138, 0.2);
  color: var(--btp-primary);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all var(--transition-normal) var(--ease-out);
  backdrop-filter: blur(8px);
}

.control-btn:hover {
  background: var(--btp-primary);
  color: white;
  border-color: var(--btp-primary);
}

/* Fallback grille */
.testimonials-grid-fallback {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: var(--space-xl);
}

.testimonial-card-static {
  background: var(--btp-white);
  padding: var(--space-xl);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  border: 1px solid rgba(30, 58, 138, 0.1);
  text-align: center;
}

/* Section crédibilité */
.testimonials-credibility-section {
  background: var(--btp-white);
  padding: var(--space-2xl);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-md);
  border: 1px solid rgba(30, 58, 138, 0.1);
  margin-bottom: var(--space-4xl);
}

.credibility-content h4 {
  font-size: var(--text-xl);
  font-weight: 800;
  color: var(--btp-primary);
  margin-bottom: var(--space-md);
  display: flex;
  align-items: center;
  gap: var(--space-sm);
}

.credibility-content p {
  font-size: var(--text-base);
  line-height: 1.6;
  color: var(--gray-600);
  margin-bottom: var(--space-lg);
}

.certifications-list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
}

.cert-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--space-xs);
  background: rgba(30, 58, 138, 0.1);
  color: var(--btp-primary);
  padding: var(--space-xs) var(--space-sm);
  border-radius: var(--radius-md);
  font-size: var(--text-sm);
  font-weight: 600;
}

.credibility-stats {
  text-align: center;
}

.big-stat {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: var(--space-xs);
  margin-bottom: var(--space-sm);
}

.big-stat .stat-number {
  font-size: var(--text-4xl);
  font-weight: 900;
  color: var(--btp-primary);
  line-height: 1;
}

.big-stat .stat-unit {
  font-size: var(--text-xl);
  font-weight: 700;
  color: var(--btp-accent);
}

.stat-description {
  font-size: var(--text-sm);
  color: var(--gray-600);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* CTA Premium */
.testimonials-cta-premium {
  background: linear-gradient(135deg, var(--btp-primary), var(--btp-primary-dark));
  color: white;
  padding: var(--space-4xl) var(--space-2xl);
  border-radius: var(--radius-2xl);
  box-shadow: var(--shadow-2xl);
  position: relative;
  overflow: hidden;
  text-align: center;
}

.testimonials-cta-premium::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--btp-accent), #ea580c, var(--btp-success), var(--btp-info));
  background-size: 400% 400%;
  animation: gradientFlow 4s ease-in-out infinite;
}

.cta-premium-header h3 {
  font-size: var(--text-2xl);
  font-weight: 900;
  margin-bottom: var(--space-md);
  line-height: 1.3;
}

.cta-premium-header .lead {
  font-size: var(--text-lg);
  opacity: 0.95;
  line-height: 1.6;
  margin-bottom: var(--space-xl);
}

/* Boutons CTA premium */
.cta-premium-actions {
  display: flex;
  justify-content: center;
  gap: var(--space-lg);
  margin-bottom: var(--space-2xl);
  flex-wrap: wrap;
}

.btn-premium-hero,
.btn-premium-secondary,
.btn-premium-outline {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: var(--space-sm);
  padding: var(--space-md) var(--space-xl);
  border: none;
  border-radius: var(--radius-full);
  font-weight: 700;
  font-size: var(--text-base);
  cursor: pointer;
  transition: all var(--transition-normal) var(--ease-out);
  overflow: hidden;
  backdrop-filter: blur(8px);
  min-height: 52px;
  text-decoration: none;
}

.btn-premium-hero {
  background: linear-gradient(135deg, var(--btp-accent), #ea580c);
  color: white;
  border: 2px solid rgba(255, 255, 255, 0.2);
  box-shadow: var(--shadow-lg);
}

.btn-premium-secondary {
  background: linear-gradient(135deg, #25d366, #128c7e);
  color: white;
  border: 2px solid rgba(255, 255, 255, 0.2);
  box-shadow: var(--shadow-lg);
}

.btn-premium-outline {
  background: transparent;
  color: white;
  border: 2px solid rgba(255, 255, 255, 0.3);
}

.btn-premium-hero:hover,
.btn-premium-secondary:hover {
  transform: translateY(-3px) scale(1.05);
  box-shadow: var(--shadow-2xl);
}

.btn-premium-outline:hover {
  background: white;
  color: var(--btp-primary);
  border-color: white;
  transform: translateY(-2px);
}

.btn-hero-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
  transform: translateX(-100%);
  transition: transform var(--transition-slow) var(--ease-out);
}

.btn-premium-hero:hover .btn-hero-bg,
.btn-premium-secondary:hover .btn-hero-bg,
.btn-premium-outline:hover .btn-hero-bg {
  transform: translateX(100%);
}

/* Note de continuité */
.cta-premium-note {
  background: linear-gradient(145deg, 
    rgba(15, 23, 42, 0.7) 0%, 
    rgba(30, 41, 59, 0.8) 100%);
  border-radius: var(--radius-lg);
  padding: var(--space-lg);
  margin-bottom: var(--space-lg);
  backdrop-filter: blur(20px);
  border: 1px solid rgba(148, 163, 184, 0.2);
  box-shadow: 
    0 10px 25px rgba(0, 0, 0, 0.15),
    0 0 0 1px rgba(255, 255, 255, 0.05) inset;
}

.cta-premium-note .note-content i {
  color: #F97316 !important; /* Orange BTP premium */
  font-size: 1.2em;
  margin-top: 1px;
}

.cta-premium-note .note-content span {
  color: #F8FAFC !important; /* Blanc premium */
  font-weight: 400;
}

.cta-premium-note strong:first-of-type {
  color: #FCD34D !important; /* Jaune premium pour le titre */
  font-weight: 700;
  letter-spacing: 0.5px;
}

.cta-premium-note strong:not(:first-of-type) {
  color: #60A5FA !important; /* Bleu technique */
  font-weight: 600;
}

.cta-premium-note .text-muted {
  color: rgba(203, 213, 225, 0.8) !important;
  font-size: 0.84em;
}


/* Garanties techniques */
.guarantees-section {
  background: rgba(255, 255, 255, 0.1);
  border-radius: var(--radius-lg);
  padding: var(--space-xl);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.2);
}

.guarantee-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-sm);
  padding: var(--space-md);
}

.guarantee-item i {
  font-size: 2rem;
  margin-bottom: var(--space-xs);
}

.guarantee-text {
  text-align: center;
}

.guarantee-text strong {
  display: block;
  font-size: var(--text-lg);
  font-weight: 900;
  line-height: 1;
  margin-bottom: 0.25rem;
}

.guarantee-text small {
  font-size: var(--text-xs);
  opacity: 0.9;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* Animations */
@keyframes quoteFloat {
  0%, 100% { transform: translateY(0px) rotate(0deg); }
  50% { transform: translateY(-10px) rotate(2deg); }
}

@keyframes commentsGlow {
  0%, 100% { 
    color: var(--btp-primary);
    text-shadow: 0 0 5px rgba(30, 58, 138, 0.3);
  }
  50% { 
    color: var(--btp-accent);
    text-shadow: 0 0 15px rgba(249, 115, 22, 0.5);
  }
}

@keyframes spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

@keyframes rotate {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

@keyframes gradientFlow {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}

/* Responsive Design - Mobile First */
@media (max-width: 991.98px) {
  .testimonials-section {
    padding: var(--space-3xl) 0;
  }
  
  .testimonials-stats-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-lg);
  }
  
  .cta-premium-actions {
    flex-direction: column;
    align-items: center;
  }
  
  .carousel-navigation {
    display: none !important;
  }
  
  .carousel-controls {
    display: none !important;
  }
}

@media (max-width: 767.98px) {
  .testimonials-section {
    padding: var(--space-2xl) 0;
  }
  
  .testimonials-section .section-title {
    font-size: var(--text-3xl);
    flex-direction: column;
    gap: var(--space-xs);
  }
  
  .quote-decoration {
    width: 60px;
    height: 60px;
    margin-bottom: var(--space-md);
  }
  
  .quote-decoration i {
    font-size: 1.5rem;
  }
  
  .testimonials-stats-grid {
    grid-template-columns: 1fr;
    gap: var(--space-md);
  }
  
  .testimonials-carousel-modern {
    padding: var(--space-lg);
  }
  
  .testimonial-card {
    padding: var(--space-lg);
  }
  
  .testimonial-quote {
    font-size: var(--text-lg);
    padding: 0;
  }
  
  .testimonials-credibility-section .row {
    flex-direction: column;
    text-align: center;
    gap: var(--space-lg);
  }
  
  .note-content {
    flex-direction: column;
    text-align: center;
  }
}

@media (max-width: 575.98px) {
  .cta-premium-actions {
    gap: var(--space-md);
  }
  
  .btn-premium-hero,
  .btn-premium-secondary,
  .btn-premium-outline {
    width: 100%;
    justify-content: center;
  }
  
  .guarantees-section .row {
    gap: var(--space-sm);
  }
}

/* Corrections spécifiques très petits écrans */
@media (max-width: 479.98px) {
  .testimonials-section {
    padding: var(--space-2xl) 0 var(--space-xl);
  }
  
  .testimonials-cta-premium {
    padding: var(--space-lg);
    margin: var(--space-xl) -0.5rem 0;
    border-radius: var(--radius-lg);
  }
  
  .cta-premium-header h3 {
    font-size: var(--text-lg);
    margin-bottom: var(--space-sm);
    line-height: 1.4;
  }
  
  .cta-premium-header .lead {
    font-size: var(--text-base);
    margin-bottom: var(--space-lg);
  }
  
  .cta-premium-actions {
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
    margin-bottom: var(--space-lg);
    width: 100%;
  }
  
  .btn-premium-hero,
  .btn-premium-secondary,
  .btn-premium-outline {
    width: 100%;
    padding: var(--space-md) var(--space-lg);
    font-size: var(--text-sm);
    text-align: center;
    justify-content: center;
    min-height: 48px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  
  .btn-premium-outline {
    white-space: normal;
    line-height: 1.3;
    padding: var(--space-sm) var(--space-md);
  }
  
  .stat-card {
    padding: var(--space-md);
  }
  
  .stat-icon {
    width: 50px;
    height: 50px;
    font-size: 1.3rem;
    margin-bottom: var(--space-md);
  }
  
  .stat-value {
    font-size: var(--text-xl);
  }
  
  .carousel-viewport {
    min-height: 280px;
    padding: var(--space-sm);
  }
  
  .testimonial-quote::before,
  .testimonial-quote::after {
    font-size: 2rem;
  }
  
  .cta-premium-note {
    padding: var(--space-md);
    margin-bottom: var(--space-md);
  }
  
  .guarantees-section {
    padding: var(--space-md);
  }
  
  .guarantee-item {
    padding: var(--space-sm);
  }
  
  .guarantee-item i {
    font-size: 1.5rem;
  }
  
  .guarantee-text strong {
    font-size: var(--text-base);
  }
  
  .testimonials-credibility-section {
    padding: var(--space-lg);
    margin: var(--space-xl) -0.5rem;
  }
  
  .big-stat .stat-number {
    font-size: var(--text-3xl);
  }
  
  .big-stat .stat-unit {
    font-size: var(--text-lg);
  }
}

/* Optimisations touch pour mobile */
@media (hover: none) and (pointer: coarse) {
  .stat-card:hover {
    transform: none;
    box-shadow: var(--shadow-md);
  }
  
  .btn-premium-hero:hover,
  .btn-premium-secondary:hover,
  .btn-premium-outline:hover {
    transform: none;
  }
  
  .testimonials-carousel-modern {
    touch-action: pan-x;
  }
}

/* États focus et accessibilité */
.stat-card:focus,
.carousel-btn:focus,
.pagination-dot:focus,
.control-btn:focus,
.btn-premium-hero:focus,
.btn-premium-secondary:focus,
.btn-premium-outline:focus {
  outline: 2px solid var(--btp-accent);
  outline-offset: 2px;
}

.stat-card:focus:not(:focus-visible),
.carousel-btn:focus:not(:focus-visible),
.pagination-dot:focus:not(:focus-visible),
.control-btn:focus:not(:focus-visible),
.btn-premium-hero:focus:not(:focus-visible),
.btn-premium-secondary:focus:not(:focus-visible),
.btn-premium-outline:focus:not(:focus-visible) {
  outline: none;
}

/* Optimisations performance */
.testimonials-section *,
.testimonials-section *::before,
.testimonials-section *::after {
  box-sizing: border-box;
}

/* Accessibility */
@media (prefers-reduced-motion: reduce) {
  .testimonials-section *,
  .testimonials-section *::before,
  .testimonials-section *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* Print styles */
@media print {
  .testimonials-section {
    background: white !important;
    color: black !important;
  }
  
  .carousel-navigation,
  .carousel-controls,
  .testimonials-cta-premium {
    display: none !important;
  }
  
  .testimonials-carousel-modern {
    box-shadow: none !important;
    border: 1px solid #ccc !important;
  }
}



/* =========================================================================
   CSS PREMIUM SECTION ÉQUIPE — SB INGÉNIERIE BTP 2025 (VERSION FINALE)
   Design moderne avec overlay boutons, mobile-first, accessible
   ========================================================================= */

/* =========================================================================
   CSS PREMIUM SECTION ÉQUIPE — SB INGÉNIERIE BTP 2025 (VERSION FINALE)
   Design moderne, overlay fonctionnel, mobile-first, accessible
   ========================================================================= */

/* =========================================================================
   CSS PREMIUM SECTION ÉQUIPE — SB INGÉNIERIE BTP 2025 (VERSION FINALE)
   Combinaison optimale des deux versions avec overlay fonctionnel
   ========================================================================= */

/* Variables CSS harmonisées */
:root {
  --sb-primary: #1e3a8a;
  --sb-primary-dark: #1e40af;
  --sb-primary-light: #3b82f6;
  --sb-white: #ffffff;
  --sb-light: #f8fafc;
  --sb-gray-50: #f9fafb;
  --sb-gray-100: #f3f4f6;
  --sb-gray-200: #e5e7eb;
  --sb-gray-300: #d1d5db;
  --sb-gray-600: #4b5563;
  --sb-gray-700: #374151;
  --sb-gray-800: #1f2937;
  --sb-gray-900: #111827;
  --sb-accent: #f97316;
  --sb-success: #10b981;
  --sb-info: #0ea5e9;
  --sb-warning: #f59e0b;
}

/* ===== SECTION ÉQUIPE PRINCIPALE ===== */
.team-section {
  background: linear-gradient(135deg, var(--sb-light) 0%, #e2e8f0 50%, #cbd5e1 100%);
  padding: 5rem 0;
  position: relative;
  overflow: hidden;
}

.team-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: 
    radial-gradient(circle at 25% 25%, rgba(30, 58, 138, 0.04) 1px, transparent 1px),
    radial-gradient(circle at 75% 75%, rgba(16, 185, 129, 0.06) 1px, transparent 1px);
  background-size: 50px 50px, 80px 80px;
  background-position: 0 0, 25px 25px;
  pointer-events: none;
  opacity: 0.5;
}

.container {
  position: relative;
  z-index: 1;
}

/* ===== EN-TÊTE SECTION PREMIUM ===== */
.team-header-decoration {
  position: relative;
  display: flex;
  justify-content: center;
  margin-bottom: 2.5rem;
}

.team-icon-decoration {
  width: 90px;
  height: 90px;
  background: linear-gradient(135deg, var(--sb-primary), var(--sb-primary-dark));
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 15px 40px rgba(30, 58, 138, 0.3);
  position: relative;
  animation: teamIconFloat 4s ease-in-out infinite;
}

.team-icon-decoration::before {
  content: '';
  position: absolute;
  inset: -3px;
  border-radius: 50%;
  background: linear-gradient(45deg, var(--sb-accent), transparent, var(--sb-success));
  opacity: 0.4;
  animation: rotate 8s linear infinite;
  z-index: -1;
}

.team-icon-decoration i {
  font-size: 2.5rem;
  color: white;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,0.2));
}

.team-section .section-title h2 {
  font-size: clamp(2rem, 4vw, 2.75rem);
  font-weight: 900;
  color: var(--sb-gray-900);
  margin-bottom: 1.5rem;
  letter-spacing: -0.02em;
  line-height: 1.1;
  text-align: center;
}

.team-section .lead {
  font-size: clamp(1.1rem, 2.5vw, 1.3rem);
  color: var(--sb-gray-600);
  font-weight: 600;
  margin-bottom: 1.5rem;
  line-height: 1.4;
  text-align: center;
}

.team-description {
  max-width: 700px;
  margin: 0 auto 3rem auto;
  text-align: center;
}

.team-description p {
  font-size: clamp(1rem, 2vw, 1.1rem);
  color: var(--sb-gray-700);
  line-height: 1.6;
  font-weight: 500;
}

/* ===== GRILLE ÉQUIPE RESPONSIVE OPTIMISÉE ===== */
.team-premium-grid {
  display: grid;
  gap: 2rem;
  margin: 0 auto 4rem auto;
  padding: 0 1rem;
  justify-items: center;
  max-width: 1400px;
  /* Grille responsive adaptative */
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}

/* État de chargement */
.team-loading {
  grid-column: 1 / -1;
  padding: 3rem;
  color: var(--sb-gray-600);
  font-size: 1.1rem;
  font-weight: 500;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
}

.team-loading i {
  color: var(--sb-primary);
  font-size: 1.2em;
  animation: spin 1s linear infinite;
}

/* ===== CARTES ÉQUIPE PREMIUM ===== */
.team-member,
.team-card {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 300px;
  max-width: 380px;
  min-height: 700px;
  background: rgba(255, 255, 255, 0.95);
  border-radius: 24px;
  box-shadow: 
    0 10px 30px rgba(15, 23, 42, 0.08),
    0 4px 15px rgba(15, 23, 42, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.3);
  overflow: hidden;
  position: relative;
  transition: all 0.3s ease;
  cursor: pointer;
}

.team-member::before,
.team-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 5px;
  background: linear-gradient(90deg, var(--sb-primary), var(--sb-success), var(--sb-warning), var(--sb-accent));
  opacity: 0;
  z-index: 10;
  transition: opacity 0.3s ease;
}

.team-member:hover::before,
.team-card:hover::before {
  opacity: 1;
}

.team-member:hover,
.team-card:hover {
  transform: translateY(-8px) scale(1.02);
  box-shadow: 
    0 20px 50px rgba(15, 23, 42, 0.12),
    0 8px 25px rgba(15, 23, 42, 0.08);
}

/* ===== CONTAINER IMAGE OPTIMISÉ ===== */
.team-member-photo-container,
.team-image-container {
  position: relative;
  width: 100%;
  height: 260px;
  overflow: hidden;
  background: linear-gradient(135deg, var(--sb-light), #e2e8f0);
  flex-shrink: 0;
}

.team-member-photo,
.team-image {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
  transition: transform 0.3s ease, opacity 0.3s ease;
  opacity: 0;
  border: none !important;
  outline: none !important;
}

/* Image chargée */
.team-member-photo.loaded,
.team-image.loaded,
.team-member-photo[data-loaded="true"],
.team-image[data-loaded="true"] {
  opacity: 1 !important;
}

.team-member:hover .team-member-photo,
.team-card:hover .team-image {
  transform: scale(1.05);
}

/* ===== OVERLAY SOCIAL FONCTIONNEL ===== */
.team-member-overlay,
.team-overlay {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100% !important;
  height: 100% !important;
  background: linear-gradient(135deg, rgba(30, 58, 138, 0.9), rgba(30, 64, 175, 0.85));
  backdrop-filter: blur(4px);
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: all 0.3s ease;
  z-index: 15;
}

/* Afficher overlay au survol desktop */
@media (hover: hover) and (pointer: fine) {
  .team-member:hover .team-member-overlay,
  .team-card:hover .team-overlay,
  .team-member:focus-within .team-member-overlay,
  .team-card:focus-within .team-overlay {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }
}

/* Bouton d'activation mobile */
@media (max-width: 991.98px) {
  .team-member::after,
  .team-card::after {
    content: '⋮';
    position: absolute;
    top: 10px;
    right: 10px;
    width: 30px;
    height: 30px;
    background: rgba(30, 58, 138, 0.8);
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    font-weight: bold;
    z-index: 20;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 2px 8px rgba(30, 58, 138, 0.3);
  }
  
  .team-member::after:hover,
  .team-card::after:hover {
    background: var(--sb-primary);
    transform: scale(1.1);
  }
}

/* Boutons sociaux dans l'overlay */
.team-social {
  display: flex;
  gap: 1.2rem;
  z-index: 16;
  justify-content: center;
}

.team-social a,
.btn-overlay {
  width: 44px;
  height: 44px;
  background: rgba(255, 255, 255, 0.95);
  border-radius: 50%;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  color: var(--sb-primary);
  text-decoration: none;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  transition: all 0.3s ease;
  cursor: pointer;
  position: relative;
  overflow: hidden;
}

.team-social a::before,
.btn-overlay::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
  transform: translateX(-100%);
  transition: transform 0.3s ease;
}

.team-social a:hover::before,
.btn-overlay:hover::before {
  transform: translateX(100%);
}

.team-social a:hover,
.btn-overlay:hover {
  background: white;
  color: var(--sb-success);
  transform: translateY(-2px) scale(1.1);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
}

.btn-overlay-email {
  color: var(--sb-gray-700);
}

.btn-overlay-email:hover {
  background: var(--sb-gray-800);
  color: white;
}

.btn-overlay-linkedin {
  color: #0077b5;
}

.btn-overlay-linkedin:hover {
  background: #0077b5;
  color: white;
}

/* ===== CONTENU CARTES OPTIMISÉ ===== */
.team-member-content,
.team-content {
  padding: 2rem 1.8rem;
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
  background: white;
}

.team-member-name,
.team-content h5 {
  font-size: 1.4rem;
  font-weight: 800;
  color: var(--sb-gray-900);
  margin: 0;
  line-height: 1.3;
  text-align: center;
}

.team-member-role,
.team-position {
  font-size: 1rem;
  color: var(--sb-primary);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  text-align: center;
  margin: 0;
}

.team-member-experience,
.team-experience {
  font-size: 0.9rem;
  color: var(--sb-success);
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  background: rgba(16, 185, 129, 0.1);
  border: 1px solid rgba(16, 185, 129, 0.2);
  border-radius: 8px;
  padding: 0.7rem 1rem;
}

/* ===== BADGES SPÉCIALISÉS ===== */
.team-member-tags,
.team-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  justify-content: center;
  margin: 1rem 0;
}

.team-member-tag,
.team-badges .badge {
  font-size: 0.8rem;
  font-weight: 600;
  padding: 0.4rem 0.8rem;
  border-radius: 12px;
  border: none;
  transition: all 0.2s ease;
  cursor: default;
}

.team-member-tag:hover,
.team-badges .badge:hover {
  transform: translateY(-1px) scale(1.05);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

/* Badges colorés spécialisés BTP */
.badge-patrimoine { background: linear-gradient(135deg, #a855f7, #7c3aed); color: white; }
.badge-cvc { background: linear-gradient(135deg, #06b6d4, #0891b2); color: white; }
.badge-energie { background: linear-gradient(135deg, var(--sb-warning), #d97706); color: white; }
.badge-electricite { background: linear-gradient(135deg, #eab308, #ca8a04); color: white; }
.badge-genie-civil { background: linear-gradient(135deg, var(--sb-primary), var(--sb-primary-dark)); color: white; }
.badge-management { background: linear-gradient(135deg, var(--sb-success), #059669); color: white; }
.badge-btp { background: linear-gradient(135deg, #ef4444, #dc2626); color: white; }
.badge-etudes { background: linear-gradient(135deg, #8b5cf6, #7c3aed); color: white; }
.badge-normes { background: linear-gradient(135deg, #6b7280, #4b5563); color: white; }
.badge-vrd { background: linear-gradient(135deg, #059669, #047857); color: white; }
.badge-default { background: linear-gradient(135deg, #64748b, #475569); color: white; }

/* Description */
.team-member-desc,
.team-bio {
  font-size: 0.95rem;
  color: var(--sb-gray-600);
  line-height: 1.6;
  text-align: center;
  margin: 0;
  min-height: 4rem;
}

.team-member-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--sb-primary);
  font-size: 0.875rem;
  font-weight: 600;
  text-decoration: none;
  transition: color 0.3s ease;
  justify-content: center;
}

.team-member-link:hover {
  color: var(--sb-accent);
}

/* ===== SECTIONS COMPLÉMENTAIRES ===== */
/* Section crédibilité */
.team-credibility-section {
  background: rgba(255, 255, 255, 0.9);
  border-radius: 20px;
  padding: 2rem;
  margin: 3rem 0;
  border: 1px solid rgba(30, 58, 138, 0.1);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.05);
}

.credibility-content h4 {
  font-size: 1.25rem;
  font-weight: 800;
  color: var(--sb-primary);
  margin-bottom: 1.5rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.credibility-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.credibility-list li {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 0;
  font-size: 0.95rem;
  color: var(--sb-gray-700);
}

.expertise-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: center;
}

.expertise-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.4rem 0.8rem;
  background: linear-gradient(135deg, var(--sb-primary), var(--sb-primary-dark));
  color: white;
  border-radius: 12px;
  font-size: 0.8rem;
  font-weight: 600;
  gap: 0.25rem;
  transition: all 0.3s ease;
}

.expertise-badge:hover {
  transform: translateY(-2px);
  background: linear-gradient(135deg, var(--sb-primary-dark), var(--sb-primary));
}

/* Statistiques équipe premium */
.team-stats-premium {
  margin: 4rem 0;
}

.stats-premium-container {
  background: rgba(255, 255, 255, 0.9);
  border-radius: 24px;
  padding: 3rem 2rem;
  box-shadow: 0 15px 40px rgba(15, 23, 42, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.3);
  position: relative;
  overflow: hidden;
  max-width: 1000px;
  margin: 0 auto;
}

.stats-premium-container::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--sb-primary), var(--sb-success), var(--sb-warning), var(--sb-accent));
}

.stats-premium-header {
  text-align: center;
  margin-bottom: 3rem;
}

.stats-premium-header h3 {
  font-size: clamp(1.8rem, 3vw, 2.2rem);
  font-weight: 800;
  color: var(--sb-gray-900);
  margin-bottom: 1rem;
  letter-spacing: -0.02em;
}

.stats-premium-header p {
  font-size: clamp(1rem, 2vw, 1.1rem);
  color: var(--sb-gray-600);
  font-weight: 500;
}

.stats-premium-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 2rem;
}

.stat-premium-card {
  text-align: center;
  padding: 2rem 1rem;
  background: rgba(255, 255, 255, 0.7);
  border-radius: 16px;
  box-shadow: 0 6px 20px rgba(15, 23, 42, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.3);
  transition: all 0.3s ease;
  position: relative;
  overflow: hidden;
}

.stat-premium-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--sb-primary), var(--sb-success));
  transform: translateX(-100%);
  transition: transform 0.3s ease;
}

.stat-premium-card:hover::before {
  transform: translateX(0);
}

.stat-premium-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 30px rgba(15, 23, 42, 0.08);
}

.stat-premium-icon {
  width: 60px;
  height: 60px;
  margin: 0 auto 1.5rem;
  background: linear-gradient(135deg, var(--sb-primary), var(--sb-primary-dark));
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 8px 20px rgba(30, 58, 138, 0.3);
  transition: transform 0.3s ease;
}

.stat-premium-card:hover .stat-premium-icon {
  transform: scale(1.1) rotate(5deg);
}

.stat-premium-icon i {
  font-size: 1.6rem;
  color: white;
}

.stat-premium-value {
  font-size: 2.2rem;
  font-weight: 900;
  margin-bottom: 0.5rem;
  background: linear-gradient(135deg, var(--sb-primary), var(--sb-success));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  line-height: 1;
}

.stat-premium-label {
  font-size: 0.9rem;
  color: var(--sb-gray-900);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 0.5rem;
}

.stat-premium-description {
  font-size: 0.8rem;
  color: var(--sb-gray-600);
  font-weight: 500;
}

/* ===== CTA SECTION PREMIUM ===== */
.team-cta-premium {
  margin-top: 4rem;
}

.cta-premium-wrapper {
  max-width: 900px;
  margin: 0 auto;
}

.cta-premium-background {
  background: linear-gradient(135deg, 
    rgba(30, 58, 138, 0.03), 
    rgba(16, 185, 129, 0.05));
  border-radius: 24px;
  padding: 3rem 2rem;
  box-shadow: 0 15px 40px rgba(15, 23, 42, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.3);
  position: relative;
  overflow: hidden;
}

.cta-premium-background::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--sb-primary), var(--sb-success), var(--sb-warning), var(--sb-accent));
}

.cta-premium-content {
  position: relative;
  z-index: 2;
}

.cta-premium-header h3 {
  font-size: clamp(1.8rem, 3vw, 2.2rem);
  font-weight: 800;
  color: var(--sb-gray-900);
  margin-bottom: 1.5rem;
  letter-spacing: -0.02em;
  text-align: center;
}

.cta-premium-header p {
  font-size: clamp(1rem, 2vw, 1.15rem);
  color: var(--sb-gray-600);
  line-height: 1.6;
  margin-bottom: 2.5rem;
  font-weight: 500;
  text-align: center;
}

.cta-premium-actions {
  display: flex;
  justify-content: center;
  gap: 1.5rem;
  flex-wrap: wrap;
  margin-bottom: 2rem;
}

/* ===== BOUTONS CTA PREMIUM ===== */
.btn-team-premium-primary,
.btn-team-premium-secondary,
.btn-team-premium-outline {
  position: relative;
  padding: 1rem 2rem;
  border-radius: 24px;
  font-weight: 700;
  font-size: 1rem;
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: all 0.3s ease;
  overflow: hidden;
  z-index: 1;
}

.btn-team-premium-primary {
  background: linear-gradient(135deg, var(--sb-primary), var(--sb-primary-dark));
  color: white;
  box-shadow: 0 8px 25px rgba(30, 58, 138, 0.25);
}

.btn-team-premium-secondary {
  background: linear-gradient(135deg, var(--sb-success), #059669);
  color: white;
  box-shadow: 0 8px 25px rgba(16, 185, 129, 0.25);
}

.btn-team-premium-outline {
  background: rgba(255, 255, 255, 0.8);
  color: var(--sb-primary);
  border: 2px solid var(--sb-primary);
  box-shadow: 0 6px 20px rgba(30, 58, 138, 0.12);
}

.btn-hero-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, 
    transparent, 
    rgba(255, 255, 255, 0.15), 
    transparent);
  transform: translateX(-100%);
  transition: transform 0.6s ease;
  z-index: -1;
}

.btn-team-premium-primary:hover,
.btn-team-premium-secondary:hover,
.btn-team-premium-outline:hover {
  transform: translateY(-3px) scale(1.02);
}

.btn-team-premium-primary:hover {
  box-shadow: 0 12px 35px rgba(30, 58, 138, 0.35);
}

.btn-team-premium-secondary:hover {
  box-shadow: 0 12px 35px rgba(16, 185, 129, 0.35);
}

.btn-team-premium-outline:hover {
  background: var(--sb-primary);
  color: white;
  box-shadow: 0 10px 30px rgba(30, 58, 138, 0.25);
}

.btn-team-premium-primary:hover .btn-hero-bg,
.btn-team-premium-secondary:hover .btn-hero-bg,
.btn-team-premium-outline:hover .btn-hero-bg {
  transform: translateX(100%);
}

.cta-premium-note {
  text-align: center;
  padding-top: 2rem;
  border-top: 1px solid rgba(30, 58, 138, 0.15);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
  font-size: 0.95rem;
  color: var(--sb-gray-600);
  line-height: 1.5;
}

.cta-premium-note i {
  color: var(--sb-success);
  font-size: 1.1em;
  flex-shrink: 0;
}

.cta-premium-note strong {
  color: var(--sb-gray-900);
}

/* ===== ANIMATIONS ===== */
@keyframes teamIconFloat {
  0%, 100% { transform: translateY(0px) scale(1); }
  50% { transform: translateY(-8px) scale(1.05); }
}

@keyframes rotate {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

/* ===== RESPONSIVE DESIGN COMPLET ===== */
/* Desktop très large */
@media (min-width: 1600px) {
  .team-premium-grid {
    grid-template-columns: repeat(4, 1fr);
    max-width: 1600px;
    gap: 2.5rem;
  }
  .team-member, .team-card {
    min-width: 350px;
    max-width: 380px;
  }
}

/* Desktop large */
@media (min-width: 1200px) and (max-width: 1599.98px) {
  .team-premium-grid {
    grid-template-columns: repeat(3, 1fr);
    max-width: 1200px;
    gap: 2rem;
  }
  .team-member, .team-card {
    min-width: 320px;
    max-width: 360px;
  }
}

/* Desktop moyen */
@media (min-width: 992px) and (max-width: 1199.98px) {
  .team-premium-grid {
    grid-template-columns: repeat(3, 1fr);
    max-width: 1000px;
    gap: 1.5rem;
  }
  .team-member, .team-card {
    min-width: 280px;
    max-width: 320px;
    min-height: 650px;
  }
  .team-member-photo-container, .team-image-container {
    height: 220px;
  }
  .team-member-content, .team-content {
    padding: 1.8rem 1.5rem;
  }
}

/* Tablette */
@media (min-width: 768px) and (max-width: 991.98px) {
  .team-premium-grid {
    grid-template-columns: repeat(2, 1fr);
    max-width: 800px;
    gap: 2rem;
  }
  .team-member, .team-card {
    min-width: 320px;
    max-width: 380px;
    min-height: 600px;
  }
  .team-member-photo-container, .team-image-container {
    height: 240px;
  }
  .stats-premium-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Mobile */
@media (max-width: 767.98px) {
  .team-section {
    padding: 3rem 0;
  }
  .team-premium-grid {
    grid-template-columns: 1fr;
    max-width: 95vw;
    gap: 2rem;
    padding: 0 1rem;
  }
  .team-member, .team-card {
    min-width: auto;
    max-width: 100%;
    min-height: 520px;
    margin: 0 auto;
  }
  .team-member-photo-container, .team-image-container {
    height: 200px;
  }
  .team-member-content, .team-content {
    padding: 1.5rem;
    gap: 1rem;
  }
  .team-member-name, .team-content h5 {
    font-size: 1.2rem;
  }
  .team-member-role, .team-position {
    font-size: 0.9rem;
  }
  .team-member-experience, .team-experience {
    font-size: 0.8rem;
    padding: 0.6rem 0.8rem;
  }
  .team-member-tags .team-member-tag, .team-badges .badge {
    font-size: 0.7rem;
    padding: 0.3rem 0.6rem;
  }
  .team-member-desc, .team-bio {
    font-size: 0.85rem;
    min-height: 3rem;
  }
  .team-social a, .btn-overlay {
    width: 38px;
    height: 38px;
    font-size: 1rem;
  }
  .stats-premium-container {
    padding: 2rem 1rem;
    border-radius: 16px;
  }
  .stats-premium-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
  }
  .stat-premium-card {
    padding: 1.5rem 0.8rem;
  }
  .cta-premium-background {
    padding: 2rem 1.5rem;
    border-radius: 16px;
  }
  .cta-premium-actions {
    flex-direction: column;
    align-items: stretch;
    gap: 1rem;
  }
  .btn-team-premium-primary,
  .btn-team-premium-secondary,
  .btn-team-premium-outline {
    padding: 0.9rem 1.5rem;
    justify-content: center;
  }
  .cta-premium-note {
    flex-direction: column;
    gap: 0.5rem;
  }
  
  /* Overlay mobile toujours visible */
  .team-member-overlay,
  .team-overlay {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    position: relative;
    background: var(--sb-gray-100);
    padding: 1rem;
    border-radius: 0;
  }
  
  .team-social a, .btn-overlay {
    background: white;
    border: 1px solid var(--sb-gray-300);
  }
}

/* Mobile très petit */
@media (max-width: 480px) {
  .team-premium-grid {
    max-width: 95vw;
  }
  .team-member, .team-card {
    min-height: 480px;
  }
  .team-member-photo-container, .team-image-container {
    height: 180px;
  }
  .stats-premium-grid {
    grid-template-columns: 1fr;
  }
}

/* ===== FIXES MULTI-NAVIGATEURS ===== */
@supports (-webkit-appearance: none) {
  .team-member-photo, .team-image {
    -webkit-object-fit: cover !important;
    -webkit-object-position: center !important;
  }
}

@supports (-moz-appearance: none) {
  .team-member-photo, .team-image {
    -moz-object-fit: cover !important;
    -moz-object-position: center !important;
  }
}

/* ===== ACCESSIBILITÉ ===== */
.team-member:focus-visible,
.team-card:focus-visible,
.team-social a:focus-visible,
.btn-overlay:focus-visible,
.btn-team-premium-primary:focus-visible,
.btn-team-premium-secondary:focus-visible,
.btn-team-premium-outline:focus-visible {
  outline: 3px solid var(--sb-primary);
  outline-offset: 3px;
}

/* Préférences utilisateur */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* Optimisations performance */
.team-member-photo, .team-image {
  will-change: transform;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

.team-member:hover .team-member-photo,
.team-card:hover .team-image {
  transform: scale(1.05);
}

/* États cachés */
.d-none {
  display: none !important;
}

/* =========================================================================
   CSS PREMIUM SECTION PARTENAIRES — SB INGÉNIERIE BTP 2025
   Design moderne, carousel Bootstrap, responsive et accessible
   ========================================================================= */
/* =============================================================================
   Variables CSS Premium BTP Partenaires 2025
   ============================================================================= */
:root {
  /* Palette couleurs partenaires */
  --partners-primary: #1e3a8a;
  --partners-primary-dark: #1e40af;
  --partners-primary-light: #3b82f6;
  --partners-white: #ffffff;
  --partners-gray-50: #f9fafb;
  --partners-gray-100: #f3f4f6;
  --partners-gray-200: #e5e7eb;
  --partners-gray-300: #d1d5db;
  --partners-gray-400: #9ca3af;
  --partners-gray-500: #6b7280;
  --partners-gray-600: #4b5563;
  --partners-gray-700: #374151;
  --partners-gray-800: #1f2937;
  --partners-gray-900: #111827;
  --partners-accent: #f97316;
  --partners-success: #10b981;
  --partners-info: #0ea5e9;
  --partners-warning: #f59e0b;
  
  /* Espacements responsifs */
  --partners-space-xs: 0.5rem;
  --partners-space-sm: 0.75rem;
  --partners-space-md: 1rem;
  --partners-space-lg: 1.5rem;
  --partners-space-xl: 2rem;
  --partners-space-2xl: 2.5rem;
  --partners-space-3xl: 3rem;
  --partners-space-4xl: 4rem;
  
  /* Rayons */
  --partners-radius-sm: 0.5rem;
  --partners-radius-md: 0.75rem;
  --partners-radius-lg: 1rem;
  --partners-radius-xl: 1.25rem;
  --partners-radius-2xl: 1.5rem;
  --partners-radius-3xl: 2rem;
  
  /* Transitions */
  --partners-transition-fast: 0.15s;
  --partners-transition-normal: 0.3s;
  --partners-transition-slow: 0.5s;
  
  /* Z-index */
  --partners-z-background: 1;
  --partners-z-content: 10;
  --partners-z-overlay: 20;
}

/* =============================================================================
   Section Partenaires Principale
   ============================================================================= */
.partners-section {
  position: relative;
  background: linear-gradient(135deg, var(--partners-gray-50) 0%, var(--partners-white) 50%, var(--partners-gray-50) 100%);
  color: var(--partners-gray-800);
  padding: var(--partners-space-4xl) 0;
  overflow: hidden;
  isolation: isolate;
}

/* Background effects subtils */
.partners-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: 
    radial-gradient(circle at 25% 25%, rgba(30, 58, 138, 0.03) 1px, transparent 1px),
    radial-gradient(circle at 75% 75%, rgba(249, 115, 22, 0.02) 1px, transparent 1px);
  background-size: 80px 80px;
  opacity: 0.6;
  pointer-events: none;
  z-index: var(--partners-z-background);
}

/* =============================================================================
   Header Section Premium
   ============================================================================= */
.partners-section .section-title {
  position: relative;
  z-index: var(--partners-z-content);
  margin-bottom: var(--partners-space-4xl);
  text-align: center;
}

.partners-header-decoration {
  position: relative;
  margin-bottom: var(--partners-space-lg);
}

.partners-icon-decoration {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--partners-primary), var(--partners-primary-dark));
  color: var(--partners-white);
  font-size: 2rem;
  margin-bottom: var(--partners-space-lg);
  box-shadow: 0 10px 25px rgba(30, 58, 138, 0.3);
  animation: partnersIconFloat 4s ease-in-out infinite;
  position: relative;
}

.partners-icon-decoration::before {
  content: '';
  position: absolute;
  inset: -3px;
  border-radius: 50%;
  background: linear-gradient(45deg, var(--partners-accent), transparent, var(--partners-success));
  opacity: 0.4;
  animation: rotate 8s linear infinite;
  z-index: -1;
}

.partners-section h2 {
  font-size: clamp(1.875rem, 5vw, 2.5rem);
  font-weight: 900;
  line-height: 1.2;
  margin: 0 0 var(--partners-space-lg);
  color: var(--partners-gray-900);
  text-align: center;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.partners-section .lead {
  font-size: clamp(0.9rem, 2.5vw, 1.125rem);
  line-height: 1.7;
  color: var(--partners-gray-600);
  margin: 0 auto var(--partners-space-md);
  max-width: 800px;
  font-weight: 400;
}

.partners-description {
  margin-top: var(--partners-space-lg);
  max-width: 700px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 var(--partners-space-md);
}

.partners-description p {
  font-size: clamp(0.875rem, 2vw, 1rem);
  line-height: 1.7;
  color: var(--partners-gray-600);
  margin: 0;
  font-style: italic;
}

/* =============================================================================
   Carousel Premium
   ============================================================================= */
.partners-premium-wrapper {
  position: relative;
  max-width: 1200px;
  margin: 0 auto var(--partners-space-4xl);
  z-index: var(--partners-z-content);
  padding: 0 var(--partners-space-md);
}

.partners-premium-carousel {
  background: var(--partners-white);
  border-radius: var(--partners-radius-xl);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
  border: 1px solid var(--partners-gray-200);
  overflow: hidden;
  position: relative;
}

.partners-premium-inner {
  min-height: 200px;
  padding: var(--partners-space-xl);
}

/* Slides du carousel */
.carousel-item {
  transition: transform 0.6s ease-in-out;
}

.carousel-item.active {
  display: block;
}

/* ✅ CORRECTION: Logos partenaires en couleur */
.partners-slide {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--partners-space-xl);
  padding: var(--partners-space-md) 0;
  min-height: 120px;
}

.partner-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 150px;
  height: 80px;
  padding: var(--partners-space-md);
  background: var(--partners-white);
  border: 1px solid var(--partners-gray-200);
  border-radius: var(--partners-radius-md);
  transition: all var(--partners-transition-normal) ease;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  /* ✅ SUPPRESSION du filtre noir et blanc */
  filter: none !important;
  opacity: 1 !important;
}

.partner-logo::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(45deg, transparent, rgba(30, 58, 138, 0.03), transparent);
  opacity: 0;
  transition: opacity var(--partners-transition-normal) ease;
}

.partner-logo:hover {
  transform: translateY(-4px) scale(1.05);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
  border-color: var(--partners-primary);
  /* ✅ Maintien des couleurs au hover */
  filter: none !important;
  opacity: 1 !important;
}

.partner-logo:hover::before {
  opacity: 1;
}

.partner-logo img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  transition: all var(--partners-transition-normal) ease;
  /* ✅ Préservation des couleurs des images */
  filter: none !important;
  opacity: 1 !important;
}

.partner-logo.active {
  border-color: var(--partners-primary);
  box-shadow: 0 8px 20px rgba(30, 58, 138, 0.2);
  background: linear-gradient(135deg, var(--partners-white), var(--partners-gray-50));
}

/* Contrôles carousel premium */
.carousel-control-premium {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 50px;
  height: 50px;
  border: none;
  background: linear-gradient(135deg, var(--partners-primary), var(--partners-primary-dark));
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 10px 25px rgba(30, 58, 138, 0.3);
  transition: all var(--partners-transition-normal) ease;
  z-index: var(--partners-z-overlay);
  cursor: pointer;
}

.carousel-control-premium:hover {
  transform: translateY(-50%) scale(1.1);
  box-shadow: 0 15px 35px rgba(30, 58, 138, 0.4);
  background: linear-gradient(135deg, var(--partners-primary-dark), var(--partners-primary));
}

.carousel-control-prev {
  left: -25px;
}

.carousel-control-next {
  right: -25px;
}

.control-icon-premium {
  color: var(--partners-white);
  font-size: 1.2rem;
}

/* Indicateurs premium */
.carousel-indicators-premium {
  position: absolute;
  bottom: -40px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: var(--partners-space-sm);
  margin: 0;
  padding: 0;
  list-style: none;
}

.carousel-indicators-premium button {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  border: none;
  background: var(--partners-gray-300);
  cursor: pointer;
  transition: all var(--partners-transition-normal) ease;
}

.carousel-indicators-premium button.active,
.carousel-indicators-premium button:hover {
  background: var(--partners-primary);
  transform: scale(1.2);
}

/* =============================================================================
   Statistiques Premium
   ============================================================================= */
.partners-stats-premium {
  margin: var(--partners-space-4xl) 0;
  padding: 0 var(--partners-space-md);
}

.stats-premium-container {
  max-width: 1200px;
  margin: 0 auto;
  background: var(--partners-white);
  padding: var(--partners-space-2xl);
  border-radius: var(--partners-radius-xl);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
  border: 1px solid var(--partners-gray-200);
  color: var(--partners-gray-800);
}

.stats-premium-header {
  text-align: center;
  margin-bottom: var(--partners-space-2xl);
}

.stats-premium-header h3 {
  font-size: clamp(1.375rem, 4vw, 1.875rem);
  font-weight: 900;
  color: var(--partners-primary);
  margin-bottom: var(--partners-space-md);
  line-height: 1.2;
}

.stats-premium-header p {
  font-size: clamp(0.9rem, 2.5vw, 1.125rem);
  color: var(--partners-gray-600);
  line-height: 1.6;
  margin: 0;
}

.stats-premium-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--partners-space-lg);
  justify-items: center;
}

.stat-premium-card {
  background: var(--partners-gray-50);
  padding: var(--partners-space-xl);
  border-radius: var(--partners-radius-md);
  text-align: center;
  transition: all var(--partners-transition-normal) ease;
  border: 1px solid var(--partners-gray-200);
  cursor: pointer;
  position: relative;
  overflow: hidden;
  width: 100%;
  max-width: 280px;
  min-height: 200px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.stat-premium-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--partners-primary), var(--partners-accent));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--partners-transition-normal) ease;
}

.stat-premium-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
  background: var(--partners-white);
  border-color: var(--partners-primary);
}

.stat-premium-card:hover::before {
  transform: scaleX(1);
}

.stat-premium-icon {
  margin-bottom: var(--partners-space-lg);
}

.stat-premium-icon i {
  font-size: clamp(2.5rem, 5vw, 3rem);
  color: var(--partners-primary);
  transition: transform var(--partners-transition-normal) ease;
}

.stat-premium-card:hover .stat-premium-icon i {
  transform: scale(1.1) rotate(5deg);
}

.stat-premium-value {
  font-size: clamp(2rem, 6vw, 2.5rem);
  font-weight: 900;
  color: var(--partners-primary);
  line-height: 1;
  margin-bottom: var(--partners-space-sm);
}

.stat-premium-label {
  font-size: clamp(0.9rem, 2.5vw, 1.125rem);
  font-weight: 700;
  color: var(--partners-gray-900);
  margin-bottom: var(--partners-space-sm);
  line-height: 1.3;
}

.stat-premium-description {
  font-size: clamp(0.75rem, 2vw, 0.875rem);
  color: var(--partners-gray-600);
  margin: 0;
  line-height: 1.4;
}

/* =============================================================================
   CTA Premium
   ============================================================================= */
.partners-cta-premium {
  background: linear-gradient(135deg, var(--partners-primary), var(--partners-primary-dark));
  color: var(--partners-white);
  padding: var(--partners-space-4xl) var(--partners-space-xl);
  border-radius: var(--partners-radius-xl);
  box-shadow: 0 25px 50px rgba(30, 58, 138, 0.3);
  position: relative;
  overflow: hidden;
  text-align: center;
  margin: var(--partners-space-4xl) var(--partners-space-md) 0;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
}

.partners-cta-premium::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--partners-accent), #ea580c, var(--partners-success), var(--partners-info));
  background-size: 400% 400%;
  animation: gradientFlow 6s ease-in-out infinite;
}

.cta-premium-wrapper {
  position: relative;
  z-index: var(--partners-z-content);
}

.cta-premium-header h3 {
  font-size: clamp(1.375rem, 4vw, 1.875rem);
  font-weight: 900;
  margin-bottom: var(--partners-space-lg);
  line-height: 1.3;
}

.cta-premium-header p {
  font-size: clamp(0.9rem, 2.5vw, 1.125rem);
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.9);
  margin-bottom: var(--partners-space-2xl);
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}

/* Boutons CTA premium */
.cta-premium-actions {
  display: flex;
  justify-content: center;
  gap: var(--partners-space-lg);
  margin-bottom: var(--partners-space-2xl);
  flex-wrap: wrap;
}

.btn-partners-premium-primary,
.btn-partners-premium-secondary,
.btn-partners-premium-outline {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: var(--partners-space-sm);
  padding: var(--partners-space-md) var(--partners-space-lg);
  border: none;
  border-radius: 50px;
  font-weight: 700;
  font-size: clamp(0.875rem, 2vw, 1rem);
  cursor: pointer;
  transition: all var(--partners-transition-normal) ease;
  overflow: hidden;
  backdrop-filter: blur(8px);
  min-height: 52px;
  text-decoration: none;
  white-space: nowrap;
}

.btn-partners-premium-primary {
  background: linear-gradient(135deg, var(--partners-accent), #ea580c);
  color: white;
  border: 2px solid rgba(255, 255, 255, 0.2);
  box-shadow: 0 10px 25px rgba(249, 115, 22, 0.4);
}

.btn-partners-premium-secondary {
  background: linear-gradient(135deg, #25d366, #128c7e);
  color: white;
  border: 2px solid rgba(255, 255, 255, 0.2);
  box-shadow: 0 10px 25px rgba(37, 211, 102, 0.4);
}

.btn-partners-premium-outline {
  background: transparent;
  color: white;
  border: 2px solid rgba(255, 255, 255, 0.3);
}

.btn-partners-premium-primary:hover,
.btn-partners-premium-secondary:hover {
  transform: translateY(-3px) scale(1.05);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);
}

.btn-partners-premium-outline:hover {
  background: white;
  color: var(--partners-primary);
  border-color: white;
  transform: translateY(-2px);
}

.btn-hero-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
  transform: translateX(-100%);
  transition: transform var(--partners-transition-slow) ease;
}

.btn-partners-premium-primary:hover .btn-hero-bg,
.btn-partners-premium-secondary:hover .btn-hero-bg,
.btn-partners-premium-outline:hover .btn-hero-bg {
  transform: translateX(100%);
}

/* Note CTA */
.cta-premium-note {
  background: rgba(255, 255, 255, 0.1);
  border-radius: var(--partners-radius-md);
  padding: var(--partners-space-lg);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--partners-space-md);
  text-align: center;
}

.cta-premium-note i {
  font-size: 1.2rem;
  color: var(--partners-success);
  flex-shrink: 0;
}

/* =============================================================================
   Animations
   ============================================================================= */
@keyframes partnersIconFloat {
  0%, 100% { transform: translateY(0px) scale(1); }
  50% { transform: translateY(-8px) scale(1.05); }
}

@keyframes rotate {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

@keyframes gradientFlow {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}

/* =============================================================================
   Design Responsive Optimisé Mobile-First
   ============================================================================= */

/* Tablette Large (992px - 1199px) */
@media (min-width: 992px) and (max-width: 1199.98px) {
  .stats-premium-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--partners-space-lg);
  }
  
  .partner-logo {
    width: 140px;
    height: 75px;
  }
}

/* Tablette (768px - 991px) */
@media (max-width: 991.98px) {
  .partners-section {
    padding: var(--partners-space-3xl) 0;
  }
  
  .stats-premium-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--partners-space-md);
  }
  
  .cta-premium-actions {
    flex-direction: column;
    align-items: center;
    gap: var(--partners-space-md);
  }
  
  .carousel-control-premium {
    display: none;
  }
  
  .partners-premium-wrapper {
    padding: 0 var(--partners-space-sm);
  }
}

/* Mobile Large (576px - 767px) */
@media (max-width: 767.98px) {
  .partners-section {
    padding: var(--partners-space-xl) 0;
  }
  
  .partners-icon-decoration {
    width: 60px;
    height: 60px;
    font-size: 1.5rem;
    margin-bottom: var(--partners-space-md);
  }
  
  .partners-premium-inner {
    padding: var(--partners-space-lg);
    min-height: 150px;
  }
  
  .partners-slide {
    gap: var(--partners-space-md);
    flex-direction: column;
    align-items: center;
  }
  
  .partner-logo {
    width: 140px;
    height: 70px;
    margin-bottom: var(--partners-space-sm);
  }
  
  .stats-premium-grid {
    grid-template-columns: 1fr;
    gap: var(--partners-space-md);
  }
  
  .stats-premium-container {
    padding: var(--partners-space-lg);
  }
  
  .stat-premium-card {
    max-width: 100%;
    min-height: 180px;
  }
  
  .partners-cta-premium {
    padding: var(--partners-space-xl) var(--partners-space-md);
    margin: var(--partners-space-xl) var(--partners-space-sm) 0;
  }
  
  .carousel-indicators-premium {
    bottom: -30px;
  }
}

/* Mobile Standard (max 575px) */
@media (max-width: 575.98px) {
  .partners-section {
    padding: var(--partners-space-xl) 0;
  }
  
  .partners-premium-wrapper {
    padding: 0 var(--partners-space-xs);
  }
  
  .partners-premium-inner {
    padding: var(--partners-space-md);
    min-height: 140px;
  }
  
  .partner-logo {
    width: 120px;
    height: 60px;
    margin-bottom: var(--partners-space-xs);
  }
  
  .partners-slide {
    gap: var(--partners-space-sm);
  }
  
  .stats-premium-container {
    padding: var(--partners-space-md);
  }
  
  .stat-premium-card {
    padding: var(--partners-space-lg);
    min-height: 160px;
  }
  
  .cta-premium-actions {
    gap: var(--partners-space-md);
  }
  
  .btn-partners-premium-primary,
  .btn-partners-premium-secondary,
  .btn-partners-premium-outline {
    width: 100%;
    justify-content: center;
    padding: var(--partners-space-md);
    font-size: 0.9rem;
  }
  
  .cta-premium-note {
    flex-direction: column;
    text-align: center;
    gap: var(--partners-space-sm);
    padding: var(--partners-space-md);
  }
  
  .partners-cta-premium {
    padding: var(--partners-space-xl) var(--partners-space-sm);
  }
}

/* Mobile Extra Small (max 479px) */
@media (max-width: 479.98px) {
  .partners-section {
    padding: var(--partners-space-lg) 0;
  }
  
  .partners-icon-decoration {
    width: 50px;
    height: 50px;
    font-size: 1.25rem;
    margin-bottom: var(--partners-space-sm);
  }
  
  .partners-premium-inner {
    padding: var(--partners-space-sm);
    min-height: 120px;
  }
  
  .partner-logo {
    width: 100px;
    height: 50px;
    padding: var(--partners-space-sm);
  }
  
  .stat-premium-card {
    padding: var(--partners-space-md);
    min-height: 140px;
  }
  
  .stat-premium-value {
    font-size: 1.75rem;
  }
  
  .stat-premium-icon i {
    font-size: 2rem;
  }
  
  .stats-premium-container {
    padding: var(--partners-space-sm);
  }
  
  .partners-cta-premium {
    padding: var(--partners-space-lg) var(--partners-space-xs);
  }
  
  .btn-partners-premium-primary,
  .btn-partners-premium-secondary,
  .btn-partners-premium-outline {
    padding: var(--partners-space-sm) var(--partners-space-md);
    font-size: 0.8rem;
  }
}

/* =============================================================================
   Optimisations Tactiles & Accessibilité
   ============================================================================= */

/* Appareils tactiles */
@media (hover: none) and (pointer: coarse) {
  .partner-logo:hover {
    transform: none;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    /* ✅ Maintien des couleurs sur tactile */
    filter: none !important;
    opacity: 1 !important;
  }
  
  .stat-premium-card:hover {
    transform: none;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
  }
  
  .btn-partners-premium-primary:hover,
  .btn-partners-premium-secondary:hover,
  .btn-partners-premium-outline:hover {
    transform: none;
  }
  
  .carousel-control-premium:hover {
    transform: translateY(-50%);
  }
}

/* États focus pour accessibilité */
.partner-logo:focus,
.stat-premium-card:focus,
.btn-partners-premium-primary:focus,
.btn-partners-premium-secondary:focus,
.btn-partners-premium-outline:focus,
.carousel-control-premium:focus {
  outline: 3px solid var(--partners-accent);
  outline-offset: 2px;
}

.partner-logo:focus:not(:focus-visible),
.stat-premium-card:focus:not(:focus-visible),
.btn-partners-premium-primary:focus:not(:focus-visible),
.btn-partners-premium-secondary:focus:not(:focus-visible),
.btn-partners-premium-outline:focus:not(:focus-visible),
.carousel-control-premium:focus:not(:focus-visible) {
  outline: none;
}

/* Zones tactiles mobiles */
@media (max-width: 767px) {
  .partner-logo,
  .stat-premium-card,
  .btn-partners-premium-primary,
  .btn-partners-premium-secondary,
  .btn-partners-premium-outline,
  .carousel-control-premium {
    min-height: 44px;
    min-width: 44px;
  }
}

/* =============================================================================
   Performance & Optimisations
   ============================================================================= */

/* Box-sizing universel */
.partners-section *,
.partners-section *::before,
.partners-section *::after {
  box-sizing: border-box;
}

/* GPU acceleration */
.partners-icon-decoration,
.partner-logo,
.stat-premium-card,
.carousel-control-premium {
  will-change: transform;
}

/* Respect des préférences d'accessibilité */
@media (prefers-reduced-motion: reduce) {
  .partners-section *,
  .partners-section *::before,
  .partners-section *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* =============================================================================
   Styles d'impression
   ============================================================================= */
@media print {
  .partners-section {
    background: white !important;
    color: black !important;
    padding: 2rem 0 !important;
  }
  
  .partners-cta-premium,
  .carousel-control-premium,
  .carousel-indicators-premium {
    display: none !important;
  }
  
  .partners-premium-carousel {
    box-shadow: none !important;
    border: 1px solid #ccc !important;
  }
  
  .stats-premium-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
  }
  
  /* ✅ Assure la visibilité des logos à l'impression */
  .partner-logo,
  .partner-logo img {
    filter: none !important;
    opacity: 1 !important;
    border: 1px solid #ddd !important;
  }
  
  .stat-premium-card {
    break-inside: avoid;
    page-break-inside: avoid;
  }
}

/* =============================================================================
   Mode sombre (optionnel)
   ============================================================================= */
@media (prefers-color-scheme: dark) {
  .partners-section {
    background: linear-gradient(135deg, var(--partners-gray-900) 0%, var(--partners-gray-800) 50%, var(--partners-gray-900) 100%);
    color: var(--partners-gray-100);
  }
  
  .partners-premium-carousel,
  .stats-premium-container {
    background: var(--partners-gray-800);
    border-color: var(--partners-gray-700);
  }
  
  .partner-logo {
    background: var(--partners-gray-800);
    border-color: var(--partners-gray-700);
  }
  
  .stat-premium-card {
    background: var(--partners-gray-800);
    border-color: var(--partners-gray-700);
  }
}


/* =========================================================================
   CSS PREMIUM SECTION BLOG — SB INGÉNIERIE BTP 2025 (VERSION PROFESSIONNELLE)
   Grille responsive corrigée, cartes optimisées, overlay fonctionnel
   ========================================================================= */

/* Variables CSS harmonisées avec le site */
:root {
  --sb-primary: #1e3a8a;
  --sb-primary-dark: #1e40af;
  --sb-primary-light: #3b82f6;
  --sb-white: #ffffff;
  --sb-light: #f8fafc;
  --sb-gray-50: #f9fafb;
  --sb-gray-100: #f3f4f6;
  --sb-gray-200: #e5e7eb;
  --sb-gray-300: #d1d5db;
  --sb-gray-400: #9ca3af;
  --sb-gray-500: #6b7280;
  --sb-gray-600: #4b5563;
  --sb-gray-700: #374151;
  --sb-gray-800: #1f2937;
  --sb-gray-900: #111827;
  --sb-accent: #f97316;
  --sb-success: #10b981;
  --sb-info: #0ea5e9;
  --sb-warning: #f59e0b;
}

/* ===== SECTION BLOG PRINCIPALE ===== */
.blog-section {
  background: linear-gradient(135deg, var(--sb-light) 0%, #e2e8f0 100%);
  position: relative;
  overflow: hidden;
  padding: 4rem 0;
}

.blog-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: 
    radial-gradient(circle at 20% 80%, rgba(30, 58, 138, 0.03) 0%, transparent 50%),
    radial-gradient(circle at 80% 20%, rgba(16, 185, 129, 0.05) 0%, transparent 50%);
  pointer-events: none;
  z-index: 1;
}

/* ===== HEADER SECTION PREMIUM ===== */
.blog-section .section-header {
  position: relative;
  z-index: 10;
  margin-bottom: 4rem;
  text-align: center;
}

/* Icône avec animation premium */
.blog-icon-wrapper {
  position: relative;
  display: inline-block;
  margin-bottom: 2rem;
}

.blog-icon-decoration {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--sb-primary), var(--sb-primary-dark));
  color: white;
  font-size: 2rem;
  box-shadow: 0 10px 25px rgba(30, 58, 138, 0.3);
  animation: blogIconFloat 4s ease-in-out infinite;
  z-index: 2;
}

.icon-pulse {
  position: absolute;
  inset: -15px;
  border: 2px solid rgba(30, 58, 138, 0.3);
  border-radius: 50%;
  animation: pulse-ring 2s infinite;
  z-index: 1;
}

/* Badges spécialisation */
.section-category {
  margin-bottom: 2rem;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.badge {
  font-size: 0.9rem;
  padding: 0.6rem 1.2rem;
  border-radius: 50px;
  font-weight: 600;
  transition: all 0.3s ease;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

.bg-primary-gradient { 
  background: linear-gradient(135deg, var(--sb-primary), var(--sb-primary-light)) !important;
  color: white !important;
}

.bg-success-gradient { 
  background: linear-gradient(135deg, var(--sb-success), #059669) !important;
  color: white !important;
}

.bg-info-gradient { 
  background: linear-gradient(135deg, var(--sb-info), #0284c7) !important;
  color: white !important;
}

.badge:hover {
  transform: translateY(-2px) scale(1.05);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}

/* Titre et description */
.blog-section .section-title {
  font-size: clamp(2rem, 5vw, 2.5rem);
  font-weight: 900;
  line-height: 1.2;
  margin: 0 0 1.5rem;
  color: var(--sb-gray-900);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
}

.blog-section .section-subtitle {
  font-size: clamp(1rem, 3vw, 1.125rem);
  line-height: 1.7;
  color: var(--sb-gray-600);
  margin: 0 auto 1.5rem;
  max-width: 900px;
  font-weight: 400;
}

.blog-description {
  max-width: 800px;
  margin: 0 auto 2rem;
}

.blog-description .lead-text {
  font-size: 1.125rem;
  line-height: 1.6;
  color: var(--sb-gray-700);
  font-style: italic;
  margin: 0;
}

/* Indicateurs expertise premium */
.blog-expertise-indicators {
  padding: 1.5rem;
  background: rgba(255, 255, 255, 0.8);
  border-radius: 16px;
  max-width: 900px;
  margin: 0 auto 3rem;
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.3);
}

.expertise-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  justify-content: center;
}

.expertise-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--sb-gray-700);
  padding: 0.5rem 1rem;
  background: white;
  border-radius: 50px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  transition: all 0.3s ease;
  cursor: default;
}

.expertise-item:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}

.expertise-item i {
  font-size: 1.1rem;
}

/* ===== ÉTATS DE CHARGEMENT ===== */
.blog-loading {
  min-height: 300px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  color: var(--sb-gray-600);
}

.loading-spinner {
  font-size: 2rem;
  margin-bottom: 1rem;
}

.loading-spinner i {
  animation: spin 1s linear infinite;
  color: var(--sb-primary);
}

.blog-empty .empty-state {
  padding: 3rem 2rem;
  background: white;
  border-radius: 16px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
  max-width: 500px;
  margin: 0 auto;
  text-align: center;
}

.empty-icon i {
  font-size: 4rem;
  opacity: 0.3;
  color: var(--sb-gray-400);
}

/* ===== GRILLE BLOG RESPONSIVE CORRIGÉE ===== */
.blog-grid-responsive {
  display: grid;
  gap: 2rem;
  margin: 0 auto 3rem;
  max-width: 1400px;
  padding: 0 1rem;
}

/* Desktop extra large: 4 colonnes optimales */
@media (min-width: 1400px) {
  .blog-grid-responsive {
    grid-template-columns: repeat(4, 1fr);
    gap: 2.5rem;
    padding: 0;
  }
}

/* Desktop large: 4 colonnes */
@media (min-width: 1200px) and (max-width: 1399px) {
  .blog-grid-responsive {
    grid-template-columns: repeat(4, 1fr);
    gap: 2rem;
    padding: 0;
  }
}

/* Desktop standard: 3 colonnes */
@media (min-width: 992px) and (max-width: 1199px) {
  .blog-grid-responsive {
    grid-template-columns: repeat(3, 1fr);
    gap: 1.8rem;
    padding: 0;
  }
}

/* Tablette: 2 colonnes */
@media (min-width: 768px) and (max-width: 991px) {
  .blog-grid-responsive {
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
    padding: 0 1rem;
  }
}

/* Mobile: 1 colonne */
@media (max-width: 767px) {
  .blog-grid-responsive {
    grid-template-columns: 1fr;
    gap: 1.5rem;
    padding: 0 1rem;
  }
}

/* ===== CARTES ARTICLES PREMIUM ===== */
.blog-article-card,
.blog-card {
  background: white;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  transition: all 0.3s ease;
  display: flex;
  flex-direction: column;
  height: 100%;
  border: 1px solid rgba(0, 0, 0, 0.05);
  position: relative;
  min-width: 280px;
}

.blog-article-card::before,
.blog-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--sb-primary), var(--sb-accent));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s ease;
  z-index: 5;
}

.blog-article-card:hover,
.blog-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 20px 40px rgba(30, 58, 138, 0.15);
}

.blog-article-card:hover::before,
.blog-card:hover::before {
  transform: scaleX(1);
}

/* ===== CONTAINER IMAGE AVEC OVERLAY ===== */
.article-image-container,
.blog-image-container {
  position: relative;
  width: 100%;
  height: 220px;
  overflow: hidden;
  background: linear-gradient(135deg, var(--sb-gray-100), #e5e7eb);
}

.article-image,
.blog-image {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  transition: transform 0.3s ease;
}

.blog-article-card:hover .article-image,
.blog-card:hover .blog-image {
  transform: scale(1.05);
  filter: brightness(0.8);
}

/* ===== OVERLAY PREMIUM FONCTIONNEL ===== */
.article-overlay,
.blog-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(30, 58, 138, 0.9), rgba(30, 64, 175, 0.85));
  backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease;
  z-index: 10;
}

/* Afficher overlay au survol */
.blog-article-card:hover .article-overlay,
.blog-card:hover .blog-overlay {
  opacity: 1;
  visibility: visible;
}

/* Bouton overlay premium */
.btn-read-article,
.btn-blog-overlay {
  background: rgba(255, 255, 255, 0.95);
  border: none;
  border-radius: 50px;
  padding: 1rem 2rem;
  font-weight: 700;
  color: var(--sb-primary);
  transition: all 0.3s ease;
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
  cursor: pointer;
  text-decoration: none;
  position: relative;
  overflow: hidden;
  font-size: 0.95rem;
  min-width: 180px;
  justify-content: center;
}

.btn-read-article::before,
.btn-blog-overlay::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, rgba(30, 58, 138, 0.1), transparent);
  transform: translateX(-100%);
  transition: transform 0.5s ease;
}

.btn-read-article:hover::before,
.btn-blog-overlay:hover::before {
  transform: translateX(100%);
}

.btn-read-article:hover,
.btn-blog-overlay:hover {
  background: var(--sb-accent);
  color: white;
  transform: translateY(-3px) scale(1.05);
  box-shadow: 0 15px 40px rgba(0, 0, 0, 0.4);
}

.btn-read-article i,
.btn-blog-overlay i {
  transition: transform 0.3s ease;
  font-size: 1.1rem;
}

.btn-read-article:hover i,
.btn-blog-overlay:hover i {
  transform: translateX(5px);
}

/* ===== CONTENU CARTES OPTIMISÉ ===== */
.article-content,
.blog-content {
  padding: 1.5rem;
  flex-grow: 1;
  display: flex;
  flex-direction: column;
}

.article-category,
.blog-category {
  background: linear-gradient(135deg, var(--sb-primary), var(--sb-primary-light));
  color: white;
  font-size: 0.75rem;
  font-weight: 600;
  padding: 0.35rem 0.9rem;
  border-radius: 50px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  align-self: flex-start;
  margin-bottom: 1rem;
}

.article-title,
.blog-content h5 {
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--sb-gray-900);
  margin-bottom: 0.8rem;
  line-height: 1.3;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.article-meta,
.blog-meta {
  margin-bottom: 1rem;
  font-size: 0.8rem;
  color: var(--sb-gray-500);
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.article-meta i,
.blog-meta i {
  color: var(--sb-primary);
}

.article-date,
.blog-date {
  color: var(--sb-gray-500);
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 0.25rem;
}

.article-excerpt,
.blog-excerpt {
  color: var(--sb-gray-700);
  font-size: 0.9rem;
  line-height: 1.5;
  margin-bottom: 1.5rem;
  flex-grow: 1;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.article-footer,
.blog-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 1rem;
  border-top: 1px solid var(--sb-gray-200);
  margin-top: auto;
  font-size: 0.8rem;
}

.article-author {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--sb-gray-500);
}

.author-avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--sb-primary), var(--sb-accent));
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  font-weight: 700;
}

.read-time {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.75rem;
  color: var(--sb-gray-500);
}

/* ===== SECTIONS COMPLÉMENTAIRES ===== */
/* Catégories section */
.blog-categories-section {
  background: white;
  padding: 3rem 2rem;
  border-radius: 20px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
  border: 1px solid rgba(0, 0, 0, 0.05);
  margin-top: 3rem;
}

.categories-header h4 {
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--sb-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  margin-bottom: 1rem;
}

.categories-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.5rem;
  margin-top: 2rem;
}

.category-card {
  background: var(--sb-gray-50);
  border-radius: 16px;
  padding: 2rem;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
  transition: all 0.3s ease;
  cursor: pointer;
  border: 1px solid rgba(0, 0, 0, 0.05);
  position: relative;
  overflow: hidden;
}

.category-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--sb-primary), var(--sb-accent));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s ease;
}

.category-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
  background: white;
}

.category-card:hover::before {
  transform: scaleX(1);
}

.category-icon {
  width: 60px;
  height: 60px;
  background: linear-gradient(135deg, var(--sb-primary), var(--sb-primary-light));
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1rem;
  transition: transform 0.3s ease;
}

.category-card:hover .category-icon {
  transform: scale(1.1) rotate(5deg);
}

.category-icon i {
  font-size: 1.5rem;
  color: white;
}

.category-content h6 {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--sb-gray-900);
  margin-bottom: 0.5rem;
}

.category-content p {
  color: var(--sb-gray-600);
  font-size: 0.9rem;
  margin-bottom: 1rem;
  line-height: 1.5;
}

.category-count {
  background: rgba(30, 58, 138, 0.1);
  color: var(--sb-primary);
  font-size: 0.8rem;
  font-weight: 600;
  padding: 0.3rem 0.8rem;
  border-radius: 50px;
}

/* CTA Premium */
.blog-cta-premium {
  margin: 3rem 0;
}

.blog-cta-premium .cta-container {
  background: white;
  border-radius: 20px;
  padding: 3rem 2rem;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
  border: 1px solid rgba(0, 0, 0, 0.05);
}

.cta-title {
  font-size: clamp(1.5rem, 4vw, 1.875rem);
  font-weight: 900;
  margin-bottom: 1rem;
  color: var(--sb-gray-900);
}

.cta-subtitle {
  font-size: 1.125rem;
  color: var(--sb-gray-500);
  margin-bottom: 2rem;
}

.cta-actions {
  display: flex;
  gap: 1.5rem;
  justify-content: center;
  flex-wrap: wrap;
}

.btn-hero-animated,
.btn-cta-primary,
.btn-cta-secondary {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.2rem 2rem;
  border-radius: 50px;
  border: none;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.3s ease;
  cursor: pointer;
  position: relative;
  overflow: hidden;
}

.btn-cta-primary {
  background: linear-gradient(135deg, var(--sb-primary), var(--sb-primary-light));
  color: white;
}

.btn-cta-secondary {
  background: rgba(30, 58, 138, 0.1);
  color: var(--sb-primary);
  border: 2px solid var(--sb-primary);
}

.btn-cta-primary:hover,
.btn-cta-secondary:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(30, 58, 138, 0.3);
}

.btn-icon {
  font-size: 1.5rem;
}

.btn-content {
  text-align: left;
}

.btn-text {
  display: block;
  font-size: 1rem;
  font-weight: 700;
}

.btn-subtitle {
  display: block;
  opacity: 0.8;
  font-size: 0.8rem;
  margin-top: 0.2rem;
}

/* Stats premium */
.blog-stats-premium {
  background: white;
  padding: 3rem 2rem;
  border-radius: 20px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
  border: 1px solid rgba(0, 0, 0, 0.05);
  margin-top: 3rem;
}

.stats-header h4 {
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--sb-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  margin-bottom: 1rem;
}

.stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1.5rem;
  margin-top: 2rem;
}

.stat-card {
  background: var(--sb-gray-50);
  border-radius: 16px;
  padding: 2rem 1.5rem;
  text-align: center;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
  transition: all 0.3s ease;
  cursor: pointer;
  border: 1px solid rgba(0, 0, 0, 0.05);
  position: relative;
  overflow: hidden;
}

.stat-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--sb-primary), var(--sb-accent));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s ease;
}

.stat-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
  background: white;
}

.stat-card:hover::before {
  transform: scaleX(1);
}

.stat-icon i {
  font-size: 2.5rem;
  margin-bottom: 1rem;
  color: var(--sb-primary);
  transition: transform 0.3s ease;
}

.stat-card:hover .stat-icon i {
  transform: scale(1.1) rotate(5deg);
}

.stat-number {
  display: block;
  font-size: 2rem;
  font-weight: 900;
  color: var(--sb-gray-900);
  line-height: 1;
  margin-bottom: 0.5rem;
}

.stat-label {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--sb-gray-700);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 0.5rem;
}

.stat-description {
  font-size: 0.8rem;
  color: var(--sb-gray-600);
}

/* ===== ÉTATS CACHÉS ===== */
.d-none {
  display: none !important;
}

/* ===== ANIMATIONS ===== */
@keyframes blogIconFloat {
  0%, 100% { transform: translateY(0px) scale(1); }
  50% { transform: translateY(-8px) scale(1.05); }
}

@keyframes pulse-ring {
  0% { transform: scale(0.8); opacity: 1; }
  100% { transform: scale(1.2); opacity: 0; }
}

@keyframes spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.blog-article-card,
.blog-card {
  animation: fadeInUp 0.6s ease;
}

/* Décalage animation pour effet cascade */
.blog-article-card:nth-child(1),
.blog-card:nth-child(1) { animation-delay: 0.1s; }
.blog-article-card:nth-child(2),
.blog-card:nth-child(2) { animation-delay: 0.2s; }
.blog-article-card:nth-child(3),
.blog-card:nth-child(3) { animation-delay: 0.3s; }
.blog-article-card:nth-child(4),
.blog-card:nth-child(4) { animation-delay: 0.4s; }

/* ===== RESPONSIVE DESIGN COMPLET ===== */
/* Desktop: ajustements pour tailles optimales */
@media (min-width: 1200px) {
  .article-image-container,
  .blog-image-container {
    height: 200px;
  }
  
  .article-content,
  .blog-content {
    padding: 1.4rem;
  }
  
  .article-title,
  .blog-content h5 {
    font-size: 1.1rem;
  }
}

/* Tablette large */
@media (min-width: 992px) and (max-width: 1199px) {
  .blog-section {
    padding: 3rem 0;
  }
  
  .article-image-container,
  .blog-image-container {
    height: 180px;
  }
  
  .article-content,
  .blog-content {
    padding: 1.3rem;
  }
  
  .article-title,
  .blog-content h5 {
    font-size: 1rem;
  }
  
  .categories-grid,
  .stats-grid {
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  }
}

/* Tablette */
@media (min-width: 768px) and (max-width: 991px) {
  .blog-section {
    padding: 2.5rem 0;
  }
  
  .blog-article-card,
  .blog-card {
    min-width: 250px;
  }
  
  .article-image-container,
  .blog-image-container {
    height: 170px;
  }
  
  .article-content,
  .blog-content {
    padding: 1.2rem;
  }
  
  .categories-grid,
  .stats-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  
  .blog-cta-premium .cta-container,
  .blog-categories-section,
  .blog-stats-premium {
    padding: 2rem 1.5rem;
  }
}

/* Mobile */
@media (max-width: 767px) {
  .blog-section {
    padding: 2rem 0;
  }
  
  .blog-icon-decoration {
    width: 60px;
    height: 60px;
    font-size: 1.5rem;
  }
  
  .section-category {
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
  }
  
  .blog-article-card,
  .blog-card {
    min-width: auto;
  }
  
  .article-image-container,
  .blog-image-container {
    height: 160px;
  }
  
  .article-content,
  .blog-content {
    padding: 1.2rem;
  }
  
  .article-title,
  .blog-content h5 {
    font-size: 1rem;
    -webkit-line-clamp: 3;
  }
  
  .article-excerpt,
  .blog-excerpt {
    -webkit-line-clamp: 2;
    font-size: 0.85rem;
  }
  
  .article-footer,
  .blog-footer {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.8rem;
  }
  
  .expertise-badges {
    flex-direction: column;
    align-items: center;
    gap: 1rem;
  }
  
  .cta-actions {
    flex-direction: column;
  }
  
  .categories-grid,
  .stats-grid {
    grid-template-columns: 1fr;
  }
  
  /* Overlay mobile */
  .article-overlay,
  .blog-overlay {
    opacity: 1;
    visibility: visible;
    position: relative;
    background: var(--sb-gray-100);
    padding: 1rem;
    border-radius: 0;
  }
  
  .btn-read-article,
  .btn-blog-overlay {
    background: var(--sb-primary);
    color: white;
    padding: 0.75rem 1.5rem;
    font-size: 0.875rem;
    width: 100%;
    min-width: auto;
  }
  
  .blog-cta-premium .cta-container,
  .blog-categories-section,
  .blog-stats-premium {
    padding: 2rem 1.5rem;
  }
}

/* Mobile petit */
@media (max-width: 480px) {
  .blog-section {
    padding: 1.5rem 0;
  }
  
  .article-image-container,
  .blog-image-container {
    height: 140px;
  }
  
  .article-content,
  .blog-content {
    padding: 1rem;
  }
  
  .btn-read-article,
  .btn-blog-overlay {
    padding: 0.6rem 1.2rem;
    font-size: 0.8rem;
  }
  
  .category-card,
  .stat-card {
    padding: 1.5rem 1rem;
  }
}

/* ===== OPTIMISATIONS PERFORMANCE ===== */
.article-image,
.blog-image {
  will-change: transform;
  backface-visibility: hidden;
}

.blog-article-card,
.blog-card {
  contain: layout style;
}

/* Touch optimizations */
@media (hover: none) and (pointer: coarse) {
  .article-overlay,
  .blog-overlay {
    opacity: 1;
    visibility: visible;
  }
  
  .blog-article-card:hover,
  .blog-card:hover {
    transform: none;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  }
  
  .blog-article-card:hover .article-image,
  .blog-card:hover .blog-image {
    transform: none;
    filter: none;
  }
  
  .btn-read-article:hover,
  .btn-blog-overlay:hover {
    transform: none;
  }
  
  .category-card:hover,
  .stat-card:hover {
    transform: none;
  }
}

/* États focus pour accessibilité */
.blog-article-card:focus,
.blog-card:focus,
.btn-read-article:focus,
.btn-blog-overlay:focus,
.category-card:focus,
.stat-card:focus {
  outline: 2px solid var(--sb-accent);
  outline-offset: 2px;
}

.blog-article-card:focus:not(:focus-visible),
.blog-card:focus:not(:focus-visible),
.btn-read-article:focus:not(:focus-visible),
.btn-blog-overlay:focus:not(:focus-visible),
.category-card:focus:not(:focus-visible),
.stat-card:focus:not(:focus-visible) {
  outline: none;
}

/* Préférence mouvement réduit */
@media (prefers-reduced-motion: reduce) {
  .blog-article-card,
  .blog-card,
  .article-image,
  .blog-image,
  .btn-read-article,
  .btn-blog-overlay {
    transition: none;
    animation: none;
  }
}

/* Optimisations performance globales */
.blog-section *,
.blog-section *::before,
.blog-section *::after {
  box-sizing: border-box;
}

/* Styles d'impression */
@media print {
  .blog-section {
    background: white !important;
    color: black !important;
  }
  
  .blog-cta-premium,
  .article-overlay,
  .blog-overlay {
    display: none !important;
  }
  
  .blog-grid-responsive {
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
  }
  
  .blog-article-card,
  .blog-card {
    box-shadow: none !important;
    border: 1px solid #ccc !important;
    break-inside: avoid;
  }
}


/* =========================================================================
   CSS PREMIUM SECTION CALCULATEUR — SB INGÉNIERIE BTP 2025
   Design moderne, interface intuitive, calculs professionnels
   ========================================================================= */

/* Variables CSS spécifiques au calculateur */
:root {
  --calc-primary: #1e3a8a;
  --calc-primary-dark: #1e40af;
  --calc-primary-light: #3b82f6;
  --calc-white: #ffffff;
  --calc-light: #f8fafc;
  --calc-gray-50: #f9fafb;
  --calc-gray-100: #f3f4f6;
  --calc-gray-200: #e5e7eb;
  --calc-gray-300: #d1d5db;
  --calc-gray-600: #4b5563;
  --calc-gray-700: #374151;
  --calc-gray-800: #1f2937;
  --calc-gray-900: #111827;
  --calc-accent: #f97316;
  --calc-success: #10b981;
  --calc-info: #0ea5e9;
  --calc-warning: #f59e0b;
  --calc-danger: #ef4444;
}

/* ===== SECTION CALCULATEUR PRINCIPALE ===== */
.calculator-section {
  background: linear-gradient(135deg, var(--calc-light) 0%, #e2e8f0 100%);
  padding: 4rem 0;
  position: relative;
  overflow: hidden;
}

.calculator-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: 
    radial-gradient(circle at 20% 80%, rgba(30, 58, 138, 0.03) 0%, transparent 50%),
    radial-gradient(circle at 80% 20%, rgba(249, 115, 22, 0.05) 0%, transparent 50%);
  pointer-events: none;
  z-index: 1;
}

/* ===== HEADER SECTION PREMIUM ===== */
.calculator-section .section-header {
  position: relative;
  z-index: 10;
  margin-bottom: 3rem;
  text-align: center;
}

.calculator-header-decoration {
  position: relative;
  margin-bottom: 2rem;
}

.calculator-icon-decoration {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--calc-warning), #ea580c);
  color: white;
  font-size: 2rem;
  box-shadow: 0 10px 25px rgba(249, 115, 22, 0.3);
  animation: calculatorFloat 4s ease-in-out infinite;
  z-index: 2;
}

.calculator-pulse {
  position: absolute;
  inset: -10px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--calc-warning), #ea580c);
  opacity: 0.3;
  animation: pulse 2s ease-in-out infinite;
  z-index: 1;
}

/* Badges expertise */
.section-badges {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-bottom: 2rem;
}

.bg-gradient-warning {
  background: linear-gradient(135deg, var(--calc-warning), #ea580c) !important;
}

.bg-gradient-primary {
  background: linear-gradient(135deg, var(--calc-primary), var(--calc-primary-light)) !important;
}

.bg-gradient-success {
  background: linear-gradient(135deg, var(--calc-success), #059669) !important;
}

.section-badges .badge {
  padding: 0.5rem 1rem;
  border-radius: 50px;
  font-weight: 600;
  font-size: 0.875rem;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  transition: all 0.3s ease;
}

.section-badges .badge:hover {
  transform: translateY(-2px) scale(1.05);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}

/* Titre et description */
.calculator-section .section-title {
  font-size: clamp(2rem, 5vw, 2.5rem);
  font-weight: 900;
  line-height: 1.2;
  margin: 0 0 1.5rem;
  color: var(--calc-gray-900);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
}

.calculator-section .section-subtitle {
  font-size: clamp(1rem, 3vw, 1.125rem);
  line-height: 1.7;
  color: var(--calc-gray-600);
  margin: 0 auto 1.5rem;
  max-width: 900px;
  font-weight: 400;
}

.calculator-description {
  max-width: 800px;
  margin: 0 auto 2rem;
}

.calculator-description .lead-text {
  font-size: 1.125rem;
  line-height: 1.6;
  color: var(--calc-gray-700);
  font-style: italic;
  margin: 0;
}

/* ===== INDICATEUR DE PROGRESSION PREMIUM ===== */
.calculator-progress-premium {
  max-width: 800px;
  margin: 0 auto 3rem;
}

.progress-container-modern {
  position: relative;
  background: white;
  border-radius: 1rem;
  padding: 2rem;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
  border: 1px solid var(--calc-gray-200);
}

.progress-line-modern {
  position: absolute;
  top: 50%;
  left: 15%;
  right: 15%;
  height: 3px;
  background: var(--calc-gray-200);
  border-radius: 2px;
  transform: translateY(-50%);
}

.progress-line-modern::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  background: linear-gradient(90deg, var(--calc-primary), var(--calc-success));
  border-radius: 2px;
  transition: width 0.5s ease;
  width: 0;
}

.progress-line-modern.step-1::before { width: 0; }
.progress-line-modern.step-2::before { width: 50%; }
.progress-line-modern.step-3::before { width: 100%; }

.progress-steps-modern {
  display: flex;
  justify-content: space-between;
  position: relative;
  z-index: 2;
}

.step-modern {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
}

.step-circle-modern {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: var(--calc-gray-300);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  color: var(--calc-gray-600);
  transition: all 0.3s ease;
  border: 3px solid transparent;
}

.step-modern.active .step-circle-modern {
  background: linear-gradient(135deg, var(--calc-primary), var(--calc-primary-light));
  color: white;
  border-color: white;
  transform: scale(1.1);
  box-shadow: 0 5px 15px rgba(30, 58, 138, 0.3);
}

.step-label-modern {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--calc-gray-600);
  text-align: center;
}

.step-modern.active .step-label-modern {
  color: var(--calc-primary);
}

/* ===== WRAPPER CALCULATEUR ===== */
.calculator-wrapper-modern {
  max-width: 1000px;
  margin: 0 auto;
}

.calculator-card-modern {
  background: white;
  border-radius: 1.5rem;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
  border: 1px solid var(--calc-gray-200);
  overflow: hidden;
  position: relative;
}

.calculator-card-modern::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--calc-primary), var(--calc-accent), var(--calc-success));
  background-size: 400% 400%;
  animation: gradientFlow 6s ease-in-out infinite;
}

/* ===== ÉTAPES CALCULATEUR ===== */
.calculator-step-modern {
  display: none;
  padding: 3rem;
  min-height: 600px;
}

.calculator-step-modern.active {
  display: block;
  animation: fadeInUp 0.5s ease;
}

.step-header-modern {
  text-align: center;
  margin-bottom: 3rem;
}

.step-icon-modern {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--calc-primary), var(--calc-primary-light));
  color: white;
  font-size: 1.5rem;
  margin-bottom: 1rem;
  box-shadow: 0 8px 20px rgba(30, 58, 138, 0.3);
}

.step-header-modern h3 {
  font-size: 1.75rem;
  font-weight: 800;
  color: var(--calc-gray-900);
  margin-bottom: 0.5rem;
}

.step-header-modern p {
  font-size: 1rem;
  color: var(--calc-gray-600);
  margin: 0;
  line-height: 1.5;
}

/* ===== FORMULAIRES MODERNES ===== */
.form-group-modern {
  margin-bottom: 2rem;
}

.form-label-modern {
  display: flex;
  align-items: center;
  font-size: 1rem;
  font-weight: 700;
  color: var(--calc-gray-900);
  margin-bottom: 1rem;
}

.form-label-modern .required {
  color: var(--calc-danger);
  margin-left: 0.25rem;
}

/* ===== GRILLES DE SÉLECTION ===== */
.project-types-grid-modern,
.prestations-grid-modern {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.5rem;
  margin-bottom: 1rem;
}

.options-grid-modern {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1rem;
}

.project-type-card-modern,
.prestation-card-modern,
.option-card-modern {
  background: var(--calc-gray-50);
  border: 2px solid var(--calc-gray-200);
  border-radius: 1rem;
  padding: 1.5rem;
  cursor: pointer;
  transition: all 0.3s ease;
  position: relative;
  overflow: hidden;
}

.project-type-card-modern::before,
.prestation-card-modern::before,
.option-card-modern::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--calc-primary), var(--calc-accent));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s ease;
}

.project-type-card-modern:hover::before,
.prestation-card-modern:hover::before,
.option-card-modern:hover::before {
  transform: scaleX(1);
}

.project-type-card-modern:hover,
.prestation-card-modern:hover,
.option-card-modern:hover {
  transform: translateY(-5px);
  box-shadow: 0 15px 30px rgba(0, 0, 0, 0.15);
  border-color: var(--calc-primary);
}

.project-type-card-modern.selected,
.prestation-card-modern.selected,
.option-card-modern.active {
  background: linear-gradient(135deg, rgba(30, 58, 138, 0.1), rgba(59, 130, 246, 0.05));
  border-color: var(--calc-primary);
  transform: translateY(-3px);
  box-shadow: 0 10px 25px rgba(30, 58, 138, 0.2);
}

.project-type-card-modern.selected::before,
.prestation-card-modern.selected::before,
.option-card-modern.active::before {
  transform: scaleX(1);
}

/* Icônes dans les cards */
.type-icon-modern,
.prestation-icon-modern,
.option-icon-modern {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 45px;
  height: 45px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--calc-primary), var(--calc-primary-light));
  color: white;
  font-size: 1.2rem;
  margin-bottom: 1rem;
  transition: transform 0.3s ease;
}

.type-icon-modern.bg-success,
.prestation-icon-modern.bg-success,
.option-icon-modern.bg-success {
  background: linear-gradient(135deg, var(--calc-success), #059669);
}

.type-icon-modern.bg-info,
.prestation-icon-modern.bg-info,
.option-icon-modern.bg-info {
  background: linear-gradient(135deg, var(--calc-info), #0284c7);
}

.type-icon-modern.bg-warning,
.prestation-icon-modern.bg-warning,
.option-icon-modern.bg-warning {
  background: linear-gradient(135deg, var(--calc-warning), #ea580c);
}

.type-icon-modern.bg-danger,
.prestation-icon-modern.bg-danger,
.option-icon-modern.bg-danger {
  background: linear-gradient(135deg, var(--calc-danger), #dc2626);
}

.type-icon-modern.bg-secondary,
.prestation-icon-modern.bg-secondary,
.option-icon-modern.bg-secondary {
  background: linear-gradient(135deg, #6b7280, #4b5563);
}

.type-icon-modern.bg-dark,
.prestation-icon-modern.bg-dark,
.option-icon-modern.bg-dark {
  background: linear-gradient(135deg, #374151, #1f2937);
}

.type-icon-modern.bg-primary,
.prestation-icon-modern.bg-primary,
.option-icon-modern.bg-primary {
  background: linear-gradient(135deg, var(--calc-primary), var(--calc-primary-dark));
}

.project-type-card-modern:hover .type-icon-modern,
.prestation-card-modern:hover .prestation-icon-modern,
.option-card-modern:hover .option-icon-modern {
  transform: scale(1.1) rotate(5deg);
}

/* Contenu des cards */
.type-content-modern,
.prestation-content-modern,
.option-content-modern {
  text-align: center;
}

.type-content-modern h6,
.prestation-content-modern h6,
.option-content-modern h6 {
  font-size: 1rem;
  font-weight: 700;
  color: var(--calc-gray-900);
  margin-bottom: 0.5rem;
}

.type-content-modern small,
.prestation-content-modern small,
.option-content-modern small {
  color: var(--calc-gray-600);
  font-size: 0.85rem;
  line-height: 1.4;
  margin-bottom: 0.75rem;
  display: block;
}

.price-range-modern,
.prestation-coeff,
.option-price-modern {
  background: linear-gradient(135deg, var(--calc-success), #059669);
  color: white;
  padding: 0.25rem 0.75rem;
  border-radius: 50px;
  font-size: 0.75rem;
  font-weight: 600;
  display: inline-block;
  margin-top: 0.5rem;
}

/* ===== CHAMPS DE FORMULAIRE ===== */
.form-control-modern,
.form-select-modern {
  width: 100%;
  padding: 0.875rem 1rem;
  border: 2px solid var(--calc-gray-200);
  border-radius: 0.75rem;
  font-size: 1rem;
  transition: all 0.3s ease;
  background: white;
}

.form-control-modern:focus,
.form-select-modern:focus {
  outline: none;
  border-color: var(--calc-primary);
  box-shadow: 0 0 0 3px rgba(30, 58, 138, 0.1);
}

.surface-input-modern {
  position: relative;
}

.input-suffix-modern {
  position: absolute;
  right: 1rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--calc-gray-600);
  font-weight: 600;
}

/* Slider surface */
.surface-slider-modern {
  margin-top: 1rem;
}

.range-modern {
  width: 100%;
  height: 6px;
  border-radius: 3px;
  background: var(--calc-gray-200);
  outline: none;
  appearance: none;
}

.range-modern::-webkit-slider-thumb {
  appearance: none;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--calc-primary), var(--calc-primary-light));
  cursor: pointer;
  box-shadow: 0 2px 6px rgba(30, 58, 138, 0.3);
}

.range-modern::-moz-range-thumb {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--calc-primary), var(--calc-primary-light));
  cursor: pointer;
  border: none;
  box-shadow: 0 2px 6px rgba(30, 58, 138, 0.3);
}

.slider-labels-modern {
  display: flex;
  justify-content: space-between;
  font-size: 0.75rem;
  color: var(--calc-gray-600);
  margin-top: 0.5rem;
}

.form-text-modern {
  font-size: 0.85rem;
  color: var(--calc-gray-600);
  margin-top: 0.5rem;
  display: flex;
  align-items: center;
  gap: 0.25rem;
}

/* ===== BOUTONS NAVIGATION ===== */
.step-actions-modern {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 1px solid var(--calc-gray-200);
}

.btn-modern-primary,
.btn-modern-secondary,
.btn-modern-success {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 1rem 2rem;
  border: none;
  border-radius: 50px;
  font-weight: 700;
  font-size: 1rem;
  cursor: pointer;
  transition: all 0.3s ease;
  text-decoration: none;
  position: relative;
  overflow: hidden;
}

.btn-modern-primary {
  background: linear-gradient(135deg, var(--calc-primary), var(--calc-primary-light));
  color: white;
  box-shadow: 0 8px 20px rgba(30, 58, 138, 0.3);
}

.btn-modern-secondary {
  background: var(--calc-gray-100);
  color: var(--calc-gray-700);
  border: 2px solid var(--calc-gray-300);
}

.btn-modern-success {
  background: linear-gradient(135deg, var(--calc-success), #059669);
  color: white;
  box-shadow: 0 8px 20px rgba(16, 185, 129, 0.3);
}

.btn-modern-primary:hover,
.btn-modern-success:hover {
  transform: translateY(-3px) scale(1.05);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.2);
}

.btn-modern-secondary:hover {
  background: white;
  border-color: var(--calc-primary);
  color: var(--calc-primary);
  transform: translateY(-2px);
}

/* ===== RÉSULTATS PREMIUM ===== */
.result-container-modern {
  padding: 2rem;
}

.result-summary-modern {
  background: linear-gradient(135deg, var(--calc-primary), var(--calc-primary-dark));
  color: white;
  padding: 2rem;
  border-radius: 1rem;
  text-align: center;
  margin-bottom: 2rem;
  position: relative;
  overflow: hidden;
}

.result-summary-modern::before {
  content: '';
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: linear-gradient(45deg, transparent, rgba(255, 255, 255, 0.1), transparent);
  animation: shimmer 3s ease-in-out infinite;
}

.result-amount-modern {
  font-size: 3rem;
  font-weight: 900;
  margin-bottom: 0.5rem;
  line-height: 1;
}

.result-label-modern {
  font-size: 1.125rem;
  opacity: 0.9;
  margin-bottom: 1rem;
}

.result-details-modern {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 1.5rem;
  margin-top: 2rem;
}

.detail-card-modern {
  background: var(--calc-gray-50);
  padding: 1.5rem;
  border-radius: 0.75rem;
  border: 1px solid var(--calc-gray-200);
}

.detail-title-modern {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--calc-gray-700);
  margin-bottom: 0.5rem;
}

.detail-value-modern {
  font-size: 1.25rem;
  font-weight: 800;
  color: var(--calc-primary);
}
/* =========================================================================
CSS PREMIUM CALCULATEUR RÉSULTATS — SB INGÉNIERIE BTP 2025
Design cohérent avec le style premium du site
========================================================================= */

/* =========================================================================
CSS PREMIUM CALCULATEUR BET — SB INGÉNIERIE BTP 2025
Compatible avec les classes HTML existantes - Version Production
Architecture moderne, Design System professionnel, Performance optimisée
========================================================================= */

/* ===== DESIGN TOKENS SYSTÈME ===== */
:root {
  /* Palette couleurs BTP Premium 2025 */
  --calc-primary: #1e40af;
  --calc-primary-light: #3b82f6;
  --calc-primary-dark: #1e3a8a;
  --calc-secondary: #64748b;
  --calc-accent: #f59e0b;
  --calc-accent-light: #fbbf24;
  --calc-warning: #f59e0b;
  --calc-success: #10b981;
  --calc-success-light: #34d399;
  --calc-danger: #ef4444;
  --calc-info: #0ea5e9;
  
  /* Grays harmoniques */
  --calc-white: #ffffff;
  --calc-gray-50: #f8fafc;
  --calc-gray-100: #f1f5f9;
  --calc-gray-200: #e2e8f0;
  --calc-gray-300: #cbd5e1;
  --calc-gray-400: #94a3b8;
  --calc-gray-500: #64748b;
  --calc-gray-600: #475569;
  --calc-gray-700: #334155;
  --calc-gray-800: #1e293b;
  --calc-gray-900: #0f172a;
  
  /* Espacements fluides */
  --calc-space-1: 0.25rem;
  --calc-space-2: 0.5rem;
  --calc-space-3: 0.75rem;
  --calc-space-4: 1rem;
  --calc-space-5: 1.25rem;
  --calc-space-6: 1.5rem;
  --calc-space-8: 2rem;
  --calc-space-10: 2.5rem;
  --calc-space-12: 3rem;
  --calc-space-16: 4rem;
  --calc-space-20: 5rem;
  
  /* Typographie responsive */
  --calc-text-xs: clamp(0.75rem, 0.9vw, 0.875rem);
  --calc-text-sm: clamp(0.875rem, 1.1vw, 1rem);
  --calc-text-base: clamp(1rem, 1.3vw, 1.125rem);
  --calc-text-lg: clamp(1.125rem, 1.6vw, 1.25rem);
  --calc-text-xl: clamp(1.25rem, 2vw, 1.5rem);
  --calc-text-2xl: clamp(1.5rem, 2.8vw, 2rem);
  --calc-text-3xl: clamp(1.875rem, 3.5vw, 2.5rem);
  --calc-text-4xl: clamp(2.25rem, 4.5vw, 3rem);
  
  /* Rayons modernes */
  --calc-radius-sm: 0.5rem;
  --calc-radius-md: 0.75rem;
  --calc-radius-lg: 1rem;
  --calc-radius-xl: 1.25rem;
  --calc-radius-2xl: 1.5rem;
  --calc-radius-3xl: 2rem;
  --calc-radius-full: 9999px;
  
  /* Ombres élégantes */
  --calc-shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
  --calc-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
  --calc-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
  --calc-shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
  --calc-shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
  
  /* Transitions fluides */
  --calc-transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
  --calc-transition-normal: 300ms cubic-bezier(0.4, 0, 0.2, 1);
  --calc-transition-slow: 500ms cubic-bezier(0.4, 0, 0.2, 1);
  --calc-transition-bounce: 600ms cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

/* ===== SECTION CALCULATEUR PRINCIPALE ===== */
.calculator-section {
  background: 
    linear-gradient(135deg, var(--calc-gray-50) 0%, #e2e8f0 100%),
    radial-gradient(circle at 20% 80%, rgba(30, 64, 175, 0.03) 0%, transparent 50%),
    radial-gradient(circle at 80% 20%, rgba(245, 158, 11, 0.05) 0%, transparent 50%);
  padding: var(--calc-space-20) 0;
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.calculator-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background: 
    linear-gradient(90deg, transparent 0%, rgba(59, 130, 246, 0.02) 50%, transparent 100%),
    linear-gradient(0deg, transparent 0%, rgba(245, 158, 11, 0.015) 50%, transparent 100%);
  background-size: 100px 100px, 150px 150px;
  animation: patternMove 30s linear infinite;
  pointer-events: none;
  z-index: -1;
}

/* ===== HEADER SECTION MODERNISÉ ===== */
.calculator-section .section-header {
  position: relative;
  z-index: 10;
  margin-bottom: var(--calc-space-16);
}

.calculator-header-decoration {
  position: relative;
  margin-bottom: var(--calc-space-8);
  display: flex;
  justify-content: center;
}

.calculator-icon-decoration {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100px;
  height: 100px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--calc-accent), #ea580c);
  color: white;
  font-size: 2.5rem;
  box-shadow: 
    var(--calc-shadow-xl),
    0 0 0 1px rgba(245, 158, 11, 0.1),
    inset 0 2px 0 rgba(255, 255, 255, 0.1);
  animation: calculatorIconFloat 4s ease-in-out infinite;
  z-index: 2;
  transition: var(--calc-transition-normal);
}

.calculator-pulse {
  position: absolute;
  inset: -10px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--calc-accent), #ea580c);
  opacity: 0.3;
  animation: calculatorPulse 3s ease-in-out infinite;
  z-index: -1;
}

.calculator-icon-decoration:hover {
  transform: scale(1.05) rotate(5deg);
  box-shadow: 
    var(--calc-shadow-2xl),
    0 0 0 1px rgba(245, 158, 11, 0.2),
    inset 0 2px 0 rgba(255, 255, 255, 0.2);
}

/* ===== BADGES EXPERTISE ===== */
.section-badges {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: var(--calc-space-4);
  margin-bottom: var(--calc-space-8);
}

.section-badges .badge {
  display: inline-flex;
  align-items: center;
  gap: var(--calc-space-2);
  padding: var(--calc-space-3) var(--calc-space-5);
  border-radius: var(--calc-radius-full);
  font-weight: 600;
  font-size: var(--calc-text-sm);
  text-transform: uppercase;
  letter-spacing: 0.025em;
  transition: var(--calc-transition-normal);
  box-shadow: var(--calc-shadow-sm);
  border: 1px solid rgba(255, 255, 255, 0.2);
  position: relative;
  overflow: hidden;
}

.section-badges .badge::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
  transform: translateX(-100%);
  transition: transform var(--calc-transition-slow);
}

.section-badges .badge:hover {
  transform: translateY(-2px) scale(1.02);
  box-shadow: var(--calc-shadow-lg);
}

.section-badges .badge:hover::before {
  transform: translateX(100%);
}

.bg-gradient-warning {
  background: linear-gradient(135deg, var(--calc-warning), #ea580c) !important;
}

.bg-gradient-primary {
  background: linear-gradient(135deg, var(--calc-primary), var(--calc-primary-light)) !important;
}

.bg-gradient-success {
  background: linear-gradient(135deg, var(--calc-success), var(--calc-success-light)) !important;
}

/* ===== TYPOGRAPHIE PREMIUM ===== */
.calculator-section .section-title {
  font-size: var(--calc-text-4xl);
  font-weight: 900;
  line-height: 1.1;
  margin: 0 0 var(--calc-space-6);
  color: var(--calc-gray-900);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--calc-space-4);
  flex-wrap: wrap;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.calculator-section .section-subtitle {
  font-size: var(--calc-text-lg);
  line-height: 1.6;
  color: var(--calc-gray-600);
  margin: 0 auto var(--calc-space-6);
  max-width: 48rem;
  font-weight: 500;
}

.calculator-description {
  max-width: 44rem;
  margin: 0 auto var(--calc-space-8);
}

.calculator-description .lead-text {
  font-size: var(--calc-text-xl);
  line-height: 1.7;
  color: var(--calc-gray-700);
  font-style: italic;
  margin: 0;
  font-weight: 400;
}

/* ===== INDICATEUR DE PROGRESSION ===== */
.calculator-progress-premium {
  max-width: 50rem;
  margin: 0 auto var(--calc-space-16);
}

.progress-container-modern {
  position: relative;
  background: linear-gradient(135deg, white, var(--calc-gray-50));
  border-radius: var(--calc-radius-2xl);
  padding: var(--calc-space-8);
  box-shadow: 
    var(--calc-shadow-xl),
    inset 0 1px 0 rgba(255, 255, 255, 0.1);
  border: 1px solid var(--calc-gray-200);
  backdrop-filter: blur(10px);
}

.progress-container-modern::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--calc-primary), var(--calc-accent), var(--calc-success));
  border-radius: var(--calc-radius-2xl) var(--calc-radius-2xl) 0 0;
  background-size: 200% 200%;
  animation: gradientShift 4s ease-in-out infinite;
}

.progress-line-modern {
  position: absolute;
  top: 50%;
  left: 10%;
  right: 10%;
  height: 4px;
  background: var(--calc-gray-200);
  border-radius: var(--calc-radius-full);
  transform: translateY(-50%);
  overflow: hidden;
}

.progress-line-modern::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  background: linear-gradient(90deg, var(--calc-primary), var(--calc-success));
  border-radius: var(--calc-radius-full);
  transition: width var(--calc-transition-slow);
  width: 0;
  box-shadow: 0 0 8px rgba(59, 130, 246, 0.4);
}

.progress-line-modern.step-1::before { width: 0%; }
.progress-line-modern.step-2::before { width: 50%; }
.progress-line-modern.step-3::before { width: 100%; }

.progress-steps-modern {
  display: flex;
  justify-content: space-between;
  position: relative;
  z-index: 2;
}

.step-modern {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--calc-space-3);
  transition: var(--calc-transition-normal);
}

.step-circle-modern {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: var(--calc-gray-300);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  color: var(--calc-gray-600);
  transition: var(--calc-transition-bounce);
  border: 3px solid white;
  box-shadow: var(--calc-shadow-md);
  position: relative;
  overflow: hidden;
}

.step-circle-modern::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, transparent, rgba(255, 255, 255, 0.2));
  border-radius: 50%;
  opacity: 0;
  transition: opacity var(--calc-transition-normal);
}

.step-modern.active .step-circle-modern {
  background: linear-gradient(135deg, var(--calc-primary), var(--calc-primary-light));
  color: white;
  border-color: rgba(59, 130, 246, 0.2);
  transform: scale(1.1);
  box-shadow: 
    var(--calc-shadow-xl),
    0 0 0 4px rgba(59, 130, 246, 0.1);
}

.step-modern.active .step-circle-modern::before {
  opacity: 1;
}

.step-label-modern {
  font-size: var(--calc-text-sm);
  font-weight: 600;
  color: var(--calc-gray-600);
  text-align: center;
  transition: var(--calc-transition-normal);
  text-transform: uppercase;
  letter-spacing: 0.025em;
}

.step-modern.active .step-label-modern {
  color: var(--calc-primary);
  font-weight: 700;
}

/* ===== CONTENEUR CALCULATEUR ===== */
.calculator-wrapper-modern {
  max-width: 64rem;
  margin: 0 auto;
}

.calculator-card-modern {
  background: linear-gradient(135deg, white, var(--calc-gray-50));
  border-radius: var(--calc-radius-3xl);
  box-shadow: 
    var(--calc-shadow-2xl),
    inset 0 1px 0 rgba(255, 255, 255, 0.1);
  border: 1px solid var(--calc-gray-200);
  overflow: hidden;
  position: relative;
  backdrop-filter: blur(20px);
}

.calculator-card-modern::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 6px;
  background: linear-gradient(90deg, 
    var(--calc-primary), 
    var(--calc-accent), 
    var(--calc-success),
    var(--calc-primary)
  );
  background-size: 300% 100%;
  animation: progressGradient 6s ease-in-out infinite;
}

/* ===== ÉTAPES CALCULATEUR ===== */
.calculator-step-modern {
  display: none;
  padding: var(--calc-space-12);
  min-height: 40rem;
}

.calculator-step-modern.active {
  display: block;
  animation: stepFadeIn var(--calc-transition-slow) ease-out;
}

.step-header-modern {
  text-align: center;
  margin-bottom: var(--calc-space-12);
  position: relative;
}

.step-icon-modern {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--calc-primary), var(--calc-primary-light));
  color: white;
  font-size: 2rem;
  margin-bottom: var(--calc-space-6);
  box-shadow: 
    var(--calc-shadow-xl),
    inset 0 2px 0 rgba(255, 255, 255, 0.1);
  animation: stepIconPulse 2s ease-in-out infinite;
  position: relative;
  overflow: hidden;
}

.step-icon-modern::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, transparent, rgba(255, 255, 255, 0.2));
  border-radius: 50%;
  transform: scale(0);
  transition: transform var(--calc-transition-normal);
}

.step-icon-modern:hover::before {
  transform: scale(1);
}

.step-header-modern h3 {
  font-size: var(--calc-text-3xl);
  font-weight: 800;
  color: var(--calc-gray-900);
  margin-bottom: var(--calc-space-3);
  line-height: 1.2;
}

.step-header-modern p {
  font-size: var(--calc-text-lg);
  color: var(--calc-gray-600);
  margin: 0;
  line-height: 1.6;
  font-weight: 400;
}

/* ===== GROUPES DE FORMULAIRES ===== */
.form-group-modern {
  margin-bottom: var(--calc-space-8);
}

.form-label-modern {
  display: flex;
  align-items: center;
  font-size: var(--calc-text-lg);
  font-weight: 700;
  color: var(--calc-gray-900);
  margin-bottom: var(--calc-space-5);
  gap: var(--calc-space-2);
}

.form-label-modern .required {
  color: var(--calc-danger);
  margin-left: var(--calc-space-1);
  font-size: var(--calc-text-xl);
}

.form-label-modern i {
  color: var(--calc-primary);
  font-size: 1.2em;
}

/* ===== GRILLES DE SÉLECTION ===== */
.project-types-grid-modern,
.prestations-grid-modern {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
  gap: var(--calc-space-6);
  margin-bottom: var(--calc-space-4);
}

.options-grid-modern {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
  gap: var(--calc-space-4);
}

.project-type-card-modern,
.prestation-card-modern,
.option-card-modern {
  background: linear-gradient(135deg, white, var(--calc-gray-50));
  border: 2px solid var(--calc-gray-200);
  border-radius: var(--calc-radius-xl);
  padding: var(--calc-space-6);
  cursor: pointer;
  transition: var(--calc-transition-normal);
  position: relative;
  overflow: hidden;
  backdrop-filter: blur(10px);
  min-height: 10rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.project-type-card-modern::before,
.prestation-card-modern::before,
.option-card-modern::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--calc-primary), var(--calc-accent));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--calc-transition-normal);
}

.project-type-card-modern:hover,
.prestation-card-modern:hover,
.option-card-modern:hover {
  transform: translateY(-4px) scale(1.02);
  box-shadow: var(--calc-shadow-xl);
  border-color: var(--calc-primary);
}

.project-type-card-modern:hover::before,
.prestation-card-modern:hover::before,
.option-card-modern:hover::before {
  transform: scaleX(1);
}

.project-type-card-modern.selected,
.prestation-card-modern.selected,
.option-card-modern.active {
  background: linear-gradient(135deg, rgba(30, 64, 175, 0.1), rgba(59, 130, 246, 0.05));
  border-color: var(--calc-primary);
  transform: translateY(-4px);
  box-shadow: 
    var(--calc-shadow-xl),
    0 0 0 1px rgba(30, 64, 175, 0.2);
}

.project-type-card-modern.selected::before,
.prestation-card-modern.selected::before,
.option-card-modern.active::before {
  transform: scaleX(1);
  background: linear-gradient(90deg, var(--calc-primary), var(--calc-accent));
}

/* ===== ICÔNES REDESIGNÉES ===== */
.type-icon-modern,
.prestation-icon-modern,
.option-icon-modern {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--calc-primary), var(--calc-primary-light));
  color: white;
  font-size: 1.5rem;
  margin-bottom: var(--calc-space-4);
  transition: var(--calc-transition-bounce);
  box-shadow: var(--calc-shadow-lg);
  position: relative;
  overflow: hidden;
}

.type-icon-modern::before,
.prestation-icon-modern::before,
.option-icon-modern::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, transparent, rgba(255, 255, 255, 0.2));
  border-radius: 50%;
  transform: scale(0);
  transition: transform var(--calc-transition-normal);
}

/* Variantes de couleurs */
.bg-success { 
  background: linear-gradient(135deg, var(--calc-success), var(--calc-success-light)) !important; 
}
.bg-info { 
  background: linear-gradient(135deg, var(--calc-info), #0284c7) !important; 
}
.bg-warning { 
  background: linear-gradient(135deg, var(--calc-warning), #ea580c) !important; 
}
.bg-danger { 
  background: linear-gradient(135deg, var(--calc-danger), #dc2626) !important; 
}
.bg-secondary { 
  background: linear-gradient(135deg, var(--calc-gray-500), var(--calc-gray-600)) !important; 
}
.bg-dark { 
  background: linear-gradient(135deg, var(--calc-gray-700), var(--calc-gray-800)) !important; 
}
.bg-primary { 
  background: linear-gradient(135deg, var(--calc-primary), var(--calc-primary-light)) !important; 
}

.project-type-card-modern:hover .type-icon-modern,
.prestation-card-modern:hover .prestation-icon-modern,
.option-card-modern:hover .option-icon-modern {
  transform: scale(1.1) rotate(10deg);
}

.project-type-card-modern:hover .type-icon-modern::before,
.prestation-card-modern:hover .prestation-icon-modern::before,
.option-card-modern:hover .option-icon-modern::before {
  transform: scale(1);
}

/* ===== CONTENU DES CARTES ===== */
.type-content-modern,
.prestation-content-modern,
.option-content-modern {
  text-align: center;
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.type-content-modern h6,
.prestation-content-modern h6,
.option-content-modern h6 {
  font-size: var(--calc-text-lg);
  font-weight: 700;
  color: var(--calc-gray-900);
  margin-bottom: var(--calc-space-2);
  line-height: 1.3;
}

.type-content-modern small,
.prestation-content-modern small,
.option-content-modern small {
  color: var(--calc-gray-600);
  font-size: var(--calc-text-sm);
  line-height: 1.4;
  margin-bottom: var(--calc-space-3);
  display: block;
  font-weight: 400;
}

.price-range-modern,
.prestation-coeff,
.option-price-modern {
  background: linear-gradient(135deg, var(--calc-success), var(--calc-success-light));
  color: white;
  padding: var(--calc-space-2) var(--calc-space-4);
  border-radius: var(--calc-radius-full);
  font-size: var(--calc-text-sm);
  font-weight: 600;
  display: inline-block;
  margin-top: auto;
  box-shadow: var(--calc-shadow-sm);
  letter-spacing: 0.025em;
}

/* ===== CHAMPS DE FORMULAIRE ===== */
.form-control-modern,
.form-select-modern {
  width: 100%;
  padding: var(--calc-space-4);
  border: 2px solid var(--calc-gray-200);
  border-radius: var(--calc-radius-lg);
  font-size: var(--calc-text-base);
  transition: var(--calc-transition-normal);
  background: linear-gradient(135deg, white, var(--calc-gray-50));
  box-shadow: var(--calc-shadow-sm);
  font-weight: 500;
}

.form-control-modern:focus,
.form-select-modern:focus {
  outline: none;
  border-color: var(--calc-primary);
  box-shadow: 
    0 0 0 3px rgba(59, 130, 246, 0.1),
    var(--calc-shadow-md);
  background: white;
}

.surface-input-modern {
  position: relative;
}

.input-suffix-modern {
  position: absolute;
  right: var(--calc-space-4);
  top: 50%;
  transform: translateY(-50%);
  color: var(--calc-gray-500);
  font-weight: 600;
  font-size: var(--calc-text-base);
  pointer-events: none;
}

/* ===== SLIDER SURFACE ===== */
.surface-slider-modern {
  margin-top: var(--calc-space-5);
}

.range-modern {
  width: 100%;
  height: 8px;
  border-radius: var(--calc-radius-full);
  background: var(--calc-gray-200);
  outline: none;
  appearance: none;
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.05);
}

.range-modern::-webkit-slider-thumb {
  appearance: none;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--calc-primary), var(--calc-primary-light));
  cursor: pointer;
  box-shadow: 
    var(--calc-shadow-lg),
    0 0 0 2px white,
    0 0 0 4px rgba(59, 130, 246, 0.2);
  transition: var(--calc-transition-normal);
}

.range-modern::-webkit-slider-thumb:hover {
  transform: scale(1.1);
  box-shadow: 
    var(--calc-shadow-xl),
    0 0 0 2px white,
    0 0 0 6px rgba(59, 130, 246, 0.3);
}

.range-modern::-moz-range-thumb {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--calc-primary), var(--calc-primary-light));
  cursor: pointer;
  border: 2px solid white;
  box-shadow: var(--calc-shadow-lg);
}

.slider-labels-modern {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: var(--calc-space-3);
  font-size: var(--calc-text-sm);
  color: var(--calc-gray-500);
  font-weight: 500;
}

.form-text-modern {
  display: flex;
  align-items: center;
  gap: var(--calc-space-1);
  margin-top: var(--calc-space-2);
  font-size: var(--calc-text-sm);
  color: var(--calc-gray-500);
}

/* ===== BOUTONS D'ACTION ===== */
.step-actions-modern {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--calc-space-4);
  margin-top: var(--calc-space-12);
  padding-top: var(--calc-space-8);
  border-top: 1px solid var(--calc-gray-200);
}

.btn-modern-primary,
.btn-modern-secondary,
.btn-modern-success {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--calc-space-2);
  padding: var(--calc-space-4) var(--calc-space-8);
  border-radius: var(--calc-radius-full);
  font-weight: 700;
  font-size: var(--calc-text-base);
  text-decoration: none;
  transition: var(--calc-transition-normal);
  cursor: pointer;
  border: 2px solid transparent;
  min-height: 3rem;
  position: relative;
  overflow: hidden;
}

.btn-modern-primary::before,
.btn-modern-secondary::before,
.btn-modern-success::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
  transform: translateX(-100%);
  transition: transform var(--calc-transition-slow);
}

.btn-modern-primary:hover::before,
.btn-modern-secondary:hover::before,
.btn-modern-success:hover::before {
  transform: translateX(100%);
}

.btn-modern-primary {
  background: linear-gradient(135deg, var(--calc-primary), var(--calc-primary-light));
  color: white;
  box-shadow: var(--calc-shadow-lg);
}

.btn-modern-primary:hover {
  transform: translateY(-2px) scale(1.02);
  box-shadow: var(--calc-shadow-xl);
  background: linear-gradient(135deg, var(--calc-primary-light), var(--calc-primary-dark));
  color: white;
  text-decoration: none;
}

.btn-modern-secondary {
  background: white;
  color: var(--calc-gray-700);
  border-color: var(--calc-gray-300);
  box-shadow: var(--calc-shadow-md);
}

.btn-modern-secondary:hover {
  transform: translateY(-2px) scale(1.02);
  border-color: var(--calc-gray-400);
  box-shadow: var(--calc-shadow-lg);
  color: var(--calc-gray-800);
  text-decoration: none;
}

.btn-modern-success {
  background: linear-gradient(135deg, var(--calc-success), var(--calc-success-light));
  color: white;
  box-shadow: var(--calc-shadow-lg);
}

.btn-modern-success:hover {
  transform: translateY(-2px) scale(1.02);
  box-shadow: var(--calc-shadow-xl);
  background: linear-gradient(135deg, var(--calc-success-light), #059669);
  color: white;
  text-decoration: none;
}

/* ===== CONTENEUR RÉSULTATS PREMIUM ===== */
.result-container-modern {
  padding: 0;
  margin: 0;
}

/* Wrapper principal pour les résultats */
.calculator-results-premium {
  background: 
    linear-gradient(135deg, white 0%, var(--calc-gray-50) 100%),
    radial-gradient(circle at 20% 20%, rgba(30, 64, 175, 0.05) 0%, transparent 60%),
    radial-gradient(circle at 80% 80%, rgba(245, 158, 11, 0.03) 0%, transparent 60%);
  border-radius: var(--calc-radius-3xl);
  box-shadow: 
    var(--calc-shadow-2xl),
    0 0 0 1px rgba(30, 64, 175, 0.05),
    inset 0 1px 0 rgba(255, 255, 255, 0.1);
  border: 1px solid var(--calc-gray-200);
  overflow: hidden;
  position: relative;
  margin: var(--calc-space-8) 0;
  backdrop-filter: blur(20px);
  animation: resultAppear 0.8s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

.calculator-results-premium::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 6px;
  background: linear-gradient(90deg, 
    var(--calc-primary) 0%, 
    var(--calc-accent) 25%, 
    var(--calc-success) 50%,
    var(--calc-info) 75%,
    var(--calc-primary) 100%
  );
  background-size: 400% 100%;
  animation: resultGradientFlow 4s ease-in-out infinite;
}

/* Header des résultats */
.results-header-premium {
  background: 
    linear-gradient(135deg, rgba(30, 64, 175, 0.08) 0%, rgba(59, 130, 246, 0.04) 100%),
    linear-gradient(45deg, rgba(255, 255, 255, 0.1) 0%, transparent 100%);
  padding: var(--calc-space-10);
  text-align: center;
  position: relative;
  border-bottom: 1px solid var(--calc-gray-200);
}

.results-header-premium::before {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 80px;
  height: 3px;
  background: linear-gradient(90deg, var(--calc-accent), #fbbf24);
  border-radius: var(--calc-radius-full);
  box-shadow: 0 0 8px rgba(245, 158, 11, 0.4);
}

.results-icon-wrapper {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 90px;
  height: 90px;
  border-radius: 50%;
  background: 
    linear-gradient(135deg, var(--calc-primary) 0%, var(--calc-primary-light) 100%),
    linear-gradient(45deg, rgba(255, 255, 255, 0.1) 0%, transparent 100%);
  color: white;
  font-size: 2.5rem;
  margin-bottom: var(--calc-space-6);
  box-shadow: 
    var(--calc-shadow-xl),
    0 0 0 4px rgba(30, 64, 175, 0.1),
    inset 0 2px 0 rgba(255, 255, 255, 0.2);
  animation: resultIconPulse 3s ease-in-out infinite;
  position: relative;
  overflow: hidden;
}

.results-title-premium {
  font-size: var(--calc-text-3xl);
  font-weight: 900;
  color: var(--calc-gray-900);
  margin: 0 0 var(--calc-space-3);
  line-height: 1.2;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.results-subtitle-premium {
  font-size: var(--calc-text-lg);
  color: var(--calc-gray-600);
  margin: 0;
  font-weight: 500;
}

/* Container des cartes de prix */
.pricing-cards-container-premium {
  padding: var(--calc-space-10);
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr));
  gap: var(--calc-space-8);
  position: relative;
}

/* Cartes de pricing */
.pricing-card-premium {
  background: 
    linear-gradient(135deg, white 0%, var(--calc-gray-50) 100%),
    linear-gradient(45deg, rgba(255, 255, 255, 0.1) 0%, transparent 100%);
  border-radius: var(--calc-radius-2xl);
  padding: var(--calc-space-8);
  box-shadow: var(--calc-shadow-lg);
  border: 2px solid transparent;
  transition: var(--calc-transition-normal);
  position: relative;
  overflow: hidden;
  cursor: pointer;
  backdrop-filter: blur(10px);
  min-height: 22rem;
  display: flex;
  flex-direction: column;
}

.pricing-card-premium::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(30, 64, 175, 0.03) 0%, rgba(59, 130, 246, 0.01) 100%);
  opacity: 0;
  transition: opacity var(--calc-transition-normal);
  border-radius: inherit;
}

.pricing-card-premium:hover::before {
  opacity: 1;
}

.pricing-card-premium:hover {
  transform: translateY(-8px) scale(1.02);
  box-shadow: 
    var(--calc-shadow-2xl),
    0 0 0 1px rgba(30, 64, 175, 0.1);
  border-color: rgba(30, 64, 175, 0.2);
}

.pricing-card-premium::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--calc-success), var(--calc-success-light));
  border-radius: var(--calc-radius-2xl) var(--calc-radius-2xl) 0 0;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--calc-transition-normal);
}

.pricing-card-premium:hover::after {
  transform: scaleX(1);
}

/* Variantes des cartes */
.pricing-card-premium.minimum::after {
  background: linear-gradient(90deg, var(--calc-success), var(--calc-success-light));
}

.pricing-card-premium.recommended {
  transform: scale(1.05);
  box-shadow: 
    var(--calc-shadow-xl),
    0 0 0 2px rgba(245, 158, 11, 0.2);
  border-color: rgba(245, 158, 11, 0.3);
}

.pricing-card-premium.recommended::after {
  background: linear-gradient(90deg, var(--calc-accent), #fbbf24);
  transform: scaleX(1);
}

.pricing-card-premium.premium::after {
  background: linear-gradient(90deg, var(--calc-primary), var(--calc-primary-light));
}

/* Badge recommandé */
.pricing-badge-recommended {
  position: absolute;
  top: -12px;
  right: var(--calc-space-6);
  background: linear-gradient(135deg, var(--calc-accent) 0%, #fbbf24 100%);
  color: white;
  padding: var(--calc-space-3) var(--calc-space-5);
  border-radius: var(--calc-radius-full);
  font-size: var(--calc-text-sm);
  font-weight: 700;
  box-shadow: 
    var(--calc-shadow-lg),
    0 0 0 2px white;
  text-transform: uppercase;
  letter-spacing: 0.025em;
  display: flex;
  align-items: center;
  gap: var(--calc-space-2);
  animation: badgeGlow 2s ease-in-out infinite;
}

/* Contenu des cartes */
.pricing-header-premium {
  margin-bottom: var(--calc-space-6);
  text-align: center;
}

.pricing-type-premium {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--calc-space-2);
  font-size: var(--calc-text-sm);
  font-weight: 600;
  color: var(--calc-gray-600);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: var(--calc-space-4);
}

.pricing-amount-premium {
  font-size: var(--calc-text-4xl);
  font-weight: 900;
  color: var(--calc-primary);
  line-height: 1;
  margin-bottom: var(--calc-space-3);
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: var(--calc-space-2);
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.pricing-currency-premium {
  font-size: var(--calc-text-xl);
  font-weight: 600;
  color: var(--calc-gray-600);
}

.pricing-description-premium {
  font-size: var(--calc-text-base);
  color: var(--calc-gray-600);
  margin: 0 0 var(--calc-space-6);
  line-height: 1.5;
  text-align: center;
  font-weight: 500;
}

.pricing-highlight-premium {
  background: linear-gradient(135deg, rgba(16, 185, 129, 0.1) 0%, rgba(52, 211, 153, 0.05) 100%);
  color: var(--calc-success);
  padding: var(--calc-space-4) var(--calc-space-5);
  border-radius: var(--calc-radius-lg);
  font-size: var(--calc-text-sm);
  font-weight: 600;
  margin-top: auto;
  border-left: 4px solid var(--calc-success);
  box-shadow: var(--calc-shadow-sm);
  display: flex;
  align-items: center;
  gap: var(--calc-space-2);
}

/* Section économie */
.economy-section-premium {
  background: 
    linear-gradient(135deg, rgba(16, 185, 129, 0.08) 0%, rgba(52, 211, 153, 0.04) 100%),
    linear-gradient(45deg, rgba(255, 255, 255, 0.1) 0%, transparent 100%);
  border-radius: var(--calc-radius-2xl);
  padding: var(--calc-space-8) var(--calc-space-10);
  margin: var(--calc-space-8) var(--calc-space-10);
  border: 1px solid rgba(16, 185, 129, 0.2);
  position: relative;
  overflow: hidden;
  backdrop-filter: blur(10px);
}

.economy-section-premium::before {
  content: '💰';
  position: absolute;
  top: -15px;
  left: var(--calc-space-8);
  background: white;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  box-shadow: 
    var(--calc-shadow-lg),
    0 0 0 3px rgba(16, 185, 129, 0.2);
  animation: economyBounce 2s ease-in-out infinite;
}

.economy-title-premium {
  font-size: var(--calc-text-xl);
  font-weight: 800;
  color: var(--calc-success);
  margin-bottom: var(--calc-space-3);
  text-align: center;
}

.economy-amount-premium {
  font-size: var(--calc-text-3xl);
  font-weight: 900;
  color: var(--calc-success);
  margin-bottom: var(--calc-space-3);
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
  text-align: center;
}

.economy-description-premium {
  font-size: var(--calc-text-base);
  color: var(--calc-gray-600);
  margin: 0;
  line-height: 1.6;
  font-weight: 500;
  text-align: center;
}

/* Actions des résultats */
.results-actions-premium {
  display: flex;
  gap: var(--calc-space-6);
  justify-content: center;
  align-items: center;
  margin: var(--calc-space-10);
  flex-wrap: wrap;
}

.btn-results-primary-premium,
.btn-results-secondary-premium {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--calc-space-3);
  padding: var(--calc-space-5) var(--calc-space-8);
  border-radius: var(--calc-radius-full);
  font-weight: 700;
  font-size: var(--calc-text-lg);
  text-decoration: none;
  transition: var(--calc-transition-normal);
  cursor: pointer;
  border: 2px solid transparent;
  min-height: 3.5rem;
  min-width: 12rem;
  position: relative;
  overflow: hidden;
  backdrop-filter: blur(10px);
}

.btn-results-primary-premium::before,
.btn-results-secondary-premium::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
  transform: translateX(-100%);
  transition: transform var(--calc-transition-slow);
}

.btn-results-primary-premium:hover::before,
.btn-results-secondary-premium:hover::before {
  transform: translateX(100%);
}

.btn-results-primary-premium {
  background: linear-gradient(135deg, var(--calc-accent) 0%, #fbbf24 100%);
  color: white;
  box-shadow: 
    var(--calc-shadow-lg),
    0 0 0 1px rgba(245, 158, 11, 0.2);
}

.btn-results-primary-premium:hover {
  transform: translateY(-3px) scale(1.02);
  box-shadow: 
    var(--calc-shadow-xl),
    0 0 0 1px rgba(245, 158, 11, 0.3);
  color: white;
  text-decoration: none;
}

.btn-results-secondary-premium {
  background: rgba(255, 255, 255, 0.9);
  color: var(--calc-primary);
  border-color: var(--calc-primary);
  box-shadow: var(--calc-shadow-md);
}

.btn-results-secondary-premium:hover {
  transform: translateY(-3px) scale(1.02);
  background: var(--calc-primary);
  color: white;
  box-shadow: var(--calc-shadow-xl);
  text-decoration: none;
}

/* ===== STATISTIQUES CALCULATEUR ===== */
.calculator-stats-modern {
  margin-top: var(--calc-space-20);
}

.stats-container-modern {
  max-width: 64rem;
  margin: 0 auto;
}

.stats-header-modern {
  text-align: center;
  margin-bottom: var(--calc-space-12);
}

.stats-header-modern h3 {
  font-size: var(--calc-text-3xl);
  font-weight: 800;
  color: var(--calc-gray-900);
  margin-bottom: var(--calc-space-3);
}

.stats-header-modern p {
  font-size: var(--calc-text-lg);
  color: var(--calc-gray-600);
  margin: 0;
}

.stats-grid-modern {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
  gap: var(--calc-space-6);
}

.stat-card-modern {
  background: linear-gradient(135deg, white, var(--calc-gray-50));
  border-radius: var(--calc-radius-xl);
  padding: var(--calc-space-8);
  text-align: center;
  box-shadow: var(--calc-shadow-lg);
  border: 1px solid var(--calc-gray-200);
  transition: var(--calc-transition-normal);
  position: relative;
  overflow: hidden;
}

.stat-card-modern::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--calc-primary), var(--calc-accent));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--calc-transition-normal);
}

.stat-card-modern:hover {
  transform: translateY(-4px) scale(1.02);
  box-shadow: var(--calc-shadow-xl);
}

.stat-card-modern:hover::before {
  transform: scaleX(1);
}

.stat-icon-modern {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--calc-primary), var(--calc-primary-light));
  color: white;
  font-size: 1.75rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: var(--calc-space-5);
  box-shadow: var(--calc-shadow-lg);
  transition: var(--calc-transition-bounce);
}

.stat-card-modern:hover .stat-icon-modern {
  transform: scale(1.1) rotate(10deg);
}

.stat-content-modern {
  display: flex;
  flex-direction: column;
  gap: var(--calc-space-2);
}

.stat-value-modern {
  font-size: var(--calc-text-4xl);
  font-weight: 900;
  color: var(--calc-primary);
  line-height: 1;
}

.stat-label-modern {
  font-size: var(--calc-text-base);
  font-weight: 700;
  color: var(--calc-gray-900);
  text-transform: uppercase;
  letter-spacing: 0.025em;
}

.stat-desc-modern {
  font-size: var(--calc-text-sm);
  color: var(--calc-gray-600);
  margin: 0;
}

/* ===== ANIMATIONS ===== */
@keyframes calculatorIconFloat {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-8px) rotate(2deg); }
  50% { transform: translateY(-4px) rotate(0deg); }
  75% { transform: translateY(-12px) rotate(-2deg); }
}

@keyframes calculatorPulse {
  0%, 100% { 
    transform: scale(1);
    opacity: 0.3;
  }
  50% { 
    transform: scale(1.1);
    opacity: 0.5;
  }
}

@keyframes patternMove {
  0% { background-position: 0% 0%; }
  50% { background-position: 100% 100%; }
  100% { background-position: 0% 0%; }
}

@keyframes gradientShift {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}

@keyframes progressGradient {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}

@keyframes stepFadeIn {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes stepIconPulse {
  0%, 100% {
    box-shadow: 
      var(--calc-shadow-xl),
      inset 0 2px 0 rgba(255, 255, 255, 0.1);
  }
  50% {
    box-shadow: 
      var(--calc-shadow-2xl),
      inset 0 2px 0 rgba(255, 255, 255, 0.2),
      0 0 0 4px rgba(59, 130, 246, 0.1);
  }
}

@keyframes resultAppear {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes resultGradientFlow {
  0%, 100% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
}

@keyframes resultIconPulse {
  0%, 100% {
    box-shadow: 
      var(--calc-shadow-xl),
      0 0 0 4px rgba(30, 64, 175, 0.1),
      inset 0 2px 0 rgba(255, 255, 255, 0.2);
  }
  50% {
    box-shadow: 
      var(--calc-shadow-2xl),
      0 0 0 8px rgba(30, 64, 175, 0.15),
      inset 0 2px 0 rgba(255, 255, 255, 0.3);
  }
}

@keyframes badgeGlow {
  0%, 100% {
    box-shadow: 
      var(--calc-shadow-lg),
      0 0 0 2px white;
  }
  50% {
    box-shadow: 
      var(--calc-shadow-xl),
      0 0 0 2px white,
      0 0 20px rgba(245, 158, 11, 0.4);
  }
}

@keyframes economyBounce {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-4px);
  }
}

/* ===== RESPONSIVE DESIGN PREMIUM ===== */

/* Large Desktop (1400px+) */
@media (min-width: 87.5em) {
  .project-types-grid-modern,
  .prestations-grid-modern {
    grid-template-columns: repeat(3, 1fr);
  }
  
  .pricing-cards-container-premium {
    grid-template-columns: repeat(3, 1fr);
    max-width: 80rem;
    margin: 0 auto;
  }
  
  .stats-grid-modern {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* Desktop (1024px - 1399px) */
@media (min-width: 64em) and (max-width: 87.4375em) {
  .calculator-section {
    padding: var(--calc-space-16) 0;
  }
  
  .project-types-grid-modern,
  .prestations-grid-modern {
    grid-template-columns: repeat(2, 1fr);
  }
  
  .pricing-cards-container-premium {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* Tablet (768px - 1023px) */
@media (min-width: 48em) and (max-width: 63.9375em) {
  .calculator-section {
    padding: var(--calc-space-12) 0;
  }
  
  .calculator-step-modern {
    padding: var(--calc-space-8);
    min-height: 32rem;
  }
  
  .project-types-grid-modern,
  .prestations-grid-modern {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--calc-space-4);
  }
  
  .progress-steps-modern {
    gap: var(--calc-space-2);
  }
  
  .step-circle-modern {
    width: 50px;
    height: 50px;
    font-size: 1.2rem;
  }
  
  .step-label-modern {
    font-size: var(--calc-text-xs);
  }
  
  .pricing-cards-container-premium {
    padding: var(--calc-space-8);
    grid-template-columns: repeat(2, 1fr);
    gap: var(--calc-space-6);
  }
  
  .economy-section-premium {
    margin-left: var(--calc-space-8);
    margin-right: var(--calc-space-8);
    padding: var(--calc-space-8);
  }
  
  .results-actions-premium {
    flex-direction: column;
    gap: var(--calc-space-4);
  }
  
  .btn-results-primary-premium,
  .btn-results-secondary-premium {
    width: 100%;
    max-width: 24rem;
  }
}

/* Mobile Large (576px - 767px) */
@media (min-width: 36em) and (max-width: 47.9375em) {
  .calculator-section {
    padding: var(--calc-space-10) 0;
  }
  
  .section-badges {
    flex-direction: column;
    align-items: center;
  }
  
  .calculator-step-modern {
    padding: var(--calc-space-6);
    min-height: 28rem;
  }
  
  .project-types-grid-modern,
  .prestations-grid-modern {
    grid-template-columns: 1fr;
    gap: var(--calc-space-3);
  }
  
  .options-grid-modern {
    grid-template-columns: 1fr;
  }
  
  .step-actions-modern {
    flex-direction: column;
    gap: var(--calc-space-3);
  }
  
  .btn-modern-primary,
  .btn-modern-secondary,
  .btn-modern-success {
    width: 100%;
  }
  
  .pricing-cards-container-premium {
    padding: var(--calc-space-6);
    grid-template-columns: 1fr;
    gap: var(--calc-space-5);
  }
  
  .pricing-card-premium {
    padding: var(--calc-space-6);
    min-height: 18rem;
  }
  
  .pricing-card-premium.recommended {
    transform: none;
  }
  
  .economy-section-premium {
    margin-left: var(--calc-space-6);
    margin-right: var(--calc-space-6);
    padding: var(--calc-space-6);
  }
}

/* Mobile Standard (max 575px) */
@media (max-width: 35.9375em) {
  .calculator-section {
    padding: var(--calc-space-8) 0;
  }
  
  .calculator-icon-decoration {
    width: 80px;
    height: 80px;
    font-size: 2rem;
  }
  
  .section-badges {
    flex-direction: column;
    align-items: center;
    gap: var(--calc-space-2);
  }
  
  .section-badges .badge {
    width: 100%;
    max-width: 16rem;
    justify-content: center;
  }
  
  .calculator-step-modern {
    padding: var(--calc-space-4);
    min-height: 24rem;
  }
  
  .step-icon-modern {
    width: 60px;
    height: 60px;
    font-size: 1.5rem;
  }
  
  .progress-container-modern {
    padding: var(--calc-space-4);
  }
  
  .step-circle-modern {
    width: 40px;
    height: 40px;
    font-size: 1rem;
  }
  
  .step-label-modern {
    font-size: var(--calc-text-xs);
    text-align: center;
  }
  
  .project-type-card-modern,
  .prestation-card-modern,
  .option-card-modern {
    padding: var(--calc-space-4);
    min-height: 8rem;
  }
  
  .type-icon-modern,
  .prestation-icon-modern,
  .option-icon-modern {
    width: 48px;
    height: 48px;
    font-size: 1.3rem;
  }
  
  .stats-grid-modern {
    grid-template-columns: 1fr;
    gap: var(--calc-space-4);
  }
  
  .stat-card-modern {
    padding: var(--calc-space-6);
  }
  
  .stat-icon-modern {
    width: 56px;
    height: 56px;
    font-size: 1.5rem;
  }
  
  .pricing-cards-container-premium {
    padding: var(--calc-space-4);
    grid-template-columns: 1fr;
    gap: var(--calc-space-4);
  }
  
  .pricing-card-premium {
    padding: var(--calc-space-5);
    min-height: 16rem;
  }
  
  .pricing-amount-premium {
    font-size: var(--calc-text-3xl);
    flex-direction: column;
    gap: var(--calc-space-1);
  }
  
  .economy-section-premium {
    margin-left: var(--calc-space-4);
    margin-right: var(--calc-space-4);
    padding: var(--calc-space-5);
  }
  
  .economy-section-premium::before {
    left: var(--calc-space-5);
    width: 32px;
    height: 32px;
    font-size: 1rem;
  }
  
  .results-actions-premium {
    flex-direction: column;
    gap: var(--calc-space-3);
    margin: var(--calc-space-8) var(--calc-space-4);
  }
  
  .btn-results-primary-premium,
  .btn-results-secondary-premium {
    width: 100%;
    padding: var(--calc-space-4) var(--calc-space-6);
    min-height: 3rem;
    font-size: var(--calc-text-base);
  }
}

/* ===== OPTIMISATIONS PERFORMANCE ===== */
.calculator-section *,
.calculator-section *::before,
.calculator-section *::after {
  box-sizing: border-box;
}

/* GPU acceleration */
.calculator-icon-decoration,
.step-circle-modern,
.project-type-card-modern,
.prestation-card-modern,
.option-card-modern,
.stat-card-modern,
.type-icon-modern,
.prestation-icon-modern,
.option-icon-modern,
.pricing-card-premium,
.results-icon-wrapper {
  will-change: transform;
}

/* Conteneur optimisation */
.calculator-section {
  contain: layout style paint;
}

/* ===== ACCESSIBILITÉ ===== */
@media (prefers-reduced-motion: reduce) {
  .calculator-section *,
  .calculator-section *::before,
  .calculator-section *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* États focus */
.project-type-card-modern:focus-visible,
.prestation-card-modern:focus-visible,
.option-card-modern:focus-visible,
.btn-modern-primary:focus-visible,
.btn-modern-secondary:focus-visible,
.btn-modern-success:focus-visible,
.form-control-modern:focus-visible,
.form-select-modern:focus-visible,
.pricing-card-premium:focus-visible,
.btn-results-primary-premium:focus-visible,
.btn-results-secondary-premium:focus-visible {
  outline: 3px solid var(--calc-accent);
  outline-offset: 2px;
}

/* Mode sombre */
@media (prefers-color-scheme: dark) {
  .calculator-section {
    background: 
      linear-gradient(135deg, var(--calc-gray-900) 0%, var(--calc-gray-800) 100%),
      radial-gradient(circle at 20% 20%, rgba(59, 130, 246, 0.1) 0%, transparent 60%);
  }
  
  .calculator-card-modern,
  .project-type-card-modern,
  .prestation-card-modern,
  .option-card-modern,
  .stat-card-modern,
  .pricing-card-premium {
    background: linear-gradient(135deg, var(--calc-gray-800), var(--calc-gray-700));
    border-color: var(--calc-gray-600);
    color: var(--calc-gray-100);
  }
}

/* Zones tactiles */
@media (max-width: 47.9375em) {
  .project-type-card-modern,
  .prestation-card-modern,
  .option-card-modern,
  .btn-modern-primary,
  .btn-modern-secondary,
  .btn-modern-success,
  .form-control-modern,
  .form-select-modern,
  .pricing-card-premium,
  .btn-results-primary-premium,
  .btn-results-secondary-premium {
    min-height: 44px;
    min-width: 44px;
  }
}

/* ===== IMPRESSION ===== */
@media print {
  .calculator-section {
    background: white !important;
    color: black !important;
    padding: 2rem 0 !important;
  }
  
  .results-actions-premium,
  .step-actions-modern {
    display: none !important;
  }
  
  .pricing-card-premium {
    break-inside: avoid;
    page-break-inside: avoid;
  }
}
/* =========================================================================
CSS COMPLÉMENTAIRE RÉSULTATS — Partie manquante du style premium
Classes pour les éléments visibles dans la capture d'écran
========================================================================= */

/* ===== CONTENEUR RÉSULTATS SIMPLE (fallback) ===== */
.result-container-modern {
  background: linear-gradient(135deg, white 0%, var(--calc-gray-50) 100%);
  border-radius: var(--calc-radius-3xl);
  box-shadow: var(--calc-shadow-2xl);
  border: 1px solid var(--calc-gray-200);
  overflow: hidden;
  position: relative;
  backdrop-filter: blur(20px);
  margin: var(--calc-space-8) 0;
  animation: resultAppear 0.8s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

/* ===== HEADER RÉSULTATS MODERNE ===== */
.result-header-modern {
  background: 
    linear-gradient(135deg, rgba(30, 64, 175, 0.08) 0%, rgba(59, 130, 246, 0.04) 100%),
    linear-gradient(45deg, rgba(255, 255, 255, 0.1) 0%, transparent 100%);
  padding: var(--calc-space-10);
  text-align: center;
  border-bottom: 1px solid var(--calc-gray-200);
  position: relative;
}

.result-header-modern::before {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 80px;
  height: 3px;
  background: linear-gradient(90deg, var(--calc-accent), var(--calc-accent-light));
  border-radius: var(--calc-radius-full);
  box-shadow: 0 0 8px rgba(245, 158, 11, 0.4);
}

.result-icon-modern {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--calc-success), var(--calc-success-light));
  color: white;
  font-size: 2rem;
  margin-bottom: var(--calc-space-6);
  box-shadow: 
    var(--calc-shadow-xl),
    0 0 0 4px rgba(16, 185, 129, 0.1),
    inset 0 2px 0 rgba(255, 255, 255, 0.2);
  animation: resultIconPulse 3s ease-in-out infinite;
}

.result-header-modern h4 {
  font-size: var(--calc-text-3xl);
  font-weight: 900;
  color: var(--calc-primary);
  margin-bottom: var(--calc-space-3);
  line-height: 1.2;
}

.result-header-modern p {
  font-size: var(--calc-text-lg);
  color: var(--calc-gray-600);
  margin: 0;
  font-weight: 500;
}

/* ===== RÉSUMÉ PRICING MODERNE ===== */
.pricing-summary-modern {
  padding: var(--calc-space-8) var(--calc-space-10);
}

.pricing-range-modern {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
  gap: var(--calc-space-6);
  margin-bottom: var(--calc-space-6);
}

.price-card-modern {
  background: linear-gradient(135deg, white 0%, var(--calc-gray-50) 100%);
  border-radius: var(--calc-radius-xl);
  padding: var(--calc-space-6);
  text-align: center;
  box-shadow: var(--calc-shadow-lg);
  border: 2px solid transparent;
  transition: var(--calc-transition-normal);
  position: relative;
  overflow: hidden;
  min-height: 12rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.price-card-modern::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--calc-success), var(--calc-success-light));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--calc-transition-normal);
}

.price-card-modern:hover {
  transform: translateY(-4px) scale(1.02);
  box-shadow: var(--calc-shadow-xl);
  border-color: var(--calc-primary);
}

.price-card-modern:hover::before {
  transform: scaleX(1);
}

/* Variantes des cartes pricing */
.price-card-modern.price-min::before {
  background: linear-gradient(90deg, var(--calc-success), var(--calc-success-light));
}

.price-card-modern.main {
  transform: scale(1.05);
  border-color: var(--calc-accent);
  box-shadow: 
    var(--calc-shadow-xl),
    0 0 0 2px rgba(245, 158, 11, 0.2);
}

.price-card-modern.main::before {
  background: linear-gradient(90deg, var(--calc-accent), var(--calc-accent-light));
  transform: scaleX(1);
}

.price-card-modern.price-max::before {
  background: linear-gradient(90deg, var(--calc-primary), var(--calc-primary-light));
}

.price-label {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--calc-space-2);
  font-size: var(--calc-text-sm);
  font-weight: 600;
  color: var(--calc-gray-600);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: var(--calc-space-3);
}

.price-value {
  font-size: var(--calc-text-3xl);
  font-weight: 900;
  color: var(--calc-primary);
  line-height: 1;
  margin-bottom: var(--calc-space-2);
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.price-card-modern.main .price-value {
  color: var(--calc-accent);
  font-size: var(--calc-text-4xl);
}

.price-card-modern small {
  font-size: var(--calc-text-sm);
  color: var(--calc-gray-600);
  font-weight: 500;
  margin-top: auto;
}

.price-card-modern.main small {
  color: var(--calc-success);
  font-weight: 600;
}

/* ===== BANNIÈRE ÉCONOMIE ===== */
.economy-banner {
  background: 
    linear-gradient(135deg, rgba(16, 185, 129, 0.1) 0%, rgba(52, 211, 153, 0.05) 100%),
    linear-gradient(45deg, rgba(255, 255, 255, 0.1) 0%, transparent 100%);
  border: 1px solid rgba(16, 185, 129, 0.3) !important;
  border-radius: var(--calc-radius-xl) !important;
  position: relative;
  overflow: hidden;
  backdrop-filter: blur(10px);
}

.economy-banner::before {
  content: '💰';
  position: absolute;
  top: -8px;
  left: var(--calc-space-4);
  background: white;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  box-shadow: var(--calc-shadow-md);
  animation: economyBounce 2s ease-in-out infinite;
}

.economy-banner h6 {
  color: var(--calc-success) !important;
  font-weight: 700;
}

.economy-banner .h5 {
  color: var(--calc-success) !important;
  font-weight: 900;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

/* ===== RÉSUMÉ DU PROJET MODERNE ===== */
.project-summary-modern {
  background: 
    linear-gradient(135deg, white 0%, var(--calc-gray-50) 100%),
    linear-gradient(45deg, rgba(255, 255, 255, 0.1) 0%, transparent 100%);
  border-radius: var(--calc-radius-2xl);
  padding: var(--calc-space-8) var(--calc-space-10);
  margin: var(--calc-space-6) var(--calc-space-10);
  box-shadow: var(--calc-shadow-lg);
  border: 1px solid var(--calc-gray-200);
  position: relative;
  overflow: hidden;
  backdrop-filter: blur(10px);
}

.project-summary-modern::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--calc-primary), var(--calc-info), var(--calc-success));
  border-radius: var(--calc-radius-2xl) var(--calc-radius-2xl) 0 0;
}

.project-summary-modern h5 {
  font-size: var(--calc-text-2xl);
  font-weight: 800;
  color: var(--calc-primary);
  margin-bottom: var(--calc-space-6);
  display: flex;
  align-items: center;
  gap: var(--calc-space-3);
  padding-bottom: var(--calc-space-4);
  border-bottom: 2px solid var(--calc-gray-200);
  position: relative;
}

.project-summary-modern h5::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 80px;
  height: 2px;
  background: linear-gradient(90deg, var(--calc-primary), var(--calc-primary-light));
  border-radius: var(--calc-radius-full);
}

.details-grid-modern {
  display: grid;
  gap: var(--calc-space-4);
}

.detail-item-modern {
  display: flex;
  align-items: center;
  gap: var(--calc-space-4);
  padding: var(--calc-space-4) 0;
  border-bottom: 1px solid var(--calc-gray-200);
  transition: var(--calc-transition-normal);
}

.detail-item-modern:last-child {
  border-bottom: none;
  font-weight: 700;
  font-size: var(--calc-text-lg);
  padding-top: var(--calc-space-6);
  border-top: 2px solid var(--calc-primary);
  color: var(--calc-primary);
  margin-top: var(--calc-space-4);
}

.detail-item-modern:hover {
  background: rgba(59, 130, 246, 0.02);
  border-radius: var(--calc-radius-md);
  padding-left: var(--calc-space-3);
  padding-right: var(--calc-space-3);
}

.detail-item-modern i {
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  flex-shrink: 0;
}

.detail-item-modern > div {
  flex: 1;
}

.detail-item-modern strong {
  display: block;
  font-weight: 600;
  color: var(--calc-gray-900);
  margin-bottom: var(--calc-space-1);
}

.detail-item-modern .d-block {
  color: var(--calc-gray-600);
  font-weight: 400;
  font-size: var(--calc-text-base);
}

/* ===== DÉTAILS PRESTATIONS ===== */
.prestations-detail-modern {
  background: 
    linear-gradient(135deg, rgba(59, 130, 246, 0.05) 0%, rgba(99, 102, 241, 0.03) 100%),
    linear-gradient(45deg, rgba(255, 255, 255, 0.1) 0%, transparent 100%);
  border-radius: var(--calc-radius-2xl);
  padding: var(--calc-space-8) var(--calc-space-10);
  margin: var(--calc-space-6) var(--calc-space-10);
  border: 1px solid rgba(59, 130, 246, 0.2);
  backdrop-filter: blur(10px);
}

.prestations-detail-modern h6 {
  font-size: var(--calc-text-xl);
  font-weight: 800;
  color: var(--calc-primary);
  margin-bottom: var(--calc-space-6);
  display: flex;
  align-items: center;
  gap: var(--calc-space-3);
}

.prestations-list-modern {
  display: grid;
  gap: var(--calc-space-4);
}

.prestation-item-modern {
  display: flex;
  align-items: center;
  gap: var(--calc-space-4);
  background: white;
  padding: var(--calc-space-5);
  border-radius: var(--calc-radius-lg);
  box-shadow: var(--calc-shadow-md);
  border: 1px solid var(--calc-gray-200);
  transition: var(--calc-transition-normal);
  position: relative;
  overflow: hidden;
}

.prestation-item-modern::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  background: linear-gradient(180deg, var(--calc-primary), var(--calc-primary-light));
  transform: scaleY(0);
  transform-origin: bottom;
  transition: transform var(--calc-transition-normal);
}

.prestation-item-modern:hover {
  transform: translateX(4px);
  box-shadow: var(--calc-shadow-lg);
}

.prestation-item-modern:hover::before {
  transform: scaleY(1);
}

.prestation-icon {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--calc-primary), var(--calc-primary-light));
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  flex-shrink: 0;
  box-shadow: var(--calc-shadow-md);
}

.prestation-content {
  flex: 1;
}

.prestation-content h6 {
  font-size: var(--calc-text-lg);
  font-weight: 700;
  color: var(--calc-gray-900);
  margin-bottom: var(--calc-space-1);
  line-height: 1.3;
}

.prestation-content p {
  font-size: var(--calc-text-sm);
  color: var(--calc-gray-600);
  margin: 0;
  line-height: 1.4;
}

.prestation-coefficient {
  flex-shrink: 0;
}

.prestation-coefficient .badge {
  background: var(--calc-gray-100) !important;
  color: var(--calc-gray-700) !important;
  font-weight: 600;
  padding: var(--calc-space-2) var(--calc-space-3);
  border-radius: var(--calc-radius-full);
  font-size: var(--calc-text-sm);
}

/* ===== PROCHAINES ÉTAPES MODERNES ===== */
.next-steps-modern {
  background: 
    linear-gradient(135deg, var(--calc-primary) 0%, var(--calc-primary-light) 100%),
    linear-gradient(45deg, rgba(255, 255, 255, 0.1) 0%, transparent 100%);
  color: white;
  border-radius: var(--calc-radius-2xl);
  padding: var(--calc-space-8) var(--calc-space-10);
  margin: var(--calc-space-6) var(--calc-space-10);
  position: relative;
  overflow: hidden;
  backdrop-filter: blur(20px);
}

.next-steps-modern::before {
  content: '';
  position: absolute;
  top: -50%;
  right: -50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.1) 0%, transparent 70%);
  animation: nextStepsShimmer 6s ease-in-out infinite;
}

.next-steps-modern h6 {
  font-size: var(--calc-text-2xl);
  font-weight: 800;
  color: white;
  margin-bottom: var(--calc-space-6);
  display: flex;
  align-items: center;
  gap: var(--calc-space-3);
  position: relative;
  z-index: 2;
}

.steps-timeline {
  display: grid;
  gap: var(--calc-space-5);
  position: relative;
  z-index: 2;
}

.step-item {
  display: flex;
  align-items: center;
  gap: var(--calc-space-4);
  background: rgba(255, 255, 255, 0.1);
  padding: var(--calc-space-5);
  border-radius: var(--calc-radius-lg);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  transition: var(--calc-transition-normal);
}

.step-item:hover {
  transform: translateX(8px);
  background: rgba(255, 255, 255, 0.15);
  box-shadow: var(--calc-shadow-lg);
}

.step-number {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background: rgba(255, 255, 255, 0.9);
  color: var(--calc-primary);
  border-radius: 50%;
  font-weight: 900;
  font-size: var(--calc-text-lg);
  flex-shrink: 0;
  box-shadow: var(--calc-shadow-md);
}

.step-content {
  flex: 1;
}

.step-content strong {
  display: block;
  font-weight: 700;
  font-size: var(--calc-text-lg);
  margin-bottom: var(--calc-space-2);
  color: white;
}

.step-content p {
  font-size: var(--calc-text-base);
  color: rgba(255, 255, 255, 0.9);
  margin: 0;
  line-height: 1.5;
}

/* ===== DISCLAIMER MODERNE ===== */
.disclaimer-modern {
  margin: var(--calc-space-6) var(--calc-space-10);
}

.disclaimer-modern .alert {
  background: 
    linear-gradient(135deg, rgba(14, 165, 233, 0.08) 0%, rgba(59, 130, 246, 0.04) 100%),
    linear-gradient(45deg, rgba(255, 255, 255, 0.1) 0%, transparent 100%);
  border: 1px solid rgba(14, 165, 233, 0.3) !important;
  border-radius: var(--calc-radius-xl) !important;
  backdrop-filter: blur(10px);
  position: relative;
  overflow: hidden;
}

.disclaimer-modern .alert::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 4px;
  background: linear-gradient(180deg, var(--calc-info), #0ea5e9);
}

.alert-heading {
  color: var(--calc-info) !important;
  font-weight: 700;
  font-size: var(--calc-text-lg);
}

.disclaimer-modern .alert ul {
  margin-left: var(--calc-space-4);
}

.disclaimer-modern .alert li {
  margin-bottom: var(--calc-space-1);
}

/* ===== BOUTONS D'ACTION MODERNES ===== */
.action-buttons-modern {
  margin: var(--calc-space-8) var(--calc-space-10);
}

.action-buttons-modern .btn {
  border-radius: var(--calc-radius-xl) !important;
  padding: var(--calc-space-5) var(--calc-space-6) !important;
  font-weight: 700 !important;
  transition: var(--calc-transition-normal) !important;
  position: relative !important;
  overflow: hidden !important;
  min-height: 4rem !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: var(--calc-space-1) !important;
}

.action-buttons-modern .btn::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
  transform: translateX(-100%);
  transition: transform var(--calc-transition-slow);
}

.action-buttons-modern .btn:hover::before {
  transform: translateX(100%);
}

.action-buttons-modern .btn:hover {
  transform: translateY(-3px) scale(1.02) !important;
  box-shadow: var(--calc-shadow-xl) !important;
}

.action-buttons-modern .btn-success {
  background: linear-gradient(135deg, #25d366, #20b358) !important;
  border: none !important;
}

.action-buttons-modern .btn-primary {
  background: linear-gradient(135deg, var(--calc-primary), var(--calc-primary-light)) !important;
  border: none !important;
}

.action-buttons-modern .btn-outline-secondary {
  background: white !important;
  border-color: var(--calc-gray-300) !important;
  color: var(--calc-gray-700) !important;
}

.action-buttons-modern .btn-outline-secondary:hover {
  background: var(--calc-gray-100) !important;
  border-color: var(--calc-gray-400) !important;
  color: var(--calc-gray-800) !important;
}

.action-buttons-modern .btn > div {
  text-align: center;
}

.action-buttons-modern .btn strong {
  font-size: var(--calc-text-base);
  font-weight: 700;
}

.action-buttons-modern .btn small {
  font-size: var(--calc-text-xs);
  opacity: 0.9;
}

/* ===== ANIMATIONS COMPLÉMENTAIRES ===== */
@keyframes resultAppear {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes resultIconPulse {
  0%, 100% {
    box-shadow: 
      var(--calc-shadow-xl),
      0 0 0 4px rgba(16, 185, 129, 0.1),
      inset 0 2px 0 rgba(255, 255, 255, 0.2);
  }
  50% {
    box-shadow: 
      var(--calc-shadow-2xl),
      0 0 0 8px rgba(16, 185, 129, 0.15),
      inset 0 2px 0 rgba(255, 255, 255, 0.3);
  }
}

@keyframes economyBounce {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-4px);
  }
}

@keyframes nextStepsShimmer {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

/* ===== RESPONSIVE DESIGN COMPLÉMENTAIRE ===== */

/* Tablet */
@media (min-width: 48em) and (max-width: 63.9375em) {
  .pricing-range-modern {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--calc-space-4);
  }
  
  .project-summary-modern,
  .prestations-detail-modern,
  .next-steps-modern,
  .disclaimer-modern,
  .action-buttons-modern {
    margin-left: var(--calc-space-6);
    margin-right: var(--calc-space-6);
    padding-left: var(--calc-space-6);
    padding-right: var(--calc-space-6);
  }
}

/* Mobile */
@media (max-width: 47.9375em) {
  .pricing-range-modern {
    grid-template-columns: 1fr;
    gap: var(--calc-space-4);
  }
  
  .price-card-modern.main {
    transform: none;
  }
  
  .project-summary-modern,
  .prestations-detail-modern,
  .next-steps-modern,
  .disclaimer-modern,
  .action-buttons-modern {
    margin-left: var(--calc-space-4);
    margin-right: var(--calc-space-4);
    padding-left: var(--calc-space-5);
    padding-right: var(--calc-space-5);
  }
  
  .detail-item-modern {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--calc-space-2);
    text-align: left;
  }
  
  .prestation-item-modern {
    flex-direction: column;
    text-align: center;
    gap: var(--calc-space-3);
  }
  
  .step-item {
    flex-direction: column;
    text-align: center;
    gap: var(--calc-space-3);
  }
  
  .action-buttons-modern .btn {
    min-height: 3.5rem !important;
  }
}

/* ===== OPTIMISATIONS PERFORMANCE ===== */
.result-container-modern *,
.result-container-modern *::before,
.result-container-modern *::after {
  box-sizing: border-box;
}

/* GPU acceleration pour animations */
.price-card-modern,
.prestation-item-modern,
.step-item,
.action-buttons-modern .btn {
  will-change: transform;
}

/* Zones tactiles minimales */
@media (max-width: 47.9375em) {
  .price-card-modern,
  .prestation-item-modern,
  .step-item,
  .action-buttons-modern .btn {
    min-height: 44px;
    min-width: 44px;
  }
}
/* =========================================================================
CSS FINAL PREMIUM — Résumé du Projet et sections finales
Style ultra-moderne pour compléter l'affichage des résultats
========================================================================= */

/* ===== RÉSUMÉ DU PROJET PREMIUM ===== */
.project-summary-premium {
  background: 
    linear-gradient(135deg, white 0%, var(--calc-gray-50) 100%),
    radial-gradient(circle at 20% 20%, rgba(30, 64, 175, 0.03) 0%, transparent 60%),
    radial-gradient(circle at 80% 80%, rgba(245, 158, 11, 0.02) 0%, transparent 60%);
  border-radius: var(--calc-radius-3xl);
  padding: var(--calc-space-10) var(--calc-space-12);
  margin: var(--calc-space-8) 0;
  box-shadow: 
    var(--calc-shadow-2xl),
    0 0 0 1px rgba(30, 64, 175, 0.05),
    inset 0 1px 0 rgba(255, 255, 255, 0.1);
  border: 1px solid var(--calc-gray-200);
  position: relative;
  overflow: hidden;
  backdrop-filter: blur(20px);
}

.project-summary-premium::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 6px;
  background: linear-gradient(90deg, 
    var(--calc-primary) 0%, 
    var(--calc-info) 25%, 
    var(--calc-success) 50%,
    var(--calc-accent) 75%,
    var(--calc-primary) 100%
  );
  background-size: 400% 100%;
  animation: summaryGradientFlow 8s ease-in-out infinite;
}

.project-summary-premium::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.6), transparent);
}

/* Header du résumé */
.summary-header-premium {
  display: flex;
  align-items: center;
  gap: var(--calc-space-5);
  margin-bottom: var(--calc-space-8);
  padding-bottom: var(--calc-space-6);
  border-bottom: 3px solid var(--calc-gray-200);
  position: relative;
}

.summary-header-premium::after {
  content: '';
  position: absolute;
  bottom: -3px;
  left: 0;
  width: 120px;
  height: 3px;
  background: linear-gradient(90deg, var(--calc-primary), var(--calc-primary-light));
  border-radius: var(--calc-radius-full);
  box-shadow: 0 0 8px rgba(30, 64, 175, 0.3);
}

.summary-icon-premium {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 70px;
  height: 70px;
  border-radius: 50%;
  background: 
    linear-gradient(135deg, var(--calc-primary) 0%, var(--calc-primary-light) 100%),
    linear-gradient(45deg, rgba(255, 255, 255, 0.1) 0%, transparent 100%);
  color: white;
  font-size: 1.75rem;
  box-shadow: 
    var(--calc-shadow-xl),
    0 0 0 4px rgba(30, 64, 175, 0.1),
    inset 0 2px 0 rgba(255, 255, 255, 0.2);
  flex-shrink: 0;
  animation: summaryIconFloat 4s ease-in-out infinite;
  position: relative;
  overflow: hidden;
}

.summary-icon-premium::before {
  content: '';
  position: absolute;
  inset: -3px;
  border-radius: 50%;
  background: linear-gradient(45deg, var(--calc-primary), var(--calc-primary-light));
  opacity: 0.3;
  animation: summaryIconRotate 6s linear infinite;
  z-index: -1;
}

.summary-title-premium {
  font-size: var(--calc-text-3xl);
  font-weight: 900;
  color: var(--calc-gray-900);
  margin: 0;
  line-height: 1.2;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
  flex: 1;
}

/* Contenu du résumé */
.summary-content-premium {
  display: grid;
  gap: 0;
}

.summary-item-premium {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--calc-space-5) var(--calc-space-6);
  border-bottom: 2px solid var(--calc-gray-100);
  transition: var(--calc-transition-normal);
  position: relative;
  border-radius: var(--calc-radius-md);
  margin-bottom: var(--calc-space-2);
}

.summary-item-premium::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  background: linear-gradient(180deg, var(--calc-primary), var(--calc-primary-light));
  border-radius: var(--calc-radius-full);
  transform: scaleY(0);
  transform-origin: bottom;
  transition: transform var(--calc-transition-normal);
}

.summary-item-premium:hover {
  background: linear-gradient(135deg, rgba(30, 64, 175, 0.02) 0%, rgba(59, 130, 246, 0.01) 100%);
  transform: translateX(8px);
  box-shadow: var(--calc-shadow-md);
}

.summary-item-premium:hover::before {
  transform: scaleY(1);
}

.summary-item-premium:last-child {
  border-bottom: none;
  font-weight: 800;
  font-size: var(--calc-text-xl);
  padding: var(--calc-space-8) var(--calc-space-6);
  background: 
    linear-gradient(135deg, rgba(30, 64, 175, 0.08) 0%, rgba(59, 130, 246, 0.04) 100%),
    linear-gradient(45deg, rgba(255, 255, 255, 0.1) 0%, transparent 100%);
  border: 2px solid var(--calc-primary);
  border-radius: var(--calc-radius-xl);
  color: var(--calc-primary);
  margin-top: var(--calc-space-6);
  margin-bottom: 0;
  box-shadow: 
    var(--calc-shadow-lg),
    0 0 0 1px rgba(30, 64, 175, 0.1);
  backdrop-filter: blur(10px);
}

.summary-item-premium:last-child::before {
  transform: scaleY(1);
  background: linear-gradient(180deg, var(--calc-primary), var(--calc-accent));
  width: 6px;
}

.summary-label-premium {
  font-weight: 700;
  color: var(--calc-gray-800);
  display: flex;
  align-items: center;
  gap: var(--calc-space-3);
  font-size: var(--calc-text-lg);
}

.summary-label-premium i {
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--calc-gray-100), var(--calc-gray-200));
  color: var(--calc-primary);
  font-size: 0.9rem;
  transition: var(--calc-transition-normal);
}

.summary-item-premium:hover .summary-label-premium i {
  background: linear-gradient(135deg, var(--calc-primary), var(--calc-primary-light));
  color: white;
  transform: scale(1.1);
}

.summary-value-premium {
  font-weight: 700;
  color: var(--calc-gray-900);
  text-align: right;
  font-size: var(--calc-text-lg);
}

.summary-item-premium:last-child .summary-label-premium,
.summary-item-premium:last-child .summary-value-premium {
  color: var(--calc-primary);
  font-size: var(--calc-text-xl);
}

.summary-item-premium:last-child .summary-label-premium i {
  background: linear-gradient(135deg, var(--calc-primary), var(--calc-primary-light));
  color: white;
  transform: scale(1.2);
  box-shadow: var(--calc-shadow-md);
}

/* ===== DÉTAILS PRESTATIONS PREMIUM ===== */
.prestations-detail-premium {
  background: 
    linear-gradient(135deg, rgba(59, 130, 246, 0.05) 0%, rgba(99, 102, 241, 0.03) 100%),
    radial-gradient(circle at 30% 30%, rgba(16, 185, 129, 0.04) 0%, transparent 60%);
  border-radius: var(--calc-radius-2xl);
  padding: var(--calc-space-10) var(--calc-space-12);
  margin: var(--calc-space-8) 0;
  border: 2px solid rgba(59, 130, 246, 0.15);
  backdrop-filter: blur(15px);
  position: relative;
  overflow: hidden;
}

.prestations-detail-premium::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--calc-primary), var(--calc-info), var(--calc-success));
  border-radius: var(--calc-radius-2xl) var(--calc-radius-2xl) 0 0;
}

.prestations-detail-premium h6 {
  font-size: var(--calc-text-2xl);
  font-weight: 900;
  color: var(--calc-primary);
  margin-bottom: var(--calc-space-8);
  display: flex;
  align-items: center;
  gap: var(--calc-space-4);
  padding-bottom: var(--calc-space-4);
  border-bottom: 2px solid rgba(59, 130, 246, 0.2);
  position: relative;
}

.prestations-detail-premium h6::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 100px;
  height: 2px;
  background: linear-gradient(90deg, var(--calc-primary), var(--calc-primary-light));
  border-radius: var(--calc-radius-full);
  box-shadow: 0 0 8px rgba(30, 64, 175, 0.4);
}

.prestations-list-premium {
  display: grid;
  gap: var(--calc-space-5);
}

.prestation-item-premium {
  display: flex;
  align-items: center;
  gap: var(--calc-space-5);
  background: 
    linear-gradient(135deg, white 0%, var(--calc-gray-50) 100%),
    linear-gradient(45deg, rgba(255, 255, 255, 0.1) 0%, transparent 100%);
  padding: var(--calc-space-6);
  border-radius: var(--calc-radius-xl);
  box-shadow: var(--calc-shadow-lg);
  border: 2px solid transparent;
  transition: var(--calc-transition-normal);
  position: relative;
  overflow: hidden;
  backdrop-filter: blur(10px);
}

.prestation-item-premium::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 5px;
  background: linear-gradient(180deg, var(--calc-primary), var(--calc-success));
  transform: scaleY(0);
  transform-origin: bottom;
  transition: transform var(--calc-transition-normal);
}

.prestation-item-premium:hover {
  transform: translateX(8px) scale(1.01);
  box-shadow: 
    var(--calc-shadow-xl),
    0 0 0 1px rgba(30, 64, 175, 0.1);
  border-color: rgba(30, 64, 175, 0.2);
}

.prestation-item-premium:hover::before {
  transform: scaleY(1);
}

.prestation-icon-premium {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--calc-primary), var(--calc-primary-light));
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  flex-shrink: 0;
  box-shadow: 
    var(--calc-shadow-lg),
    inset 0 2px 0 rgba(255, 255, 255, 0.2);
  transition: var(--calc-transition-bounce);
  position: relative;
  overflow: hidden;
}

.prestation-icon-premium::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, transparent, rgba(255, 255, 255, 0.2));
  border-radius: 50%;
  transform: scale(0);
  transition: transform var(--calc-transition-normal);
}

.prestation-item-premium:hover .prestation-icon-premium {
  transform: scale(1.1) rotate(10deg);
}

.prestation-item-premium:hover .prestation-icon-premium::before {
  transform: scale(1);
}

.prestation-content-premium {
  flex: 1;
}

.prestation-content-premium h6 {
  font-size: var(--calc-text-xl);
  font-weight: 800;
  color: var(--calc-gray-900);
  margin-bottom: var(--calc-space-2);
  line-height: 1.3;
  border: none;
  padding: 0;
}

.prestation-content-premium h6::after {
  display: none;
}

.prestation-content-premium p {
  font-size: var(--calc-text-base);
  color: var(--calc-gray-600);
  margin: 0;
  line-height: 1.5;
  font-weight: 500;
}

.prestation-coefficient-premium {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--calc-space-2);
}

.prestation-coefficient-premium .badge {
  background: linear-gradient(135deg, var(--calc-success), var(--calc-success-light)) !important;
  color: white !important;
  font-weight: 700;
  padding: var(--calc-space-3) var(--calc-space-4);
  border-radius: var(--calc-radius-full);
  font-size: var(--calc-text-base);
  box-shadow: var(--calc-shadow-md);
  border: 1px solid rgba(16, 185, 129, 0.2);
}

.coefficient-label {
  font-size: var(--calc-text-xs);
  color: var(--calc-gray-500);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* ===== ÉTAPES SUIVANTES PREMIUM ===== */
.next-steps-premium {
  background: 
    linear-gradient(135deg, var(--calc-primary) 0%, var(--calc-primary-light) 100%),
    radial-gradient(circle at 20% 20%, rgba(255, 255, 255, 0.1) 0%, transparent 50%),
    radial-gradient(circle at 80% 80%, rgba(245, 158, 11, 0.1) 0%, transparent 50%);
  color: white;
  border-radius: var(--calc-radius-3xl);
  padding: var(--calc-space-12);
  margin: var(--calc-space-8) 0;
  position: relative;
  overflow: hidden;
  backdrop-filter: blur(25px);
  box-shadow: 
    var(--calc-shadow-2xl),
    0 0 0 1px rgba(255, 255, 255, 0.1);
}

.next-steps-premium::before {
  content: '';
  position: absolute;
  top: -50%;
  right: -50%;
  width: 200%;
  height: 200%;
  background: 
    radial-gradient(circle, rgba(255, 255, 255, 0.08) 0%, transparent 70%),
    linear-gradient(45deg, transparent 40%, rgba(255, 255, 255, 0.03) 50%, transparent 60%);
  animation: nextStepsFloat 10s ease-in-out infinite;
}

.next-steps-premium::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.6), transparent);
}

.steps-header-premium {
  text-align: center;
  margin-bottom: var(--calc-space-10);
  position: relative;
  z-index: 2;
}

.steps-title-premium {
  font-size: var(--calc-text-3xl);
  font-weight: 900;
  margin-bottom: var(--calc-space-4);
  line-height: 1.2;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.steps-subtitle-premium {
  opacity: 0.95;
  font-size: var(--calc-text-lg);
  font-weight: 500;
  margin: 0;
  line-height: 1.5;
}

.steps-list-premium {
  display: grid;
  gap: var(--calc-space-6);
  position: relative;
  z-index: 2;
}

.step-item-premium {
  display: flex;
  align-items: center;
  gap: var(--calc-space-6);
  background: 
    rgba(255, 255, 255, 0.12),
    linear-gradient(135deg, rgba(255, 255, 255, 0.1) 0%, transparent 100%);
  padding: var(--calc-space-6) var(--calc-space-8);
  border-radius: var(--calc-radius-2xl);
  backdrop-filter: blur(15px);
  border: 2px solid rgba(255, 255, 255, 0.2);
  transition: var(--calc-transition-normal);
  position: relative;
  overflow: hidden;
}

.step-item-premium::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.05) 0%, transparent 100%);
  opacity: 0;
  transition: opacity var(--calc-transition-normal);
  border-radius: inherit;
}

.step-item-premium:hover {
  transform: translateX(12px) scale(1.02);
  background: rgba(255, 255, 255, 0.18);
  box-shadow: 
    var(--calc-shadow-xl),
    0 0 0 1px rgba(255, 255, 255, 0.2);
  border-color: rgba(255, 255, 255, 0.3);
}

.step-item-premium:hover::before {
  opacity: 1;
}

.step-number-premium {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  background: 
    linear-gradient(135deg, rgba(255, 255, 255, 0.95), rgba(255, 255, 255, 0.85)),
    linear-gradient(45deg, rgba(255, 255, 255, 0.1) 0%, transparent 100%);
  color: var(--calc-primary);
  border-radius: 50%;
  font-weight: 900;
  font-size: var(--calc-text-xl);
  flex-shrink: 0;
  box-shadow: 
    var(--calc-shadow-lg),
    inset 0 2px 0 rgba(255, 255, 255, 0.3);
  transition: var(--calc-transition-bounce);
  position: relative;
  overflow: hidden;
}

.step-number-premium::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, var(--calc-primary), var(--calc-primary-light));
  opacity: 0;
  border-radius: 50%;
  transition: opacity var(--calc-transition-normal);
}

.step-number-premium::after {
  content: attr(data-number);
  position: relative;
  z-index: 2;
  transition: color var(--calc-transition-normal);
}

.step-item-premium:hover .step-number-premium {
  transform: scale(1.15) rotate(10deg);
}

.step-item-premium:hover .step-number-premium::before {
  opacity: 1;
}

.step-item-premium:hover .step-number-premium::after {
  color: white;
}

.step-content-premium {
  flex: 1;
}

.step-title-premium {
  font-weight: 800;
  margin-bottom: var(--calc-space-3);
  font-size: var(--calc-text-xl);
  line-height: 1.3;
  color: white;
}

.step-description-premium {
  opacity: 0.92;
  font-size: var(--calc-text-base);
  margin: 0;
  line-height: 1.6;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.9);
}

/* ===== DISCLAIMER PREMIUM ===== */
.disclaimer-premium {
  background: 
    linear-gradient(135deg, rgba(14, 165, 233, 0.06) 0%, rgba(59, 130, 246, 0.03) 100%),
    linear-gradient(45deg, rgba(255, 255, 255, 0.1) 0%, transparent 100%);
  border: 2px solid rgba(14, 165, 233, 0.2);
  border-radius: var(--calc-radius-2xl);
  padding: var(--calc-space-8) var(--calc-space-10);
  margin: var(--calc-space-8) 0;
  position: relative;
  overflow: hidden;
  backdrop-filter: blur(15px);
}

.disclaimer-premium::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 6px;
  background: linear-gradient(180deg, var(--calc-info), #0ea5e9);
  border-radius: 0 var(--calc-radius-full) var(--calc-radius-full) 0;
}

.disclaimer-premium .alert {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.disclaimer-premium .alert-heading {
  color: var(--calc-info) !important;
  font-weight: 800;
  font-size: var(--calc-text-xl);
  margin-bottom: var(--calc-space-4);
  display: flex;
  align-items: center;
  gap: var(--calc-space-3);
}

.disclaimer-premium .alert p {
  color: var(--calc-gray-700);
  font-size: var(--calc-text-base);
  line-height: 1.6;
  margin-bottom: var(--calc-space-3);
}

.disclaimer-premium .alert ul {
  margin-left: var(--calc-space-6);
  color: var(--calc-gray-600);
}

.disclaimer-premium .alert li {
  margin-bottom: var(--calc-space-2);
  font-size: var(--calc-text-sm);
  line-height: 1.5;
}

/* ===== ANIMATIONS PREMIUM ===== */
@keyframes summaryGradientFlow {
  0%, 100% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
}

@keyframes summaryIconFloat {
  0%, 100% { 
    transform: translateY(0) rotate(0deg);
  }
  33% { 
    transform: translateY(-6px) rotate(2deg);
  }
  66% { 
    transform: translateY(-3px) rotate(-1deg);
  }
}

@keyframes summaryIconRotate {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

@keyframes nextStepsFloat {
  0%, 100% {
    transform: translate(0, 0) rotate(0deg);
  }
  33% {
    transform: translate(30px, -20px) rotate(120deg);
  }
  66% {
    transform: translate(-20px, 10px) rotate(240deg);
  }
}

/* ===== RESPONSIVE DESIGN FINAL ===== */

/* Large Desktop (1400px+) */
@media (min-width: 87.5em) {
  .prestations-list-premium {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--calc-space-6);
  }
}

/* Desktop (1024px - 1399px) */
@media (min-width: 64em) and (max-width: 87.4375em) {
  .project-summary-premium,
  .prestations-detail-premium,
  .next-steps-premium,
  .disclaimer-premium {
    padding-left: var(--calc-space-8);
    padding-right: var(--calc-space-8);
  }
}

/* Tablet (768px - 1023px) */
@media (min-width: 48em) and (max-width: 63.9375em) {
  .summary-header-premium {
    flex-direction: column;
    text-align: center;
    gap: var(--calc-space-4);
  }
  
  .summary-icon-premium {
    width: 60px;
    height: 60px;
    font-size: 1.5rem;
  }
  
  .prestation-item-premium {
    flex-direction: column;
    text-align: center;
    gap: var(--calc-space-4);
  }
  
  .step-item-premium {
    flex-direction: column;
    text-align: center;
    gap: var(--calc-space-4);
  }
}

/* Mobile (max 767px) */
@media (max-width: 47.9375em) {
  .project-summary-premium,
  .prestations-detail-premium,
  .next-steps-premium,
  .disclaimer-premium {
    padding: var(--calc-space-6) var(--calc-space-5);
    margin: var(--calc-space-6) 0;
  }
  
  .summary-header-premium {
    flex-direction: column;
    text-align: center;
    gap: var(--calc-space-3);
  }
  
  .summary-icon-premium {
    width: 56px;
    height: 56px;
    font-size: 1.4rem;
  }
  
  .summary-title-premium {
    font-size: var(--calc-text-2xl);
  }
  
  .summary-item-premium {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--calc-space-2);
    text-align: left;
    padding: var(--calc-space-4);
  }
  
  .summary-value-premium {
    text-align: left;
    align-self: stretch;
  }
  
  .prestation-item-premium {
    flex-direction: column;
    text-align: center;
    gap: var(--calc-space-4);
    padding: var(--calc-space-5);
  }
  
  .prestation-icon-premium {
    width: 50px;
    height: 50px;
    font-size: 1.3rem;
  }
  
  .step-item-premium {
    flex-direction: column;
    text-align: center;
    gap: var(--calc-space-4);
    padding: var(--calc-space-5);
  }
  
  .step-number-premium {
    width: 48px;
    height: 48px;
    font-size: var(--calc-text-lg);
  }
}

/* ===== OPTIMISATIONS PERFORMANCE FINALES ===== */
.project-summary-premium *,
.prestations-detail-premium *,
.next-steps-premium *,
.disclaimer-premium * {
  box-sizing: border-box;
}

/* GPU acceleration pour animations */
.summary-icon-premium,
.prestation-icon-premium,
.step-number-premium,
.summary-item-premium,
.prestation-item-premium,
.step-item-premium {
  will-change: transform;
}

/* Zones tactiles minimales */
@media (max-width: 47.9375em) {
  .summary-item-premium,
  .prestation-item-premium,
  .step-item-premium {
    min-height: 44px;
    min-width: 44px;
  }
}

/* ===== ÉTATS FOCUS POUR ACCESSIBILITÉ ===== */
.summary-item-premium:focus-visible,
.prestation-item-premium:focus-visible,
.step-item-premium:focus-visible {
  outline: 3px solid var(--calc-accent);
  outline-offset: 2px;
}

/* ===== MODE SOMBRE SUPPORTÉ ===== */
@media (prefers-color-scheme: dark) {
  .project-summary-premium,
  .prestations-detail-premium,
  .disclaimer-premium {
    background: linear-gradient(135deg, var(--calc-gray-800) 0%, var(--calc-gray-700) 100%);
    border-color: var(--calc-gray-600);
    color: var(--calc-gray-100);
  }
  
  .summary-item-premium,
  .prestation-item-premium {
    background: linear-gradient(135deg, var(--calc-gray-700) 0%, var(--calc-gray-600) 100%);
    color: var(--calc-gray-100);
  }
}


/* =========================================================================
   CSS PREMIUM SECTION CONTACT — SB INGÉNIERIE BTP 2025
   Design moderne, formulaires optimisés, interface professionnelle
   ========================================================================= */

/* Variables CSS spécifiques au contact */
:root {
  --contact-primary: #1e3a8a;
  --contact-primary-dark: #1e40af;
  --contact-primary-light: #3b82f6;
  --contact-white: #ffffff;
  --contact-light: #f8fafc;
  --contact-gray-50: #f9fafb;
  --contact-gray-100: #f3f4f6;
  --contact-gray-200: #e5e7eb;
  --contact-gray-300: #d1d5db;
  --contact-gray-600: #4b5563;
  --contact-gray-700: #374151;
  --contact-gray-800: #1f2937;
  --contact-gray-900: #111827;
  --contact-accent: #f97316;
  --contact-success: #10b981;
  --contact-info: #0ea5e9;
  --contact-warning: #f59e0b;
  --contact-danger: #ef4444;
}

/* ===== SECTION CONTACT PRINCIPALE ===== */
.contact-section {
  background: linear-gradient(135deg, var(--contact-light) 0%, #e2e8f0 100%);
  padding: 4rem 0;
  position: relative;
  overflow: hidden;
}

.contact-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: 
    radial-gradient(circle at 20% 80%, rgba(30, 58, 138, 0.03) 0%, transparent 50%),
    radial-gradient(circle at 80% 20%, rgba(16, 185, 129, 0.05) 0%, transparent 50%);
  pointer-events: none;
  z-index: 1;
}

/* ===== HEADER SECTION PREMIUM ===== */
.contact-section .section-header {
  position: relative;
  z-index: 10;
  margin-bottom: 3rem;
  text-align: center;
}

.contact-header-decoration {
  position: relative;
  margin-bottom: 2rem;
}

.contact-icon-decoration {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--contact-success), #059669);
  color: white;
  font-size: 2rem;
  box-shadow: 0 10px 25px rgba(16, 185, 129, 0.3);
  animation: contactFloat 4s ease-in-out infinite;
  z-index: 2;
}

.contact-pulse {
  position: absolute;
  inset: -10px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--contact-success), #059669);
  opacity: 0.3;
  animation: pulse 2s ease-in-out infinite;
  z-index: 1;
}

/* Badges expertise */
.section-badges {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-bottom: 2rem;
}

.bg-gradient-success {
  background: linear-gradient(135deg, var(--contact-success), #059669) !important;
}

.bg-gradient-primary {
  background: linear-gradient(135deg, var(--contact-primary), var(--contact-primary-light)) !important;
}

.bg-gradient-info {
  background: linear-gradient(135deg, var(--contact-info), #0284c7) !important;
}

.section-badges .badge {
  padding: 0.5rem 1rem;
  border-radius: 50px;
  font-weight: 600;
  font-size: 0.875rem;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  transition: all 0.3s ease;
}

.section-badges .badge:hover {
  transform: translateY(-2px) scale(1.05);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}

/* Titre et description */
.contact-section .section-title {
  font-size: clamp(2rem, 5vw, 2.5rem);
  font-weight: 900;
  line-height: 1.2;
  margin: 0 0 1.5rem;
  color: var(--contact-gray-900);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
}

.contact-section .section-subtitle {
  font-size: clamp(1rem, 3vw, 1.125rem);
  line-height: 1.7;
  color: var(--contact-gray-600);
  margin: 0 auto 1.5rem;
  max-width: 900px;
  font-weight: 400;
}

.contact-description {
  max-width: 800px;
  margin: 0 auto 2rem;
}

.contact-description .lead-text {
  font-size: 1.125rem;
  line-height: 1.6;
  color: var(--contact-gray-700);
  font-style: italic;
  margin: 0;
}

/* ===== INDICATEURS DE CONFIANCE ===== */
.trust-indicators-modern {
  max-width: 1000px;
  margin: 0 auto 3rem;
}

.trust-container-modern {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1.5rem;
  background: white;
  padding: 2rem;
  border-radius: 1rem;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
  border: 1px solid var(--contact-gray-200);
}

.trust-item-modern {
  display: flex;
  align-items: center;
  gap: 1rem;
  text-align: left;
}

.trust-icon-modern {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 45px;
  height: 45px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--contact-success), #059669);
  color: white;
  font-size: 1.2rem;
  flex-shrink: 0;
}

.trust-icon-modern.bg-info {
  background: linear-gradient(135deg, var(--contact-info), #0284c7);
}

.trust-icon-modern.bg-warning {
  background: linear-gradient(135deg, var(--contact-warning), #ea580c);
}

.trust-icon-modern.bg-primary {
  background: linear-gradient(135deg, var(--contact-primary), var(--contact-primary-light));
}

.trust-content-modern strong {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--contact-gray-900);
  display: block;
}

.trust-content-modern small {
  font-size: 0.8rem;
  color: var(--contact-gray-600);
  line-height: 1.3;
}

/* ===== CARTE INFORMATIONS CONTACT ===== */
.contact-info-card-modern {
  background: white;
  border-radius: 1.5rem;
  padding: 2rem;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
  border: 1px solid var(--contact-gray-200);
  position: relative;
}

.contact-info-card-modern::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--contact-primary), var(--contact-success));
  border-radius: 1.5rem 1.5rem 0 0;
}

.contact-header-modern {
  text-align: center;
  margin-bottom: 2rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--contact-gray-200);
}

.contact-logo-modern {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--contact-primary), var(--contact-primary-light));
  color: white;
  font-size: 1.5rem;
  margin-bottom: 1rem;
  box-shadow: 0 8px 20px rgba(30, 58, 138, 0.3);
}

.contact-header-modern h4 {
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--contact-gray-900);
  margin-bottom: 0.5rem;
}

.contact-header-modern p {
  color: var(--contact-gray-600);
  font-size: 0.95rem;
  margin: 0;
}

/* ===== CONTACT RAPIDE ===== */
.quick-contact-modern {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 2rem;
}

.btn-contact-phone-modern,
.btn-contact-whatsapp-modern {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem;
  border-radius: 0.75rem;
  text-decoration: none;
  transition: all 0.3s ease;
  border: 1px solid var(--contact-gray-200);
  position: relative;
  overflow: hidden;
}

.btn-contact-phone-modern {
  background: linear-gradient(135deg, var(--contact-primary), var(--contact-primary-light));
  color: white;
  border: none;
}

.btn-contact-whatsapp-modern {
  background: linear-gradient(135deg, #25d366, #128c7e);
  color: white;
  border: none;
}

.btn-contact-phone-modern::before,
.btn-contact-whatsapp-modern::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
  transform: translateX(-100%);
  transition: transform 0.5s ease;
}

.btn-contact-phone-modern:hover::before,
.btn-contact-whatsapp-modern:hover::before {
  transform: translateX(100%);
}

.btn-contact-phone-modern:hover,
.btn-contact-whatsapp-modern:hover {
  transform: translateY(-3px) scale(1.02);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.2);
}

.btn-contact-icon-modern {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 45px;
  height: 45px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.2);
  font-size: 1.2rem;
  flex-shrink: 0;
}

.btn-contact-content-modern {
  text-align: left;
}

.btn-contact-content-modern strong {
  font-size: 1rem;
  font-weight: 700;
  display: block;
}

.btn-contact-content-modern span {
  font-size: 0.9rem;
  opacity: 0.9;
}

/* ===== DÉTAILS CONTACT ===== */
.contact-details-modern {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  margin-bottom: 2rem;
}

.contact-detail-modern {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
}

.contact-detail-icon-modern {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--contact-primary), var(--contact-primary-light));
  color: white;
  font-size: 1rem;
  flex-shrink: 0;
  margin-top: 0.25rem;
}

.contact-detail-icon-modern.bg-info {
  background: linear-gradient(135deg, var(--contact-info), #0284c7);
}

.contact-detail-icon-modern.bg-warning {
  background: linear-gradient(135deg, var(--contact-warning), #ea580c);
}

.contact-detail-icon-modern.bg-success {
  background: linear-gradient(135deg, var(--contact-success), #059669);
}

.contact-detail-content-modern strong {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--contact-gray-900);
  display: block;
  margin-bottom: 0.25rem;
}

.contact-detail-content-modern a {
  color: var(--contact-primary);
  text-decoration: none;
  font-weight: 600;
}

.contact-detail-content-modern a:hover {
  color: var(--contact-accent);
}

.contact-detail-content-modern address {
  font-style: normal;
  line-height: 1.4;
  color: var(--contact-gray-700);
  margin: 0.25rem 0;
}

.contact-detail-content-modern small {
  font-size: 0.8rem;
  color: var(--contact-gray-600);
  display: block;
  margin-top: 0.25rem;
}

.schedule-modern {
  font-size: 0.9rem;
  color: var(--contact-gray-700);
}

.schedule-modern div {
  display: flex;
  justify-content: space-between;
  margin-bottom: 0.25rem;
}

.schedule-modern span {
  font-weight: 600;
  color: var(--contact-gray-900);
}

/* ===== CARTE ET RÉSEAUX SOCIAUX ===== */
.contact-map-modern {
  margin-bottom: 2rem;
}

.contact-map-modern h6 {
  font-size: 1rem;
  font-weight: 700;
  color: var(--contact-gray-900);
  margin-bottom: 1rem;
  display: flex;
  align-items: center;
}

.map-container-modern {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.map-overlay-modern {
  position: absolute;
  bottom: 10px;
  right: 10px;
}

.btn-map-modern {
  background: rgba(255, 255, 255, 0.95);
  color: var(--contact-primary);
  padding: 0.5rem 1rem;
  border-radius: 0.5rem;
  text-decoration: none;
  font-size: 0.85rem;
  font-weight: 600;
  backdrop-filter: blur(8px);
  transition: all 0.3s ease;
}

.btn-map-modern:hover {
  background: white;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.social-modern h6 {
  font-size: 1rem;
  font-weight: 700;
  color: var(--contact-gray-900);
  margin-bottom: 1rem;
  display: flex;
  align-items: center;
}

.social-links-modern {
  display: flex;
  gap: 1rem;
}

.social-btn-modern {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 45px;
  height: 45px;
  border-radius: 50%;
  color: white;
  text-decoration: none;
  font-size: 1.2rem;
  transition: all 0.3s ease;
}

.social-btn-modern.whatsapp {
  background: linear-gradient(135deg, #25d366, #128c7e);
}

.social-btn-modern.linkedin {
  background: linear-gradient(135deg, #0077b5, #005885);
}

.social-btn-modern.instagram {
  background: linear-gradient(135deg, #e4405f, #c13584);
}

.social-btn-modern:hover {
  transform: translateY(-3px) scale(1.1);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
}

/* ===== FORMULAIRE CONTACT ===== */
.contact-form-card-modern {
  background: white;
  border-radius: 1.5rem;
  padding: 2.5rem;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
  border: 1px solid var(--contact-gray-200);
  position: relative;
}

.contact-form-card-modern::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--contact-primary), var(--contact-accent), var(--contact-success));
  background-size: 400% 400%;
  animation: gradientFlow 6s ease-in-out infinite;
  border-radius: 1.5rem 1.5rem 0 0;
}

.form-header-modern {
  text-align: center;
  margin-bottom: 2.5rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--contact-gray-200);
}

.form-icon-modern {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--contact-primary), var(--contact-primary-light));
  color: white;
  font-size: 1.5rem;
  margin-bottom: 1rem;
  box-shadow: 0 8px 20px rgba(30, 58, 138, 0.3);
}

.form-header-modern h4 {
  font-size: 1.75rem;
  font-weight: 800;
  color: var(--contact-gray-900);
  margin-bottom: 0.5rem;
}

.form-header-modern p {
  color: var(--contact-gray-600);
  font-size: 1rem;
  margin: 0;
  line-height: 1.5;
}

/* ===== ALERTES ET STATUS ===== */
.alert-modern {
  padding: 1rem;
  border-radius: 0.75rem;
  margin-bottom: 1.5rem;
  display: flex;
  align-items: center;
  font-weight: 600;
}

.alert-modern.success {
  background: rgba(16, 185, 129, 0.1);
  color: var(--contact-success);
  border: 1px solid rgba(16, 185, 129, 0.2);
}

.alert-modern.error {
  background: rgba(239, 68, 68, 0.1);
  color: var(--contact-danger);
  border: 1px solid rgba(239, 68, 68, 0.2);
}

.alert-modern.info {
  background: rgba(59, 130, 246, 0.1);
  color: var(--contact-primary);
  border: 1px solid rgba(59, 130, 246, 0.2);
}

/* ===== CHAMPS DE FORMULAIRE ===== */
.form-group-modern {
  position: relative;
  margin-bottom: 1.5rem;
}

.form-label-modern {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--contact-gray-900);
  margin-bottom: 0.75rem;
}

.form-label-modern .required {
  color: var(--contact-danger);
}

.form-control-modern,
.form-select-modern {
  width: 100%;
  padding: 0.875rem 1rem;
  border: 2px solid var(--contact-gray-200);
  border-radius: 0.75rem;
  font-size: 1rem;
  transition: all 0.3s ease;
  background: white;
  color: var(--contact-gray-900);
}

.form-control-modern:focus,
.form-select-modern:focus {
  outline: none;
  border-color: var(--contact-primary);
  box-shadow: 0 0 0 3px rgba(30, 58, 138, 0.1);
}

.form-control-modern.invalid,
.form-select-modern.invalid {
  border-color: var(--contact-danger);
}

.form-control-modern.valid,
.form-select-modern.valid {
  border-color: var(--contact-success);
}

.form-feedback {
  font-size: 0.85rem;
  color: var(--contact-danger);
  margin-top: 0.5rem;
  display: none;
}

.form-control-modern.invalid + .form-feedback {
  display: block;
}

.form-help {
  font-size: 0.85rem;
  color: var(--contact-gray-600);
  margin-top: 0.5rem;
  display: flex;
  align-items: center;
  gap: 0.25rem;
}

/* ===== CONSENTEMENT RGPD ===== */
.consent-modern {
  background: var(--contact-gray-50);
  padding: 1.5rem;
  border-radius: 0.75rem;
  border: 1px solid var(--contact-gray-200);
}

.form-check-modern {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}

.form-check-input-modern {
  width: 18px;
  height: 18px;
  margin-top: 0.125rem;
  accent-color: var(--contact-primary);
  flex-shrink: 0;
}

.form-check-label-modern {
  font-size: 0.9rem;
  color: var(--contact-gray-700);
  line-height: 1.5;
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
}

.privacy-note {
  font-size: 0.8rem;
  color: var(--contact-gray-600);
  display: flex;
  align-items: center;
  gap: 0.25rem;
  line-height: 1.4;
}

/* ===== BOUTON SUBMIT ===== */
.form-submit-modern {
  text-align: center;
}

.btn-submit-modern {
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  padding: 1.25rem 2.5rem;
  background: linear-gradient(135deg, var(--contact-success), #059669);
  color: white;
  border: none;
  border-radius: 50px;
  font-weight: 700;
  font-size: 1rem;
  cursor: pointer;
  transition: all 0.3s ease;
  position: relative;
  overflow: hidden;
}

.btn-submit-modern::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
  transform: translateX(-100%);
  transition: transform 0.5s ease;
}

.btn-submit-modern:hover::before {
  transform: translateX(100%);
}

.btn-submit-modern:hover {
  transform: translateY(-3px) scale(1.05);
  box-shadow: 0 15px 35px rgba(16, 185, 129, 0.3);
}

.btn-submit-modern:disabled {
  opacity: 0.7;
  cursor: not-allowed;
  transform: none;
}

.btn-submit-icon-modern {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 45px;
  height: 45px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.2);
  font-size: 1.2rem;
  flex-shrink: 0;
}

.btn-submit-content-modern {
  text-align: left;
}

.btn-submit-content-modern strong {
  font-size: 1.1rem;
  font-weight: 800;
  display: block;
}

.btn-submit-content-modern small {
  font-size: 0.85rem;
  opacity: 0.9;
}

/* ===== ANIMATIONS ===== */
@keyframes contactFloat {
  0%, 100% { transform: translateY(0px) scale(1); }
  50% { transform: translateY(-8px) scale(1.05); }
}

@keyframes pulse {
  0%, 100% { transform: scale(1); opacity: 0.3; }
  50% { transform: scale(1.1); opacity: 0.1; }
}

@keyframes gradientFlow {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}

/* ===== RESPONSIVE DESIGN ===== */
@media (max-width: 991.98px) {
  .contact-section {
    padding: 3rem 0;
  }
  
  .trust-container-modern {
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
  }
}

@media (max-width: 767.98px) {
  .contact-section {
    padding: 2rem 0;
  }
  
  .contact-icon-decoration {
    width: 60px;
    height: 60px;
    font-size: 1.5rem;
  }
  
  .section-badges {
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
  }
  
  .trust-container-modern {
    grid-template-columns: 1fr;
    padding: 1.5rem;
  }
  
  .trust-item-modern {
    flex-direction: column;
    text-align: center;
    gap: 0.75rem;
  }
  
  .contact-info-card-modern,
  .contact-form-card-modern {
    padding: 1.5rem;
  }
  
  .quick-contact-modern {
    gap: 0.75rem;
  }
  
  .btn-contact-phone-modern,
  .btn-contact-whatsapp-modern {
    padding: 0.875rem;
  }
  
  .contact-detail-modern {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0.75rem;
  }
  
  .schedule-modern div {
    flex-direction: column;
    text-align: center;
  }
}

@media (max-width: 575.98px) {
  .contact-info-card-modern,
  .contact-form-card-modern {
    padding: 1.25rem;
  }
  
  .btn-submit-modern {
    width: 100%;
    justify-content: center;
    padding: 1rem 1.5rem;
  }
  
  .btn-submit-content-modern {
    text-align: center;
  }
  
  .social-links-modern {
    justify-content: center;
  }
}

/* ===== OPTIMISATIONS PERFORMANCE ===== */
.contact-section *,
.contact-section *::before,
.contact-section *::after {
  box-sizing: border-box;
}

/* Respect des préférences d'accessibilité */
@media (prefers-reduced-motion: reduce) {
  .contact-section *,
  .contact-section *::before,
  .contact-section *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* États focus pour accessibilité */
.btn-contact-phone-modern:focus,
.btn-contact-whatsapp-modern:focus,
.social-btn-modern:focus,
.btn-submit-modern:focus,
.form-control-modern:focus,
.form-select-modern:focus {
  outline: 2px solid var(--contact-accent);
  outline-offset: 2px;
}

.btn-contact-phone-modern:focus:not(:focus-visible),
.btn-contact-whatsapp-modern:focus:not(:focus-visible),
.social-btn-modern:focus:not(:focus-visible),
.btn-submit-modern:focus:not(:focus-visible),
.form-control-modern:focus:not(:focus-visible),
.form-select-modern:focus:not(:focus-visible) {
  outline: none;
}


/* =========================================================================
   CSS PREMIUM SECTION NEWSLETTER — SB INGÉNIERIE BTP 2025
   Design moderne, formulaire optimisé, interface professionnelle
   ========================================================================= */

/* Variables CSS spécifiques à la newsletter */
:root {
  --newsletter-primary: #1e3a8a;
  --newsletter-primary-dark: #1e40af;
  --newsletter-primary-light: #3b82f6;
  --newsletter-white: #ffffff;
  --newsletter-dark: #1f2937;
  --newsletter-light: #f8fafc;
  --newsletter-gray-50: #f9fafb;
  --newsletter-gray-100: #f3f4f6;
  --newsletter-gray-200: #e5e7eb;
  --newsletter-gray-300: #d1d5db;
  --newsletter-gray-600: #4b5563;
  --newsletter-gray-700: #374151;
  --newsletter-gray-800: #1f2937;
  --newsletter-gray-900: #111827;
  --newsletter-accent: #f97316;
  --newsletter-success: #10b981;
  --newsletter-info: #0ea5e9;
  --newsletter-warning: #f59e0b;
  --newsletter-danger: #ef4444;
}

/* ===== SECTION NEWSLETTER PRINCIPALE ===== */
.newsletter-section {
  background: linear-gradient(135deg, var(--newsletter-dark) 0%, var(--newsletter-gray-800) 100%);
  color: var(--newsletter-white);
  padding: 4rem 0;
  position: relative;
  overflow: hidden;
}

.newsletter-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: 
    radial-gradient(circle at 20% 30%, rgba(249, 115, 22, 0.08) 1px, transparent 1px),
    radial-gradient(circle at 80% 70%, rgba(16, 185, 129, 0.05) 1px, transparent 1px);
  background-size: 60px 60px;
  opacity: 0.6;
  pointer-events: none;
  z-index: 1;
}

.newsletter-section::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--newsletter-accent), #ea580c, var(--newsletter-success), var(--newsletter-info));
  background-size: 400% 400%;
  animation: gradientFlow 6s ease-in-out infinite;
  z-index: 2;
}

/* ===== HEADER SECTION PREMIUM ===== */
.newsletter-section .section-header {
  position: relative;
  z-index: 10;
  margin-bottom: 3rem;
  text-align: center;
}

.newsletter-header-decoration {
  position: relative;
  margin-bottom: 2rem;
}

.newsletter-icon-decoration {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: var(--newsletter-white);
  color: var(--newsletter-warning);
  font-size: 2rem;
  margin-bottom: 1.5rem;
  box-shadow: 0 0 20px rgba(255, 255, 255, 0.3);
  animation: newsletterFloat 4s ease-in-out infinite;
  z-index: 2;
}

.newsletter-icon-decoration::before {
  content: '';
  position: absolute;
  inset: -3px;
  border-radius: 50%;
  background: linear-gradient(45deg, var(--newsletter-accent), transparent, var(--newsletter-success));
  opacity: 0.4;
  animation: rotate 8s linear infinite;
  z-index: -1;
}

.newsletter-pulse {
  position: absolute;
  inset: -10px;
  border-radius: 50%;
  background: var(--newsletter-white);
  opacity: 0.2;
  animation: pulse 2s ease-in-out infinite;
  z-index: 1;
}

/* Badges expertise */
.section-badges {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-bottom: 2rem;
}

.bg-gradient-warning {
  background: linear-gradient(135deg, var(--newsletter-warning), #ea580c) !important;
}

.bg-gradient-light {
  background: linear-gradient(135deg, var(--newsletter-gray-100), var(--newsletter-gray-200)) !important;
}

.bg-gradient-info {
  background: linear-gradient(135deg, var(--newsletter-info), #0284c7) !important;
}

.section-badges .badge {
  padding: 0.5rem 1rem;
  border-radius: 50px;
  font-weight: 600;
  font-size: 0.875rem;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  transition: all 0.3s ease;
}

.section-badges .badge:hover {
  transform: translateY(-2px) scale(1.05);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}

/* Titre et description */
.newsletter-section .section-title {
  font-size: clamp(2rem, 5vw, 2.5rem);
  font-weight: 900;
  line-height: 1.2;
  margin: 0 0 1.5rem;
  color: var(--newsletter-white);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
}

.newsletter-section .section-title i {
  animation: titleGlow 3s ease-in-out infinite;
}

.newsletter-section .section-subtitle {
  font-size: clamp(1rem, 3vw, 1.125rem);
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.9);
  margin: 0 auto 1.5rem;
  max-width: 900px;
  font-weight: 400;
}

.newsletter-description {
  max-width: 800px;
  margin: 0 auto 2rem;
}

.newsletter-description .lead-text {
  font-size: 1.125rem;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.85);
  font-style: italic;
  margin: 0;
}

/* ===== STATISTIQUES NEWSLETTER ===== */
.newsletter-stats-modern {
  max-width: 1000px;
  margin: 0 auto 3rem;
}

.stats-container-modern {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1.5rem;
  background: rgba(255, 255, 255, 0.15);
  padding: 2rem;
  border-radius: 1rem;
  backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.2);
}

.stat-item-modern {
  display: flex;
  align-items: center;
  gap: 1rem;
  text-align: left;
}

.stat-icon-modern {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 45px;
  height: 45px;
  border-radius: 50%;
  background: var(--newsletter-white);
  color: var(--newsletter-primary);
  font-size: 1.2rem;
  flex-shrink: 0;
}

.stat-icon-modern.bg-info {
  color: var(--newsletter-info);
}

.stat-icon-modern.bg-success {
  color: var(--newsletter-success);
}

.stat-icon-modern.bg-primary {
  color: var(--newsletter-primary);
}

.stat-content-modern strong {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--newsletter-white);
  display: block;
}

.stat-content-modern small {
  font-size: 0.8rem;
  color: rgba(255, 255, 255, 0.7);
  line-height: 1.3;
}

/* ===== FORMULAIRE NEWSLETTER ===== */
.newsletter-card-modern {
  background: var(--newsletter-white);
  color: var(--newsletter-gray-800);
  border-radius: 1.5rem;
  padding: 2.5rem;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);
  border: 1px solid rgba(255, 255, 255, 0.3);
  position: relative;
}

.newsletter-card-modern::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--newsletter-primary), var(--newsletter-accent), var(--newsletter-success));
  background-size: 400% 400%;
  animation: gradientFlow 6s ease-in-out infinite;
  border-radius: 1.5rem 1.5rem 0 0;
}

.newsletter-form-header-modern {
  text-align: center;
  margin-bottom: 2rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--newsletter-gray-200);
}

.newsletter-form-icon-modern {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--newsletter-primary), var(--newsletter-primary-light));
  color: white;
  font-size: 1.5rem;
  margin-bottom: 1rem;
  box-shadow: 0 8px 20px rgba(30, 58, 138, 0.3);
}

.newsletter-form-header-modern h4 {
  font-size: 1.75rem;
  font-weight: 800;
  color: var(--newsletter-gray-900);
  margin-bottom: 0.5rem;
}

.newsletter-form-header-modern p {
  color: var(--newsletter-gray-600);
  font-size: 1rem;
  margin: 0;
  line-height: 1.5;
}

/* ===== ALERTES ET STATUS ===== */
.alert-modern {
  padding: 1rem;
  border-radius: 0.75rem;
  margin-bottom: 1.5rem;
  display: flex;
  align-items: center;
  font-weight: 600;
}

.alert-modern.success {
  background: rgba(16, 185, 129, 0.1);
  color: var(--newsletter-success);
  border: 1px solid rgba(16, 185, 129, 0.2);
}

.alert-modern.error {
  background: rgba(239, 68, 68, 0.1);
  color: var(--newsletter-danger);
  border: 1px solid rgba(239, 68, 68, 0.2);
}

.alert-modern.info {
  background: rgba(59, 130, 246, 0.1);
  color: var(--newsletter-primary);
  border: 1px solid rgba(59, 130, 246, 0.2);
}

/* ===== INPUT GROUP MODERNE ===== */
.newsletter-input-modern {
  margin-bottom: 1.5rem;
}

.input-group-modern {
  display: flex;
  position: relative;
  border-radius: 50px;
  overflow: hidden;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
  border: 2px solid var(--newsletter-gray-200);
  transition: all 0.3s ease;
}

.input-group-modern:focus-within {
  border-color: var(--newsletter-primary);
  box-shadow: 0 0 0 3px rgba(30, 58, 138, 0.1);
}

.input-icon-modern {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 50px;
  background: var(--newsletter-gray-50);
  color: var(--newsletter-gray-600);
  font-size: 1rem;
  flex-shrink: 0;
}

.form-control-modern {
  flex: 1;
  border: none;
  outline: none;
  padding: 1rem;
  font-size: 1rem;
  color: var(--newsletter-gray-900);
  background: transparent;
}

.form-control-modern::placeholder {
  color: var(--newsletter-gray-500);
}

.btn-newsletter-modern {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 1rem 1.5rem;
  background: linear-gradient(135deg, var(--newsletter-success), #059669);
  color: white;
  border: none;
  cursor: pointer;
  transition: all 0.3s ease;
  font-weight: 700;
  font-size: 1rem;
  position: relative;
  overflow: hidden;
}

.btn-newsletter-modern::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
  transform: translateX(-100%);
  transition: transform 0.5s ease;
}

.btn-newsletter-modern:hover::before {
  transform: translateX(100%);
}

.btn-newsletter-modern:hover {
  background: linear-gradient(135deg, #059669, var(--newsletter-success));
  transform: translateY(-2px) scale(1.05);
  box-shadow: 0 8px 20px rgba(16, 185, 129, 0.3);
}

.btn-newsletter-icon-modern {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 35px;
  height: 35px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.2);
  font-size: 1rem;
  flex-shrink: 0;
}

.btn-newsletter-content-modern {
  text-align: left;
}

.form-feedback-modern {
  font-size: 0.85rem;
  color: var(--newsletter-danger);
  margin-top: 0.5rem;
  display: none;
}

.form-control-modern.invalid + .form-feedback-modern {
  display: block;
}

/* ===== INFORMATIONS COMPLÉMENTAIRES ===== */
.newsletter-info-modern {
  background: var(--newsletter-gray-50);
  padding: 1.5rem;
  border-radius: 0.75rem;
  margin-bottom: 1.5rem;
  border: 1px solid var(--newsletter-gray-200);
}

.info-grid-modern {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}

.info-item-modern {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  color: var(--newsletter-gray-700);
}

.info-item-modern i {
  color: var(--newsletter-success);
  width: 16px;
  text-align: center;
}

/* ===== CONFIDENTIALITÉ RGPD ===== */
.privacy-modern {
  background: rgba(16, 185, 129, 0.1);
  border: 1px solid rgba(16, 185, 129, 0.2);
  border-radius: 0.75rem;
  padding: 1rem;
}

.privacy-content-modern {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
}

.privacy-icon-modern {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--newsletter-success);
  color: white;
  font-size: 1rem;
  flex-shrink: 0;
}

.privacy-text-modern strong {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--newsletter-gray-900);
  display: block;
  margin-bottom: 0.25rem;
}

.privacy-text-modern small {
  font-size: 0.8rem;
  color: var(--newsletter-gray-600);
  line-height: 1.4;
}

/* ===== APERÇU CONTENU ===== */
.newsletter-preview-modern {
  background: rgba(255, 255, 255, 0.05);
  padding: 3rem 2rem;
  border-radius: 1.5rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  margin-top: 4rem;
  backdrop-filter: blur(8px);
}

.preview-header-modern {
  text-align: center;
  margin-bottom: 3rem;
}

.preview-icon-header-modern {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: var(--newsletter-white);
  color: var(--newsletter-primary);
  font-size: 1.5rem;
  margin-bottom: 1rem;
  box-shadow: 0 8px 20px rgba(255, 255, 255, 0.3);
}

.preview-header-modern h5 {
  font-size: 1.75rem;
  font-weight: 800;
  color: var(--newsletter-white);
  margin-bottom: 0.5rem;
}

.preview-header-modern p {
  color: rgba(255, 255, 255, 0.8);
  font-size: 1rem;
  margin: 0;
  line-height: 1.5;
}

.preview-grid-modern {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 1.5rem;
}

.preview-card-modern {
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 1rem;
  padding: 1.5rem;
  transition: all 0.3s ease;
  cursor: default;
  backdrop-filter: blur(8px);
}

.preview-card-modern:hover {
  transform: translateY(-5px);
  box-shadow: 0 15px 30px rgba(0, 0, 0, 0.1);
  background: rgba(255, 255, 255, 0.15);
}

.preview-card-icon-modern {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: var(--newsletter-white);
  color: var(--newsletter-primary);
  font-size: 1.2rem;
  margin-bottom: 1rem;
}

.preview-card-icon-modern.bg-info {
  color: var(--newsletter-info);
}

.preview-card-icon-modern.bg-success {
  color: var(--newsletter-success);
}

.preview-card-icon-modern.bg-warning {
  color: var(--newsletter-warning);
}

.preview-card-icon-modern.bg-primary {
  color: var(--newsletter-primary);
}

.preview-card-icon-modern.bg-secondary {
  color: var(--newsletter-gray-700);
}

.preview-card-content-modern h6 {
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--newsletter-white);
  margin-bottom: 0.75rem;
}

.preview-card-content-modern p {
  color: rgba(255, 255, 255, 0.8);
  font-size: 0.9rem;
  line-height: 1.5;
  margin-bottom: 1rem;
}

.preview-badge-modern {
  display: inline-block;
  padding: 0.25rem 0.75rem;
  border-radius: 50px;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.3px;
}

.preview-badge-modern.legislative {
  background: rgba(249, 115, 22, 0.2);
  color: var(--newsletter-accent);
  border: 1px solid rgba(249, 115, 22, 0.3);
}

.preview-badge-modern.practical {
  background: rgba(14, 165, 233, 0.2);
  color: var(--newsletter-info);
  border: 1px solid rgba(14, 165, 233, 0.3);
}

.preview-badge-modern.innovation {
  background: rgba(16, 185, 129, 0.2);
  color: var(--newsletter-success);
  border: 1px solid rgba(16, 185, 129, 0.3);
}

.preview-badge-modern.business {
  background: rgba(245, 158, 11, 0.2);
  color: var(--newsletter-warning);
  border: 1px solid rgba(245, 158, 11, 0.3);
}

.preview-badge-modern.education {
  background: rgba(59, 130, 246, 0.2);
  color: var(--newsletter-primary-light);
  border: 1px solid rgba(59, 130, 246, 0.3);
}

.preview-badge-modern.expertise {
  background: rgba(107, 114, 128, 0.2);
  color: var(--newsletter-gray-300);
  border: 1px solid rgba(107, 114, 128, 0.3);
}

/* ===== TÉMOIGNAGES ===== */
.newsletter-testimonials-modern {
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.testimonials-header-modern h6 {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--newsletter-white);
  text-align: center;
  margin-bottom: 2rem;
}

.testimonials-grid-modern {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 1.5rem;
}

.testimonial-modern {
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 1rem;
  padding: 1.5rem;
  backdrop-filter: blur(8px);
}

.testimonial-content-modern p {
  color: rgba(255, 255, 255, 0.9);
  font-style: italic;
  font-size: 0.95rem;
  line-height: 1.6;
  margin-bottom: 1.5rem;
}

.testimonial-author-modern {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.author-avatar-modern {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--newsletter-white);
  color: var(--newsletter-primary);
  font-size: 1rem;
  flex-shrink: 0;
}

.author-avatar-modern.bg-info {
  color: var(--newsletter-info);
}

.author-avatar-modern.bg-success {
  color: var(--newsletter-success);
}

.author-info-modern strong {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--newsletter-white);
  display: block;
}

.author-info-modern small {
  font-size: 0.8rem;
  color: rgba(255, 255, 255, 0.7);
}

/* ===== ANIMATIONS ===== */
@keyframes newsletterFloat {
  0%, 100% { transform: translateY(0px) scale(1); }
  50% { transform: translateY(-8px) scale(1.05); }
}

@keyframes pulse {
  0%, 100% { transform: scale(1); opacity: 0.2; }
  50% { transform: scale(1.1); opacity: 0.1; }
}

@keyframes rotate {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

@keyframes gradientFlow {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}

@keyframes titleGlow {
  0%, 100% { text-shadow: 0 0 5px rgba(245, 158, 11, 0.5); }
  50% { text-shadow: 0 0 20px rgba(245, 158, 11, 0.8), 0 0 30px rgba(245, 158, 11, 0.4); }
}

/* ===== RESPONSIVE DESIGN ===== */
@media (max-width: 991.98px) {
  .newsletter-section {
    padding: 3rem 0;
  }
  
  .stats-container-modern {
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
    padding: 1.5rem;
  }
  
  .info-grid-modern {
    grid-template-columns: 1fr;
    gap: 0.75rem;
  }
}

@media (max-width: 767.98px) {
  .newsletter-section {
    padding: 2rem 0;
  }
  
  .newsletter-icon-decoration {
    width: 60px;
    height: 60px;
    font-size: 1.5rem;
  }
  
  .section-badges {
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
  }
  
  .stats-container-modern {
    grid-template-columns: 1fr;
    padding: 1.5rem;
  }
  
  .stat-item-modern {
    flex-direction: column;
    text-align: center;
    gap: 0.75rem;
  }
  
  .newsletter-card-modern {
    padding: 1.5rem;
  }
  
  .input-group-modern {
    flex-direction: column;
    border-radius: 0.75rem;
  }
  
  .input-icon-modern {
    width: 100%;
    justify-content: flex-start;
    padding: 0 1rem;
    height: 50px;
  }
  
  .btn-newsletter-modern {
    justify-content: center;
    border-radius: 0 0 0.75rem 0.75rem;
  }
  
  .preview-grid-modern {
    grid-template-columns: 1fr;
  }
  
  .testimonials-grid-modern {
    grid-template-columns: 1fr;
  }
  
  .newsletter-preview-modern {
    padding: 2rem 1rem;
  }
}

@media (max-width: 575.98px) {
  .newsletter-card-modern {
    padding: 1.25rem;
  }
  
  .privacy-content-modern {
    flex-direction: column;
    text-align: center;
    gap: 0.75rem;
  }
  
  .testimonial-author-modern {
    flex-direction: column;
    text-align: center;
    gap: 0.75rem;
  }
}

/* ===== OPTIMISATIONS PERFORMANCE ===== */
.newsletter-section *,
.newsletter-section *::before,
.newsletter-section *::after {
  box-sizing: border-box;
}

/* Respect des préférences d'accessibilité */
@media (prefers-reduced-motion: reduce) {
  .newsletter-section *,
  .newsletter-section *::before,
  .newsletter-section *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* États focus pour accessibilité */
.btn-newsletter-modern:focus,
.form-control-modern:focus {
  outline: 2px solid var(--newsletter-accent);
  outline-offset: 2px;
}

.btn-newsletter-modern:focus:not(:focus-visible),
.form-control-modern:focus:not(:focus-visible) {
  outline: none;
}


/* =========================================================================
   CSS PREMIUM SECTION FOOTER — SB INGÉNIERIE BTP 2025
   Design moderne, CTA premium, navigation complète
   ========================================================================= */

/* Variables CSS spécifiques au footer */
:root {
  --footer-primary: #1e3a8a;
  --footer-primary-dark: #1e40af;
  --footer-primary-light: #3b82f6;
  --footer-dark: #0f172a;
  --footer-dark-light: #1e293b;
  --footer-white: #ffffff;
  --footer-light: #f8fafc;
  --footer-gray-50: #f9fafb;
  --footer-gray-100: #f3f4f6;
  --footer-gray-200: #e5e7eb;
  --footer-gray-300: #d1d5db;
  --footer-gray-400: #9ca3af;
  --footer-gray-500: #6b7280;
  --footer-gray-600: #4b5563;
  --footer-gray-700: #374151;
  --footer-gray-800: #1f2937;
  --footer-gray-900: #111827;
  --footer-accent: #f97316;
  --footer-success: #10b981;
  --footer-info: #0ea5e9;
  --footer-warning: #f59e0b;
  --footer-danger: #ef4444;
}

/* ===== SECTION FOOTER PRINCIPALE ===== */
.footer-section {
  background: linear-gradient(135deg, var(--footer-dark) 0%, var(--footer-dark-light) 100%);
  color: var(--footer-white);
  position: relative;
  overflow: hidden;
}

.footer-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: 
    radial-gradient(circle at 20% 30%, rgba(59, 130, 246, 0.08) 1px, transparent 1px),
    radial-gradient(circle at 80% 70%, rgba(249, 115, 22, 0.05) 1px, transparent 1px);
  background-size: 60px 60px;
  opacity: 0.6;
  pointer-events: none;
  z-index: 1;
}

.footer-section::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--footer-primary), var(--footer-accent), var(--footer-success), var(--footer-info));
  background-size: 400% 400%;
  animation: gradientFlow 6s ease-in-out infinite;
  z-index: 2;
}

/* ===== FOOTER MAIN ===== */
.footer-main {
  position: relative;
  z-index: 10;
  padding: 4rem 0 2rem;
}

/* ===== HEADER FOOTER PREMIUM ===== */
.footer-header-premium {
  text-align: center;
  margin-bottom: 4rem;
  padding-bottom: 3rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.footer-cta-decoration {
  position: relative;
  margin-bottom: 2rem;
}

.footer-cta-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--footer-accent), #ea580c);
  color: white;
  font-size: 2rem;
  margin-bottom: 1.5rem;
  box-shadow: 0 0 20px rgba(249, 115, 22, 0.3);
  animation: footerFloat 4s ease-in-out infinite;
  position: relative;
}

.footer-cta-icon::before {
  content: '';
  position: absolute;
  inset: -3px;
  border-radius: 50%;
  background: linear-gradient(45deg, var(--footer-primary), transparent, var(--footer-success));
  opacity: 0.4;
  animation: rotate 8s linear infinite;
  z-index: -1;
}

.footer-cta-title {
  font-size: clamp(2rem, 5vw, 2.5rem);
  font-weight: 900;
  line-height: 1.2;
  margin: 0 0 1.5rem;
  color: var(--footer-white);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
}

.footer-cta-title .text-primary {
  color: var(--footer-primary-light);
  animation: titleGlow 3s ease-in-out infinite;
}

.footer-cta-subtitle {
  font-size: clamp(1rem, 3vw, 1.125rem);
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.9);
  margin: 0 auto 2rem;
  max-width: 900px;
  font-weight: 400;
}

.footer-cta-subtitle strong {
  color: var(--footer-primary-light);
}

.footer-cta-subtitle .text-success {
  color: var(--footer-success);
}

.footer-cta-subtitle .text-warning {
  color: var(--footer-warning);
}

.footer-cta-subtitle .text-info {
  color: var(--footer-info);
}

.footer-cta-buttons {
  display: flex;
  justify-content: center;
  gap: 1.5rem;
  flex-wrap: wrap;
}

.btn-footer-premium {
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  padding: 1.25rem 2rem;
  border-radius: 50px;
  font-weight: 700;
  font-size: 1rem;
  text-decoration: none;
  transition: all 0.3s ease;
  position: relative;
  overflow: hidden;
  cursor: pointer;
}

.btn-footer-premium.primary {
  background: linear-gradient(135deg, var(--footer-primary), var(--footer-primary-light));
  color: white;
  box-shadow: 0 8px 20px rgba(30, 58, 138, 0.3);
}

.btn-footer-premium.secondary {
  background: linear-gradient(135deg, #25d366, #128c7e);
  color: white;
  box-shadow: 0 8px 20px rgba(37, 211, 102, 0.3);
}

.btn-footer-premium::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
  transform: translateX(-100%);
  transition: transform 0.5s ease;
}

.btn-footer-premium:hover::before {
  transform: translateX(100%);
}

.btn-footer-premium:hover {
  transform: translateY(-3px) scale(1.05);
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.2);
}

.btn-footer-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 45px;
  height: 45px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.2);
  font-size: 1.2rem;
  flex-shrink: 0;
}

.btn-footer-content {
  text-align: left;
}

.btn-footer-content strong {
  font-size: 1.1rem;
  font-weight: 800;
  display: block;
}

.btn-footer-content small {
  font-size: 0.85rem;
  opacity: 0.9;
}

/* ===== CONTENU FOOTER PREMIUM ===== */
.footer-content-premium {
  padding: 2rem 0;
}

/* ===== BRANDING ET CONTACT ===== */
.footer-brand-premium {
  margin-bottom: 2rem;
}

.brand-container-premium {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 2rem;
}

.brand-logo-premium .footer-logo {
  max-width: 80px;
  height: auto;
  filter: none;
}

.brand-text-premium {
  flex: 1;
}

.brand-name-premium {
  font-size: 1.75rem;
  font-weight: 900;
  margin: 0 0 0.5rem;
  color: var(--footer-white);
}

.brand-name-premium .sb-text {
  color: var(--footer-primary-light);
}

.brand-name-premium .ingenierie-text {
  color: var(--footer-white);
}

.brand-tagline-premium {
  font-size: 0.95rem;
  color: rgba(255, 255, 255, 0.8);
  margin: 0;
  font-style: italic;
}

/* ===== CONTACT ET SOCIAL ===== */
.footer-section-title-premium {
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--footer-white);
  margin-bottom: 1.5rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid var(--footer-primary-light);
}

.footer-section-title-premium i {
  color: var(--footer-primary-light);
}

.contact-items-premium {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  margin-bottom: 2rem;
}

.contact-item-premium {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
}

.contact-icon-premium {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--footer-primary), var(--footer-primary-light));
  color: white;
  font-size: 1rem;
  flex-shrink: 0;
  margin-top: 0.25rem;
}

.contact-content-premium {
  flex: 1;
}

.contact-link-premium {
  color: var(--footer-primary-light);
  font-weight: 600;
  text-decoration: none;
  transition: color 0.3s ease;
}

.contact-link-premium:hover {
  color: var(--footer-accent);
}

.contact-content-premium small {
  font-size: 0.8rem;
  color: rgba(255, 255, 255, 0.7);
  display: block;
  margin-top: 0.25rem;
}

.footer-address {
  font-style: normal;
  line-height: 1.4;
  color: rgba(255, 255, 255, 0.9);
  margin: 0.25rem 0;
}

/* ===== RÉSEAUX SOCIAUX ===== */
.social-links-premium {
  display: flex;
  gap: 1rem;
}

.social-btn-premium {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 45px;
  height: 45px;
  border-radius: 50%;
  color: white;
  text-decoration: none;
  font-size: 1.2rem;
  transition: all 0.3s ease;
}

.social-btn-premium.whatsapp {
  background: linear-gradient(135deg, #25d366, #128c7e);
}

.social-btn-premium.linkedin {
  background: linear-gradient(135deg, #0077b5, #005885);
}

.social-btn-premium.instagram {
  background: linear-gradient(135deg, #e4405f, #c13584);
}

.social-btn-premium.newsletter {
  background: linear-gradient(135deg, var(--footer-warning), #ea580c);
}

.social-btn-premium:hover {
  transform: translateY(-3px) scale(1.1);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
}

/* ===== NAVIGATION SERVICES ===== */
.footer-nav-premium {
  margin-bottom: 2rem;
}

.footer-navigation {
  margin-top: 1rem;
}

.nav-list-premium {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.nav-item-premium {
  position: relative;
}

.nav-link-premium {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  color: rgba(255, 255, 255, 0.8);
  font-size: 0.9rem;
  text-decoration: none;
  transition: all 0.3s ease;
  padding: 0.5rem;
  border-radius: 0.5rem;
}

.nav-link-premium:hover {
  color: var(--footer-primary-light);
  background: rgba(59, 130, 246, 0.1);
  transform: translateX(5px);
}

.nav-link-premium i {
  width: 16px;
  text-align: center;
  color: var(--footer-primary-light);
}

.nav-list-premium.compact .nav-link-premium {
  gap: 0.5rem;
  font-size: 0.85rem;
  padding: 0.25rem 0.5rem;
}

/* ===== CERTIFICATIONS ===== */
.certifications-premium {
  margin-bottom: 2rem;
}

.cert-grid-premium {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}

.cert-item-premium {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  background: rgba(255, 255, 255, 0.05);
  padding: 1rem;
  border-radius: 0.75rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  transition: all 0.3s ease;
}

.cert-item-premium:hover {
  background: rgba(255, 255, 255, 0.1);
  transform: translateY(-2px);
}

.cert-icon-premium {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 35px;
  height: 35px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--footer-primary), var(--footer-primary-light));
  color: white;
  font-size: 0.9rem;
  flex-shrink: 0;
}

.cert-content-premium strong {
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--footer-white);
  display: block;
}

.cert-content-premium small {
  font-size: 0.75rem;
  color: rgba(255, 255, 255, 0.7);
}

/* ===== OUTILS ET RESSOURCES ===== */
.footer-utilities-premium {
  margin-bottom: 2rem;
}

.utilities-grid-premium {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.75rem;
}

.utility-link-premium {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: rgba(255, 255, 255, 0.8);
  font-size: 0.85rem;
  text-decoration: none;
  padding: 0.5rem;
  border-radius: 0.5rem;
  transition: all 0.3s ease;
}

.utility-link-premium:hover {
  color: var(--footer-primary-light);
  background: rgba(59, 130, 246, 0.1);
  transform: translateX(3px);
}

.utility-link-premium i {
  width: 14px;
  text-align: center;
  color: var(--footer-primary-light);
}

/* ===== HORAIRES ===== */
.footer-schedule-premium {
  margin-bottom: 1rem;
}

.schedule-premium {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.schedule-item-premium {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: rgba(255, 255, 255, 0.05);
  padding: 0.75rem 1rem;
  border-radius: 0.5rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.schedule-item-premium.emergency {
  background: rgba(249, 115, 22, 0.1);
  border-color: rgba(249, 115, 22, 0.3);
}

.schedule-item-premium .day {
  font-weight: 600;
  color: var(--footer-white);
}

.schedule-item-premium .hours {
  font-weight: 700;
  color: var(--footer-primary-light);
}

.schedule-item-premium.emergency .hours {
  color: var(--footer-accent);
}

/* ===== FOOTER BOTTOM ===== */
.footer-bottom-premium {
  background: rgba(0, 0, 0, 0.2);
  padding: 2rem 0;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  position: relative;
}

.footer-bottom-content {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 2rem;
}

.copyright-premium {
  flex: 1;
}

.copyright-main .copyright-text {
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.9);
  margin: 0 0 0.5rem;
}

.company-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  font-size: 0.8rem;
  color: rgba(255, 255, 255, 0.7);
  align-items: center;
}

.stat-item {
  white-space: nowrap;
}

.separator {
  color: var(--footer-primary-light);
  margin: 0 0.25rem;
}

.legal-links-premium {
  display: flex;
  gap: 1.5rem;
  flex-wrap: wrap;
}

.legal-link-premium {
  color: rgba(255, 255, 255, 0.8);
  font-size: 0.85rem;
  text-decoration: none;
  transition: color 0.3s ease;
}

.legal-link-premium:hover {
  color: var(--footer-primary-light);
}

/* ===== BOUTON RETOUR EN HAUT ===== */
/* ========================================
   BOUTON BACK TO TOP RESPONSIVE PREMIUM
   ======================================== */

.back-to-top-premium {
  position: fixed;
  bottom: 30px;
  right: 30px;
  z-index: 9999;
  pointer-events: none;
  
  /* Responsive positioning */
  @media (max-width: 768px) {
    bottom: 20px;
    right: 20px;
  }
  
  @media (max-width: 480px) {
    bottom: 16px;
    right: 16px;
  }
}

.btn-back-to-top {
  /* Base styles */
  width: 56px;
  height: 56px;
  border: none;
  border-radius: 50%;
  background: linear-gradient(135deg, #007bff 0%, #0056b3 100%);
  color: white;
  font-size: 20px;
  cursor: pointer;
  pointer-events: auto;
  
  /* Shadow and effects */
  box-shadow: 
    0 4px 16px rgba(0, 123, 255, 0.3),
    0 2px 8px rgba(0, 0, 0, 0.1);
  
  /* Transitions */
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  
  /* Initial hidden state */
  opacity: 0;
  visibility: hidden;
  transform: translateY(20px) scale(0.8);
  
  /* Responsive sizing */
  @media (max-width: 768px) {
    width: 48px;
    height: 48px;
    font-size: 18px;
  }
  
  @media (max-width: 480px) {
    width: 44px;
    height: 44px;
    font-size: 16px;
  }
}

/* Visible state */
.btn-back-to-top.visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
}

/* Hover effects */
.btn-back-to-top:hover {
  background: linear-gradient(135deg, #0056b3 0%, #004085 100%);
  box-shadow: 
    0 6px 20px rgba(0, 123, 255, 0.4),
    0 4px 12px rgba(0, 0, 0, 0.15);
  transform: translateY(-2px) scale(1.05);
}

/* Active state */
.btn-back-to-top:active {
  transform: translateY(0) scale(0.95);
  box-shadow: 
    0 2px 8px rgba(0, 123, 255, 0.3),
    0 1px 4px rgba(0, 0, 0, 0.1);
}

/* Focus accessibility */
.btn-back-to-top:focus {
  outline: none;
  box-shadow: 
    0 4px 16px rgba(0, 123, 255, 0.3),
    0 0 0 3px rgba(0, 123, 255, 0.2);
}

/* Loading animation */
.btn-back-to-top.loading {
  pointer-events: none;
}

.btn-back-to-top.loading i {
  animation: spin 1s linear infinite;
}

@keyframes spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

/* Dark mode support */
@media (prefers-color-scheme: dark) {
  .btn-back-to-top {
    background: linear-gradient(135deg, #1a365d 0%, #2c5aa0 100%);
    box-shadow: 
      0 4px 16px rgba(44, 90, 160, 0.3),
      0 2px 8px rgba(0, 0, 0, 0.3);
  }
  
  .btn-back-to-top:hover {
    background: linear-gradient(135deg, #2c5aa0 0%, #3d6bb3 100%);
  }
}

/* Reduced motion preference */
@media (prefers-reduced-motion: reduce) {
  .btn-back-to-top {
    transition: opacity 0.2s ease;
    animation: none;
  }
  
  .btn-back-to-top.loading i {
    animation: none;
  }
}

/* Print styles - hide button */
@media print {
  .back-to-top-premium {
    display: none !important;
  }
}

/* High contrast mode */
@media (prefers-contrast: high) {
  .btn-back-to-top {
    border: 2px solid currentColor;
    background: #000;
    color: #fff;
  }
}


.btn-back-to-top {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--footer-accent), #ea580c);
  color: white;
  border: none;
  cursor: pointer;
  font-size: 1.2rem;
  box-shadow: 0 4px 12px rgba(249, 115, 22, 0.3);
  transition: all 0.3s ease;
}

.btn-back-to-top:hover {
  transform: translateY(-3px) scale(1.1);
  box-shadow: 0 8px 20px rgba(249, 115, 22, 0.4);
}

/* ===== ANIMATIONS ===== */
@keyframes footerFloat {
  0%, 100% { transform: translateY(0px) scale(1); }
  50% { transform: translateY(-8px) scale(1.05); }
}

@keyframes rotate {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

@keyframes gradientFlow {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}

@keyframes titleGlow {
  0%, 100% { text-shadow: 0 0 5px rgba(59, 130, 246, 0.5); }
  50% { text-shadow: 0 0 20px rgba(59, 130, 246, 0.8), 0 0 30px rgba(59, 130, 246, 0.4); }
}

/* ===== RESPONSIVE DESIGN ===== */
@media (max-width: 1199.98px) {
  .cert-grid-premium,
  .utilities-grid-premium {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 991.98px) {
  .footer-main {
    padding: 3rem 0 2rem;
  }
  
  .footer-header-premium {
    margin-bottom: 3rem;
  }
  
  .footer-cta-buttons {
    flex-direction: column;
    align-items: center;
  }
  
  .btn-footer-premium {
    width: 100%;
    max-width: 300px;
    justify-content: center;
  }
}

@media (max-width: 767.98px) {
  .footer-main {
    padding: 2rem 0 1.5rem;
  }
  
  .footer-cta-icon {
    width: 60px;
    height: 60px;
    font-size: 1.5rem;
  }
  
  .footer-header-premium {
    margin-bottom: 2rem;
    padding-bottom: 2rem;
  }
  
  .brand-container-premium {
    flex-direction: column;
    text-align: center;
    gap: 0.75rem;
  }
  
  .brand-logo-premium .footer-logo {
    max-width: 60px;
  }
  
  .contact-item-premium {
    flex-direction: column;
    text-align: center;
    gap: 0.75rem;
  }
  
  .social-links-premium {
    justify-content: center;
  }
  
  .footer-bottom-content {
    flex-direction: column;
    text-align: center;
    gap: 1rem;
  }
  
  .company-stats {
    flex-direction: column;
    gap: 0.25rem;
    text-align: center;
  }
  
  .legal-links-premium {
    justify-content: center;
    gap: 1rem;
  }
  
  .back-to-top-premium {
    bottom: 1rem;
    right: 1rem;
  }
  
  .btn-back-to-top {
    width: 45px;
    height: 45px;
    font-size: 1rem;
  }
}

@media (max-width: 575.98px) {
  .footer-cta-subtitle {
    font-size: 0.9rem;
  }
  
  .btn-footer-premium {
    padding: 1rem 1.5rem;
  }
  
  .btn-footer-content strong {
    font-size: 1rem;
  }
  
  .company-stats {
    font-size: 0.75rem;
  }
  
  .legal-links-premium {
    flex-direction: column;
    gap: 0.5rem;
  }
}

/* ===== OPTIMISATIONS PERFORMANCE ===== */
.footer-section *,
.footer-section *::before,
.footer-section *::after {
  box-sizing: border-box;
}

/* Respect des préférences d'accessibilité */
@media (prefers-reduced-motion: reduce) {
  .footer-section *,
  .footer-section *::before,
  .footer-section *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* États focus pour accessibilité */
.btn-footer-premium:focus,
.social-btn-premium:focus,
.nav-link-premium:focus,
.utility-link-premium:focus,
.legal-link-premium:focus,
.btn-back-to-top:focus {
  outline: 2px solid var(--footer-accent);
  outline-offset: 2px;
}

.btn-footer-premium:focus:not(:focus-visible),
.social-btn-premium:focus:not(:focus-visible),
.nav-link-premium:focus:not(:focus-visible),
.utility-link-premium:focus:not(:focus-visible),
.legal-link-premium:focus:not(:focus-visible),
.btn-back-to-top:focus:not(:focus-visible) {
  outline: none;
}




/* ========================================================================
   7. RESPONSIVE DESIGN (MEDIA QUERIES)
   ======================================================================== */
/* --- Tablet (≥768px) --- */
@media (min-width: 768px) {
  .hero-container {
    text-align: left;
    grid-template-columns: 1.2fr 1fr;
  }
  .hero-content, .hero-features { margin-inline: 0; }
  .hero-cta { justify-content: flex-start; }
}

/* --- Desktop (≥992px) --- */
@media (min-width: 992px) {
  .navbar-nav {
    gap: var(--space-2);
  }
  
  .nav-link-premium {
    flex-direction: row;
    font-size: 0.9rem;
  }
  
  .nav-link-premium.active::after {
    display: block;
  }
}

/* --- Large Desktop (≥1200px) --- */
@media (min-width: 1200px) {
  .container, .container-fluid {
    padding-right: 1.5rem;
    padding-left: 1.5rem;
  }
}

/* --- Accessibilité --- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
