/*
 Theme Name:   ERdigIA - Thème Enfant
 Theme URI:    https://erdigia.com
 Description:  Thème enfant Hello Elementor — Agence Web & IA
 Author:       ERdigIA
 Author URI:   https://erdigia.com
 Template:     hello-elementor
 Version:      2.5.2
 License:      GNU General Public License v2 or later
 Text Domain:  erdigia-child
*/

/* ================================================================
   DESIGN TOKENS — Direction artistique ERdigIA
   ================================================================ */
:root {
  /* Couleurs fondamentales */
  --bg-0:      #05070d;
  --bg-1:      #080b14;
  --bg-2:      #0b1420;
  --bg-3:      #101a2c;
  --bg-card:   #0d1826;
  --bg-glass:  rgba(11,20,32,0.85);

  /* Palette principale — bleu/cyan d'origine ERdigIA, complétée par un
     accent orange néon réservé aux CTA / points d'action (voir --orange*) */
  --cyan:      #00d4ff;
  --cyan-dim:  #0099bb;
  --cyan-soft: rgba(0,212,255,0.12);
  --cyan-glow: rgba(0,212,255,0.35);
  --blue:      #0a6eea;
  --blue-dim:  #0854b8;
  --violet:    #6c3fea;

  /* Orange néon — accent réservé aux CTA principaux et points de priorité,
     jamais utilisé à parts égales avec le bleu */
  --orange:       #f79d1e;
  --orange-strong:#ff410d;
  --orange-soft:  rgba(247,157,30,0.15);
  --orange-glow:  rgba(247,157,30,0.4);

  /* Gradient signatures */
  --grad-main:   linear-gradient(135deg, #0a6eea 0%, #00d4ff 100%);
  --grad-hero:   linear-gradient(160deg, #0a6eea 0%, #00d4ff 60%, #7af5ff 100%);
  --grad-card:   linear-gradient(145deg, #0d1826 0%, #101a2c 100%);
  --grad-glow:   radial-gradient(ellipse 60% 50% at 50% 50%, rgba(10,110,234,.25) 0%, transparent 70%);
  --grad-cta:    linear-gradient(135deg, #f79d1e 0%, #ff410d 100%);

  /* Texte */
  --t-bright:  #f4f7fa;
  --t-main:    #c8dff0;
  --t-muted:   #748aa6;
  --t-dim:     #6f93b0; /* remonté depuis #2e4d6a d'origine — contraste ~2.3:1 sur --bg-0, sous le seuil WCAG AA */

  /* Bordures */
  --border:      rgba(0,212,255,0.1);
  --border-hov:  rgba(0,212,255,0.4);
  --border-glow: rgba(0,212,255,0.6);

  /* Ombres & effets */
  --shadow-card: 0 8px 40px rgba(0,0,0,0.6), 0 0 0 1px var(--border);
  --shadow-glow: 0 0 40px rgba(0,212,255,0.25), 0 0 80px rgba(10,110,234,0.15);
  --shadow-btn:  0 4px 24px rgba(0,212,255,0.45);
  --shadow-cta:  0 4px 24px rgba(247,157,30,0.5);
  --text-glow:   0 0 24px rgba(0,212,255,0.7), 0 0 48px rgba(10,110,234,0.4);

  /* Typography */
  --f-display: 'Orbitron', sans-serif;
  --f-head:    'Rajdhani', sans-serif;
  --f-body:    'Exo 2', sans-serif;
  --f-mono:    'Rajdhani', monospace;

  /* Géométrie */
  --r-sm:   6px;
  --r-md:   12px;
  --r-lg:   20px;
  --r-xl:   32px;
  --r-full: 999px;

  /* Transitions */
  --ease:      cubic-bezier(0.4,0,0.2,1);
  --t-fast:    all .15s var(--ease);
  --t-base:    all .3s var(--ease);
  --t-slow:    all .5s var(--ease);

  /* Aliases de compatibilité */
  --color-bg-dark:    var(--bg-1);
  --color-bg-card:    var(--bg-card);
  --color-primary:    var(--cyan);
  --color-secondary:  var(--blue);
  --color-accent:     var(--cyan);
  --color-heading:    var(--t-bright);
  --color-text:       var(--t-main);
  --color-text-muted: var(--t-muted);
  --color-text-bright:var(--t-bright);
  --color-border:     var(--border);
  --font-display:     var(--f-display);
  --font-heading:     var(--f-head);
  --font-body:        var(--f-body);
  --font-mono:        var(--f-mono);
  --glow-text:        var(--text-glow);
  --glow-primary:     var(--shadow-glow);
  --radius:           var(--r-md);
  --radius-lg:        var(--r-lg);
  --transition:       var(--t-base);
  --transition-slow:  var(--t-slow);

  /* Alias --er-* (nomenclature utilisée par css/forms.css, css/pages.css
     et documentée dans readme.txt — jamais déclarée avant ce correctif,
     ce qui cassait dégradés/rayons/ombres sur ces composants) */
  --er-bg-deep:         var(--bg-0);
  --er-bg-card:         var(--bg-card);
  --er-bg-card2:        var(--bg-3);
  --er-blue-primary:    var(--blue);
  --er-cyan:            var(--cyan);
  --er-cyan-border:     var(--border-hov);
  --er-border:          var(--border);
  --er-text-white:      var(--t-bright);
  --er-text-light:      var(--t-bright);
  --er-text-muted:      var(--t-muted);
  --er-font-display:    var(--f-display);
  --er-font-heading:    var(--f-head);
  --er-font-body:       var(--f-body);
  --er-gradient-primary:var(--grad-main);
  --er-radius:          var(--r-md);
  --er-radius-lg:       var(--r-lg);
  --er-radius-xl:       var(--r-xl);
  --er-shadow-btn:      var(--shadow-btn);
  --er-transition:      var(--t-base);
}

/* ================================================================
   RESET & BASE
   ================================================================ */
/* Police chargée via wp_enqueue_style('erdigia-fonts', ...) dans functions.php
   (évite le blocage de rendu d'un @import CSS) */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; }

body {
  background: var(--bg-0) !important;
  color: var(--t-main) !important;
  font-family: var(--f-body) !important;
  font-size: 16px;
  line-height: 1.75;
  overflow-x: hidden;
}

/* Grille circuit ambiance — dérive lente façon grille lumineuse Tron */
body::before {
  content: '';
  position: fixed;
  inset: 0;
  background-image:
    linear-gradient(rgba(0,212,255,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,212,255,.025) 1px, transparent 1px);
  background-size: 56px 56px;
  pointer-events: none;
  z-index: 0;
  animation: er-grid-drift 60s linear infinite;
}
body::after {
  content: '';
  position: fixed;
  inset: 0;
  background:
    radial-gradient(ellipse 80% 40% at 20% 0%, rgba(10,110,234,.12) 0%, transparent 60%),
    radial-gradient(ellipse 60% 40% at 80% 100%, rgba(0,212,255,.08) 0%, transparent 60%);
  pointer-events: none;
  z-index: 0;
}
@keyframes er-grid-drift {
  from { background-position: 0 0, 0 0; }
  to   { background-position: 56px 56px, 56px 56px; }
}

/* Titres : mise sous tension façon néon à l'arrivée sur la page */
h1 {
  animation: er-power-on 1s var(--ease) both;
}
@keyframes er-power-on {
  0%   { opacity: 0; filter: drop-shadow(0 0 0 rgba(0,212,255,0)); }
  60%  { opacity: 1; filter: drop-shadow(0 0 18px rgba(0,212,255,.55)); }
  100% { opacity: 1; filter: drop-shadow(0 0 0 rgba(0,212,255,0)); }
}

/* Respect du confort de lecture : toutes les animations/transitions du
   thème sont neutralisées si l'utilisateur préfère un mouvement réduit */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
  body::before { animation: none; }
  h1 { animation: none; opacity: 1; filter: none; }
}

/* ================================================================
   TYPOGRAPHIE
   ================================================================ */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--f-head);
  color: var(--t-bright);
  line-height: 1.2;
}
a { color: var(--cyan); text-decoration: none; transition: var(--t-base); }
a:hover { color: var(--t-bright); }
p { color: var(--t-main); line-height: 1.8; }
img { max-width: 100%; height: auto; }

/* ================================================================
   LAYOUT HELPERS
   ================================================================ */
.er-container {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 48px;
}
.er-container-sm { max-width: 900px; margin: 0 auto; padding: 0 48px; }
@media (max-width: 768px) {
  .er-container, .er-container-sm { padding: 0 24px; }
}

/* ================================================================
   BOUTONS — Design premium
   ================================================================ */
.er-btn,
.elementor-button,
.elementor-button-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 14px 32px;
  font-family: var(--f-display);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  text-decoration: none !important;
  border-radius: var(--r-md);
  border: 1px solid transparent;
  cursor: pointer;
  transition: var(--t-base);
  white-space: nowrap;
  position: relative;
  overflow: hidden;
}
.er-btn::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,.15) 0%, transparent 60%);
  opacity: 0;
  transition: var(--t-fast);
}
.er-btn:hover::before { opacity: 1; }

.er-btn-primary {
  background: var(--grad-main);
  color: #05070d !important;
  box-shadow: var(--shadow-btn);
}
.er-btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 36px rgba(0,212,255,.55);
}
.er-btn-primary:active { transform: translateY(0); }

.er-btn-ghost {
  background: transparent;
  color: var(--cyan) !important;
  border-color: var(--border-hov);
  backdrop-filter: blur(8px);
}
.er-btn-ghost:hover {
  background: var(--cyan-soft);
  border-color: var(--border-glow);
  box-shadow: 0 0 20px var(--cyan-glow);
  color: var(--t-bright) !important;
}

.er-btn-sm  { padding: 10px 22px; font-size: .7rem; }
.er-btn-lg  { padding: 18px 44px; font-size: .8rem; }
.er-btn-icon { width: 44px; height: 44px; padding: 0; border-radius: var(--r-md); }

/* ================================================================
   BADGES & TAGS
   ================================================================ */
.er-badge, .erdigia-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 16px;
  background: rgba(0,212,255,.08);
  border: 1px solid rgba(0,212,255,.2);
  border-radius: var(--r-full);
  font-family: var(--f-head);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--cyan);
  backdrop-filter: blur(4px);
}
.er-tag {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 12px;
  background: rgba(0,212,255,.06);
  border: 1px solid var(--border);
  border-radius: var(--r-full);
  font-size: .78rem;
  color: var(--t-muted);
}
.er-tag.cyan { color: var(--cyan); border-color: rgba(0,212,255,.25); background: rgba(0,212,255,.1); }

/* ================================================================
   CARTES
   ================================================================ */
.er-card {
  background: var(--grad-card);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: 36px;
  position: relative;
  overflow: hidden;
  transition: var(--t-base);
}
.er-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 80% 50% at 50% -20%, rgba(0,212,255,.08) 0%, transparent 60%);
  opacity: 0;
  transition: var(--t-slow);
}
.er-card:hover { border-color: var(--border-hov); transform: translateY(-4px); box-shadow: var(--shadow-glow); }
.er-card:hover::before { opacity: 1; }

.er-card-accent::after {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: var(--grad-main);
}

/* ================================================================
   SECTION HEADERS
   ================================================================ */
.er-section { padding: 100px 0; position: relative; z-index: 1; }
.er-section-dark { background: var(--bg-0); }
.er-section-mid  { background: var(--bg-1); }

.er-section-label {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--f-mono);
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .25em;
  text-transform: uppercase;
  color: var(--cyan);
  margin-bottom: 16px;
}
.er-section-label::before {
  content: '';
  width: 24px;
  height: 1px;
  background: var(--grad-main);
  flex-shrink: 0;
}
.er-section-title {
  font-family: var(--f-display);
  font-size: clamp(1.8rem, 3vw, 2.8rem);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--t-bright);
  line-height: 1.1;
}
.er-section-divider {
  display: block;
  width: 48px;
  height: 2px;
  background: var(--grad-main);
  border-radius: 2px;
  margin: 20px 0;
}
.er-section-divider.center { margin: 20px auto; }

/* ================================================================
   LOGO TEXTE
   ================================================================ */
.er-logo,
.er-logo-text { display: flex; align-items: baseline; gap: 1px; text-decoration: none; }
.er-logo-er  { font-family: var(--f-display); font-weight: 900; font-size: 1.35rem; color: var(--t-bright); }
.er-logo-dig { font-family: var(--f-display); font-weight: 500; font-size: 1.35rem; color: var(--t-muted); }
.er-logo-ia  { font-family: var(--f-display); font-weight: 900; font-size: 1.35rem; background: var(--grad-main); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.er-logo-dot { width: 5px; height: 5px; background: var(--cyan); border-radius: 50%; margin-left: 3px; align-self: center; box-shadow: 0 0 8px var(--cyan); }

/* ================================================================
   CIRCUIT DECORATION
   ================================================================ */
.er-circuit-bg,
.erdigia-circuit-bg {
  position: relative;
}
.er-circuit-bg::after,
.erdigia-circuit-bg::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(0,212,255,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,212,255,.04) 1px, transparent 1px);
  background-size: 48px 48px;
  pointer-events: none;
  z-index: 0;
}
.er-circuit-bg > *,
.erdigia-circuit-bg > * { position: relative; z-index: 1; }

/* ================================================================
   LISTES CHECK
   ================================================================ */
.er-check-list { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.er-check-list li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  color: var(--t-main);
  font-size: .95rem;
  line-height: 1.6;
}
.er-check-list li::before {
  content: '';
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  background: var(--cyan-soft);
  border: 1px solid rgba(0,212,255,.3);
  border-radius: 4px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%2300d4ff' stroke-width='3'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  margin-top: 2px;
}

/* ================================================================
   PRIX
   ================================================================ */
.er-price-tag {
  font-family: var(--f-display);
  font-size: 2.5rem;
  font-weight: 900;
  background: var(--grad-main);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  line-height: 1;
}
.er-price-unit { font-size: 1rem; font-weight: 400; opacity: .6; -webkit-text-fill-color: var(--t-muted); }

/* ================================================================
   FORMS
   ================================================================ */
.er-form,
.erdigia-form { display: grid; gap: 18px; }
.er-form-group,
.erdigia-form .form-group { display: flex; flex-direction: column; gap: 7px; }
.er-form label {
  font-family: var(--f-display);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--t-muted);
}
.er-form input,
.er-form select,
.er-form textarea {
  width: 100%;
  padding: 13px 18px;
  background: rgba(255,255,255,.03);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  color: var(--t-bright);
  font-family: var(--f-body);
  font-size: .95rem;
  transition: var(--t-base);
  outline: none;
  -webkit-appearance: none;
}
.er-form input:focus,
.er-form select:focus,
.er-form textarea:focus {
  border-color: var(--border-hov);
  box-shadow: 0 0 0 3px var(--cyan-soft), 0 0 16px rgba(0,212,255,.12);
  background: rgba(0,212,255,.04);
}
.er-form input::placeholder,
.er-form textarea::placeholder { color: var(--t-dim); }
.er-form textarea { resize: vertical; min-height: 130px; }
.er-form select { cursor: pointer; }
.er-form input[type="checkbox"] { width: auto; }

/* Compatibilité anciens styles */
.erdigia-form label { font-family: var(--f-display); font-size: .68rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; color: var(--t-muted); }
.erdigia-form input,
.erdigia-form select,
.erdigia-form textarea { width:100%; padding:13px 18px; background:rgba(255,255,255,.03); border:1px solid var(--border); border-radius:var(--r-md); color:var(--t-bright); font-family:var(--f-body); font-size:.95rem; transition:var(--t-base); outline:none; -webkit-appearance:none; }
.erdigia-form input:focus,
.erdigia-form select:focus,
.erdigia-form textarea:focus { border-color:var(--border-hov); box-shadow:0 0 0 3px var(--cyan-soft); background:rgba(0,212,255,.04); }

/* ================================================================
   SIMULATEUR DE DEVIS — Design premium
   ================================================================ */
.erdigia-simulator {
  background: linear-gradient(145deg, var(--bg-card) 0%, var(--bg-2) 100%);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  padding: 48px;
  position: relative;
  overflow: hidden;
  box-shadow: var(--shadow-card);
}
.erdigia-simulator::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: var(--grad-main);
  border-radius: var(--r-xl) var(--r-xl) 0 0;
}
.erdigia-simulator::after {
  content: '';
  position: absolute;
  top: 0; right: 0;
  width: 300px;
  height: 300px;
  background: radial-gradient(circle, rgba(0,212,255,.06) 0%, transparent 70%);
  pointer-events: none;
}

.sim-progress {
  display: flex;
  gap: 6px;
  margin-bottom: 36px;
}
.sim-progress-step {
  flex: 1;
  height: 3px;
  background: rgba(255,255,255,.08);
  border-radius: 3px;
  transition: background .4s;
  position: relative;
  overflow: hidden;
}
.sim-progress-step.active {
  background: var(--grad-main);
  box-shadow: 0 0 8px var(--cyan-glow);
}
.sim-progress-step.active::after {
  content: '';
  position: absolute;
  top: 0; left: -100%;
  width: 80%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.4), transparent);
  animation: shimmer 1.5s infinite;
}
@keyframes shimmer { to { left: 200%; } }

.sim-step-label {
  font-family: var(--f-display);
  font-size: .68rem;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--t-muted);
  margin-bottom: 28px;
}

.sim-step { display: none; animation: er-fadeUp .3s var(--ease); }
.sim-step.active { display: block; }
@keyframes er-fadeUp { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }

.sim-step h4 {
  font-family: var(--f-display);
  font-size: .85rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--cyan);
  margin-bottom: 20px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--border);
  display: flex;
  align-items: center;
  gap: 10px;
}

.sim-option-group {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(175px, 1fr));
  gap: 10px;
}
.sim-option { position: relative; }
.sim-option input { position: absolute; opacity: 0; pointer-events: none; }
.sim-option label {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 14px 12px;
  background: rgba(255,255,255,.03);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  color: var(--t-muted);
  font-family: var(--f-body);
  font-size: .88rem;
  cursor: pointer;
  transition: var(--t-fast);
  min-height: 56px;
  letter-spacing: 0;
  text-transform: none;
  font-weight: 400;
  line-height: 1.4;
}
.sim-option label:hover {
  border-color: rgba(0,212,255,.35);
  color: var(--t-bright);
  background: rgba(0,212,255,.06);
}
.sim-option input:checked + label,
.sim-option label.er-selected {
  border-color: var(--cyan);
  color: var(--cyan);
  background: rgba(0,212,255,.1);
  box-shadow: 0 0 16px rgba(0,212,255,.2), inset 0 1px 0 rgba(255,255,255,.08);
  font-weight: 600;
}
.sim-option input:focus-visible + label {
  outline: 2px solid var(--cyan);
  outline-offset: 2px;
}

.sim-price-estimate {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: linear-gradient(135deg, rgba(0,212,255,.08), rgba(10,110,234,.06));
  border: 1px solid rgba(0,212,255,.2);
  border-radius: var(--r-lg);
  padding: 18px 28px;
  margin-bottom: 28px;
  flex-wrap: wrap;
  gap: 12px;
}
.sim-price-label {
  font-family: var(--f-display);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--t-muted);
  margin-bottom: 4px;
}
.sim-price-value {
  font-family: var(--f-display);
  font-size: 2.2rem;
  font-weight: 900;
  background: var(--grad-main);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  line-height: 1;
}

.sim-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 32px;
  gap: 16px;
}
.sim-btn-prev {
  padding: 12px 24px;
  font-family: var(--f-display);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  border-radius: var(--r-md);
  cursor: pointer;
  transition: var(--t-base);
  background: transparent;
  border: 1px solid var(--border);
  color: var(--t-muted);
}
.sim-btn-prev:hover { border-color: var(--border-hov); color: var(--cyan); }
.sim-btn-next {
  padding: 13px 32px;
  font-family: var(--f-display);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  border-radius: var(--r-md);
  cursor: pointer;
  transition: var(--t-base);
  background: var(--grad-main);
  border: none;
  color: #05070d;
  box-shadow: var(--shadow-btn);
}
.sim-btn-next:hover { transform: translateY(-2px); box-shadow: 0 8px 32px rgba(0,212,255,.55); }

.sim-success { display: none; text-align: center; padding: 48px 24px; animation: er-fadeUp .5s ease; }
.sim-success h4 {
  font-family: var(--f-display);
  font-size: 1.4rem;
  font-weight: 800;
  text-transform: uppercase;
  color: var(--cyan);
  border: none;
  padding: 0;
  margin-bottom: 14px;
  justify-content: center;
}

/* Le formulaire shortcode intelligent (.erdigia-form-wrapper / .erform-*)
   est stylé par css/forms.css, désormais chargé via wp_enqueue_style dans
   functions.php. L'ancien bloc qui vivait ici utilisait des noms de classes
   (.choice-icon, .erform-progress-bar-fill, .erform-nav...) qui ne
   correspondaient plus au HTML réellement généré par inc/forms.php — la
   barre de progression, par exemple, ne s'animait jamais. */

/* ================================================================
   ANIMATIONS
   ================================================================ */
.er-animate {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .6s var(--ease), transform .6s var(--ease);
}
.er-animate.er-visible { opacity: 1; transform: translateY(0); }
[data-erdigia-animate] {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .5s var(--ease), transform .5s var(--ease);
}
[data-erdigia-animate].visible { opacity: 1; transform: translateY(0); }

/* ================================================================
   FOOTER
   ================================================================ */
.er-footer {
  background: var(--bg-0);
  border-top: 1px solid var(--border);
  position: relative;
  z-index: 1;
}
.er-footer::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: var(--grad-main);
  opacity: .4;
}
.er-footer-inner { max-width: 1280px; margin: 0 auto; padding: 80px 48px 40px; }
.er-footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1.4fr; gap: 60px; margin-bottom: 60px; }
.er-footer-tagline { color: var(--t-muted); font-size: .9rem; line-height: 1.8; margin: 18px 0 24px; }
.er-footer-socials { display: flex; gap: 10px; }
.er-social-link { width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--r-md); color: var(--t-muted); text-decoration: none; transition: var(--t-base); }
.er-social-link:hover { border-color: var(--border-hov); color: var(--cyan); background: var(--cyan-soft); box-shadow: 0 0 16px var(--cyan-glow); }
.er-footer-heading { font-family: var(--f-display); font-size: .7rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--t-bright); margin: 0 0 20px; }
.er-footer-links { list-style: none; padding: 0; }
.er-footer-links li { margin-bottom: 10px; }
.er-footer-links a { color: var(--t-muted); font-size: .9rem; transition: color .2s; }
.er-footer-links a:hover { color: var(--cyan); }
.er-footer-contact-list { list-style: none; padding: 0; }
.er-footer-contact-list li { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; color: var(--t-muted); font-size: .9rem; }
.er-footer-contact-list svg { color: var(--cyan); flex-shrink: 0; }
.er-footer-contact-list a { color: var(--t-muted); }
.er-footer-contact-list a:hover { color: var(--cyan); }
.er-footer-cta-wrap { margin-top: 20px; }
.er-footer-bottom { border-top: 1px solid var(--border); padding-top: 28px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.er-footer-bottom p { color: var(--t-dim); font-size: .82rem; margin: 0; }

/* ================================================================
   ELEMENTOR OVERRIDES
   ================================================================ */
.elementor-section, .e-con { position: relative; z-index: 1; }
.elementor-widget-heading .elementor-heading-title { font-family: var(--f-head) !important; }
.elementor-widget-text-editor * { color: var(--t-main) !important; }

/* ================================================================
   MEDIA QUERIES
   ================================================================ */
@media (max-width: 1024px) {
  .er-footer-grid { grid-template-columns: 1fr 1fr; gap: 40px; }
}
@media (max-width: 768px) {
  .er-section { padding: 70px 0; }
  .erdigia-simulator, .erdigia-form-wrapper { padding: 28px 22px; }
  .er-footer-inner { padding: 50px 24px 32px; }
}
@media (max-width: 600px) {
  .er-footer-grid { grid-template-columns: 1fr; }
  .erform-choices { grid-template-columns: 1fr 1fr; }
  .sim-option-group { grid-template-columns: 1fr 1fr; }
}

/* ================================================================
   OVERRIDE HELLO ELEMENTOR — Correction couleurs forcées
   ================================================================ */

/* Hello Elementor force les liens en rouge/orange via --e-global-color-primary
   On override avec nos couleurs */
:root {
  --e-global-color-primary:   #00d4ff;
  --e-global-color-secondary: #0a6eea;
  --e-global-color-text:      #c8dff0;
  --e-global-color-accent:    #00d4ff;
}

/* Reset button couleur héritée */
button {
  color: inherit;
  font-family: inherit;
}

/* Les liens de nav WP héritent bien la couleur définie */
.er-header-nav a,
.er-footer a {
  color: inherit !important;
}

/* Correction spécifique page Devis */
.er-page-devis button { color: #c8dff0 !important; }
.er-page-devis .devis-card { color: #c8dff0 !important; }
.er-page-devis .card-title { color: #f4f7fa !important; }
.er-page-devis a { color: inherit !important; }

/* Correction formulaires — retirer le style rouge WP des labels */
.er-page-devis label { color: #748aa6 !important; }

/* ================================================================
   RESPONSIVE MOBILE — Corrections globales
   ================================================================ */

/* ── Header : forcer affichage hamburger ── */
@media (max-width: 900px) {
  #er-hamburger { display: flex !important; }
  #er-header nav { display: none !important; }
  #er-cta-btn { display: none !important; }
  .er-header-inner { padding: 0 20px !important; }
}

/* ── Grilles génériques → 1 colonne sur mobile ── */
@media (max-width: 640px) {

  /* Grilles inline style avec grid-template-columns répétées */
  /* Pages services — grille 3/4 colonnes → 1 colonne */
  [style*="grid-template-columns:repeat(3,1fr)"],
  [style*="grid-template-columns:repeat(4,1fr)"],
  [style*="grid-template-columns:repeat(3, 1fr)"],
  [style*="grid-template-columns:repeat(4, 1fr)"] {
    grid-template-columns: 1fr !important;
  }

  /* Grilles 2 colonnes → 1 colonne sur très petit écran */
  [style*="grid-template-columns:1fr 1fr"] {
    grid-template-columns: 1fr !important;
  }

  /* Padding containers */
  [style*="padding:0 48px"] { padding: 0 20px !important; }
  [style*="padding: 0 48px"] { padding: 0 20px !important; }

  /* Sections padding top/bottom */
  [style*="padding:90px 0"] { padding: 56px 0 !important; }
  [style*="padding:100px 0"] { padding: 60px 0 !important; }
  [style*="padding:110px 0"] { padding: 64px 0 !important; }

  /* Hero padding top */
  [style*="padding:90px 0 70px"] { padding: 50px 0 40px !important; }
  [style*="padding:100px 0 80px"] { padding: 56px 0 40px !important; }

  /* Titres hero */
  [style*="font-size:clamp(2.5rem"] { font-size: 2rem !important; }
  [style*="font-size:clamp(2.8rem"] { font-size: 2.1rem !important; }

  /* Formulaires 2 colonnes → 1 */
  [style*="grid-template-columns:1fr 1fr;gap:14px"],
  [style*="grid-template-columns:1fr 1fr;gap:14"] {
    grid-template-columns: 1fr !important;
  }
}

/* ── Breakpoint intermédiaire 640–900px → 2 colonnes ── */
@media (min-width: 641px) and (max-width: 900px) {

  [style*="grid-template-columns:repeat(3,1fr)"],
  [style*="grid-template-columns:repeat(3, 1fr)"] {
    grid-template-columns: 1fr 1fr !important;
  }

  [style*="grid-template-columns:repeat(4,1fr)"],
  [style*="grid-template-columns:repeat(4, 1fr)"] {
    grid-template-columns: 1fr 1fr !important;
  }

  [style*="padding:0 48px"] { padding: 0 28px !important; }
}

/* ── Grille hero accueil (2 colonnes → 1) ── */
@media (max-width: 900px) {
  [style*="grid-template-columns:1.1fr 0.9fr"],
  [style*="grid-template-columns:1fr 1fr;gap:80px"],
  [style*="grid-template-columns:360px 1fr"] {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }

  /* Cacher les badges flottants hero */
  [style*="position:absolute;top:70px;right:-20px"],
  [style*="position:absolute;bottom:60px;left:-20px"] {
    display: none !important;
  }
}

/* ── Page d'accueil : sections 2 colonnes ── */
@media (max-width: 900px) {
  /* Section Pourquoi ERdigIA */
  [style*="grid-template-columns:1fr 1fr;gap:80px"] {
    grid-template-columns: 1fr !important;
    gap: 40px !important;
  }
}

/* ── Footer ── */
@media (max-width: 900px) {
  .er-footer-grid { grid-template-columns: 1fr 1fr !important; gap: 32px !important; }
  .er-footer-inner { padding: 48px 24px 32px !important; }
}
@media (max-width: 580px) {
  .er-footer-grid { grid-template-columns: 1fr !important; }
}

/* ── Simulateur options grid ── */
@media (max-width: 640px) {
  [style*="grid-template-columns:repeat(auto-fill,minmax(175px,1fr)"],
  [style*="grid-template-columns:repeat(auto-fill,minmax(160px,1fr)"] {
    grid-template-columns: 1fr 1fr !important;
  }
  [style*="grid-template-columns:repeat(auto-fill,minmax(260px,1fr)"] {
    grid-template-columns: 1fr !important;
  }
}

/* ── Page Prestations : grille 4 colonnes → 2 puis 1 ── */
@media (max-width: 900px) {
  /* La grille 4 colonnes de nos-prestations */
}

/* ── Flex CTA buttons wrap ── */
@media (max-width: 580px) {
  [style*="display:flex;gap:14px;flex-wrap:wrap"],
  [style*="display:flex;gap:16px;flex-wrap:wrap"] {
    flex-direction: column !important;
    align-items: stretch !important;
  }
  [style*="display:flex;gap:14px;justify-content:center;flex-wrap:wrap"],
  [style*="display:flex;gap:16px;justify-content:center;flex-wrap:wrap"] {
    flex-direction: column !important;
    align-items: center !important;
  }
}

/* ── Tarifs : 3 colonnes → 1 ── */
@media (max-width: 768px) {
  /* Plans grids */
}

/* ── Simulateur padding ── */
@media (max-width: 640px) {
  [style*="padding:44px"] { padding: 24px 18px !important; }
  [style*="border-radius:24px;padding:44px"] { padding: 22px 16px !important; }
}

/* ================================================================
   FRAIS BANCAIRES INTERNATIONAUX — simulateurs (brief du 6/10/2026)
   Logique : js/erdigia-fees.js · étape : inc/simulator-helper.php
   ================================================================ */
.er-zone-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
/* Cartes autonomes : ne dépendent pas du CSS .sim-opt propre à chaque fiche
   (la page /devis/ ne le définit pas). Spécificité renforcée + !important sur
   l'affichage pour ne pas être écrasées par un style de page ou de plugin. */
.er-zone-step .er-zone-grid { display:grid !important; grid-template-columns:repeat(2,1fr); gap:14px; }
.er-zone-step .er-zone-card {
  display:block !important; position:relative; padding:18px 16px !important; min-height:120px; box-sizing:border-box;
  background:rgba(255,255,255,.03) !important; border:1px solid rgba(0,212,255,.1) !important; border-radius:12px !important;
  cursor:pointer; transition:all .25s; user-select:none; text-align:left; margin:0;
}
.er-zone-step .er-zone-card:hover { border-color:rgba(0,212,255,.35) !important; background:rgba(0,212,255,.05) !important; }
.er-zone-step .er-zone-card.active { border-color:rgba(0,212,255,.6) !important; background:rgba(0,212,255,.1) !important; box-shadow:0 0 16px rgba(0,212,255,.2); }
.er-zone-step .er-zone-card.active::after { content:'✓'; position:absolute; top:8px; right:10px; font-size:.7rem; font-weight:700; color:#00d4ff; }
.er-zone-step .er-zone-card .sim-opt-icon  { display:block !important; font-size:1.9rem; margin:0 0 10px; line-height:1; }
.er-zone-step .er-zone-card .sim-opt-label { display:block !important; font-family:var(--f-display); font-size:.74rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:#f4f7fa; margin:0 0 6px; line-height:1.3; }
.er-zone-step .er-zone-card .sim-opt-price { display:block !important; font-size:.74rem; color:rgba(0,212,255,.75); white-space:normal; line-height:1.5; margin:0; }
@media (max-width:640px) { .er-zone-step .er-zone-grid { grid-template-columns:1fr; } }
.er-zone-next {
  padding:13px 32px; background:linear-gradient(135deg,#f79d1e,#ff410d); color:#05070d;
  font-family:var(--f-display); font-size:.76rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase;
  border:none; border-radius:10px; cursor:pointer; box-shadow:0 4px 20px rgba(247,157,30,.4); transition:all .3s;
}
.er-zone-next:hover:not([disabled]) { transform:translateY(-1px); }
.er-zone-next[disabled] { opacity:.4; cursor:not-allowed; box-shadow:none; }

/* Sous le gros chiffre : « dont 35 € de frais bancaires internationaux » */
.er-fee-sub { font-size:.78rem; color:var(--t-muted); margin-top:6px; line-height:1.4; }
.er-fee-sub b { color:var(--cyan); font-weight:700; }

/* Lignes Prestation / Frais / Total dans le détail */
.er-fee-options { padding-bottom:8px; margin-bottom:8px; border-bottom:1px dashed rgba(0,212,255,.15); }
.er-fee-rows { display:grid; gap:4px; text-align:left; }
.er-fee-row { display:flex; justify-content:space-between; gap:10px; padding:4px 8px; border-radius:6px; font-size:.8rem; color:var(--t-muted); line-height:1.4; }
.er-fee-row b { color:#f4f7fa; font-weight:600; white-space:nowrap; }
.er-fee-line { background:rgba(0,212,255,.1); border:1px solid rgba(0,212,255,.3); font-weight:700; color:#f4f7fa; }
.er-fee-line b { color:var(--cyan); }
.er-fee-line-quote { display:flex; flex-direction:column; gap:3px; padding:8px 10px; border-radius:6px; margin-top:6px; text-align:left; }
.er-fee-line-quote b { white-space:normal; font-weight:600; }
.er-fee-total { border-top:1px solid rgba(0,212,255,.2); margin-top:2px; padding-top:7px; color:#f4f7fa; font-weight:700; }
.er-fee-total b { color:#f79d1e; font-size:.9rem; }
.er-fee-maint { margin-top:8px; background:rgba(255,255,255,.03); border:1px dashed rgba(0,212,255,.2); flex-direction:column; align-items:flex-start; gap:2px; }
.er-fee-maint b { white-space:normal; font-weight:600; }
.er-fee-note { margin-top:8px; padding:7px 10px; border-left:2px solid rgba(0,212,255,.35); background:rgba(0,212,255,.04); border-radius:0 6px 6px 0; font-size:.74rem; color:var(--t-muted); line-height:1.55; text-align:left; }
.er-fee-note-local { border-left-color:rgba(116,138,166,.5); background:rgba(255,255,255,.03); }
.er-fee-zone { display:flex; justify-content:space-between; gap:10px; margin:0 0 8px; padding:6px 8px; border-radius:6px; background:rgba(255,255,255,.03); font-size:.78rem; color:var(--t-main); text-align:left; }
.er-fee-zone a { color:var(--cyan); font-weight:600; text-decoration:none; }
.er-fee-zone a:hover { text-decoration:underline; }

/* Changement de palier : message + pulsation unique (~1 s) */
.er-fee-tier-alert { margin-top:8px; padding:9px 11px; border-radius:8px; border:1px solid rgba(247,157,30,.55); background:rgba(247,157,30,.12); color:#f4f7fa; font-size:.78rem; font-weight:700; line-height:1.45; text-align:left; }
.er-fee-tier-alert.pulse { animation:er-fee-pulse 1s ease-out 1; }
@keyframes er-fee-pulse {
  0%   { background:rgba(247,157,30,.45); box-shadow:0 0 0 0 rgba(247,157,30,.5); }
  100% { background:rgba(247,157,30,.12); box-shadow:0 0 0 10px rgba(247,157,30,0); }
}
@media (prefers-reduced-motion: reduce) { .er-fee-tier-alert.pulse { animation:none; } }

@media (max-width:640px) {
  .er-zone-grid { grid-template-columns:1fr; }
  .er-fee-row { font-size:.78rem; }
}