/* =========================================================================
   FLEXCLOUD — SYSTÈME DE DESIGN (feuille de style partagée)
   Chargée sur tout le front (voir inc/flexcloud-ui.php). Ne redéfinit AUCUN
   élément global (body, a, h1…) pour ne rien casser ailleurs : uniquement des
   variables :root et des classes préfixées .fc-*.
   ========================================================================= */
:root{
  /* Primaire (bleu) — aligné à la vitrine (#2E5BF6) */
  --fc-primary-50:#EEF3FF; --fc-primary-100:#DCE6FF; --fc-primary-200:#BFD1FF;
  --fc-primary-300:#93B0FF; --fc-primary-500:#3B6EF6; --fc-primary-600:#2E5BF6;
  --fc-primary-700:#2348D6; --fc-primary-800:#1E3AB0;
  /* Accent teal — signature vitrine */
  --fc-teal:#12B8B0; --fc-teal-600:#0FB3AC; --fc-teal-bg:#E6FAF8; --fc-teal-bd:#A9EEE9; --fc-teal-fg:#0B4A44;
  /* Dégradés de marque (alignés vitrine) */
  --fc-grad-primary:linear-gradient(180deg,#3B6EF6,#2348D6);
  --fc-grad-brand:linear-gradient(90deg,#3B6EF6,#19D3CB);
  /* Neutres (slate) */
  --fc-50:#F8FAFC; --fc-100:#F1F5F9; --fc-200:#E2E8F0; --fc-300:#CBD5E1;
  --fc-400:#94A3B8; --fc-500:#64748B; --fc-600:#475569; --fc-700:#334155;
  --fc-800:#1E293B; --fc-900:#0F172A;
  /* Sémantiques */
  --fc-success:#059669; --fc-success-bg:#ECFDF5; --fc-success-bd:#A7F3D0; --fc-success-fg:#166534;
  --fc-warning:#D97706; --fc-warning-bg:#FFFBEB; --fc-warning-bd:#FDE68A; --fc-warning-fg:#92400E;
  --fc-danger:#DC2626;  --fc-danger-bg:#FEF2F2;  --fc-danger-bd:#FECACA;  --fc-danger-fg:#991B1B;
  --fc-info:#2E5BF6;    --fc-info-bg:#EEF3FF;    --fc-info-bd:#BFD1FF;     --fc-info-fg:#1E3AB0;
  /* Surfaces */
  --fc-bg:#F5F7FA; --fc-surface:#FFFFFF; --fc-text:#0F172A; --fc-muted:#64748B; --fc-border:#E2E8F0;
  /* Rayons — plus arrondis (image vitrine) */
  --fc-r-sm:10px; --fc-r-md:14px; --fc-r-lg:18px; --fc-r-xl:22px; --fc-r-full:999px;
  /* Ombres */
  --fc-shadow-xs:0 1px 2px rgba(15,23,42,.05);
  --fc-shadow-sm:0 1px 3px rgba(15,23,42,.08),0 1px 2px rgba(15,23,42,.05);
  --fc-shadow-md:0 4px 14px rgba(15,23,42,.08);
  --fc-shadow-lg:0 12px 36px rgba(15,23,42,.12);
  /* Focus / typo / transition */
  --fc-ring:0 0 0 3px rgba(46,91,246,.20);
  --fc-font:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --fc-transition:.16s cubic-bezier(.4,0,.2,1);
}

/* ---- Conteneur applicatif (à mettre sur le wrapper d'un écran) ---- */
.fc-ui{font-family:var(--fc-font);color:var(--fc-text);-webkit-font-smoothing:antialiased;}
.fc-ui *{box-sizing:border-box;}

/* ---- Icônes ---- */
.fc-icon{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2;
  stroke-linecap:round;stroke-linejoin:round;vertical-align:middle;flex-shrink:0;}
.fc-icon--sm{width:16px;height:16px;}
.fc-icon--lg{width:24px;height:24px;}

/* ---- Boutons ---- */
.fc-btn{--_bg:var(--fc-grad-primary);--_fg:#fff;--_bd:transparent;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:10px 18px;border-radius:var(--fc-r-sm);border:1px solid var(--_bd);
  background:var(--_bg);color:var(--_fg);font:inherit;font-size:14px;font-weight:600;
  cursor:pointer;transition:var(--fc-transition);white-space:nowrap;box-shadow:0 6px 18px rgba(46,91,246,.22);
  text-decoration:none;line-height:1.2;}
.fc-btn:hover{filter:brightness(.96);transform:translateY(-1px);box-shadow:var(--fc-shadow-sm);}
.fc-btn:active{transform:translateY(0);filter:brightness(.92);}
.fc-btn:focus-visible{outline:none;box-shadow:var(--fc-ring);}
.fc-btn .fc-icon{width:16px;height:16px;}
.fc-btn--secondary{--_bg:var(--fc-surface);--_fg:var(--fc-700);--_bd:var(--fc-300);box-shadow:var(--fc-shadow-xs);}
.fc-btn--ghost{--_bg:transparent;--_fg:var(--fc-600);--_bd:transparent;box-shadow:none;}
.fc-btn--ghost:hover{--_bg:var(--fc-100);}
.fc-btn--danger{--_bg:var(--fc-danger);--_fg:#fff;box-shadow:0 6px 18px rgba(220,38,38,.20);}
.fc-btn--sm{padding:6px 12px;font-size:13px;}
.fc-btn--lg{padding:13px 24px;font-size:15px;}
.fc-btn--block{width:100%;}
.fc-btn:disabled,.fc-btn[disabled]{opacity:.55;cursor:not-allowed;transform:none;filter:none;box-shadow:none;}
.fc-spin{width:15px;height:15px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;
  border-radius:50%;animation:fc-spin .7s linear infinite;}
@keyframes fc-spin{to{transform:rotate(360deg)}}

/* ---- Champs ---- */
.fc-field{margin-bottom:16px;}
.fc-label{display:block;font-size:12.5px;font-weight:600;color:var(--fc-700);margin-bottom:6px;}
.fc-input,.fc-select,.fc-textarea{width:100%;padding:10px 13px;border:1px solid var(--fc-300);
  border-radius:var(--fc-r-sm);font:inherit;font-size:14px;background:var(--fc-surface);
  color:var(--fc-900);transition:var(--fc-transition);}
.fc-input::placeholder,.fc-textarea::placeholder{color:var(--fc-400);}
.fc-input:hover,.fc-select:hover,.fc-textarea:hover{border-color:var(--fc-400);}
.fc-input:focus,.fc-select:focus,.fc-textarea:focus{outline:none;border-color:var(--fc-primary-600);box-shadow:var(--fc-ring);}
.fc-input--invalid{border-color:var(--fc-danger)!important;}
.fc-input--invalid:focus{box-shadow:0 0 0 3px rgba(220,38,38,.15);}
.fc-hint{font-size:12px;color:var(--fc-muted);margin-top:5px;}
.fc-hint--error{color:var(--fc-danger);}

/* ---- Cartes ---- */
.fc-card{background:var(--fc-surface);border:1px solid var(--fc-border);border-radius:var(--fc-r-md);
  box-shadow:var(--fc-shadow-sm);padding:20px;transition:var(--fc-transition);}
.fc-card--hover:hover{box-shadow:var(--fc-shadow-md);transform:translateY(-2px);}
.fc-card__title{font-size:15px;font-weight:700;color:var(--fc-900);margin:0 0 4px;}
.fc-card__sub{font-size:13px;color:var(--fc-muted);margin:0;}

/* ---- Badges ---- */
.fc-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:var(--fc-r-full);
  font-size:12px;font-weight:600;line-height:1.4;border:1px solid transparent;}
.fc-badge .fc-icon{width:12px;height:12px;}
.fc-badge--success{background:var(--fc-success-bg);color:var(--fc-success-fg);border-color:var(--fc-success-bd);}
.fc-badge--warning{background:var(--fc-warning-bg);color:var(--fc-warning-fg);border-color:var(--fc-warning-bd);}
.fc-badge--danger{background:var(--fc-danger-bg);color:var(--fc-danger-fg);border-color:var(--fc-danger-bd);}
.fc-badge--info{background:var(--fc-info-bg);color:var(--fc-info-fg);border-color:var(--fc-info-bd);}
.fc-badge--neutral{background:var(--fc-100);color:var(--fc-600);border-color:var(--fc-200);}

/* ---- Alertes (riches, avec icône) ---- */
.fc-alert{display:flex;gap:12px;padding:13px 16px;border-radius:var(--fc-r-sm);border:1px solid;
  font-size:13.5px;align-items:flex-start;line-height:1.5;}
.fc-alert .fc-icon{width:18px;height:18px;flex-shrink:0;margin-top:1px;}
.fc-alert strong{font-weight:700;}
.fc-alert--success{background:var(--fc-success-bg);border-color:var(--fc-success-bd);color:var(--fc-success-fg);}
.fc-alert--warning{background:var(--fc-warning-bg);border-color:var(--fc-warning-bd);color:var(--fc-warning-fg);}
.fc-alert--danger{background:var(--fc-danger-bg);border-color:var(--fc-danger-bd);color:var(--fc-danger-fg);}
.fc-alert--info{background:var(--fc-info-bg);border-color:var(--fc-info-bd);color:var(--fc-info-fg);}

/* ---- Message simple (compat + léger) ---- */
.fc-msg{padding:10px 14px;border-radius:var(--fc-r-sm);font-size:13px;border-left:3px solid;}
.fc-msg-ok{background:var(--fc-success-bg);border-color:var(--fc-success);color:var(--fc-success-fg);}
.fc-msg-err{background:var(--fc-danger-bg);border-color:var(--fc-danger);color:var(--fc-danger-fg);}
.fc-msg-info{background:var(--fc-info-bg);border-color:var(--fc-info);color:var(--fc-info-fg);}

/* ---- Tableau ---- */
.fc-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px;}
.fc-table th{text-align:left;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  color:var(--fc-500);padding:0 14px 10px;border-bottom:1px solid var(--fc-200);}
.fc-table td{padding:13px 14px;border-bottom:1px solid var(--fc-100);color:var(--fc-700);}
.fc-table tbody tr{transition:var(--fc-transition);}
.fc-table tbody tr:hover{background:var(--fc-50);}
.fc-table tbody tr:last-child td{border-bottom:none;}

/* ---- Choix (chips sélectionnables) ---- */
.fc-choice{display:flex;align-items:center;gap:9px;padding:10px 12px;border:1.5px solid var(--fc-200);
  border-radius:var(--fc-r-md);background:var(--fc-50);cursor:pointer;transition:var(--fc-transition);
  text-align:left;font:inherit;width:100%;color:var(--fc-700);}
.fc-choice:hover{border-color:var(--fc-300);background:var(--fc-surface);}
.fc-choice .fc-icon{width:18px;height:18px;color:var(--fc-500);flex-shrink:0;}
.fc-choice .fc-choice__label{font-size:12.5px;font-weight:600;line-height:1.25;}
.fc-choice.on{border-color:var(--fc-primary-600);background:var(--fc-primary-50);color:var(--fc-primary-700);box-shadow:var(--fc-ring);}
.fc-choice.on .fc-icon{color:var(--fc-primary-600);}

/* ---- États : chargement & vide ---- */
.fc-empty{text-align:center;padding:40px 20px;color:var(--fc-muted);}
.fc-empty .fc-icon{width:40px;height:40px;color:var(--fc-300);margin-bottom:12px;}
.fc-empty__title{font-weight:600;color:var(--fc-700);margin-bottom:4px;}
.fc-skel{height:14px;border-radius:6px;background:linear-gradient(90deg,var(--fc-100) 25%,var(--fc-200) 37%,var(--fc-100) 63%);
  background-size:400% 100%;animation:fc-shimmer 1.4s ease infinite;}
@keyframes fc-shimmer{0%{background-position:100% 0}100%{background-position:-100% 0}}

/* ---- Utilitaires légers ---- */
.fc-stack{display:flex;flex-direction:column;}
.fc-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px;}
.fc-spinner{width:40px;height:40px;border:3px solid var(--fc-200);border-top-color:var(--fc-primary-600);
  border-radius:50%;animation:fc-spin .8s linear infinite;}

/* =========================================================================
   MODE SOMBRE — tokens surchargés
   Deux déclencheurs :
     • automatique : suit le réglage de l'appareil (prefers-color-scheme),
       SAUF si l'utilisateur a explicitement forcé le clair ([data-theme="light"]) ;
     • manuel : [data-theme="dark"] posé par le bouton bascule (voir flexcloud-ui.php).
   L'échelle de neutres est INVERSÉE (--fc-900 = quasi blanc, --fc-50 = quasi noir),
   si bien que tous les écrans basés sur les tokens passent en sombre sans autre
   modification. Contrastes visés : WCAG AA.
   ========================================================================= */
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --fc-primary-50:#16233B; --fc-primary-100:#1B2C49; --fc-primary-200:#223A63;
    --fc-primary-300:#2E4F86; --fc-primary-500:#3B82F6; --fc-primary-600:#2563EB;
    --fc-primary-700:#93C5FD; --fc-primary-800:#BFDBFE;
    --fc-50:#0F1626; --fc-100:#161F30; --fc-200:#263143; --fc-300:#38455B;
    --fc-400:#8A97A8; --fc-500:#9CA8B8; --fc-600:#B4BECC; --fc-700:#CBD2DD;
    --fc-800:#E1E6EE; --fc-900:#F3F6FA;
    --fc-success:#34D399; --fc-success-bg:#0E2A20; --fc-success-bd:#1B5E43; --fc-success-fg:#6EE7B7;
    --fc-warning:#FBBF24; --fc-warning-bg:#2A2110; --fc-warning-bd:#5C4611; --fc-warning-fg:#FCD34D;
    --fc-danger:#F87171;  --fc-danger-bg:#2A1416;  --fc-danger-bd:#5E2626;  --fc-danger-fg:#FCA5A5;
    --fc-info:#60A5FA;    --fc-info-bg:#152238;    --fc-info-bd:#274268;     --fc-info-fg:#93C5FD;
    --fc-bg:#0B111E; --fc-surface:#151D2E; --fc-text:#F1F4F9; --fc-muted:#9AA6B6; --fc-border:#273348;
    --fc-shadow-xs:0 1px 2px rgba(0,0,0,.4);
    --fc-shadow-sm:0 1px 3px rgba(0,0,0,.5),0 1px 2px rgba(0,0,0,.4);
    --fc-shadow-md:0 4px 14px rgba(0,0,0,.5);
    --fc-shadow-lg:0 12px 36px rgba(0,0,0,.6);
    --fc-ring:0 0 0 3px rgba(96,165,250,.5);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --fc-primary-50:#16233B; --fc-primary-100:#1B2C49; --fc-primary-200:#223A63;
  --fc-primary-300:#2E4F86; --fc-primary-500:#3B82F6; --fc-primary-600:#2563EB;
  --fc-primary-700:#93C5FD; --fc-primary-800:#BFDBFE;
  --fc-50:#0F1626; --fc-100:#161F30; --fc-200:#263143; --fc-300:#38455B;
  --fc-400:#8A97A8; --fc-500:#9CA8B8; --fc-600:#B4BECC; --fc-700:#CBD2DD;
  --fc-800:#E1E6EE; --fc-900:#F3F6FA;
  --fc-success:#34D399; --fc-success-bg:#0E2A20; --fc-success-bd:#1B5E43; --fc-success-fg:#6EE7B7;
  --fc-warning:#FBBF24; --fc-warning-bg:#2A2110; --fc-warning-bd:#5C4611; --fc-warning-fg:#FCD34D;
  --fc-danger:#F87171;  --fc-danger-bg:#2A1416;  --fc-danger-bd:#5E2626;  --fc-danger-fg:#FCA5A5;
  --fc-info:#60A5FA;    --fc-info-bg:#152238;    --fc-info-bd:#274268;     --fc-info-fg:#93C5FD;
  --fc-bg:#0B111E; --fc-surface:#151D2E; --fc-text:#F1F4F9; --fc-muted:#9AA6B6; --fc-border:#273348;
  --fc-shadow-xs:0 1px 2px rgba(0,0,0,.4);
  --fc-shadow-sm:0 1px 3px rgba(0,0,0,.5),0 1px 2px rgba(0,0,0,.4);
  --fc-shadow-md:0 4px 14px rgba(0,0,0,.5);
  --fc-shadow-lg:0 12px 36px rgba(0,0,0,.6);
  --fc-ring:0 0 0 3px rgba(96,165,250,.5);
  color-scheme:dark;
}

/* =========================================================================
   ACCESSIBILITÉ (bénéficie à tous les écrans basés sur les tokens)
   ========================================================================= */
/* Focus clavier toujours visible et net, sur tous les éléments interactifs. */
.fc-ui a:focus-visible, .fc-ui button:focus-visible, .fc-ui input:focus-visible,
.fc-ui select:focus-visible, .fc-ui textarea:focus-visible, .fc-ui [tabindex]:focus-visible,
.fc-ui .fc-choice:focus-visible{
  outline:2px solid var(--fc-primary-600); outline-offset:2px; border-radius:var(--fc-r-sm);
}
/* Respect du réglage « réduire les animations » (personnes sensibles au mouvement). */
@media (prefers-reduced-motion: reduce){
  .fc-ui *, .fc-ui *::before, .fc-ui *::after{
    animation-duration:.001ms !important; animation-iteration-count:1 !important;
    transition-duration:.001ms !important; scroll-behavior:auto !important;
  }
  .fc-btn:hover,.fc-card--hover:hover{transform:none !important;}
}
/* Respect du réglage « contraste élevé ». */
@media (prefers-contrast: more){
  :root{ --fc-border:#64748B; --fc-muted:#475569; }
  :root[data-theme="dark"], :root:not([data-theme="light"]){ --fc-border:#8A97A8; --fc-muted:#C7CEDA; }
  .fc-btn{ border-width:2px; }
  .fc-input,.fc-select,.fc-textarea{ border-width:2px; }
}

/* ---- Bouton bascule de thème (clair / sombre / système) ---- */
.fc-theme-toggle{display:inline-flex;align-items:center;gap:2px;padding:3px;border-radius:var(--fc-r-full);
  background:var(--fc-100);border:1px solid var(--fc-border);}
.fc-theme-toggle button{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;
  border:none;background:transparent;color:var(--fc-500);border-radius:var(--fc-r-full);cursor:pointer;
  transition:var(--fc-transition);}
.fc-theme-toggle button:hover{color:var(--fc-700);}
.fc-theme-toggle button[aria-pressed="true"]{background:var(--fc-surface);color:var(--fc-primary-600);
  box-shadow:var(--fc-shadow-xs);}
.fc-theme-toggle button:focus-visible{outline:2px solid var(--fc-primary-600);outline-offset:2px;}
.fc-theme-toggle .fc-icon{width:16px;height:16px;}

/* ---- Logo adaptatif : version claire (blanche) automatiquement en mode sombre ---- */
.fc-logo-dark{display:none;}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .fc-logo-light{display:none;}
  :root:not([data-theme="light"]) .fc-logo-dark{display:inline-block;}
}
:root[data-theme="dark"] .fc-logo-light{display:none;}
:root[data-theme="dark"] .fc-logo-dark{display:inline-block;}

/* ═══════════════════════════════════════════════════════════════
   TUNNEL — mise en page commune (souscription + essai gratuit)
   Colonne formulaire + colonne latérale « réassurance », en-tête à
   progression + stepper, panneaux d'étape. Source unique, partagée.
   ═══════════════════════════════════════════════════════════════ */
.fc-order-layout {
  max-width:900px;margin:24px auto;padding:0 16px;
  display:flex;align-items:flex-start;gap:24px;
  font-family:'Roboto Flex',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}
.flexcloud-form-wrapper {
  --fc-accent:var(--fc-primary-600);--fc-accent-dark:var(--fc-primary-700);--fc-accent-soft:var(--fc-primary-50);--fc-accent-ring:rgba(37,99,235,.15);
  --fc-ink:var(--fc-900);--fc-ink-soft:var(--fc-500);--fc-ink-faint:var(--fc-400);
  --fc-bg-soft:var(--fc-50);--fc-error:var(--fc-danger);
  --fc-radius:16px;--fc-radius-sm:10px;
  --fc-shadow:0 1px 3px rgba(15,23,42,.04),0 12px 32px rgba(15,23,42,.07);
  max-width:600px;margin:0;flex:1 1 600px;min-width:0;background:var(--fc-surface);
  border-radius:16px;box-shadow:0 1px 3px rgba(15,23,42,.08),0 12px 32px rgba(15,23,42,.10);border:1px solid var(--fc-200);
  font-family:'Roboto Flex',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  color:var(--fc-900);overflow:hidden;
}
/* Colonne latérale réassurance */
.fc-trust-sidebar { flex:0 0 260px; position:sticky; top:24px; }
.fc-tsb-card { background:var(--fc-50); border:1px solid var(--fc-200); border-radius:14px; padding:22px 20px; }
.fc-tsb-title { font-size:14px; font-weight:700; color:var(--fc-900); margin:0 0 18px; }
.fc-tsb-step { display:flex; gap:12px; margin-bottom:18px; }
.fc-tsb-step-num { flex-shrink:0; width:24px; height:24px; border-radius:50%; background:var(--fc-primary-600); color:#fff; font-size:12px; font-weight:700; display:flex; align-items:center; justify-content:center; }
.fc-tsb-step-title { font-size:13px; font-weight:600; color:var(--fc-900); margin:0 0 3px; }
.fc-tsb-step-text { font-size:12px; color:var(--fc-500); line-height:1.5; margin:0; }
.fc-tsb-divider { border-top:1px solid var(--fc-200); margin:16px 0; }
.fc-tsb-reassure { display:flex; align-items:flex-start; gap:8px; font-size:12px; color:var(--fc-500); line-height:1.5; margin-bottom:10px; }
.fc-tsb-reassure svg { flex-shrink:0; margin-top:1px; }
@media (max-width:760px) {
  .fc-order-layout { flex-direction:column; margin:0; padding:0; }
  .flexcloud-form-wrapper { border-radius:0; border-left:none; border-right:none; flex:1 1 auto; width:100%; max-width:none; }
  .fc-trust-sidebar { flex-basis:auto; width:100%; position:static; order:2; }
  .fc-tsb-card { border-radius:0; border-left:none; border-right:none; }
}
/* Barre de progression (en-tête dégradé) */
.fc-progress-wrap { padding:16px 28px 0 !important; background:linear-gradient(135deg,var(--fc-primary-800),var(--fc-primary-600)) !important; border-radius:14px 14px 0 0 !important; margin:-1px -1px 0 -1px !important; }
.fc-progress-header { display:flex !important;align-items:center !important;justify-content:space-between !important;margin-bottom:12px !important; }
.fc-progress-title { font-size:13px !important;font-weight:600 !important;color:rgba(255,255,255,.9) !important; }
.fc-progress-pct { font-size:12px !important;font-weight:700 !important;color:rgba(255,255,255,.7) !important; }
.fc-progress-bar-bg { height:4px !important;background:rgba(255,255,255,.2) !important;border-radius:4px !important;overflow:hidden !important;margin-bottom:16px !important; }
.fc-progress-bar-fill { height:100% !important;background:linear-gradient(90deg,#19D3CB,#6D9BFF) !important;border-radius:4px !important;transition:width .4s ease !important;width:0% !important; }
/* Stepper */
.fc-stepper{display:flex;align-items:center;padding:20px 28px 0;}
.fc-progress-wrap .fc-stepper{padding:0;}
.fc-step{display:flex;align-items:center;flex:1;}
.fc-step:last-child{flex:none;}
.fc-step-dot{width:28px;height:28px;border-radius:50%;border:2px solid var(--fc-300);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--fc-400);background:var(--fc-surface);flex-shrink:0;transition:all .2s;}
.fc-step.active .fc-step-dot{border-color:var(--fc-primary-600);background:var(--fc-primary-600);color:#fff;}
.fc-step.done .fc-step-dot{border-color:var(--fc-success);background:var(--fc-success);color:#fff;}
.fc-step-label{font-size:11px;font-weight:600;color:var(--fc-400);margin-left:8px;white-space:nowrap;transition:color .2s;}
.fc-step.active .fc-step-label{color:var(--fc-primary-600);}
.fc-step.done .fc-step-label{color:var(--fc-success);}
.fc-step-line{flex:1;height:2px;background:var(--fc-300);margin:0 10px;transition:background .2s;}
.fc-step.done + .fc-step > .fc-step-line,.fc-step.done .fc-step-line{background:var(--fc-success);}
/* Corps / panneaux d'étape */
.fc-step-panel{display:none;padding:24px 28px 28px;animation:fcFadeIn .2s ease;}
.fc-step-panel.on{display:block;}
@keyframes fcFadeIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}
.fc-step-title{font-size:17px;font-weight:700;margin:0 0 6px;letter-spacing:-.01em;color:var(--fc-900);}
.fc-step-subtitle{font-size:13px;color:var(--fc-500);margin:0 0 20px;line-height:1.5;}
/* Récapitulatif latéral */
.fc-recap-card{background:var(--fc-50);border:1px solid var(--fc-300);border-radius:9px;overflow:hidden;}
.fc-recap-header{background:var(--fc-primary-600);color:#fff;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;}
.fc-recap-header h3{margin:0;font-size:15px;font-weight:700;}
.fc-recap-header .price{font-size:18px;font-weight:800;}
.fc-recap-row{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;border-bottom:1px solid var(--fc-300);font-size:13px;}
.fc-recap-row:last-child{border-bottom:none;}
.fc-recap-row .lbl{color:var(--fc-500);}
.fc-recap-row .val{font-weight:600;}
@media(max-width:600px){
  .fc-order-layout .flexcloud-form-wrapper{margin:0;border-radius:0;}
  .fc-order-layout .fc-stepper{overflow-x:auto;}
  .fc-order-layout .fc-step-panel{padding:16px 16px 20px;}
}
