/**
 * Contact — map card beside address, hours, and quick actions.
 */

.contact {
	padding-block: clamp(var(--space-7), 9vw, 120px);
	background-color: var(--color-surface);
}

.contact__layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(var(--space-4), 5vw, var(--space-6));
	align-items: center;
}

.contact__map {
	overflow: hidden;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-xl);
	box-shadow: var(--shadow-card);
}

.contact__iframe {
	display: block;
	width: 100%;
	height: clamp(240px, 44vw, 420px);
	/* Mutes Google's saturated map colors into the brand range. */
	filter: saturate(0.72) contrast(0.96);
}

.contact__title {
	margin: 0 0 var(--space-3);
	font-size: var(--fs-h2);
}

.contact__address,
.contact__email {
	margin: 0 0 var(--space-2);
}

.contact__address a,
.contact__email a {
	display: inline-flex;
	align-items: flex-start;
	gap: 0.6em;
	color: var(--color-text-body);
	font-size: var(--fs-small);
	text-decoration: none;
}

.contact__address i,
.contact__email i {
	flex-shrink: 0;
	margin-top: 0.15em;
	color: var(--color-accent);
	font-size: 1.2em;
}

.contact__address a:hover,
.contact__email a:hover {
	color: var(--color-accent);
}

.contact__hours {
	display: flex;
	flex-direction: column;
	gap: 2px;
	margin: 0 0 var(--space-3);
	padding: var(--space-2) var(--space-3);
	border-left: 2px solid var(--color-accent-soft);
	background-color: var(--color-surface-soft);
	border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
	color: var(--color-text-muted);
	font-size: var(--fs-small);
}

.contact__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2);
	margin-top: var(--space-3);
}

@media (min-width: 768px) {
	.contact__layout {
		grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
	}
}

@media (min-width: 1024px) {
	.contact__layout {
		grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
		gap: var(--space-7);
	}
}
