/* ==========================================================================
   FAST4U HOSTING — THEME DARK ROUGE / NOIR (CRIMSON OBSIDIAN SOVEREIGN)
   Version: v002.000.012
   Écosystème Fast4u · Montréal, Québec
   ========================================================================== */

:root {
  --f4u-crimson: #e50914;
  --f4u-crimson-hover: #ff2a38;
  --f4u-crimson-glow: rgba(229, 9, 20, 0.4);
  --f4u-crimson-subtle: rgba(229, 9, 20, 0.12);
  --f4u-crimson-border: rgba(229, 9, 20, 0.35);
  
  --f4u-dark-bg: #07080b;
  --f4u-dark-surface: #0e1017;
  --f4u-dark-card: #141722;
  --f4u-dark-elevated: #1a1e2d;
  --f4u-dark-line: rgba(229, 9, 20, 0.22);
  
  --f4u-text-main: #f5f7f9;
  --f4u-text-muted: #9aa2b0;
  --f4u-text-dim: #6e7687;
  --f4u-gold: #f5a623;
  --f4u-amber: #e67e22;
}

/* Application du thème Dark Rouge/Noir par défaut */
body.theme-dark-red,
body:not(.theme-classic) {
  background-color: var(--f4u-dark-bg);
  background-image: 
    radial-gradient(circle at 18% 12%, rgba(229, 9, 20, 0.08) 0%, transparent 45%),
    radial-gradient(circle at 82% 55%, rgba(180, 0, 15, 0.05) 0%, transparent 50%),
    linear-gradient(180deg, #07080b 0%, #0c0d14 100%);
  color: var(--f4u-text-main);
  transition: background-color 0.3s ease, color 0.3s ease;
}

/* Topline souveraine rouge foncé */
body.theme-dark-red .topline,
body:not(.theme-classic) .topline {
  background: linear-gradient(90deg, #1f0406 0%, #36070a 50%, #1f0406 100%);
  border-bottom: 1px solid var(--f4u-crimson-border);
  color: #ffadb3;
  box-shadow: 0 1px 12px rgba(229, 9, 20, 0.2);
}

/* Header sticky en verre teinté d'obsidienne */
body.theme-dark-red header.site-header,
body:not(.theme-classic) header.site-header {
  background-color: rgba(10, 11, 16, 0.88) !important;
  border-bottom: 1px solid var(--f4u-crimson-border) !important;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}
body.theme-dark-red header.site-header.is-scrolled,
body:not(.theme-classic) header.site-header.is-scrolled {
  background-color: rgba(7, 8, 12, 0.98) !important;
  border-bottom-color: var(--f4u-crimson) !important;
  box-shadow: 0 6px 28px rgba(0, 0, 0, 0.7), 0 0 15px rgba(229, 9, 20, 0.25);
}

/* Marque & Logo */
body.theme-dark-red .brand,
body:not(.theme-classic) .brand {
  color: var(--f4u-text-main);
}
body.theme-dark-red .brand-mark,
body:not(.theme-classic) .brand-mark {
  background: linear-gradient(135deg, #e50914 0%, #85040a 100%);
  color: #ffffff;
  box-shadow: 0 0 16px var(--f4u-crimson-glow);
  border: 1px solid rgba(255, 255, 255, 0.2);
}
body.theme-dark-red .brand-muted,
body:not(.theme-classic) .brand-muted {
  color: #a8b0b8;
}
body.theme-dark-red .brand b,
body:not(.theme-classic) .brand b {
  color: var(--f4u-crimson);
  text-shadow: 0 0 10px rgba(229, 9, 20, 0.5);
}

/* Navigation principale */
body.theme-dark-red nav.main-nav a,
body:not(.theme-classic) nav.main-nav a {
  color: var(--f4u-text-muted);
  transition: color 0.2s ease;
}
body.theme-dark-red nav.main-nav a:hover,
body:not(.theme-classic) nav.main-nav a:hover {
  color: var(--f4u-crimson-hover);
  text-shadow: 0 0 8px rgba(229, 9, 20, 0.4);
}

/* Boutons d'action */
body.theme-dark-red .button,
body:not(.theme-classic) .button {
  background: linear-gradient(135deg, #e50914 0%, #aa060e 100%);
  color: #ffffff;
  border: 1px solid rgba(255, 255, 255, 0.15);
  box-shadow: 0 4px 18px rgba(229, 9, 20, 0.35);
}
body.theme-dark-red .button:hover,
body:not(.theme-classic) .button:hover {
  background: linear-gradient(135deg, #ff2a38 0%, #c40711 100%);
  box-shadow: 0 6px 24px rgba(229, 9, 20, 0.55);
  transform: translateY(-2px);
}
body.theme-dark-red .button-outline,
body:not(.theme-classic) .button-outline {
  background: rgba(229, 9, 20, 0.08);
  border: 1px solid var(--f4u-crimson-border);
  color: var(--f4u-text-main);
  box-shadow: none;
}
body.theme-dark-red .button-outline:hover,
body:not(.theme-classic) .button-outline:hover {
  background: rgba(229, 9, 20, 0.2);
  border-color: var(--f4u-crimson);
  color: #ffffff;
}

/* Contrôles d'en-tête inspirés de la disposition de Voilà */
.header-controls {
  display: flex;
  align-items: center;
  gap: 12px;
}

/* 1. Bouton Espace Client (Pill raffinée avec voyant d'état) */
.btn-espace-client,
.btn-sso-login {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 7px 16px !important;
  border-radius: 9999px !important;
  font-family: inherit !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em !important;
  text-decoration: none !important;
  cursor: pointer !important;
  transition: all 0.2s cubic-bezier(0.22, 1, 0.36, 1) !important;
  white-space: nowrap !important;
}

.sso-dot {
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 9999px;
  background: #10b981;
  box-shadow: 0 0 8px #10b981;
  animation: sso-pulse 2s infinite ease-in-out;
  flex-shrink: 0;
}
@keyframes sso-pulse {
  0%, 100% { transform: scale(0.9); opacity: 0.85; }
  50% { transform: scale(1.25); opacity: 1; box-shadow: 0 0 10px #10b981; }
}

/* Espace Client en Mode Sombre (Dark Red) */
body.theme-dark-red .btn-espace-client,
body.theme-dark-red .btn-sso-login,
body:not(.theme-classic) .btn-espace-client,
body:not(.theme-classic) .btn-sso-login {
  background: rgba(255, 255, 255, 0.06) !important;
  border: 1px solid rgba(255, 255, 255, 0.16) !important;
  color: #f1f5f9 !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35) !important;
}
body.theme-dark-red .btn-espace-client:hover,
body.theme-dark-red .btn-sso-login:hover,
body:not(.theme-classic) .btn-espace-client:hover,
body:not(.theme-classic) .btn-sso-login:hover {
  background: rgba(229, 9, 20, 0.16) !important;
  border-color: rgba(229, 9, 20, 0.6) !important;
  color: #ffffff !important;
  transform: translateY(-1px) scale(1.02) !important;
  box-shadow: 0 4px 14px rgba(229, 9, 20, 0.28) !important;
}

/* Espace Client en Mode Clair (Classic) — Remplacement du carré rouge par une pilule épurée */
body.theme-classic .btn-espace-client,
body.theme-classic .btn-sso-login {
  background: #ffffff !important;
  border: 1px solid #cbd5e1 !important;
  color: #0f172a !important;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.08) !important;
}
body.theme-classic .btn-espace-client:hover,
body.theme-classic .btn-sso-login:hover {
  background: #f8fafc !important;
  border-color: #94a3b8 !important;
  color: #0f172a !important;
  transform: translateY(-1px) scale(1.02) !important;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.12) !important;
}

/* 2. Bouton Bascule de Thème (Soleil / Lune monochromique comme dans Voilà) */
.voila-theme-mono-btn,
.theme-switch-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 36px !important;
  height: 36px !important;
  min-width: 36px !important;
  min-height: 36px !important;
  padding: 0 !important;
  border-radius: 9999px !important;
  cursor: pointer !important;
  transition: all 0.2s cubic-bezier(0.22, 1, 0.36, 1) !important;
  outline: none !important;
}

/* Thème Switcher en Mode Sombre */
body.theme-dark-red .voila-theme-mono-btn,
body.theme-dark-red .theme-switch-btn,
body:not(.theme-classic) .voila-theme-mono-btn,
body:not(.theme-classic) .theme-switch-btn {
  background: rgba(255, 255, 255, 0.08) !important;
  border: 1px solid rgba(255, 255, 255, 0.16) !important;
  color: #f1f5f9 !important;
}
body.theme-dark-red .voila-theme-mono-btn:hover,
body.theme-dark-red .theme-switch-btn:hover,
body:not(.theme-classic) .voila-theme-mono-btn:hover,
body:not(.theme-classic) .theme-switch-btn:hover {
  background: rgba(255, 255, 255, 0.16) !important;
  border-color: rgba(255, 255, 255, 0.32) !important;
  color: #ffffff !important;
  transform: scale(1.08) !important;
}

/* Thème Switcher en Mode Clair */
body.theme-classic .voila-theme-mono-btn,
body.theme-classic .theme-switch-btn {
  background: #ffffff !important;
  border: 1px solid #cbd5e1 !important;
  color: #334155 !important;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06) !important;
}
body.theme-classic .voila-theme-mono-btn:hover,
body.theme-classic .theme-switch-btn:hover {
  background: #f1f5f9 !important;
  border-color: #94a3b8 !important;
  color: #0f172a !important;
  transform: scale(1.08) !important;
}

/* 3. Barre des Langues Agencée avec le Thème (Style Voilà - Zéro Carré Rouge) */
body.theme-classic .language-selector,
body.theme-classic .voila-lang-bar {
  background: #ffffff !important;
  border: 1px solid #cbd5e1 !important;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06) !important;
  border-radius: 9999px !important;
  padding: 3px 8px !important;
}
body.theme-classic .language-selector a,
body.theme-classic .voila-lang-bar a {
  background: transparent !important;
  border: none !important;
  color: #64748b !important;
  font-weight: 600 !important;
  position: relative !important;
}
body.theme-classic .language-selector a:hover,
body.theme-classic .voila-lang-bar a:hover {
  background: transparent !important;
  color: #0f172a !important;
}
body.theme-classic .language-selector a[aria-current="page"],
body.theme-classic .voila-lang-bar a.is-active {
  background: transparent !important;
  border: none !important;
  color: #0f172a !important;
  font-weight: 800 !important;
  box-shadow: none !important;
}
body.theme-classic .language-selector a[aria-current="page"]::after,
body.theme-classic .voila-lang-bar a.is-active::after {
  content: '' !important;
  position: absolute !important;
  left: 2px !important;
  right: 2px !important;
  bottom: -2px !important;
  height: 2px !important;
  background: #0284c7 !important;
  border-radius: 2px !important;
}

/* En Mode Sombre : Harmonieux avec le site sombre, zéro boîte rouge */
body.theme-dark-red .language-selector,
body:not(.theme-classic) .language-selector,
body.theme-dark-red .voila-lang-bar,
body:not(.theme-classic) .voila-lang-bar {
  background: rgba(18, 21, 32, 0.85) !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  border-radius: 9999px !important;
  padding: 3px 8px !important;
}
body.theme-dark-red .language-selector a,
body:not(.theme-classic) .language-selector a,
body.theme-dark-red .voila-lang-bar a,
body:not(.theme-classic) .voila-lang-bar a {
  background: transparent !important;
  border: none !important;
  color: #94a3b8 !important;
  position: relative !important;
}
body.theme-dark-red .language-selector a:hover,
body:not(.theme-classic) .language-selector a:hover,
body.theme-dark-red .voila-lang-bar a:hover,
body:not(.theme-classic) .voila-lang-bar a:hover {
  background: transparent !important;
  color: #ffffff !important;
}
body.theme-dark-red .language-selector a[aria-current="page"],
body:not(.theme-classic) .language-selector a[aria-current="page"],
body.theme-dark-red .voila-lang-bar a.is-active,
body:not(.theme-classic) .voila-lang-bar a.is-active {
  background: transparent !important;
  border: none !important;
  color: #ffffff !important;
  box-shadow: none !important;
  font-weight: 800 !important;
}
body.theme-dark-red .language-selector a[aria-current="page"]::after,
body:not(.theme-classic) .language-selector a[aria-current="page"]::after,
body.theme-dark-red .voila-lang-bar a.is-active::after,
body:not(.theme-classic) .voila-lang-bar a.is-active::after {
  content: '' !important;
  position: absolute !important;
  left: 2px !important;
  right: 2px !important;
  bottom: -2px !important;
  height: 2px !important;
  background: #38bdf8 !important;
  border-radius: 2px !important;
}

/* Hero Section */
body.theme-dark-red .eyebrow,
body:not(.theme-classic) .eyebrow {
  color: #ff4757;
}
body.theme-dark-red .pulse,
body:not(.theme-classic) .pulse {
  background: var(--f4u-crimson);
  box-shadow: 0 0 0 5px rgba(229, 9, 20, 0.25);
}
body.theme-dark-red .hero h1 em,
body.theme-dark-red h2 em,
body:not(.theme-classic) .hero h1 em,
body:not(.theme-classic) h2 em {
  color: var(--f4u-crimson);
  text-shadow: 0 0 16px rgba(229, 9, 20, 0.35);
}
body.theme-dark-red .hero-lede,
body:not(.theme-classic) .hero-lede {
  color: var(--f4u-text-muted);
}
body.theme-dark-red .text-link,
body:not(.theme-classic) .text-link {
  color: #ff9da4;
}
body.theme-dark-red .hero-note,
body:not(.theme-classic) .hero-note {
  border-top-color: var(--f4u-dark-line);
  color: var(--f4u-text-dim);
}
body.theme-dark-red .note-icon,
body:not(.theme-classic) .note-icon {
  color: var(--f4u-crimson);
}

/* Sphère Hero Visuelle Crimson Orbit */
body.theme-dark-red .hero-visual,
body:not(.theme-classic) .hero-visual {
  background: #0d0f17;
  background-image: 
    radial-gradient(circle at 50% 50%, rgba(229, 9, 20, 0.12) 0, transparent 65%),
    linear-gradient(135deg, #150508 0%, #111420 100%);
  border: 1px solid var(--f4u-crimson-border);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.8), 0 0 30px rgba(229, 9, 20, 0.15);
}
body.theme-dark-red .orbit,
body:not(.theme-classic) .orbit {
  border-color: rgba(229, 9, 20, 0.25);
}
body.theme-dark-red .core,
body:not(.theme-classic) .core {
  background: linear-gradient(135deg, #1f0406 0%, #0d0e14 100%);
  color: #ffffff;
  border: 2px solid var(--f4u-crimson);
  box-shadow: 0 0 0 12px rgba(229, 9, 20, 0.12), 0 18px 45px rgba(0, 0, 0, 0.7), 0 0 25px rgba(229, 9, 20, 0.4);
}
body.theme-dark-red .core span,
body:not(.theme-classic) .core span {
  color: var(--f4u-crimson);
  text-shadow: 0 0 12px rgba(229, 9, 20, 0.6);
}
body.theme-dark-red .node,
body:not(.theme-classic) .node {
  background: rgba(18, 20, 30, 0.85);
  border: 1px solid var(--f4u-crimson-border);
  color: #ffcad0;
  backdrop-filter: blur(8px);
}
body.theme-dark-red .connection,
body:not(.theme-classic) .connection {
  background: linear-gradient(90deg, var(--f4u-crimson) 0%, transparent 100%);
}

/* Voila Ad Banner Crimson Red */
body.theme-dark-red .voila-ad,
body:not(.theme-classic) .voila-ad {
  background: linear-gradient(135deg, #140507 0%, #151825 50%, #0d0e15 100%);
  border: 1px solid var(--f4u-crimson-border);
  border-radius: 12px;
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.7), 0 0 25px rgba(229, 9, 20, 0.18);
  margin-top: 40px;
}
body.theme-dark-red .voila-ad-button,
body:not(.theme-classic) .voila-ad-button {
  background: linear-gradient(135deg, #e50914 0%, #99050d 100%);
  color: #ffffff;
  border: 1px solid rgba(255, 255, 255, 0.2);
  box-shadow: 0 4px 18px rgba(229, 9, 20, 0.4);
}
body.theme-dark-red .voila-ad-card.card-front,
body:not(.theme-classic) .voila-ad-card.card-front {
  background: linear-gradient(135deg, #1f0406 0%, #141724 100%);
  border: 1px solid var(--f4u-crimson);
  color: #ffffff;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.8), 0 0 20px rgba(229, 9, 20, 0.3);
}
body.theme-dark-red .voila-ad-card.card-back,
body:not(.theme-classic) .voila-ad-card.card-back {
  background: #0f111a;
  border: 1px solid var(--f4u-dark-line);
  color: var(--f4u-text-dim);
}
body.theme-dark-red .voila-ad-logo,
body:not(.theme-classic) .voila-ad-logo {
  background: var(--f4u-crimson);
  color: #ffffff;
}

/* Signal bar */
body.theme-dark-red .signal-bar,
body:not(.theme-classic) .signal-bar {
  border-top: 1px solid var(--f4u-dark-line);
  border-bottom: 1px solid var(--f4u-dark-line);
  background: rgba(10, 12, 18, 0.6);
}
body.theme-dark-red .signal-grid span,
body:not(.theme-classic) .signal-grid span {
  color: var(--f4u-text-dim);
  border-right-color: var(--f4u-dark-line);
}

/* Section catalogue des 4 sous-produits écosystème */
.ecosystem-products-section {
  padding: 80px 0 60px;
}
.ecosystem-products-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  margin-top: 40px;
}
.eco-product-card {
  background: var(--f4u-dark-card);
  border: 1px solid var(--f4u-crimson-border);
  border-radius: 10px;
  padding: 28px 24px;
  display: flex;
  flex-direction: column;
  transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
  position: relative;
  overflow: hidden;
}
.eco-product-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background: linear-gradient(90deg, var(--f4u-crimson) 0%, transparent 100%);
}
.eco-product-card:hover {
  transform: translateY(-5px);
  border-color: var(--f4u-crimson);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.6), 0 0 20px rgba(229, 9, 20, 0.25);
}
.eco-badge-subdomain {
  display: inline-block;
  align-self: flex-start;
  font: 600 10px 'DM Mono', monospace;
  padding: 4px 8px;
  border-radius: 4px;
  background: rgba(229, 9, 20, 0.15);
  color: #ff8c94;
  border: 1px solid var(--f4u-crimson-border);
  margin-bottom: 14px;
}
.eco-product-card h3 {
  font-size: 18px;
  letter-spacing: -0.03em;
  margin: 0 0 10px;
  color: #ffffff;
}
.eco-product-card p {
  color: var(--f4u-text-muted);
  font-size: 13px;
  line-height: 1.5;
  margin: 0 0 18px;
  flex-grow: 1;
}
.eco-product-specs {
  list-style: none;
  padding: 0;
  margin: 0 0 20px;
  font-size: 12px;
  color: var(--f4u-text-dim);
}
.eco-product-specs li {
  padding: 4px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}
.eco-product-specs li::before {
  content: '▸ ';
  color: var(--f4u-crimson);
}
.eco-product-price {
  font: 700 18px 'DM Mono', monospace;
  color: #ffffff;
  margin-bottom: 16px;
}
.eco-product-price small {
  font-size: 11px;
  color: var(--f4u-text-dim);
  font-weight: 400;
}
.eco-product-actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* Tableau des prix Hébergement & VPS */
body.theme-dark-red .price-table-wrap,
body:not(.theme-classic) .price-table-wrap {
  background: var(--f4u-dark-card);
  border: 1px solid var(--f4u-crimson-border);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.6);
  border-radius: 8px;
}
body.theme-dark-red .price-table th,
body:not(.theme-classic) .price-table th {
  background: #190508;
  color: #ff9fa7;
  border-bottom: 1px solid var(--f4u-crimson-border);
}
body.theme-dark-red .price-table td,
body:not(.theme-classic) .price-table td {
  border-bottom: 1px solid rgba(229, 9, 20, 0.15);
  color: var(--f4u-text-main);
}
body.theme-dark-red .price-table tr:hover td,
body:not(.theme-classic) .price-table tr:hover td {
  background: rgba(229, 9, 20, 0.05);
}
.btn-order-plan {
  display: inline-block;
  background: var(--f4u-crimson);
  color: #ffffff !important;
  font: 600 11px 'DM Mono', monospace;
  padding: 6px 12px;
  border-radius: 4px;
  text-decoration: none;
  border: 0;
  cursor: pointer;
  transition: all 0.2s ease;
}
.btn-order-plan:hover {
  background: var(--f4u-crimson-hover);
  box-shadow: 0 0 12px var(--f4u-crimson-glow);
  transform: scale(1.02);
}

/* Cartes Fonctionnalités & Matériel */
body.theme-dark-red .section-dark,
body:not(.theme-classic) .section-dark {
  background: #090a0f;
  border-top: 1px solid var(--f4u-dark-line);
  border-bottom: 1px solid var(--f4u-dark-line);
}
body.theme-dark-red .feature-grid,
body.theme-dark-red .hardware-grid,
body:not(.theme-classic) .feature-grid,
body:not(.theme-classic) .hardware-grid {
  background: var(--f4u-crimson-border);
}
body.theme-dark-red .feature-card,
body.theme-dark-red .hardware-grid article,
body:not(.theme-classic) .feature-card,
body:not(.theme-classic) .hardware-grid article {
  background: var(--f4u-dark-card);
}
body.theme-dark-red .feature-card.featured,
body:not(.theme-classic) .feature-card.featured {
  background: #1a080c;
  border-left: 2px solid var(--f4u-crimson);
}
body.theme-dark-red .feature-line,
body:not(.theme-classic) .feature-line {
  background: var(--f4u-crimson);
  box-shadow: 0 0 10px var(--f4u-crimson-glow);
}
body.theme-dark-red .feature-number,
body:not(.theme-classic) .feature-number {
  color: #ff5e6c;
}

/* Réseau fast4u */
body.theme-dark-red .network-map,
body:not(.theme-classic) .network-map {
  background: #111420;
  border: 1px solid var(--f4u-crimson-border);
}
body.theme-dark-red .map-ring,
body:not(.theme-classic) .map-ring {
  border-color: rgba(229, 9, 20, 0.2);
}
body.theme-dark-red .map-dot,
body:not(.theme-classic) .map-dot {
  background: #1c0609;
  border: 1px solid var(--f4u-crimson);
  color: #ffffff;
}
body.theme-dark-red .map-center,
body:not(.theme-classic) .map-center {
  background: var(--f4u-crimson);
  color: #ffffff;
  box-shadow: 0 0 20px var(--f4u-crimson-glow);
}
body.theme-dark-red .map-line,
body:not(.theme-classic) .map-line {
  background: var(--f4u-crimson);
}
body.theme-dark-red .domain-links a,
body:not(.theme-classic) .domain-links a {
  border-bottom-color: var(--f4u-crimson-border);
  color: var(--f4u-text-main);
}
body.theme-dark-red .domain-links span,
body:not(.theme-classic) .domain-links span {
  color: var(--f4u-crimson);
}

/* FAQ Cards */
body.theme-dark-red .faq-card,
body:not(.theme-classic) .faq-card {
  background: var(--f4u-dark-card);
  border: 1px solid var(--f4u-crimson-border);
  border-radius: 8px;
  padding: 24px;
}
body.theme-dark-red .faq-card h3,
body:not(.theme-classic) .faq-card h3 {
  color: #ffffff;
}
body.theme-dark-red .faq-card p,
body:not(.theme-classic) .faq-card p {
  color: var(--f4u-text-muted);
}

/* CTA Footer & Bande de contact */
body.theme-dark-red .cta,
body:not(.theme-classic) .cta {
  background: linear-gradient(135deg, #260509 0%, #150406 100%);
  border: 1px solid var(--f4u-crimson-border);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.8), 0 0 30px rgba(229, 9, 20, 0.2);
  color: #ffffff;
}
body.theme-dark-red .cta .eyebrow,
body:not(.theme-classic) .cta .eyebrow {
  color: #ff7582;
}
body.theme-dark-red .cta h2,
body:not(.theme-classic) .cta h2 {
  color: #ffffff;
}
body.theme-dark-red .cta-actions .button-light,
body:not(.theme-classic) .cta-actions .button-light {
  background: var(--f4u-crimson);
  color: #ffffff;
  border: 1px solid rgba(255, 255, 255, 0.2);
  box-shadow: 0 4px 16px var(--f4u-crimson-glow);
}
body.theme-dark-red .cta-actions .button-light:hover,
body:not(.theme-classic) .cta-actions .button-light:hover {
  background: var(--f4u-crimson-hover);
}
body.theme-dark-red .cta-secondary,
body:not(.theme-classic) .cta-secondary {
  color: #ff9fa7;
}

/* Footer */
body.theme-dark-red .footer,
body:not(.theme-classic) .footer {
  background: #050608;
  border-top: 1px solid var(--f4u-crimson-border);
  color: var(--f4u-text-muted);
}
body.theme-dark-red .footer a,
body:not(.theme-classic) .footer a {
  color: var(--f4u-text-muted);
}
body.theme-dark-red .footer a:hover,
body:not(.theme-classic) .footer a:hover {
  color: var(--f4u-crimson);
}
body.theme-dark-red .footer-bottom,
body:not(.theme-classic) .footer-bottom {
  border-top-color: rgba(229, 9, 20, 0.15);
  color: var(--f4u-text-dim);
}

/* Modale de facturation SDK Voilà */
.voila-modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(5, 6, 8, 0.85);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  z-index: 999999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
}
.voila-modal-backdrop.is-open {
  opacity: 1;
  pointer-events: auto;
}
.voila-modal-container {
  background: #0e1017;
  border: 1.5px solid var(--f4u-crimson);
  border-radius: 12px;
  width: min(780px, 100%);
  max-height: 90vh;
  overflow-y: auto;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.9), 0 0 35px rgba(229, 9, 20, 0.35);
  padding: 32px;
  position: relative;
  color: var(--f4u-text-main);
}
.voila-modal-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  border-bottom: 1px solid var(--f4u-crimson-border);
  padding-bottom: 16px;
  margin-bottom: 24px;
}
.voila-modal-header h2 {
  font-size: 22px;
  margin: 0;
  color: #ffffff;
}
.voila-modal-header .modal-subtitle {
  font: 500 11px 'DM Mono', monospace;
  color: #ff8c94;
  margin-top: 4px;
}
.voila-modal-close {
  background: transparent;
  border: 1px solid var(--f4u-crimson-border);
  color: #ff9fa7;
  font-size: 18px;
  width: 32px;
  height: 32px;
  border-radius: 6px;
  cursor: pointer;
  display: grid;
  place-items: center;
  transition: all 0.2s ease;
}
.voila-modal-close:hover {
  background: var(--f4u-crimson);
  color: #ffffff;
}

/* Formulaire de commande Voilà SDK */
.voila-form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 20px;
}
.voila-form-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.voila-form-group.full-width {
  grid-column: 1 / -1;
}
.voila-form-group label {
  font: 600 11px 'DM Mono', monospace;
  color: #c5cedb;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.voila-form-group input,
.voila-form-group select,
.voila-form-group textarea {
  background: #141722;
  border: 1px solid rgba(229, 9, 20, 0.25);
  border-radius: 6px;
  padding: 10px 14px;
  color: #ffffff;
  font: 500 13px Manrope, sans-serif;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.voila-form-group input:focus,
.voila-form-group select:focus,
.voila-form-group textarea:focus {
  outline: none;
  border-color: var(--f4u-crimson);
  box-shadow: 0 0 10px rgba(229, 9, 20, 0.35);
}

/* Sélecteur de méthode de paiement (Interac / Crypto) */
.payment-methods-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-bottom: 24px;
}
.payment-method-card {
  background: #141722;
  border: 1.5px solid rgba(229, 9, 20, 0.2);
  border-radius: 8px;
  padding: 16px;
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.payment-method-card:hover {
  border-color: var(--f4u-crimson);
}
.payment-method-card.is-selected {
  border-color: var(--f4u-crimson);
  background: rgba(229, 9, 20, 0.09);
  box-shadow: 0 0 15px rgba(229, 9, 20, 0.25);
}
.payment-method-card strong {
  font-size: 14px;
  color: #ffffff;
}
.payment-method-card span {
  font-size: 12px;
  color: var(--f4u-text-muted);
}

/* Vue Facture "En attente de validation" */
.invoice-display-box {
  background: #121520;
  border: 1px solid var(--f4u-crimson-border);
  border-radius: 8px;
  padding: 24px;
  margin-top: 20px;
}
.status-pill-pending {
  display: inline-block;
  background: rgba(230, 126, 34, 0.2);
  color: #f39c12;
  border: 1px solid #e67e22;
  border-radius: 30px;
  padding: 6px 14px;
  font: 700 11px 'DM Mono', monospace;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 16px;
}
.invoice-crypto-box {
  background: #090b10;
  border: 1px dashed var(--f4u-crimson-border);
  padding: 14px;
  border-radius: 6px;
  margin-top: 14px;
  font: 500 11px 'DM Mono', monospace;
  color: #ffd2d6;
  word-break: break-all;
}

@media (max-width: 900px) {
  .ecosystem-products-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .voila-form-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 550px) {
  .ecosystem-products-grid {
    grid-template-columns: 1fr;
  }
  .payment-methods-grid {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   CONSTELLATION FAST4U — GRILLE ET CARTES DE LOGOS SOUVERAINES
   ========================================================================== */
.constellation-section {
  padding: 60px 0 80px;
  border-top: 1px solid var(--f4u-line, #d5dfdc);
}
body.theme-dark-red .constellation-section,
body:not(.theme-classic) .constellation-section {
  border-top-color: var(--f4u-crimson-border, rgba(229, 9, 20, 0.25));
}

.constellation-header {
  margin-bottom: 32px;
}
.constellation-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font: 700 11px 'DM Mono', monospace;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  margin-bottom: 12px;
}
body.theme-classic .constellation-eyebrow {
  color: #16a687;
}
body.theme-dark-red .constellation-eyebrow,
body:not(.theme-classic) .constellation-eyebrow {
  color: var(--f4u-crimson-bright, #ff4d5a);
}

.constellation-dot {
  width: 8px;
  height: 8px;
  border-radius: 9999px;
  background: currentColor;
  box-shadow: 0 0 8px currentColor;
}
.constellation-title {
  font-size: clamp(22px, 2.5vw, 32px);
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: -0.03em;
  margin: 0 0 10px;
}
.constellation-subtitle {
  font-size: 14px;
  max-width: 680px;
  margin: 0;
  color: #64748b;
  line-height: 1.6;
}
body.theme-dark-red .constellation-subtitle,
body:not(.theme-classic) .constellation-subtitle {
  color: #94a3b8;
}

.constellation-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
@media (max-width: 1024px) {
  .constellation-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 640px) {
  .constellation-grid {
    grid-template-columns: 1fr;
  }
}

.constellation-card {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 18px 20px;
  border-radius: 12px;
  text-decoration: none !important;
  color: inherit !important;
  transition: all 0.22s cubic-bezier(0.22, 1, 0.36, 1);
  position: relative;
  overflow: hidden;
}

/* Cartes en Mode Clair */
body.theme-classic .constellation-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.04);
}
body.theme-classic .constellation-card:hover {
  transform: translateY(-2px);
  border-color: #cbd5e1;
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.08);
}

/* Cartes en Mode Sombre */
body.theme-dark-red .constellation-card,
body:not(.theme-classic) .constellation-card {
  background: #10131d;
  border: 1px solid rgba(229, 9, 20, 0.2);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35);
}
body.theme-dark-red .constellation-card:hover,
body:not(.theme-classic) .constellation-card:hover {
  transform: translateY(-2px);
  border-color: rgba(229, 9, 20, 0.5);
  box-shadow: 0 8px 24px rgba(229, 9, 20, 0.2);
}

/* Spécifique Carte Voilà */
body.theme-classic .constellation-card--voila {
  border-left: 3px solid #593bff;
}
body.theme-dark-red .constellation-card--voila,
body:not(.theme-classic) .constellation-card--voila {
  border-left: 3px solid #795cff;
}

.constellation-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
}

.constellation-badge-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 9px;
  font-weight: 800;
  font-family: 'DM Mono', monospace;
  font-size: 14px;
  flex-shrink: 0;
}

.f4-badge {
  background: #08111f;
  color: #d5f26a;
  border: 1.5px solid #d5f26a;
  letter-spacing: -0.06em;
}
body.theme-dark-red .f4-badge,
body:not(.theme-classic) .f4-badge {
  background: #0d090d;
  color: #ff4d5a;
  border-color: #e50914;
}

.voila-badge {
  background: transparent;
  width: 36px;
  height: 36px;
}
.voila-card-logo-img {
  width: 36px;
  height: 36px;
  object-fit: contain;
  border-radius: 8px;
  box-shadow: 0 0 12px rgba(89, 59, 255, 0.35);
}

.constellation-tag {
  font: 700 10px 'DM Mono', monospace;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 3px 8px;
  border-radius: 6px;
}
body.theme-classic .constellation-tag {
  background: #f1f5f9;
  color: #475569;
}
body.theme-dark-red .constellation-tag,
body:not(.theme-classic) .constellation-tag {
  background: rgba(255, 255, 255, 0.06);
  color: #cbd5e1;
}

.voila-tag {
  background: rgba(89, 59, 255, 0.15) !important;
  color: #795cff !important;
}

.constellation-card-body {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.constellation-domain {
  font-size: 15px;
  font-weight: 800;
  letter-spacing: -0.02em;
}
body.theme-classic .constellation-domain {
  color: #0f172a;
}
body.theme-dark-red .constellation-domain,
body:not(.theme-classic) .constellation-domain {
  color: #ffffff;
}

.voila-domain {
  color: #795cff !important;
}
body.theme-classic .voila-domain {
  color: #593bff !important;
}

.constellation-desc {
  font-size: 12px;
  line-height: 1.5;
}
body.theme-classic .constellation-desc {
  color: #64748b;
}
body.theme-dark-red .constellation-desc,
body:not(.theme-classic) .constellation-desc {
  color: #94a3b8;
}

.constellation-card-arrow {
  margin-top: 14px;
  font-weight: 700;
  font-size: 14px;
  transition: transform 0.2s ease;
  align-self: flex-end;
}
body.theme-classic .constellation-card-arrow {
  color: #0f172a;
}
body.theme-dark-red .constellation-card-arrow,
body:not(.theme-classic) .constellation-card-arrow {
  color: #ff4d5a;
}
.constellation-card:hover .constellation-card-arrow {
  transform: translateX(4px);
}

/* Header Layout inspiré de Voilà */
.site-header {
  height: auto !important;
  min-height: 72px !important;
  padding: 12px 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 20px !important;
}
.brand {
  display: inline-flex !important;
  align-items: center !important;
  gap: 12px !important;
  text-decoration: none !important;
}
.brand-titles {
  display: flex;
  flex-direction: column;
  justify-content: center;
  line-height: 1;
}
.brand-name {
  font-size: 1.25rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  color: inherit;
}
.brand-by {
  font-size: 8.5px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-top: 4px;
  color: #64748b;
}
body.theme-dark-red .brand-by,
body:not(.theme-classic) .brand-by {
  color: #94a3b8;
}
