.contact-hero {
	padding-top: var(--space-16);
}

.contact-hero-inner {
	display: grid;
	grid-template-columns: minmax(0, 3fr) minmax(0, 2.5fr);
	gap: var(--space-10);
	align-items: center;
}

@media (max-width: 900px) {
	.contact-hero-inner {
		grid-template-columns: minmax(0, 1fr);
	}
}

.contact-hero-text > p {
	max-width: 40rem;
}

.contact-hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
	margin-top: var(--space-5);
}

.contact-hero-meta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2);
	margin-top: var(--space-4);
}

.contact-hero-visual {
	min-height: 260px;
	background:
		radial-gradient(circle at top, rgba(15, 91, 76, 0.5) 0, transparent 55%),
		radial-gradient(
			circle at bottom,
			rgba(139, 30, 49, 0.5) 0,
			transparent 55%
		);
	position: relative;
}

.contact-hero-visual-overlay {
	position: relative;
	display: grid;
	gap: var(--space-3);
	padding: var(--space-4);
	background: linear-gradient(145deg, rgba(255, 255, 255, 0.9), rgba(252, 248, 240, 0.78));
	border-radius: var(--radius-lg);
}

.contact-hero-line {
	font-size: var(--font-size-sm);
	color: var(--color-text-muted);
}

.contact-info-grid {
	align-items: flex-start;
}

.contact-details,
.contact-hours-location {
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
}

.contact-detail-group {
	padding-bottom: var(--space-4);
	border-bottom: 1px solid var(--color-border-subtle);
}

.contact-detail-group:last-of-type {
	border-bottom: none;
	padding-bottom: 0;
}

.contact-detail-group h3 {
	font-size: var(--font-size-lg);
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.contact-channel {
	margin-top: var(--space-2);
}

.contact-link {
	display: inline-flex;
	font-weight: 500;
	color: var(--color-brass);
}

.contact-list {
	display: grid;
	gap: var(--space-2);
	margin-top: var(--space-3);
}

.contact-list li {
	display: flex;
	justify-content: space-between;
	gap: var(--space-4);
	font-size: var(--font-size-sm);
	color: var(--color-text-muted);
}

.contact-address {
	display: grid;
	gap: 2px;
	font-style: normal;
	font-size: var(--font-size-sm);
	color: var(--color-text-muted);
	margin-top: var(--space-3);
}

.contact-map-placeholder {
	margin-top: var(--space-3);
	border-radius: var(--radius-lg);
	border: 1px dashed rgba(210, 168, 105, 0.6);
	min-height: 180px;
	background:
		radial-gradient(circle at top, rgba(15, 91, 76, 0.3) 0, transparent 60%),
		radial-gradient(
			circle at bottom,
			rgba(139, 30, 49, 0.3) 0,
			transparent 60%
		),
		linear-gradient(135deg, #fffdf9, #f2ecdf);
}

.contact-map-cta {
	margin-top: var(--space-3);
}

.contact-form-card {
	max-width: 860px;
	margin-inline: auto;
}

.contact-form-header {
	margin-bottom: var(--space-6);
}

.contact-form-grid {
	margin-bottom: var(--space-4);
}

.form-field {
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
}

.form-field label {
	font-size: var(--font-size-sm);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--color-text);
}

.contact-form-footer {
	margin-top: var(--space-4);
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-4);
	align-items: center;
	justify-content: space-between;
}

.form-consent {
	display: flex;
	align-items: flex-start;
	gap: var(--space-2);
	max-width: 32rem;
	font-size: var(--font-size-sm);
	color: var(--color-text-muted);
}

.form-consent input[type="checkbox"] {
	width: auto;
	margin-top: 4px;
}

.contact-form-note {
	margin-top: var(--space-3);
	font-size: var(--font-size-xs);
	color: var(--color-text-muted);
}

@media (max-width: 768px) {
	.contact-form-footer {
		flex-direction: column;
		align-items: flex-start;
	}
}

.contact-team-grid {
	align-items: flex-start;
}

.contact-team,
.contact-links {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
}

.contact-links-list {
	display: grid;
	gap: var(--space-3);
}

.contact-link-large {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: var(--space-3);
	border-radius: var(--radius-md);
	background: rgba(255, 255, 255, 0.88);
	border: 1px solid rgba(175, 121, 53, 0.26);
	font-size: var(--font-size-sm);
}

.contact-link-large span:first-child {
	font-weight: 500;
	color: var(--color-text);
}

.contact-link-large span:last-child {
	color: var(--color-text-muted);
}

.contact-link-large:hover {
	border-color: rgba(175, 121, 53, 0.7);
	background: #fffaf1;
}

.contact-team-cta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
}

@media (max-width: 768px) {
	.contact-list li {
		flex-direction: column;
		align-items: flex-start;
	}
}
