/**
 * Paid parking — map / directions block
 */

.tupelo-parking-map--card {
	margin: 0.35rem 0 1.75rem;
	max-width: 900px;
	background: #fff;
	border: 1px solid var(--tupelo-border, #e5e5e5);
	border-radius: 10px;
	box-shadow: var(--tupelo-shadow, 0 4px 18px rgba(0, 0, 0, 0.08));
	overflow: hidden;
}

.tupelo-parking-map__meta {
	padding: 1.15rem 1.25rem 1rem;
}

.tupelo-parking-map__label {
	margin: 0 0 0.35rem !important;
	font-size: 0.72rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--tupelo-muted, #666) !important;
	line-height: 1.3 !important;
}

.tupelo-parking-map__address {
	margin: 0 0 1rem !important;
	font-size: 1.05rem !important;
	line-height: 1.45 !important;
	color: var(--tupelo-heading, #2d2d2d) !important;
}

.tupelo-parking-map__address a {
	color: inherit !important;
	text-decoration: none !important;
	border-bottom: 1px solid transparent;
	transition: color 0.15s ease, border-color 0.15s ease;
}

.tupelo-parking-map__address a:hover,
.tupelo-parking-map__address a:focus {
	color: var(--tupelo-red, #c12336) !important;
	border-bottom-color: var(--tupelo-red, #c12336);
}

.tupelo-parking-map__line {
	display: block;
}

.tupelo-parking-map__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.65rem 1rem;
}

.tupelo-parking-map__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0.65rem 1.15rem;
	background: var(--tupelo-red, #c12336);
	color: #fff !important;
	font-size: 0.95rem !important;
	font-weight: 650 !important;
	line-height: 1.2 !important;
	text-decoration: none !important;
	border-radius: var(--tupelo-radius, 6px);
	border: 0;
	box-shadow: none;
	transition: background 0.15s ease, transform 0.15s ease;
}

.tupelo-parking-map__btn:hover,
.tupelo-parking-map__btn:focus {
	background: var(--tupelo-red-dark, #a01e2c);
	color: #fff !important;
	text-decoration: none !important;
}

.tupelo-parking-map__link {
	font-size: 0.9rem !important;
	font-weight: 600 !important;
	color: var(--tupelo-red, #c12336) !important;
	text-decoration: none !important;
	border-bottom: 1px solid rgba(193, 35, 54, 0.35);
}

.tupelo-parking-map__link:hover,
.tupelo-parking-map__link:focus {
	border-bottom-color: var(--tupelo-red, #c12336);
}

.tupelo-parking-map__links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem 0.5rem;
}

.tupelo-parking-map__sep {
	color: var(--tupelo-muted, #666);
	opacity: 0.7;
	user-select: none;
}

.tupelo-parking-map__frame {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	min-height: 280px;
	max-height: 420px;
	background: var(--tupelo-bg-soft, #f7f7f7);
	border-top: 1px solid var(--tupelo-border, #e5e5e5);
}

.tupelo-parking-map__frame iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
}

@media (max-width: 767px) {
	.tupelo-parking-map--card {
		margin-left: 0;
		margin-right: 0;
		border-radius: 8px;
	}

	.tupelo-parking-map__meta {
		padding: 1rem 1rem 0.9rem;
	}

	.tupelo-parking-map__address {
		font-size: 1rem !important;
	}

	.tupelo-parking-map__actions {
		flex-direction: column;
		align-items: stretch;
		gap: 0.55rem;
	}

	.tupelo-parking-map__btn {
		width: 100%;
		min-height: 48px;
		font-size: 1rem !important;
	}

	.tupelo-parking-map__links {
		justify-content: center;
		padding: 0.2rem 0 0.1rem;
	}

	/* Taller map on phones — easier to pan / read pins */
	.tupelo-parking-map__frame {
		aspect-ratio: 4 / 5;
		min-height: 320px;
		max-height: none;
	}
}
