:root {
      --prowash-site-header-offset: 132px;
      --prowash-site-header-offset-mobile: 116px;
      --devis-touch-min: 44px;
      --devis-font-base: 16px;
      --devis-font-sm: 14px;
      --devis-font-xs: 13px;
      --devis-text: #1e293b;
      --devis-text-muted: #475569;
      --devis-text-soft: #64748b;
      --devis-navy: #002B5B;
      --devis-focus-ring: 0 0 0 3px rgba(59, 130, 246, .45);
    }

    /* Header (DA index) */
    .pe-header-logo a { display: inline-flex; align-items: center; line-height: 0; }
    .pe-header-logo img {
      height: 46px; width: auto; max-width: 200px; object-fit: contain; display: block;
    }
    .lonyo-menu-wrapper .pe-header-logo img { height: 40px; max-width: 170px; mix-blend-mode: normal; }
    .pe-header-actions { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
    .pe-header-btn-login.lonyo-header-btn {
      color: #fff; background: transparent; border: 2px solid rgba(255,255,255,.9);
      padding: 10px 22px; z-index: 1;
    }
    .pe-header-btn-login.lonyo-header-btn::before,
    .pe-header-btn-login.lonyo-header-btn::after { display: none !important; }
    .pe-header-btn-login.lonyo-header-btn:hover {
      color: #142D6F; background: #fff; border-color: #fff;
    }
    .main-menu a.is-active { color: #A3BDFF !important; }
    @media (max-width: 1199px) {
      .pe-header-actions { gap: 8px; }
      .pe-header-btn-login.lonyo-header-btn,
      .pe-header-actions .lonyo-header-btn.btn2 { padding: 10px 16px; font-size: 15px; }
    }
    @media (max-width: 575px) {
      .pe-header-logo img { height: 34px; max-width: 145px; }
    }

    .pe-devis-container {
      max-width: 1280px;
    }
    .pe-devis-layout { align-items: flex-start; }
    @media (min-width: 992px) {
      .pe-devis-progress-col {
        flex: 0 0 auto;
        width: 33.33333333%;
        max-width: 380px;
        align-self: stretch;
      }
      .pe-devis-form-col {
        flex: 1 1 0;
        min-width: 0;
        width: auto;
        max-width: none;
      }
      .pe-devis-aside {
        position: sticky;
        top: var(--prowash-devis-aside-top, var(--prowash-site-header-offset, 100px));
        align-self: flex-start;
        width: 100%;
        z-index: 10;
      }
    }
    .pe-devis-form-col,
    .pe-devis-progress-col,
    .pe-devis-panel,
    .pe-devis-linge-panel,
    .pe-devis-linge-flow {
      min-width: 0;
    }
    .pe-devis-main {
      background: #F8FAFC;
    }
    .pe-devis-main:not(.pe-devis-main--form) {
      padding: 56px 0 100px;
    }
    /* Header fixe (app.min.css .lonyo-header-section) — après .pe-devis-main pour priorité */
    .pe-devis-main.pe-devis-main--form {
      padding: var(--prowash-site-header-offset, 132px) 0 72px;
      scroll-margin-top: var(--prowash-site-header-offset, 132px);
      font-size: var(--devis-font-base);
      line-height: 1.5;
    }
    .pe-devis-form :is(button, a, input, select, textarea):focus-visible {
      outline: none;
      box-shadow: var(--devis-focus-ring);
    }
    .pe-devis-honeypot {
      position: absolute;
      left: -9999px;
      width: 1px;
      height: 1px;
      overflow: hidden;
      opacity: 0;
      pointer-events: none;
    }
    @media (prefers-reduced-motion: reduce) {
      .pe-devis-step,
      .pe-devis-progress-fill,
      .pe-devis-linge-item,
      .pe-devis-btn-next,
      .pe-devis-btn-prev,
      .pe-devis-type-follow:not([hidden]) .pe-devis-type-follow-pro-sector:not([hidden]),
      .pe-devis-type-follow:not([hidden]) .pe-devis-type-follow-addresses:not([hidden]),
      .pe-devis-type-follow:not([hidden]) .pe-devis-sector-recap:not([hidden]) {
        animation: none !important;
        transition: none !important;
      }
    }
    .pe-devis-main.pe-devis-main--form .pe-devis-panel-head {
      margin-top: 8px;
    }
    .pe-devis-panel {
      background: #fff;
      border-radius: 16px;
      padding: 28px 28px 32px;
      box-shadow: 0 4px 28px rgba(0, 43, 91, .08);
      border: 1px solid rgba(0, 43, 91, .06);
    }
    .pe-devis-panel.pe-devis-panel--linge {
      padding-bottom: 24px;
    }
    @media (max-width: 767px) {
      .pe-devis-panel { padding: 20px 16px 24px; border-radius: 14px; }
    }
    .pe-devis-panel-head {
      display: flex; align-items: flex-start; justify-content: space-between;
      gap: 16px; flex-wrap: wrap; margin-bottom: 20px;
    }
    .pe-devis-panel h2 {
      font-size: clamp(24px, 3vw, 30px); color: #002B5B; margin: 0 0 6px; font-weight: 700;
    }
    .pe-devis-panel .pe-devis-lead {
      margin: 0;
      font-size: var(--devis-font-base);
      line-height: 1.6;
      color: var(--devis-text-muted);
      max-width: 42rem;
    }

    .pe-devis-services-label {
      font-size: 14px; font-weight: 700; color: #142D6F; margin-bottom: 12px; display: block;
    }
    .pe-devis-services {
      display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 32px;
    }
    .pe-devis-svc-option { position: relative; cursor: pointer; }
    .pe-devis-svc-option input {
      position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none;
    }
    .pe-devis-svc-card {
      display: flex; flex-direction: column; align-items: center; gap: 10px; text-align: center;
      padding: 20px 14px; border-radius: 16px; border: 2px solid rgba(20,45,111,.1);
      background: #F6F4EF; transition: border-color .25s, background .25s, box-shadow .25s, transform .25s;
    }
    .pe-devis-svc-card img { width: 36px; height: 36px; object-fit: contain; }
    .pe-devis-svc-card strong { font-size: 15px; color: #142D6F; }
    .pe-devis-svc-card span { font-size: 12px; line-height: 1.4; color: #6b7a99; }
    .pe-devis-svc-option input:checked + .pe-devis-svc-card,
    .pe-devis-svc-option:hover .pe-devis-svc-card {
      border-color: #142D6F; background: linear-gradient(145deg, rgba(163,189,255,.35) 0%, #fff 100%);
      box-shadow: 0 10px 28px rgba(20,45,111,.1);
    }
    .pe-devis-svc-hint { margin: 0 0 16px; font-size: 15px; color: #6b7a99; line-height: 1.5; }
    .pe-devis-svc-error {
      display: none; margin-top: 12px; padding: 12px 14px; border-radius: 10px;
      background: #fff9e8; border: 1px solid rgba(230,180,0,.35); color: #5a4a10; font-size: 14px;
    }
    .pe-devis-svc-error.is-visible { display: block; }
    .pe-linge-svc-block {
      margin-bottom: 32px; padding-bottom: 28px; border-bottom: 1px solid rgba(20,45,111,.1);
    }
    .pe-linge-svc-block:last-child { margin-bottom: 0; padding-bottom: 0; border-bottom: none; }
    .pe-linge-svc-head {
      display: flex; align-items: center; gap: 12px; margin-bottom: 14px;
    }
    .pe-linge-svc-head img { width: 32px; height: 32px; object-fit: contain; }
    .pe-linge-svc-head-icon--remix {
      flex-shrink: 0; width: 40px; height: 40px; display: flex; align-items: center; justify-content: center;
      border-radius: 10px; background: #F6F4EF; color: #142D6F; font-size: 22px;
    }
    .pe-linge-catalog-empty {
      padding: 24px;
      text-align: center;
      color: #6b7a99;
    }
    .pe-linge-catalog-empty p { margin: 0 0 8px; }
    .pe-linge-catalog-empty-hint { font-size: 13px; color: #6b7a99; margin: 0 0 14px; }
    .pe-linge-catalog-reload {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 40px;
      padding: 8px 16px;
      border-radius: 10px;
      border: 2px solid rgba(20, 45, 111, .2);
      background: #fff;
      color: #142D6F;
      font-weight: 700;
      font-family: inherit;
      cursor: pointer;
    }
    .pe-linge-catalog-reload:hover {
      border-color: #142D6F;
    }
    .pe-linge-svc-head h4 { margin: 0; font-size: 18px; color: #142D6F; }
    .pe-linge-grand-total { margin-top: 28px; }
    .pe-devis-svc-option input:focus-visible + .pe-devis-svc-card {
      outline: 3px solid rgba(163,189,255,.6); outline-offset: 2px;
    }

    .pe-devis-field { margin-bottom: 20px; }
    .pe-devis-field label {
      display: block; font-size: 14px; font-weight: 600; color: #142D6F; margin-bottom: 8px;
    }
    .pe-devis-field label .req { color: #c0392b; }
    .pe-devis-field input,
    .pe-devis-field select,
    .pe-devis-field textarea {
      width: 100%; border: 1px solid rgba(20,45,111,.15); border-radius: 12px;
      padding: 14px 16px; font-size: 16px; font-family: inherit; color: #142D6F;
      background: #fff; transition: border-color .2s, box-shadow .2s;
    }
    .pe-devis-field input:focus,
    .pe-devis-field select:focus,
    .pe-devis-field textarea:focus {
      outline: none; border-color: #142D6F;
      box-shadow: 0 0 0 3px rgba(163,189,255,.4);
    }
    .pe-devis-field textarea { min-height: 120px; resize: vertical; }
    /* Étape coordonnées */
    .pe-devis-step[data-step="2"] .pe-devis-step-title { margin-bottom: 16px; }
    .pe-devis-profil-connected-card {
      background: #fff;
      border: 1px solid #E2E8F0;
      border-radius: 14px;
      padding: 22px;
      box-shadow: 0 2px 16px rgba(0, 43, 91, .06);
    }
    .pe-devis-profil-connected-head {
      display: flex;
      align-items: center;
      gap: 14px;
      margin-bottom: 18px;
    }
    .pe-devis-profil-connected-avatar {
      flex-shrink: 0;
      width: 48px;
      height: 48px;
      border-radius: 12px;
      background: #E8F2FF;
      color: #002B5B;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 26px;
    }
    .pe-devis-profil-connected-label {
      margin: 0 0 4px;
      font-size: 12px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .06em;
      color: #64748b;
    }
    .pe-devis-profil-connected-name {
      margin: 0;
      font-size: 20px;
      font-weight: 700;
      color: #002B5B;
      line-height: 1.25;
    }
    .pe-devis-profil-connected-meta {
      list-style: none;
      margin: 0 0 16px;
      padding: 0;
      display: grid;
      gap: 10px;
    }
    .pe-devis-profil-connected-meta li {
      display: flex;
      justify-content: space-between;
      align-items: baseline;
      gap: 12px;
      font-size: 14px;
      color: #334155;
      padding-bottom: 10px;
      border-bottom: 1px solid #E2E8F0;
    }
    .pe-devis-profil-connected-meta li:last-child {
      border-bottom: none;
      padding-bottom: 0;
    }
    .pe-devis-profil-connected-meta-key {
      font-weight: 600;
      color: #64748b;
      flex-shrink: 0;
    }
    .pe-devis-profil-connected-meta span:last-child {
      text-align: right;
      word-break: break-word;
    }
    .pe-devis-profil-connected-hint {
      margin: 0 0 14px;
      font-size: 14px;
      line-height: 1.5;
      color: #64748b;
    }
    .pe-devis-profil-connected-switch {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      font-size: 14px;
      font-weight: 600;
      color: #002B5B;
      text-decoration: none;
    }
    .pe-devis-profil-connected-switch:hover {
      color: #142D6F;
      text-decoration: underline;
      text-underline-offset: 3px;
    }
    .pe-devis-profil-connected-switch i { font-size: 18px; }
    .pe-devis-profil-card {
      background: #fff;
      border: 1px solid #E2E8F0;
      border-radius: 14px;
      padding: 22px;
      box-shadow: 0 2px 16px rgba(0, 43, 91, .06);
    }
    .pe-devis-profil-type {
      border: none;
      margin: 0 0 20px;
      padding: 0;
    }
    .pe-devis-profil-legend {
      font-size: 14px;
      font-weight: 600;
      color: #002B5B;
      margin: 0 0 10px;
      padding: 0;
    }
    .pe-devis-type-options {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 10px;
    }
    .pe-devis-type-option {
      position: relative;
      cursor: pointer;
      margin: 0;
    }
    .pe-devis-type-option input[type="radio"] {
      position: absolute;
      opacity: 0;
      width: 0;
      height: 0;
      margin: 0;
      pointer-events: none;
    }
    .pe-devis-type-pill {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      padding: 14px 16px;
      border-radius: 12px;
      border: 2px solid #E2E8F0;
      background: #F8FAFC;
      font-size: 15px;
      font-weight: 600;
      color: #64748b;
      transition: border-color .2s, background .2s, color .2s, box-shadow .2s;
    }
    .pe-devis-type-pill i { font-size: 20px; line-height: 1; }
    .pe-devis-type-option:hover .pe-devis-type-pill {
      border-color: rgba(0, 43, 91, .2);
      color: #002B5B;
    }
    .pe-devis-type-option:has(input:checked) .pe-devis-type-pill {
      border-color: #002B5B;
      background: #E8F2FF;
      color: #002B5B;
      box-shadow: 0 4px 14px rgba(0, 43, 91, .08);
    }
    .pe-devis-type-option:has(input:focus-visible) .pe-devis-type-pill {
      outline: 3px solid rgba(163, 189, 255, .55);
      outline-offset: 2px;
    }
    .pe-devis-profil-pro {
      margin-bottom: 18px;
      padding-bottom: 18px;
      border-bottom: 1px solid #E2E8F0;
    }
    .pe-devis-profil-pro .pe-devis-field:last-child { margin-bottom: 0; }
    .pe-devis-profil-pro[hidden] { display: none !important; }
    .pe-devis-profil-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 14px 16px;
    }
    .pe-devis-profil-grid .pe-devis-field { margin-bottom: 0; }
    .pe-devis-profil-card .pe-devis-field input,
    .pe-devis-profil-card .pe-devis-field select {
      height: auto !important;
      min-height: 48px;
      padding: 12px 14px !important;
      font-size: 16px !important;
      line-height: 1.35 !important;
      border-radius: 10px;
      background: #F8FAFC;
      border: 1px solid #E2E8F0;
    }
    .pe-devis-profil-card .pe-devis-field select {
      appearance: auto;
      cursor: pointer;
    }
    .pe-devis-profil-card .pe-devis-field input:focus,
    .pe-devis-profil-card .pe-devis-field select:focus {
      background: #fff;
      border-color: #002B5B;
      box-shadow: 0 0 0 3px rgba(163, 189, 255, .35);
    }

    /* Bloc recherche entreprise (API Entreprises) */
    .pe-devis-field--entreprise {
      margin-bottom: 24px;
    }
    .pe-devis-enterprise {
      display: flex;
      flex-direction: column;
      gap: 16px;
    }
    .pe-devis-enterprise__title {
      display: block;
      margin: 0 0 6px;
      font-size: 1rem;
      font-weight: 600;
      color: var(--devis-navy);
    }
    .pe-devis-enterprise__lead {
      margin: 0;
      font-size: var(--devis-font-sm);
      color: var(--devis-text-muted);
      line-height: 1.5;
    }
    .pe-devis-enterprise__mode {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
    }
    .pe-devis-enterprise__mode-btn {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      flex: 1;
      min-width: 140px;
      justify-content: center;
      min-height: var(--devis-touch-min);
      padding: 10px 14px;
      border-radius: 10px;
      border: 1px solid #cbd5e1;
      background: #fff;
      font-size: var(--devis-font-sm);
      font-weight: 600;
      color: var(--devis-text-muted);
      cursor: pointer;
      transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
    }
    .pe-devis-enterprise__mode-btn.is-active {
      border-color: var(--devis-navy);
      background: #eef3ff;
      color: var(--devis-navy);
      box-shadow: 0 0 0 2px rgba(163, 189, 255, 0.35);
    }
    .pe-devis-enterprise__mode-btn:focus-visible {
      outline: 2px solid var(--devis-navy);
      outline-offset: 2px;
    }
    .pe-devis-enterprise__manual {
      display: flex;
      flex-direction: column;
      gap: 12px;
      padding: 14px;
      border-radius: 12px;
      border: 1px solid #e2e8f0;
      background: #f8fafc;
    }
    .pe-devis-profil-grid--enterprise-manual {
      grid-template-columns: 1fr 1fr;
    }
    @media (max-width: 575.98px) {
      .pe-devis-profil-grid--enterprise-manual {
        grid-template-columns: 1fr;
      }
    }
    .pe-devis-optional {
      font-weight: 500;
      color: var(--devis-text-soft);
      font-size: var(--devis-font-xs);
    }
    .pe-devis-enterprise__manual-fallback,
    .pe-devis-enterprise__back-annuaire {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 6px;
      width: 100%;
      margin-top: 10px;
      padding: 10px 12px;
      border: 0;
      border-radius: 8px;
      background: transparent;
      font-size: var(--devis-font-sm);
      font-weight: 600;
      color: #2563eb;
      cursor: pointer;
      text-decoration: underline;
      text-underline-offset: 2px;
    }
    .pe-devis-enterprise__back-annuaire {
      margin-top: 4px;
      justify-content: flex-start;
      width: auto;
    }
    .pe-devis-coordinates-block--identity {
      margin-bottom: 1.25rem;
      padding-bottom: 1.25rem;
      border-bottom: 1px solid rgba(0, 43, 91, .08);
    }
    .pe-devis-coordinates-block--addresses {
      margin-bottom: 1.25rem;
      padding-bottom: 1.25rem;
      border-bottom: 1px solid rgba(0, 43, 91, .08);
    }
    .pe-devis-coordinates-block--addresses .pe-devis-addresses-block {
      margin-bottom: 0;
      padding-bottom: 0;
      border-bottom: 0;
    }
    .pe-devis-coordinates-block--optional {
      margin-top: 4px;
      display: flex;
      flex-direction: column;
      gap: 10px;
    }
    .pe-devis-coordinates-block--optional[hidden] {
      display: none !important;
    }
    .pe-devis-optional-panel {
      border: 1px solid rgba(0, 43, 91, .1);
      border-radius: 12px;
      background: #f8fafc;
    }
    .pe-devis-optional-panel__summary {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      padding: 14px 16px;
      cursor: pointer;
      list-style: none;
      font-weight: 600;
      color: var(--devis-navy);
    }
    .pe-devis-optional-panel__summary::-webkit-details-marker {
      display: none;
    }
    .pe-devis-optional-panel__summary::before {
      content: '';
      width: 8px;
      height: 8px;
      margin-right: 10px;
      border-right: 2px solid var(--devis-navy);
      border-bottom: 2px solid var(--devis-navy);
      transform: rotate(-45deg);
      transition: transform 0.15s ease;
      flex-shrink: 0;
    }
    .pe-devis-optional-panel[open] .pe-devis-optional-panel__summary::before {
      transform: rotate(45deg);
    }
    .pe-devis-optional-panel__summary-title {
      flex: 1;
    }
    .pe-devis-optional-panel__body {
      display: flex;
      flex-direction: column;
      gap: 12px;
      padding: 0 16px 16px;
    }
    .pe-devis-optional-panel__lead {
      margin: 0;
      font-size: var(--devis-font-sm);
      color: var(--devis-text-muted);
      line-height: 1.45;
    }
    .pe-devis-logistics--optional {
      border: 1px solid rgba(0, 43, 91, .1);
      border-radius: 12px;
      background: #f8fafc;
    }
    .pe-devis-logistics__summary {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      padding: 14px 16px;
      cursor: pointer;
      list-style: none;
      font-weight: 600;
      color: var(--devis-navy);
    }
    .pe-devis-logistics__summary::-webkit-details-marker {
      display: none;
    }
    .pe-devis-logistics__summary::before {
      content: '';
      width: 8px;
      height: 8px;
      margin-right: 10px;
      border-right: 2px solid var(--devis-navy);
      border-bottom: 2px solid var(--devis-navy);
      transform: rotate(-45deg);
      transition: transform 0.15s ease;
      flex-shrink: 0;
    }
    .pe-devis-logistics--optional[open] .pe-devis-logistics__summary::before {
      transform: rotate(45deg);
    }
    .pe-devis-logistics__summary-title {
      flex: 1;
    }
    .pe-devis-logistics__body {
      display: flex;
      flex-direction: column;
      gap: 12px;
      padding: 0 16px 16px;
    }
    .pe-devis-logistics__lead {
      margin: 0;
      font-size: var(--devis-font-sm);
      color: var(--devis-text-muted);
      line-height: 1.45;
    }
    .pe-devis-logistics__details {
      display: flex;
      flex-direction: column;
      gap: 12px;
    }
    .pe-devis-logistics__passages {
      padding: 12px;
      border-radius: 10px;
      background: #fff;
      border: 1px dashed rgba(0, 43, 91, .15);
    }
    .pe-devis-logistics__passages-lead {
      margin: 0 0 12px;
      font-size: var(--devis-font-sm);
      color: var(--devis-text-muted);
      line-height: 1.45;
    }
    .pe-devis-profil-grid--passages {
      grid-template-columns: 1fr 1fr;
    }
    @media (max-width: 575.98px) {
      .pe-devis-profil-grid--passages {
        grid-template-columns: 1fr;
      }
    }
    .pe-devis-field-hint {
      margin: 6px 0 0;
      font-size: var(--devis-font-xs);
      color: var(--devis-text-soft);
      line-height: 1.4;
    }
    .pe-devis-enterprise__search-panel {
      padding: 14px;
      border-radius: 12px;
      border: 1px solid #e2e8f0;
      background: #f8fafc;
    }
    .pe-devis-enterprise__search-field {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 4px 14px;
      border-radius: 10px;
      border: 1px solid #cbd5e1;
      background: #fff;
      transition: border-color 0.15s ease, box-shadow 0.15s ease;
    }
    .pe-devis-enterprise__search-field:focus-within {
      border-color: var(--devis-navy);
      box-shadow: 0 0 0 3px rgba(163, 189, 255, 0.35);
    }
    .pe-devis-enterprise__search-icon {
      flex-shrink: 0;
      color: var(--devis-navy);
      font-size: 1.25rem;
      line-height: 1;
    }
    .pe-devis-enterprise__search-input {
      flex: 1;
      min-width: 0;
      min-height: 42px;
      border: 0;
      background: transparent;
      font-size: var(--devis-font-base);
      color: var(--devis-text);
      padding: 8px 0;
    }
    .pe-devis-enterprise__search-input:focus {
      outline: none;
      box-shadow: none;
    }
    .pe-devis-enterprise__search-hint {
      margin: 10px 0 0;
      font-size: var(--devis-font-xs);
      color: var(--devis-text-soft);
    }
    .pe-devis-enterprise__results {
      margin-top: 10px;
      max-height: 240px;
      overflow-y: auto;
      border-radius: 10px;
      border: 1px solid #e2e8f0;
      background: #fff;
      box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
    }
    .pe-devis-enterprise__results-empty {
      margin: 0;
      padding: 14px 16px;
      font-size: var(--devis-font-sm);
      color: var(--devis-text-muted);
    }
    .pe-devis-enterprise__result {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      gap: 4px;
      width: 100%;
      padding: 12px 14px;
      border: 0;
      border-bottom: 1px solid #f1f5f9;
      background: #fff;
      text-align: left;
      cursor: pointer;
      transition: background 0.12s ease;
    }
    .pe-devis-enterprise__result:last-child {
      border-bottom: 0;
    }
    .pe-devis-enterprise__result:hover,
    .pe-devis-enterprise__result:focus-visible {
      background: #f0f4ff;
      outline: none;
    }
    .pe-devis-enterprise__result-name {
      font-weight: 600;
      font-size: var(--devis-font-base);
      color: var(--devis-text);
    }
    .pe-devis-enterprise__result-meta {
      font-size: var(--devis-font-xs);
      color: var(--devis-navy);
      font-weight: 500;
    }
    .pe-devis-enterprise__result-addr {
      font-size: var(--devis-font-xs);
      color: var(--devis-text-muted);
      line-height: 1.4;
    }
    .pe-devis-enterprise__card {
      padding: 16px 18px;
      border-radius: 12px;
      background: linear-gradient(135deg, #f8faff 0%, #eef3ff 100%);
      border: 1px solid rgba(0, 43, 91, 0.14);
      border-left: 4px solid var(--devis-navy);
      box-shadow: 0 4px 16px rgba(0, 43, 91, 0.06);
    }
    .pe-devis-enterprise__card-top {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      margin-bottom: 10px;
    }
    .pe-devis-enterprise__card-badge {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      font-size: var(--devis-font-xs);
      font-weight: 600;
      text-transform: uppercase;
      letter-spacing: 0.03em;
      color: #166534;
    }
    .pe-devis-enterprise__card-badge i {
      font-size: 1.1rem;
    }
    .pe-devis-enterprise__card-change {
      border: 0;
      background: none;
      padding: 6px 0;
      font-size: var(--devis-font-sm);
      font-weight: 600;
      color: #2563eb;
      cursor: pointer;
      text-decoration: underline;
      text-underline-offset: 2px;
    }
    .pe-devis-enterprise__card-name {
      margin: 0 0 12px;
      font-size: 1.125rem;
      font-weight: 700;
      color: var(--devis-navy);
      line-height: 1.3;
    }
    .pe-devis-enterprise__card-meta {
      margin: 0 0 14px;
      display: grid;
      gap: 8px;
    }
    .pe-devis-enterprise__card-row {
      display: grid;
      grid-template-columns: 72px 1fr;
      gap: 8px 12px;
      align-items: baseline;
      font-size: var(--devis-font-sm);
    }
    .pe-devis-enterprise__card-row dt {
      margin: 0;
      font-weight: 600;
      color: var(--devis-text-muted);
    }
    .pe-devis-enterprise__card-row dd {
      margin: 0;
      color: var(--devis-text);
      word-break: break-word;
    }
    .pe-devis-enterprise__card-row--addr dt {
      display: flex;
      align-items: center;
      gap: 4px;
    }
    .pe-devis-enterprise__card-use-addr {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      width: 100%;
      min-height: var(--devis-touch-min);
      padding: 10px 16px;
      border: 1px solid var(--devis-navy);
      border-radius: 10px;
      background: #fff;
      color: var(--devis-navy);
      font-size: var(--devis-font-sm);
      font-weight: 600;
      cursor: pointer;
      transition: background 0.15s ease, color 0.15s ease;
    }
    .pe-devis-enterprise__card-use-addr:hover {
      background: var(--devis-navy);
      color: #fff;
    }
    .pe-devis-enterprise__card-use-addr i {
      font-size: 1.125rem;
    }

    @media (max-width: 640px) {
      .pe-devis-profil-card { padding: 16px; }
      .pe-devis-profil-grid { grid-template-columns: 1fr; }
    }
    .pe-devis-check {
      display: flex; align-items: flex-start; gap: 12px; margin: 24px 0 28px;
      font-size: 14px; line-height: 1.5; color: #6b7a99;
    }
    .pe-devis-check input { width: 18px; height: 18px; margin-top: 3px; flex-shrink: 0; accent-color: #142D6F; }
    .pe-devis-check a { color: #142D6F; font-weight: 600; }
    .pe-devis-submit {
      width: 100%; border: none; border-radius: 12px; padding: 18px 28px;
      font-size: 17px; font-weight: 600; font-family: inherit; cursor: pointer;
      color: #fff; background: #142D6F; display: inline-flex; align-items: center;
      justify-content: center; gap: 10px; transition: background .25s, transform .2s;
    }
    .pe-devis-submit:hover { background: #0f2459; transform: translateY(-1px); color: #fff; }
    .pe-devis-submit:disabled,
    .pe-devis-submit.is-loading {
      opacity: 0.72;
      cursor: wait;
      transform: none;
    }

    .pe-devis-step-badge {
      display: none;
    }
    .pe-devis-step-badge--head {
      display: inline-flex; align-items: center; flex-shrink: 0;
      font-size: 13px; font-weight: 700; color: #002B5B;
      background: #E8F2FF; padding: 8px 16px; border-radius: 999px;
      margin: 0; letter-spacing: .02em;
    }
    .pe-devis-step-title { font-size: 18px; color: #142D6F; margin: 0 0 20px; font-weight: 600; }
    .pe-devis-step { display: none; animation: pe-devis-step-in .35s ease; }
    .pe-devis-step.pe-devis-step--active:not([hidden]) { display: block; }
    .pe-devis-step[hidden] { display: none !important; }
    @keyframes pe-devis-step-in {
      from { opacity: 0; transform: translateY(10px); }
      to { opacity: 1; transform: translateY(0); }
    }
    .pe-devis-btn-prev,
    .pe-devis-btn-next {
      flex: 1;
      min-width: 0;
      min-height: var(--devis-touch-min);
      border-radius: 12px;
      padding: 14px 20px;
      font-size: var(--devis-font-base);
      font-weight: 600;
      font-family: inherit;
      cursor: pointer;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      transition: background .25s, color .25s, border-color .25s, transform .2s;
    }
    .pe-devis-btn-prev {
      color: #142D6F; background: #fff; border: 2px solid rgba(20,45,111,.2);
    }
    .pe-devis-btn-prev:hover { border-color: #142D6F; background: #F6F4EF; }
    .pe-devis-btn-next {
      color: #fff; background: #002B5B; border: 2px solid #002B5B;
    }
    .pe-devis-btn-next:hover { background: #001f42; transform: translateY(-1px); }
    .pe-devis-btn-prev[hidden],
    .pe-devis-btn-next[hidden],
    .pe-devis-submit[hidden],
    .pe-devis-submit-secondary[hidden] { display: none !important; }
    .pe-devis-pay-recap {
      margin-bottom: 24px; padding: 22px 24px; border-radius: 16px;
      background: linear-gradient(145deg, rgba(163,189,255,.35) 0%, #fff 100%);
      border: 1px solid rgba(20,45,111,.1);
    }
    .pe-devis-pay-label { margin: 0 0 6px; font-size: 13px; font-weight: 700; text-transform: uppercase;
      letter-spacing: .05em; color: #6b7a99; }
    .pe-devis-pay-amount { margin: 0; font-size: 32px; font-weight: 700; color: #142D6F; line-height: 1.2; }
    .pe-devis-pay-note { margin: 10px 0 0; font-size: 14px; line-height: 1.5; color: #6b7a99; }
    .pe-devis-pay-lines {
      list-style: none; margin: 0 0 16px; padding: 0;
    }
    .pe-devis-pay-line {
      display: flex; align-items: flex-start; justify-content: space-between; gap: 12px;
      padding: 10px 0; border-bottom: 1px solid rgba(20,45,111,.08);
      font-size: 14px; color: #3d4a66;
    }
    .pe-devis-pay-line:last-child { border-bottom: none; }
    .pe-devis-pay-line-label { flex: 1; line-height: 1.4; }
    .pe-devis-pay-line-amount { flex-shrink: 0; font-weight: 700; color: #142D6F; white-space: nowrap; }
    .pe-devis-pay-logistics {
      margin: 0 0 16px;
      padding: 12px 14px;
      border-radius: 12px;
      background: linear-gradient(160deg, #fff 0%, #F1F5F9 100%);
      border: 1px solid rgba(20, 45, 111, .12);
    }
    .pe-devis-pay-logistics-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      margin-bottom: 10px;
      padding-bottom: 8px;
      border-bottom: 1px solid rgba(20, 45, 111, .08);
    }
    .pe-devis-pay-logistics-title {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      font-size: 11px;
      font-weight: 700;
      letter-spacing: .06em;
      text-transform: uppercase;
      color: #142D6F;
    }
    .pe-devis-pay-logistics-title i { font-size: 15px; color: #2563EB; }
    .pe-devis-pay-logistics-subtotal {
      font-size: 13px;
      font-weight: 800;
      color: #142D6F;
      font-variant-numeric: tabular-nums;
    }
    .pe-devis-pay-logistics-legs {
      display: flex;
      flex-direction: column;
      gap: 8px;
    }
    .pe-devis-pay-leg {
      padding: 10px 12px;
      border-radius: 10px;
      background: #fff;
      border: 1px solid rgba(20, 45, 111, .1);
    }
    .pe-devis-pay-leg--collecte { border-left: 3px solid #2563EB; }
    .pe-devis-pay-leg--livraison { border-left: 3px solid #0D9488; }
    .pe-devis-pay-leg-row {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 12px;
    }
    .pe-devis-pay-leg-label {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      min-width: 0;
      font-size: 13px;
      font-weight: 700;
      color: #3d4a66;
      line-height: 1.35;
    }
    .pe-devis-pay-leg-label i {
      flex-shrink: 0;
      width: 26px;
      height: 26px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      border-radius: 8px;
      font-size: 14px;
      background: rgba(37, 99, 235, .1);
      color: #2563EB;
    }
    .pe-devis-pay-leg--livraison .pe-devis-pay-leg-label i {
      background: rgba(13, 148, 136, .12);
      color: #0D9488;
    }
    .pe-devis-pay-leg-amount {
      flex-shrink: 0;
      font-size: 14px;
      font-weight: 800;
      color: #142D6F;
      font-variant-numeric: tabular-nums;
    }
    .pe-devis-pay-leg-meta {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 6px 10px;
      margin-top: 8px;
      padding-left: 34px;
    }
    .pe-devis-pay-leg-km {
      display: inline-flex;
      padding: 3px 8px;
      border-radius: 999px;
      font-size: 11px;
      font-weight: 600;
      color: #475569;
      background: #F8FAFC;
      border: 1px solid #E2E8F0;
    }
    .pe-devis-pay-leg-relay {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      min-width: 0;
      font-size: 12px;
      font-weight: 600;
      color: #142D6F;
    }
    .pe-devis-pay-leg-relay i { flex-shrink: 0; font-size: 13px; color: #64748B; }
    .pe-devis-pay-total {
      display: flex; align-items: baseline; justify-content: space-between; gap: 12px;
      margin-top: 8px; padding-top: 14px; border-top: 2px solid rgba(20,45,111,.12);
    }
    .pe-devis-pay-total-label {
      font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #6b7a99;
    }
    .pe-devis-pay-total-amount { font-size: 28px; font-weight: 700; color: #142D6F; }

    body.pe-devis-pay-modal-open { overflow: hidden; }
    .pe-devis-pay-modal {
      position: fixed; inset: 0; z-index: 10050;
      display: flex; align-items: center; justify-content: center;
      padding: 12px;
      isolation: isolate;
      overflow: hidden;
    }
    .pe-devis-pay-modal[hidden] { display: none !important; }
    .pe-devis-pay-modal__backdrop {
      position: absolute; inset: 0; background: rgba(0, 31, 66, .55);
    }
    .pe-devis-pay-modal__panel {
      position: relative; width: 100%;
      max-width: min(900px, calc(100vw - 24px));
      max-height: calc(100dvh - 24px);
      overflow: hidden;
      padding: 14px 40px 14px 16px;
      border-radius: 18px;
      background: #fff;
      box-shadow: 0 24px 64px rgba(0, 31, 66, .22);
      display: flex;
      flex-direction: column;
    }
    .pe-devis-pay-modal__grid {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
      gap: 14px 18px;
      min-height: 0;
      align-items: start;
    }
    @media (max-width: 640px) {
      .pe-devis-pay-modal__grid {
        grid-template-columns: 1fr;
        gap: 10px;
      }
      .pe-devis-pay-modal__panel {
        max-height: calc(100dvh - 16px);
        padding: 12px 36px 12px 12px;
      }
    }
    @media (max-height: 720px) {
      .pe-devis-pay-modal__panel {
        padding-top: 10px;
        padding-bottom: 10px;
      }
      .pe-devis-pay-modal__head h2 { font-size: 1.05rem; }
      .pe-devis-pay-modal__recap { padding: 10px 12px; }
      .pe-devis-pay-modal__recap .pe-devis-pay-total-amount { font-size: 1.25rem; }
      .pe-devis-pay-modal__btn-secondary,
      .pe-devis-pay-modal__btn-primary { min-height: 38px; font-size: 13px; }
    }
    .pe-devis-pay-modal__col { min-width: 0; }
    .pe-devis-pay-modal__section-label {
      margin: 0 0 8px;
      font-size: 12px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .05em;
      color: #6b7a99;
    }
    .pe-devis-pay-modal__close {
      position: absolute; top: 10px; right: 10px; width: 36px; height: 36px;
      border: none; border-radius: 50%; background: #F6F4EF; color: #142D6F;
      font-size: 20px; cursor: pointer; display: flex; align-items: center; justify-content: center;
      z-index: 2;
    }
    .pe-devis-pay-modal__close:hover { background: #e8ecf4; }
    .pe-devis-pay-modal__badge {
      display: inline-flex; align-items: center; gap: 4px; margin-bottom: 6px;
      padding: 4px 10px; border-radius: 999px; background: rgba(163,189,255,.35);
      font-size: 11px; font-weight: 700; color: #142D6F; text-transform: uppercase; letter-spacing: .04em;
    }
    .pe-devis-pay-modal__head h2 { margin: 0; font-size: 1.2rem; line-height: 1.25; color: #142D6F; }
    .pe-devis-pay-modal__ref { margin: 6px 0 0; font-size: 12px; color: #142D6F; font-weight: 600; }
    .pe-devis-pay-modal__recap {
      margin: 0; padding: 12px 14px; border-radius: 12px;
      background: linear-gradient(145deg, rgba(163,189,255,.22) 0%, #f8fafc 100%);
      border: 1px solid rgba(20,45,111,.1);
    }
    .pe-devis-pay-modal__recap .pe-devis-pay-label {
      margin: 0 0 6px; font-size: 11px;
    }
    .pe-devis-pay-modal__recap .pe-devis-pay-lines {
      margin: 0 0 8px; padding: 0;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 4px 12px;
      list-style: none;
    }
    .pe-devis-pay-modal__recap .pe-devis-pay-line {
      padding: 4px 0;
      border: none;
      font-size: 13px;
      gap: 8px;
    }
    .pe-devis-pay-modal__recap .pe-devis-pay-line-amount {
      font-size: 13px;
    }
    .pe-devis-pay-modal__recap .pe-devis-pay-total {
      margin: 0; padding-top: 8px;
      border-top: 1px solid rgba(20,45,111,.12);
      display: flex; align-items: baseline; justify-content: space-between; gap: 10px;
    }
    .pe-devis-pay-modal__recap .pe-devis-pay-total-label {
      font-size: 11px; margin: 0;
    }
    .pe-devis-pay-modal__recap .pe-devis-pay-total-amount {
      font-size: 1.5rem; line-height: 1.1;
    }
    .pe-devis-pay-modal__legal {
      display: flex;
      flex-direction: column;
      gap: 10px;
      margin: 16px 0 0;
      padding-top: 16px;
      border-top: 1px solid rgba(20, 45, 111, .1);
    }

    .pe-devis-pay-modal__legal .pe-devis-pay-modal__section-label {
      margin-bottom: 0;
    }

    .pe-devis-check--modal {
      font-size: 13px;
      line-height: 1.45;
      gap: 10px;
      padding: 10px 12px;
      border-radius: 12px;
      border: 1px solid rgba(20, 45, 111, .1);
      background: #fff;
    }

    .pe-devis-check--modal.is-error {
      border-color: rgba(220, 53, 69, .45);
      background: rgba(220, 53, 69, .06);
    }

    .pe-devis-check--modal input {
      width: 18px;
      height: 18px;
      margin-top: 2px;
      flex-shrink: 0;
    }
    .pe-devis-pay-options--modal {
      grid-template-columns: 1fr 1fr;
      gap: 8px;
      margin: 0 0 10px;
    }
    .pe-devis-pay-modal .pe-devis-pay-option--modal {
      padding: 10px 10px 10px 8px;
      min-height: 0;
      border-radius: 12px;
      gap: 8px;
    }
    .pe-devis-pay-modal .pe-devis-pay-option--modal .pe-devis-pay-head {
      margin: 0;
    }
    .pe-devis-pay-modal .pe-devis-pay-option--modal .pe-devis-pay-head i {
      font-size: 18px;
    }
    .pe-devis-pay-modal .pe-devis-pay-option--modal strong {
      font-size: 13px;
    }
    .pe-devis-pay-modal .pe-devis-pay-option--modal .pe-devis-pay-desc {
      display: none;
    }
    .pe-devis-pay-modal__alert {
      margin-bottom: 10px; padding: 10px 12px; border-radius: 8px; font-size: 13px; line-height: 1.45;
    }
    .pe-devis-pay-modal__alert:not([hidden]) {
      display: block;
    }
    .pe-devis-pay-modal__alert--error {
      background: rgba(220, 53, 69, .1); border: 1px solid rgba(220, 53, 69, .35); color: #842029;
    }
    .pe-devis-pay-modal__alert--ok {
      background: rgba(25, 135, 84, .1); border: 1px solid rgba(25, 135, 84, .35); color: #0f5132;
    }
    .pe-devis-pay-modal__actions {
      display: flex; flex-wrap: nowrap; gap: 8px; margin-bottom: 6px;
    }
    .pe-devis-pay-modal__btn-secondary,
    .pe-devis-pay-modal__btn-primary {
      flex: 1 1 0; min-height: 42px; padding: 10px 14px; border-radius: 10px;
      font-size: 14px; font-weight: 700; font-family: inherit; cursor: pointer;
    }
    .pe-devis-pay-modal__btn-secondary {
      border: 2px solid rgba(20,45,111,.15); background: #fff; color: #142D6F;
    }
    .pe-devis-pay-modal__btn-primary {
      border: none; background: linear-gradient(135deg, #142D6F 0%, #2a4a9e 100%); color: #fff;
      display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    }
    .pe-devis-pay-modal__btn-primary:disabled { opacity: .55; cursor: not-allowed; }
    .pe-devis-pay-modal__note {
      margin: 0; font-size: 11px; color: #6b7a99; text-align: center; line-height: 1.35;
    }
    .pe-devis-pay-modal__panel--checkout {
      max-width: min(640px, calc(100vw - 24px));
      padding: 20px 48px 20px 22px;
    }
    .pe-devis-pay-modal__head--compact h2 {
      font-size: 1.15rem;
      margin: 0 0 4px;
    }
    .pe-devis-pay-modal__hero {
      text-align: center;
      padding: 14px 16px;
      margin-bottom: 14px;
      border-radius: 14px;
      background: linear-gradient(145deg, rgba(163,189,255,.25) 0%, #f8fafc 100%);
      border: 1px solid rgba(20,45,111,.1);
    }
    .pe-devis-pay-hero-label {
      display: block;
      font-size: 11px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .06em;
      color: #6b7a99;
      margin-bottom: 4px;
    }
    .pe-devis-pay-hero-amount {
      display: block;
      font-size: 2rem;
      font-weight: 700;
      color: #142D6F;
      line-height: 1.1;
    }
    .pe-devis-pay-mode-tabs {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 10px;
      margin-bottom: 14px;
    }
    .pe-devis-pay-modal__panel--checkout .pe-devis-pay-mode-tab {
      min-height: 48px;
      font-size: 14px;
    }
    .pe-devis-pay-mode-tab {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 6px;
      min-height: 44px;
      padding: 8px 10px;
      border: 2px solid rgba(20,45,111,.12);
      border-radius: 12px;
      background: #F6F4EF;
      font-family: inherit;
      font-size: 13px;
      font-weight: 700;
      color: #142D6F;
      cursor: pointer;
      transition: border-color .15s, background .15s;
    }
    .pe-devis-pay-mode-tab:hover {
      border-color: rgba(20,45,111,.28);
      background: #fff;
    }
    .pe-devis-pay-mode-tab.is-active {
      border-color: #142D6F;
      background: #fff;
      box-shadow: 0 4px 14px rgba(20,45,111,.1);
    }
    .pe-devis-pay-mode-tab i { font-size: 18px; }
    .pe-devis-pay-mode-tab--collecte {
      flex-direction: column;
      gap: 4px;
      padding: 10px 8px;
      font-size: 12px;
      line-height: 1.25;
      text-align: center;
    }
    .pe-devis-pay-mode-tab--collecte i { font-size: 20px; }
    .pe-devis-pay-modal__mode-body {
      position: relative;
      min-height: 0;
      margin-bottom: 12px;
    }
    .pe-devis-pay-modal__stripe-wrap,
    .pe-devis-pay-modal__cash-note {
      opacity: 0;
      max-height: 0;
      overflow: hidden;
      margin: 0;
      padding: 0;
      border-color: transparent;
      pointer-events: none;
      transform: translateY(6px);
      transition:
        opacity .28s ease,
        max-height .35s ease,
        transform .28s ease,
        margin .28s ease,
        padding .28s ease,
        border-color .28s ease;
    }
    .pe-devis-pay-modal__stripe-wrap.is-active,
    .pe-devis-pay-modal__cash-note.is-active {
      opacity: 1;
      max-height: 520px;
      transform: translateY(0);
      pointer-events: auto;
    }
    .pe-devis-pay-modal__stripe-wrap {
      position: relative;
      padding: 14px 18px;
      border-radius: 12px;
      border: 1px solid rgba(20,45,111,.12);
      background: #fafbfc;
      min-height: 160px;
    }
    .pe-devis-pay-modal__stripe-wrap.is-loading {
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .pe-devis-pay-modal__stripe-wrap.is-loading #pe-devis-stripe-payment-element {
      position: absolute;
      width: 1px;
      height: 1px;
      overflow: hidden;
      clip: rect(0, 0, 0, 0);
      white-space: nowrap;
    }
    .pe-devis-pay-modal__stripe-loading {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 10px;
      width: 100%;
      padding: 20px 12px;
      text-align: center;
    }
    .pe-devis-pay-modal__stripe-loading[hidden] { display: none !important; }
    .pe-devis-pay-modal__spinner {
      width: 42px;
      height: 42px;
      border: 3px solid rgba(20, 45, 111, .12);
      border-top-color: #142D6F;
      border-radius: 50%;
      animation: pe-devis-pay-modal-spin .75s linear infinite;
    }
    .pe-devis-pay-modal__stripe-loading-title {
      margin: 4px 0 0;
      font-size: 15px;
      font-weight: 700;
      line-height: 1.35;
      color: #142D6F;
    }
    .pe-devis-pay-modal__stripe-loading-text {
      margin: 0;
      font-size: 13px;
      line-height: 1.45;
      color: #6b7a99;
    }
    @keyframes pe-devis-pay-modal-spin {
      to { transform: rotate(360deg); }
    }
    .pe-devis-pay-modal__btn-primary .ri-loader-4-line {
      animation: pe-devis-pay-modal-spin .75s linear infinite;
    }
    .pe-devis-pay-modal__stripe-wrap.is-active {
      margin-bottom: 0;
    }
    .pe-devis-pay-modal__panel--checkout #pe-devis-stripe-payment-element {
      width: 100%;
      min-width: 0;
    }
    .pe-devis-pay-modal__stripe-wrap[hidden],
    .pe-devis-pay-modal__cash-note[hidden] { display: none !important; }
    .pe-devis-pay-modal__stripe-hint {
      margin: 0 0 12px;
      font-size: 13px;
      line-height: 1.45;
      color: #142D6F;
    }
    .pe-devis-pay-modal__stripe-hint[hidden] { display: none !important; }
    .pe-devis-pay-modal__cash-note {
      margin: 0;
      padding: 14px 16px;
      font-size: 13px;
      line-height: 1.5;
      color: #142D6F;
      background: #f6f4ef;
      border-radius: 12px;
      border: 1px solid rgba(20,45,111,.1);
    }
    .pe-devis-pay-modal__cash-note.is-active {
      margin-bottom: 0;
    }
    .pe-devis-pay-modal__panel--checkout .pe-devis-pay-modal__actions {
      margin-bottom: 0;
    }
    .pe-devis-pay-modal__panel--checkout .pe-devis-pay-modal__btn-primary {
      width: 100%;
      flex: none;
      min-height: 48px;
      font-size: 15px;
    }
    .pe-devis-payment-title {
      font-size: 16px; font-weight: 700; color: #142D6F; margin: 28px 0 14px;
    }
    .pe-devis-pay-options {
      display: grid; grid-template-columns: 1fr; gap: 12px; margin-bottom: 24px;
    }
    @media (min-width: 768px) {
      .pe-devis-pay-options { grid-template-columns: 1fr 1fr; }
    }
    .pe-devis-pay-option {
      position: relative; display: flex; align-items: flex-start; gap: 14px;
      padding: 18px 18px 18px 16px; border-radius: 16px; min-height: 100%;
      border: 2px solid rgba(20,45,111,.12); background: #F6F4EF; cursor: pointer;
      transition: border-color .2s, background .2s, box-shadow .2s, transform .15s;
    }
    .pe-devis-pay-option:hover {
      border-color: rgba(20,45,111,.28); background: #fff;
    }
    .pe-devis-pay-option:has(input:checked) {
      border-color: #142D6F; background: #fff;
      box-shadow: 0 8px 24px rgba(20,45,111,.1);
    }
    .pe-devis-pay-option:has(input:focus-visible) {
      outline: 3px solid rgba(163,189,255,.55); outline-offset: 2px;
    }
    /* Neutralise le style global app.min.css (input { width:100%; height:60px }) */
    .pe-devis-pay-option input[type="radio"] {
      position: absolute; opacity: 0; width: 0; height: 0; margin: 0; pointer-events: none;
    }
    .pe-devis-pay-indicator {
      flex-shrink: 0; width: 22px; height: 22px; margin-top: 2px;
      border: 2px solid rgba(20,45,111,.28); border-radius: 50%;
      background: #fff; transition: border-color .2s, background .2s, box-shadow .2s;
    }
    .pe-devis-pay-option:has(input:checked) .pe-devis-pay-indicator {
      border-color: #142D6F; background: #142D6F;
      box-shadow: inset 0 0 0 5px #fff;
    }
    .pe-devis-pay-content { flex: 1; min-width: 0; }
    .pe-devis-pay-head {
      display: flex; align-items: center; gap: 10px; margin-bottom: 6px;
    }
    .pe-devis-pay-head i {
      font-size: 22px; line-height: 1; color: #142D6F; flex-shrink: 0;
    }
    .pe-devis-pay-option strong {
      display: block; font-size: 15px; font-weight: 700; color: #142D6F; line-height: 1.3;
    }
    .pe-devis-pay-desc {
      display: block; margin: 0; font-size: 13px; color: #6b7a99; line-height: 1.45;
    }
    .pe-devis-step-final-fields {
      padding-top: 4px; margin-bottom: 8px;
      border-top: 1px solid rgba(20,45,111,.08);
    }
    .pe-devis-submit--pay { background: linear-gradient(135deg, #142D6F 0%, #2a4a9e 100%); }
    .pe-devis-aside-actions.is-final-step .pe-devis-submit--pay {
      font-size: 1.05rem;
      min-height: 52px;
      box-shadow: 0 10px 28px rgba(20, 45, 111, .28);
    }
    .pe-devis-submit-hint {
      margin: 8px 0 0;
      font-size: 12px;
      color: #6b7a99;
      text-align: center;
      line-height: 1.35;
    }
    .pe-devis-submit-hint i { vertical-align: -2px; margin-right: 4px; color: #142D6F; }
    .pe-devis-promo {
      margin-top: 4px;
      margin-bottom: 16px;
      padding: 16px 18px;
      border-radius: 14px;
      background: #fff;
      border: 1px dashed rgba(20, 45, 111, .22);
    }
    .pe-devis-promo-aside {
      margin-bottom: 14px;
    }
    .pe-devis-promo--aside {
      margin: 0;
      padding: 14px 16px;
      background: linear-gradient(180deg, #fff 0%, #f8fbff 100%);
      border: 1px solid rgba(20, 45, 111, .12);
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, .8);
    }
    .pe-devis-promo--aside .pe-devis-promo__head label {
      margin-bottom: 8px;
      font-size: 13px;
    }
    .pe-devis-promo--aside .pe-devis-promo__input,
    .pe-devis-promo--aside .pe-devis-promo__apply {
      height: 40px;
      font-size: 14px;
    }
    .pe-devis-promo__head label {
      display: block;
      margin: 0 0 10px;
      font-size: 14px;
      font-weight: 600;
      color: #142D6F;
    }
    .pe-devis-promo__row {
      display: flex;
      gap: 10px;
      align-items: stretch;
    }
    .pe-devis-promo__input {
      flex: 1 1 auto;
      min-width: 0;
      height: 44px;
      padding: 0 14px;
      border-radius: 10px;
      border: 1px solid rgba(20, 45, 111, .18);
      font-family: inherit;
      font-size: 15px;
      letter-spacing: .04em;
      text-transform: uppercase;
    }
    .pe-devis-promo__input:focus {
      outline: none;
      border-color: #142D6F;
      box-shadow: 0 0 0 3px rgba(20, 45, 111, .12);
    }
    .pe-devis-promo__apply {
      flex: 0 0 auto;
      height: 44px;
      padding: 0 16px;
      border: none;
      border-radius: 10px;
      background: #142D6F;
      color: #fff;
      font-family: inherit;
      font-size: 14px;
      font-weight: 600;
      cursor: pointer;
      white-space: nowrap;
    }
    .pe-devis-promo__apply:hover:not(:disabled) { background: #0f2458; }
    .pe-devis-promo__apply:disabled { opacity: .65; cursor: wait; }
    .pe-devis-promo__feedback {
      margin: 10px 0 0;
      font-size: 13px;
      line-height: 1.4;
    }
    .pe-devis-promo__feedback.is-success { color: #0f7a45; }
    .pe-devis-promo__feedback.is-error { color: #b42318; }
    .pe-devis-cart-promo {
      display: flex;
      align-items: baseline;
      justify-content: space-between;
      gap: 12px;
      margin-top: 10px;
      padding-top: 10px;
      border-top: 1px dashed rgba(20, 45, 111, .14);
      font-size: 13px;
      color: #35507a;
    }
    .pe-devis-cart-promo-amount {
      font-weight: 700;
      color: #0f7a45;
      white-space: nowrap;
    }
    .pe-devis-pay-promo {
      display: flex;
      align-items: baseline;
      justify-content: space-between;
      gap: 12px;
      margin: 10px 0 0;
      padding-top: 10px;
      border-top: 1px dashed rgba(20, 45, 111, .14);
      font-size: 13px;
      color: #35507a;
    }
    .pe-devis-pay-promo-amount {
      font-weight: 700;
      color: #0f7a45;
      white-space: nowrap;
    }
    .pe-devis-checkout-pay {
      margin-top: 20px;
      padding: 16px 18px;
      border-radius: 14px;
      background: #f8fafc;
      border: 1px solid rgba(20, 45, 111, .1);
    }
    .pe-devis-check--checkout {
      font-size: 14px;
      line-height: 1.45;
      margin: 0;
    }
    .pe-devis-checkout-alt {
      display: block;
      width: 100%;
      margin-top: 12px;
      padding: 0;
      border: none;
      background: none;
      font-family: inherit;
      font-size: 13px;
      color: #6b7a99;
      text-decoration: underline;
      text-underline-offset: 3px;
      cursor: pointer;
      text-align: left;
    }
    .pe-devis-checkout-alt:hover,
    .pe-devis-checkout-alt.is-active {
      color: #142D6F;
    }
    .pe-devis-optional {
      font-weight: 400;
      color: #6b7a99;
      font-size: 0.9em;
    }
    .pe-devis-submit-secondary {
      display: block; width: 100%; text-align: center; margin-top: 12px; font-size: 14px;
      color: #6b7a99; background: none; border: none; cursor: pointer; font-family: inherit;
      text-decoration: underline; text-underline-offset: 3px;
    }
    .pe-devis-submit-secondary:hover { color: #142D6F; }

    .pe-devis-progress-card {
      background: linear-gradient(180deg, #fff 0%, #fbfdff 100%);
      border-radius: 20px;
      padding: 24px 22px 22px;
      border: 1px solid rgba(0, 43, 91, .08);
      box-shadow: 0 10px 40px rgba(0, 43, 91, .08);
      position: relative;
      overflow: hidden;
    }
    .pe-devis-progress-card::before {
      content: "";
      position: absolute;
      inset: 0 0 auto 0;
      height: 4px;
      background: linear-gradient(90deg, #002B5B 0%, #1d6fa8 100%);
    }
    @media (min-width: 992px) {
      .pe-devis-progress-card {
        padding: 26px 24px 24px;
      }
    }
    .pe-devis-progress-top {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 12px;
      margin-bottom: 16px;
    }
    .pe-devis-progress-top__copy {
      min-width: 0;
    }
    .pe-devis-progress-top h3 {
      font-size: 17px;
      color: #002B5B;
      margin: 0;
      font-weight: 800;
      letter-spacing: -.01em;
    }
    .pe-devis-progress-sub {
      margin: 4px 0 0;
      font-size: 12px;
      line-height: 1.4;
      color: #64748b;
    }
    .pe-devis-progress-badge,
    .pe-devis-progress-pct {
      flex-shrink: 0;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 32px;
      padding: 6px 12px;
      border-radius: 999px;
      background: rgba(0, 43, 91, .08);
      color: #002B5B;
      font-size: 12px;
      font-weight: 800;
      letter-spacing: .02em;
      white-space: nowrap;
    }
    .pe-devis-progress-bar {
      height: 8px;
      border-radius: 999px;
      background: #e8eef5;
      overflow: hidden;
      margin-bottom: 22px;
      box-shadow: inset 0 1px 2px rgba(0, 43, 91, .06);
    }
    .pe-devis-progress-fill {
      height: 100%;
      width: 33%;
      border-radius: 999px;
      background: linear-gradient(90deg, #002B5B 0%, #1a6dad 100%);
      transition: width .45s cubic-bezier(.22, 1, .36, 1);
      box-shadow: 0 0 12px rgba(0, 43, 91, .25);
    }
    .pe-devis-progress-track {
      list-style: none;
      margin: 0;
      padding: 0;
      display: flex;
      flex-direction: column;
      gap: 0;
    }
    .pe-devis-progress-step {
      display: flex;
      gap: 14px;
      align-items: stretch;
      margin: 0;
      padding: 0;
      border: 0;
      border-radius: 0;
      background: transparent;
      transition: opacity .25s ease;
    }
    .pe-devis-progress-step__rail {
      display: flex;
      flex-direction: column;
      align-items: center;
      flex-shrink: 0;
      width: 40px;
    }
    .pe-devis-progress-dot {
      position: relative;
      flex-shrink: 0;
      width: 40px;
      height: 40px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      background: #fff;
      border: 2px solid #cbd5e1;
      color: #94a3b8;
      transition: background .25s, border-color .25s, color .25s, box-shadow .25s, transform .25s;
    }
    .pe-devis-progress-dot__icon {
      font-size: 18px;
      line-height: 1;
      transition: opacity .2s ease, transform .2s ease;
    }
    .pe-devis-progress-dot__check {
      position: absolute;
      inset: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      opacity: 0;
      transform: scale(.6);
      transition: opacity .2s ease, transform .2s ease;
      font-size: 20px;
      font-weight: 700;
      color: #fff;
    }
    .pe-devis-progress-step__line {
      flex: 1;
      width: 2px;
      min-height: 18px;
      margin: 6px 0;
      border-radius: 999px;
      background: #dbe3ee;
      transition: background .3s ease;
    }
    .pe-devis-progress-step__content {
      flex: 1;
      min-width: 0;
      padding: 2px 0 18px;
    }
    .pe-devis-progress-step:last-child .pe-devis-progress-step__content {
      padding-bottom: 0;
    }
    .pe-devis-progress-step__content strong {
      display: block;
      font-size: 15px;
      font-weight: 700;
      color: #64748b;
      margin-bottom: 2px;
      transition: color .25s;
    }
    .pe-devis-progress-step__content span {
      display: block;
      font-size: 12px;
      line-height: 1.45;
      color: #94a3b8;
      transition: color .25s;
    }
    .pe-devis-progress-step.is-active .pe-devis-progress-step__content {
      padding: 8px 12px 20px;
      margin: -6px 0 0 -4px;
      border-radius: 14px;
      background: linear-gradient(135deg, rgba(232, 244, 252, .95) 0%, rgba(248, 250, 252, .95) 100%);
      border: 1px solid rgba(0, 43, 91, .1);
      box-shadow: 0 8px 24px rgba(0, 43, 91, .06);
    }
    .pe-devis-progress-step.is-active:last-child .pe-devis-progress-step__content {
      padding-bottom: 8px;
    }
    .pe-devis-progress-step.is-active .pe-devis-progress-dot {
      background: #002B5B;
      border-color: #002B5B;
      color: #fff;
      box-shadow: 0 0 0 4px rgba(0, 43, 91, .12), 0 8px 20px rgba(0, 43, 91, .22);
      transform: scale(1.04);
    }
    .pe-devis-progress-step.is-active .pe-devis-progress-dot__icon {
      opacity: 1;
    }
    .pe-devis-progress-step.is-active strong {
      color: #002B5B;
      font-weight: 800;
    }
    .pe-devis-progress-step.is-active span {
      color: #475569;
    }
    .pe-devis-progress-step.is-done {
      cursor: pointer;
    }
    .pe-devis-progress-step.is-done .pe-devis-progress-dot {
      background: #0ea5a4;
      border-color: #0ea5a4;
      color: #fff;
      box-shadow: 0 4px 14px rgba(14, 165, 164, .28);
    }
    .pe-devis-progress-step.is-done .pe-devis-progress-dot__icon {
      opacity: 0;
      transform: scale(.5);
    }
    .pe-devis-progress-step.is-done .pe-devis-progress-dot__check {
      opacity: 1;
      transform: scale(1);
    }
    .pe-devis-progress-step.is-done .pe-devis-progress-step__line {
      background: linear-gradient(180deg, #0ea5a4 0%, #002B5B 100%);
    }
    .pe-devis-progress-step.is-done strong {
      color: #142D6F;
    }
    .pe-devis-progress-step.is-done span {
      color: #64748b;
    }
    .pe-devis-progress-step.is-done:hover .pe-devis-progress-step__content strong {
      color: #002B5B;
    }
    .pe-devis-progress-step.is-done:focus-visible {
      outline: none;
    }
    .pe-devis-progress-step.is-done:focus-visible .pe-devis-progress-dot {
      box-shadow: 0 0 0 3px rgba(14, 165, 164, .35);
    }
    .pe-devis-progress-step:not(.is-active):not(.is-done) {
      opacity: .82;
    }
    .pe-devis-aside-foot {
      margin-top: 20px;
      padding-top: 20px;
      border-top: 1px solid #E2E8F0;
      display: flex;
      flex-direction: column;
      gap: 16px;
    }
    .pe-devis-aside-info {
      display: flex;
      align-items: flex-start;
      gap: 12px;
      margin: 0;
      padding: 14px 16px;
      border-radius: 12px;
      background: #F8FAFC;
      border: 1px solid #E2E8F0;
      font-size: var(--devis-font-sm);
      line-height: 1.55;
      color: var(--devis-text-muted);
    }
    .pe-devis-aside-info i {
      color: #002B5B;
      font-size: 20px;
      flex-shrink: 0;
      margin-top: 2px;
    }
    .pe-devis-aside-info p { margin: 0; }
    .pe-devis-aside-actions {
      margin: 0;
      display: flex;
      flex-direction: column;
      gap: 10px;
      width: 100%;
      position: relative;
      z-index: 5;
      pointer-events: auto;
    }
    .pe-devis-aside-actions .pe-devis-btn-prev,
    .pe-devis-aside-actions .pe-devis-btn-next {
      flex: 0 0 auto;
      width: 100%;
      min-width: 0;
    }
    .pe-devis-aside-actions:has(.pe-devis-btn-prev[hidden]) .pe-devis-btn-next {
      width: 100%;
    }
    @media (min-width: 400px) {
      .pe-devis-aside-actions:not(.is-final-step) {
        flex-direction: row;
        flex-wrap: wrap;
      }
      .pe-devis-aside-actions:not(.is-final-step) .pe-devis-btn-prev,
      .pe-devis-aside-actions:not(.is-final-step) .pe-devis-btn-next {
        flex: 1 1 calc(50% - 5px);
        width: auto;
      }
    }
    .pe-devis-aside-actions.is-final-step .pe-devis-btn-prev {
      flex: 1 1 100%; min-width: 100%; order: 1;
    }
    .pe-devis-aside-actions.is-final-step .pe-devis-submit {
      order: 2; width: 100%; margin: 0; padding: 16px 20px; font-size: 16px;
    }
    .pe-devis-aside-actions.is-final-step .pe-devis-submit-secondary {
      order: 3; width: 100%; margin: 0; padding: 10px 8px;
    }

    .pe-devis-progress-mobile {
      background: #fff; border-radius: 16px; padding: 18px 20px; margin-bottom: 20px;
      box-shadow: 0 8px 28px rgba(20,45,111,.08); border: 1px solid rgba(20,45,111,.08);
    }
    .pe-devis-progress-mobile .pe-devis-progress-top { margin-bottom: 10px; }
    .pe-devis-progress-mobile h3 { font-size: 15px; }
    .pe-devis-progress-mobile .pe-devis-progress-badge,
    .pe-devis-progress-mobile .pe-devis-progress-pct { font-size: 11px; min-height: 28px; padding: 5px 10px; }
    .pe-devis-progress-mobile .pe-devis-progress-bar { margin-bottom: 0; }

    .pe-zone-check-badge {
      display: inline-block; font-size: 12px; font-weight: 700; text-transform: uppercase;
      letter-spacing: .06em; color: #142D6F; background: #F6F4EF;
      padding: 6px 14px; border-radius: 50px; margin-bottom: 12px;
    }
    .pe-devis-step[data-step="0"] .pe-devis-step-title { margin-bottom: 16px; }
    .pe-devis-step[data-step="0"] .pe-devis-adresse-wrap { margin-bottom: 0; }
    .pe-devis-zone-result {
      display: none; align-items: flex-start; gap: 12px; margin-top: 14px; padding: 14px 16px;
      border-radius: 12px; font-size: 14px; line-height: 1.45;
    }
    .pe-devis-zone-result.is-visible { display: flex; }
    .pe-devis-zone-result i { font-size: 22px; flex-shrink: 0; margin-top: 1px; }
    .pe-devis-zone-result--warn { background: #FEF2F2; border: 1px solid rgba(220, 53, 69, .25); color: #842029; }
    .pe-devis-zone-result--warn i { color: #dc3545; }
    .pe-devis-zone-result--soon { background: #EFF6FF; border: 1px solid rgba(20, 45, 111, .18); color: #142D6F; }
    .pe-devis-zone-result--soon i { color: #2563eb; }
    .pe-devis-zone-result--ok { background: #ECFDF5; border: 1px solid rgba(16, 185, 129, .25); color: #065F46; }
    .pe-devis-zone-result--ok i { color: #10b981; }
    .pe-devis-zone-result strong { display: block; margin-bottom: 4px; font-size: 15px; }
    .pe-devis-zone-result span { display: block; }
    .pe-devis-btn-next:disabled { opacity: .7; cursor: wait; }
    .pe-devis-btn-next.pe-devis-btn-next--blocked:disabled { cursor: not-allowed; }
    .pe-devis-adresse-recap {
      margin-top: 16px; padding: 14px 16px; border-radius: 12px; background: #F6F4EF;
      font-size: 14px; color: #6b7a99; line-height: 1.5;
    }
    .pe-devis-adresse-recap strong { color: #142D6F; }
    .pe-devis-adresse-wrap { margin-bottom: 8px; }
    .pe-devis-adresse-field {
      position: relative;
      z-index: 20;
      overflow: visible;
    }
    .pe-devis-adresse-input {
      display: flex; align-items: stretch; gap: 0;
      background: #F6F4EF; border-radius: 14px; padding: 6px;
      border: 1px solid rgba(20,45,111,.1);
      transition: border-color .2s, box-shadow .2s;
      position: relative;
    }
    .pe-devis-adresse-field:focus-within .pe-devis-adresse-input {
      border-color: rgba(20,45,111,.25);
      box-shadow: 0 0 0 3px rgba(163,189,255,.35);
    }
    .pe-devis-adresse-field .pe-zone-check-suggestions {
      list-style: none; margin: 6px 0 0; padding: 6px; position: absolute; left: 0; right: 0; top: 100%;
      background: #fff; border: 1px solid rgba(20,45,111,.12); border-radius: 12px;
      box-shadow: 0 16px 40px rgba(20,45,111,.14); z-index: 1000; max-height: 280px; overflow-y: auto;
    }
    .pe-devis-adresse-field .pe-zone-check-suggestions.is-open,
    .pe-devis-adresse-field .pe-zone-check-suggestions:not([hidden]) {
      display: block !important; visibility: visible;
    }
    .pe-devis-adresse-field .pe-zone-ac-item {
      display: flex; align-items: flex-start; justify-content: space-between; gap: 12px;
      padding: 12px 14px; border-radius: 10px; cursor: pointer; transition: background .15s, color .15s;
    }
    .pe-devis-adresse-field .pe-zone-ac-item + .pe-zone-ac-item { margin-top: 2px; }
    .pe-devis-adresse-field .pe-zone-ac-item:hover,
    .pe-devis-adresse-field .pe-zone-ac-item.is-active { background: #142D6F; color: #fff; }
    .pe-devis-adresse-field .pe-zone-ac-item:hover .pe-zone-ac-item__meta,
    .pe-devis-adresse-field .pe-zone-ac-item.is-active .pe-zone-ac-item__meta { color: rgba(255,255,255,.75); }
    .pe-devis-adresse-field .pe-zone-ac-item__body { min-width: 0; flex: 1; }
    .pe-devis-adresse-field .pe-zone-ac-item__title {
      display: block; font-size: 15px; font-weight: 700; color: inherit; line-height: 1.3;
      white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    }
    .pe-devis-adresse-field .pe-zone-ac-item__meta {
      display: block; margin-top: 3px; font-size: 12px; color: #6b7a99; line-height: 1.4;
    }
    .pe-devis-adresse-field .pe-zone-ac-item__badge {
      flex-shrink: 0; font-size: 11px; font-weight: 700; padding: 4px 10px; border-radius: 50px;
      line-height: 1.2; white-space: nowrap;
    }
    .pe-devis-adresse-field .pe-zone-ac-item__badge--ok { background: rgba(52,199,89,.18); color: #1f7a3d; }
    .pe-devis-adresse-field .pe-zone-ac-item__badge--warn { background: rgba(230,126,34,.18); color: #a35b00; }
    .pe-devis-adresse-field .pe-zone-ac-item__badge--off { background: rgba(231,76,60,.14); color: #922b21; }
    .pe-devis-adresse-field .pe-zone-ac-item__badge--muted { background: #eef1f7; color: #6b7a99; }
    .pe-devis-adresse-field .pe-zone-ac-item:hover .pe-zone-ac-item__badge--ok,
    .pe-devis-adresse-field .pe-zone-ac-item.is-active .pe-zone-ac-item__badge--ok,
    .pe-devis-adresse-field .pe-zone-ac-item:hover .pe-zone-ac-item__badge--warn,
    .pe-devis-adresse-field .pe-zone-ac-item.is-active .pe-zone-ac-item__badge--warn,
    .pe-devis-adresse-field .pe-zone-ac-item:hover .pe-zone-ac-item__badge--off,
    .pe-devis-adresse-field .pe-zone-ac-item.is-active .pe-zone-ac-item__badge--off {
      background: rgba(255,255,255,.22); color: #fff;
    }
    .pe-devis-adresse-icon {
      flex-shrink: 0; width: 48px; display: flex; align-items: center; justify-content: center;
      border-radius: 10px; background: #fff; color: #142D6F; font-size: 22px; margin: 0 0 0 6px;
    }
    .pe-devis-adresse-field {
      flex: 1; border: none; background: #fff; border-radius: 10px;
      padding: 16px 18px; font-size: 17px; font-weight: 500; color: #142D6F;
      min-width: 0;
    }
    .pe-devis-adresse-field:focus { outline: none; }
    .pe-devis-adresse-field::placeholder { color: #8a96ad; font-weight: 400; }
    .pe-devis-adresse-hint { margin: 10px 0 0; font-size: 13px; color: #8a96ad; line-height: 1.45; }

    /* Adresses devis — API Adresse + saisie manuelle */
    .pe-devis-addresses-title {
      margin: 0 0 1rem;
    }
    .pe-devis-field-hint--compact {
      margin-top: 6px;
      font-size: 12px;
    }
    .pe-devis-addresses {
      display: flex;
      flex-direction: column;
      gap: 20px;
    }
    .pe-devis-address-block {
      padding: 16px;
      border-radius: 14px;
      border: 1px solid rgba(0, 43, 91, .1);
      background: #fff;
      box-shadow: 0 2px 12px rgba(15, 23, 42, 0.04);
    }
    .pe-devis-address-block__head {
      display: flex;
      flex-wrap: wrap;
      align-items: flex-start;
      justify-content: space-between;
      gap: 12px;
      margin-bottom: 14px;
    }
    .pe-devis-address-block__title-row {
      display: flex;
      align-items: center;
      gap: 10px;
      min-width: 0;
    }
    .pe-devis-address-block__icon {
      flex-shrink: 0;
      width: 40px;
      height: 40px;
      display: flex;
      align-items: center;
      justify-content: center;
      border-radius: 10px;
      background: linear-gradient(135deg, #eef3ff 0%, #f8faff 100%);
      color: var(--devis-navy);
      font-size: 1.25rem;
    }
    .pe-devis-address-block__title {
      margin: 0;
      font-size: 1rem;
      font-weight: 700;
      color: var(--devis-navy);
    }
    .pe-devis-address-block__mode {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
    }
    .pe-devis-address-block__mode-btn {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 8px 12px;
      border-radius: 8px;
      border: 1px solid #cbd5e1;
      background: #f8fafc;
      font-size: var(--devis-font-xs);
      font-weight: 600;
      color: var(--devis-text-muted);
      cursor: pointer;
      transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
    }
    .pe-devis-address-block__mode-btn.is-active {
      border-color: var(--devis-navy);
      background: #eef3ff;
      color: var(--devis-navy);
    }
    .pe-devis-address-block__search-panel {
      position: relative;
      z-index: 5;
    }
    .pe-devis-address-block__search-field {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 4px 12px;
      border-radius: 10px;
      border: 1px solid #cbd5e1;
      background: #f8fafc;
      transition: border-color 0.15s ease, box-shadow 0.15s ease;
    }
    .pe-devis-address-block__search-field:focus-within {
      border-color: var(--devis-navy);
      box-shadow: 0 0 0 3px rgba(163, 189, 255, 0.35);
      background: #fff;
    }
    .pe-devis-address-block__search-icon {
      color: var(--devis-navy);
      font-size: 1.2rem;
      flex-shrink: 0;
    }
    .pe-devis-address-block__search-input {
      flex: 1;
      min-width: 0;
      min-height: 44px;
      border: 0;
      background: transparent;
      font-size: var(--devis-font-base);
      color: var(--devis-text);
    }
    .pe-devis-address-block__search-input:focus {
      outline: none;
    }
    .pe-devis-address-block__search-hint {
      margin: 8px 0 0;
      font-size: var(--devis-font-xs);
      color: var(--devis-text-soft);
    }
    .pe-devis-address-block__results {
      list-style: none;
      margin: 8px 0 0;
      padding: 6px;
      max-height: 260px;
      overflow-y: auto;
      border-radius: 10px;
      border: 1px solid #e2e8f0;
      background: #fff;
      box-shadow: 0 10px 28px rgba(15, 23, 42, 0.1);
    }
    .pe-devis-address-block__results-empty {
      padding: 12px 14px;
      font-size: var(--devis-font-sm);
      color: var(--devis-text-muted);
    }
    .pe-devis-address-block__result {
      display: grid;
      grid-template-columns: 1fr auto;
      grid-template-rows: auto auto;
      gap: 2px 10px;
      padding: 10px 12px;
      border-radius: 8px;
      cursor: pointer;
      transition: background 0.12s ease;
    }
    .pe-devis-address-block__result:hover {
      background: #eef3ff;
    }
    .pe-devis-address-block__result-label {
      grid-column: 1;
      font-weight: 600;
      font-size: var(--devis-font-sm);
      color: var(--devis-text);
      line-height: 1.35;
    }
    .pe-devis-address-block__result-meta {
      grid-column: 1;
      font-size: var(--devis-font-xs);
      color: var(--devis-text-muted);
    }
    .pe-devis-address-block__result-badge {
      grid-column: 2;
      grid-row: 1 / span 2;
      align-self: center;
      font-size: 10px;
      font-weight: 700;
      padding: 4px 8px;
      border-radius: 50px;
      white-space: nowrap;
    }
    .pe-devis-address-block__result-badge--ok {
      background: rgba(52, 199, 89, 0.18);
      color: #1f7a3d;
    }
    .pe-devis-address-block__result-badge--warn {
      background: rgba(230, 126, 34, 0.18);
      color: #a35b00;
    }
    .pe-devis-address-block__result-badge--off {
      background: rgba(231, 76, 60, 0.14);
      color: #922b21;
    }
    .pe-devis-address-block__result-badge--muted {
      background: #eef1f7;
      color: #6b7a99;
    }
    .pe-devis-address-block__manual-fallback,
    .pe-devis-address-block__back-ban {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      margin-top: 10px;
      padding: 8px 0;
      border: 0;
      background: none;
      font-size: var(--devis-font-sm);
      font-weight: 600;
      color: #2563eb;
      cursor: pointer;
      text-decoration: underline;
      text-underline-offset: 2px;
    }
    .pe-devis-address-block__manual {
      display: flex;
      flex-direction: column;
      gap: 10px;
      padding: 12px;
      border-radius: 10px;
      background: #f8fafc;
      border: 1px solid #e2e8f0;
    }
    .pe-devis-profil-grid--address-manual {
      grid-template-columns: 1fr 1fr;
    }
    @media (max-width: 575.98px) {
      .pe-devis-profil-grid--address-manual {
        grid-template-columns: 1fr;
      }
    }
    .pe-devis-address-block__card {
      margin-top: 12px;
      padding: 14px 16px;
      border-radius: 12px;
      background: linear-gradient(135deg, #f8faff 0%, #eef3ff 100%);
      border: 1px solid rgba(0, 43, 91, 0.14);
      border-left: 4px solid var(--devis-navy);
    }
    .pe-devis-address-block__card-top {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 10px;
      margin-bottom: 8px;
    }
    .pe-devis-address-block__card-badge {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      font-size: var(--devis-font-xs);
      font-weight: 600;
      text-transform: uppercase;
      letter-spacing: 0.03em;
      color: #166534;
    }
    .pe-devis-address-block__card-change {
      border: 0;
      background: none;
      font-size: var(--devis-font-sm);
      font-weight: 600;
      color: #2563eb;
      cursor: pointer;
      text-decoration: underline;
    }
    .pe-devis-address-block__card-label {
      margin: 0 0 4px;
      font-weight: 700;
      font-size: var(--devis-font-base);
      color: var(--devis-navy);
      line-height: 1.35;
    }
    .pe-devis-address-block__card-meta {
      margin: 0 0 8px;
      font-size: var(--devis-font-sm);
      color: var(--devis-text-muted);
    }
    .pe-devis-address-block__zone-badge {
      display: inline-block;
      font-size: var(--devis-font-xs);
      font-weight: 700;
      padding: 4px 10px;
      border-radius: 50px;
    }
    .pe-devis-address-block__zone-badge--ok {
      background: rgba(52, 199, 89, 0.18);
      color: #1f7a3d;
    }
    .pe-devis-address-block__zone-badge--warn {
      background: rgba(230, 126, 34, 0.18);
      color: #a35b00;
    }
    .pe-devis-address-block__zone-badge--off {
      background: rgba(231, 76, 60, 0.14);
      color: #922b21;
    }
    .pe-devis-address-block__zone-badge--muted {
      background: #eef1f7;
      color: #6b7a99;
    }
    .pe-devis-delivery-wrap {
      margin-top: 4px;
    }
    .pe-devis-check--same-address {
      margin: 4px 0 8px;
    }

    /* Étape finale — ergonomie */
    .pe-devis-step--final {
      display: flex;
      flex-direction: column;
      gap: 18px;
    }
    .pe-devis-final-head {
      display: flex;
      align-items: flex-start;
      gap: 14px;
      padding: 18px;
      border-radius: 18px;
      background:
        radial-gradient(circle at 96% 0%, rgba(163, 189, 255, .24), transparent 34%),
        linear-gradient(135deg, #f8faff 0%, #eef4ff 100%);
      border: 1px solid rgba(20, 45, 111, .1);
    }
    .pe-devis-final-head .pe-devis-step-title,
    .pe-devis-final-head .pe-devis-step-intro {
      margin: 0;
    }
    .pe-devis-final-head .pe-devis-step-title {
      font-size: clamp(21px, 2.5vw, 27px);
      letter-spacing: -.02em;
    }
    .pe-devis-final-head .pe-devis-step-intro {
      margin-top: 5px;
      max-width: 680px;
    }
    .pe-devis-final-head__icon,
    .pe-devis-final-card__icon {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      flex: 0 0 auto;
      color: #A3BDFF;
      background: #142D6F;
      box-shadow: 0 10px 24px rgba(20, 45, 111, .16);
    }
    .pe-devis-final-head__icon {
      width: 48px;
      height: 48px;
      border-radius: 16px;
      font-size: 24px;
    }
    .pe-devis-final-card__icon {
      width: 40px;
      height: 40px;
      border-radius: 14px;
      font-size: 20px;
    }
    .pe-devis-coordinates-block,
    .pe-devis-final-card {
      padding: 18px;
      border-radius: 18px;
      background: #fff;
      border: 1px solid rgba(20, 45, 111, .1);
      box-shadow: 0 14px 38px rgba(20, 45, 111, .07);
    }
    .pe-devis-coordinates-block--identity,
    .pe-devis-coordinates-block--addresses {
      margin-bottom: 0;
      padding-bottom: 18px;
      border-bottom: 1px solid rgba(20, 45, 111, .1);
    }
    .pe-devis-coordinates-block__head,
    .pe-devis-final-card__head {
      display: flex;
      align-items: flex-start;
      gap: 12px;
      margin-bottom: 16px;
    }
    .pe-devis-coordinates-block__head h4,
    .pe-devis-final-card__head h4 {
      margin: 0;
      color: var(--devis-navy);
      font-size: 18px;
      font-weight: 800;
      line-height: 1.2;
    }
    .pe-devis-coordinates-block__head p,
    .pe-devis-final-card__head p {
      margin: 4px 0 0;
      color: var(--devis-text-muted);
      font-size: 13px;
      line-height: 1.45;
    }
    .pe-devis-coordinates-block--optional {
      gap: 12px;
      margin-top: 0;
    }
    .pe-devis-coordinates-block--optional[hidden] {
      display: none !important;
    }
    .pe-devis-profil-card,
    .pe-devis-address-block,
    .pe-devis-enterprise__card {
      border-radius: 16px;
    }
    .pe-devis-address-block {
      padding: 18px;
      background: linear-gradient(180deg, #fff 0%, #fbfdff 100%);
    }
    .pe-devis-address-block__head {
      padding-bottom: 12px;
      border-bottom: 1px solid rgba(20, 45, 111, .08);
    }
    .pe-devis-address-block__mode {
      padding: 4px;
      border-radius: 12px;
      background: #f1f5fb;
      border: 1px solid rgba(20, 45, 111, .08);
    }
    .pe-devis-address-block__mode-btn {
      border-color: transparent;
      background: transparent;
      border-radius: 9px;
    }
    .pe-devis-address-block__mode-btn.is-active {
      background: #fff;
      box-shadow: 0 6px 16px rgba(20, 45, 111, .08);
    }
    .pe-devis-address-block__card,
    .pe-devis-enterprise__card {
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, .75);
    }
    .pe-devis-check--same-address,
    .pe-devis-checkout-pay,
    .pe-devis-check--rgpd {
      padding: 14px 16px;
      border-radius: 14px;
      background: #f8fafc;
      border: 1px solid rgba(20, 45, 111, .1);
    }
    .pe-devis-checkout-pay {
      margin-top: 0;
    }
    .pe-devis-check--rgpd {
      margin: 10px 0 0;
    }
    .pe-devis-step-final-fields {
      margin: 0;
      padding-top: 0;
      border-top: 0;
    }
    .pe-devis-optional-panel,
    .pe-devis-logistics--optional {
      border-radius: 16px;
      background: #fff;
      box-shadow: 0 10px 28px rgba(20, 45, 111, .05);
    }
    .pe-devis-optional-panel__summary,
    .pe-devis-logistics__summary {
      padding: 16px 18px;
    }
    .pe-devis-optional-panel__summary::before,
    .pe-devis-logistics__summary::before {
      width: 9px;
      height: 9px;
    }
    .pe-devis-logistics__body,
    .pe-devis-optional-panel__body {
      padding: 0 18px 18px;
    }

    @media (max-width: 575.98px) {
      .pe-devis-final-head,
      .pe-devis-coordinates-block,
      .pe-devis-final-card {
        padding: 16px;
        border-radius: 16px;
      }
      .pe-devis-final-head__icon {
        width: 42px;
        height: 42px;
        border-radius: 14px;
      }
      .pe-devis-address-block__mode {
        width: 100%;
      }
      .pe-devis-address-block__mode-btn {
        flex: 1;
        justify-content: center;
      }
    }

    .pe-linge-mode-tag {
      display: inline-block; font-size: 12px; font-weight: 700; letter-spacing: .05em;
      text-transform: uppercase; color: #142D6F; background: rgba(163,189,255,.35);
      padding: 6px 12px; border-radius: 8px; margin-bottom: 16px;
    }
    .pe-linge-intro { margin: 0 0 20px; font-size: 15px; line-height: 1.55; color: #6b7a99; }
    .pe-linge-kilo-box {
      display: flex; flex-wrap: wrap; align-items: flex-end; gap: 16px; margin-bottom: 24px;
      padding: 20px; border-radius: 16px; background: linear-gradient(145deg, rgba(163,189,255,.25) 0%, #fff 100%);
      border: 1px solid rgba(20,45,111,.1);
    }
    .pe-linge-kilo-box .pe-devis-field { flex: 1; min-width: 160px; margin: 0; }
    .pe-linge-kilo-price { font-size: 14px; color: #142D6F; font-weight: 600; }
    .pe-linge-kilo-price span { display: block; font-size: 22px; font-weight: 700; margin-top: 4px; }
    .pe-linge-grid {
      display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px;
    }
    .pe-linge-cat-block {
      margin-bottom: 28px;
      padding-bottom: 8px;
      border-bottom: 1px solid rgba(20,45,111,.08);
    }
    .pe-linge-cat-block:last-child { border-bottom: none; margin-bottom: 0; }
    .pe-linge-cat-title {
      margin: 0 0 6px; font-size: 16px; font-weight: 700;
      color: #142D6F; letter-spacing: .02em;
    }
    .pe-linge-cat-desc {
      margin: 0 0 14px; font-size: 14px; line-height: 1.5; color: #6b7a99;
    }
    .pe-linge-grid--section {
      margin-top: 0;
    }
    .pe-linge-kilo-hint {
      margin: -8px 0 24px; font-size: 14px; line-height: 1.5; color: #6b7a99;
    }
    .pe-linge-grid .pe-linge-cat-title {
      grid-column: 1 / -1; margin: 20px 0 4px; font-size: 15px;
    }
    .pe-linge-grid .pe-linge-cat-title:first-child { margin-top: 0; }
    .pe-linge-grid .pe-linge-cat-desc {
      grid-column: 1 / -1; margin: 0 0 12px;
    }
    .pe-linge-item {
      display: flex; align-items: center; justify-content: space-between; gap: 12px;
      padding: 14px 16px; border-radius: 14px; background: #F6F4EF;
      border: 1px solid rgba(20,45,111,.08); transition: border-color .2s, box-shadow .2s;
    }
    .pe-linge-item.is-selected {
      border-color: #142D6F; background: #fff;
      box-shadow: 0 6px 20px rgba(20,45,111,.08);
    }
    .pe-linge-item-info strong { display: block; font-size: 15px; color: #142D6F; margin-bottom: 2px; }
    .pe-linge-item-info span { font-size: 13px; color: #6b7a99; }
    .pe-linge-qty {
      display: inline-flex;
      align-items: center;
      gap: 0;
      background: #F1F5F9;
      border-radius: 8px;
      border: 1px solid #E2E8F0;
      overflow: hidden;
      touch-action: manipulation;
    }
    .pe-linge-qty-btn {
      width: 34px;
      height: 34px;
      border: none;
      background: #fff;
      color: #002B5B;
      font-size: 18px;
      font-weight: 600;
      cursor: pointer;
      line-height: 1;
      flex-shrink: 0;
      touch-action: manipulation;
      user-select: none;
      -webkit-tap-highlight-color: transparent;
      transition: background 0.12s ease;
    }
    .pe-linge-qty-btn:hover { background: #E2E8F0; }
    .pe-linge-qty-btn:active { background: #CBD5E1; transition: none; }
    .pe-linge-qty input {
      border: none;
      text-align: center;
      font-size: 15px;
      font-weight: 700;
      color: #002B5B;
      -moz-appearance: textfield;
    }
    .pe-linge-qty input::-webkit-outer-spin-button,
    .pe-linge-qty input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
    .pe-linge-total-box {
      margin-top: 24px; padding: 20px 22px; border-radius: 16px; background: #142D6F; color: #fff;
    }
    .pe-linge-total-box p { margin: 0 0 6px; font-size: 14px; opacity: .85; }
    .pe-linge-total-box strong { font-size: 26px; font-weight: 700; }
    .pe-linge-total-box small { display: block; margin-top: 8px; font-size: 12px; opacity: .75; }
    .pe-linge-empty-hint {
      padding: 16px 18px;
      border-radius: 12px;
      background: #fff9e8;
      border: 1px solid rgba(230, 180, 0, .35);
      color: #5a4a10;
      font-size: var(--devis-font-base);
      line-height: 1.5;
      margin-top: 12px;
      display: none;
    }
    .pe-linge-empty-hint.is-visible { display: block; }
    .pe-devis-cart {
      margin: 0;
      padding: 0;
      border: none;
    }
    .pe-devis-cart-title {
      display: flex;
      align-items: center;
      gap: 8px;
      margin: 0 0 12px;
      font-size: var(--devis-font-base);
      font-weight: 700;
      color: var(--devis-navy);
      letter-spacing: 0;
      text-transform: none;
    }
    .pe-devis-cart-title i {
      font-size: 20px;
      color: #002B5B;
      flex-shrink: 0;
    }
    .pe-devis-cart-panel {
      background: #F8FAFC;
      border: 1px solid #E2E8F0;
      border-radius: 14px;
      padding: 14px 16px;
    }
    .pe-devis-cart-empty {
      margin: 0;
      padding: 8px 4px;
      font-size: var(--devis-font-sm);
      line-height: 1.55;
      color: var(--devis-text-soft);
      text-align: center;
    }
    .pe-devis-cart-panel:has(.pe-devis-cart-lines .pe-devis-cart-line) .pe-devis-cart-empty {
      display: none;
    }
    .pe-devis-cart-panel:has(.pe-devis-cart-logistics-wrap) .pe-devis-cart-empty {
      display: none;
    }

    /* Étape linge — maquette catégories numérotées */
    .pe-devis-adresse-recap-bar {
      display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
      padding: 12px 18px; margin-bottom: 20px; border-radius: 10px;
      background: #F1F5F9; border: 1px solid #E2E8F0;
    }
    .pe-devis-adresse-recap-icon {
      flex-shrink: 0; width: 40px; height: 40px; border-radius: 10px;
      background: #fff; color: #142D6F; display: flex; align-items: center; justify-content: center;
      font-size: 20px;
    }
    .pe-devis-adresse-recap-text {
      flex: 1; min-width: 160px; margin: 0; font-size: 15px; line-height: 1.45; color: #334155;
    }
    .pe-devis-adresse-recap-label { font-weight: 700; color: #002B5B; }
    .pe-devis-adresse-recap-value { font-weight: 500; color: #334155; }
    .pe-devis-adresse-recap-edit {
      border: none;
      background: none;
      padding: 10px 12px;
      margin: -6px -8px -6px 0;
      min-height: var(--devis-touch-min);
      font-size: var(--devis-font-sm);
      font-weight: 600;
      color: #142D6F;
      cursor: pointer;
      text-decoration: underline;
      text-underline-offset: 3px;
      font-family: inherit;
      border-radius: 8px;
    }
    .pe-devis-adresse-recap-edit:hover { color: #0f2459; background: rgba(0, 43, 91, .06); }
    .pe-devis-linge-intro {
      margin: 0 0 20px;
    }
    .pe-devis-linge-intro-title {
      margin: 0 0 6px;
      font-size: clamp(20px, 2.5vw, 24px);
      font-weight: 700;
      color: #002B5B;
    }
    .pe-devis-linge-intro-text {
      margin: 0;
      font-size: var(--devis-font-base);
      line-height: 1.6;
      color: var(--devis-text-muted);
    }
    .pe-devis-linge-intro-filter {
      margin: 10px 0 0;
      font-size: var(--devis-font-sm);
      color: var(--devis-text-muted);
    }
    .pe-devis-catalog-toolbar {
      margin: 0 0 20px;
      padding: 12px 14px;
      background: #f8fafc;
      border: 1px solid #dde4ee;
      border-radius: 14px;
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 10px;
    }
    .pe-devis-catalog-search-field {
      flex: 1 1 200px;
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 0 14px;
      background: #fff;
      border: 1px solid #c5d0e0;
      border-radius: 12px;
      transition: border-color .15s ease, box-shadow .15s ease;
    }
    .pe-devis-catalog-sector-select {
      flex: 0 1 auto;
      min-width: 10rem;
      max-width: 100%;
      padding: 10px 12px;
      font-size: var(--devis-font-sm);
      font-family: inherit;
      font-weight: 600;
      color: #0f172a;
      background: #fff;
      border: 1px solid #c5d0e0;
      border-radius: 12px;
      cursor: pointer;
    }
    .pe-devis-catalog-sector-select:focus {
      outline: none;
      border-color: #0369a1;
      box-shadow: 0 0 0 3px rgba(3, 105, 161, .15);
    }
    .pe-devis-linge-item[hidden] {
      display: none !important;
    }
    .pe-devis-linge-section[hidden] {
      display: none !important;
    }
    .pe-devis-catalog-search-field:focus-within {
      border-color: #0369a1;
      box-shadow: 0 0 0 3px rgba(3, 105, 161, .15);
    }
    .pe-devis-catalog-search-field i {
      font-size: 1.15rem;
      color: #64748b;
      flex-shrink: 0;
    }
    .pe-devis-catalog-search-input {
      flex: 1;
      min-width: 0;
      border: 0;
      padding: 12px 0;
      font-size: var(--devis-font-base);
      font-family: inherit;
      background: transparent;
      color: #0f172a;
    }
    .pe-devis-catalog-search-input:focus {
      outline: none;
    }
    .pe-devis-catalog-search-input::-webkit-search-cancel-button {
      cursor: pointer;
    }
    .pe-devis-catalog-sector-filters {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
    }
    .pe-devis-catalog-sector-chip {
      display: inline-flex;
      align-items: center;
      padding: 8px 14px;
      font-size: var(--devis-font-sm);
      font-weight: 600;
      font-family: inherit;
      color: #334155;
      background: #fff;
      border: 1px solid #c5d0e0;
      border-radius: 999px;
      cursor: pointer;
      transition: background .15s ease, border-color .15s ease, color .15s ease;
    }
    .pe-devis-catalog-sector-chip:hover {
      border-color: #0369a1;
      color: #0369a1;
    }
    .pe-devis-catalog-sector-chip.is-active {
      background: #002b5b;
      border-color: #002b5b;
      color: #fff;
    }
    .pe-devis-catalog-toolbar-hint {
      margin: 0;
      font-size: var(--devis-font-sm);
      line-height: 1.5;
      color: #64748b;
      display: flex;
      align-items: flex-start;
      gap: 8px;
    }
    .pe-devis-catalog-toolbar-hint i {
      margin-top: 2px;
      flex-shrink: 0;
    }
    .pe-devis-catalog-search-empty {
      margin: 0;
      font-size: var(--devis-font-sm);
      color: #b45309;
      font-weight: 600;
    }
    .pe-devis-linge-panel { position: relative; }
    .pe-devis-linge-flow { display: flex; flex-direction: column; gap: 16px; padding-bottom: 8px; }
    .pe-devis-linge-section { margin: 0; }
    .pe-devis-linge-section-card {
      display: flex;
      flex-direction: column;
      background: #fff;
      border-radius: 16px;
      border: 1px solid #DDE4EE;
      box-shadow: 0 2px 12px rgba(0, 43, 91, .05);
      overflow: hidden;
    }
    .pe-devis-linge-section-aside {
      display: flex;
      flex-direction: row;
      align-items: center;
      gap: 14px 18px;
      width: 100%;
      padding: 16px 18px;
      margin: 0;
      border: none;
      border-bottom: 1px solid rgba(0, 43, 91, .08);
      flex: 0 0 auto;
      box-sizing: border-box;
    }
    .pe-devis-linge-section--linge-lit .pe-devis-linge-section-aside { background: #E8F4FC; }
    .pe-devis-linge-section--linge-bain .pe-devis-linge-section-aside { background: #ECFDF5; }
    .pe-devis-linge-section--vetements-repassage .pe-devis-linge-section-aside { background: #F3E8FF; }
    .pe-devis-linge-section--volumineux .pe-devis-linge-section-aside { background: #FFF7ED; }
    .pe-devis-linge-section--laverie .pe-devis-linge-section-aside { background: #E0F2FE; }
    .pe-devis-linge-section-icon {
      flex-shrink: 0;
      width: auto;
      height: auto;
      padding: 0;
      border: none;
      border-radius: 0;
      background: transparent;
      box-shadow: none;
      display: block;
      line-height: 0;
    }
    .pe-devis-linge-section-icon .pe-flaticon {
      width: 36px;
      height: 36px;
      object-fit: contain;
      display: block;
    }
    .pe-devis-linge-section-copy {
      flex: 1;
      min-width: 0;
    }
    .pe-devis-linge-section-title {
      margin: 0 0 4px;
      font-size: 17px;
      font-weight: 700;
      color: var(--devis-navy);
      line-height: 1.3;
    }
    .pe-devis-linge-section-sub {
      margin: 0;
      font-size: var(--devis-font-sm);
      line-height: 1.5;
      color: var(--devis-text-muted);
    }
    .pe-devis-linge-section-body {
      flex: 1 1 auto;
      width: 100%;
      min-width: 0;
      padding: 16px 18px 18px;
      background: #fff;
      container-type: inline-size;
      container-name: linge-body;
      box-sizing: border-box;
    }
    .pe-devis-linge-grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: 10px;
      width: 100%;
    }
    @container linge-body (min-width: 380px) {
      .pe-devis-linge-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
      }
    }
    @container linge-body (min-width: 920px) {
      .pe-devis-linge-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 12px;
      }
    }
    .pe-devis-linge-item {
      display: flex;
      flex-direction: row;
      flex-wrap: wrap;
      align-items: center;
      gap: 10px 12px;
      padding: 14px 14px 12px;
      border-radius: 12px;
      background: #fff;
      border: 1px solid #E2E8F0;
      transition: border-color 0.15s ease, box-shadow 0.15s ease;
      min-width: 0;
      contain: layout style;
    }
    .pe-devis-linge-item.is-selected {
      border-color: #3B82F6;
      box-shadow: 0 2px 12px rgba(0, 43, 91, .1);
      background: #FAFCFF;
    }
    .pe-devis-linge-item-icon {
      flex-shrink: 0;
      width: 40px;
      height: 40px;
      border-radius: 10px;
      background: #E8F4FC;
      border: none;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .pe-devis-linge-section--linge-bain .pe-devis-linge-item-icon { background: #D1FAE5; }
    .pe-devis-linge-section--vetements-repassage .pe-devis-linge-item-icon { background: #EDE9FE; }
    .pe-devis-linge-section--volumineux .pe-devis-linge-item-icon { background: #FFEDD5; }
    .pe-devis-linge-section--laverie .pe-devis-linge-item-icon { background: #E0F2FE; }
    .pe-devis-linge-item-icon .pe-flaticon {
      width: 22px;
      height: 22px;
      object-fit: contain;
      display: block;
    }
    .pe-devis-linge-item-body {
      flex: 1 1 8rem;
      min-width: 0;
      display: flex;
      flex-direction: column;
      gap: 4px;
      padding-right: 4px;
    }
    .pe-devis-linge-item-name {
      display: block;
      font-size: 15px;
      line-height: 1.35;
      color: var(--devis-navy);
      font-weight: 700;
      word-break: normal;
      overflow-wrap: break-word;
    }
    .pe-devis-linge-item-price {
      display: block;
      font-size: var(--devis-font-sm);
      font-weight: 500;
      color: var(--devis-text-soft);
      line-height: 1.35;
    }
    .pe-devis-linge-item .pe-linge-qty {
      flex: 0 0 auto;
      flex-shrink: 0;
      border-radius: 999px;
      background: #F1F5F9;
      border: 1px solid #CBD5E1;
      overflow: hidden;
      margin-left: auto;
    }
    @container linge-body (max-width: 279px) {
      .pe-devis-linge-item .pe-linge-qty {
        flex: 1 1 100%;
        margin-left: 0;
        justify-content: center;
        max-width: 100%;
      }
    }
    .pe-devis-linge-item .pe-linge-qty {
      touch-action: manipulation;
    }
    .pe-devis-linge-item .pe-linge-qty-btn {
      width: var(--devis-touch-min);
      height: var(--devis-touch-min);
      min-width: var(--devis-touch-min);
      min-height: var(--devis-touch-min);
      background: transparent;
      font-size: 20px;
      line-height: 1;
      touch-action: manipulation;
      user-select: none;
      -webkit-tap-highlight-color: transparent;
      transition: background 0.12s ease;
    }
    .pe-devis-linge-item .pe-linge-qty-btn:hover {
      background: #E2E8F0;
    }
    .pe-devis-linge-item .pe-linge-qty-btn:active:not(:disabled):not(.is-disabled) {
      background: #CBD5E1;
      transition: none;
      transform: scale(0.94);
    }
    .pe-devis-linge-item .pe-linge-qty-btn:disabled,
    .pe-devis-linge-item .pe-linge-qty-btn.is-disabled {
      opacity: 0.38;
      cursor: default;
      pointer-events: none;
    }
    /* Neutralise app.min.css : input { width:100%; height:60px } */
    .pe-devis-form .pe-devis-linge-item .pe-linge-qty input[type="number"] {
      width: 40px !important;
      min-width: 40px !important;
      max-width: 40px !important;
      height: var(--devis-touch-min) !important;
      min-height: var(--devis-touch-min) !important;
      padding: 0 !important;
      margin: 0 !important;
      border: none !important;
      border-radius: 0 !important;
      background: transparent !important;
      font-variant-numeric: tabular-nums;
      font-feature-settings: "tnum" 1;
      font-size: 17px !important;
      font-weight: 700 !important;
      line-height: var(--devis-touch-min) !important;
      box-shadow: none !important;
      color: var(--devis-navy) !important;
    }
    .pe-devis-linge-section-body--kilo {
      display: flex;
      align-items: center;
    }
    .pe-devis-linge-kilo-card {
      width: 100%;
    }
    .pe-devis-linge-kilo-main {
      display: flex;
      flex-wrap: wrap;
      align-items: flex-end;
      justify-content: space-between;
      gap: 16px 24px;
      padding: 0;
      width: 100%;
    }
    .pe-devis-linge-kilo-rate {
      margin: 0;
      text-align: right;
      align-self: flex-end;
    }
    .pe-devis-linge-kilo-rate-label {
      display: block;
      font-size: 12px;
      color: #64748b;
      margin-bottom: 4px;
    }
    .pe-devis-linge-kilo-rate strong {
      font-size: 22px;
      font-weight: 700;
      color: #002B5B;
      line-height: 1.1;
    }
    .pe-devis-linge-kilo-rate strong small {
      font-size: 14px;
      font-weight: 600;
    }
    .pe-devis-linge-kilo-field { flex: 1; min-width: 180px; }
    .pe-devis-linge-kilo-field label {
      display: block; font-size: 14px; font-weight: 600; color: #142D6F; margin-bottom: 8px;
    }
    .pe-devis-linge-kilo-field input {
      width: 100%; border: 1px solid rgba(20,45,111,.15); border-radius: 12px;
      padding: 14px 16px; font-size: 18px; font-weight: 600; color: #142D6F;
      font-family: inherit;
    }
    .pe-devis-linge-kilo-field input:focus {
      outline: none; border-color: #142D6F; box-shadow: 0 0 0 3px rgba(163,189,255,.4);
    }
    .pe-devis-panel--linge .pe-devis-linge-panel {
      display: flex;
      flex-direction: column;
      gap: 0;
    }
    .pe-devis-linge-sticky {
      position: sticky;
      bottom: 12px;
      z-index: 2;
      margin: 20px -28px -32px;
      padding: 18px 28px;
      border-radius: 0 0 14px 14px;
      background: #002B5B;
      color: #fff;
      box-shadow: 0 -4px 24px rgba(0, 43, 91, .15);
    }
    @media (max-width: 767px) {
      .pe-devis-linge-sticky {
        margin-left: -16px;
        margin-right: -16px;
        margin-bottom: -24px;
        padding-left: 16px;
        padding-right: 16px;
        border-radius: 0 0 12px 12px;
      }
    }
    .pe-devis-linge-sticky-row {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
    }
    .pe-devis-linge-sticky-label {
      font-size: var(--devis-font-base);
      font-weight: 500;
      opacity: .95;
    }
    .pe-devis-linge-sticky-amount {
      font-size: clamp(22px, 4vw, 28px);
      font-weight: 700;
      line-height: 1;
      letter-spacing: -.02em;
      font-variant-numeric: tabular-nums;
      font-feature-settings: "tnum" 1;
    }
    .pe-devis-cart-lines {
      list-style: none;
      margin: 0;
      padding: 0;
      display: flex;
      flex-direction: column;
      gap: 10px;
    }
    .pe-devis-cart-lines:empty {
      display: none;
    }
    .pe-devis-cart-section {
      list-style: none;
      margin: 0;
      padding: 0 0 2px;
    }
    .pe-devis-cart-section-label {
      display: block;
      font-size: 11px;
      font-weight: 700;
      letter-spacing: .06em;
      text-transform: uppercase;
      color: #64748B;
    }
    .pe-devis-cart-lines > .pe-devis-cart-section + .pe-devis-cart-line,
    .pe-devis-cart-lines > .pe-devis-cart-line:first-child {
      margin-top: 0;
    }
    .pe-devis-cart-articles {
      list-style: none;
      margin: 0;
      padding: 12px 14px;
      border-radius: 12px;
      background: #fff;
      border: 1px solid #E2E8F0;
      display: flex;
      flex-direction: column;
      gap: 0;
    }
    .pe-devis-cart-articles-wrap {
      list-style: none;
      margin: 0;
      padding: 0;
    }
    .pe-devis-cart-line {
      display: flex;
      justify-content: space-between;
      align-items: flex-start;
      gap: 14px;
      padding: 10px 0;
      font-size: var(--devis-font-sm);
      line-height: 1.45;
      border-bottom: 1px solid #EEF2F7;
    }
    .pe-devis-cart-articles .pe-devis-cart-line {
      padding-left: 0;
      padding-right: 0;
    }
    .pe-devis-cart-line:last-child {
      border-bottom: none;
      padding-bottom: 0;
    }
    .pe-devis-cart-line:first-child {
      padding-top: 0;
    }
    .pe-devis-cart-line-label {
      flex: 1;
      min-width: 0;
      font-weight: 600;
      color: var(--devis-text);
      line-height: 1.4;
    }
    .pe-devis-cart-line-detail {
      flex-shrink: 0;
      font-weight: 700;
      color: #002B5B;
      white-space: nowrap;
    }
    .pe-devis-cart-line-amount {
      flex-shrink: 0;
      font-size: var(--devis-font-base);
      font-weight: 700;
      color: var(--devis-navy);
      white-space: nowrap;
      font-variant-numeric: tabular-nums;
    }
    .pe-devis-cart-logistics-wrap {
      list-style: none;
      margin: 0;
      padding: 0;
    }
    .pe-devis-cart-logistics {
      padding: 12px 14px;
      border-radius: 12px;
      background: linear-gradient(160deg, #fff 0%, #F1F5F9 100%);
      border: 1px solid rgba(0, 43, 91, .12);
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9);
    }
    .pe-devis-cart-logistics-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      margin-bottom: 10px;
      padding-bottom: 8px;
      border-bottom: 1px solid rgba(0, 43, 91, .08);
    }
    .pe-devis-cart-logistics-title {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      font-size: 11px;
      font-weight: 700;
      letter-spacing: .06em;
      text-transform: uppercase;
      color: #002B5B;
    }
    .pe-devis-cart-logistics-title i {
      font-size: 15px;
      color: #2563EB;
    }
    .pe-devis-cart-logistics-subtotal {
      font-size: var(--devis-font-sm);
      font-weight: 800;
      color: #002B5B;
      font-variant-numeric: tabular-nums;
      white-space: nowrap;
    }
    .pe-devis-cart-logistics-legs {
      display: flex;
      flex-direction: column;
      gap: 8px;
    }
    .pe-devis-cart-leg {
      padding: 10px 12px;
      border-radius: 10px;
      background: #fff;
      border: 1px solid #E2E8F0;
    }
    .pe-devis-cart-leg--collecte {
      border-left: 3px solid #2563EB;
    }
    .pe-devis-cart-leg--livraison {
      border-left: 3px solid #0D9488;
    }
    .pe-devis-cart-leg-row {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 12px;
    }
    .pe-devis-cart-leg-label {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      min-width: 0;
      font-size: var(--devis-font-sm);
      font-weight: 700;
      color: var(--devis-text);
      line-height: 1.35;
    }
    .pe-devis-cart-leg-label i {
      flex-shrink: 0;
      width: 28px;
      height: 28px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      border-radius: 8px;
      font-size: 15px;
      background: rgba(37, 99, 235, .1);
      color: #2563EB;
    }
    .pe-devis-cart-leg--livraison .pe-devis-cart-leg-label i {
      background: rgba(13, 148, 136, .12);
      color: #0D9488;
    }
    .pe-devis-cart-leg-amount {
      flex-shrink: 0;
      font-size: var(--devis-font-base);
      font-weight: 800;
      color: var(--devis-navy);
      font-variant-numeric: tabular-nums;
      white-space: nowrap;
    }
    .pe-devis-cart-leg-meta {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 6px 10px;
      margin-top: 8px;
      padding-left: 36px;
    }
    .pe-devis-cart-leg-km {
      display: inline-flex;
      align-items: center;
      padding: 3px 8px;
      border-radius: 999px;
      font-size: 11px;
      font-weight: 600;
      color: #475569;
      background: #F8FAFC;
      border: 1px solid #E2E8F0;
    }
    .pe-devis-cart-leg-relay {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      min-width: 0;
      font-size: 12px;
      font-weight: 600;
      color: #002B5B;
    }
    .pe-devis-cart-leg-relay i {
      flex-shrink: 0;
      font-size: 13px;
      color: #64748B;
    }
    .pe-devis-cart-leg-relay span {
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .pe-devis-cart-grand {
      display: flex;
      flex-direction: row;
      flex-wrap: wrap;
      justify-content: space-between;
      align-items: center;
      gap: 8px 16px;
      margin-top: 14px;
      padding: 16px 18px;
      border-radius: 12px;
      background: #fff;
      border: 2px solid #002B5B;
      box-shadow: 0 4px 16px rgba(0, 43, 91, .08);
    }
    .pe-devis-cart-grand-label {
      font-size: var(--devis-font-base);
      font-weight: 700;
      color: var(--devis-navy);
      line-height: 1.35;
    }
    .pe-devis-cart-grand-amount {
      font-size: clamp(24px, 5vw, 32px);
      font-weight: 800;
      color: var(--devis-navy);
      line-height: 1;
      font-variant-numeric: tabular-nums;
      letter-spacing: -.02em;
    }
    .pe-devis-cart-panel:has(#pe-devis-cart-total:not([hidden])) .pe-devis-cart-lines {
      margin-bottom: 4px;
    }
    .pe-devis-cart-panel:has(.pe-devis-cart-line, .pe-devis-cart-logistics-wrap) .pe-devis-cart-empty {
      display: none;
    }
    .pe-devis-cart-recap-btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      width: 100%;
      margin-top: 12px;
      padding: 12px 16px;
      border: 2px solid rgba(20, 45, 111, .16);
      border-radius: 12px;
      background: #fff;
      color: #142D6F;
      font-size: 14px;
      font-weight: 700;
      font-family: inherit;
      cursor: pointer;
      transition: background .2s, border-color .2s, transform .2s;
    }
    .pe-devis-cart-recap-btn:hover {
      background: #F6F4EF;
      border-color: #142D6F;
      transform: translateY(-1px);
    }
    .pe-devis-cart-recap-btn[hidden] {
      display: none !important;
    }

    body.pe-devis-preticket-open { overflow: hidden; }
    .pe-devis-preticket-modal {
      position: fixed;
      inset: 0;
      z-index: 10040;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 16px;
    }
    .pe-devis-preticket-modal[hidden] { display: none !important; }
    .pe-devis-preticket-modal__backdrop {
      position: absolute;
      inset: 0;
      background: rgba(0, 31, 66, .52);
    }
    .pe-devis-preticket-modal__panel {
      position: relative;
      width: 100%;
      max-width: min(420px, calc(100vw - 32px));
      max-height: calc(100dvh - 32px);
      display: flex;
      flex-direction: column;
      background: #fff;
      border-radius: 18px;
      box-shadow: 0 24px 64px rgba(0, 31, 66, .22);
      overflow: hidden;
    }
    .pe-devis-preticket-modal__close {
      position: absolute;
      top: 12px;
      right: 12px;
      z-index: 2;
      width: 36px;
      height: 36px;
      border: 0;
      border-radius: 999px;
      background: rgba(20, 45, 111, .08);
      color: #142D6F;
      cursor: pointer;
      display: inline-flex;
      align-items: center;
      justify-content: center;
    }
    .pe-devis-preticket-modal__head {
      padding: 20px 20px 12px;
      border-bottom: 1px solid rgba(20, 45, 111, .08);
    }
    .pe-devis-preticket-modal__head h2 {
      margin: 0 0 4px;
      font-size: 18px;
      color: #142D6F;
    }
    .pe-devis-preticket-modal__head p {
      margin: 0;
      font-size: 13px;
      color: #6b7a99;
      line-height: 1.45;
    }
    .pe-devis-preticket-modal__body {
      padding: 16px 20px;
      overflow: auto;
    }
    .pe-devis-preticket-modal__foot {
      padding: 12px 20px 20px;
      border-top: 1px solid rgba(20, 45, 111, .08);
    }
    .pe-devis-preticket-modal__btn {
      width: 100%;
      border: 0;
      border-radius: 12px;
      padding: 14px 18px;
      background: #142D6F;
      color: #fff;
      font-size: 15px;
      font-weight: 700;
      font-family: inherit;
      cursor: pointer;
    }
    .pe-devis-preticket-modal__btn:hover { background: #0f2459; }

    .pe-preticket {
      max-width: 360px;
      margin: 0 auto;
      padding: 14px 12px 10px;
      background: #fff;
      border: 1px dashed rgba(20, 45, 111, .35);
      border-radius: 8px;
      color: #111;
      font-size: 12px;
      line-height: 1.35;
    }
    .pe-preticket__brand {
      text-align: center;
      margin-bottom: 10px;
    }
    .pe-preticket__brand-name {
      margin: 0;
      font-size: 18px;
      font-weight: 800;
      letter-spacing: .12em;
      color: #142D6F;
    }
    .pe-preticket__brand-line {
      margin: 2px 0 0;
      font-size: 11px;
      color: #555;
    }
    .pe-preticket__rule {
      border: 0;
      border-top: 1px dashed #333;
      margin: 10px 0;
    }
    .pe-preticket__title {
      margin: 0 0 4px;
      text-align: center;
      font-size: 11px;
      font-weight: 800;
      letter-spacing: .14em;
      color: #142D6F;
    }
    .pe-preticket__meta {
      margin: 0 0 8px;
      text-align: center;
      font-size: 11px;
      color: #555;
    }
    .pe-preticket__badge {
      display: inline-block;
      margin: 0 auto 8px;
      padding: 2px 10px;
      border: 1px solid #142D6F;
      border-radius: 999px;
      font-size: 10px;
      font-weight: 800;
      letter-spacing: .08em;
      color: #142D6F;
    }
    .pe-preticket__badge-wrap { text-align: center; }
    .pe-preticket__address {
      margin: 0 0 10px;
      padding: 8px 10px;
      border-radius: 8px;
      background: rgba(163, 189, 255, .14);
      font-size: 11px;
      color: #334155;
    }
    .pe-preticket__address strong {
      display: block;
      margin-bottom: 2px;
      color: #142D6F;
      font-size: 10px;
      letter-spacing: .06em;
      text-transform: uppercase;
    }
    .pe-preticket__items {
      width: 100%;
      border-collapse: collapse;
      margin-bottom: 8px;
    }
    .pe-preticket__items th {
      padding: 0 0 4px;
      border-bottom: 1px solid #111;
      font-size: 10px;
      text-align: left;
      font-weight: 800;
      letter-spacing: .04em;
      text-transform: uppercase;
    }
    .pe-preticket__items td {
      padding: 5px 0;
      vertical-align: top;
      border-bottom: 1px dotted #ccc;
    }
    .pe-preticket__items tr:last-child td { border-bottom: 0; }
    .pe-preticket__item-label {
      display: block;
      font-weight: 700;
      color: #142D6F;
    }
    .pe-preticket__item-detail {
      display: block;
      margin-top: 1px;
      font-size: 11px;
      color: #555;
    }
    .pe-preticket__summary {
      list-style: none;
      margin: 0 0 8px;
      padding: 0;
    }
    .pe-preticket__summary li {
      display: flex;
      justify-content: space-between;
      gap: 10px;
      padding: 6px 0;
      border-bottom: 1px dotted #ccc;
      font-size: 12px;
    }
    .pe-preticket__summary li:last-child { border-bottom: 0; }
    .pe-preticket__summary-amount {
      font-weight: 700;
      color: #142D6F;
      white-space: nowrap;
    }
    .pe-preticket__summary-amount--promo {
      color: #0f7a45;
    }
    .pe-preticket__summary-promo span:first-child {
      color: #35507a;
    }
    .pe-preticket__total {
      display: flex;
      justify-content: space-between;
      align-items: baseline;
      gap: 12px;
      margin-top: 8px;
      padding: 10px 12px;
      border: 2px solid #142D6F;
      border-radius: 10px;
      background: #fff;
    }
    .pe-preticket__total-label {
      font-size: 11px;
      font-weight: 800;
      letter-spacing: .06em;
      text-transform: uppercase;
      color: #142D6F;
    }
    .pe-preticket__total-amount {
      font-size: 22px;
      font-weight: 800;
      color: #142D6F;
      font-variant-numeric: tabular-nums;
    }
    .pe-preticket__note {
      margin: 10px 0 0;
      text-align: center;
      font-size: 10px;
      line-height: 1.45;
      color: #666;
    }
    .pe-devis-benefits {
      margin-top: 36px;
      padding-top: 8px;
    }
    .pe-devis-benefit {
      display: flex;
      flex-direction: column;
      gap: 6px;
      height: 100%;
    }
    .pe-devis-benefit-icon {
      width: 40px;
      height: 40px;
      border-radius: 10px;
      background: #E8F4FC;
      color: #002B5B;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 20px;
    }
    .pe-devis-benefit strong {
      font-size: 15px;
      font-weight: 700;
      color: #002B5B;
      line-height: 1.3;
    }
    .pe-devis-benefit > span:last-child {
      font-size: 13px;
      line-height: 1.45;
      color: #64748b;
    }

    /* Type de client — cartes */
    .pe-devis-step-intro {
      margin: 0 0 18px;
      color: var(--devis-text-muted);
      font-size: var(--devis-font-base);
      line-height: 1.55;
    }
    .pe-devis-step-note {
      margin: 0 0 16px;
      font-size: var(--devis-font-sm);
      color: #0369a1;
      font-weight: 600;
    }
    .pe-devis-step-section {
      margin-bottom: 24px;
      padding-bottom: 20px;
      border-bottom: 1px solid rgba(0, 43, 91, .08);
    }
    .pe-devis-step-section:last-child {
      border-bottom: 0;
      margin-bottom: 0;
      padding-bottom: 0;
    }
    .pe-devis-step-section--linge {
      margin-bottom: 12px;
      padding-bottom: 0;
      border-bottom: 0;
    }
    .pe-devis-step-section-title {
      margin: 0 0 14px;
      font-size: 17px;
      font-weight: 700;
      color: var(--devis-navy);
    }
    .pe-devis-type-cards {
      display: grid;
      grid-template-columns: 1fr;
      gap: 14px;
    }
    @media (min-width: 768px) {
      .pe-devis-type-cards { grid-template-columns: 1fr 1fr; gap: 18px; }
    }
    .pe-devis-form button.pe-devis-type-card {
      -webkit-appearance: none;
      appearance: none;
      font: inherit;
      color: inherit;
      margin: 0;
      box-sizing: border-box;
    }
    .pe-devis-type-card {
      display: flex;
      align-items: flex-start;
      gap: 14px;
      width: 100%;
      text-align: left;
      padding: 20px 18px;
      border: 2px solid rgba(0, 43, 91, .1);
      border-radius: 14px;
      background: #fff;
      cursor: pointer;
      transition: border-color .2s, box-shadow .2s, background .2s;
      min-height: var(--devis-touch-min);
    }
    .pe-devis-type-card:hover {
      border-color: rgba(0, 43, 91, .22);
      box-shadow: 0 8px 24px rgba(0, 43, 91, .08);
    }
    .pe-devis-type-cards.is-locked .pe-devis-type-card,
    .pe-devis-type-card:disabled {
      cursor: not-allowed;
      opacity: .55;
      background: #f8fafc;
      box-shadow: none;
    }
    .pe-devis-type-cards.is-locked .pe-devis-type-card:hover,
    .pe-devis-type-card:disabled:hover {
      border-color: rgba(0, 43, 91, .1);
      box-shadow: none;
    }
    .pe-devis-type-card.is-active {
      border-color: var(--devis-navy);
      background: rgba(0, 43, 91, .04);
      box-shadow: 0 10px 28px rgba(0, 43, 91, .12);
    }
    .pe-devis-type-card-icon {
      flex-shrink: 0;
      width: 48px;
      height: 48px;
      border-radius: 12px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      background: rgba(163, 189, 255, .35);
      color: var(--devis-navy);
      font-size: 24px;
    }
    .pe-devis-profile-svg,
    .pe-devis-sector-svg {
      display: block;
      width: 26px;
      height: 26px;
      flex-shrink: 0;
    }
    .pe-devis-sector-cards .pe-devis-sector-svg {
      width: 22px;
      height: 22px;
    }
    .pe-devis-type-card-icon--pro { background: rgba(0, 43, 91, .1); }
    .pe-devis-type-card-body { flex: 1; min-width: 0; }
    .pe-devis-type-card-title {
      display: block;
      font-size: 18px;
      font-weight: 700;
      color: var(--devis-navy);
      margin-bottom: 6px;
    }
    .pe-devis-type-card-desc {
      display: block;
      font-size: var(--devis-font-sm);
      color: var(--devis-text-muted);
      line-height: 1.5;
      margin-bottom: 10px;
    }
    .pe-devis-type-card-features {
      margin: 0;
      padding: 0;
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: 6px;
      font-size: var(--devis-font-sm);
      color: var(--devis-text-soft);
    }
    .pe-devis-type-card-features li {
      display: flex;
      align-items: center;
      gap: 8px;
    }
    .pe-devis-type-card-check {
      flex-shrink: 0;
      width: 28px;
      height: 28px;
      border-radius: 50%;
      border: 2px solid rgba(0, 43, 91, .15);
      display: inline-flex;
      align-items: center;
      justify-content: center;
      background: #fff;
      position: relative;
      transition: background .2s, border-color .2s, box-shadow .2s;
    }
    .pe-devis-type-card-check::after {
      content: "";
      font-size: 15px;
      font-weight: 700;
      line-height: 1;
      color: #fff;
      opacity: 0;
      transform: scale(0.6);
      transition: opacity .2s, transform .2s;
    }
    .pe-devis-type-card.is-active .pe-devis-type-card-check {
      background: var(--devis-navy);
      border-color: var(--devis-navy);
      box-shadow: 0 2px 8px rgba(0, 43, 91, .25);
    }
    .pe-devis-type-card.is-active .pe-devis-type-card-check::after {
      content: "✓";
      opacity: 1;
      transform: scale(1);
    }
    .pe-devis-profile-svg,
    .pe-devis-sector-svg {
      pointer-events: none;
    }
    .pe-devis-type-hint {
      margin-top: 12px;
      font-size: var(--devis-font-sm);
      color: #b45309;
    }
    .pe-devis-type-follow {
      margin-top: 20px;
      display: flex;
      flex-direction: column;
      gap: 20px;
    }
    .pe-devis-type-follow:not([hidden]) .pe-devis-type-follow-pro-sector:not([hidden]),
    .pe-devis-type-follow:not([hidden]) .pe-devis-type-follow-addresses:not([hidden]),
    .pe-devis-type-follow:not([hidden]) .pe-devis-sector-recap:not([hidden]) {
      animation: pe-devis-reveal 0.4s cubic-bezier(.22, 1, .36, 1) both;
    }
    @keyframes pe-devis-reveal {
      from { opacity: 0; transform: translateY(12px); }
      to { opacity: 1; transform: translateY(0); }
    }
    .pe-devis-type-follow-title {
      margin: 0 0 4px;
      font-size: 17px;
      font-weight: 700;
      color: var(--devis-navy);
    }
    .pe-devis-type-follow-sub {
      margin: 0 0 10px;
      font-size: var(--devis-font-sm);
      color: var(--devis-text-muted);
    }
    .pe-devis-professional-sectors-fields {
      display: none;
    }
    .pe-devis-brief-sectors {
      margin-bottom: 16px;
      padding: 12px 16px;
      border-radius: 12px;
      background: #F8FAFC;
      border: 1px solid #E2E8F0;
    }
    .pe-devis-brief-sectors-label {
      margin: 0 0 4px;
      font-size: 12px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .05em;
      color: var(--devis-text-soft);
    }
    .pe-devis-brief-sectors-value {
      margin: 0;
      font-size: var(--devis-font-base);
      font-weight: 600;
      color: var(--devis-navy);
      line-height: 1.45;
    }
    .pe-devis-brief-linge-hint {
      margin: 0 0 10px;
      font-size: var(--devis-font-sm);
      color: var(--devis-text-muted);
      line-height: 1.45;
    }
    .pe-devis-laundry-tile[hidden] {
      display: none !important;
    }
    .pe-devis-type-follow-addresses,
    .pe-devis-addresses-block {
      display: flex;
      flex-direction: column;
      gap: 12px;
    }
    .pe-devis-addresses-block {
      margin-bottom: 1.25rem;
      padding-bottom: 1.25rem;
      border-bottom: 1px solid rgba(0, 43, 91, .08);
    }
    .pe-devis-type-follow-pro-sector:not([hidden]) {
      padding-top: 20px;
      margin-top: 4px;
      border-top: 1px solid rgba(0, 43, 91, .08);
    }
    .pe-devis-type-follow-addresses .pe-devis-field,
    .pe-devis-addresses-block .pe-devis-field {
      margin-bottom: 0;
    }
    .pe-devis-type-follow-pro-sector {
      display: flex;
      flex-direction: column;
      gap: 8px;
    }
    .pe-devis-type-follow-pro-sector.pe-devis-sector-grid--has-pick .pe-devis-sector-card:not(.is-active) {
      opacity: 0.72;
    }
    .pe-devis-type-follow-pro-sector.pe-devis-sector-grid--has-pick .pe-devis-sector-card.is-active {
      opacity: 1;
    }
    .pe-devis-sector-search-wrap {
      margin: 0 0 14px;
    }
    .pe-devis-sector-search-label {
      display: block;
      margin: 0 0 6px;
      font-size: var(--devis-font-sm);
      font-weight: 600;
      color: #002b5b;
    }
    .pe-devis-sector-search-field {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 0 14px;
      background: #fff;
      border: 1px solid #c5d0e0;
      border-radius: 12px;
    }
    .pe-devis-sector-search-field:focus-within {
      border-color: #0369a1;
      box-shadow: 0 0 0 3px rgba(3, 105, 161, .15);
    }
    .pe-devis-sector-search-field i {
      color: #64748b;
      font-size: 1.1rem;
    }
    .pe-devis-sector-search-input {
      flex: 1;
      min-width: 0;
      border: 0;
      padding: 11px 0;
      font: inherit;
      font-size: var(--devis-font-base);
      background: transparent;
    }
    .pe-devis-sector-search-input:focus {
      outline: none;
    }
    .pe-devis-sector-cards {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 10px;
      width: 100%;
    }
    @media (max-width: 991px) {
      .pe-devis-sector-cards {
        grid-template-columns: repeat(3, minmax(0, 1fr));
      }
    }
    @media (max-width: 575px) {
      .pe-devis-sector-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
      }
    }
    .pe-devis-sector-cards .pe-devis-sector-card {
      flex-direction: column;
      align-items: center;
      text-align: center;
      padding: 16px 12px 14px;
      min-height: 118px;
      gap: 8px;
      transition: border-color .2s, box-shadow .2s, transform .15s, background .2s;
    }
    .pe-devis-sector-cards .pe-devis-sector-card:active {
      transform: scale(0.98);
    }
    .pe-devis-sector-cards .pe-devis-sector-card .pe-devis-type-card-body {
      flex: 0 1 auto;
      width: 100%;
      text-align: center;
    }
    .pe-devis-sector-cards .pe-devis-sector-card .pe-devis-type-card-title {
      font-size: 16px;
      margin-bottom: 4px;
    }
    .pe-devis-sector-cards .pe-devis-sector-card .pe-devis-type-card-desc {
      margin-bottom: 0;
      font-size: 13px;
      line-height: 1.35;
    }
    .pe-devis-sector-cards .pe-devis-sector-card .pe-devis-type-card-icon {
      width: 48px;
      height: 48px;
      border-radius: 12px;
      transition: background .2s, color .2s;
    }
    .pe-devis-sector-card-icon--hotellerie { background: #E8F4FC; color: #0369a1; }
    .pe-devis-sector-card-icon--restauration { background: #FFF7ED; color: #c2410c; }
    .pe-devis-sector-card-icon--airbnb { background: #FEF3C7; color: #b45309; }
    .pe-devis-sector-card-icon--gite { background: #ECFDF5; color: #047857; }
    .pe-devis-sector-card-icon--sante { background: #FEE2E2; color: #b91c1c; }
    .pe-devis-sector-card-icon--industrie_epi { background: #EDE9FE; color: #6d28d9; }
    .pe-devis-sector-card-icon--autre { background: #F1F5F9; color: #475569; }
    .pe-devis-sector-cards .pe-devis-sector-card.is-active {
      border-color: var(--devis-navy);
      background: rgba(0, 43, 91, .05);
      box-shadow: 0 8px 22px rgba(0, 43, 91, .14);
    }
    .pe-devis-sector-cards .pe-devis-sector-card.is-active .pe-devis-type-card-icon {
      background: var(--devis-navy);
      color: #fff;
    }
    .pe-devis-sector-cards .pe-devis-sector-card:focus-visible {
      outline: 3px solid rgba(163, 189, 255, .55);
      outline-offset: 2px;
    }
    .pe-devis-profile-card:focus-visible {
      outline: 3px solid rgba(163, 189, 255, .55);
      outline-offset: 2px;
    }
    .pe-devis-sector-recap {
      display: flex;
      align-items: center;
      flex-wrap: wrap;
      gap: 10px 14px;
      padding: 12px 16px;
      border-radius: 12px;
      background: #F8FAFC;
      border: 1px solid #E2E8F0;
    }
    .pe-devis-sector-recap-icon {
      flex-shrink: 0;
      width: 36px;
      height: 36px;
      border-radius: 10px;
      background: var(--devis-navy);
      color: #fff;
      display: inline-flex;
      align-items: center;
      justify-content: center;
    }
    .pe-devis-sector-recap-icon .pe-devis-sector-svg {
      width: 20px;
      height: 20px;
    }
    .pe-devis-sector-recap-text {
      flex: 1;
      min-width: 140px;
      font-size: var(--devis-font-sm);
      color: var(--devis-text-muted);
    }
    .pe-devis-sector-recap-text strong {
      color: var(--devis-navy);
      font-weight: 700;
    }
    .pe-devis-sector-recap-change {
      border: none;
      background: none;
      padding: 8px 12px;
      font: inherit;
      font-size: var(--devis-font-sm);
      font-weight: 600;
      color: var(--devis-navy);
      cursor: pointer;
      text-decoration: underline;
      text-underline-offset: 3px;
      border-radius: 8px;
    }
    .pe-devis-sector-recap-change:hover {
      background: rgba(0, 43, 91, .06);
    }
    .pe-devis-sector-cards .pe-devis-sector-card .pe-devis-type-card-check {
      position: absolute;
      top: 10px;
      right: 10px;
      width: 24px;
      height: 24px;
      font-size: 15px;
    }
    .pe-devis-sector-cards .pe-devis-sector-card {
      position: relative;
    }
    .pe-devis-check--same-address {
      margin: 4px 0 0;
    }
    .pe-devis-delivery-wrap[hidden] {
      display: none !important;
    }
    .pe-devis-zone-hint {
      margin: 12px 0 0;
      font-size: var(--devis-font-sm);
      color: var(--devis-text-soft);
      line-height: 1.5;
    }
    .pe-devis-zone-context {
      display: flex;
      align-items: center;
      gap: 14px;
      flex-wrap: wrap;
      padding: 14px 16px;
      margin-bottom: 20px;
      border-radius: 14px;
      background: rgba(163, 189, 255, .16);
      border: 1px solid rgba(20, 45, 111, .12);
    }
    .pe-devis-zone-context--initial,
    .pe-devis-zone-context--empty {
      background: #F6F4EF;
      border-color: rgba(20, 45, 111, .08);
    }

    .pe-devis-zone-context--initial {
      display: block;
    }

    .pe-devis-zone-context__edit-copy {
      display: grid;
      gap: 2px;
    }

    .pe-devis-zone-context__edit-copy strong {
      font-size: 15px;
      line-height: 1.4;
      color: #142D6F;
    }
    .pe-devis-zone-context__icon {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 40px;
      height: 40px;
      border-radius: 12px;
      background: #fff;
      color: #142D6F;
      flex-shrink: 0;
    }
    .pe-devis-zone-context__icon i { font-size: 20px; }
    .pe-devis-zone-context__text {
      flex: 1;
      min-width: 180px;
    }
    .pe-devis-zone-context__label {
      display: block;
      font-size: 12px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .05em;
      color: #6b7a99;
      margin-bottom: 2px;
    }
    .pe-devis-zone-context__text strong,
    .pe-devis-zone-context__empty-text {
      display: block;
      font-size: 15px;
      line-height: 1.4;
      color: #142D6F;
      margin: 0;
    }
    .pe-devis-zone-context__badge {
      display: inline-flex;
      align-items: center;
      padding: 4px 10px;
      border-radius: 999px;
      font-size: 12px;
      font-weight: 700;
      white-space: nowrap;
    }
    .pe-devis-zone-context__badge--ok {
      background: rgba(16, 185, 129, .15);
      color: #065F46;
    }
    .pe-devis-zone-context__badge--soon {
      background: rgba(37, 99, 235, .12);
      color: #142D6F;
    }
    .pe-devis-zone-context__badge--warn {
      background: rgba(220, 53, 69, .12);
      color: #842029;
    }
    .pe-devis-zone-context__change {
      border: 0;
      background: transparent;
      color: #142D6F;
      font-size: 14px;
      font-weight: 700;
      text-decoration: underline;
      text-underline-offset: 3px;
      padding: 6px 8px;
      border-radius: 8px;
      cursor: pointer;
    }
    .pe-devis-zone-context__change:hover {
      background: rgba(20, 45, 111, .06);
    }
    .pe-devis-zone-context__display {
      display: flex;
      align-items: center;
      gap: 14px;
      flex-wrap: wrap;
      width: 100%;
    }
    .pe-devis-zone-context__edit {
      width: 100%;
    }
    .pe-devis-zone-context__edit-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      margin-bottom: 12px;
      color: #142D6F;
      font-size: 15px;
    }
    .pe-devis-zone-context__cancel {
      border: 0;
      background: transparent;
      color: #6b7a99;
      font-size: 14px;
      font-weight: 600;
      cursor: pointer;
      padding: 4px 8px;
      border-radius: 8px;
    }
    .pe-devis-zone-context__cancel:hover {
      background: rgba(20, 45, 111, .06);
      color: #142D6F;
    }
    .pe-devis-zone-context__field {
      margin-bottom: 10px;
    }
    .pe-devis-zone-context__field .pe-devis-adresse-input {
      width: 100%;
    }
    .pe-devis-zone-context__field .pe-zone-check-icon {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 44px;
      color: #142D6F;
      flex-shrink: 0;
    }
    .pe-devis-zone-context__field input {
      flex: 1;
      border: 0;
      background: transparent;
      padding: 14px 14px 14px 0;
      font-size: 15px;
      color: #142D6F;
      min-width: 0;
    }
    .pe-devis-zone-context__field input:focus {
      outline: none;
    }
    .pe-devis-zone-context__feedback {
      font-size: 14px;
      line-height: 1.45;
      padding: 10px 12px;
      border-radius: 10px;
    }
    .pe-devis-zone-context__feedback--loading,
    .pe-devis-zone-context__feedback--info {
      background: rgba(20, 45, 111, .06);
      color: #6b7a99;
    }
    .pe-devis-zone-context__feedback--soon {
      background: #EFF6FF;
      color: #142D6F;
    }
    .pe-devis-zone-context__feedback--warn,
    .pe-devis-zone-context__feedback--error {
      background: #FEF2F2;
      color: #842029;
    }
    .pe-devis-zone-context__mode {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-bottom: 12px;
    }
    .pe-devis-zone-context__mode-btn {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 8px 12px;
      border-radius: 999px;
      border: 1px solid rgba(20, 45, 111, .14);
      background: #fff;
      color: #142D6F;
      font-size: 13px;
      font-weight: 700;
      cursor: pointer;
    }
    .pe-devis-zone-context__mode-btn.is-active {
      background: #142D6F;
      border-color: #142D6F;
      color: #fff;
    }
    .pe-devis-zone-context__search-field {
      margin-bottom: 8px;
    }
    .pe-devis-zone-context__results {
      margin-top: 8px;
    }
    .pe-devis-zone-context__manual {
      display: grid;
      gap: 12px;
    }
    .pe-devis-zone-context__manual-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      align-items: center;
    }
    .pe-devis-zone-context__validate {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      padding: 12px 18px;
      border: 0;
      border-radius: 12px;
      background: #142D6F;
      color: #fff;
      font-size: 14px;
      font-weight: 700;
      cursor: pointer;
    }
    .pe-devis-zone-context__validate:hover {
      background: #1e3d8f;
    }
    .pe-devis-pro-banner {
      display: flex;
      gap: 12px;
      align-items: flex-start;
      padding: 14px 16px;
      border-radius: 12px;
      background: rgba(163, 189, 255, .2);
      border: 1px solid rgba(0, 43, 91, .12);
      margin-bottom: 20px;
      font-size: var(--devis-font-sm);
      color: var(--devis-text);
    }
    .pe-devis-pro-banner--success {
      background: rgba(25, 135, 84, .08);
      border-color: rgba(25, 135, 84, .25);
    }
    .pe-devis-pro-banner i { font-size: 22px; color: var(--devis-navy); flex-shrink: 0; }
    .pe-devis-fieldset {
      border: 0;
      margin: 0 0 20px;
      padding: 0;
    }
    .pe-devis-fieldset legend {
      font-weight: 600;
      color: var(--devis-navy);
      margin-bottom: 10px;
      font-size: var(--devis-font-base);
    }
    .pe-devis-radio-stack { display: flex; flex-direction: column; gap: 8px; }
    .pe-devis-volume-stack {
      display: grid;
      grid-template-columns: 1fr;
      gap: 10px;
    }
    @media (min-width: 640px) {
      .pe-devis-volume-stack {
        grid-template-columns: repeat(3, minmax(0, 1fr));
      }
    }
    .pe-devis-radio-row {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 10px;
      padding: 18px 14px;
      border: 2px solid rgba(0, 43, 91, .12);
      border-radius: 12px;
      cursor: pointer;
      background: #fff;
      min-height: 100px;
      text-align: center;
      transition: border-color .2s, background .2s, box-shadow .2s;
    }
    .pe-devis-volume-stack .pe-devis-radio-row span {
      font-size: var(--devis-font-sm);
      font-weight: 600;
      color: var(--devis-navy);
      line-height: 1.35;
    }
    .pe-devis-volume-stack .pe-devis-radio-row input[type="radio"] {
      width: 20px;
      height: 20px;
      margin: 0;
      flex-shrink: 0;
      accent-color: var(--devis-navy);
    }
    .pe-devis-radio-row:has(input:checked) {
      border-color: var(--devis-navy);
      background: rgba(0, 43, 91, .04);
      box-shadow: 0 6px 18px rgba(0, 43, 91, .1);
    }
    .pe-devis-check-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px;
    }
    @media (min-width: 576px) {
      .pe-devis-check-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    }
    .pe-devis-check--tile {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 12px 14px;
      border: 2px solid rgba(0, 43, 91, .12);
      border-radius: 10px;
      min-height: var(--devis-touch-min);
      cursor: pointer;
      transition: border-color .2s, background .2s;
    }
    .pe-devis-check--tile input[type="checkbox"] {
      width: 18px;
      height: 18px;
      margin: 0;
      flex-shrink: 0;
      accent-color: var(--devis-navy);
    }
    .pe-devis-check--tile:has(input:checked) {
      border-color: var(--devis-navy);
      background: rgba(0, 43, 91, .04);
    }
    .pe-devis-laundry-tile.is-checked {
      border-color: var(--devis-navy);
      background: rgba(0, 43, 91, .04);
    }
    .pe-devis-field-hint {
      margin-top: 8px;
      font-size: var(--devis-font-sm);
      color: #b45309;
    }
    .pe-devis-submit--pro {
      background: var(--devis-navy);
      color: #fff;
      width: 100%;
    }
    body.pe-devis--pro .pe-devis-linge-item-price,
    body.pe-devis--pro .pe-devis-linge-kilo-rate,
    body.pe-devis--pro .pe-devis-linge-sticky,
    body.pe-devis--pro .pe-devis-cart-line-amount,
    body.pe-devis--pro .pe-devis-cart-grand--price {
      display: none !important;
    }
    .pe-devis-catalog-pro-note {
      margin-top: 20px;
    }

    .pe-devis-planner {
      display: flex;
      flex-direction: column;
      gap: 14px;
    }
    .pe-devis-planner__notice {
      display: flex;
      align-items: flex-start;
      gap: 12px;
      padding: 12px 14px;
      border-radius: 14px;
      background: linear-gradient(135deg, rgba(37, 99, 235, .08), rgba(13, 148, 136, .06));
      border: 1px solid rgba(0, 43, 91, .1);
    }
    .pe-devis-planner__notice i {
      flex-shrink: 0;
      margin-top: 2px;
      font-size: 20px;
      color: #2563EB;
    }
    .pe-devis-planner__notice p {
      margin: 0;
      font-size: var(--devis-font-sm);
      line-height: 1.55;
      color: var(--devis-text);
    }
    .pe-devis-planner__notice strong {
      color: var(--devis-navy);
    }
    .pe-devis-planner__leg {
      padding: 16px;
      border-radius: 16px;
      border: 1px solid #E2E8F0;
      background: #fff;
      transition: border-color .2s ease, box-shadow .2s ease, opacity .2s ease;
    }
    .pe-devis-planner__leg--collecte {
      border-left: 3px solid #2563EB;
    }
    .pe-devis-planner__leg--livraison {
      border-left: 3px solid #0D9488;
    }
    .pe-devis-planner__leg.is-complete {
      background: linear-gradient(180deg, #fff 0%, #F8FAFC 100%);
    }
    .pe-devis-planner__leg.is-locked {
      opacity: .72;
      background: #F8FAFC;
    }
    .pe-devis-planner__leg-head {
      display: flex;
      align-items: flex-start;
      gap: 12px;
    }
    .pe-devis-planner__step {
      flex-shrink: 0;
      width: 32px;
      height: 32px;
      border-radius: 10px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      font-size: 14px;
      font-weight: 800;
      color: #fff;
      background: #2563EB;
    }
    .pe-devis-planner__leg--livraison .pe-devis-planner__step {
      background: #0D9488;
    }
    .pe-devis-planner__leg-title {
      margin: 0 0 2px;
      font-size: var(--devis-font-base);
      font-weight: 700;
      color: var(--devis-navy);
    }
    .pe-devis-planner__leg-sub {
      margin: 0;
      font-size: 13px;
      line-height: 1.45;
      color: #64748B;
    }
    .pe-devis-planner__edit {
      margin-left: auto;
      flex-shrink: 0;
      padding: 8px 12px;
      border: 1px solid rgba(0, 43, 91, .14);
      border-radius: 999px;
      background: #fff;
      color: var(--devis-navy);
      font-size: 12px;
      font-weight: 700;
      cursor: pointer;
      font-family: inherit;
    }
    .pe-devis-planner__edit:hover {
      border-color: var(--devis-navy);
      background: #F8FAFC;
    }
    .pe-devis-planner__summary {
      display: flex;
      align-items: center;
      gap: 12px;
      margin-top: 14px;
      padding: 12px 14px;
      border-radius: 12px;
      background: rgba(0, 43, 91, .04);
      border: 1px solid rgba(0, 43, 91, .08);
    }
    .pe-devis-planner__summary-icon {
      flex-shrink: 0;
      width: 36px;
      height: 36px;
      border-radius: 10px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      background: #fff;
      color: #2563EB;
      font-size: 18px;
      box-shadow: 0 4px 12px rgba(0, 43, 91, .08);
    }
    .pe-devis-planner__leg--livraison .pe-devis-planner__summary-icon {
      color: #0D9488;
    }
    .pe-devis-planner__summary-copy {
      display: flex;
      flex-direction: column;
      gap: 2px;
      min-width: 0;
    }
    .pe-devis-planner__summary-copy strong {
      font-size: var(--devis-font-sm);
      color: var(--devis-navy);
    }
    .pe-devis-planner__summary-copy span {
      font-size: 13px;
      color: #64748B;
    }
    .pe-devis-planner__picker {
      margin-top: 14px;
      display: flex;
      flex-direction: column;
      gap: 14px;
    }
    .pe-devis-planner__field-label {
      display: block;
      margin-bottom: 8px;
      font-size: 12px;
      font-weight: 700;
      letter-spacing: .04em;
      text-transform: uppercase;
      color: #64748B;
    }
    .pe-devis-planner__dates {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
      gap: 8px;
    }
    .pe-devis-planner__date {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      gap: 2px;
      min-width: 0;
      width: 100%;
      padding: 12px 14px;
      border: 1px solid #E2E8F0;
      border-radius: 14px;
      background: #fff;
      color: var(--devis-navy);
      cursor: pointer;
      transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
    }
    .pe-devis-planner__date:hover,
    .pe-devis-planner__date:focus-visible {
      border-color: var(--devis-navy);
      box-shadow: 0 0 0 2px rgba(0, 43, 91, .1);
      outline: none;
      transform: translateY(-1px);
    }
    .pe-devis-planner__date.is-selected {
      border-color: var(--devis-navy);
      background: rgba(0, 43, 91, .05);
      box-shadow: inset 0 0 0 1px var(--devis-navy);
    }
    .pe-devis-planner__leg--livraison .pe-devis-planner__date.is-selected {
      border-color: #0D9488;
      background: rgba(13, 148, 136, .06);
      box-shadow: inset 0 0 0 1px #0D9488;
    }
    .pe-devis-planner__date-weekday {
      font-size: 11px;
      font-weight: 700;
      letter-spacing: .04em;
      text-transform: capitalize;
      color: #64748B;
    }
    .pe-devis-planner__date-day {
      font-size: 14px;
      font-weight: 700;
      text-transform: capitalize;
      line-height: 1.3;
      white-space: nowrap;
    }
    .pe-devis-planner__field--slots {
      margin-top: 2px;
      padding-top: 16px;
      border-top: 1px solid #E2E8F0;
    }
    .pe-devis-planner__slots {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(min(100%, 168px), 1fr));
      gap: 10px;
    }
    .pe-devis-planner__slot {
      display: flex;
      align-items: center;
      gap: 12px;
      width: 100%;
      min-height: 72px;
      padding: 14px 16px;
      border: 1.5px solid #E2E8F0;
      border-radius: 14px;
      background: #fff;
      color: var(--devis-navy);
      text-align: left;
      cursor: pointer;
      font-family: inherit;
      transition: border-color .15s ease, background .15s ease, box-shadow .15s ease, transform .15s ease;
    }
    .pe-devis-planner__slot-icon {
      flex-shrink: 0;
      width: 42px;
      height: 42px;
      border-radius: 12px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      background: rgba(0, 43, 91, .06);
      color: var(--devis-navy);
      font-size: 20px;
    }
    .pe-devis-planner__slot-body {
      display: flex;
      flex-direction: column;
      gap: 3px;
      flex: 1;
      min-width: 0;
    }
    .pe-devis-planner__slot-period {
      font-size: 11px;
      font-weight: 700;
      letter-spacing: .05em;
      text-transform: uppercase;
      color: #64748B;
      line-height: 1.2;
    }
    .pe-devis-planner__slot-time {
      font-size: clamp(16px, 2.4vw, 18px);
      font-weight: 800;
      letter-spacing: -.02em;
      color: var(--devis-navy);
      line-height: 1.25;
      font-variant-numeric: tabular-nums;
    }
    .pe-devis-planner__slot-check {
      flex-shrink: 0;
      width: 24px;
      height: 24px;
      border-radius: 50%;
      border: 2px solid #CBD5E1;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      color: transparent;
      font-size: 14px;
      transition: border-color .15s ease, background .15s ease, color .15s ease;
    }
    .pe-devis-planner__slot:hover,
    .pe-devis-planner__slot:focus-visible {
      border-color: var(--devis-navy);
      box-shadow: 0 0 0 2px rgba(0, 43, 91, .1);
      outline: none;
      transform: translateY(-1px);
    }
    .pe-devis-planner__leg--livraison .pe-devis-planner__slot.is-selected {
      border-color: #0D9488;
      background: rgba(13, 148, 136, .07);
      box-shadow: inset 0 0 0 1px #0D9488;
    }
    .pe-devis-planner__leg--livraison .pe-devis-planner__slot.is-selected .pe-devis-planner__slot-icon {
      background: rgba(13, 148, 136, .14);
      color: #0F766E;
    }
    .pe-devis-planner__leg--livraison .pe-devis-planner__slot.is-selected .pe-devis-planner__slot-check {
      border-color: #0D9488;
      background: #0D9488;
      color: #fff;
    }
    .pe-devis-planner__slot.is-selected {
      border-color: var(--devis-navy);
      background: rgba(0, 43, 91, .06);
      box-shadow: inset 0 0 0 1px var(--devis-navy);
      transform: none;
    }
    .pe-devis-planner__slot.is-selected .pe-devis-planner__slot-icon {
      background: rgba(0, 43, 91, .12);
      color: var(--devis-navy);
    }
    .pe-devis-planner__slot.is-selected .pe-devis-planner__slot-period {
      color: #475569;
    }
    .pe-devis-planner__slot.is-selected .pe-devis-planner__slot-check {
      border-color: var(--devis-navy);
      background: var(--devis-navy);
      color: #fff;
    }
    .pe-devis-planner__loading,
    .pe-devis-collecte-schedule__empty {
      color: #64748B;
      font-size: var(--devis-font-sm);
    }
    .pe-devis-planner__field.is-field-error .pe-devis-planner__field-label,
    .pe-devis-planner__field--slots.is-field-error .pe-devis-planner__field-label {
      color: #B91C1C;
    }
    .pe-devis-planner__dates.is-field-error,
    .pe-devis-planner__slots.is-field-error {
      padding: 8px;
      border-radius: 14px;
      box-shadow: 0 0 0 2px #F87171, 0 0 0 5px rgba(239, 68, 68, .14);
      background: rgba(254, 242, 242, .65);
    }
    .pe-devis-planner__field.is-field-error,
    .pe-devis-planner__field--slots.is-field-error {
      animation: pe-devis-planner-field-shake .45s ease;
    }
    .pe-devis-planner__leg.is-field-error {
      border-color: #FCA5A5;
      box-shadow: 0 0 0 2px rgba(239, 68, 68, .12);
    }
    .pe-devis-planner__field-error {
      margin: 8px 0 0;
      font-size: 13px;
      font-weight: 600;
      line-height: 1.45;
      color: #B91C1C;
    }
    @keyframes pe-devis-planner-field-shake {
      0%, 100% { transform: translateX(0); }
      20% { transform: translateX(-5px); }
      40% { transform: translateX(5px); }
      60% { transform: translateX(-3px); }
      80% { transform: translateX(3px); }
    }

    /* Checkout wizard — 1 panneau visible, UX premium */
    .pe-devis-checkout--wizard {
      gap: 0;
      padding-top: 4px;
    }
    .pe-devis-checkout-nav {
      display: flex;
      flex-direction: column;
      gap: 10px;
      margin-top: 20px;
      padding-top: 18px;
      border-top: 1px solid #e2e8f0;
      width: 100%;
    }
    .pe-devis-checkout-nav .pe-devis-btn-prev,
    .pe-devis-checkout-nav .pe-devis-btn-next {
      flex: 0 0 auto;
      width: 100%;
      min-width: 0;
    }
    .pe-devis-checkout-nav:not(.is-final-step) {
      flex-direction: row;
      flex-wrap: wrap;
    }
    .pe-devis-checkout-nav:not(.is-final-step) .pe-devis-btn-prev,
    .pe-devis-checkout-nav:not(.is-final-step) .pe-devis-btn-next {
      flex: 1 1 calc(50% - 5px);
      width: auto;
    }
    .pe-devis-checkout-nav:has(.pe-devis-btn-prev[hidden]) .pe-devis-btn-next {
      flex: 1 1 100%;
      width: 100%;
    }
    .pe-devis-checkout-nav.is-final-step .pe-devis-btn-prev {
      flex: 1 1 100%;
      min-width: 100%;
      order: 1;
    }
    .pe-devis-checkout-nav.is-final-step .pe-devis-submit {
      order: 2;
    }
    .pe-devis-checkout-nav .pe-devis-submit-hint {
      order: 3;
      width: 100%;
      margin: 0;
      text-align: center;
    }
    @media (max-width: 399.98px) {
      .pe-devis-checkout-nav:not(.is-final-step) {
        flex-direction: column;
      }
      .pe-devis-checkout-nav:not(.is-final-step) .pe-devis-btn-prev,
      .pe-devis-checkout-nav:not(.is-final-step) .pe-devis-btn-next {
        flex: 1 1 100%;
        width: 100%;
      }
    }
    .pe-devis-checkout-head {
      margin-bottom: 18px;
    }
    .pe-devis-checkout-track {
      position: relative;
      margin-bottom: 16px;
      padding: 0 4px;
    }
    .pe-devis-checkout-track__line {
      position: absolute;
      left: 12%;
      right: 12%;
      top: 18px;
      height: 4px;
      border-radius: 999px;
      background: #e2e8f0;
      overflow: hidden;
      z-index: 0;
    }
    .pe-devis-checkout-track__fill {
      display: block;
      height: 100%;
      border-radius: inherit;
      background: linear-gradient(90deg, #0d9488 0%, #142D6F 100%);
      transition: width .4s cubic-bezier(.4, 0, .2, 1);
    }
    .pe-devis-checkout-track__steps {
      position: relative;
      z-index: 1;
      display: flex;
      justify-content: space-between;
      gap: 4px;
      margin: 0;
      padding: 0;
      list-style: none;
    }
    .pe-devis-checkout-track__step {
      flex: 1;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 8px;
      min-width: 0;
      padding: 0;
      border: 0;
      background: none;
      font-family: inherit;
      cursor: default;
      text-align: center;
    }
    .pe-devis-checkout-track__step.is-done {
      cursor: pointer;
    }
    .pe-devis-checkout-track__dot {
      position: relative;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 36px;
      height: 36px;
      border-radius: 999px;
      background: #fff;
      border: 2px solid #e2e8f0;
      color: #94a3b8;
      font-size: 17px;
      transition: border-color .2s ease, color .2s ease, background .2s ease, box-shadow .2s ease, transform .2s ease;
    }
    .pe-devis-checkout-track__check {
      display: none;
      align-items: center;
      justify-content: center;
      font-size: 16px;
      font-weight: 800;
    }
    .pe-devis-checkout-track__step.is-done .pe-devis-checkout-track__dot {
      background: #0d9488;
      border-color: #0d9488;
      color: #fff;
      box-shadow: 0 4px 12px rgba(13, 148, 136, .28);
    }
    .pe-devis-checkout-track__step.is-done .pe-devis-checkout-track__dot > i:first-child {
      display: none;
    }
    .pe-devis-checkout-track__step.is-done .pe-devis-checkout-track__check {
      display: inline-flex;
    }
    .pe-devis-checkout-track__step.is-active .pe-devis-checkout-track__dot {
      background: var(--devis-navy);
      border-color: var(--devis-navy);
      color: #fff;
      transform: scale(1.06);
      box-shadow: 0 6px 18px rgba(20, 45, 111, .28);
    }
    .pe-devis-checkout-track__label {
      font-size: 11px;
      font-weight: 700;
      line-height: 1.2;
      color: #94a3b8;
      letter-spacing: -.01em;
      transition: color .2s ease;
    }
    .pe-devis-checkout-track__step.is-done .pe-devis-checkout-track__label {
      color: #0f766e;
    }
    .pe-devis-checkout-track__step.is-active .pe-devis-checkout-track__label {
      color: var(--devis-navy);
    }
    .pe-devis-checkout-head__title {
      margin: 0;
      font-size: clamp(1.25rem, 2.6vw, 1.5rem);
      font-weight: 800;
      letter-spacing: -.02em;
      color: var(--devis-navy);
      line-height: 1.2;
    }
    .pe-devis-checkout-head__lead {
      margin: 5px 0 0;
      font-size: 14px;
      line-height: 1.45;
      color: var(--devis-text-muted);
    }
    @media (max-width: 575.98px) {
      .pe-devis-checkout-track__label {
        font-size: 10px;
      }
      .pe-devis-checkout-track__dot {
        width: 32px;
        height: 32px;
        font-size: 15px;
      }
      .pe-devis-checkout-track__line {
        top: 16px;
        left: 10%;
        right: 10%;
      }
    }
    .pe-devis-checkout-recap {
      display: flex;
      flex-direction: column;
      gap: 6px;
      margin: 0 0 12px;
      padding: 0;
      list-style: none;
    }
    .pe-devis-checkout-recap__btn {
      display: flex;
      align-items: center;
      gap: 10px;
      width: 100%;
      padding: 10px 12px;
      border: 1px solid rgba(13, 148, 136, .18);
      border-radius: 12px;
      background: #f0fdfa;
      font-family: inherit;
      text-align: left;
      cursor: pointer;
      transition: background .15s ease, border-color .15s ease;
    }
    .pe-devis-checkout-recap__btn:hover {
      background: #ecfdf5;
      border-color: rgba(13, 148, 136, .35);
    }
    .pe-devis-checkout-recap__label {
      display: block;
      font-size: 10px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .06em;
      color: #0f766e;
      margin-bottom: 2px;
    }
    .pe-devis-checkout-recap__value {
      display: block;
      flex: 1;
      min-width: 0;
      font-size: 13px;
      font-weight: 500;
      color: #134e4a;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    .pe-devis-checkout-recap__btn > span:first-child {
      flex: 1;
      min-width: 0;
    }
    .pe-devis-checkout-recap__btn i {
      font-size: 16px;
      color: #0d9488;
    }
    .pe-devis-checkout-shell {
      display: block;
    }
    .pe-devis-checkout-coordinates {
      display: contents;
    }
    .pe-devis-checkout--wizard .pe-devis-checkout-step {
      display: none;
      padding: 0;
      border: 0;
      box-shadow: none;
      background: transparent;
      animation: pe-devis-checkout-in .28s ease;
    }
    .pe-devis-checkout--wizard .pe-devis-checkout-step.is-active {
      display: block;
    }
    @keyframes pe-devis-checkout-in {
      from { opacity: 0; transform: translateY(8px); }
      to { opacity: 1; transform: translateY(0); }
    }
    .pe-devis-checkout .pe-devis-coordinates-block--identity,
    .pe-devis-checkout .pe-devis-coordinates-block--addresses {
      margin: 0;
      padding: 0;
      border: 0;
    }
    .pe-devis-profil-grid--checkout {
      gap: 12px 14px;
    }
    .pe-devis-field--icon label {
      display: block;
      margin-bottom: 6px;
      font-size: 13px;
      font-weight: 600;
      color: #334155;
    }
    .pe-devis-field__control {
      position: relative;
      display: flex;
      align-items: center;
    }
    .pe-devis-field__control > i {
      position: absolute;
      left: 14px;
      z-index: 1;
      font-size: 18px;
      color: #64748b;
      pointer-events: none;
    }
    .pe-devis-field--icon .pe-devis-field__control input,
    .pe-devis-field--icon .pe-devis-field__control textarea {
      width: 100%;
      min-height: 52px;
      padding: 14px 14px 14px 44px !important;
      font-size: 16px !important;
      line-height: 1.35 !important;
      border-radius: 14px;
      background: #fff;
      border: 1.5px solid #e2e8f0;
      box-shadow: 0 2px 8px rgba(15, 23, 42, .04);
      transition: border-color .15s ease, box-shadow .15s ease;
    }
    .pe-devis-field--icon .pe-devis-field__control textarea {
      min-height: 80px;
      padding-top: 12px !important;
    }
    .pe-devis-field--icon .pe-devis-field__control input:focus,
    .pe-devis-field--icon .pe-devis-field__control textarea:focus {
      border-color: var(--devis-navy);
      box-shadow: 0 0 0 4px rgba(163, 189, 255, .35);
      outline: none;
    }
    .pe-devis-checkout .pe-devis-profil-card {
      padding: 0;
      background: transparent;
      border: 0;
    }
    .pe-devis-checkout .pe-devis-profil-connected-card {
      border-radius: 16px;
      box-shadow: 0 8px 24px rgba(20, 45, 111, .08);
    }
    .pe-devis-checkout .pe-devis-address-block {
      padding: 16px;
      border-radius: 16px;
      border: 1.5px solid #e2e8f0;
      box-shadow: 0 4px 16px rgba(15, 23, 42, .04);
    }
    .pe-devis-checkout.is-addresses-step .pe-devis-checkout-head {
      margin-bottom: 12px;
    }
    .pe-devis-checkout.is-addresses-step .pe-devis-address-block {
      padding: 0;
      border: 0;
      box-shadow: none;
      background: transparent;
    }
    .pe-devis-checkout.is-addresses-step
      .pe-devis-address-block:has(#devis-pickup-selected:not([hidden])) .pe-devis-address-block__head {
      display: none;
    }
    .pe-devis-checkout.is-addresses-step .pe-devis-address-block__card {
      margin-top: 0;
      padding: 12px 14px;
      background: #f8fafc;
      border: 1px solid #e2e8f0;
      border-left: 3px solid var(--devis-navy);
      box-shadow: none;
      border-radius: 12px;
      display: flex;
      flex-wrap: wrap;
      align-items: flex-start;
      gap: 6px 10px;
    }
    .pe-devis-checkout.is-addresses-step .pe-devis-address-block__card-badge,
    .pe-devis-checkout.is-addresses-step .pe-devis-address-block__card-meta {
      display: none;
    }
    .pe-devis-checkout.is-addresses-step .pe-devis-address-block__card-label {
      order: 1;
      flex: 1 1 200px;
      margin: 0;
      font-size: 15px;
      line-height: 1.45;
    }
    .pe-devis-checkout.is-addresses-step .pe-devis-address-block__card-top {
      order: 2;
      margin: 0 0 0 auto;
    }
    .pe-devis-checkout.is-addresses-step .pe-devis-address-block__zone-badge {
      order: 3;
    }
    .pe-devis-checkout.is-addresses-step .pe-devis-check--same-address {
      margin: 14px 0 0;
      padding: 0;
      border: 0;
      background: transparent;
    }
    .pe-devis-checkout.is-addresses-step .pe-devis-delivery-wrap {
      margin-top: 10px;
    }
    .pe-devis-checkout .pe-devis-planner__notice {
      display: none;
    }
    .pe-devis-checkout-remarks {
      margin-top: 14px;
      border-radius: 14px;
      border: 1px dashed #cbd5e1;
      background: #f8fafc;
      overflow: hidden;
    }
    .pe-devis-checkout-remarks summary {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 12px 14px;
      cursor: pointer;
      list-style: none;
      font-size: 13px;
      font-weight: 600;
      color: var(--devis-navy);
    }
    .pe-devis-checkout-remarks summary::-webkit-details-marker { display: none; }
    .pe-devis-checkout-remarks[open] summary { border-bottom: 1px solid #e2e8f0; }
    .pe-devis-checkout-remarks .pe-devis-field { margin: 0; padding: 12px 14px 14px; }
    .pe-devis-checkout-pay.is-field-error {
      animation: pe-devis-planner-field-shake .45s ease;
      box-shadow: 0 0 0 2px #F87171, 0 0 0 5px rgba(239, 68, 68, .14);
      background: rgba(254, 242, 242, .65);
    }
    .pe-devis-checkout-pay.is-field-error .pe-devis-check {
      margin: 0;
    }
    .pe-devis-check.pe-devis-checkout-consent.is-field-error {
      color: #334155;
    }
    .pe-devis-checkout .pe-devis-checkout-pay {
      margin: 0;
      padding: 16px;
      border-radius: 14px;
      background: #fff;
      border: 1.5px solid #e2e8f0;
    }
    .pe-devis-checkout .pe-devis-planner { gap: 10px; }
    .pe-devis-checkout .pe-devis-planner__leg {
      border-radius: 14px;
      border: 1.5px solid #e2e8f0;
      background: #fff;
      padding: 14px;
    }
    .pe-devis-checkout .pe-devis-planner__slots {
      grid-template-columns: 1fr;
    }
    @media (min-width: 640px) {
      .pe-devis-checkout .pe-devis-planner__slots {
        grid-template-columns: repeat(3, minmax(0, 1fr));
      }
    }
    @media (min-width: 576px) {
      .pe-devis-profil-grid--checkout {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
    }
    @media (max-width: 575.98px) {
      .pe-devis-profil-grid--checkout {
        grid-template-columns: 1fr;
      }
    }

    /* Footer */
    @media (max-width: 991px) {
      .pe-devis-main.pe-devis-main--form {
        padding-top: var(--prowash-site-header-offset-mobile, 116px);
        scroll-margin-top: var(--prowash-site-header-offset-mobile, 116px);
      }
      .pe-devis-services { grid-template-columns: 1fr; }
      .pe-devis-aside { position: static; }
      .pe-devis-form-col { order: 1; }
      .pe-devis-progress-col { order: 2; }
      .pe-devis-progress-mobile { display: block; margin-bottom: 16px; }
      .pe-devis-progress-col .pe-devis-progress-top,
      .pe-devis-progress-col .pe-devis-progress-bar { display: none; }
    }
