/* ============ Trip Booking Modal ============ */
.tbp-trigger-btn{
	background:#f5811f; color:#fff; border:none; padding:14px 32px; border-radius:8px;
	font-weight:700; font-size:15px; cursor:pointer; transition:background .2s ease;
}
.tbp-trigger-btn:hover{background:#e0730f;}

.tbp-modal-overlay{
	position:fixed; inset:0; background:rgba(0,0,0,0.6); z-index:9999;
	display:none; align-items:flex-start; justify-content:center; padding:40px 16px; overflow-y:auto;
}
.tbp-modal-overlay.is-open{display:flex;}

.tbp-modal{
	background:#fff; width:100%; max-width:560px; border-radius:14px; position:relative;
	overflow:hidden; box-shadow:0 30px 60px rgba(0,0,0,0.35);
}

.tbp-close{
	position:absolute; top:14px; right:16px; background:rgba(0,0,0,0.15); border:none; color:#fff;
	width:28px; height:28px; border-radius:50%; font-size:18px; line-height:1; cursor:pointer; z-index:2;
}

.tbp-modal-header{
	background:linear-gradient(135deg,#f5811f,#e05a12); padding:28px 30px 24px; color:#fff; text-align:center; position:relative;
}
.tbp-modal-header::after{
	content:''; position:absolute; top:-30px; right:-30px; width:140px; height:140px; border-radius:50%;
	background:rgba(255,255,255,0.08);
}
.tbp-badge{
	display:inline-block; background:rgba(255,255,255,0.2); padding:5px 14px; border-radius:20px;
	font-size:11px; font-weight:700; letter-spacing:.05em; margin-bottom:10px;
}
.tbp-modal-header h2{margin:0 0 6px; font-size:26px; font-weight:800;}
.tbp-modal-header p{margin:0; font-size:13.5px; opacity:.92;}

.tbp-form{padding:22px 28px 28px; max-height:70vh; overflow-y:auto;}

.tbp-notice{
	background:#fff7ec; border:1px solid #f3ddb8; border-radius:10px; padding:14px 16px; margin-bottom:20px;
}
.tbp-notice-label{color:#c9760f; font-size:10.5px; font-weight:800; letter-spacing:.06em; margin-bottom:6px;}
.tbp-notice-row{display:flex; align-items:flex-start; justify-content:space-between; gap:14px;}
.tbp-notice-row strong{display:block; font-size:14px; color:#1f2937; margin-bottom:3px;}
.tbp-notice-row p{margin:0; font-size:12px; color:#6b7280; line-height:1.5;}
.tbp-pill{
	background:#fdeee0; color:#c9760f; font-size:11px; font-weight:700; padding:5px 12px; border-radius:14px;
	white-space:nowrap; flex-shrink:0;
}
.tbp-pill-sm{padding:2px 9px; font-size:10px; margin-left:6px;}
.tbp-pill-gray{background:#eee; color:#666;}

.tbp-section-title{
	font-size:11px; font-weight:800; letter-spacing:.06em; color:#9ca3af; margin:22px 0 10px;
}
.tbp-section-title:first-of-type{margin-top:0;}

.tbp-grid-2{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
.tbp-field{display:flex; flex-direction:column; gap:5px;}
.tbp-field label{font-size:12.5px; font-weight:700; color:#374151;}
.tbp-field .req{color:#f5811f;}
.tbp-field input{
	border:1px solid #e5e7eb; border-radius:8px; padding:10px 12px; font-size:13.5px; color:#1f2937;
	font-family:inherit; width:100%;
}
.tbp-field input:focus{outline:none; border-color:#f5811f;}

.tbp-stepper{display:flex; align-items:center; gap:0; border:1px solid #e5e7eb; border-radius:8px; overflow:hidden; width:fit-content;}
.tbp-stepper button{
	background:#f9fafb; border:none; width:34px; height:38px; font-size:16px; font-weight:700; cursor:pointer; color:#374151;
}
.tbp-stepper button:hover{background:#f3f4f6;}
.tbp-stepper input{
	width:48px; text-align:center; border:none; border-left:1px solid #e5e7eb; border-right:1px solid #e5e7eb;
	height:38px; font-size:14px; font-weight:700;
}
.tbp-hint{font-size:11px; color:#9ca3af; margin:6px 0 0;}

.tbp-slot-period{font-size:10.5px; font-weight:800; color:#9ca3af; margin:10px 0 6px;}
.tbp-slot-row{display:grid; grid-template-columns:repeat(2, 1fr); gap:10px; margin-bottom:4px;}
.tbp-slot-option{
	border:1px solid #e5e7eb; border-radius:8px; padding:10px; text-align:center; cursor:pointer; position:relative;
	display:flex; flex-direction:column; gap:2px; transition:border-color .15s ease, background .15s ease;
}
.tbp-slot-option input{position:absolute; opacity:0; pointer-events:none;}
.tbp-slot-option:has(input:checked){border-color:#f5811f; background:#fff7ec;}
.tbp-slot-option.is-full{opacity:.55; background:#f9fafb; cursor:not-allowed;}
.tbp-slot-option.is-full .tbp-slot-capacity{color:#dc2626; font-weight:700;}
.tbp-slot-option.is-full:hover{border-color:#e5e7eb;}
.tbp-date-note{font-size:12px; margin:4px 0 0;}
.tbp-slot-time{font-size:14px; font-weight:700; color:#1f2937;}
.tbp-slot-capacity{font-size:10.5px; color:#9ca3af;}

.tbp-camera-row{display:grid; grid-template-columns:repeat(3, 1fr); gap:10px;}
.tbp-camera-option{
	border:1px solid #e5e7eb; border-radius:10px; padding:14px 8px; text-align:center; cursor:pointer; position:relative;
	display:flex; flex-direction:column; align-items:center; gap:4px; transition:border-color .15s ease, background .15s ease;
}
.tbp-camera-option input{position:absolute; opacity:0; pointer-events:none;}
.tbp-camera-option:has(input:checked){border-color:#f5811f; background:#fff7ec;}
.tbp-camera-icon{font-size:20px;}
.tbp-camera-label{font-size:12.5px; font-weight:700; color:#1f2937;}
.tbp-camera-price{font-size:11px; color:#f5811f; font-weight:700;}
.tbp-camera-option[data-value="none"] .tbp-camera-price{color:#9ca3af;}

.tbp-payment-row{display:flex; flex-direction:column; gap:10px;}
.tbp-payment-option{
	border:1px solid #e5e7eb; border-radius:10px; padding:14px 16px; cursor:pointer; position:relative;
	display:flex; flex-direction:column; gap:4px; transition:border-color .15s ease, background .15s ease;
}
.tbp-payment-option input{position:absolute; opacity:0; pointer-events:none;}
.tbp-payment-option:has(input:checked){border-color:#f5811f; background:#fff7ec;}
.tbp-payment-label{font-size:13.5px; font-weight:700; color:#1f2937;}
.tbp-payment-desc{font-size:11.5px; color:#9ca3af;}

.tbp-summary{background:#fdf6ec; border-radius:10px; padding:16px 18px; margin-top:22px;}
.tbp-summary-row{display:flex; justify-content:space-between; font-size:13px; color:#6b7280; padding:4px 0;}
.tbp-summary-total{font-weight:800; color:#1f2937; font-size:15px; border-top:1px dashed #e6d5b8; margin-top:6px; padding-top:10px;}
.tbp-summary-total span:last-child{color:#f5811f;}
.tbp-summary-sub{font-size:11.5px; color:#9ca3af;}

.tbp-form-msg{margin-top:14px; font-size:13px; display:none; padding:10px 12px; border-radius:8px;}
.tbp-form-msg.is-error{display:block; background:#fdecea; color:#b91c1c;}
.tbp-form-msg.is-success{display:block; background:#eafaf0; color:#0a7a3c;}

.tbp-confirm-btn{
	width:100%; background:#f5811f; color:#fff; border:none; padding:15px; border-radius:10px;
	font-weight:800; font-size:14.5px; margin-top:18px; cursor:pointer; transition:background .2s ease;
}
.tbp-confirm-btn:hover{background:#e0730f;}
.tbp-confirm-btn:disabled{opacity:.6; cursor:not-allowed;}

@media (max-width:560px){
	.tbp-grid-2{grid-template-columns:1fr;}
	.tbp-camera-row{grid-template-columns:1fr 1fr 1fr;}
	.tbp-modal{max-width:100%;}
	.tbp-form{padding:18px 18px 22px;}
}

/* ---- bank details / deposit / duration ---- */
.tbp-duration{margin:-4px 0 10px; color:#c9760f; font-weight:700;}
.tbp-bank-box{margin-top:6px;}
.tbp-bank-details{background:#f9fafb; border:1px dashed #d1d5db; border-radius:10px; padding:12px 14px; display:grid; gap:6px;}
.tbp-bank-details div{display:flex; justify-content:space-between; gap:12px; font-size:13px; flex-wrap:wrap;}
.tbp-bank-details span{color:#6b7280;}
.tbp-bank-details strong{color:#1f2937; direction:ltr; word-break:break-all;}
.tbp-field input[type=file]{padding:8px; font-size:12px; background:#fff;}
.tbp-summary-now span:last-child{color:#0a7a3c; font-weight:800;}
.tbp-summary-now{font-weight:700; color:#1f2937;}
.tbp-summary-balance{color:#b45309;}
.tbp-form-msg{white-space:pre-line;}

/* ---- وضع الفورم الظاهر مباشرة (inline) ---- */
.tbp-inline{display:flex; justify-content:center; width:100%;}
.tbp-modal--inline{margin:0 auto; box-shadow:0 12px 40px rgba(0,0,0,0.12); border:1px solid #f0e6da;}
.tbp-modal--inline .tbp-form{max-height:none; overflow:visible;}
