.facility-grid__bleed.rv-bg--deep {
	background: var(--rv-color-section-bg);
	width: 100%;
}

.facility-grid {
	/* Apple-style spacing tokens (8pt rhythm) scoped to facility grid only */
	--rv-space-3: 24px;
	--rv-space-4: 32px;
	--rv-space-5: 40px;
	--rv-space-6: 48px;
	--rv-facility-section-gap: 20px;
	--rv-facility-item-gap: clamp(16px, 2.5vw, var(--rv-space-4));
	--rv-facility-grid-gap: clamp(12px, 2vw, 20px);

	display: flex;
	flex-direction: column;
	gap: var(--rv-facility-section-gap);
	max-width: 1200px;
	margin-inline: auto;
	padding-inline: clamp(18px, 4vw, 56px);
	padding-block: clamp(28px, 6vw, 72px);
}

.facility-grid .facility-item {
	display: flex;
	flex-direction: column;
	gap: var(--rv-facility-item-gap);
	padding: clamp(16px, 2.5vw, 24px);
	background: var(--rv-color-card-bg);
	border: 0;
	border-radius: 22px;
}

.facility-grid .facility-item__text h3 {
	color: var(--rv-color-section-heading);
}

.facility-grid .facility-item__text p {
	color: var(--rv-color-section-text-secondary);
}

.facility-grid__bleed .facility-item {
	opacity: 0;
	transform: translateY(14px);
	transition:
		opacity 560ms ease,
		transform 560ms ease;
	transition-delay: var(--reveal-delay, 0ms);
	will-change: opacity, transform;
}

.facility-grid__bleed .facility-item.is-revealed {
	opacity: 1;
	transform: translateY(0);
}

.facility-grid .facility-item__text {
	font-family: var(--rv-font-family-base);
	font-size: var(--rv-type-body-regular-size);
	font-weight: var(--rv-type-body-regular-weight);
	line-height: var(--rv-line-height-body);
	color: var(--rv-color-section-text-primary);
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.facility-grid .facility-item__text h3 {
	margin: 0 0 22px;
	font-size: var(--rv-type-h2-size);
	font-weight: var(--fw-semibold);
	line-height: var(--rv-line-height-title);
	display: inline-block;
	width: fit-content;
	max-width: 100%;
	align-self: flex-end;
	text-align: right;
	padding-bottom: 0.24rem;
	border-bottom: 2px solid var(--color-primary-green);
}

.facility-grid .facility-item__text p {
	margin: 0 0 10px;
}

.facility-grid .facility-item__text p:last-child {
	margin-bottom: 0;
}

.facility-grid .facility-thumbs {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: var(--rv-facility-grid-gap);
	row-gap: var(--rv-facility-grid-gap);
}

.facility-grid .facility-thumb {
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border: 0;
	box-sizing: border-box;
	display: block;
}

.facility-grid .facility-thumb__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

@media (min-width: 768px) {
	.facility-grid {
		--rv-facility-section-gap: 20px;
		--rv-facility-item-gap: clamp(20px, 3vw, 42px);
	}

	.facility-grid .facility-item {
		align-items: stretch;
	}

	.facility-grid .facility-item__text,
	.facility-grid .facility-item__media {
		flex: 1 1 0;
	}

	.facility-grid .facility-item__media {
		max-width: 58%;
	}

	.facility-grid .facility-item__text {
		max-width: 42%;
	}

	.facility-grid.rv-layout--fixed .facility-item {
		flex-direction: row;
	}

	.facility-grid.rv-layout--alternate .facility-item {
		flex-direction: row;
	}

	.facility-grid.rv-layout--alternate .facility-item:nth-child(even) {
		flex-direction: row-reverse;
	}

	.facility-grid.rv-layout--alternate .facility-item:nth-child(even) .facility-item__text {
		text-align: right;
	}
}


@media (min-width: 1024px) {
	.facility-grid {
		--rv-facility-section-gap: 20px;
	}
}

@media (max-width: 767px) {
	.facility-grid {
		/* Mobile fallback for older iOS Safari without flex-gap support */
		gap: 0;
		--rv-facility-item-gap: var(--rv-space-4);
	}

	.facility-grid .facility-item + .facility-item {
		/* Mobile spacing between facility/room panels */
		margin-top: 20px;
	}

	.facility-grid .facility-item__text,
	.facility-grid .facility-item__text h3,
	.facility-grid .facility-item__text p {
		text-align: left;
	}

	.facility-grid .facility-item__text h3 {
		align-self: flex-start;
	}
}

@media (prefers-reduced-motion: reduce) {
	.facility-grid__bleed .facility-item {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
}

.facility-grid .facility-item__text {
	text-align: right;
}

@media (max-width: 767px) {
	.facility-grid .facility-item__text {
		text-align: left;
	}
}
