.site-main:has(.contact-page) {
	padding-bottom: 0;
}

.contact-page {
	--contact-page-bg-image: none;
	--contact-page-card-bg: rgba(229, 238, 233, 0.9);
	--contact-page-copy: #3f5f52;
	--contact-page-copy-soft: #6c857a;
	position: relative;
	padding-top: 0;
	background-color: #dfe8e3;
	background-image: var(--contact-page-bg-image), radial-gradient(circle at 20% 18%, rgba(255, 255, 255, 0.35), transparent 38%), linear-gradient(180deg, rgba(255, 255, 255, 0.28), rgba(255, 255, 255, 0.12));
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
	overflow: hidden;
}

.contact-page__backdrop {
	position: relative;
	min-height: clamp(840px, 82vw, 1080px);
	padding-block: clamp(2.4rem, 3vw, 3.2rem);
	background: transparent;
}

.contact-page__inner {
	display: grid;
	grid-template-columns: minmax(280px, 0.72fr) minmax(340px, 1.05fr);
	max-width: 1100px;
	margin-inline: auto;
	gap: clamp(1rem, 1.8vw, 1.35rem);
	align-items: start;
}

.contact-page__column {
	display: grid;
	gap: 1.55rem;
	align-content: start;
}

.contact-page__column--left {
	padding-top: clamp(1.2rem, 2.8vw, 2rem);
}

.contact-page__column--right {
	align-self: center;
}

.contact-page__card {
	background: rgba(255, 255, 255, 0.84);
	box-shadow: 0 18px 40px rgba(60, 80, 70, 0.1);
}

.contact-page__card--schedule {
	padding: clamp(1.4rem, 2vw, 1.9rem) clamp(1.6rem, 2.3vw, 2.2rem);
	background: rgba(224, 238, 232, 0.92);
	text-align: center;
	max-width: 380px;
	justify-self: center;
}

.contact-page__schedule-title {
	margin: 0;
	font-size: clamp(1.48rem, 1.8vw, 1.82rem);
	font-weight: 500;
	line-height: 1.15;
	color: #111;
}

.contact-page__schedule-divider {
	width: 100%;
	height: 1px;
	margin: 1rem 0 1.1rem;
	background: rgba(17, 17, 17, 0.85);
}

.contact-page__schedule-list {
	display: grid;
	gap: 1rem;
}

.contact-page__schedule-row {
	display: grid;
	gap: 0.45rem;
}

.contact-page__schedule-days {
	margin: 0;
	font-size: clamp(0.96rem, 1.02vw, 1.08rem);
	font-weight: 400;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: #111;
}

.contact-page__schedule-hours {
	margin: 0;
	font-size: clamp(1.32rem, 1.55vw, 1.62rem);
	font-weight: 600;
	line-height: 1.1;
	color: #111;
}

.contact-page__card--social {
	display: grid;
	gap: 0;
	overflow: hidden;
	background: transparent;
	box-shadow: none;
	max-width: 380px;
	width: 100%;
	justify-self: center;
}

.contact-page__social-media {
	background: rgba(255, 255, 255, 0.94);
	min-height: clamp(340px, 34vw, 500px);
}

.contact-page__embed-frame,
.contact-page__embed-frame--oembed {
	position: relative;
	height: 100%;
	min-height: inherit;
}

.contact-page__embed-frame iframe,
.contact-page__embed-frame--oembed iframe,
.contact-page__embed-frame--oembed video,
.contact-page__embed-frame--oembed embed,
.contact-page__embed-frame--oembed object {
	display: block;
	width: 100%;
	height: 100%;
	min-height: inherit;
	border: 0;
}

.contact-page__embed-frame--oembed > * {
	width: 100% !important;
	max-width: none !important;
}

.contact-page__embed-frame--instagram {
	display: grid;
	align-items: stretch;
	min-height: inherit;
}

.contact-page__embed-frame--instagram .instagram-media {
	width: 100% !important;
	max-width: none !important;
	min-height: inherit !important;
	margin: 0 !important;
}

.contact-page__social-fallback,
.contact-page__social-placeholder {
	display: grid;
	place-items: center;
	min-height: inherit;
	padding: 1.5rem;
	font-size: 0.94rem;
	line-height: 1.5;
	text-align: center;
	color: var(--contact-page-copy);
}

.contact-page__social-fallback {
	text-decoration: none;
}

.contact-page__social-fallback--instagram {
	align-content: center;
	gap: 0.45rem;
	background: rgba(255, 255, 255, 0.9);
}

.contact-page__social-fallback-eyebrow {
	font-size: 0.82rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: #6c857a;
}

.contact-page__social-fallback-label {
	font-family: var(--font-accent);
	font-size: 1.1rem;
	line-height: 1.2;
	color: #4c6c5e;
}

.contact-page__social-label-wrap {
	background: #6b8579;
}

.contact-page__social-title {
	margin: 0;
	padding: 0.85rem 1.2rem 0.95rem;
	font-family: var(--font-accent);
	font-size: clamp(1.28rem, 1.55vw, 1.6rem);
	font-weight: 400;
	line-height: 1.1;
	text-align: center;
	color: #fff;
}

.contact-page__visit-banner {
	background: rgba(148, 170, 158, 0.95);
	max-width: 560px;
	width: 100%;
	justify-self: center;
}

.contact-page__visit-title {
	margin: 0;
	padding: 0.9rem 1.6rem 1rem;
	font-family: var(--font-accent);
	font-size: clamp(1.7rem, 2.15vw, 2.28rem);
	font-weight: 400;
	line-height: 1;
	text-align: center;
	color: #fff;
}

.contact-page__card--map {
	overflow: hidden;
}

.contact-page__map-frame {
	background: rgba(255, 255, 255, 0.94);
	min-height: clamp(360px, 36vw, 520px);
}

.contact-page__map-frame iframe {
	display: block;
	width: 100%;
	height: clamp(360px, 36vw, 520px);
	border: 0;
}

.contact-page__card--map {
	max-width: 560px;
	width: 100%;
	justify-self: center;
}

.contact-page__map-placeholder {
	display: grid;
	place-items: center;
	min-height: inherit;
	padding: 1.5rem;
	font-size: 0.94rem;
	line-height: 1.5;
	text-align: center;
	color: var(--contact-page-copy);
	background: rgba(255, 255, 255, 0.92);
}

.contact-page__address-bar {
	background: #4c6c5e;
}

.contact-page__address {
	margin: 0;
	padding: 0.9rem 1.15rem 1rem;
	font-family: var(--font-accent);
	font-size: clamp(1.02rem, 1.28vw, 1.28rem);
	font-weight: 400;
	line-height: 1.15;
	text-align: center;
	color: #fff;
}

@media (max-width: 1024px) {
	.contact-page__inner {
		grid-template-columns: 1fr;
	}

	.contact-page__column--left {
		padding-top: 0;
	}

	.contact-page__column--right {
		align-self: stretch;
	}

	.contact-page__card--schedule {
		max-width: 32rem;
		justify-self: center;
	}

	.contact-page__visit-banner,
	.contact-page__card--map,
	.contact-page__card--social {
		max-width: 32rem;
		width: 100%;
		justify-self: center;
	}
}

@media (max-width: 782px) {
	.contact-page__backdrop {
		padding-block: 2rem;
	}

	.contact-page__inner {
		gap: 1rem;
	}

	.contact-page__column {
		gap: 1rem;
	}

	.contact-page__schedule-title {
		font-size: 1.28rem;
	}

	.contact-page__schedule-days {
		font-size: 0.84rem;
		letter-spacing: 0.12em;
	}

	.contact-page__schedule-hours {
		font-size: 1.18rem;
	}

	.contact-page__visit-title {
		font-size: 1.56rem;
	}

	.contact-page__address {
		font-size: 0.96rem;
	}
}

@media (max-width: 600px) {
	.contact-page__backdrop {
		padding-block: 1.4rem;
	}

	.contact-page__card--schedule {
		padding: 1.1rem 1rem 1.2rem;
	}

	.contact-page__social-media,
	.contact-page__map-frame,
	.contact-page__map-frame iframe {
		min-height: 320px;
		height: 320px;
	}

	.contact-page__social-title,
	.contact-page__visit-title,
	.contact-page__address {
		padding-inline: 0.9rem;
	}
}
