
        body { 
          font-family: system-ui, sans-serif; 
          margin: 0; 
          padding: 0; 
          line-height: 1.6;
          min-height: 100vh;
          background: white;
        }
        .page-content { position: relative; }
        .block-wrapper { max-width: 1200px; margin: 0 auto; padding: 0 2rem; }
        .block-wrapper.full-width { max-width: none !important; margin: 0 !important; padding: 0 !important; width: 100% !important; }
        .cms-rich-text a,
        .cms-rich-text a:hover,
        .cms-rich-text a:visited,
        .cms-rich-text a:active {
          color: inherit !important;
          text-decoration: none !important;
          -webkit-text-fill-color: inherit !important;
          background: inherit !important;
          -webkit-background-clip: inherit !important;
          background-clip: inherit !important;
        }
        .cms-inline-link,
        .cms-inline-link:hover,
        .cms-inline-link:visited,
        .cms-inline-link:active {
          color: inherit !important;
          text-decoration: none !important;
          -webkit-text-fill-color: inherit !important;
          background: inherit !important;
          -webkit-background-clip: inherit !important;
          background-clip: inherit !important;
        }
        
        /* Accessibilité: Skip link visible au focus */
        .skip-link:focus { left: 1rem; top: 1rem; }
        
        
        
        /* Styles pour les fonds animés (extraits de animated-backgrounds.css) */
        .page-background-container.animated-bg-bubbles {
          background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important;
          position: relative;
          overflow: hidden;
        }
        .page-background-container.animated-bg-bubbles::before,
        .page-background-container.animated-bg-bubbles::after {
          content: '';
          position: absolute;
          border-radius: 50%;
          background: rgba(255, 255, 255, 0.15);
          animation: float-bubbles 8s ease-in-out infinite;
          pointer-events: none;
        }
        .page-background-container.animated-bg-bubbles::before {
          width: 80px;
          height: 80px;
          left: 10%;
          bottom: -100px;
          animation-delay: 0s;
        }
        .page-background-container.animated-bg-bubbles::after {
          width: 120px;
          height: 120px;
          right: 20%;
          bottom: -150px;
          animation-delay: 2s;
          animation-duration: 10s;
        }
        @keyframes float-bubbles {
          0% { transform: translateY(0) scale(1); opacity: 0; }
          10% { opacity: 0.6; }
          90% { opacity: 0.6; }
          100% { transform: translateY(-800px) scale(1.2); opacity: 0; }
        }

        .page-background-container.animated-bg-particles {
          background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%) !important;
          position: relative;
          overflow: hidden;
        }
        .page-background-container.animated-bg-particles::before {
          content: '';
          position: absolute;
          inset: 0;
          background-image:
            radial-gradient(2px 2px at 20px 30px, #fff, transparent),
            radial-gradient(2px 2px at 40px 70px, rgba(255, 255, 255, 0.8), transparent),
            radial-gradient(1px 1px at 90px 40px, #fff, transparent),
            radial-gradient(2px 2px at 130px 80px, rgba(255, 255, 255, 0.6), transparent),
            radial-gradient(1px 1px at 160px 30px, #fff, transparent),
            radial-gradient(2px 2px at 200px 60px, rgba(255, 255, 255, 0.7), transparent),
            radial-gradient(1px 1px at 20px 120px, #fff, transparent),
            radial-gradient(2px 2px at 60px 150px, rgba(255, 255, 255, 0.5), transparent),
            radial-gradient(1px 1px at 100px 130px, #fff, transparent),
            radial-gradient(2px 2px at 140px 170px, rgba(255, 255, 255, 0.8), transparent);
          background-size: 200px 200px;
          animation: particles-float 20s linear infinite;
          pointer-events: none;
        }
        @keyframes particles-float {
          0% { transform: translateY(0) translateX(0); }
          50% { transform: translateY(-20px) translateX(10px); }
          100% { transform: translateY(0) translateX(0); }
        }

        .page-background-container.animated-bg-stars {
          background: linear-gradient(135deg, #0c0c0c 0%, #1a1a2e 50%, #0f0f23 100%) !important;
          position: relative;
          overflow: hidden;
        }
        .page-background-container.animated-bg-stars::before,
        .page-background-container.animated-bg-stars::after {
          content: '';
          position: absolute;
          width: 100px;
          height: 2px;
          background: linear-gradient(90deg, transparent, #fff, transparent);
          animation: shooting-star 3s ease-in-out infinite;
          pointer-events: none;
        }
        @keyframes shooting-star {
          0% { transform: translateX(0) translateY(0) rotate(-45deg); opacity: 0; }
          10% { opacity: 1; }
          100% { transform: translateX(1000px) translateY(300px) rotate(-45deg); opacity: 0; }
        }

        .page-background-container.animated-bg-aurora {
          background: linear-gradient(-45deg, #0f0c29, #302b63, #24243e, #0f0c29) !important;
          background-size: 400% 400% !important;
          animation: aurora 15s ease infinite !important;
        }
        @keyframes aurora {
          0% { background-position: 0% 50%; }
          50% { background-position: 100% 50%; }
          100% { background-position: 0% 50%; }
        }
        
        .page-background-container.animated-bg-sunset {
          background: linear-gradient(-45deg, #ee7752, #e73c7e, #23a6d5, #23d5ab) !important;
          background-size: 400% 400% !important;
          animation: sunset 12s ease infinite !important;
        }
        @keyframes sunset {
          0% { background-position: 0% 50%; }
          50% { background-position: 100% 50%; }
          100% { background-position: 0% 50%; }
        }

        /* Image effects */
        .page-background-container.animated-image-bg::before {
          content: '';
          position: absolute;
          inset: -10%;
          background: inherit;
          background-size: cover;
          background-position: center;
          pointer-events: none;
          z-index: 0;
        }
        .page-background-container.animated-image-zoom::before {
          animation: image-zoom 20s ease-in-out infinite alternate;
        }
        @keyframes image-zoom {
          0% { transform: scale(1); }
          100% { transform: scale(1.15); }
        }
        
        /* ... more animations can be added here ... */
        
        /* Responsive columns */
        .columns-container { min-width: 0; }
        .columns-container .column { min-width: 0; }
        
        /* Retour à la ligne par mot entier (pas de césure au milieu des mots) */
        h1, h2, h3, h4, h5, h6, p, span, a, li, div {
          word-break: normal !important;
          overflow-wrap: normal !important;
          hyphens: none !important;
          -webkit-hyphens: none !important;
          white-space: normal !important;
        }
        
        /* Menu burger et navigation - styles de base */
        .header-burger-btn { display: none; }
        .header-mobile-menu { 
          display: none; 
          position: fixed; 
          top: 0; 
          right: 0; 
          bottom: 0; 
          width: 288px; 
          max-width: 85vw; 
          z-index: 9999; 
          transform: translateX(100%); 
          transition: transform 0.3s ease;
        }
        .header-mobile-overlay { 
          display: none; 
          position: fixed; 
          inset: 0; 
          background: rgba(0,0,0,0.5); 
          z-index: 9998; 
          opacity: 0;
          pointer-events: none;
          transition: opacity 0.3s ease;
        }
        
        /* Tablet (768px - 1024px) */
        @media (max-width: 1024px) {
          .columns-container { 
            display: block !important; 
            grid-template-columns: none !important; 
          }
          .columns-container .column { 
            width: 100% !important; 
            margin-bottom: 1rem;
          }
          .columns-container .column:last-child {
            margin-bottom: 0;
          }
          .block-wrapper { padding: 0 1.5rem; }
          
          /* Titres responsive tablette */
          h1 { font-size: 2rem !important; }
          h2 { font-size: 1.5rem !important; }
          h3 { font-size: 1.25rem !important; }
          
          /* Header responsive */
          header { padding: 1.5rem !important; }
          header h1 { font-size: 1.75rem !important; }
          header p { font-size: 1rem !important; }
          header > div > div { flex-direction: column !important; }
          header > div > div > div:first-child,
          header > div > div > div:last-child { display: none !important; } /* Masquer images latérales */
          
          /* Navigation: masquer la nav desktop, afficher le burger */
          nav.header-nav-desktop,
          .header-nav-desktop,
          header nav.header-nav-desktop,
          header .header-nav-desktop,
          [class*="header"] nav.header-nav-desktop { 
            display: none !important; 
            visibility: hidden !important;
          }
          button.header-burger-btn,
          .header-burger-btn,
          header .header-burger-btn,
          header button.header-burger-btn { 
            display: block !important; 
            visibility: visible !important;
          }
          .header-mobile-menu,
          div.header-mobile-menu { 
            display: flex !important; 
            flex-direction: column !important;
            visibility: visible !important;
          }
          .header-mobile-overlay,
          div.header-mobile-overlay { 
            display: block !important; 
            opacity: 0; 
            pointer-events: none; 
            transition: opacity 0.3s ease; 
          }
          .header-mobile-overlay.open,
          div.header-mobile-overlay.open { 
            opacity: 1 !important; 
            pointer-events: auto !important; 
          }
          .header-mobile-menu.open,
          div.header-mobile-menu.open { 
            transform: translateX(0) !important; 
          }
          
          /* Boutons responsive */
          header > div > div > div > div[style*="flex-wrap"] { 
            justify-content: center !important; 
          }
          header > div > div > div > div[style*="flex-wrap"] a {
            padding: 0.6rem 1.2rem !important;
            font-size: 0.9rem !important;
          }
          
          /* Footer responsive */
          footer { padding: 1.5rem !important; }
          footer > div[style*="flex"] { flex-direction: column !important; gap: 1rem !important; }
          
          /* Carousel responsive */
          .carousel-container { height: auto !important; min-height: 300px !important; }
          
          /* Stats responsive */
          div[style*="display: flex"][style*="flex-wrap"] > div[style*="text-align: center"] {
            flex: 1 1 45% !important;
            min-width: 140px !important;
          }
        }
        
        /* Mobile (< 640px) */
        @media (max-width: 640px) {
          .block-wrapper { padding: 0 1rem; }
          
          /* Titres responsive - TOUS les titres */
          h1 { font-size: 1.5rem !important; line-height: 1.3 !important; }
          h2 { font-size: 1.25rem !important; line-height: 1.3 !important; }
          h3 { font-size: 1.125rem !important; line-height: 1.3 !important; }
          h4, h5, h6 { font-size: 1rem !important; line-height: 1.4 !important; }
          
          /* Paragraphes et textes */
          p { font-size: 0.9rem !important; line-height: 1.5 !important; }
          
          /* Header mobile */
          header { padding: 1rem !important; }
          header h1 { font-size: 1.25rem !important; }
          header p { font-size: 0.8rem !important; }
          /* Navigation desktop masquée, menu burger et slide-out utilisés */
          
          /* Boutons mobile */
          header > div > div > div > div[style*="flex-wrap"] { 
            flex-direction: column !important;
            align-items: center !important;
            gap: 0.5rem !important;
          }
          header > div > div > div > div[style*="flex-wrap"] a {
            width: 100% !important;
            max-width: 280px !important;
            text-align: center !important;
            padding: 0.75rem 1rem !important;
          }
          
          /* Footer mobile */
          footer { padding: 1rem !important; }
          footer > div[style*="flex"] { 
            flex-direction: column !important; 
            gap: 0.75rem !important;
            align-items: center !important;
          }
          footer a { font-size: 0.875rem !important; }
          
          /* Text overlays responsive - réduire la taille des polices */
          .text-overlay {
            font-size: 12px !important;
            padding: 2px 6px !important;
          }
          .text-overlay > div {
            font-size: 12px !important;
            padding: 2px 6px !important;
          }
          
          /* Formulaire contact mobile */
          form { padding: 0 !important; }
          form input, form textarea, form button {
            font-size: 16px !important; /* Éviter le zoom sur iOS */
          }
          
          /* Stats mobile */
          div[style*="display: flex"][style*="flex-wrap"] > div[style*="text-align: center"] {
            flex: 1 1 100% !important;
            min-width: 100% !important;
          }
          div[style*="display: flex"][style*="flex-wrap"] > div[style*="text-align: center"] > div[class="stat-value"] {
            font-size: 32px !important;
          }
          
          /* Carousel mobile */
          .carousel-container { min-height: 250px !important; }
          
          /* FAQ mobile */
          .faq-items > div { margin-bottom: 0.75rem !important; }
          .faq-items > div > div:first-child { 
            padding: 1rem !important;
            font-size: 1rem !important;
          }
          .faq-items > div > div:last-child { 
            padding: 0.75rem 1rem !important;
            font-size: 0.875rem !important;
          }
        }
        
        /* Extra small mobile (< 375px) */
        @media (max-width: 375px) {
          .block-wrapper { padding: 0 0.75rem; }
          
          /* Titres extra small */
          h1 { font-size: 1.25rem !important; }
          h2 { font-size: 1.1rem !important; }
          h3 { font-size: 1rem !important; }
          h4, h5, h6 { font-size: 0.9rem !important; }
          p { font-size: 0.85rem !important; }
          
          header h1 { font-size: 1.1rem !important; }
          header p { font-size: 0.75rem !important; }
          header > div > div > div > div[style*="flex-wrap"] a {
            font-size: 0.8rem !important;
            padding: 0.6rem 0.8rem !important;
          }
          
          /* Stats extra small */
          div[style*="display: flex"][style*="flex-wrap"] > div[style*="text-align: center"] > div[class="stat-value"] {
            font-size: 24px !important;
          }
        }
        
        /* Animations au scroll - L'état initial est défini via les styles inline */
        .scroll-animate {
          opacity: 0;
        }
        .scroll-animate.visible { 
          opacity: 1 !important; 
          /* Utiliser 'none' au lieu de valeurs neutres pour éviter de créer un stacking context */
          transform: none !important; 
        }
        
        /* ========== ANIMATIONS AU SURVOL (Hover) ========== */
        
        /* Animations du texte */
        [class*='hover-text-slide-up'],
        .hover-text-slide-up {
          transition: transform var(--hover-duration, 0.3s) var(--hover-easing, ease) !important;
        }
        [class*='hover-text-slide-up']:hover,
        .hover-text-slide-up:hover {
          transform: translateY(-8px) !important;
        }
        
        [class*='hover-text-slide-down'],
        .hover-text-slide-down {
          transition: transform var(--hover-duration, 0.3s) var(--hover-easing, ease) !important;
        }
        [class*='hover-text-slide-down']:hover,
        .hover-text-slide-down:hover {
          transform: translateY(8px) !important;
        }
        
        [class*='hover-text-fade-in'],
        .hover-text-fade-in {
          transition: opacity var(--hover-duration, 0.3s) var(--hover-easing, ease) !important;
        }
        [class*='hover-text-fade-in']:hover,
        .hover-text-fade-in:hover {
          opacity: 0.6 !important;
        }
        
        [class*='hover-text-scale'],
        .hover-text-scale {
          transition: transform var(--hover-duration, 0.3s) var(--hover-easing, ease) !important;
        }
        [class*='hover-text-scale']:hover,
        .hover-text-scale:hover {
          transform: scale(1.08) !important;
        }
        
        [class*='hover-text-underline'],
        .hover-text-underline {
          position: relative;
        }
        [class*='hover-text-underline']::after,
        .hover-text-underline::after {
          content: '';
          position: absolute;
          bottom: 0;
          left: 0;
          width: 0;
          height: 3px;
          background: currentColor;
          transition: width var(--hover-duration, 0.3s) var(--hover-easing, ease) !important;
        }
        [class*='hover-text-underline']:hover::after,
        .hover-text-underline:hover::after {
          width: 100% !important;
        }
        
        [class*='hover-text-color-shift'],
        .hover-text-color-shift {
          transition: color var(--hover-duration, 0.3s) var(--hover-easing, ease),
                      -webkit-text-fill-color var(--hover-duration, 0.3s) var(--hover-easing, ease) !important;
        }
        [class*='hover-text-color-shift']:hover,
        .hover-text-color-shift:hover {
          color: var(--hover-color, #3b82f6) !important;
          -webkit-text-fill-color: var(--hover-color, #3b82f6) !important;
        }
        
        /* Animations du dégradé/fond */
        [class*='hover-gradient-shift'],
        .hover-gradient-shift {
          background-size: 200% 200% !important;
          background-position: 0% 0% !important;
          transition-property: background-position !important;
          transition-duration: var(--hover-duration, 0.5s) !important;
          transition-timing-function: var(--hover-easing, ease) !important;
        }
        [class*='hover-gradient-shift']:hover,
        .hover-gradient-shift:hover {
          background-position: 100% 100% !important;
        }
        
        [class*='hover-gradient-rotate'],
        .hover-gradient-rotate {
          transition-property: filter !important;
          transition-duration: var(--hover-duration, 0.5s) !important;
          transition-timing-function: var(--hover-easing, ease) !important;
        }
        [class*='hover-gradient-rotate']:hover,
        .hover-gradient-rotate:hover {
          filter: hue-rotate(90deg) !important;
        }
        
        [class*='hover-gradient-pulse'],
        .hover-gradient-pulse {
          transition-property: filter, transform !important;
          transition-duration: var(--hover-duration, 0.5s) !important;
          transition-timing-function: var(--hover-easing, ease) !important;
        }
        [class*='hover-gradient-pulse']:hover,
        .hover-gradient-pulse:hover {
          filter: brightness(1.2) saturate(1.4) !important;
          transform: scale(1.02) !important;
        }
        
        /* Inversion - vraie inversion des couleurs du gradient (couleur1 <-> couleur2) */
        [class*='hover-gradient-reverse'],
        .hover-gradient-reverse {
          position: relative !important;
          overflow: hidden !important;
        }
        [class*='hover-gradient-reverse']::after,
        .hover-gradient-reverse::after {
          content: '' !important;
          position: absolute !important;
          inset: 0 !important;
          border-radius: inherit !important;
          background: var(--gradient-reversed) !important;
          opacity: 0 !important;
          transition: opacity var(--hover-duration, 0.5s) var(--hover-easing, ease) !important;
          pointer-events: none !important;
        }
        [class*='hover-gradient-reverse']:hover::after,
        .hover-gradient-reverse:hover::after {
          opacity: 1 !important;
        }
        [class*='hover-gradient-reverse'] > *,
        .hover-gradient-reverse > * {
          position: relative !important;
          z-index: 1 !important;
        }
        
        [class*='hover-gradient-expand'],
        .hover-gradient-expand {
          background-size: 100% 100% !important;
          background-position: center !important;
          transition-property: background-size !important;
          transition-duration: var(--hover-duration, 0.5s) !important;
          transition-timing-function: var(--hover-easing, ease) !important;
        }
        [class*='hover-gradient-expand']:hover,
        .hover-gradient-expand:hover {
          background-size: 200% 200% !important;
        }
        
        /* ========== ANIMATIONS DE DÉGRADÉ CONTINUES AU SURVOL ========== */
        @keyframes gradient-flow {
          0% { background-position: 0% 50%; }
          50% { background-position: 100% 50%; }
          100% { background-position: 0% 50%; }
        }
        
        @keyframes gradient-alternate {
          0% { background-position: 0% 0%; }
          25% { background-position: 100% 0%; }
          50% { background-position: 100% 100%; }
          75% { background-position: 0% 100%; }
          100% { background-position: 0% 0%; }
        }
        
        @keyframes gradient-pulse-colors {
          0%, 100% { filter: hue-rotate(0deg) saturate(1); }
          50% { filter: hue-rotate(30deg) saturate(1.2); }
        }
        
        .gradient-hover-flow { background-size: 200% 200% !important; }
        .gradient-hover-flow:hover {
          animation: gradient-flow var(--gradient-hover-speed, 3s) var(--gradient-hover-direction, normal) infinite !important;
        }
        
        .gradient-hover-alternate { background-size: 200% 200% !important; }
        .gradient-hover-alternate:hover {
          animation: gradient-alternate var(--gradient-hover-speed, 3s) var(--gradient-hover-direction, normal) infinite !important;
        }
        
        .gradient-hover-pulse { background-size: 200% 200% !important; }
        .gradient-hover-pulse:hover {
          animation: gradient-pulse-colors var(--gradient-hover-speed, 3s) var(--gradient-hover-direction, normal) infinite !important;
        }
        
        /* Responsive: Tablette - limiter les marges et paddings */
        @media screen and (max-width: 1024px) {
          main.page-content > div[style*="padding"],
          main.page-content > section[style*="padding"],
          .columns-container[style*="padding"],
          .column[style*="padding"],
          .column > div[style*="padding"] {
            padding: max(8px, 2vw) !important;
          }
          main.page-content > div[style*="margin"],
          main.page-content > section[style*="margin"],
          .columns-container[style*="margin"],
          .column[style*="margin"],
          .column > div[style*="margin"] {
            margin: max(4px, 1vw) !important;
          }
        }
        
        /* Responsive: Mobile - colonnes verticales + marges minimales */
        @media screen and (max-width: 768px) {
          .columns-container {
            display: flex !important;
            flex-direction: column !important;
            gap: 0.5rem !important;
          }
          .column {
            width: 100% !important;
          }
          /* Réduire drastiquement les marges et paddings sur mobile */
          main.page-content > div[style*="padding"],
          main.page-content > section[style*="padding"],
          .columns-container[style*="padding"],
          .column[style*="padding"],
          .column > div[style*="padding"] {
            padding: 4px !important;
          }
          main.page-content > div[style*="margin"],
          main.page-content > section[style*="margin"],
          .columns-container[style*="margin"],
          .column[style*="margin"],
          .column > div[style*="margin"] {
            margin: 2px !important;
          }
        }
      