/* ============================================================
   SW MOTORS — Page Reprise (look Spoticar-inspired)
   Scoped sous .swm-reprise pour éviter conflits Motors
   ============================================================ */

.swm-reprise {
  --swm-red: #e30613;
  --swm-red-dark: #b8050f;
  --swm-ink: #0e0e10;
  --swm-anthracite: #1a1a1d;
  --swm-line: #e6e6e9;
  --swm-cream: #f6f5f1;
  --swm-muted: #7c7c83;
  --swm-display: 'Bebas Neue', 'Arial Narrow', sans-serif;
  --swm-body: 'Manrope', -apple-system, system-ui, sans-serif;

  font-family: var(--swm-body);
  color: var(--swm-ink);
  font-size: clamp(15px, 0.95vw + 13px, 17px);
  line-height: 1.55;
}

.swm-reprise > section {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

/* SVG/img sizing globaux — sinon icônes inline rendent à taille intrinsèque énorme */
.swm-reprise *,
.swm-reprise *::before,
.swm-reprise *::after { box-sizing: border-box; }
.swm-reprise img,
.swm-reprise svg {
  display: block;
  max-width: 100%;
  height: auto;
}

.swm-wrap-r {
  max-width: 980px;
  margin: 0 auto;
  padding: 0 24px;
}

/* ====== HERO ====== */
.swm-r-hero {
  background: var(--swm-ink);
  color: #fff;
  padding: clamp(50px, 7vw, 90px) 0 clamp(30px, 4vw, 50px);
  position: relative;
  overflow: hidden;
}
.swm-r-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: repeating-linear-gradient(115deg, transparent 0, transparent 80px, rgba(227,6,19,0.06) 80px, rgba(227,6,19,0.06) 82px);
  z-index: -1;
}
.swm-r-hero h1 {
  font-family: 'Bebas Neue', 'Arial Narrow', sans-serif !important;
  font-size: clamp(40px, 6vw, 80px) !important;
  line-height: 0.95 !important;
  margin: 0 0 16px;
  text-transform: uppercase;
  color: #fff !important;
}
.swm-r-hero h1 em { color: #e30613 !important; font-style: normal; }
.swm-r-hero p.lead {
  font-size: clamp(17px, 1.6vw, 22px);
  color: rgba(255,255,255,0.85);
  margin: 0 0 32px;
  max-width: 60ch;
}

/* Trust badges row */
.swm-r-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 20px 36px;
  margin-top: 10px;
}
.swm-r-badge {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  color: rgba(255,255,255,0.9);
}
.swm-r-badge svg { width: 22px; height: 22px; color: var(--swm-red); flex-shrink: 0; }
.swm-r-badge strong { font-weight: 700; color: #fff; }

/* ====== STEPPER ====== */
.swm-r-stepper-wrap {
  background: var(--swm-cream);
  padding: clamp(28px, 4vw, 44px) 0;
  border-bottom: 1px solid var(--swm-line);
}
.swm-r-stepper {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  position: relative;
}
.swm-r-stepper::before {
  content: '';
  position: absolute;
  top: 22px;
  left: 12%;
  right: 12%;
  height: 2px;
  background: var(--swm-line);
  z-index: 0;
}
.swm-r-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  position: relative;
  z-index: 1;
}
.swm-r-step__num {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid var(--swm-line);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--swm-display);
  font-size: 22px;
  margin-bottom: 12px;
  color: var(--swm-muted);
  transition: all .25s ease;
}
.swm-r-step--active .swm-r-step__num {
  background: var(--swm-red);
  border-color: var(--swm-red);
  color: #fff;
  box-shadow: 0 0 0 5px rgba(227,6,19,0.15);
}
.swm-r-step__label {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--swm-muted);
}
.swm-r-step--active .swm-r-step__label { color: var(--swm-ink); }

/* ====== BANNER promise ====== */
.swm-r-promise {
  background: linear-gradient(135deg, var(--swm-ink) 0%, var(--swm-anthracite) 100%);
  color: #fff;
  padding: 18px 28px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  gap: 22px;
  margin: 28px 0 36px;
  box-shadow: 0 20px 50px -25px rgba(0,0,0,0.4);
}
.swm-r-promise__icon {
  width: 52px; height: 52px;
  border-radius: 50%;
  background: var(--swm-red);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.swm-r-promise__icon svg { width: 26px; height: 26px; color: #fff; }
.swm-r-promise__text { flex: 1; }
.swm-r-promise__top { font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255,255,255,0.65); }
.swm-r-promise__big {
  font-family: var(--swm-display);
  font-size: clamp(22px, 2.3vw, 30px);
  line-height: 1;
  letter-spacing: 0.02em;
  margin-top: 2px;
}

/* ====== FORM SECTION ====== */
.swm-r-form-section {
  background: #fff;
  padding: clamp(40px, 5vw, 70px) 0;
}
.swm-r-form-section__wrap {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 24px;
}

.swm-r-form-section h2 {
  font-family: var(--swm-display);
  font-size: clamp(32px, 4vw, 50px);
  text-transform: uppercase;
  margin: 0 0 8px;
  line-height: 1;
}
.swm-r-form-section .sub {
  color: var(--swm-muted);
  font-size: 15px;
  margin: 0 0 36px;
}

/* Override Fluent Forms styling pour matcher SW Motors — scope GLOBAL (pas seulement .swm-r-form-section)
   car le shortcode form est rendu hors de notre wrapper Gutenberg */
.fluentform { font-family: 'Manrope', -apple-system, system-ui, sans-serif; }

.fluentform .ff-el-group { margin-bottom: 22px; }

.fluentform .ff-el-input--label label {
  font-family: 'Manrope', sans-serif !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #0e0e10 !important;
  margin-bottom: 8px !important;
  display: inline-block !important;
}
.fluentform .ff-el-input--label label .ff-el-is-required.asterisk-right { color: #e30613; }

.fluentform .ff-el-input--content input,
.fluentform .ff-el-input--content select,
.fluentform .ff-el-input--content textarea {
  border: 1.5px solid #e6e6e9 !important;
  border-radius: 8px !important;
  padding: 14px 16px !important;
  font-family: 'Manrope', sans-serif !important;
  font-size: 15px !important;
  line-height: 1.4 !important;
  background: #fff !important;
  color: #0e0e10 !important;
  width: 100%;
  transition: border-color .2s ease, box-shadow .2s ease;
  min-height: 50px;
  opacity: 1 !important;
  visibility: visible !important;
}

/* Fix critique : Fluent Forms met opacity:0 sur les selects pour Choices.js (qui ne s'active pas) */
.fluentform select,
.fluentform .ff-el-input--content select {
  opacity: 1 !important;
}

/* Indicateur dropdown sur select */
.fluentform .ff-el-input--content select {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%230e0e10' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>") !important;
  background-repeat: no-repeat !important;
  background-position: right 14px center !important;
  padding-right: 40px !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  cursor: pointer;
}

.fluentform .ff-el-input--content input:focus,
.fluentform .ff-el-input--content select:focus,
.fluentform .ff-el-input--content textarea:focus {
  border-color: #e30613 !important;
  box-shadow: 0 0 0 4px rgba(227,6,19,0.08) !important;
  outline: 0 !important;
}

/* Section breaks (Fluent Forms) = nos headers d'étape */
.fluentform .ff-t-cell.ff-t-section_break,
.fluentform .ff-section_break {
  background: #f6f5f1 !important;
  padding: 22px 24px !important;
  border-radius: 12px !important;
  border-left: 5px solid #e30613 !important;
  margin: 36px 0 24px !important;
  border-top: 0 !important;
}
.fluentform .ff-section_break h3,
.fluentform .ff-section_break h2,
.fluentform .ff-section_break .ff_sec_title {
  font-family: 'Bebas Neue', 'Arial Narrow', sans-serif !important;
  font-size: 26px !important;
  text-transform: uppercase;
  margin: 0 0 6px !important;
  color: #0e0e10 !important;
  letter-spacing: 0.01em;
  line-height: 1;
}
.fluentform .ff-section_break p,
.fluentform .ff-section_break .ff-sec-description {
  color: #7c7c83 !important;
  font-size: 14px !important;
  margin: 0 !important;
}

/* Submit button — SW Motors big red */
.fluentform .ff-btn-submit,
.fluentform button[type="submit"] {
  background: #e30613 !important;
  border: 2px solid #e30613 !important;
  color: #fff !important;
  font-family: 'Manrope', sans-serif !important;
  font-weight: 700 !important;
  font-size: 16px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  padding: 18px 38px !important;
  border-radius: 8px !important;
  transition: all .25s ease !important;
  cursor: pointer !important;
  display: inline-block !important;
}
.fluentform .ff-btn-submit:hover {
  background: #b8050f !important;
  border-color: #b8050f !important;
  transform: translateY(-2px);
}

/* File upload — drop zone stylée */
.fluentform .ff-uploader-existing-area,
.fluentform .ff-el-input--content [class*="upload"] {
  border: 2px dashed #e6e6e9 !important;
  border-radius: 12px !important;
  padding: 24px !important;
  background: #f6f5f1 !important;
  transition: border-color .2s ease, background .2s ease;
  text-align: center;
}
.fluentform .ff-uploader-existing-area:hover {
  border-color: #e30613 !important;
  background: rgba(227,6,19,0.03) !important;
}
.fluentform .ff-upload-btn,
.fluentform button.ff-upload-btn {
  background: #fff !important;
  border: 1.5px solid #e30613 !important;
  color: #e30613 !important;
  padding: 10px 20px !important;
  border-radius: 8px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
  font-size: 13px !important;
}
.fluentform .ff-upload-btn:hover {
  background: #e30613 !important;
  color: #fff !important;
}

/* Messages d'erreur */
.fluentform .error,
.fluentform .ff-el-form-check-error {
  color: #e30613 !important;
  font-size: 13px;
  margin-top: 4px;
}

/* ====== MULTI-STEP via JS (cf swm-reprise-multistep.js) ====== */
.fluentform[data-swm-step] .ff-step-section {
  display: none;
}
.fluentform[data-swm-step="1"] .ff-step-section[data-step="1"],
.fluentform[data-swm-step="2"] .ff-step-section[data-step="2"],
.fluentform[data-swm-step="3"] .ff-step-section[data-step="3"] {
  display: block;
}
.swm-step-nav {
  display: flex;
  justify-content: space-between;
  margin-top: 28px;
  gap: 14px;
  flex-wrap: wrap;
}
.swm-step-nav button {
  font-family: 'Manrope', sans-serif;
  font-weight: 700;
  font-size: 15px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 16px 28px;
  border-radius: 8px;
  cursor: pointer;
  border: 2px solid transparent;
  transition: all .2s ease;
}
.swm-step-nav__prev {
  background: #fff;
  color: #0e0e10;
  border-color: #e6e6e9;
}
.swm-step-nav__prev:hover { border-color: #0e0e10; }
.swm-step-nav__next {
  background: #e30613;
  color: #fff;
  border-color: #e30613;
  margin-left: auto;
}
.swm-step-nav__next:hover { background: #b8050f; border-color: #b8050f; transform: translateY(-2px); }
.swm-step-progress {
  display: flex;
  gap: 8px;
  margin-bottom: 24px;
}
.swm-step-progress__bar {
  flex: 1;
  height: 4px;
  background: #e6e6e9;
  border-radius: 2px;
  overflow: hidden;
}
.swm-step-progress__bar.active { background: #e30613; }

/* ====== HERO kicker ====== */
.swm-r-hero__kicker {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: var(--swm-body);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.65);
  font-weight: 700;
  margin: 0 0 22px;
}
.swm-r-hero__kicker::before {
  content: '';
  display: block;
  width: 32px;
  height: 2px;
  background: var(--swm-red);
}

/* ====== 5 CARDS RÉASSURANCE ====== */
.swm-r-reassurance {
  background: #fff;
  padding: clamp(40px, 5vw, 60px) 0;
  border-bottom: 1px solid var(--swm-line);
}
.swm-r-reassurance__grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 16px;
}
.swm-r-reassurance__card {
  text-align: center;
  padding: 14px 10px;
}
.swm-r-reassurance__icon {
  width: 56px;
  height: 56px;
  margin: 0 auto 12px;
  border-radius: 50%;
  background: rgba(227,6,19,0.08);
  color: var(--swm-red);
  display: flex;
  align-items: center;
  justify-content: center;
}
.swm-r-reassurance__icon svg { width: 26px; height: 26px; }
.swm-r-reassurance__card h3 {
  font-family: var(--swm-display);
  font-size: 22px;
  text-transform: uppercase;
  margin: 0 0 6px;
  letter-spacing: 0.01em;
}
.swm-r-reassurance__card p {
  font-size: 13px;
  color: var(--swm-muted);
  margin: 0;
  line-height: 1.45;
}

/* ====== COMMENT ÇA MARCHE — 5 étapes ====== */
.swm-r-how {
  background: var(--swm-cream);
  padding: clamp(50px, 7vw, 80px) 0;
}
.swm-r-how h2 {
  font-family: 'Bebas Neue', 'Arial Narrow', sans-serif !important;
  font-size: clamp(32px, 4vw, 50px) !important;
  text-transform: uppercase;
  text-align: center;
  margin: 0 0 40px;
  line-height: 1 !important;
}
.swm-r-how h2 em { color: #e30613 !important; font-style: normal; }
.swm-r-how__list h3 {
  font-family: 'Bebas Neue', sans-serif !important;
  font-size: 22px !important;
}
.swm-r-how__list {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex !important;
  flex-direction: column;
  gap: 18px;
  counter-reset: step;
}
.swm-r-how__list li {
  display: flex !important;
  align-items: start !important;
  gap: 22px !important;
  background: #fff !important;
  padding: 24px 28px !important;
  border-radius: 12px !important;
  border: 1px solid #e6e6e9 !important;
  list-style: none !important;
  transition: transform .25s ease, box-shadow .25s ease;
}
.swm-r-how__list li::marker { content: '' !important; }
.swm-r-how__list li:hover {
  transform: translateX(4px);
  box-shadow: 0 16px 36px -20px rgba(0,0,0,0.2);
}
.swm-r-how__num {
  flex-shrink: 0 !important;
  width: 54px !important;
  height: 54px !important;
  border-radius: 50% !important;
  background: #e30613 !important;
  color: #fff !important;
  font-family: 'Bebas Neue', sans-serif !important;
  font-size: 28px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
}
.swm-r-how__list h3 {
  font-family: 'Bebas Neue', sans-serif !important;
  font-size: 22px !important;
  text-transform: uppercase;
  margin: 4px 0 6px !important;
  color: #0e0e10 !important;
}
.swm-r-how__list p { color: #7c7c83 !important; font-size: 15px !important; margin: 0 !important; }

/* ====== FAQ ====== */
.swm-r-faq {
  background: #fff;
  padding: clamp(50px, 7vw, 80px) 0;
}
.swm-r-faq h2 {
  font-family: 'Bebas Neue', 'Arial Narrow', sans-serif !important;
  font-size: clamp(32px, 4vw, 50px) !important;
  text-transform: uppercase;
  text-align: center;
  margin: 0 0 36px;
}
.swm-r-faq__item {
  border-top: 1px solid var(--swm-line);
  padding: 16px 0;
}
.swm-r-faq__item:last-child { border-bottom: 1px solid var(--swm-line); }
.swm-r-faq__item summary {
  font-family: var(--swm-body);
  font-weight: 700;
  font-size: 17px;
  color: var(--swm-ink);
  cursor: pointer;
  padding: 8px 36px 8px 0;
  position: relative;
  list-style: none;
}
.swm-r-faq__item summary::-webkit-details-marker { display: none; }
.swm-r-faq__item summary::after {
  content: '+';
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  font-family: var(--swm-display);
  font-size: 28px;
  color: var(--swm-red);
  line-height: 1;
  transition: transform .2s ease;
}
.swm-r-faq__item[open] summary::after { content: '−'; }
.swm-r-faq__item p {
  padding: 8px 36px 8px 0;
  margin: 0;
  color: var(--swm-muted);
  line-height: 1.6;
}

/* Sépare reprise mobile */
@media (max-width: 900px) {
  .swm-r-reassurance__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 500px) {
  .swm-r-how__list li { padding: 18px 20px; gap: 16px; }
  .swm-r-how__num { width: 44px; height: 44px; font-size: 22px; }
}

/* ============================================================
   FORMULAIRE CUSTOM (.swm-form) — 100 % natif, sans plugin tiers
   Layout 2 colonnes Aramis-style : form + sidebar réassurance
   ============================================================ */
.swm-form-layout {
  max-width: 1140px;
  margin: 0 auto;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 320px !important;
  gap: 36px;
  align-items: start;
}
.swm-form-layout > .swm-form--main {
  grid-column: 1 / 2 !important;
  min-width: 0;
  width: auto !important;
  max-width: 100% !important;
}
.swm-form-layout > .swm-form__sidebar {
  grid-column: 2 / 3 !important;
  width: auto !important;
  max-width: 320px !important;
  min-width: 0;
}
.swm-form {
  font-family: 'Manrope', sans-serif;
  color: var(--swm-ink);
}
.swm-form--main { min-width: 0; }

/* Stepper Aramis-style */
.swm-form__stepper {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 32px;
  background: var(--swm-cream);
  border-radius: 12px;
  padding: 16px 24px;
}
.swm-form__step {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--swm-muted);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
}
.swm-form__step-num {
  width: 28px; height: 28px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid var(--swm-line);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--swm-display);
  font-size: 14px;
  color: var(--swm-muted);
}
.swm-form__step--current { color: var(--swm-ink); }
.swm-form__step--current .swm-form__step-num {
  background: var(--swm-red);
  border-color: var(--swm-red);
  color: #fff;
  box-shadow: 0 0 0 4px rgba(227,6,19,0.15);
}
.swm-form__step-sep {
  flex: 1;
  height: 2px;
  background: var(--swm-line);
  min-width: 20px;
}
.swm-form__step-label { white-space: nowrap; }

/* Sidebar Aramis-style */
.swm-form__sidebar {
  background: var(--swm-cream);
  border-radius: 14px;
  padding: 28px 26px;
  position: sticky !important;
  top: 24px !important;
  align-self: start !important; /* indispensable dans une grid sinon sticky ne marche pas */
  max-height: calc(100vh - 48px);
  overflow-y: auto;
}
/* Empêche TOUS les parents de bloquer sticky avec overflow */
.swm-r-form-section,
.swm-r-form-section__wrap,
.swm-form-layout,
.swm-reprise,
html, body,
#wrapper, #page, #main, #content,
.site, .site-content, .site-main,
.container, .container-fluid, .row,
.entry-content, .post-content,
article, main {
  overflow: visible !important;
}
.swm-form__sidebar-title {
  font-family: var(--swm-display);
  font-size: 22px;
  text-transform: uppercase;
  margin: 0 0 22px;
  line-height: 1.1;
  letter-spacing: 0.01em;
}
.swm-form__sidebar-title span { color: var(--swm-red); display: block; }
.swm-form__sidebar-item {
  display: flex;
  align-items: start;
  gap: 14px;
  padding: 14px 0;
  border-bottom: 1px solid rgba(0,0,0,0.06);
}
.swm-form__sidebar-item:last-of-type { border-bottom: 0; }
.swm-form__sidebar-icon {
  flex-shrink: 0;
  width: 36px; height: 36px;
  border-radius: 50%;
  background: #fff;
  color: var(--swm-red);
  display: flex; align-items: center; justify-content: center;
}
.swm-form__sidebar-icon svg { width: 18px; height: 18px; }
.swm-form__sidebar-item strong {
  display: block;
  font-size: 14px;
  margin-bottom: 4px;
  color: var(--swm-ink);
}
.swm-form__sidebar-item p {
  margin: 0;
  font-size: 13px;
  color: var(--swm-muted);
  line-height: 1.5;
}
.swm-form__sidebar-help {
  margin-top: 18px;
  padding: 16px;
  background: var(--swm-ink);
  color: #fff;
  border-radius: 10px;
  text-align: center;
}
.swm-form__sidebar-help strong {
  display: block;
  font-size: 13px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.65);
  margin-bottom: 8px;
  font-weight: 700;
}
.swm-form__sidebar-help a {
  display: block;
  font-family: var(--swm-display);
  font-size: 22px;
  color: #fff;
  text-decoration: none;
  letter-spacing: 0.02em;
  margin-bottom: 6px;
}
.swm-form__sidebar-help a:hover { color: var(--swm-red); }
.swm-form__sidebar-help span {
  font-size: 12px;
  color: rgba(255,255,255,0.6);
}

@media (max-width: 980px) {
  /* Mobile/tablette : une seule colonne, form puis sidebar empilés */
  .swm-form-layout {
    grid-template-columns: 1fr !important;
    gap: 24px;
  }
  .swm-form-layout > .swm-form--main,
  .swm-form-layout > .swm-form__sidebar {
    grid-column: 1 / -1 !important;
    max-width: 100% !important;
    width: 100% !important;
  }
  /* Sidebar plus sticky sur mobile, elle scrolle normalement */
  .swm-form__sidebar {
    position: static !important;
    top: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }
}
@media (max-width: 600px) {
  .swm-form__stepper {
    flex-wrap: wrap;
    padding: 14px 16px;
    gap: 6px;
  }
  .swm-form__step { font-size: 12px; }
  .swm-form__step-label { display: none; }
  .swm-form__step--current .swm-form__step-label { display: inline; }
  .swm-form__step-sep { min-width: 12px; }
}
.swm-form__intro {
  text-align: center;
  margin-bottom: 36px;
}
.swm-form__intro h2 {
  font-family: var(--swm-display);
  font-size: clamp(32px, 4vw, 48px);
  text-transform: uppercase;
  margin: 0 0 10px;
  line-height: 1;
}
.swm-form__intro p {
  color: var(--swm-muted);
  font-size: 16px;
  margin: 0;
}
.swm-form__duration {
  display: inline-block;
  margin-left: 6px;
  background: rgba(227,6,19,0.08);
  color: var(--swm-red);
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
}
.swm-form__alert {
  padding: 20px 24px;
  border-radius: 12px;
  margin-bottom: 30px;
  font-size: 15px;
}
.swm-form__alert--ok { background: #e8f5e9; border: 1px solid #4caf50; color: #1b5e20; }
.swm-form__alert--ko { background: #fdecea; border: 1px solid #e30613; color: #7a040a; }
.swm-form__alert strong { display: block; margin-bottom: 4px; font-family: var(--swm-display); font-size: 20px; letter-spacing: 0.02em; }
.swm-form__alert p { margin: 0; }

.swm-form__section {
  background: #fff;
  border: 1px solid var(--swm-line);
  border-radius: 14px;
  padding: 32px 32px 28px;
  margin-bottom: 22px;
}
.swm-form__section-title {
  font-family: var(--swm-display);
  font-size: 26px;
  text-transform: uppercase;
  letter-spacing: 0.01em;
  margin: 0 0 26px;
  display: flex;
  align-items: center;
  gap: 14px;
}
.swm-form__section-title span {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--swm-red);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  flex-shrink: 0;
}

.swm-form__row { display: grid; gap: 16px; margin-bottom: 16px; }
.swm-form__row--2 { grid-template-columns: 1fr 1fr; }
.swm-form__row--3 { grid-template-columns: repeat(3, 1fr); }

/* Sous-grille pour "État & détails du véhicule" — tableau 2x2 dans un container */
.swm-form__subgrid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  background: var(--swm-cream);
  border: 1px solid var(--swm-line);
  border-radius: 10px;
  padding: 18px 18px 4px;
}
.swm-form__field--inner { margin-bottom: 14px; }
.swm-form__field--inner > span {
  font-size: 12px;
  margin-bottom: 6px;
}
@media (max-width: 700px) {
  .swm-form__subgrid { grid-template-columns: 1fr; padding: 16px 14px 2px; }
}

.swm-form__field {
  display: block;
  margin-bottom: 16px;
}
.swm-form__field > span,
.swm-form__label {
  display: block;
  font-weight: 700;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--swm-ink);
  margin-bottom: 8px;
}
.swm-form__field > span em,
.swm-form__label em { color: var(--swm-red); font-style: normal; margin-left: 4px; }

.swm-form input[type="text"],
.swm-form input[type="email"],
.swm-form input[type="tel"],
.swm-form input[type="number"],
.swm-form select,
.swm-form textarea {
  width: 100% !important;
  border: 1.5px solid var(--swm-line) !important;
  border-radius: 8px !important;
  padding: 14px 16px !important;
  font-family: 'Manrope', sans-serif !important;
  font-size: 15px !important;
  line-height: 1.4 !important;
  background: #fff !important;
  color: var(--swm-ink) !important;
  min-height: 50px !important;
  transition: border-color .2s ease, box-shadow .2s ease;
  appearance: none;
  -webkit-appearance: none;
  box-sizing: border-box;
  opacity: 1 !important;
  visibility: visible !important;
  display: block !important;
}
.swm-form select {
  height: auto !important;
}
.swm-form select {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23e30613' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat: no-repeat;
  background-position: right 16px center;
  padding-right: 44px;
  cursor: pointer;
}
.swm-form input:focus,
.swm-form select:focus,
.swm-form textarea:focus {
  border-color: var(--swm-red);
  box-shadow: 0 0 0 4px rgba(227,6,19,0.08);
  outline: 0;
}
.swm-form textarea { resize: vertical; min-height: 110px; }

.swm-form__dropzone {
  position: relative;
  display: block;
  border: 2px dashed var(--swm-line);
  border-radius: 12px;
  padding: 34px 24px;
  background: var(--swm-cream);
  text-align: center;
  cursor: pointer;
  transition: border-color .2s ease, background .2s ease;
}
.swm-form__dropzone:hover {
  border-color: var(--swm-red);
  background: rgba(227,6,19,0.03);
}
.swm-form__dropzone svg {
  width: 40px; height: 40px;
  color: var(--swm-red);
  margin: 0 auto 10px;
  display: block;
}
.swm-form__dropzone-main {
  display: block;
  font-weight: 700;
  color: var(--swm-ink);
  font-size: 15px;
  margin-bottom: 4px;
}
.swm-form__dropzone-sub {
  display: block;
  font-size: 13px;
  color: var(--swm-muted);
}
.swm-form__dropzone input[type="file"] {
  position: absolute;
  left: 0; top: 0;
  width: 100%; height: 100%;
  opacity: 0;
  cursor: pointer;
}
.swm-form__dropzone-list {
  margin-top: 14px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
}
.swm-form__dropzone-file {
  background: #fff;
  border: 1px solid var(--swm-line);
  padding: 6px 12px;
  border-radius: 999px;
  font-size: 12px;
  color: var(--swm-ink);
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.swm-form__dropzone-file svg { color: #2e7d32; }
.swm-form__dropzone-file span { color: var(--swm-muted); }

.swm-form__check {
  display: flex;
  align-items: start;
  gap: 12px;
  cursor: pointer;
  font-size: 15px;
  line-height: 1.5;
}
.swm-form__check input[type="checkbox"] {
  width: 22px; height: 22px;
  margin-top: 2px;
  accent-color: var(--swm-red);
  flex-shrink: 0;
  cursor: pointer;
}
.swm-form__check span em { color: var(--swm-red); font-style: normal; }
.swm-form__check a { color: var(--swm-red); text-decoration: underline; }

.swm-form__submit-row {
  text-align: center;
  margin-top: 32px;
}

/* Multi-step nav */
.swm-form__step-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  margin-top: 28px;
  flex-wrap: wrap;
}
.swm-form__btn-prev,
.swm-form__btn-next,
.swm-form__btn-submit-final {
  font-family: 'Manrope', sans-serif !important;
  font-weight: 700 !important;
  font-size: 15px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
  padding: 16px 28px !important;
  border-radius: 8px !important;
  cursor: pointer !important;
  border: 2px solid transparent !important;
  transition: all .25s ease !important;
}
.swm-form__btn-prev {
  background: #fff !important;
  color: #0e0e10 !important;
  border-color: #e6e6e9 !important;
}
.swm-form__btn-prev:hover { border-color: #0e0e10 !important; }
.swm-form__btn-next {
  background: #e30613 !important;
  color: #fff !important;
  border-color: #e30613 !important;
  margin-left: auto !important;
}
.swm-form__btn-next:hover { background: #b8050f !important; border-color: #b8050f !important; transform: translateY(-2px); }
.swm-form__btn-submit-final {
  background: #e30613 !important;
  color: #fff !important;
  border-color: #e30613 !important;
  margin-left: auto !important;
}
.swm-form__btn-submit-final:hover {
  background: #b8050f !important;
  border-color: #b8050f !important;
  transform: translateY(-2px);
}

/* Stepper : étape "done" en vert clair (validée) */
.swm-form__step--done .swm-form__step-num {
  background: #2e7d32 !important;
  border-color: #2e7d32 !important;
  color: #fff !important;
  box-shadow: none !important;
}
.swm-form__step--done { color: #2e7d32 !important; }
.swm-form__submit {
  background: var(--swm-red);
  color: #fff;
  border: 2px solid var(--swm-red);
  padding: 18px 48px;
  font-family: 'Manrope', sans-serif;
  font-weight: 700;
  font-size: 16px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  border-radius: 10px;
  cursor: pointer;
  transition: all .25s ease;
  display: inline-block;
}
.swm-form__submit:hover {
  background: var(--swm-red-dark);
  border-color: var(--swm-red-dark);
  transform: translateY(-2px);
  box-shadow: 0 16px 36px -16px rgba(227,6,19,0.5);
}

@media (max-width: 700px) {
  .swm-form__section { padding: 24px 22px; }
  .swm-form__row--2,
  .swm-form__row--3 { grid-template-columns: 1fr; }
  .swm-form__submit { width: 100%; padding: 18px; }
}

/* ====== TRUST / WHY US ====== */
.swm-r-why {
  background: var(--swm-cream);
  padding: clamp(50px, 7vw, 80px) 0;
}
.swm-r-why h2 {
  font-family: var(--swm-display);
  font-size: clamp(32px, 4vw, 50px);
  text-transform: uppercase;
  text-align: center;
  margin: 0 0 36px;
}
.swm-r-why h2 em { color: var(--swm-red); font-style: normal; }
.swm-r-why__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.swm-r-why__card {
  background: #fff;
  padding: 32px 26px;
  border-radius: 12px;
  text-align: center;
  border: 1px solid var(--swm-line);
}
.swm-r-why__icon {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: rgba(227,6,19,0.1);
  color: var(--swm-red);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 16px;
}
.swm-r-why__icon svg { width: 28px; height: 28px; }
.swm-r-why__title {
  font-family: var(--swm-display);
  font-size: 22px;
  text-transform: uppercase;
  margin: 0 0 8px;
}
.swm-r-why__text { color: var(--swm-muted); font-size: 14px; margin: 0; line-height: 1.55; }

/* ====== FALLBACK CONTACT ====== */
.swm-r-fallback {
  background: var(--swm-ink);
  color: #fff;
  padding: 36px 0;
  text-align: center;
}
.swm-r-fallback p {
  font-size: 16px;
  margin: 0;
  color: rgba(255,255,255,0.85);
}
.swm-r-fallback strong { color: #fff; }
.swm-r-fallback a {
  color: var(--swm-red);
  font-weight: 700;
  text-decoration: none;
  border-bottom: 2px solid var(--swm-red);
}

/* ====== RESPONSIVE ====== */
@media (max-width: 800px) {
  .swm-r-stepper { grid-template-columns: repeat(2, 1fr); row-gap: 24px; }
  .swm-r-stepper::before { display: none; }
  .swm-r-why__grid { grid-template-columns: 1fr; }
  .swm-r-promise { flex-direction: column; text-align: center; padding: 24px; }
  .swm-r-promise__big { font-size: 20px; }
}
