.cr-btn {
    display:inline-block;padding:12px 28px;background:#1a1a1a;color:#ffffff;border:none;border-radius:4px;
    font-size:14px;font-weight:500;text-decoration:none;cursor:pointer;transition:all 0.3s;text-align:center;
}
.cr-btn.cr-check-availability,
.cr-btn-primary {
    font-family:Montserrat,sans-serif;font-weight:400;text-transform:uppercase;
    font-size:15px;line-height:15px;letter-spacing:2px;border-radius:10px;padding:15px;
    width:100%;color:#23201E !important;background:#F2E1CD;
 }
 .cr-btn.cr-check-availability:hover,
 .cr-btn-primary:hover { color:#F2E1CD !important;background:#23201E; }
.cr-btn:hover { background:#333333;color:#ffffff; }
.cr-btn-outline { background:transparent;border:2px solid #1a1a1a;color:#1a1a1a; }
.cr-btn-outline:hover { background:#1a1a1a;color:#ffffff; }
.cr-btn:disabled { opacity:0.5;cursor:not-allowed; }

.cr-input {
    width:100%;padding:10px 14px;border:1px solid #3A3836;border-radius:4px;font-size:14px;
    background:#2A2826;color:#e0e0e0;transition:border-color 0.3s;
}
.cr-input:focus { border-color:#F2E1CD;outline:none;box-shadow:0 0 0 2px rgba(242,225,205,0.15); }

.cr-error { color:#c0392b;background:#fce4e4;padding:10px 14px;border-radius:4px;margin:10px 0; }
.cr-success { color:#27ae60;background:#e8f8f0;padding:10px 14px;border-radius:4px;margin:10px 0; }

.cr-badge {
    display:inline-block;padding:4px 12px;border-radius:12px;font-size:11px;font-weight:600;
    text-transform:uppercase;letter-spacing:0.5px;line-height:1.4;
}
.cr-badge-disponible, .cr-badge-confirmed { background:#d4edda;color:#155724; }
.cr-badge-reserve, .cr-badge-pending { background:#fff3cd;color:#856404; }
.cr-badge-indisponible, .cr-badge-cancelled { background:#f8d7da;color:#721c24; }
.cr-badge-completed { background:#cce5ff;color:#004085; }
.cr-badge-outline { background:transparent;border:1px solid #1a1a1a;color:#1a1a1a; }

.cr-vehicle-card {
    background:#ffffff;border-radius:8px;overflow:hidden;box-shadow:0 2px 20px rgba(0,0,0,0.08);
    transition:transform 0.3s,box-shadow 0.3s;
    display:flex;flex-direction:column;height:100%;
}
.cr-vehicle-card { }
.cr-vc-image { position:relative;overflow:hidden;flex-shrink:0; }
.cr-vc-image img { width:100%;height:auto;aspect-ratio:1 / 1;object-fit:cover; }
.cr-vc-badge { position:absolute;top:12px;left:12px;background:#1a1a1a;color:#fff;padding:4px 12px;border-radius:0px;font-size:11px;font-weight:600; }
.cr-vc-statut { position:absolute;top:12px;right:12px;border-radius:0; }
.cr-vc-content { padding:20px;display:flex;flex-direction:column;flex:1; }
.cr-vc-title { margin:0 0 8px;font-size:18px;font-weight:600; }
.cr-vc-title a { color:#1a1a1a;text-decoration:none; }
.cr-vc-title a:hover { color:#555; }
.cr-vc-options { font-size:13px;color:#888;margin:0 0 12px;padding-left:16px; }
.cr-vc-options li { margin-bottom:2px; }
.cr-vc-price { margin:12px 0; }
.cr-price-location { font-size:22px;font-weight:700;color:#1a1a1a;display:block; }
.cr-price-location small { font-size:13px;font-weight:400;color:#888; }
.cr-price-vente { font-size:16px;color:#666;display:block;margin-top:4px; }
.cr-vc-actions { display:flex;gap:10px;margin-top:auto;padding-top:16px; }
.cr-vc-actions .cr-btn { flex:1;padding:10px 16px;font-size:13px; }

.cr-filters-grid {
    display:flex;gap:16px;flex-wrap:wrap;padding:20px;background:#f9f9f9;border-radius:8px;margin-bottom:24px;
}
.cr-filter-item { flex:1;min-width:180px; }
.cr-filter-item label { display:block;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:0.5px;margin-bottom:4px;color:#666; }
.cr-filter-item select { width:100%;padding:10px;border:1px solid #ddd;border-radius:4px;font-size:14px;background:#fff; }

.cr-pagination { text-align:center;margin:30px 0; }
.cr-pagination .page-numbers { display:inline-block;padding:8px 16px;margin:0 2px;border:1px solid #ddd;border-radius:4px;text-decoration:none;color:#1a1a1a; }
.cr-pagination .page-numbers.current { background:#1a1a1a;color:#fff;border-color:#1a1a1a; }
.cr-pagination .page-numbers:hover:not(.current) { background:#f5f5f5; }

.cr-vehicle-detail { display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:flex-start;color:#e0e0e0;overflow:visible; }
.cr-vd-gallery { position:sticky;top:20px;align-self:start;overflow:visible; }
.cr-vd-main-image { border-radius:8px;overflow:hidden;margin-bottom:12px; }
.cr-vd-main-image img { width:100%;height:auto;display:block; }
.cr-vd-thumbs { display:flex;gap:8px;flex-wrap:wrap; }
.cr-vd-thumb { width:80px;height:60px;object-fit:cover;border-radius:4px;cursor:pointer;opacity:0.7; }
.cr-vd-thumb:hover { opacity:1; }
.cr-vd-info { min-width:0; }
.cr-vd-title { margin:0 0 12px;font-size:32px;font-weight:700;color:#fff; }
.cr-vd-badges { display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px; }
.cr-vd-pricing { display:flex;gap:20px;margin-bottom:20px; }
.cr-vd-price-box { background:#1A1817;padding:16px 24px;border-radius:8px;flex:1; }
.cr-vd-price-amount { font-size:28px;font-weight:700;color:#fff; }
.cr-vd-price-label { font-size:14px;color:#aaa;display:block; }
.cr-vd-specs { width:100%;border-collapse:collapse;margin-bottom:20px; }
.cr-vd-specs th,.cr-vd-specs td { padding:10px 14px;border-bottom:1px solid #2A2826;text-align:left;color:#ddd; }
.cr-vd-specs th { font-weight:600;color:#aaa;width:40%; }
.cr-vd-options { margin-bottom:20px; }
.cr-vd-options h3 { font-size:16px;font-weight:600;margin-bottom:8px;color:#fff; }
.cr-vd-options ul { padding-left:20px; }
.cr-vd-options li { margin-bottom:4px;color:#ccc; }
.cr-vd-description { margin-bottom:20px;line-height:1.7;color:#ccc; }
.cr-vd-booking { border-top:1px solid #2A2826;padding-top:20px; }
.cr-vd-booking h3 { font-size:18px;font-weight:600;margin-bottom:16px;color:#fff; }

.cr-booking-form { background:#23201E;padding:24px;border-radius:8px; }
.cr-booking-dates { display:flex;gap:16px;flex-wrap:wrap;margin-bottom:16px; }
.cr-booking-dates .cr-field { flex:1;min-width:180px; }
.cr-booking-dates .cr-field label { display:block;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:0.5px;margin-bottom:4px;color:#ccc; }
.cr-field-btn { display:flex;align-items:flex-end;flex:1;min-width:180px; }
.cr-availability-result { margin:16px 0; }
.cr-booking-summary { background:#2A2826;padding:20px;border-radius:8px;color:#e0e0e0; }
.cr-booking-summary h4 { margin:0 0 12px;font-size:18px;color:#fff; }
.cr-booking-summary hr { border:none;border-top:1px solid #444;margin:12px 0; }
.cr-booking-summary p { margin:6px 0;color:#ccc; }
.cr-booking-summary .cr-total { font-size:20px;margin-top:12px;padding-top:12px;border-top:2px solid #c8a84e;color:#fff; }
.cr-booking-summary .cr-caution-info { font-size:13px;color:#aaa;margin-top:8px; }

.cr-client-area { max-width:900px;margin:0 auto; }
.cr-ca-header { margin-bottom:30px; }
.cr-ca-header h2 { font-size:24px;margin-bottom:16px; }
.cr-ca-nav { display:flex;gap:4px;background:#f5f5f5;border-radius:8px;padding:4px; }
.cr-ca-nav a { flex:1;padding:12px 20px;text-align:center;text-decoration:none;color:#555;border-radius:6px;font-weight:500;transition:all 0.3s; }
.cr-ca-nav a.active { background:#1a1a1a;color:#fff; }
.cr-ca-nav a:hover:not(.active) { background:#e8e8e8; }
.cr-ca-login { max-width:400px;margin:40px auto;text-align:center; }
.cr-ca-login h2 { font-size:28px;margin-bottom:8px; }
.cr-ca-login .login-username,.cr-ca-login .login-password { margin-bottom:12px; }
.cr-ca-login input[type="text"],.cr-ca-login input[type="password"] { width:100%;padding:10px 14px;border:1px solid #ddd;border-radius:4px; }
.cr-ca-login input[type="submit"] { background:#1a1a1a;color:#fff;border:none;padding:12px 28px;border-radius:4px;cursor:pointer;width:100%; }

.cr-reservation-card {
    background:#fff;border:1px solid #eee;border-radius:8px;padding:20px;margin-bottom:16px;
}
.cr-rc-header { display:flex;justify-content:space-between;align-items:center;margin-bottom:12px; }
.cr-rc-header h3 { margin:0;font-size:18px; }
.cr-rc-details p { margin:4px 0;color:#555; }
.cr-rc-actions { margin-top:12px;display:flex;gap:10px; }

.cr-profile-form { max-width:500px; }
.cr-profile-form p { margin-bottom:16px; }
.cr-profile-form label { display:block;font-weight:600;margin-bottom:4px; }
.cr-profile-form .cr-input { width:100%; }

.cr-documents-area { }
.cr-upload-doc { margin-top:20px;padding:20px;background:#f9f9f9;border-radius:8px; }
.cr-upload-doc h4 { margin:0 0 12px; }
.cr-upload-doc .cr-file-info { display:block;font-size:12px;color:#888;margin-top:4px; }
.cr-upload-doc label { display:block;margin-bottom:8px; }

.cr-doc-item { display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#fff;border:1px solid #eee;border-radius:6px;margin-bottom:8px; }
.cr-doc-item .cr-doc-info { flex:1; }
.cr-doc-item .cr-doc-title { font-weight:500; }
.cr-doc-item .cr-doc-date { font-size:12px;color:#888; }
.cr-doc-item .cr-doc-statut { font-size:12px; }

@keyframes crFadeIn { from { opacity:0;transform:translateY(8px); } to { opacity:1;transform:translateY(0); } }

.cr-bf-panel h3 { font-size:20px;font-weight:600;margin:0 0 16px;color:#fff; }

.cr-btn-back { background:#2A2826;color:#ccc;font-family:Montserrat,sans-serif;font-weight:400;letter-spacing:0.7px;text-transform:uppercase; }
.cr-btn-back:hover { background:#3A3836;color:#fff; }

.cr-lieux { display:flex;gap:16px;flex-wrap:wrap;margin-bottom:16px; }
.cr-lieux .cr-field { flex:1;min-width:180px; }
.cr-lieux .cr-field label { display:block;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:0.5px;margin-bottom:4px;color:#ccc; }

.cr-vehicle-summary { display:flex;gap:16px;align-items:center;padding:16px;background:#1A1817;border-radius:8px;margin-bottom:20px; }
.cr-vs-thumb { width:120px;height:80px;object-fit:cover;border-radius:6px;flex-shrink:0; }
.cr-vs-info { display:flex;flex-direction:column;gap:4px;font-size:14px;color:#ccc; }
.cr-vs-info strong { font-size:16px;color:#fff; }

.cr-service-options { margin:20px 0;padding:20px;background:#2A2826;border-radius:8px; }
.cr-service-options h4 { font-size:14px;font-weight:600;margin:0 0 12px;color:#fff;text-transform:uppercase;letter-spacing:1px; }
.cr-svc-label { display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid #3A3836;cursor:pointer; }
.cr-svc-label:last-child { border-bottom:none; }
.cr-svc-label input[type="checkbox"] { width:18px;height:18px;accent-color:#F2E1CD;cursor:pointer;flex-shrink:0; }
.cr-svc-name { flex:1;font-size:14px;color:#ddd; }
.cr-svc-price { font-size:13px;font-weight:600;color:#27ae60; }

.cr-kyc-section { margin-top:20px; }
.cr-kyc-section h4 { font-size:16px;font-weight:600;margin:20px 0 12px;color:#fff; }
.cr-kyc-grid { display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px; }
.cr-kyc-field label { display:block;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:0.5px;margin-bottom:4px;color:#ccc; }
.cr-kyc-field input[type="file"] { width:100%;padding:8px;background:#2A2826;border:1px dashed #3A3836;border-radius:4px;color:#ccc;font-size:13px;cursor:pointer; }
.cr-kyc-field input[type="file"]:hover { border-color:#F2E1CD; }
.cr-kyc-message { margin-bottom:12px; }

.cr-second-driver { display:flex;flex-wrap:wrap;gap:14px; }
.cr-second-driver .cr-field { flex:1;min-width:200px; }
.cr-second-driver label { display:block;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:0.5px;margin-bottom:4px;color:#ccc; }

.cr-legal-clauses { margin:20px 0; }
.cr-clause { border:1px solid #3A3836;border-radius:6px;margin-bottom:8px;overflow:hidden; }
.cr-clause-header { padding:12px 16px;background:#2A2826;font-size:14px;font-weight:600;color:#fff;cursor:pointer; }
.cr-clause-header:hover { background:#3A3836; }
.cr-clause-body { padding:12px 16px;font-size:13px;color:#ccc;line-height:1.6;border-top:1px solid #3A3836;display:none; }
.cr-clause.open .cr-clause-body { display:block; }

.cr-acceptance-box { margin:20px 0;padding:16px;background:#1A1817;border:2px solid #F2E1CD;border-radius:8px; }
.cr-accept-label { display:flex;gap:12px;align-items:flex-start;cursor:pointer; }
.cr-accept-label input[type="checkbox"] { width:20px;height:20px;margin-top:2px;accent-color:#F2E1CD;cursor:pointer;flex-shrink:0; }
.cr-accept-text { font-size:13px;color:#ddd;line-height:1.5;font-weight:500; }

.cr-signature-box { margin:20px 0; }
.cr-signature-box h4 { font-size:16px;font-weight:600;margin:0 0 8px;color:#fff; }
.cr-signature-box p { font-size:13px;color:#aaa;margin:0 0 12px; }
.cr-canvas-wrapper { background:#fff;border-radius:6px;overflow:hidden;margin-bottom:8px; }
#cr-signature-canvas { background:#fff; }
.cr-signature-actions { display:flex;gap:8px; }
.cr-btn-small { padding:6px 14px;font-size:12px; }
.cr-clear-signature { font-family:Montserrat,sans-serif;font-weight:400;letter-spacing:0.7px;text-transform:uppercase; }

.cr-payment-processing { padding:40px 20px;text-align:center;color:#ccc;font-size:16px; }

@media (max-width:768px) {
    .cr-kyc-grid { grid-template-columns:1fr; }
}

.cr-options { margin:20px 0;padding:20px;background:#2A2826;border-radius:8px; }
.cr-options h4 { font-size:14px;font-weight:600;margin:0 0 12px;color:#fff;text-transform:uppercase;letter-spacing:1px; }

.cr-services-inclus { margin:20px 0;padding:20px;background:#1A1817;border-radius:8px; }
.cr-services-inclus h4 { font-size:14px;font-weight:600;margin:0 0 12px;color:#fff;text-transform:uppercase;letter-spacing:1px; }
.cr-services-inclus ul { margin:0;padding:0 0 0 20px; }
.cr-services-inclus li { font-size:13px;color:#ccc;margin-bottom:4px; }

.cr-summary-line { display:flex;justify-content:space-between;align-items:center;padding:6px 0;font-size:14px;color:#ccc; }
.cr-summary-line hr { border:none;border-top:1px solid #3A3836;margin:8px 0; }
.cr-opt-line { color:#F2E1CD;font-size:13px; }
.cr-total { font-size:18px;font-weight:700;color:#fff;border-top:2px solid #F2E1CD;padding-top:10px;margin-top:8px; }
.cr-caution-info { font-size:13px;color:#aaa;border-top:1px solid #3A3836;padding-top:8px;margin-top:8px; }

.cr-auth-tabs { display:flex;gap:0;margin-bottom:20px;border-radius:8px;overflow:hidden; }
.cr-auth-tab { flex:1;padding:12px;text-align:center;background:#2A2826;color:#ccc;border:none;cursor:pointer;font-size:14px;font-weight:500;transition:all 0.3s; }
.cr-auth-tab.active { background:#F2E1CD;color:#121212;font-weight:600; }
.cr-auth-tab:hover:not(.active) { background:#3A3836;color:#fff; }
.cr-auth-form .cr-field { margin-bottom:14px; }
.cr-auth-form label { display:block;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:0.5px;margin-bottom:4px;color:#ccc; }
.cr-auth-message { margin-bottom:12px; }

.cr-payment-summary { padding:16px;background:#2A2826;border-radius:8px;margin-bottom:20px; }
.cr-pay-line { display:flex;justify-content:space-between;padding:6px 0;font-size:16px;color:#fff; }
.cr-pay-caution { font-size:13px;color:#aaa; }

.cr-stripe-wrapper { padding:20px;background:#2A2826;border-radius:8px;margin-bottom:16px; }
.cr-card-element { min-height:50px;padding:16px;background:#1A1817;border:1px solid #3A3836;border-radius:6px; }
#cr-card-errors { font-size:13px;color:#fa755a;margin-top:8px;min-height:20px; }
.cr-stripe-fallback { color:#888;font-size:14px;text-align:center;padding:20px 0; }
.cr-payment-message { margin-bottom:12px; }

.cr-confirmation { text-align:center;padding:40px 20px; }
.cr-conf-icon { display:inline-flex;width:64px;height:64px;border-radius:50%;background:#27ae60;color:#fff;font-size:32px;align-items:center;justify-content:center;margin-bottom:20px; }
.cr-confirmation h3 { font-size:24px;margin:0 0 12px; }
.cr-confirmation p { color:#aaa;font-size:15px;margin:0 0 8px; }
.cr-conf-number { font-size:18px;font-weight:700;color:#F2E1CD;margin-bottom:8px; }
.cr-conf-details { margin-top:12px; }

@media (max-width:768px) {
    .cr-vehicle-detail { grid-template-columns:1fr; }
    .cr-vd-gallery { position:static; }
    .cr-filters-grid { flex-direction:column; }
    .cr-booking-dates { flex-direction:column; }
    .cr-ca-nav { flex-direction:column; }
    .cr-vc-actions { flex-direction:column; }
    .cr-vc-actions .cr-btn { width:100%; }
}

/* ===== Recherche & résultats (style rentabl) ===== */
.cr-sr { max-width:100%; }
.cr-sr-top { margin-bottom:0; }
.cr-sr-bar {
    display:flex;gap:var(--cr-sr-gap,12px);align-items:end;flex-wrap:wrap;
    padding:14px;background:#fff;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:20px;
}
.cr-sr-bar-filters,
.cr-sr-bar-search,
.cr-sr-bar-dates { min-width:0; }
.cr-sr-bar-filters { flex:1 1 var(--cr-sr-bt, 20%); }
.cr-sr-bar-search   { flex:1 1 var(--cr-sr-ss, 50%); }
.cr-sr-bar-dates    { flex:1 1 var(--cr-sr-dt, 30%); }
.cr-sr-bar .cr-sr-toggle { white-space:nowrap; }
.cr-sr-bar-search { position:relative; }
.cr-sr-search-icon { position:absolute; left:12px; top:50%; transform:translateY(-50%); color:#888; pointer-events:none; }
.cr-sr-bar-search input {
    width:100%;height:44px;padding:0 14px 0 40px;border:1px solid #ddd;border-radius:6px;
    font-size:14px;background:#fff;color:#1a1a1a;
}
.cr-sr-bar-search input:focus { border-color:#1a1a1a;outline:none; }
.cr-sr-bar-dates { display:flex;gap:8px; }
.cr-sr-bar-date label {
    display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:0.5px;
    color:#666;margin-bottom:4px;
}
.cr-sr-bar-date input[type="date"] {
    height:44px;padding:0 10px;border:1px solid #ddd;border-radius:6px;font-size:13px;
    background:#fff;color:#1a1a1a;
}
.cr-sr-bar-date input[type="date"]:focus { border-color:#1a1a1a;outline:none; }
.cr-sr-toggle {
    display:inline-flex;align-items:center;gap:10px;padding:12px 22px;
    font-size:14px;font-weight:600;cursor:pointer;border-radius:6px;
    transition:background 0.3s,color 0.3s,border-color 0.3s;
}
.cr-sr-toggle-icon { opacity:0.8; }
.cr-sr-count {
    display:inline-flex;min-width:24px;height:24px;padding:0 7px;border-radius:12px;
    align-items:center;justify-content:center;font-size:12px;font-weight:700;
}
.cr-sr-drawer { position:fixed; inset:0; z-index:99999; pointer-events:none; }
.cr-sr-drawer-backdrop {
    position:absolute; inset:0; background:rgba(0,0,0,0.5);
    opacity:0; transition:opacity 0.3s ease; pointer-events:none;
}
.cr-sr-panel {
    position:absolute; top:0; right:0; height:100%; width:400px; max-width:92vw;
    background:#fff; box-shadow:-4px 0 24px rgba(0,0,0,0.15);
    padding:22px; overflow-y:auto; pointer-events:auto;
    transform:translateX(102%); transition:transform 0.35s ease;
}
.cr-sr-drawer.open .cr-sr-drawer-backdrop { opacity:1; pointer-events:auto; }
.cr-sr-drawer.open .cr-sr-panel { transform:translateX(0); }
.cr-sr-panel-head {
    display:flex; align-items:center; justify-content:space-between;
    margin-bottom:16px; padding-bottom:14px; border-bottom:1px solid #e0e0e0;
}
.cr-sr-panel-head h4 { margin:0; font-size:17px; font-weight:700; }
.cr-sr-close {
    border:none; background:#f3f3f3; border-radius:50%; width:32px; height:32px;
    font-size:18px; line-height:1; cursor:pointer; color:#555;
    display:flex; align-items:center; justify-content:center;
}
.cr-sr-close:hover { background:#e8e8e8; }
body.cr-sr-body-lock { overflow:hidden; }
.cr-sr-loading { opacity:0.55; pointer-events:none; transition:opacity 0.2s ease; }
.cr-sr-filters { display:grid;grid-template-columns:repeat(2,1fr);gap:16px; }
.cr-sr-filter label {
    display:block;font-size:12px;font-weight:600;text-transform:uppercase;
    letter-spacing:0.5px;margin-bottom:4px;color:#666;
}
.cr-sr-filter select,
.cr-sr-filter input[type="number"],
.cr-sr-filter input[type="date"] {
    width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:4px;
    font-size:14px;background:#fff;color:#1a1a1a;
}
.cr-sr-filter select:focus,
.cr-sr-filter input:focus { border-color:#1a1a1a;outline:none; }
.cr-sr-date-range { display:flex;gap:8px;align-items:center; }
.cr-sr-date-range input { flex:1;min-width:0; }
.cr-sr-notice {
    margin:14px 0 0;padding:10px 14px;background:#fff3cd;color:#856404;
    border-radius:4px;font-size:13px;
}
.cr-sr-actions {
    display:flex;gap:12px;flex-wrap:wrap;margin-top:20px;padding-top:16px;
    border-top:1px solid #e0e0e0;
}
.cr-sr-actions .cr-btn { padding:12px 24px;font-size:13px; }
.cr-sr-reset { background:transparent; }
.cr-sr-count-results { margin:0 0 20px;color:#666;font-size:15px;font-weight:500; }
.cr-sr-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:24px; }
.cr-sr[data-columns="2"] .cr-sr-grid { grid-template-columns:repeat(2,1fr); }
.cr-sr[data-columns="4"] .cr-sr-grid { grid-template-columns:repeat(4,1fr); }
.cr-vc-specs {
    display:flex;flex-wrap:wrap;align-items:center;gap:6px;
    font-size:13px;color:#888;margin:8px 0 4px;
}
.cr-vc-spec {
    display:inline-flex;padding:3px 10px;background:#f3f3f3;border-radius:12px;
    color:#555;font-size:12px;font-weight:500;
}
.cr-vc-spec-sep { color:#ccc; }
.cr-sr-pagination { margin-top:28px; }
.cr-sr-empty {
    text-align:center;padding:60px 24px;border:1px dashed #e0e0e0;border-radius:8px;
}
.cr-sr-empty-icon { color:#d0d0d0;margin-bottom:16px; }
.cr-sr-empty h5 { margin:0 0 10px;font-size:22px;font-weight:600; }
.cr-sr-empty p { margin:0 0 24px;color:#888;font-size:15px;max-width:520px;margin-left:auto;margin-right:auto; }
.cr-sr-empty-actions { display:flex;gap:12px;justify-content:center;flex-wrap:wrap; }
.cr-sr-empty-actions .cr-btn { padding:12px 24px;font-size:13px; }

/* ===== Carrousel d'images dans les cartes ===== */
.cr-vc-image { position:relative; overflow:hidden; }
.cr-vc-carousel { position:relative; }
.cr-vc-track { display:flex; overflow:hidden; }
.cr-vc-slide { flex:0 0 100%; min-width:0; opacity:0; transition:opacity 0.3s ease; }
.cr-vc-slide.is-active { opacity:1; }
.cr-vc-slide img, .cr-vc-image > a img { display:block; width:100%; height:auto; aspect-ratio:1 / 1; object-fit:cover; }
.cr-vc-arrow:hover { background:#fff; color:#000; }
.cr-vc-arrow {
    position:absolute; top:50%; transform:translateY(-50%); z-index:3;
    width:32px; height:32px; border:none; border-radius:50%; cursor:pointer;
    background:rgba(255,255,255,0.9); color:#1a1a1a; font-size:20px; line-height:1;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 2px 6px rgba(0,0,0,0.2); transition:background 0.2s,color 0.2s;
}
.cr-vc-prev { left:8px; }
.cr-vc-next { right:8px; }
.cr-vc-arrow:hover { background:#fff; color:#000; }
.cr-vc-dots {
    position:absolute; bottom:8px; left:0; right:0; z-index:3;
    display:flex; justify-content:center; gap:6px;
}
.cr-vc-dot {
    width:8px; height:8px; border-radius:50%; border:none; cursor:pointer;
    background:rgba(255,255,255,0.6); padding:0; transition:background 0.2s,width 0.2s;
}
.cr-vc-dot.is-active { background:#ffffff; width:18px; border-radius:4px; }

/* ===== Cartes ===== */
.cr-sr .cr-vehicle-card { }

@media (max-width:992px) {
    .cr-sr-bar-search { order:3; flex:1 0 100%; }
    .cr-sr[data-columns="4"] .cr-sr-grid { grid-template-columns:repeat(2,1fr); }
    .cr-sr[data-columns="3"] .cr-sr-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:768px) {
    .cr-sr-bar { flex-direction:column; align-items:stretch; }
    .cr-sr-bar-filters, .cr-sr-bar-search, .cr-sr-bar-dates { flex:1 1 100%; }
    .cr-sr-bar-filters .cr-sr-toggle { width:100%;justify-content:center; }
    .cr-sr-filters { grid-template-columns:1fr; }
    .cr-sr[data-columns="2"] .cr-sr-grid,
    .cr-sr[data-columns="3"] .cr-sr-grid,
    .cr-sr[data-columns="4"] .cr-sr-grid { grid-template-columns:1fr; }
    .cr-sr-actions { flex-direction:column; }
    .cr-sr-actions .cr-btn { width:100%; }
}

/* ===== Formulaire multistep 3.0 : identité, conducteur 2, paiement ===== */
.cr-identity-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.cr-identity-grid .cr-field-full { grid-column:1 / -1; }
.cr-field label { display:block; font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:0.5px; color:#a8a29a; margin-bottom:5px; }
.cr-form-section-title { display:block; font-size:14px; font-weight:700; color:#F2E1CD; margin:18px 0 10px; text-transform:uppercase; letter-spacing:0.5px; }

.cr-driver2-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }

.cr-pm-group { display:flex; flex-direction:column; gap:8px; }
.cr-pm-label {
    display:flex; align-items:center; gap:10px; cursor:pointer;
    border:1px solid #3A3836; border-radius:6px; padding:10px 14px; transition:border-color 0.2s, background 0.2s;
}
.cr-pm-label:hover { border-color:#F2E1CD; }
.cr-pm-label.is-checked { border-color:#F2E1CD; background:rgba(242,225,205,0.08); }
.cr-pm-label input[type="radio"] { accent-color:#F2E1CD; }
.cr-pm-label .cr-pm-ic { font-size:18px; }
.cr-pm-label .cr-pm-txt { font-size:14px; color:#e0e0e0; }
.cr-pm-label .cr-pm-desc { display:block; font-size:12px; color:#a8a29a; }

.cr-acompte-info { margin:14px 0; }
.cr-acompte-msg {
    background:rgba(242,225,205,0.12); border:1px dashed #F2E1CD; color:#F2E1CD;
    padding:12px 16px; border-radius:6px; font-size:14px;
}
.cr-acompte-msg strong { color:#fff; }

.cr-pay-summary { background:#2A2826; border:1px solid #3A3836; border-radius:8px; padding:14px 16px; margin:12px 0; }
.cr-pay-line { display:flex; justify-content:space-between; padding:6px 0; font-size:14px; color:#d6d2cc; border-bottom:1px solid rgba(255,255,255,0.06); }
.cr-pay-line:last-child { border-bottom:none; }
.cr-pay-total, .cr-pay-acompte { font-weight:700; color:#F2E1CD; }
.cr-pay-caution { color:#b7a99a; font-size:13px; }

.cr-conf-number {
    display:inline-block; background:#F2E1CD; color:#23201E; font-weight:700;
    padding:10px 20px; border-radius:6px; margin:10px 0; font-size:15px;
}
/* =========================================================================
   Nouveaux attributs vehicule (v3.2.0)
   Tagline · Specs ligne · Badges · Parfait pour · Galerie · Video
   ========================================================================= */

/* --- Tagline (juste apres le titre) -------------------------------------- */
.cr-vc-tagline,
.cr-vd-tagline {
    margin:0 0 10px; font-size:13px; line-height:1.45; font-style:italic;
    color:#8a8580;
}
.cr-vd-tagline { font-size:15px; color:#aaa; margin-bottom:14px; }

/* --- Specs ligne (petites pastilles) ------------------------------------- */
.cr-vc-specs {
    list-style:none; margin:0 0 10px; padding:0;
    display:flex; flex-wrap:wrap; gap:6px;
}
.cr-vc-spec {
    font-size:11px; font-weight:600; letter-spacing:.3px;
    background:#f4f1ec; color:#3A3836;
    border-radius:12px; padding:4px 10px; white-space:nowrap;
}
.cr-vc-specs .cr-vc-spec-sep { display:none; }

/* --- Parfait pour -------------------------------------------------------- */
.cr-vc-parfait { margin:0 0 10px; font-size:12px; color:#6f6a64; line-height:1.5; }
.cr-vc-parfait-label {
    display:inline-block; font-size:10px; font-weight:700; text-transform:uppercase;
    letter-spacing:.6px; color:#1a1a1a; margin-right:6px;
}
.cr-vd-parfait { margin:0 0 18px; }
.cr-vd-parfait-label {
    display:block; font-size:11px; font-weight:700; text-transform:uppercase;
    letter-spacing:.6px; color:#8d8880; margin-bottom:8px;
}
.cr-vd-parfait-list { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:8px; }
.cr-vd-parfait-list li {
    font-size:12px; font-weight:500; color:#e0e0e0;
    background:#1A1817; border:1px solid #2A2826; border-radius:20px; padding:6px 14px;
}

/* --- Icones de spec dans le tableau de detail ---------------------------- */
.cr-vd-specs th .cr-attr-icon { color:#8d8880; margin-right:8px; vertical-align:-2px; }

/* --- Galerie / vignettes ------------------------------------------------- */
.cr-vd-thumbs .cr-vd-thumb { border:2px solid transparent; }
.cr-vd-thumbs .cr-vd-thumb.is-active,
.cr-vd-thumbs .cr-vd-thumb:hover { border-color:#F2E1CD; }

/* --- Video --------------------------------------------------------------- */
.cr-vd-video { margin:0 0 22px; }
.cr-vd-video-frame {
    position:relative; width:100%; padding-bottom:56.25%; height:0;
    overflow:hidden; border-radius:8px; background:#000;
}
.cr-vd-video-frame iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }

/* --- Cartes : hierarchie typographique ----------------------------------- */
.cr-vc-content .cr-vc-tagline + .cr-vc-specs { margin-top:-2px; }
.cr-vehicle-card .cr-vc-badge { max-width:60%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

@media (max-width:768px) {
    .cr-vc-specs { gap:5px; }
    .cr-vc-spec { font-size:10px; padding:3px 8px; }
}
/* =========================================================================
   FORMULAIRE DE RÉSERVATION — 3 ÉTAPES
   ========================================================================= */
.cr-bf { --cr-bf-cream:#F2E1CD; --cr-bf-dark:#1A1A1A; --cr-bf-char:#2A2826; --cr-bf-line:#3A3836;
         --cr-bf-mut:#8d8880; --cr-bf-green:#2f9e6b; --cr-bf-orange:#e08a2e; }

/* --- Fil d'étapes ------------------------------------------------------- */
.cr-bf-steps { list-style:none; display:flex; gap:8px; margin:0 0 28px; padding:0; counter-reset:none; }
.cr-bf-step {
    flex:1; display:flex; align-items:center; gap:12px; padding:14px 16px;
    background:var(--cr-bf-dark); border:1px solid var(--cr-bf-line);
    border-radius:10px; opacity:.5; transition:opacity .25s, border-color .25s, background .25s;
}
.cr-bf-step.is-active, .cr-bf-step.is-done { opacity:1; }
.cr-bf-step.is-active { border-color:var(--cr-bf-cream); background:var(--cr-bf-char); }
.cr-bf-step-num {
    flex:0 0 32px; width:32px; height:32px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    font-weight:700; font-size:14px;
    background:var(--cr-bf-line); color:var(--cr-bf-cream);
}
.cr-bf-step.is-active .cr-bf-step-num { background:var(--cr-bf-cream); color:#121212; }
.cr-bf-step.is-done .cr-bf-step-num::after { content:'\2713'; }
.cr-bf-step.is-done .cr-bf-step-num { font-size:0; }
.cr-bf-step.is-done .cr-bf-step-num::after { font-size:15px; }
.cr-bf-step-txt { display:flex; flex-direction:column; line-height:1.25; }
.cr-bf-step-txt strong { font-size:14px; color:#fff; }
.cr-bf-step-txt small { font-size:11px; color:var(--cr-bf-mut); }

/* --- Panneaux ----------------------------------------------------------- */
.cr-bf-panel { animation:crBfIn .3s ease both; }
.cr-bf-panel[hidden] { display:none; }
@keyframes crBfIn { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }

.cr-bf-panel-head { margin-bottom:24px; }
.cr-bf-panel-head h3 { margin:0 0 6px; }
.cr-bf-panel-sub { margin:0; font-size:13px; color:var(--cr-bf-mut); max-width:640px; line-height:1.5; }
.cr-bf-subhead { font-size:13px; text-transform:uppercase; letter-spacing:.8px; color:var(--cr-bf-cream);
                 margin:32px 0 12px; font-weight:700; }

/* --- Étape 1 : grille véhicule + saisie ---------------------------------- */
.cr-bf-grid { display:grid; grid-template-columns:1fr 1.15fr; gap:32px; align-items:start; }
.cr-bf-veh { background:var(--cr-bf-dark); border:1px solid var(--cr-bf-line); border-radius:14px; overflow:hidden; }
.cr-bf-veh-img { position:relative; aspect-ratio:4/3; background:#111; overflow:hidden; }
/* Positionnement absolu : l'image remplit TOUTE la boite quel que soit le
   theme (les themes forcent souvent `img{height:auto}`, ce qui laissait
   une bande vide sous la photo). */
.cr-bf-veh-img img { position:absolute; inset:0; width:100%; height:100%;
                      max-width:none; object-fit:cover; object-position:center; display:block; }
.cr-bf-veh-noimg { display:flex; align-items:center; justify-content:center; height:100%; color:var(--cr-bf-mut); font-size:13px; }
.cr-bf-veh-body { padding:20px; }
.cr-bf-veh-title { margin:0 0 6px; font-size:20px; font-weight:700; color:#fff; }
.cr-bf-veh-tagline { margin:0 0 12px; font-size:13px; font-style:italic; color:var(--cr-bf-mut); }
.cr-bf-veh-badges { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:12px; }
.cr-bf-chip { font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.5px;
             background:var(--cr-bf-cream); color:#121212; border-radius:10px; padding:3px 9px; }
.cr-bf-veh-specs { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:6px; }
.cr-bf-veh-specs li { font-size:11px; color:#d6d2cc; background:var(--cr-bf-char); border-radius:10px; padding:4px 10px; }

.cr-bf-form { display:flex; flex-direction:column; gap:18px; }
.cr-bf-dates { display:grid; grid-template-columns:1fr .7fr 1fr .7fr; gap:12px; }
/* Ligne des lieux : 2 champs, largeurs ÉGALES (50% / 50%).
   Sans cette règle ils héritent du gabarit 4 colonnes (1fr .7fr 1fr .7fr)
   et laissent la moitié de la ligne vide. */
.cr-bf-dates.cr-bf-lieux { grid-template-columns:1fr 1fr; }
/* Repli si le balisage est ancien (avant l'ajout de .cr-bf-lieux). */
.cr-bf-dates:has(.cr-bf-field:nth-child(3)) { grid-template-columns:1fr 1fr; }
.cr-bf-field label { display:block; font-size:11px; font-weight:600; text-transform:uppercase;
                    letter-spacing:.6px; color:var(--cr-bf-mut); margin-bottom:6px; }
.cr-bf-field .cr-input { width:100%; }

/* --- Prix en direct ------------------------------------------------------ */
.cr-bf-live { background:var(--cr-bf-char); border:1px solid var(--cr-bf-line); border-radius:12px; padding:18px 20px; }
.cr-bf-live-empty { color:var(--cr-bf-mut); font-size:13px; text-align:center; padding:6px 0; }
.cr-bf-live-body[hidden] { display:none; }
.cr-bf-live-row { display:flex; justify-content:space-between; align-items:baseline; gap:16px;
                 padding:7px 0; font-size:14px; color:#d6d2cc; }
.cr-bf-live-row strong { color:#fff; font-weight:600; }
.cr-bf-live-total { border-top:1px solid var(--cr-bf-line); margin-top:8px; padding-top:14px; font-size:15px; }
.cr-bf-live-total strong { font-size:22px; color:var(--cr-bf-cream); }
.cr-bf-live-note { margin:10px 0 0; font-size:11px; color:var(--cr-bf-mut); line-height:1.4; }

.cr-bf-actions { display:flex; gap:12px; }
.cr-bf-actions .cr-btn { flex:1; padding:14px 22px; }

/* =========================================================================
   ÉTAPE 2 — CARDS DE PACKS (le moment fort)
   ========================================================================= */
.cr-bf-pack-error {
    background:rgba(224,138,46,.12); border:1px solid var(--cr-bf-orange);
    color:#f0b76e; border-radius:8px; padding:12px 16px; margin-bottom:20px; font-size:14px; font-weight:600;
}
.cr-bf-pack-error[hidden] { display:none; }

.cr-bf-packs { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-bottom:20px; }
@media (max-width:900px) { .cr-bf-packs { grid-template-columns:1fr; } }

.cr-bf-pack {
    position:relative; display:flex; flex-direction:column; gap:14px;
    background:var(--cr-bf-dark); border:1px solid var(--cr-bf-line); border-radius:16px;
    padding:32px 26px 30px;                 /* espace blanc : les cartes « respirent » */
    cursor:pointer; transition:transform .18s cubic-bezier(.34,1.56,.64,1), border-color .18s, box-shadow .18s, background .18s;
    outline:none;
}
.cr-bf-pack:hover { border-color:#4e4b48; transform:translateY(-2px); }
.cr-bf-pack:focus-visible { border-color:var(--cr-bf-cream); }

/* Maxi visuellement dominant */
.cr-bf-pack.is-rec {
    border-color:var(--cr-bf-green);
    background:linear-gradient(180deg, rgba(47,158,107,.10) 0%, var(--cr-bf-dark) 45%);
    box-shadow:0 12px 40px rgba(47,158,107,.16);
    padding:38px 30px 36px;
}
@media (min-width:901px) { .cr-bf-pack.is-rec { transform:scale(1.035); } .cr-bf-pack.is-rec:hover { transform:scale(1.045) translateY(-2px); } }

.cr-bf-pack-flag {
    position:absolute; top:-12px; left:50%; transform:translateX(-50%);
    background:var(--cr-bf-green); color:#fff; font-size:10px; font-weight:700;
    text-transform:uppercase; letter-spacing:.7px; border-radius:12px; padding:5px 14px; white-space:nowrap;
}
.cr-bf-pack-head { display:flex; flex-direction:column; gap:8px; }
.cr-bf-pack-name { font-size:19px; font-weight:700; color:#fff; }
.cr-bf-pack-price { font-size:22px; font-weight:700; color:var(--cr-bf-cream); }
.cr-bf-pack-tagline { font-size:13px; color:#b9b4ae; line-height:1.45; }

/* Montants : reste à charge + caution */
.cr-bf-pack-amounts { display:flex; flex-direction:column; gap:10px; padding:16px 0; border-top:1px solid var(--cr-bf-line); border-bottom:1px solid var(--cr-bf-line); }
.cr-bf-pack-amounts > span { display:flex; justify-content:space-between; align-items:baseline; gap:12px; }
.cr-bf-pack-amounts em { font-style:normal; font-size:11px; text-transform:uppercase; letter-spacing:.5px; color:var(--cr-bf-mut); }
.cr-bf-pack-amounts strong { font-size:19px; font-weight:700; }

/* Contraste fort : Standard en orange, Maxi en vert */
.cr-bf-pack-liability.is-risk strong { color:var(--cr-bf-orange); }
.cr-bf-pack-liability.is-mid  strong { color:#d9c07a; }
.cr-bf-pack-liability.is-safe strong { color:var(--cr-bf-green); }
.cr-bf-pack-caution strong { color:#fff; }

.cr-bf-pack-gain { font-size:12px; font-weight:700; color:var(--cr-bf-green); min-height:17px; }
.cr-bf-pack-desc { font-size:12px; color:var(--cr-bf-mut); line-height:1.5; }
.cr-bf-pack-incl { font-size:11px; font-weight:600; color:var(--cr-bf-cream); background:rgba(242,225,205,.10); border-radius:6px; padding:8px 10px; }
.cr-bf-pack-social { font-size:11px; color:#cfe6da; background:rgba(47,158,107,.14); border-radius:6px; padding:8px 10px; margin-top:auto; }

/* Micro-animation au clic */
.cr-bf-pack-check {
    position:absolute; top:16px; right:16px; width:24px; height:24px; border-radius:50%;
    border:2px solid var(--cr-bf-line); transition:all .18s;
}
.cr-bf-pack.is-selected { border-color:var(--cr-bf-cream); background:#22201E; }
.cr-bf-pack.is-selected .cr-bf-pack-check { background:var(--cr-bf-cream); border-color:var(--cr-bf-cream); }
.cr-bf-pack.is-selected .cr-bf-pack-check::after {
    content:''; position:absolute; left:7px; top:3px; width:5px; height:10px;
    border:solid #121212; border-width:0 2px 2px 0; transform:rotate(45deg);
}
.cr-bf-pack.is-selected { animation:crPackPop .28s cubic-bezier(.34,1.56,.64,1); }
@keyframes crPackPop { 0% { transform:scale(1); } 50% { transform:scale(1.045); } 100% { transform:scale(1); } }
@media (min-width:901px) { .cr-bf-pack.is-rec.is-selected { transform:scale(1.045); } }

.cr-bf-pack-note { font-size:12px; line-height:1.55; color:var(--cr-bf-mut); background:var(--cr-bf-char);
                   border-left:3px solid var(--cr-bf-cream); border-radius:0 8px 8px 0; padding:12px 16px; margin:0 0 8px; }
.cr-bf-pack-note strong { color:#fff; }

/* --- Toggles d'options ---------------------------------------------------
   Les cases se répartissent sur UNE seule ligne et s'ajustent seules à la
   largeur de l'écran : `flex-wrap` + `flex:1 1 auto` veut dire « largeur
   naturelle, puis on partage la place restante ». Sur grand écran tout tient
   sur une ligne ; sur téléphone la ligne casse quand il n'y a plus la place,
   sans jamais fixer une largeur en pixels.
   `min-width:0` autorise le texte à rétrécir plutôt que de faire déborder la
   ligne, ce qui évite les débordements horizontaux. */
.cr-bf-toggles {
    display:flex; flex-wrap:wrap; align-items:stretch;
    gap:10px; margin:0;
}
.cr-bf-toggle {
    flex:1 1 auto; min-width:0; max-width:100%;
    display:flex; align-items:center; gap:12px; padding:14px 18px;
    background:var(--cr-bf-dark); border:1px solid var(--cr-bf-line); border-radius:10px; cursor:pointer;
    transition:border-color .15s, background .15s;
}
.cr-bf-toggle:hover { border-color:#4e4b48; }
.cr-bf-toggle input { margin:0; width:18px; height:18px; accent-color:var(--cr-bf-cream); flex-shrink:0; }
.cr-bf-toggle:has(input:checked) { border-color:var(--cr-bf-cream); background:var(--cr-bf-char); }
.cr-bf-toggle-txt { flex:1 1 auto; min-width:0; font-size:14px; color:#e0e0e0; overflow-wrap:anywhere; }
.cr-bf-toggle-txt small { color:var(--cr-bf-mut); }
.cr-bf-toggle-price { font-size:13px; font-weight:700; color:var(--cr-bf-cream); white-space:nowrap; }
.cr-bf-toggle-price.is-free { color:var(--cr-bf-green); }
.cr-bf-toggle.is-included { border-color:rgba(47,158,107,.5); }
.cr-bf-none { font-size:13px; color:var(--cr-bf-mut); font-style:italic; }

/* --- Récap étape 2 ------------------------------------------------------- */
.cr-bf-sum { background:var(--cr-bf-char); border:1px solid var(--cr-bf-line); border-radius:12px; padding:18px 20px; }
.cr-bf-sum-row { display:flex; justify-content:space-between; gap:16px; padding:7px 0; font-size:14px; color:#d6d2cc; }
.cr-bf-sum-row strong { color:#fff; }
.cr-bf-sum-row.is-opt { font-size:13px; color:#b9b4ae; }
.cr-bf-sum-row.is-total { border-top:1px solid var(--cr-bf-line); margin-top:8px; padding-top:14px; font-size:15px; }
.cr-bf-sum-row.is-total strong { font-size:22px; color:var(--cr-bf-cream); }
.cr-bf-sum-row.is-caution { font-size:12px; color:var(--cr-bf-mut); }

/* =========================================================================
   ÉTAPE 3 — RÉCAPITULATIF
   ========================================================================= */
.cr-bf-recap-box { background:var(--cr-bf-dark); border:1px solid var(--cr-bf-line); border-radius:14px; padding:24px 26px; }
.cr-bf-recap-title { margin:0 0 6px; font-size:20px; color:#fff; font-weight:700; }
.cr-bf-recap-dates { font-size:14px; color:#d6d2cc; margin-bottom:4px; }
.cr-bf-recap-place { font-size:13px; color:var(--cr-bf-mut); margin-bottom:12px; }
.cr-bf-recap-box hr { border:none; border-top:1px solid var(--cr-bf-line); margin:16px 0; }
.cr-bf-recap-row { display:flex; justify-content:space-between; align-items:baseline; gap:16px; padding:9px 0; font-size:14px; color:#d6d2cc; }
.cr-bf-recap-row strong { color:#fff; white-space:nowrap; }
.cr-bf-recap-row.is-sub { font-size:12px; color:var(--cr-bf-mut); padding-top:0; }
.cr-bf-recap-row.is-grand { border-top:2px solid var(--cr-bf-cream); margin-top:12px; padding-top:16px; font-size:16px; }
.cr-bf-recap-row.is-grand strong { font-size:28px; color:var(--cr-bf-cream); }

/* La caution est grisée et hors total : elle ne gonfle pas le prix. */
.cr-bf-recap-caution { margin-top:16px; padding-top:14px; border-top:1px dashed var(--cr-bf-line); }
.cr-bf-recap-row.is-caution { color:#7d7872; font-size:13px; padding-bottom:2px; }
.cr-bf-recap-row.is-caution strong { color:#9a948d; }
.cr-bf-recap-caution small { display:block; font-size:11px; color:#6f6a65; line-height:1.45; margin-top:4px; }

.cr-bf-liability {
    display:flex; align-items:center; justify-content:space-between; gap:16px;
    background:rgba(47,158,107,.10); border:1px solid var(--cr-bf-green); border-radius:10px;
    padding:14px 20px; margin:14px 0 0;
}
.cr-bf-liability-label { font-size:12px; text-transform:uppercase; letter-spacing:.6px; color:#a9dfc4; }
.cr-bf-liability-amount { font-size:22px; font-weight:700; color:var(--cr-bf-green); }

/* Sièges enfants : quantité + stock */
.cr-bf-seat {
    flex:1 1 auto; min-width:0; max-width:100%;
    display:flex; align-items:center; gap:10px; flex-wrap:wrap;
    padding:12px 14px; background:var(--cr-bf-dark);
    border:1px solid var(--cr-bf-line); border-radius:8px;
}
.cr-bf-seat .cr-bf-toggle { flex:1 1 auto; border:none; background:none; padding:0; }
.cr-bf-seat-qty select {
    width:auto; min-width:64px; padding:6px 8px; font-size:13px;
    background:var(--cr-bf-dark); color:#d6d2cc;
    border:1px solid var(--cr-bf-line); border-radius:6px;
}
.cr-bf-seat-qty select:disabled { opacity:.45; }
.cr-bf-seat-stock {
    flex:1 0 100%; margin:0; font-size:11.5px; color:#8d8880;
}

/* Livraison : même mécanisme que les autres groupes, une seule ligne. */
.cr-bf-delivery { display:flex; flex-direction:column; gap:10px; }
.cr-bf-delivery > .cr-bf-toggle { flex:1 1 auto; min-width:0; max-width:100%; }
.cr-bf-field-distance { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:0; }
.cr-bf-field-distance > span { font-size:12.5px; color:#8d8880; }
.cr-bf-field-distance input[type="number"] { width:120px; }
.cr-bf-distance-help { font-style:normal; font-size:12px; color:var(--cr-bf-mut); }

/* Remise compte client */
.cr-bf-member {
    display:flex; align-items:flex-start; gap:10px;
    padding:12px 14px; background:var(--cr-bf-dark);
    border:1px solid var(--cr-bf-line); border-radius:8px;
    font-size:13px; color:#d6d2cc; cursor:pointer;
}
.cr-bf-member input { margin:0; width:18px; height:18px; accent-color:var(--cr-bf-cream); flex-shrink:0; }
.cr-bf-member em { display:block; margin-top:2px; font-style:normal; font-size:11.5px; color:#8d8880; }
.cr-bf-member:has(input:checked) { border-color:var(--cr-bf-cream); }

/* Alerte plafond de sièges */
.cr-bf-hint.is-limit { color:#e8b04b; }

/* Ligne de remise dans le récapitulatif */
.cr-bf-sum-row.is-member strong { color:#7fb069; }

/* --- Bouton d'action sticky sur mobile ----------------------------------- */
@media (max-width:768px) {
    .cr-bf-grid { grid-template-columns:1fr; }
    .cr-bf-dates { grid-template-columns:1fr 1fr; }
    /* Les libellés « Lieu de prise en charge / de restitution » sont longs :
       pleine largeur sur mobile pour éviter le texte tronqué. */
    .cr-bf-dates.cr-bf-lieux { grid-template-columns:1fr; }
    .cr-bf-steps { flex-direction:column; }
    .cr-bf-actions {
        position:sticky; bottom:0; z-index:20; margin:0 -16px -16px; padding:14px 16px;
        background:rgba(26,26,26,.96); backdrop-filter:blur(8px);
        border-top:1px solid var(--cr-bf-line);
    }
    .cr-bf-actions .cr-btn { padding:16px 20px; font-size:15px; }
    .cr-bf-pack { padding:26px 22px 24px; }
    .cr-bf-pack.is-rec { padding:32px 26px 30px; }
    .cr-bf-liability { flex-direction:column; align-items:flex-start; gap:6px; }
}
/* --- Packs : suppléments conducteurs ------------------------------------- */
.cr-bf-pack-drivers {
    display:flex; flex-direction:column; gap:8px;
    padding:12px 0; border-bottom:1px solid var(--cr-bf-line);
}
.cr-bf-pack-driver { display:flex; justify-content:space-between; align-items:baseline; gap:10px; }
.cr-bf-pack-driver em { font-style:normal; font-size:11px; color:var(--cr-bf-mut); }
.cr-bf-pack-driver strong { font-size:13px; font-weight:700; color:#fff; }
.cr-bf-pack-driver strong.is-free { color:var(--cr-bf-green); }
.cr-bf-pack-driver strong.is-blocked { color:var(--cr-bf-orange); }

.cr-bf-pack-forbid {
    font-size:11px; font-weight:600; color:#f0b76e;
    background:rgba(224,138,46,.12); border-radius:6px; padding:8px 10px;
}

/* --- Toggle « non autorisé » (jeune conducteur sur Standard) ------------- */
.cr-bf-toggle.is-forbidden {
    border-color:rgba(224,138,46,.45);
    background:rgba(224,138,46,.06);
    cursor:not-allowed; opacity:.85;
}
.cr-bf-toggle.is-forbidden input { cursor:not-allowed; }
.cr-bf-toggle.is-forbidden .cr-bf-toggle-price { color:var(--cr-bf-orange); }
.cr-bf-toggle.is-forbidden:hover { border-color:rgba(224,138,46,.6); }

.cr-bf-driver-note {
    margin:12px 0 0; padding:12px 16px; font-size:12px; line-height:1.5;
    color:#f0b76e; background:rgba(224,138,46,.10);
    border:1px solid rgba(224,138,46,.4); border-radius:8px;
}
.cr-bf-driver-note[hidden] { display:none; }
/* =========================================================================
   v3.4 — Km packs, exclusions, sticky total, « Déjà inclus »
   ========================================================================= */

/* --- Km : ligne informative étape 1 -------------------------------------- */
.cr-bf-km-live {
    display:flex; align-items:center; gap:9px; margin:0;
    font-size:13px; color:#b9b4ae;
    background:var(--cr-bf-char); border:1px solid var(--cr-bf-line);
    border-radius:10px; padding:12px 16px;
}
.cr-bf-km-live strong { color:var(--cr-bf-green); font-weight:700; }
.cr-bf-km-live em { font-style:normal; color:var(--cr-bf-green); font-size:12px; }
.cr-bf-km-base { font-size:13px; color:#b9b4ae; margin:0 0 10px; }
.cr-bf-km-base strong { color:var(--cr-bf-green); }

/* --- Fiche de couverture (remplace l'accordeon exclusions) ------------ */
.cr-bf-coverage { margin:0 0 8px; }
.cr-bf-coverage-list {
    list-style:none; margin:0; padding:0 18px 4px;
    columns:2; column-gap:22px;
}
.cr-bf-coverage-list li {
    position:relative; padding-left:18px; font-size:12.5px; color:#cfcac4;
    margin-bottom:8px; break-inside:avoid;
}
.cr-bf-coverage-list li::before {
    content:'\\2713'; position:absolute; left:0;
    color:var(--cr-bf-green); font-weight:700;
}
.cr-bf-coverage-note { display:block; font-size:11.5px; color:#8d8880; }
.cr-bf-coverage-foot {
    margin:0; padding:0 18px 14px; font-size:12px; color:#8d8880;
}
@media (max-width:700px) { .cr-bf-coverage-list { columns:1; } }

/* --- Mention « Déjà inclus » ------------------------------------------- */
.cr-bf-toggle.is-locked { position:relative; padding-right:110px; }
.cr-bf-toggle.is-locked .cr-bf-already {
    position:absolute; right:16px; top:50%; transform:translateY(-50%);
    font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.5px;
    color:var(--cr-bf-green); background:rgba(47,158,107,.14);
    border-radius:10px; padding:4px 9px; white-space:nowrap;
}
.cr-bf-toggle.is-locked input { pointer-events:none; }
.cr-bf-already + .cr-bf-toggle-price { display:none; }

/* --- Bouton Continuer sticky : total intégré ----------------------------- */
.cr-bf-continue-total { display:block; font-size:12px; font-weight:400; opacity:.85; margin-top:2px; }
.cr-bf-continue-total:empty { display:none; }

/* --- Bandeau caution « Caution réduite à 500 € » ------------------------- */
.cr-bf-pack-caution { position:relative; flex-wrap:wrap; }
.cr-bf-pack-caution-note {
    flex-basis:100%; font-size:10.5px; font-weight:700; color:var(--cr-bf-green);
    margin-top:3px; letter-spacing:.3px;
}
.cr-bf-pack.is-rec .cr-bf-pack-caution-note { color:#bff0d6; }

/* --- « Voir les exclusions » page véhicule ------------------------------ */
.cr-vs-details { border:1px solid #eceae6; border-radius:10px; background:#fff; }
.cr-vs-details summary {
    cursor:pointer; padding:13px 18px; font-size:13px; color:#5f5a55;
    list-style:none; user-select:none; font-weight:600;
}
.cr-vs-details summary::-webkit-details-marker { display:none; }
.cr-vs-details summary::after { content:'+'; float:right; font-weight:700; }
.cr-vs-details[open] summary::after { content:'−'; }
.cr-bf-km-promo { font-style:normal; font-size:12px; color:#7fb069; margin-left:8px; font-weight:600; }
/* =====================================================================
   FORMULES DE PROTECTION — nouvelle présentation
   ================================================================== */

/* --- Bandeau « Votre reste à charge maximum » ------------------------- */
.cr-bf-pack-summary {
    display:flex; align-items:center; justify-content:space-between;
    flex-wrap:wrap; gap:10px;
    background:#F7F5F2; border:1px solid #E6E2DC; border-radius:12px;
    padding:16px 20px; margin:0 0 22px;
}
.cr-bf-pack-summary-main { display:flex; flex-direction:column; gap:3px; }
.cr-bf-pack-summary-label { font-size:19px; font-weight:600; color:#23201E; }
.cr-bf-pack-summary-label strong { color:#7a3b12; font-weight:700; }
.cr-bf-pack-summary-gain { font-size:13px; font-weight:600; color:#7a3b12; }
.cr-bf-pack-summary-caution { font-size:12.5px; color:#6B6862; text-align:right; }

/* --- Cartes ----------------------------------------------------------- */
.cr-bf-packs {
    display:grid; grid-template-columns:repeat(3,1fr);
    gap:18px; align-items:start; margin:0 0 20px;
}
.cr-bf-pack {
    position:relative; display:flex; flex-direction:column; gap:8px;
    background:#fff; border:1px solid #E6E2DC; border-radius:16px;
    padding:22px 22px 20px; cursor:pointer; transition:.15s ease;
}
.cr-bf-pack:hover { border-color:#C9C3BA; }
.cr-bf-pack.is-selected {
    border-color:#23201E; box-shadow:0 0 0 2px rgba(35,32,30,.12);
}
.cr-bf-pack.is-rec { transform:scale(1.03); box-shadow:0 14px 34px rgba(0,0,0,.16); }
.cr-bf-pack.is-rec.is-selected { border-color:#23201E; }
.cr-bf-pack.is-forbidden { opacity:.5; cursor:not-allowed; filter:grayscale(.4); }

.cr-bf-pack-flag {
    position:absolute; top:-12px; left:50%; transform:translateX(-50%);
    background:#23201E; color:#fff; font-size:11px; font-weight:700;
    padding:4px 14px; border-radius:999px; white-space:nowrap;
}
.cr-bf-pack-head { display:flex; flex-direction:column; gap:2px; }
.cr-bf-pack-name { font-size:21px; font-weight:700; color:#23201E; }
.cr-bf-pack-tagline { font-size:13px; color:#6B6862; }

.cr-bf-pack-price {
    display:block; font-size:40px; font-weight:800; line-height:1.05;
    color:#23201E; letter-spacing:-1px;
}
.cr-bf-pack-price + .cr-bf-pack-total { font-size:13px; color:#6B6862; }
.cr-bf-pack-rule { display:block; height:1px; background:#E6E2DC; margin:8px 0; }

.cr-bf-pack-lines { display:flex; flex-direction:column; gap:5px; }
.cr-bf-pack-line { display:flex; justify-content:space-between; font-size:13.5px; }
.cr-bf-pack-line em { font-style:normal; color:#6B6862; }
.cr-bf-pack-line strong { color:#23201E; font-weight:600; }

.cr-bf-pack-points {
    display:flex; flex-direction:column; gap:6px;
    margin-top:6px; font-size:12.5px; color:#4A4744;
}
.cr-bf-pack-point { position:relative; padding-left:16px; }
.cr-bf-pack-point::before {
    content:''; position:absolute; left:2px; top:7px;
    width:5px; height:5px; border-radius:50%; background:#B4AFA7;
}
.cr-bf-pack-forbid { font-size:12px; color:#8a4b08; margin-top:8px; }

.cr-bf-pack-check {
    position:absolute; top:18px; right:18px;
    width:20px; height:20px; border-radius:50%;
    border:2px solid #C9C3BA; background:#fff;
}
.cr-bf-pack.is-selected .cr-bf-pack-check {
    border-color:#23201E; background:#23201E;
    box-shadow:inset 0 0 0 4px #fff;
}

/* Carte Black : fond sombre, textes inversés */
.cr-bf-pack.is-dark {
    background:#1A1A1A; border-color:#1A1A1A; color:#F2E1CD;
}
.cr-bf-pack.is-dark .cr-bf-pack-name,
.cr-bf-pack.is-dark .cr-bf-pack-price,
.cr-bf-pack.is-dark .cr-bf-pack-line strong { color:#fff; }
.cr-bf-pack.is-dark .cr-bf-pack-tagline,
.cr-bf-pack.is-dark .cr-bf-pack-line em,
.cr-bf-pack.is-dark .cr-bf-pack-point,
.cr-bf-pack.is-dark .cr-bf-pack-total { color:#B7B2AB; }
.cr-bf-pack.is-dark .cr-bf-pack-rule { background:rgba(255,255,255,.16); }
.cr-bf-pack.is-dark .cr-bf-pack-check { border-color:#7a7a7a; background:transparent; }
.cr-bf-pack.is-dark.is-selected .cr-bf-pack-check {
    border-color:#fff; background:#fff; box-shadow:inset 0 0 0 4px #1A1A1A;
}
.cr-bf-pack.is-dark .cr-bf-pack-flag { background:#F2E1CD; color:#1A1A1A; }
.cr-bf-pack.is-dark .cr-bf-pack-point::before { background:#F2E1CD; }
.cr-bf-pack.is-dark .cr-bf-pack-forbid { color:#E0B27A; }

/* Franchise : 1 500 € en orange, 300 € en vert */
.cr-bf-pack-line[data-franchise-high] strong,
.cr-bf-pack .cr-bf-pack-line:first-child strong { color:#B45309; }
.cr-bf-pack.is-low .cr-bf-pack-line:first-child strong { color:#2F7D4F; }

/* --- Comparer en détail ----------------------------------------------
 * Le thème impose à tous les `button` un fond crème : le texte crème
 * devenait alors invisible sur fond crème. On reprend la main avec
 * `!important`, seul moyen de passer devant les styles injectés par le
 * page builder.
 *
 *   au repos : fond transparent, texte et bordure crème ;
 *   au survol: fond crème, texte anthracite.
 */
.cr-bf-compare-toggle,
.cr-bf .cr-bf-compare-toggle,
.cr-booking-form .cr-bf-compare-toggle {
    background:transparent !important;
    border:1px solid var(--cr-bf-cream) !important;
    color:var(--cr-bf-cream) !important;
    text-decoration:none !important;
    box-shadow:none !important;
    padding:11px 20px !important;
    cursor:pointer;
    font-size:13.5px; font-weight:700; line-height:1.3;
    border-radius:0 !important;
    display:inline-flex; align-items:center; gap:9px;
    transition:background .15s ease, color .15s ease;
}
.cr-bf-compare-toggle:hover,
.cr-bf-compare-toggle:focus-visible {
    background:var(--cr-bf-cream) !important;
    border-color:var(--cr-bf-cream) !important;
    color:#23201E !important;
}
.cr-bf-compare-caret {
    display:inline-block; width:0; height:0;
    border-left:5px solid transparent; border-right:5px solid transparent;
    border-bottom:6px solid currentColor; transition:transform .15s ease;
}
.cr-bf-compare-toggle[aria-expanded="true"] .cr-bf-compare-caret { transform:rotate(180deg); }
.cr-bf-compare-toggle:hover .cr-bf-compare-caret { border-bottom-color:#23201E; }
.cr-bf-compare { margin:10px 0 4px; }
.cr-bf-compare-panel { margin:10px 0 0; }
.cr-bf-compare-hint {
    font-size:12.5px; color:#cfcac3; background:rgba(255,255,255,.04);
    border:1px solid var(--cr-bf-line); border-radius:10px; padding:10px 14px; margin:0 0 14px;
}
.cr-bf-compare-scroll { overflow-x:auto; -webkit-overflow-scrolling:touch; margin:0 0 18px; }
/*
 * Le formulaire est sur fond sombre (#040309). Ces règles avaient été
 * écrites en thème clair (fond blanc, texte #23201E) : le tableau
 * ressortait blanc avec du texte clair, donc illisible.
 * Tout passe par les variables du thème sombre.
 */
.cr-bf-compare-table {
    width:100%; border-collapse:collapse; font-size:13px;
    background:var(--cr-bf-char); color:#d8d4ce;
    border:1px solid var(--cr-bf-line); border-radius:12px; overflow:hidden;
}
.cr-bf-compare-table th, .cr-bf-compare-table td {
    padding:11px 14px; text-align:left; vertical-align:top;
    border-bottom:1px solid var(--cr-bf-line);
    background:transparent; color:#d8d4ce;
}
.cr-bf-compare-table thead th {
    font-size:12px; font-weight:700; color:var(--cr-bf-cream);
    background:#22201E; border-bottom:1px solid var(--cr-bf-line);
    white-space:nowrap;
}
.cr-bf-compare-table th.col-label { width:52%; color:#efebe5; }
.cr-bf-compare-table .col-black { background:rgba(255,255,255,.045); font-weight:600; }
.cr-bf-compare-table thead .col-black { background:#2b2926; color:var(--cr-bf-cream); }
.cr-bf-compare-table .col-shared { color:#c6c1ba; }
.cr-bf-compare-table tbody tr:last-child td,
.cr-bf-compare-table tbody tr:last-child th { border-bottom:none; }
/* Les repères ✓ / ✗ du Document 3 doivent ressortir sur le fond sombre. */
.cr-bf-compare-table .col-silver,
.cr-bf-compare-table .col-gold,
.cr-bf-compare-table .col-shared { color:#c6c1ba; }

/* --- Barre de total de l'étape 2 -------------------------------------- */
.cr-bf-totalbar {
    display:flex; align-items:center; justify-content:space-between;
    flex-wrap:wrap; gap:10px;
    border-top:1px solid #E6E2DC; padding:14px 0 4px; margin-top:6px;
}
.cr-bf-totalbar-detail { font-size:13.5px; color:#6B6862; }
.cr-bf-totalbar-total { font-size:22px; font-weight:800; color:#23201E; }
.cr-bf-actions .cr-btn.is-disabled,
.cr-bf-actions .cr-btn[disabled] { opacity:.45; cursor:not-allowed; }

/* --- Mobile : cartes empilées, Black en premier ------------------------ */
@media (max-width:860px) {
    .cr-bf-packs { grid-template-columns:1fr; gap:14px; }
    .cr-bf-pack.is-rec { transform:none; }
    /* Black remonte en tête de liste sur téléphone. */
    .cr-bf-packs { display:flex; flex-direction:column; }
    .cr-bf-packs .cr-bf-pack.is-rec { order:-1; }
    .cr-bf-pack-summary-caution { text-align:left; }
    .cr-bf-pack-price { font-size:34px; }
    .cr-bf-compare-table th.col-label { width:auto; }
}
/* --- Notes de bas de tableau de la « Fiche de couverture » -------------
   Elles expliquent « € max » et « Coût réel » : sans elles, deux
   colonnes identiques paraissent contradictoires. */
.cr-bf-compare-notes {
    list-style:none; margin:12px 0 4px; padding:12px 16px;
    background:#1e1c1b; border-left:3px solid var(--cr-bf-cream);
    border-radius:0 8px 8px 0;
}
.cr-bf-compare-notes li {
    position:relative; padding-left:16px; font-size:12px;
    line-height:1.6; color:#b8b3ac;
}
.cr-bf-compare-notes li + li { margin-top:7px; }
.cr-bf-compare-notes li::before {
    content:''; position:absolute; left:2px; top:8px;
    width:4px; height:4px; border-radius:50%; background:var(--cr-bf-cream);
}

/* Les marqueurs ✓ / ✗ viennent du texte : on les aligne et on les
   met en couleur pour que le repère saute aux yeux. */
.cr-bf-compare-table td:not(.col-label) { white-space:normal; }
.cr-bf-compare-table .col-shared { color:#cfcac3; }

/* Les styles de la fiche de couverture vehicule sont dans le <style> de
   includes/views/vehicle-single.php : ce bloc est renvoye a chaque
   affichage, donc il ne peut pas etre rate par un cache CSS. Ne pas les
   dupliquer ici. */

/*
 * Filet de securite : aucun <details> du plugin ne doit laisser fuir son
 * marqueur natif (le « < » affiche en haut de la fiche de couverture).
 * Le seul <details> restant est celui de l'etat des lieux, cote espace
 * client.
 */
.cr-vs details > summary::-webkit-details-marker,
.cr-vs details > summary::marker,
.cr-rc details > summary::-webkit-details-marker,
.cr-rc details > summary::marker { content:""; display:none; font-size:0; }
.cr-vs details > summary, .cr-rc details > summary { list-style:none; }