/**
 * Kalika Safaris — booking form extras.
 * Loaded together with the main stylesheet on pages that show a booking form.
 */

.kalika-booking { position: relative; }

.kalika-booking__fields {
	animation: kalika-fade-in 0.3s ease;
}

@keyframes kalika-fade-in {
	from { opacity: 0; transform: translateY(4px); }
	to { opacity: 1; transform: translateY(0); }
}

.kalika-booking.is-loading .kalika-booking__fields { opacity: 0.6; pointer-events: none; }

/* Live quote card */

.kalika-booking__summary { position: relative; overflow: hidden; }

.kalika-booking__summary .kalika-summary__row {
	padding: 6px 0;
	border-bottom: 1px dashed var(--kalika-border);
	font-size: 0.92rem;
}

.kalika-booking__summary .kalika-summary__row:last-of-type { border-bottom: 0; }
.kalika-booking__summary .kalika-summary__row span:last-child { font-weight: 600; }

.kalika-booking__summary .kalika-summary__row--total {
	border-bottom: 0;
	padding-top: 12px;
	margin-top: 4px;
	border-top: 1px solid var(--kalika-border);
}

.kalika-booking__summary.is-updating::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(255, 255, 255, 0.6);
}

/* Validation */

.kalika-booking input.is-invalid,
.kalika-booking select.is-invalid,
.kalika-booking textarea.is-invalid {
	border-color: #b32d2e;
	box-shadow: 0 0 0 3px rgba(179, 45, 46, 0.12);
}

.kalika-booking .kalika-field-error {
	display: block;
	margin-top: 4px;
	font-size: 0.78rem;
	color: #b32d2e;
}

/* Booking bar (mobile safe area) */

.kalika-booking-bar { padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px)); }

.kalika-booking-bar__text { display: grid; }

/* recaptcha spacing */

.kalika-booking__recaptcha { margin-top: 14px; }

/* Success state */

.kalika-booking.is-success .kalika-booking__form > *:not(.kalika-booking__message) {
	display: none;
}

.kalika-booking__summary .kalika-summary__row--balance span:last-child { font-weight: 700; }
