/* ---------- Hero Slider ---------- */
.pcb-hero-slider { position: relative; overflow: hidden; width: 100%; }
.pcb-slide {
	position: absolute; inset: 0; display: none;
	align-items: center; overflow: hidden;
}
.pcb-slide.active { display: flex; position: relative; }
.pcb-slide-bg {
	position: absolute; inset: 0; background-size: cover; background-position: center;
	will-change: filter; transition: filter .3s ease;
}
.pcb-slide-overlay { position: absolute; inset: 0; background: rgba(20,20,20,0.55); z-index: 1; }
.pcb-slide-content { position: relative; z-index: 2; max-width: 640px; padding: 0 60px; color: #fff; }
.pcb-slide-heading { font-size: 44px; line-height: 1.15; margin: 0 0 10px; font-weight: 800; }
.pcb-highlight { color: #2E7D32; }
.pcb-slide-divider { display:flex; gap:6px; margin-bottom: 18px; }
.pcb-slide-divider span { display:block; height:3px; width:36px; }
.pcb-divider-red { background:#C1272D; }
.pcb-divider-green { background:#2E7D32; }
.pcb-slide-subheading { font-size: 17px; margin: 0 0 24px; opacity: .95; }
.pcb-badges-row { display:flex; gap:28px; margin-bottom: 24px; flex-wrap: wrap; }
.pcb-badge { display:flex; align-items:center; gap:8px; color:#fff; }
.pcb-badge-icon { width:34px; height:34px; border:1px solid #fff; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:14px; flex-shrink:0; }
.pcb-badge-text { font-size:12px; line-height:1.3; }
.pcb-slide-btn { display:inline-block; background:#C1272D; color:#fff; padding:12px 28px; border-radius:4px; text-decoration:none; font-weight:600; }
.pcb-slide-fg { position:absolute; right:0; bottom:0; max-height:90%; z-index:1; }
.pcb-slide-dots { position:absolute; bottom:16px; left:50%; transform:translateX(-50%); display:flex; gap:8px; z-index:3; }
.pcb-dot { width:10px; height:10px; border-radius:50%; background:rgba(255,255,255,.5); cursor:pointer; }
.pcb-dot.active { background:#fff; }
.pcb-slide-prev, .pcb-slide-next { position:absolute; top:50%; transform:translateY(-50%); background:rgba(0,0,0,.35); color:#fff; border:none; width:40px; height:40px; border-radius:50%; cursor:pointer; z-index:3; font-size:16px; }
.pcb-slide-prev { left:16px; }
.pcb-slide-next { right:16px; }

@media (max-width: 768px) {
	.pcb-slide-heading { font-size: 28px; }
	.pcb-slide-content { padding: 0 24px; }
	.pcb-badges-row { gap: 16px; }
}

/* ---------- Booking Form ---------- */
.pcb-booking-widget {
	display:flex; background:#fff; border-radius:8px; box-shadow:0 10px 40px rgba(0,0,0,.15); overflow:hidden;
	max-width: 1100px; margin: -60px auto 0; position: relative; z-index: 10;
}
.pcb-book-side { background:#C1272D; color:#fff; padding:30px 24px; width:220px; flex-shrink:0; text-align:center; }
.pcb-book-badge { font-size:32px; background:rgba(255,255,255,.15); width:56px; height:56px; border-radius:50%; display:flex; align-items:center; justify-content:center; margin:0 auto 12px; }
.pcb-book-side h3 { margin: 0 0 6px; font-size:18px; }
.pcb-book-side p { margin:0; font-size:13px; opacity:.9; }
.pcb-booking-form { padding: 24px; flex-grow: 1; }
.pcb-form-row { display:flex; gap:16px; margin-bottom: 14px; flex-wrap: wrap; }
.pcb-field { flex:1; min-width: 160px; display:flex; flex-direction:column; }
.pcb-field label { font-size:12px; color:#666; margin-bottom:4px; }
.pcb-field input, .pcb-field select { padding:10px 12px; border:1px solid #ddd; border-radius:4px; font-size:14px; }
.pcb-payment-toggle { flex-direction: row; gap: 20px; align-items:center; }
.pcb-payment-toggle label { font-size: 13px; color:#333; display:flex; gap:6px; align-items:center; }
.pcb-book-submit { background:#2E7D32; color:#fff; border:none; padding:12px 30px; border-radius:4px; font-weight:600; cursor:pointer; font-size:15px; }
.pcb-book-submit:hover { opacity: .9; }
.pcb-form-message { margin-top: 12px; padding: 10px 14px; border-radius: 4px; font-size: 14px; }
.pcb-form-message.success { background:#e8f5e9; color:#2E7D32; }
.pcb-form-message.error { background:#fdecea; color:#C1272D; }

@media (max-width: 900px) {
	.pcb-booking-widget { flex-direction: column; margin-top: -30px; }
	.pcb-book-side { width: auto; }
}

/* ---------- WhatsApp button ---------- */
.pcb-whatsapp-inline, .pcb-whatsapp-floating {
	display:inline-flex; align-items:center; gap:8px; background:#25D366; color:#fff !important;
	padding: 12px 20px; border-radius: 30px; text-decoration:none; font-weight:600; font-size:14px;
}
.pcb-whatsapp-floating { position: fixed; right: 24px; bottom: 90px; z-index: 9999; box-shadow: 0 4px 14px rgba(0,0,0,.25); }

/* ---------- My Account widget ---------- */
.pcb-account-widget { max-width: 560px; margin: 0 auto; background:#fff; border-radius:8px; box-shadow:0 4px 20px rgba(0,0,0,.08); padding: 28px; }
.pcb-acc-tabs { display:flex; gap: 10px; border-bottom: 1px solid #eee; margin-bottom: 20px; }
.pcb-acc-tab { background:none; border:none; border-bottom:3px solid transparent; padding: 10px 4px; font-size:15px; font-weight:600; color:#888; cursor:pointer; text-decoration:none; }
.pcb-acc-tab.active { color:#2E7D32; border-color:#2E7D32; }
.pcb-logout-link { margin-left: auto; color:#C1272D !important; }
.pcb-acc-panel { display:none; }
.pcb-acc-panel.active { display:block; }
.pcb-acc-note { color:#888; font-size:13px; margin-top:-8px; margin-bottom:16px; }
.pcb-acc-submit { background:#2E7D32; color:#fff; border:none; padding:11px 26px; border-radius:4px; font-weight:600; cursor:pointer; font-size:14px; margin-top:6px; }
.pcb-acc-message { margin-top:12px; padding:9px 12px; border-radius:4px; font-size:13px; }
.pcb-acc-message.success { background:#e8f5e9; color:#2E7D32; }
.pcb-acc-message.error { background:#fdecea; color:#C1272D; }

.pcb-my-booking { border:1px solid #eee; border-radius:6px; padding:16px; margin-bottom: 14px; }
.pcb-booking-summary strong { font-size:14px; }
.pcb-status-pill { display:inline-block; margin-left:8px; padding:2px 10px; border-radius:12px; font-size:11px; font-weight:600; text-transform:capitalize; color:#fff; }
.pcb-status-pending { background:#e67e22; }
.pcb-status-confirmed { background:#2E7D32; }
.pcb-status-completed { background:#555; }
.pcb-status-cancelled { background:#C1272D; }
.pcb-booking-route { margin-top:8px; font-weight:600; font-size:14px; }
.pcb-booking-meta { margin-top:4px; font-size:12px; color:#777; }
.pcb-booking-actions { margin-top:10px; display:flex; gap:10px; }
.pcb-booking-actions button { border:1px solid #ddd; background:#fafafa; padding:6px 14px; border-radius:4px; font-size:12px; cursor:pointer; }
.pcb-cancel-booking { color:#C1272D; border-color:#f5c6c6 !important; }
.pcb-edit-booking-form { margin-top:14px; padding-top:14px; border-top:1px dashed #eee; }

/* ---------- CTA Bar (Need a Ride Now / Book Online) ---------- */
.pcb-cta-bar { display:flex; align-items:stretch; position: relative; overflow: visible; }
.pcb-cta-left, .pcb-cta-right { flex: 1; display:flex; align-items:center; padding: 50px 60px; }
.pcb-cta-right { justify-content: flex-start; }
.pcb-cta-inner { max-width: 380px; }
.pcb-cta-heading { margin: 0 0 6px; font-size: 24px; font-weight: 800; }
.pcb-cta-text { margin: 0 0 18px; opacity: .95; font-size: 14px; }
.pcb-cta-btn { display:inline-flex; align-items:center; gap:8px; padding: 12px 22px; border-radius: 4px; font-weight:700; text-decoration:none; font-size:14px; }
.pcb-cta-logo-wrap { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); z-index: 5; }
.pcb-cta-logo-circle { border-radius: 50%; border: 4px solid #fff; display:flex; align-items:center; justify-content:center; overflow:hidden; box-shadow: 0 4px 16px rgba(0,0,0,.2); }
.pcb-cta-logo-circle img { width:100%; height:100%; object-fit: contain; }

@media (max-width: 768px) {
	.pcb-cta-bar { flex-direction: column; }
	.pcb-cta-logo-wrap { position: relative; left:auto; top:auto; transform:none; margin: 10px auto; order: 2; }
	.pcb-cta-left { order: 1; }
	.pcb-cta-right { order: 3; }
	.pcb-cta-left, .pcb-cta-right { padding: 36px 30px; justify-content:center; text-align:center; }
	.pcb-cta-inner { max-width: 100%; }
}

/* ---------- Chat widget ---------- */
#pcb-chat-widget { position: fixed; right: 24px; bottom: 24px; z-index: 9998; font-family: Arial, sans-serif; }
#pcb-chat-toggle { width: 56px; height: 56px; border-radius: 50%; background:#C1272D; color:#fff; border:none; font-size:24px; cursor:pointer; box-shadow:0 4px 14px rgba(0,0,0,.25); }
#pcb-chat-box { width: 300px; max-height: 420px; background:#fff; border-radius:10px; box-shadow:0 8px 30px rgba(0,0,0,.25); position:absolute; bottom:66px; right:0; display:flex; flex-direction:column; overflow:hidden; }
#pcb-chat-header { background:#C1272D; color:#fff; padding:12px 14px; font-weight:600; display:flex; justify-content:space-between; align-items:center; }
#pcb-chat-close { cursor:pointer; }
#pcb-chat-prestart { padding: 14px; display:flex; flex-direction:column; gap:8px; }
#pcb-chat-prestart input { padding:8px; border:1px solid #ddd; border-radius:4px; }
#pcb-chat-start { background:#2E7D32; color:#fff; border:none; padding:9px; border-radius:4px; cursor:pointer; font-weight:600; }
#pcb-chat-messages { flex-grow:1; padding:12px; overflow-y:auto; max-height:260px; font-size:13px; }
.pcb-msg { margin-bottom: 10px; max-width: 80%; padding: 8px 10px; border-radius: 8px; }
.pcb-msg.visitor { background:#2E7D32; color:#fff; margin-left:auto; }
.pcb-msg.admin { background:#f1f1f1; color:#333; }
#pcb-chat-inputrow { display:flex; border-top:1px solid #eee; }
#pcb-chat-input { flex-grow:1; border:none; padding:10px; font-size:13px; }
#pcb-chat-send { background:#C1272D; color:#fff; border:none; padding:0 16px; cursor:pointer; }
