.wab { --wab-accent:#f26a0f; --wab-max:1240px; --wab-ink:#15171c; --wab-muted:#6b7280; --wab-line:#e4ddd0; --wab-cream:#f7f3ec; --wab-green:#0f7a4a; width:100%; font-family:inherit; color:var(--wab-ink); }
.wab *, .wab *::before, .wab *::after { box-sizing:border-box; }
.wab-card { width:100%; max-width:var(--wab-max); margin:0 auto; background:#fff; border-radius:24px; padding:28px; border:1px solid var(--wab-line); box-shadow:0 24px 70px rgba(20,22,28,.14); }
.wab-title { margin:0 0 16px; font-size:22px; font-weight:800; letter-spacing:-.01em; }

/* ---- Boutons : on neutralise le style du thème (fonds marron, tailles imposées…) ---- */
.wab .wab-card button { font-family:inherit !important; text-transform:none !important; letter-spacing:normal !important; text-decoration:none !important; box-shadow:none !important; text-shadow:none !important; margin:0 !important; float:none !important; min-height:0 !important; cursor:pointer; -webkit-appearance:none; appearance:none; }

/* Trajets fréquents */
.wab-routes { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-bottom:16px; }
.wab-routes-label { font-size:11px; letter-spacing:.14em; text-transform:uppercase; font-weight:700; color:var(--wab-muted); margin-right:8px; white-space:nowrap; }
.wab .wab-card button.wab-chip { display:inline-flex !important; align-items:center; width:auto !important; height:auto !important; border:1px solid var(--wab-line) !important; border-radius:999px !important; padding:8px 14px !important; font-size:13px !important; font-weight:600 !important; line-height:1.2 !important; background:#fff !important; color:var(--wab-ink) !important; white-space:nowrap; transition:border-color .15s, color .15s, background .15s; }
.wab .wab-card button.wab-chip:hover, .wab .wab-card button.wab-chip:focus-visible { border-color:var(--wab-accent) !important; color:var(--wab-accent) !important; background:#fff7f1 !important; outline:0; }

/* ---- Barre principale ---- */
.wab-bar { display:flex; align-items:stretch; border:1px solid var(--wab-line); border-radius:16px; overflow:hidden; background:#fff; margin-bottom:20px; }
.wab-g { display:contents; }
.wab-cell { flex:1 1 0; min-width:0; padding:13px 18px; display:flex; flex-direction:column; justify-content:center; gap:5px; border-right:1px solid var(--wab-line); margin:0; cursor:text; min-height:82px; }
.wab-from, .wab-to { flex:1.5 1 0; }
.wab-label { font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; font-weight:700; color:var(--wab-muted); line-height:1.2; }
.wab-cell input { border:0 !important; outline:0 !important; box-shadow:none !important; background:transparent !important; padding:0 !important; margin:0 !important; font-size:16px; font-weight:700; color:var(--wab-ink); width:100%; min-height:0 !important; height:auto !important; line-height:1.3; text-overflow:ellipsis; }
.wab-cell input::placeholder { color:#a0a7b1; font-weight:500; }

.wab .wab-card button.wab-swap { flex:0 0 46px !important; width:46px !important; height:auto !important; padding:0 !important; border:0 !important; border-right:1px solid var(--wab-line) !important; border-radius:0 !important; background:#fff !important; color:var(--wab-accent) !important; font-size:20px !important; font-weight:700 !important; display:flex !important; align-items:center; justify-content:center; line-height:1 !important; transition:background .15s; }
.wab .wab-card button.wab-swap:hover { background:var(--wab-cream) !important; }

.wab-when { flex:1.6 1 0; cursor:default; }
.wab-when-row { display:flex; gap:12px; align-items:center; }
.wab-when-row input { font-size:15px; width:auto; min-width:0; }
.wab-when-row input[type=date] { flex:1.4 1 0; }
.wab-when-row input[type=time] { flex:1 1 0; }

.wab-pax { flex:0 0 150px; cursor:default; }
.wab-stepper { display:flex; align-items:center; gap:8px; }
.wab .wab-card .wab-stepper button { flex:0 0 30px; width:30px !important; height:30px !important; padding:0 !important; border:1px solid var(--wab-line) !important; border-radius:9px !important; background:#fff !important; color:var(--wab-ink) !important; display:flex !important; align-items:center; justify-content:center; font-size:17px !important; font-weight:700 !important; line-height:1 !important; transition:border-color .15s, color .15s; }
.wab .wab-card .wab-stepper button:hover { border-color:var(--wab-accent) !important; color:var(--wab-accent) !important; }
.wab-stepper input { width:34px !important; flex:0 0 34px; text-align:center; -moz-appearance:textfield; }
.wab-stepper input::-webkit-outer-spin-button, .wab-stepper input::-webkit-inner-spin-button { -webkit-appearance:none; margin:0; }

/* Estimation */
.wab-estimate { flex:0 0 205px; cursor:default; background:var(--wab-cream); gap:3px; }
.wab-price { font-size:28px; line-height:1.05; font-weight:800; letter-spacing:-.02em; color:var(--wab-ink); transition:color .2s; }
.wab-price-sub { font-size:12px; font-weight:600; color:#c2410c; line-height:1.25; }
.wab-estimate.is-ok .wab-price { color:var(--wab-green); }
.wab-estimate.is-ok .wab-price-sub { color:var(--wab-muted); }
.wab-estimate.is-quote .wab-price { font-size:22px; color:var(--wab-ink); }
.wab-estimate.is-quote .wab-price-sub { color:var(--wab-muted); }

/* Bouton d'envoi */
.wab .wab-card button.wab-submit { display:inline-flex !important; align-items:center; justify-content:center; gap:9px; height:auto !important; border:0 !important; border-radius:0 !important; background:var(--wab-accent) !important; color:#fff !important; font-weight:800 !important; font-size:15px !important; line-height:1.2 !important; padding:0 20px !important; text-align:center; transition:filter .15s; }
.wab .wab-card button.wab-submit:hover, .wab .wab-card button.wab-submit:focus-visible { filter:brightness(.92); outline:0; }
.wab .wab-card button.wab-submit svg { flex:0 0 auto; }
.wab .wab-card button.wab-submit-bar { flex:0 0 170px !important; width:170px !important; }
.wab .wab-card button.wab-submit-bottom { display:none !important; width:100% !important; min-height:56px !important; border-radius:14px !important; margin-top:18px !important; font-size:16px !important; }

/* ---- Blocs ---- */
.wab-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-bottom:20px; align-items:stretch; }
.wab-col { display:flex; flex-direction:column; gap:20px; min-width:0; }
.wab-col > .wab-box { flex:0 0 auto; }
.wab-col > .wab-box-msg { flex:1 1 auto; display:flex; flex-direction:column; }
.wab-box-msg textarea { flex:1 1 auto; }
.wab-col > .wab-box:last-child { flex:1 1 auto; }

/* Véhicule souhaité */
.wab-veh { display:flex; flex-wrap:wrap; gap:12px; margin-bottom:4px; }
.wab-veh-opt { position:relative; cursor:pointer; margin:0; flex:1 1 160px; }
.wab-veh-opt input { position:absolute; opacity:0; pointer-events:none; }
.wab-veh-card { display:flex; flex-direction:column; gap:3px; height:100%; border:1px solid #d9d1c2; border-radius:12px; padding:14px 16px; background:#fff; transition:border-color .15s, background .15s, color .15s; }
.wab-veh-card strong { font-size:16px; font-weight:800; line-height:1.2; }
.wab-veh-card small { font-size:12.5px; font-weight:600; color:var(--wab-muted); }
.wab-veh-opt:hover .wab-veh-card { border-color:var(--wab-accent); }
.wab-veh-opt input:checked + .wab-veh-card { background:var(--wab-ink); border-color:var(--wab-ink); color:#fff; }
.wab-veh-opt input:checked + .wab-veh-card small { color:rgba(255,255,255,.75); }
.wab-veh-opt input:focus-visible + .wab-veh-card { box-shadow:0 0 0 3px color-mix(in srgb, var(--wab-accent) 30%, transparent); }
.wab-veh-note.is-warn { color:#c2410c; font-weight:600; }

.wab-box { border:1px solid var(--wab-line); border-radius:16px; padding:22px 22px 20px; margin:0; min-width:0; background:#fff; }
.wab-box > legend { padding:0 10px; font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; font-weight:800; color:var(--wab-muted); font-style:normal; width:auto; }
.wab-box-dark { background:var(--wab-cream); border:1.5px solid var(--wab-ink); }
.wab-box-dark > legend { color:var(--wab-ink); background:var(--wab-cream); }
.wab-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:14px; }
.wab-field { display:flex; flex-direction:column; gap:7px; font-size:13px; font-weight:700; color:#454c58; margin:0; }
.wab-field input[type=text], .wab-field input[type=tel], .wab-field input[type=email], .wab-field select, .wab-box textarea {
	width:100%; border:1px solid #d9d1c2; border-radius:11px; background:#fff; padding:13px 14px; font-size:15.5px; font-weight:500; color:var(--wab-ink); outline:0; box-shadow:none; height:auto; margin:0; font-family:inherit; line-height:1.3;
}
.wab-box textarea { resize:vertical; min-height:96px; }
.wab-field input:focus, .wab-field select:focus, .wab-box textarea:focus { border-color:var(--wab-accent); box-shadow:0 0 0 3px color-mix(in srgb, var(--wab-accent) 20%, transparent); }
.wab-hint { margin:6px 0 0; font-size:13.5px; color:var(--wab-muted); line-height:1.5; }

.wab-toggle { display:flex; gap:10px; }
.wab-toggle label { cursor:pointer; margin:0; position:relative; }
.wab-toggle input { position:absolute; opacity:0; pointer-events:none; }
.wab-toggle span { display:inline-block; border:1px solid #d9d1c2; border-radius:11px; padding:11px 26px; font-weight:700; font-size:14.5px; background:#fff; transition:.15s; }
.wab-toggle input:checked + span { background:var(--wab-ink); color:#fff; border-color:var(--wab-ink); }
.wab-toggle input:focus-visible + span { box-shadow:0 0 0 3px color-mix(in srgb, var(--wab-accent) 30%, transparent); }
.wab-kids { margin-top:16px; }
.wab-kids[hidden] { display:none; }

.wab-consent { display:flex; gap:12px; align-items:flex-start; font-size:14px; color:#454c58; margin:20px 0 0; cursor:pointer; line-height:1.5; }
.wab-consent input { margin-top:3px; accent-color:var(--wab-accent); width:17px; height:17px; flex:0 0 auto; }
.wab-consent a { color:var(--wab-accent); font-weight:700; }

.wab-error { margin-top:16px; padding:12px 16px; border-radius:11px; background:#fdecea; color:#b42318; font-size:14px; font-weight:700; }
.wab-error[hidden] { display:none; }
.wab-invalid { border-color:#d92d20 !important; }
.wab-cell.wab-invalid-cell { background:#fff6f5; }

.wab-note { text-align:center; font-size:14px; color:#4b5563; margin:20px 0 0; }
.wab-footer { text-align:center; font-size:13px; color:var(--wab-muted); margin:6px 0 0; }

/* ---- Mise en page selon la largeur réelle de la carte (data-size posé par le JS : lg / md / sm) ----
   lg = une seule ligne · md = barre sur deux lignes · sm = tout empilé (mobile) */
.wab-card:not([data-size="lg"]) .wab-bar { flex-direction:column; }
.wab-card:not([data-size="lg"]) .wab-g { display:flex; align-items:stretch; }
.wab-card:not([data-size="lg"]) .wab-g-a { border-bottom:1px solid var(--wab-line); }
.wab-card:not([data-size="lg"]) .wab-g-a .wab-to { border-right:0; }
.wab-card:not([data-size="lg"]) .wab-g-a .wab-from, .wab-card:not([data-size="lg"]) .wab-g-a .wab-to { flex:1 1 0; }
.wab-card:not([data-size="lg"]) .wab-g-b .wab-when { flex:1.5 1 0; }
.wab-card:not([data-size="lg"]) .wab-g-b .wab-pax { flex:0 0 160px; }
.wab-card:not([data-size="lg"]) .wab-g-b .wab-estimate { flex:1 1 0; }
.wab .wab-card:not([data-size="lg"]) .wab-g-b button.wab-submit-bar { flex:0 0 200px !important; width:200px !important; }

.wab-card[data-size="sm"] .wab-g { flex-direction:column; }
.wab-card[data-size="sm"] .wab-cell { border-right:0; border-bottom:1px solid var(--wab-line); flex:1 1 auto !important; min-height:72px; }
.wab-card[data-size="sm"] .wab-g-a { border-bottom:0; }
.wab-card[data-size="sm"] .wab-g-b .wab-estimate { border-bottom:0; }
.wab .wab-card[data-size="sm"] button.wab-swap { flex:0 0 38px !important; width:100% !important; height:38px !important; border-right:0 !important; border-bottom:1px solid var(--wab-line) !important; }
.wab .wab-card[data-size="sm"] .wab-g-b button.wab-submit-bar { display:none !important; }
.wab .wab-card[data-size="sm"] button.wab-submit-bottom { display:inline-flex !important; }
.wab-card[data-size="sm"] { padding:16px; border-radius:18px; }
.wab-card[data-size="sm"] .wab-grid, .wab-card[data-size="sm"] .wab-row { grid-template-columns:1fr; }
