/* Call a Car Booking widget — scoped under .cacb-widget to avoid theme clashes */
.cacb-widget{
  --cacb-brand:#e11d2a;
  --cacb-on-brand:#111111;
  --cacb-ink:#1a1a1a;
  --cacb-muted:#6b7280;
  --cacb-line:#e5e7eb;
  --cacb-bg:#ffffff;
  --cacb-radius:14px;
  max-width:520px;font-family:inherit;color:var(--cacb-ink);
  background:var(--cacb-bg);border:1px solid var(--cacb-line);
  border-radius:var(--cacb-radius);padding:22px;box-shadow:0 10px 30px rgba(0,0,0,.06);
  box-sizing:border-box;
}
.cacb-widget *{box-sizing:border-box}
.cacb-widget [hidden]{display:none!important}

/* Logo */
.cacb-logo-wrap{text-align:center;margin-bottom:16px;}
.cacb-logo{max-height:60px;max-width:200px;width:auto;height:auto;display:inline-block;}

.cacb-steps{display:flex;gap:6px;list-style:none;margin:0 0 18px;padding:0;font-size:12px}
.cacb-steps li{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--cacb-muted);font-weight:600}
.cacb-steps li span{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;
  background:#f3f4f6;color:var(--cacb-muted);font-size:12px}
.cacb-steps li.is-active span{background:var(--cacb-brand);color:var(--cacb-on-brand)}
.cacb-steps li.is-done span{background:var(--cacb-brand);color:#fff;opacity:.55}

.cacb-step{display:none;animation:cacb-fade .2s ease}
.cacb-step.is-active{display:block}
@keyframes cacb-fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

.cacb-step h3{margin:0 0 18px;font-size:18px}
.cacb-field{display:block;position:relative;margin:0 0 18px}
.cacb-field>span{display:block;font-size:12px;font-weight:600;color:var(--cacb-muted);margin-bottom:7px}
.cacb-field input,.cacb-field select,.cacb-field textarea{
  width:100%;padding:13px 14px;border:1px solid var(--cacb-line);border-radius:10px;
  font-size:15px;font-family:inherit;background:#fff;color:var(--cacb-ink)
}
.cacb-field input:focus,.cacb-field select:focus,.cacb-field textarea:focus{
  outline:none;border-color:var(--cacb-brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--cacb-brand) 18%,transparent)
}
.cacb-row{display:flex;gap:12px}
.cacb-row .cacb-field{flex:1}
.cacb-field--small{max-width:120px}

.cacb-suggest{list-style:none;margin:2px 0 0;padding:0;position:absolute;left:0;right:0;z-index:20;
  background:#fff;border:1px solid var(--cacb-line);border-radius:10px;overflow:hidden;box-shadow:0 8px 20px rgba(0,0,0,.08)}
.cacb-suggest:empty{display:none}
.cacb-suggest li{padding:10px 12px;font-size:14px;cursor:pointer}
.cacb-suggest li:hover{background:#f3f4f6}

.cacb-btn{appearance:none;border:1px solid var(--cacb-line);background:#fff;color:var(--cacb-ink);
  padding:12px 18px;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;font-family:inherit}
.cacb-btn:hover{background:#f3f4f6;color:var(--cacb-ink)}
.cacb-btn--primary:hover{background:var(--cacb-brand);color:var(--cacb-on-brand);filter:brightness(.95)}
.cacb-btn--primary{background:var(--cacb-brand);border-color:var(--cacb-brand);color:var(--cacb-on-brand);width:100%}
.cacb-btn--primary:hover{filter:brightness(.95)}
.cacb-btn[disabled]{opacity:.6;cursor:not-allowed}
.cacb-nav{display:flex;gap:10px;margin-top:8px}
.cacb-nav .cacb-btn{flex:1}
.cacb-nav .cacb-btn--primary{flex:2}

.cacb-vehicles{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}
.cacb-vehicle{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:14px;border:1px solid var(--cacb-line);border-radius:12px;cursor:pointer;transition:border-color .15s}
.cacb-vehicle:hover{border-color:var(--cacb-brand)}
.cacb-vehicle.is-selected{border-color:var(--cacb-brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--cacb-brand) 15%,transparent)}
.cacb-vehicle .v-name{font-weight:600}
.cacb-vehicle .v-eta{font-size:12px;color:var(--cacb-muted)}
.cacb-vehicle .v-price{font-size:18px;font-weight:700;color:var(--cacb-ink);white-space:nowrap}

.cacb-summary{border:1px solid var(--cacb-line);border-radius:12px;padding:14px;margin-bottom:14px;font-size:14px}
.cacb-summary .s-row{display:flex;justify-content:space-between;padding:5px 0;border-bottom:1px dashed var(--cacb-line)}
.cacb-summary .s-row:last-child{border-bottom:0}
.cacb-summary .s-total{font-weight:700;font-size:16px}

.cacb-alert{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;padding:10px 12px;border-radius:10px;margin-bottom:14px;font-size:14px}

.cacb-done{text-align:center;padding:20px 0}
.cacb-tick{width:56px;height:56px;border-radius:50%;background:var(--cacb-brand);color:var(--cacb-on-brand);
  display:grid;place-items:center;font-size:28px;margin:0 auto 12px}

.cacb-loading{opacity:.6;pointer-events:none}

@media(max-width:520px){
  .cacb-widget{padding:16px;border-radius:12px}
  .cacb-row{flex-direction:column;gap:0}
  .cacb-field--small{max-width:none}
}

/* Test/demo mode banner */
.cacb-testbanner{
  background:#fffbeb;border:1px solid #fde68a;color:#92400e;
  font-size:12.5px;font-weight:600;text-align:center;
  padding:8px 10px;border-radius:8px;margin-bottom:14px;
}

/* Return journey toggle switch */
.cacb-toggle-row{display:flex;align-items:center;gap:10px;margin:2px 0 18px}
.cacb-toggle-label{font-size:14px;font-weight:600;color:var(--cacb-ink)}
.cacb-switch{position:relative;display:inline-block;width:44px;height:24px;flex:0 0 auto}
.cacb-switch input{opacity:0;width:0;height:0;position:absolute;margin:0}
.cacb-slider{position:absolute;inset:0;cursor:pointer;background:#cbd5e1;border-radius:999px;transition:background .2s}
.cacb-slider::before{content:"";position:absolute;height:18px;width:18px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform .2s;box-shadow:0 1px 2px rgba(0,0,0,.25)}
.cacb-switch input:checked + .cacb-slider{background:var(--cacb-brand)}
.cacb-switch input:checked + .cacb-slider::before{transform:translateX(20px)}
.cacb-switch input:focus-visible + .cacb-slider{box-shadow:0 0 0 3px color-mix(in srgb,var(--cacb-brand) 30%,transparent)}

.cacb-vehicle .v-left{display:flex;align-items:center;gap:14px}
.cacb-vehicle .v-img{width:64px;height:44px;object-fit:contain;flex:0 0 auto}

.cacb-vehicle .v-right{text-align:right}
.cacb-vehicle .v-sub{font-size:12px;color:var(--cacb-muted);margin-top:2px}

.cacb-pay-wrap{margin:14px 0}
.cacb-pay-label{display:block;font-size:12px;font-weight:600;color:var(--cacb-muted);margin-bottom:7px}
#cacb-payment-element{padding:4px 0}
.cacb-pay-error{color:#b91c1c;font-size:13px;margin-top:8px;min-height:16px}

/* Promo code */
.cacb-promo-row{margin:0 0 16px}
.cacb-field--promo{margin:0}
.cacb-promo-input{display:flex;gap:8px}
.cacb-promo-input input{flex:1;padding:11px 12px;border:1px solid var(--cacb-line);border-radius:10px;font-size:15px;font-family:inherit}
.cacb-promo-input input:focus{outline:none;border-color:var(--cacb-brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--cacb-brand) 18%,transparent)}
.cacb-btn--apply{background:#f3f4f6;border:1px solid var(--cacb-line);color:var(--cacb-ink);padding:11px 16px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap;font-family:inherit}
.cacb-btn--apply:hover{background:#e5e7eb}
#cacb-promo-msg{font-size:13px;margin-top:6px;min-height:16px}
.cacb-promo-ok{color:#15803d;font-weight:600}
.cacb-promo-err{color:#b91c1c}
/* ---- Payment Method Toggle ---- */
.cacb-payment-method-wrap { margin-bottom: 16px; }
.cacb-field-label { display: block; font-size: 13px; font-weight: 600; color: #374151; margin-bottom: 8px; }
.cacb-payment-toggle { display: flex; gap: 8px; }
.cacb-pay-btn {
  flex: 1; padding: 12px 16px; border: 2px solid #e5e7eb; border-radius: 8px;
  background: #fff; cursor: pointer; font-size: 14px; font-weight: 500;
  color: #374151; transition: all 0.2s; display: flex; align-items: center;
  justify-content: center; gap: 6px;
}
.cacb-pay-btn:hover { border-color: var(--cacb-brand); }
.cacb-pay-btn.is-active {
  border-color: var(--cacb-brand); background: var(--cacb-brand);
  color: #1a1a1a; font-weight: 600;
}
.cacb-pay-icon { font-size: 18px; }

/* ---- Card Notice ---- */
.cacb-card-notice {
  display: flex; align-items: flex-start; gap: 12px; padding: 12px 16px;
  background: #f0fdf4; border: 1px solid #86efac; border-radius: 8px; margin-bottom: 16px;
}
.cacb-card-notice-icon { font-size: 22px; line-height: 1; }
.cacb-card-notice strong { display: block; font-size: 13px; color: #15803d; margin-bottom: 2px; }
.cacb-card-notice p { font-size: 12px; color: #166534; margin: 0; }

/* ---- Booking Confirmation Box ---- */
.cacb-confirm-box {
  background: #f0fdf4; border: 2px solid #86efac; border-radius: 12px;
  padding: 24px; text-align: center; margin: 12px 0;
}
.cacb-confirm-ref {
  font-size: 13px; color: #166534; font-weight: 600;
  text-transform: uppercase; letter-spacing: 1px; margin-bottom: 8px;
}
.cacb-confirm-refnum {
  font-size: 32px; font-weight: 800; color: #15803d;
  letter-spacing: 2px; margin-bottom: 16px;
  font-family: monospace;
}
.cacb-confirm-note {
  font-size: 13px; color: #374151; margin: 6px 0;
}
.cacb-confirm-table{width:100%;border-collapse:collapse;margin:14px 0;text-align:left;}
.cacb-confirm-table td{padding:7px 10px;font-size:14px;border-bottom:1px solid #dcfce7;color:#1a1a1a;}
.cacb-confirm-table td:first-child{color:#166534;font-weight:600;white-space:nowrap;width:38%;}

.cacb-btn--outline {
  background: transparent; border: 2px solid var(--cacb-brand);
  color: #1a1a1a; margin-top: 16px; font-weight: 600;
  padding: 10px 20px; border-radius: 8px; cursor: pointer;
  font-size: 14px; transition: all 0.2s;
}
.cacb-btn--outline:hover { background: var(--cacb-brand); }
/* ===== UI polish v0.9 ===== */
.cacb-widget{padding:26px;border-radius:18px;box-shadow:0 18px 50px rgba(0,0,0,.08)}
.cacb-step h3{font-size:22px;font-weight:800;letter-spacing:-.01em}

/* Now / Schedule tabs */
.cacb-tabs{display:flex;gap:6px;padding:5px;background:#f3f4f6;border-radius:12px;margin:0 0 20px}
.cacb-tab{flex:1;appearance:none;border:0;background:transparent;color:var(--cacb-muted);
  padding:12px 10px;border-radius:9px;font-size:15px;font-weight:700;cursor:pointer;font-family:inherit;transition:all .18s}
.cacb-tab:hover{color:var(--cacb-ink)}
.cacb-tab.is-active{background:var(--cacb-brand);color:var(--cacb-on-brand);box-shadow:0 4px 12px rgba(0,0,0,.12)}
.cacb-tab:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--cacb-brand) 40%,transparent)}

/* Inputs with icons */
.cacb-input-icon{position:relative}
.cacb-input-icon .cacb-ico{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--cacb-muted);display:flex;pointer-events:none;font-style:normal}
.cacb-input-icon input{padding-left:42px}
.cacb-field input,.cacb-field select,.cacb-field textarea{background:#fafafa;transition:border-color .15s,box-shadow .15s,background .15s}
.cacb-field input:focus,.cacb-field textarea:focus{background:#fff}

/* Steppers */
.cacb-row--keep{flex-direction:row!important;gap:12px!important}
.cacb-stepper{display:flex;align-items:center;border:1px solid var(--cacb-line);border-radius:10px;background:#fafafa;overflow:hidden}
.cacb-stepper button{appearance:none;border:0;background:transparent;width:44px;height:46px;font-size:20px;font-weight:600;
  color:var(--cacb-ink);cursor:pointer;flex:0 0 auto;font-family:inherit}
.cacb-stepper button:hover{background:color-mix(in srgb,var(--cacb-brand) 35%,transparent)}
.cacb-field .cacb-stepper input{border:0;background:transparent;text-align:center;font-weight:700;padding:0;height:46px;
  -moz-appearance:textfield;box-shadow:none}
.cacb-stepper input::-webkit-outer-spin-button,.cacb-stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}

/* Buttons & vehicle cards */
.cacb-btn--primary{padding:15px 18px;font-size:16px;font-weight:800;border-radius:12px;box-shadow:0 6px 16px rgba(0,0,0,.10);transition:transform .1s,filter .15s}
.cacb-btn--primary:active{transform:translateY(1px)}
.cacb-vehicle{border-radius:14px;padding:16px;transition:border-color .15s,box-shadow .15s,transform .1s}
.cacb-vehicle:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(0,0,0,.06)}
.cacb-toggle-row{margin:0 0 18px}

/* Theme hover/focus override (pink fix) */
#cacb-widget .cacb-tab,
#cacb-widget .cacb-tab:hover,
#cacb-widget .cacb-tab:focus,
#cacb-widget .cacb-tab:active{
  background:transparent!important;background-color:transparent!important;
  color:#6b7280!important;border:0!important;outline:none!important;box-shadow:none!important;
}
#cacb-widget .cacb-tab:hover{background-color:rgba(0,0,0,.05)!important;color:#1a1a1a!important}
#cacb-widget .cacb-tab.is-active,
#cacb-widget .cacb-tab.is-active:hover,
#cacb-widget .cacb-tab.is-active:focus,
#cacb-widget .cacb-tab.is-active:active{
  background:var(--cacb-brand)!important;background-color:var(--cacb-brand)!important;
  color:var(--cacb-on-brand)!important;box-shadow:0 4px 12px rgba(0,0,0,.12)!important;
}
#cacb-widget .cacb-stepper button:hover,
#cacb-widget .cacb-stepper button:focus,
#cacb-widget .cacb-stepper button:active{
  background-color:color-mix(in srgb,var(--cacb-brand) 40%,transparent)!important;
  color:#1a1a1a!important;border:0!important;outline:none!important;
}
#cacb-widget .cacb-btn:focus,#cacb-widget .cacb-btn:active{outline:none!important}