/* ============================================================
   Éthanol CRM — Formulaire  |  Thème Clair forcé
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=DM+Serif+Display&display=swap');

/* ---- Variables ---- */
.ecrm-form-wrap {
    --g1: #16a34a;
    --g2: #15803d;
    --g3: #dcfce7;
    --g4: #f0fdf4;
    --ink: #111827;
    --muted: #6b7280;
    --border: #e5e7eb;
    --bg: #ffffff;
    --bg-soft: #f9fafb;
    --radius: 10px;
    --shadow: 0 1px 4px rgba(0,0,0,.06), 0 4px 16px rgba(0,0,0,.04);

    font-family: 'DM Sans', sans-serif;
    max-width: 680px;
    margin: 0 auto;

    /* Forcer le thème clair quelle que soit la page */
    color-scheme: light;
    color: var(--ink) !important;
    background: transparent;
}

/* Forcer couleurs et typo — override maximum du thème site */
#ecrm-form-wrap p,
#ecrm-form-wrap h1, #ecrm-form-wrap h2, #ecrm-form-wrap h3,
#ecrm-form-wrap h4, #ecrm-form-wrap h5, #ecrm-form-wrap h6,
#ecrm-form-wrap label, #ecrm-form-wrap span, #ecrm-form-wrap strong,
#ecrm-form-wrap li, #ecrm-form-wrap td, #ecrm-form-wrap th,
#ecrm-form-wrap div {
    color: #111827 !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    font-family: 'DM Sans', sans-serif !important;
}


/* Exceptions — couleurs spécifiques préservées */
#ecrm-form-wrap .ecrm-page-header p,
#ecrm-form-wrap .ecrm-step span,
#ecrm-form-wrap .ecrm-type-text span,
#ecrm-form-wrap .ecrm-hint,
#ecrm-form-wrap .ecrm-opt,
#ecrm-form-wrap .ecrm-suffix { color: #6b7280 !important; }

#ecrm-form-wrap .ecrm-step.active span,
#ecrm-form-wrap .ecrm-step.active span * { color: var(--g1) !important; }
#ecrm-form-wrap .ecrm-step.done span,
#ecrm-form-wrap .ecrm-step.done span * { color: var(--g2) !important; }

/* Titres — DM Serif */
#ecrm-form-wrap .ecrm-page-header h3 { font-family: 'DM Serif Display', serif !important; letter-spacing: -.2px !important; }
#ecrm-form-wrap .ecrm-success-box h3 { font-family: 'DM Serif Display', serif !important; }

/* Bouton primaire */
#ecrm-form-wrap .btn-primary,
#ecrm-form-wrap .btn-primary span,
#ecrm-form-wrap .btn-primary strong { color: #ffffff !important; text-transform: none !important; }

/* Labels rouge requis */
#ecrm-form-wrap .ecrm-field label span { color: #ef4444 !important; }

/* Isoler complètement du thème sombre du site */
.ecrm-form-wrap *,
.ecrm-form-wrap *::before,
.ecrm-form-wrap *::after {
    color-scheme: light;
    box-sizing: border-box;
}

/* Reset agressif — neutraliser le thème du site */
.ecrm-form-wrap p,
.ecrm-form-wrap h1, .ecrm-form-wrap h2, .ecrm-form-wrap h3,
.ecrm-form-wrap label, .ecrm-form-wrap span, .ecrm-form-wrap strong,
.ecrm-form-wrap div, .ecrm-form-wrap li, .ecrm-form-wrap a,
.ecrm-form-wrap input, .ecrm-form-wrap textarea, .ecrm-form-wrap button,
.ecrm-form-wrap select {
    text-transform: none !important;
    letter-spacing: normal !important;
    font-family: 'DM Sans', sans-serif !important;
    line-height: normal;
}

/* Exceptions légitimes */
.ecrm-immat-input { text-transform: uppercase !important; letter-spacing: 1.5px !important; }
.ecrm-pro-badge   { text-transform: uppercase !important; letter-spacing: .5px !important; }
.ecrm-section-label { text-transform: uppercase !important; letter-spacing: .8px !important; }
.ecrm-page-header h3 { font-family: 'DM Serif Display', serif !important; letter-spacing: -.2px !important; }
.ecrm-success-box h3 { font-family: 'DM Serif Display', serif !important; }

/* Carte principale — coupe tout héritage du thème */
.ecrm-form-card {
    background: #ffffff !important;
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    padding: 36px 40px;
    box-shadow: 0 2px 8px rgba(0,0,0,.06), 0 16px 48px rgba(0,0,0,.06);
    color: #111827 !important;
    font-family: 'DM Sans', sans-serif !important;
    font-size: 15px !important;
    line-height: 1.6 !important;
    /* Isolation totale */
    isolation: isolate;
    all: revert;
    /* Réappliquer après revert */
    background: #ffffff !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 16px !important;
    padding: 36px 40px !important;
    box-shadow: 0 2px 8px rgba(0,0,0,.06), 0 16px 48px rgba(0,0,0,.06) !important;
    color: #111827 !important;
    font-family: 'DM Sans', sans-serif !important;
    font-size: 15px !important;
    line-height: 1.6 !important;
    box-sizing: border-box !important;
}

@media (max-width: 600px) {
    .ecrm-form-card { padding: 24px 20px; border-radius: 12px; }
}

/* ---- Thème Nettoyage : ambre ---- */
.ecrm-form-nettoyage {
    --g1: #d97706;
    --g2: #b45309;
    --g3: #fef3c7;
    --g4: #fffbeb;
}

/* ---- Progress bar ---- */
.ecrm-progress-bar {
    height: 3px;
    background: var(--border);
    border-radius: 99px;
    margin-bottom: 32px;
    overflow: hidden;
}
.ecrm-progress-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--g1), #22c55e);
    border-radius: 99px;
    transition: width .5s cubic-bezier(.4,0,.2,1);
}

/* ---- Steps ---- */
.ecrm-steps {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    margin-bottom: 36px;
}
.ecrm-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 7px;
}
.ecrm-step-icon {
    width: 42px; height: 42px;
    border-radius: 50%;
    border: 2px solid var(--border);
    background: #ffffff !important;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all .25s;
}
.ecrm-step-icon svg {
    width: 18px; height: 18px;
    stroke: #9ca3af;
    fill: none;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: stroke .25s;
}
.ecrm-step span {
    font-size: 11px;
    font-weight: 600;
    color: #9ca3af !important;
    transition: color .25s;
    white-space: nowrap;
}
.ecrm-step.active .ecrm-step-icon {
    border-color: var(--g1);
    background: var(--g4) !important;
    box-shadow: 0 0 0 4px rgba(22,163,74,.1);
}
.ecrm-step.active .ecrm-step-icon svg { stroke: var(--g1); }
.ecrm-step.active span { color: var(--g1) !important; font-weight: 700; }
.ecrm-step.done .ecrm-step-icon { border-color: var(--g1); background: var(--g1) !important; }
.ecrm-step.done .ecrm-step-icon svg { stroke: #ffffff; }
.ecrm-step.done span { color: var(--g2) !important; }
.ecrm-step-sep {
    width: 56px; height: 2px;
    background: var(--border);
    margin: 0 6px 22px;
    transition: background .3s;
    flex-shrink: 0;
}
.ecrm-step.done + .ecrm-step-sep { background: var(--g1); }

/* ---- Page header ---- */
.ecrm-page-header { margin-bottom: 28px; }
.ecrm-page-header h3 {
    font-family: 'DM Serif Display', serif;
    font-size: 24px;
    font-weight: 400;
    margin: 0 0 6px;
    color: #111827 !important;
    letter-spacing: -.2px;
}
.ecrm-page-header p {
    font-size: 14px;
    color: #6b7280 !important;
    margin: 0;
}

/* ---- Type cards ---- */
.ecrm-type-cards { display: flex; flex-direction: column; gap: 10px; margin-bottom: 28px; }
.ecrm-type-card input[type="radio"] { display: none; }
.ecrm-type-card-inner {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px 18px;
    border: 1.5px solid var(--border);
    border-radius: var(--radius);
    background: #ffffff !important;
    cursor: pointer;
    transition: border-color .2s, background .2s, box-shadow .2s;
}
.ecrm-type-card-inner:hover {
    border-color: #86efac;
    box-shadow: 0 2px 12px rgba(22,163,74,.08);
}
.ecrm-type-card input:checked + .ecrm-type-card-inner {
    border-color: var(--g1);
    background: var(--g4) !important;
    box-shadow: 0 0 0 3px rgba(22,163,74,.1);
}

/* Bouton radio visible */
.ecrm-type-radio {
    width: 20px; height: 20px;
    border-radius: 50%;
    border: 2px solid #d1d5db;
    background: #fff;
    flex-shrink: 0;
    transition: all .2s;
    position: relative;
}
.ecrm-type-radio::after {
    content: '';
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%,-50%) scale(0);
    width: 9px; height: 9px;
    border-radius: 50%;
    background: var(--g1);
    transition: transform .2s;
}
.ecrm-type-card input:checked + .ecrm-type-card-inner .ecrm-type-radio {
    border-color: var(--g1);
}
.ecrm-type-card input:checked + .ecrm-type-card-inner .ecrm-type-radio::after {
    transform: translate(-50%,-50%) scale(1);
}

/* Option "Conseiller moi" — style discret en bas */
.ecrm-type-card-conseil .ecrm-type-card-inner {
    border-style: dashed;
    background: #fafafa !important;
}
.ecrm-type-card-conseil .ecrm-type-card-inner:hover {
    border-color: #a78bfa;
    border-style: solid;
    box-shadow: 0 2px 12px rgba(124,58,237,.08);
}
.ecrm-type-card-conseil input:checked + .ecrm-type-card-inner {
    border-color: #7c3aed !important;
    border-style: solid;
    background: #f5f3ff !important;
    box-shadow: 0 0 0 3px rgba(124,58,237,.1) !important;
}
.ecrm-type-card-conseil input:checked + .ecrm-type-card-inner .ecrm-type-radio {
    border-color: #7c3aed;
}
.ecrm-type-card-conseil input:checked + .ecrm-type-card-inner .ecrm-type-radio::after {
    background: #7c3aed;
    transform: translate(-50%,-50%) scale(1);
}
.ecrm-type-icon {
    width: 44px; height: 44px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.ecrm-type-icon svg {
    width: 22px; height: 22px;
    fill: none; stroke-width: 1.8;
    stroke-linecap: round; stroke-linejoin: round;
}
.ecrm-icon-green { background: var(--g3); }
.ecrm-icon-green svg { stroke: var(--g1); }
.ecrm-icon-teal  { background: #ccfbf1; }
.ecrm-icon-teal  svg { stroke: #0d9488; }
.ecrm-icon-amber { background: #fef3c7; }
.ecrm-icon-amber svg { stroke: #d97706; }
.ecrm-icon-purple { background: #f5f3ff; }
.ecrm-icon-purple svg { stroke: #7c3aed; }
.ecrm-type-text { flex: 1; }
.ecrm-type-text strong {
    display: block;
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 2px;
    color: #111827 !important;
}
.ecrm-type-text span {
    font-size: 12.5px;
    color: #6b7280 !important;
    line-height: 1.4;
}
.ecrm-type-check {
    width: 20px; height: 20px;
    border-radius: 50%;
    border: 1.5px solid var(--border);
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    transition: all .2s;
    background: #ffffff !important;
}
.ecrm-type-check svg {
    width: 11px; height: 11px;
    stroke: transparent; stroke-width: 2.5;
    fill: none; stroke-linecap: round; stroke-linejoin: round;
    transition: stroke .2s;
}
.ecrm-type-card input:checked + .ecrm-type-card-inner .ecrm-type-check {
    background: var(--g1) !important;
    border-color: var(--g1);
}
.ecrm-type-card input:checked + .ecrm-type-card-inner .ecrm-type-check svg { stroke: #fff; }

/* ---- Grid ---- */
.ecrm-grid-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin-bottom: 14px;
}

/* ---- Labels ---- */
.ecrm-field { display: flex; flex-direction: column; gap: 5px; margin-bottom: 4px; }
.ecrm-field label {
    font-size: 13px;
    font-weight: 600;
    color: #1f2937 !important;
}
.ecrm-field label span, .ecrm-field label span.ecrm-required { color: #ef4444 !important; margin-left: 2px; }
.ecrm-opt { font-size: 11px; font-weight: 400; color: #9ca3af !important; margin-left: 4px; }

/* ---- Inputs ---- */
.ecrm-input-wrap {
    position: relative;
    display: flex;
    align-items: center;
}
.ecrm-ico {
    position: absolute;
    left: 11px;
    width: 15px; height: 15px;
    stroke: #9ca3af;
    fill: none;
    stroke-width: 1.8;
    stroke-linecap: round; stroke-linejoin: round;
    pointer-events: none;
    transition: stroke .2s;
    flex-shrink: 0;
}
.ecrm-input-wrap input,
.ecrm-field input,
.ecrm-field textarea,
.ecrm-field select {
    width: 100%;
    border: 1.5px solid var(--border) !important;
    border-radius: 8px;
    padding: 10px 12px 10px 34px;
    font-size: 14px;
    font-family: 'DM Sans', sans-serif;
    color: #111827 !important;
    background: #ffffff !important;
    transition: border-color .2s, box-shadow .2s;
    box-sizing: border-box;
    -webkit-appearance: none;
    appearance: none;
}
.ecrm-field textarea { padding: 10px 12px !important; resize: vertical; min-height: 90px; }
.ecrm-field input { padding: 10px 12px !important; }

.ecrm-input-wrap input:focus,
.ecrm-field input:focus,
.ecrm-field textarea:focus,
.ecrm-field select:focus {
    border-color: var(--g1) !important;
    box-shadow: 0 0 0 3px rgba(22,163,74,.1) !important;
    outline: none;
}
.ecrm-input-wrap input:focus-within ~ .ecrm-ico,
.ecrm-input-wrap:focus-within .ecrm-ico { stroke: var(--g1); }
.ecrm-input-wrap input.ecrm-error { border-color: #ef4444 !important; }

/* Placeholder */
.ecrm-form-wrap input::placeholder,
.ecrm-form-wrap textarea::placeholder { color: #d1d5db !important; }

/* Suffix km */
.ecrm-suffix {
    position: absolute; right: 10px;
    font-size: 11px; font-weight: 600;
    color: var(--muted) !important;
    pointer-events: none;
}

/* Immat */
.ecrm-immat-wrap { overflow: hidden; }
.ecrm-immat-flag { position: absolute; left: 9px; font-size: 15px; pointer-events: none; }
.ecrm-immat-input { padding-left: 34px !important; letter-spacing: 1.5px; text-transform: uppercase; font-weight: 600; }

/* ---- RGPD ---- */
.ecrm-rgpd-block {
    margin: 20px 0;
    padding: 14px 16px;
    background: var(--bg-soft) !important;
    border: 1px solid var(--border);
    border-radius: 8px;
}
.ecrm-rgpd-label {
    display: flex; gap: 10px;
    align-items: flex-start;
    font-size: 12.5px;
    color: #374151 !important;
    cursor: pointer; line-height: 1.5;
}
.ecrm-rgpd-label input[type="checkbox"] {
    width: 16px; height: 16px;
    accent-color: var(--g1);
    margin-top: 2px; flex-shrink: 0;
    background: #ffffff !important;
}
.ecrm-rgpd-label a { color: var(--g1) !important; font-weight: 600; text-decoration: none; }

/* ---- Nav ---- */
.ecrm-nav {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 10px;
    margin-top: 28px;
    padding-top: 20px;
    border-top: 1px solid var(--border);
}

/* ---- Boutons ---- */
.btn-primary {
    display: inline-flex; align-items: center; gap: 7px;
    background: var(--g1) !important;
    color: #ffffff !important;
    border: none;
    border-radius: 8px;
    padding: 11px 22px;
    font-size: 14px; font-weight: 600;
    font-family: 'DM Sans', sans-serif;
    cursor: pointer;
    transition: background .2s, transform .1s, box-shadow .2s;
    box-shadow: 0 1px 3px rgba(22,163,74,.3), 0 4px 12px rgba(22,163,74,.2);
}
.btn-primary svg { width: 15px; height: 15px; stroke: #fff; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.btn-primary:hover  { background: var(--g2) !important; transform: translateY(-1px); box-shadow: 0 2px 6px rgba(22,163,74,.3), 0 6px 20px rgba(22,163,74,.2); }
.btn-primary:active { transform: scale(.98); }
.btn-primary:disabled { background: #86efac !important; box-shadow: none; cursor: not-allowed; transform: none; }

.btn-ghost {
    display: inline-flex; align-items: center; gap: 6px;
    background: transparent !important;
    color: var(--muted) !important;
    border: 1.5px solid var(--border);
    border-radius: 8px;
    padding: 10px 18px;
    font-size: 14px; font-weight: 600;
    font-family: 'DM Sans', sans-serif;
    cursor: pointer;
    transition: border-color .2s, color .2s;
}
.btn-ghost svg { width: 15px; height: 15px; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.btn-ghost:hover { border-color: #9ca3af; color: var(--ink) !important; }

/* Submit loader */
.ecrm-spin { animation: ecrm-rotate .8s linear infinite; width: 15px; height: 15px; stroke: #fff; fill: none; stroke-width: 2.5; stroke-linecap: round; }
@keyframes ecrm-rotate { to { transform: rotate(360deg); } }

/* ---- Erreur ---- */
.ecrm-error-box {
    display: flex; align-items: center; gap: 10px;
    background: #fef2f2 !important;
    border: 1.5px solid #fca5a5;
    border-radius: 8px;
    padding: 12px 16px;
    color: #b91c1c !important;
    font-size: 13px;
    margin-top: 16px;
}
.ecrm-error-box svg { width: 17px; height: 17px; stroke: #ef4444; fill: none; stroke-width: 2; stroke-linecap: round; flex-shrink: 0; }

/* ---- Honeypot ---- */
.ecrm-hp { position: absolute; left: -9999px; top: -9999px; width: 1px; height: 1px; overflow: hidden; opacity: 0; pointer-events: none; }

/* ---- Succès ---- */
.ecrm-success-box {
    text-align: center;
    padding: 48px 32px;
    background: var(--g4) !important;
    border: 1.5px solid #86efac;
    border-radius: 14px;
}
.ecrm-success-anim { width: 68px; height: 68px; margin: 0 auto 18px; }
.ecrm-success-anim svg { width: 68px; height: 68px; }
.ecrm-check-circle { stroke: var(--g1); stroke-width: 2; stroke-dasharray: 166; stroke-dashoffset: 166; animation: ecrm-circle .6s ease forwards; }
.ecrm-check-mark   { stroke: var(--g1); stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 48; stroke-dashoffset: 48; animation: ecrm-check .4s .5s ease forwards; }
@keyframes ecrm-circle { to { stroke-dashoffset: 0; } }
@keyframes ecrm-check  { to { stroke-dashoffset: 0; } }
.ecrm-success-box h3 { font-family: 'DM Serif Display', serif; font-size: 22px; font-weight: 400; color: var(--g2) !important; margin: 0 0 10px; }
.ecrm-success-box p  { font-size: 15px; color: #166534 !important; margin: 0 0 6px; }
.ecrm-success-sub    { font-size: 13px; color: var(--muted) !important; }

/* ---- Responsive ---- */
@media (max-width: 520px) {
    .ecrm-grid-2 { grid-template-columns: 1fr; }
    .ecrm-step-sep { width: 28px; }
    .ecrm-step span { font-size: 10px; }
    .ecrm-page-header h3 { font-size: 20px; }
}

/* ============================================================
   Formulaire Pro
   ============================================================ */
.ecrm-form-pro .ecrm-step-sep { width: 36px; }
.ecrm-pro-badge {
    display: inline-flex; align-items: center; gap: 6px;
    background: #111827 !important; color: #fff !important;
    font-size: 11px; font-weight: 700;
    padding: 3px 12px; border-radius: 99px;
    margin-bottom: 10px; letter-spacing: .5px; text-transform: uppercase;
}
.ecrm-section-label {
    font-size: 11px; font-weight: 700;
    text-transform: uppercase; letter-spacing: .8px;
    color: var(--muted) !important;
    margin: 20px 0 12px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--border);
}
.ecrm-hint { font-size: 12px; color: var(--muted) !important; margin-top: 4px; display: block; }

/* Prestations Pro */
.ecrm-prestations-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 8px; }
.ecrm-presta-card input[type="checkbox"] { display: none; }
.ecrm-presta-inner {
    border: 1.5px solid var(--border);
    border-radius: var(--radius);
    padding: 14px;
    cursor: pointer;
    background: #ffffff !important;
    transition: border-color .2s, background .2s;
    display: flex; flex-direction: column; align-items: center; gap: 7px;
    text-align: center;
}
.ecrm-presta-inner svg { width: 26px; height: 26px; stroke: #9ca3af; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; transition: stroke .2s; }
.ecrm-presta-inner strong { font-size: 13px; font-weight: 600; color: var(--ink) !important; }
.ecrm-presta-inner span   { font-size: 11px; color: var(--muted) !important; line-height: 1.3; }
.ecrm-presta-inner:hover  { border-color: #86efac; }
.ecrm-presta-card input:checked + .ecrm-presta-inner { border-color: var(--g1); background: var(--g4) !important; box-shadow: 0 0 0 3px rgba(22,163,74,.1); }
.ecrm-presta-card input:checked + .ecrm-presta-inner svg { stroke: var(--g1); }
@media(max-width:520px){ .ecrm-prestations-cards { grid-template-columns: 1fr; } }

/* ---- Nettoyage : focus ambre ---- */
.ecrm-form-nettoyage .ecrm-input-wrap input:focus,
.ecrm-form-nettoyage .ecrm-field input:focus,
.ecrm-form-nettoyage .ecrm-field textarea:focus {
    border-color: #d97706 !important;
    box-shadow: 0 0 0 3px rgba(217,119,6,.1) !important;
}
.ecrm-form-nettoyage .btn-primary { box-shadow: 0 1px 3px rgba(217,119,6,.3), 0 4px 12px rgba(217,119,6,.2) !important; }
.ecrm-form-nettoyage .btn-primary:hover { box-shadow: 0 2px 6px rgba(217,119,6,.3), 0 6px 20px rgba(217,119,6,.2) !important; }


/* ============================================================
   Overrides ultra-spécifiques — neutraliser Blocksy/Elementor
   ============================================================ */
.ecrm-form-wrap .ecrm-form-card { background: #ffffff !important; }

/* Titres des étapes */
.ecrm-form-wrap .ecrm-page-header h3 { color: #111827 !important; font-size: 22px !important; }
.ecrm-form-wrap .ecrm-page-header > p { color: #6b7280 !important; font-size: 14px !important; }

/* Cards de choix */
.ecrm-form-wrap .ecrm-type-card-inner { background: #ffffff !important; }
.ecrm-form-wrap .ecrm-type-card input:checked + .ecrm-type-card-inner { background: #f0fdf4 !important; }
.ecrm-form-wrap .ecrm-type-text > strong { color: #111827 !important; font-size: 15px !important; font-weight: 600 !important; }
.ecrm-form-wrap .ecrm-type-text > span  { color: #6b7280 !important; font-size: 13px !important; }

/* Champs */
.ecrm-form-wrap .ecrm-field > label { color: #1f2937 !important; font-size: 13px !important; font-weight: 600 !important; }
.ecrm-form-wrap input[type="text"],
.ecrm-form-wrap input[type="email"],
.ecrm-form-wrap input[type="tel"],
.ecrm-form-wrap input[type="number"],
.ecrm-form-wrap textarea,
.ecrm-form-wrap select {
    color: #111827 !important;
    background: #ffffff !important;
    border: 1.5px solid #e5e7eb !important;
    font-size: 14px !important;
}
.ecrm-form-wrap input::placeholder,
.ecrm-form-wrap textarea::placeholder { color: #d1d5db !important; }

/* Steps labels */
.ecrm-form-wrap .ecrm-step:not(.active):not(.done) span { color: #9ca3af !important; }
.ecrm-form-wrap .ecrm-step.active span { color: #16a34a !important; }
.ecrm-form-wrap .ecrm-step.done   span { color: #15803d !important; }

/* Bouton continuer */
.ecrm-form-wrap .btn-primary { color: #ffffff !important; background: #16a34a !important; font-size: 14px !important; font-weight: 600 !important; }
.ecrm-form-wrap .btn-ghost   { color: #6b7280 !important; background: transparent !important; }

/* ── Nouvelles cartes service éthanol (style nettoyage) ── */
.ecrm-service-card { display: block; cursor: pointer; margin-bottom: 10px; }
.ecrm-service-card input[type="radio"] { display: none; }
.ecrm-service-card-inner {
    border: 2px solid #e2e8f0;
    border-radius: 12px;
    padding: 16px 18px;
    background: #fff;
    transition: border-color .2s, box-shadow .2s, background .2s;
}
.ecrm-service-card-inner:hover { border-color: #86efac; box-shadow: 0 2px 12px rgba(22,163,74,.08); }
.ecrm-service-card input:checked + .ecrm-service-card-inner {
    border-color: var(--g1);
    background: linear-gradient(135deg, #f0fdf4, #dcfce7);
    box-shadow: 0 0 0 3px rgba(22,163,74,.12);
}
.ecrm-service-card-top { display: flex; align-items: center; gap: 14px; }
.ecrm-service-emoji { font-size: 26px; line-height: 1; flex-shrink: 0; }
.ecrm-service-info { flex: 1; }
.ecrm-service-info strong { display: block; font-size: 14px; font-weight: 700; color: #111827; margin-bottom: 2px; }
.ecrm-service-info span { font-size: 12.5px; color: #6b7280; }
.ecrm-service-radio {
    width: 20px; height: 20px; border-radius: 50%;
    border: 2px solid #d1d5db; background: #fff; flex-shrink: 0;
    position: relative; transition: border-color .2s;
}
.ecrm-service-radio::after {
    content: ''; position: absolute; top: 50%; left: 50%;
    transform: translate(-50%,-50%) scale(0);
    width: 9px; height: 9px; border-radius: 50%;
    background: var(--g1); transition: transform .2s;
}
.ecrm-service-card input:checked + .ecrm-service-card-inner .ecrm-service-radio { border-color: var(--g1); }
.ecrm-service-card input:checked + .ecrm-service-card-inner .ecrm-service-radio::after { transform: translate(-50%,-50%) scale(1); }
.ecrm-service-benefits {
    display: flex; flex-direction: column; gap: 5px;
    margin-top: 12px; padding-top: 12px;
    border-top: 1px solid rgba(0,0,0,.06);
}
.ecrm-service-benefits span { font-size: 12.5px; color: #374151; }
/* Boîtier — couleur teal */
.ecrm-service-boitier .ecrm-service-card-inner:hover { border-color: #5eead4; }
.ecrm-service-boitier input:checked + .ecrm-service-card-inner {
    border-color: #0d9488;
    background: linear-gradient(135deg, #f0fdfa, #ccfbf1);
    box-shadow: 0 0 0 3px rgba(13,148,136,.12);
}
.ecrm-service-boitier input:checked + .ecrm-service-card-inner .ecrm-service-radio { border-color: #0d9488; }
.ecrm-service-boitier input:checked + .ecrm-service-card-inner .ecrm-service-radio::after { background: #0d9488; transform: translate(-50%,-50%) scale(1); }
/* Conseil — style discret */
.ecrm-service-conseil .ecrm-service-card-inner { border-style: dashed; background: #fafafa; }
.ecrm-service-conseil .ecrm-service-card-inner:hover { border-color: #a78bfa; border-style: solid; }
.ecrm-service-conseil input:checked + .ecrm-service-card-inner {
    border-color: #7c3aed; border-style: solid;
    background: linear-gradient(135deg, #f5f3ff, #ede9fe);
    box-shadow: 0 0 0 3px rgba(124,58,237,.12);
}
.ecrm-service-conseil input:checked + .ecrm-service-card-inner .ecrm-service-radio { border-color: #7c3aed; }
.ecrm-service-conseil input:checked + .ecrm-service-card-inner .ecrm-service-radio::after { background: #7c3aed; transform: translate(-50%,-50%) scale(1); }

/* Bénéfices cachés par défaut, révélés à la sélection */
.ecrm-service-benefits-hidden {
    display: none;
    flex-direction: column;
    gap: 5px;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid rgba(0,0,0,.07);
}
.ecrm-service-card input:checked + .ecrm-service-card-inner .ecrm-service-benefits-hidden {
    display: flex;
}
.ecrm-service-benefits-hidden span { font-size: 12.5px; color: #374151; }

/* Navigation interne — isolation z-index */
.ecrm-form-wrap .ecrm-nav { position: relative; z-index: 1; }
