#ibe-booking-form-wrapper {
	max-width: 480px;
	margin: 0 auto;
	font-family: inherit;
}

#ibe-booking-form .ibe-field {
	margin-bottom: 14px;
}

#ibe-booking-form label {
	display: block;
	font-weight: 600;
	margin-bottom: 4px;
	font-size: 14px;
}

#ibe-booking-form input,
#ibe-booking-form select,
#ibe-booking-form textarea {
	width: 100%;
	padding: 10px;
	border: 1px solid #ccc;
	border-radius: 6px;
	font-size: 14px;
	box-sizing: border-box;
}

.ibe-error {
	color: #c0392b;
	margin-top: 10px;
	font-size: 13px;
}

#ibe-confirmation {
	background: #f0f8f8;
	border: 1px solid #0b6e6e;
	border-radius: 8px;
	padding: 20px;
	text-align: center;
}

#ibe-confirmation h3 {
	color: #0b6e6e;
	margin-top: 0;
}

#ibe-wizard { max-width: 560px; margin: 0 auto; }

.ibe-steps-indicator { display: flex; justify-content: space-between; margin-bottom: 24px; }
.ibe-step-dot { flex: 1; text-align: center; font-size: 12px; color: #aaa; position: relative; }
.ibe-step-dot::before { content: attr(data-step); display: block; width: 26px; height: 26px; line-height: 26px; border-radius: 50%; background: #eee; color: #888; margin: 0 auto 4px; font-weight: 600; }
.ibe-step-dot.active::before { background: #0b6e6e; color: #fff; }
.ibe-step-dot em { display: block; font-style: normal; }

.ibe-panel h3 { font-size: 15px; margin: 16px 0 10px; }

.ibe-type-choice { display: flex; gap: 10px; flex-wrap: wrap; }
.ibe-type-choice .ibe-type-card { flex: 1 1 30%; min-width: 140px; }
.ibe-type-card, .ibe-option-card {
	flex: 1;
	border: 1px solid #ddd;
	border-radius: 8px;
	padding: 12px;
	cursor: pointer;
	display: block;
	position: relative;
	box-sizing: border-box;
}
.ibe-type-card input[type="radio"],
.ibe-option-card input[type="radio"] {
	position: absolute !important;
	top: 12px !important;
	right: 12px !important;
	left: auto !important;
	width: 16px !important;
	height: 16px !important;
	min-width: 16px !important;
	min-height: 16px !important;
	margin: 0 !important;
	padding: 0 !important;
	transform: none !important;
	-webkit-appearance: radio !important;
	appearance: radio !important;
	float: none !important;
}
.ibe-type-title, .ibe-option-title {
	display: block;
	font-weight: 600;
	font-size: 14px;
	margin-bottom: 4px;
	padding-right: 26px; /* keeps text clear of the radio circle regardless of theme radio sizing */
	box-sizing: border-box;
}
.ibe-type-sub, .ibe-option-sub { display: block; font-size: 12px; color: #777; }
.ibe-option-price { display: block; margin-top: 6px; font-weight: 700; color: #0b6e6e; font-size: 13px; }

.ibe-card-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 14px; }

input[type="radio"]:checked + .ibe-option-title,
.ibe-option-card:has(input:checked) { border-color: #0b6e6e; background: #f0f8f8; }
.ibe-type-card:has(input:checked) { border-color: #0b6e6e; background: #f0f8f8; }

.ibe-field-row { display: flex; gap: 10px; margin-bottom: 14px; }
.ibe-field-row .ibe-field { flex: 1; }

.ibe-price-preview { background: #f0f8f8; border-radius: 6px; padding: 10px; margin-bottom: 14px; font-size: 14px; }
.ibe-price-preview strong { color: #0b6e6e; }

.ibe-btn-row { display: flex; gap: 10px; }
.ibe-back-btn {
	flex: 1;
	background: #fff;
	color: #333 !important;
	border: 1px solid #ccc;
	border-radius: 6px;
	padding: 12px;
	cursor: pointer;
	font-size: 14px;
	font-weight: 600;
}
.ibe-next-btn, #ibe-submit-btn {
	flex: 2;
	background: #0b6e6e;
	color: #fff !important;
	border: none;
	border-radius: 6px;
	padding: 12px;
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
}
.ibe-next-btn:disabled, #ibe-submit-btn:disabled { opacity: 0.6; cursor: not-allowed; }

.ibe-conf-note { font-size: 13px; color: #666; }

/* ---- Responsive ---- */
@media (max-width: 600px) {
	#ibe-wizard { max-width: 100%; padding: 0 12px; box-sizing: border-box; }
	.ibe-steps-indicator { font-size: 10px; }
	.ibe-step-dot::before { width: 22px; height: 22px; line-height: 22px; font-size: 12px; }
	.ibe-type-choice { flex-direction: column; }
	.ibe-card-grid { grid-template-columns: 1fr; }
	.ibe-field-row { flex-direction: column; gap: 12px; }
	.ibe-btn-row { flex-direction: column; }
	.ibe-back-btn, .ibe-next-btn, #ibe-submit-btn { flex: 1; width: 100%; box-sizing: border-box; }
	#ibe-booking-form input,
	#ibe-booking-form select,
	#ibe-booking-form textarea { font-size: 16px; } /* prevents iOS auto-zoom on focus */
}
