.xg-booking,
.xg-resource-gate {
	width: min(64rem, calc(100% - 3rem));
	margin: clamp(3rem, 7vw, 6rem) auto;
	padding: clamp(1.5rem, 4vw, 3rem);
	border: 1px solid var(--xg-line);
	border-radius: var(--xg-radius-lg);
	color: var(--xg-ink);
	background: var(--xg-white);
	box-shadow: var(--xg-shadow);
}

.xg-booking__header {
	max-width: 48rem;
	margin-bottom: 1.5rem;
}

.xg-booking__header h1,
.xg-resource-gate h2 {
	margin: 0.4rem 0 1rem;
	color: var(--xg-navy);
}

.xg-booking__status {
	min-height: 2.75rem;
	padding: 0.75rem 1rem;
	border-radius: var(--xg-radius-sm);
	color: var(--xg-deep-blue);
	background: var(--xg-sky);
}

.xg-booking__frame {
	position: relative;
	width: 100%;
	min-height: 42rem;
	margin-block: 1rem;
	overflow: hidden;
	border: 1px solid var(--xg-line);
	border-radius: var(--xg-radius);
	background: linear-gradient(110deg, var(--xg-sky) 30%, var(--xg-white) 50%, var(--xg-sky) 70%);
	background-size: 200% 100%;
	animation: xg-booking-loading 1.5s linear infinite;
}

.xg-booking__frame iframe {
	display: block;
	width: 100%;
	min-height: 42rem;
	border: 0;
	background: var(--xg-white);
}

.xg-booking__fallback {
	display: grid;
	gap: 0.75rem;
}

.xg-booking__fallback p {
	margin: 0;
	color: var(--xg-muted);
}

.xg-resource-gate {
	width: min(52rem, calc(100% - 3rem));
}

.xg-resource-gate .xg-form-grid > :last-child:nth-child(odd) {
	grid-column: 1 / -1;
}

@keyframes xg-booking-loading {
	to { background-position: -200% 0; }
}

@media (max-width: 768px) {
	.xg-booking__frame,
	.xg-booking__frame iframe {
		min-height: 36rem;
	}
}

@media (max-width: 430px) {
	.xg-booking,
	.xg-resource-gate {
		width: calc(100% - 1.25rem);
		padding: 1.25rem;
	}

	.xg-booking__frame,
	.xg-booking__frame iframe {
		min-height: 34rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.xg-booking__frame {
		animation: none;
	}
}
