.contact-page main,
.contact-page {
	background-color: var(--color-bg);
}
.section-hero-contact {
	padding-top: calc(var(--space-20)+var(--nav-height));
	background:
		radial-gradient(circle at 0 0, rgba(192, 146, 68, 0.15), transparent 55%),
		radial-gradient(
			circle at 100% 100%,
			rgba(123, 49, 72, 0.18),
			transparent 55%
		);
}
.contact-hero-layout {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 1.1fr);
	gap: var(--space-12);
	align-items: center;
}
.contact-hero-copy .tagline {
	margin-bottom: var(--space-4);
}
.contact-hero-meta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
	margin-top: var(--space-4);
	margin-bottom: var(--space-5);
}
.contact-hero-ctas {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-4);
	margin-bottom: var(--space-4);
}
.contact-hero-ctas .btn-outline {
	padding-left: var(--space-5);
	padding-right: var(--space-5);
}
.contact-hero-links {
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
	font-size: var(--font-size-sm);
}
.contact-link {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--color-heading);
}
.contact-link::after {
	content: "";
	width: 28px;
	height: 1px;
	background: linear-gradient(
		90deg,
		var(--color-primary),
		var(--color-secondary)
	);
	transform-origin: left;
	transform: scaleX(0);
	transition: transform var(--transition-base);
}
.contact-link:hover::after {
	transform: scaleX(1);
}
.contact-hero-panel {
	padding: var(--space-7);
	display: flex;
	flex-direction: column;
	gap: var(--space-6);
}
.contact-panel-group {
	display: grid;
	grid-template-columns: 1.1fr 1.1fr;
	gap: var(--space-6);
}
.contact-panel-item .contact-panel-main {
	display: inline-block;
	margin-top: var(--space-2);
	margin-bottom: var(--space-2);
	font-family: var(--font-sans);
	font-size: var(--font-size-lg);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--color-heading);
}
.contact-panel-sub {
	font-size: var(--font-size-sm);
	margin-bottom: 0;
}
.contact-panel-divider {
	height: 1px;
	background: linear-gradient(
		90deg,
		rgba(192, 146, 68, 0.2),
		rgba(123, 49, 72, 0.3)
	);
}
.contact-offline-note {
	padding: var(--space-4);
	border-radius: var(--radius-lg);
	border: 1px dashed rgba(192, 146, 68, 0.6);
	background: rgba(248, 244, 238, 0.95);
	font-size: var(--font-size-sm);
}
.contact-location-layout {
	display: grid;
	grid-template-columns: minmax(0, 1.3fr) minmax(0, 1.1fr);
	gap: var(--space-10);
	align-items: center;
}
.contact-address {
	display: grid;
	grid-template-columns: 0.9fr 1.1fr;
	gap: var(--space-6);
	margin-top: var(--space-5);
}
.contact-address-main h3 {
	margin-bottom: var(--space-3);
}
.contact-address-details > div + div {
	margin-top: var(--space-4);
}
.contact-location-visual {
	position: relative;
	min-height: 320px;
}
.contact-location-photo {
	position: absolute;
	border-radius: var(--radius-xl);
	box-shadow: var(--shadow-lg);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}
.contact-location-photo-main {
	top: 0;
	right: 5%;
	left: 10%;
	height: 65%;
	background-image:
		linear-gradient(120deg, rgba(11, 7, 3, 0.35), rgba(11, 7, 3, 0.05));
}
.contact-location-photo-secondary {
	bottom: 0;
	right: 0;
	width: 60%;
	height: 55%;
	background-image:
		linear-gradient(120deg, rgba(11, 7, 3, 0.4), rgba(11, 7, 3, 0.15));
	transform: translateY(12%);
}
.contact-form-header {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: var(--space-10);
	margin-bottom: var(--space-8);
}
.contact-form-aside {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	max-width: 260px;
}
.contact-form-card {
	margin: 0 auto;
	margin-top: 0;
}
.contact-form {
	display: flex;
	flex-direction: column;
	gap: var(--space-6);
}
.contact-form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-6);
}
.contact-form-footer {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	margin-top: var(--space-2);
}
.contact-form-consent {
	max-width: 44rem;
}
.contact-checkbox {
	display: flex;
	align-items: flex-start;
	gap: var(--space-3);
	font-size: var(--font-size-sm);
}
.contact-checkbox input[type="checkbox"] {
	width: auto;
	margin-top: 4px;
	flex-shrink: 0;
}
.contact-form-actions {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}
.contact-form-note {
	font-size: var(--font-size-xs);
	margin-bottom: 0;
	color: rgba(96, 91, 86, 0.9);
}
.contact-form-status,
.contact-newsletter-status {
	font-size: var(--font-size-sm);
	min-height: 1.2em;
}
.contact-info-section .contact-info-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-10);
}
.contact-highlight {
	margin-top: var(--space-4);
	padding-top: var(--space-4);
	border-top: 1px solid rgba(217, 206, 195, 0.9);
}
.contact-highlight-main {
	display: inline-block;
	font-family: var(--font-sans);
	font-size: var(--font-size-2xl);
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--color-heading);
	margin-bottom: var(--space-2);
}
.contact-highlight-sub {
	margin-bottom: 0;
	font-size: var(--font-size-sm);
}
.contact-hours-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.1fr);
	gap: var(--space-8);
	align-items: flex-start;
}
.contact-hours-list {
	display: grid;
	gap: var(--space-3);
	margin-top: var(--space-4);
	margin-bottom: var(--space-4);
}
.contact-hours-list dt {
	font-family: var(--font-sans-alt);
	font-size: var(--font-size-sm);
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: rgba(96, 91, 86, 0.9);
}
.contact-hours-list dd {
	margin: 0;
	font-family: var(--font-sans);
	font-size: var(--font-size-lg);
	color: var(--color-heading);
}
.contact-hours-note {
	margin-bottom: 0;
	font-size: var(--font-size-sm);
}
.contact-offline-card .btn {
	margin-top: var(--space-4);
}
.contact-bullets {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	margin-top: var(--space-4);
}
.contact-bullets p {
	margin-bottom: 0;
	font-size: var(--font-size-sm);
}
.contact-access-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 1.15fr);
	gap: var(--space-8);
}
.contact-privacy-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(0, 1.1fr);
	gap: var(--space-10);
	align-items: flex-start;
}
.contact-legal-links {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-4);
	margin-top: var(--space-5);
}
.contact-quick-links .contact-link {
	margin-top: var(--space-3);
}
.contact-online-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(0, 1.1fr);
	gap: var(--space-10);
	align-items: stretch;
}
.contact-social-links {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
	margin-top: var(--space-4);
}
.contact-social-pill {
	padding: 8px 18px;
	border-radius: var(--radius-pill);
	border: 1px solid rgba(192, 146, 68, 0.7);
	background: rgba(248, 244, 238, 0.9);
	font-size: var(--font-size-xs);
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--color-heading);
	transition:
		background var(--transition-base),
		transform var(--transition-base),
		box-shadow var(--transition-base);
}
.contact-social-pill:hover {
	background: #fff;
	transform: translateY(-1px);
	box-shadow: var(--shadow-sm);
}
.contact-newsletter-card {
	max-width: 520px;
	margin-left: auto;
}
.contact-newsletter-form {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	margin-top: var(--space-3);
}
.contact-newsletter-form .btn {
	align-self: flex-start;
}
@media (max-width: 1200px) {
	.contact-hero-layout {
		grid-template-columns: minmax(0, 1.2fr) minmax(0, 1.1fr);
	}
	.contact-panel-group {
		grid-template-columns: 1fr;
	}
	.contact-location-layout {
		grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
	}
	.contact-address {
		grid-template-columns: 1fr;
	}
	.contact-online-grid {
		grid-template-columns: 1.1fr 1fr;
	}
}
@media (max-width: 992px) {
	.contact-hero-layout {
		grid-template-columns: 1fr;
		gap: var(--space-8);
	}
	.contact-hero-panel {
		order: -1;
	}
	.contact-location-layout {
		grid-template-columns: 1fr;
	}
	.contact-info-section .contact-info-grid,
	.contact-hours-grid,
	.contact-access-grid,
	.contact-privacy-grid,
	.contact-online-grid {
		grid-template-columns: 1fr;
	}
	.contact-newsletter-card {
		max-width: none;
		margin-left: 0;
	}
	.contact-location-visual {
		order: -1;
		min-height: 260px;
		margin-bottom: var(--space-4);
	}
}
@media (max-width: 768px) {
	.section-hero-contact {
		padding-top: calc(var(--space-16)+var(--nav-height));
	}
	.contact-form-grid {
		grid-template-columns: 1fr;
	}
	.contact-form-header {
		flex-direction: column;
		gap: var(--space-6);
	}
	.contact-form-aside {
		max-width: none;
	}
	.contact-hero-ctas {
		flex-direction: column;
		align-items: flex-start;
	}
	.contact-location-photo-main {
		left: 5%;
		right: 15%;
		height: 60%;
	}
	.contact-location-photo-secondary {
		width: 70%;
		height: 52%;
	}
	.contact-hero-panel {
		padding: var(--space-6);
	}
}
@media (max-width: 480px) {
	.contact-highlight-main {
		font-size: var(--font-size-xl);
		letter-spacing: 0.12em;
	}
	.contact-panel-item .contact-panel-main {
		font-size: var(--font-size-md);
	}
	.contact-location-visual {
		min-height: 220px;
	}
}
