/* CSS modern livré séparément dans la précédente réponse — inclus ici pour complétude */
:root{
  --svp-bg:#f6f7fb; --svp-card:#ffffff; --svp-text:#0b1020; --svp-muted:#6b7280;
  --svp-border:#e8ecf4; --svp-primary:#5b46ff; --svp-primary-2:#7a66ff; --svp-ring:rgba(91,70,255,.35);
  --svp-success:#19c37d; --svp-danger:#ef4444; --svp-shadow:0 10px 30px rgba(13,23,54,.08),0 2px 10px rgba(13,23,54,.05);
  --svp-radius-xl:20px; --svp-radius-lg:14px; --svp-radius:12px; --svp-gap:22px; --svp-input-h:48px;
  --svp-font:system-ui,-apple-system,Segoe UI,Roboto,Inter,"Helvetica Neue",Arial,"Noto Sans","Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol",sans-serif;
}
.svp-wrap{font-family:var(--svp-font); color:var(--svp-text); background:transparent;}
.svp-container{max-width:980px; margin:0 auto; padding:10px;}
.svp-hero{margin:10px 0 20px;}
.svp-badge{display:inline-flex; align-items:center; gap:8px; background:linear-gradient(to right,rgba(122,102,255,.15),rgba(25,195,125,.15));
  color:var(--svp-text); font-weight:700; font-size:13px; border:1px solid var(--svp-border); padding:8px 12px; border-radius:999px; backdrop-filter:saturate(140%) blur(6px);}
.svp-card{background:var(--svp-card); border:1px solid var(--svp-border); border-radius:var(--svp-radius-xl); box-shadow:var(--svp-shadow); overflow:hidden; backdrop-filter:saturate(130%) blur(6px);}
.svp-card-body{ padding:26px; } @media (min-width:1024px){ .svp-card-body{ padding:34px; } }
.svp-grid-3{ display:grid; gap:var(--svp-gap); grid-template-columns:1fr; } .svp-grid-2{ display:grid; gap:var(--svp-gap); grid-template-columns:1fr; }
@media (min-width:720px){ .svp-grid-2{ grid-template-columns:1fr 1fr; } } @media (min-width:960px){ .svp-grid-3{ grid-template-columns:repeat(3,1fr); } }
.svp-field{ margin-bottom:var(--svp-gap); }
.svp-field label{ display:block; margin-bottom:8px; font-weight:650; font-size:14px; letter-spacing:.2px; }
.svp-field input,.svp-field select,.svp-field textarea{ width:100%; min-height:var(--svp-input-h); border:1px solid var(--svp-border); border-radius:var(--svp-radius-lg);
  background:linear-gradient(180deg,rgba(255,255,255,.88),rgba(255,255,255,.82)); color:var(--svp-text); padding:12px 14px; outline:none;
  transition:border-color .15s ease, box-shadow .15s ease, transform .06s ease; box-shadow:0 1px 0 rgba(0,0,0,.02) inset; }
@media (prefers-color-scheme: dark){ .svp-field input,.svp-field select,.svp-field textarea{ background:rgba(255,255,255,.03); } }
.svp-field textarea{ min-height:120px; resize:vertical; }
.svp-field input:focus,.svp-field select:focus,.svp-field textarea:focus{ border-color:var(--svp-primary); box-shadow:0 0 0 4px var(--svp-ring); transform:translateY(-0.5px); }
.svp-field input::placeholder,.svp-field textarea::placeholder{ color:var(--svp-muted); }
.svp-upload input[type=file]{ position:relative; padding:10px 14px; cursor:pointer; height:auto; min-height:unset; background:linear-gradient(180deg,rgba(122,102,255,.08),rgba(122,102,255,.06)); border-style:dashed; border-color:rgba(122,102,255,.35); }
.svp-help{ margin-top:6px; font-size:12px; color:var(--svp-muted); }
.svp-actions{ display:flex; justify-content:flex-end; margin-top:6px; }
.svp-btn{ appearance:none; border:0; cursor:pointer; user-select:none; background:linear-gradient(135deg,var(--svp-primary),var(--svp-primary-2));
  color:#fff; font-weight:800; letter-spacing:.2px; padding:13px 20px; border-radius:999px; box-shadow:0 12px 24px rgba(91,70,255,.25),0 2px 6px rgba(91,70,255,.2);
  transition:transform .08s ease, box-shadow .15s ease, filter .2s ease, opacity .2s ease; }
.svp-btn:hover{ transform:translateY(-1px); filter:saturate(1.05); } .svp-btn:active{ transform:translateY(0); box-shadow:0 6px 14px rgba(91,70,255,.2); }
.svp-btn.is-loading{ opacity:.75; pointer-events:none; } .svp-btn.is-loading:after{ content:""; display:inline-block; width:1em; height:1em; margin-left:10px;
  border-radius:50%; border:2px solid rgba(255,255,255,.5); border-top-color:#fff; animation:svp-spin .8s linear infinite; vertical-align:-2px; }
@keyframes svp-spin{ to{ transform:rotate(360deg); } }
.svp-note{ margin-top:10px; font-size:12.5px; color:var(--svp-muted); }
.svp-ty{ min-height:60vh; display:flex; align-items:center; justify-content:center; padding:20px;
  background:radial-gradient(1000px 300px at 10% -50%, rgba(91,70,255,.12), transparent 40%), radial-gradient(1000px 300px at 90% 120%, rgba(25,195,125,.14), transparent 40%); }
.svp-chip{ display:inline-block; padding:8px 12px; margin-bottom:8px; border-radius:999px; font-weight:700; font-size:12px;
  background:linear-gradient(to right,rgba(122,102,255,.15),rgba(25,195,125,.15)); border:1px solid var(--svp-border); }
.svp-ty .svp-card{ text-align:center; max-width:740px; } .svp-ty h2{ margin:10px 0 6px; font-size:28px; letter-spacing:.2px; } .svp-ty p{ color:var(--svp-muted); }
.svp-form .elementor-widget-container{ margin:0 !important; padding:0 !important; }


/* --- Button polish v2.2.3 --- */
.svp-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  -webkit-appearance:none; appearance:none;
  border:0 !important;
  color:#fff !important;
  text-decoration:none !important;
  line-height:1.1;
}
.svp-btn:focus-visible{
  outline:3px solid var(--svp-ring);
  outline-offset:2px;
}
.svp-btn:disabled,
.svp-btn[disabled]{
  opacity:.55; cursor:not-allowed; filter:grayscale(.2);
  box-shadow:none;
}
/* Ensure inside dark sections the button keeps contrast */
@media (prefers-color-scheme: dark){
  .svp-btn{ box-shadow:0 10px 22px rgba(91,70,255,.35), 0 2px 6px rgba(91,70,255,.25); }
}
/* Prevent theme link color from bleeding */
.svp-actions .svp-btn, .svp-card .svp-btn { color:#fff !important; }


/* v2.2.7 – titre forcé noir */
.svp-container h1,
.svp-container h2,
.svp-container h3{
  color:#111 !important;
  font-weight:800;
  margin:8px 0 16px;
  line-height:1.25;
}


/* v2.2.7.1 — badge contrast */
.svp-hero .svp-badge{
  color:#111 !important;
  background: linear-gradient(to right, rgba(122,102,255,.22), rgba(25,195,125,.22)) !important;
  border:1px solid rgba(0,0,0,.18) !important;
  box-shadow: 0 1px 0 rgba(255,255,255,.35) inset, 0 2px 6px rgba(0,0,0,.06) !important;
  text-shadow:none !important;
}
@media (prefers-color-scheme: dark){
  .svp-hero .svp-badge{
    color:#fff !important;
    border-color: rgba(255,255,255,.22) !important;
    background: linear-gradient(to right, rgba(122,102,255,.28), rgba(25,195,125,.28)) !important;
    box-shadow: 0 1px 0 rgba(255,255,255,.06) inset, 0 2px 10px rgba(0,0,0,.35) !important;
  }
}
