.location-card {
	min-width: 0;
	color: var(--primary-100);
}

.location-card-media {
	position: relative;
	min-height: 0;
	aspect-ratio: 445 / 500;
	overflow: hidden;
	background-color: var(--neutral-100);
}

.location-card-media > img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: scale 400ms ease;
}

.location-card:hover .location-card-media > img,
.location-card:focus-within .location-card-media > img {
	scale: 1.04;
}

.location-card-image-link {
	position: absolute;
	z-index: 1;
	inset: 0;
}

.location-card-arrow {
	position: absolute;
	z-index: 3;
	top: max(1rem, calc(1.5 * var(--su)));
	right: max(1rem, calc(1.5 * var(--su)));
	display: grid;
	place-items: center;
	width: max(2rem, calc(2 * var(--su)));
	aspect-ratio: 1;
	border-radius: 50%;
	background-color: var(--white-100);
	color: var(--accent-100);
	pointer-events: none;
	transition: background-color 250ms ease, color 250ms ease;
}

.location-card-arrow::after {
	width: 50%;
	height: 50%;
}

.location-card:hover .location-card-arrow,
.location-card:focus-within .location-card-arrow {
	background-color: var(--accent-100);
	color: var(--white-100);
}

.location-card-panel {
	position: absolute;
	z-index: 2;
	right: max(1rem, calc(1 * var(--su)));
	bottom: max(1rem, calc(1 * var(--su)));
	left: max(1rem, calc(1 * var(--su)));
	padding: max(1.5rem, calc(1.5 * var(--su)));
	background-color: var(--white-100);
}

.location-card-address p,
.location-card-opening,
.location-card-title {
	margin: 0;
}

.location-card-phone-wrap {
	display: grid;
	grid-template-rows: 0fr;
	opacity: 0;
	transition: grid-template-rows 300ms ease, opacity 250ms ease, margin-top 300ms ease;
}

.location-card:hover .location-card-phone-wrap,
.location-card:focus-within .location-card-phone-wrap {
	grid-template-rows: 1fr;
	margin-top: max(1rem, calc(1 * var(--su)));
	opacity: 1;
}

.location-card-phone {
	display: flex;
	align-items: center;
	gap: max(.5rem, calc(.5 * var(--su)));
	min-height: 0;
	overflow: hidden;
	padding-top: max(1rem, calc(1 * var(--su)));
	border-top: 1px solid var(--primary-10);
	color: inherit;
	text-decoration: none;
}

.location-card-phone-icon {
	display: grid;
	place-items: center;
	flex: 0 0 max(2rem, calc(2 * var(--su)));
	width: max(2rem, calc(2 * var(--su)));
	aspect-ratio: 1;
	border-radius: 50%;
	background-color: var(--accent-100);
	color: var(--white-100);
}

.location-card-phone-icon::after {
	width: 37.5%;
	height: 37.5%;
}

.location-card-content {
	display: grid;
	gap: max(.5rem, calc(.5 * var(--su)));
	margin-top: max(1.5rem, calc(1.5 * var(--su)));
}

.location-card-title a {
	color: inherit;
	text-decoration: none;
}

@media screen and (max-width: 767px) {

	.location-card-media {
		aspect-ratio: 345 / 425;
	}

	.location-card-arrow {
		top: 1rem;
		right: 1rem;
	}

	.location-card-panel {
		right: 1rem;
		bottom: 1rem;
		left: 1rem;
		padding: 1rem;
	}

	.location-card-phone-wrap,
	.location-card:hover .location-card-phone-wrap,
	.location-card:focus-within .location-card-phone-wrap {
		grid-template-rows: 1fr;
		margin-top: 1rem;
		opacity: 1;
	}

	.location-card-content {
		margin-top: 1rem;
	}

}

@media (prefers-reduced-motion: reduce) {

	.location-card-media > img,
	.location-card-arrow,
	.location-card-phone-wrap {
		transition: none;
	}

}
