/**
 * Contact page — sparse typographic composition over a full-bleed interior.
 */

.site-main--contact {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	padding: 0;
	background: var(--color-surface);
}

.contact-page {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	display: flex;
	flex: 1 1 auto;
	align-items: center;
	justify-content: center;
	min-height: max(32rem, calc(100vh - 11rem));
	padding:
		clamp(var(--space-7), 8vh, var(--space-8))
		var(--layout-inline-space)
		clamp(var(--space-8), 10vh, 5rem);
}

.contact-page__media {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	overflow: hidden;
}

.contact-page__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 35% center;
	transform: scale(1.04);
	animation: contact-media-in 1.1s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.contact-page__veil {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(
			to left,
			color-mix(in srgb, var(--color-surface) 94%, transparent) 0%,
			color-mix(in srgb, var(--color-surface) 86%, transparent) 34%,
			color-mix(in srgb, var(--color-surface) 42%, transparent) 62%,
			color-mix(in srgb, var(--color-surface) 8%, transparent) 100%
		);
	animation: contact-veil-in 900ms cubic-bezier(0.22, 1, 0.36, 1) 80ms both;
}

html[dir="ltr"] .contact-page__veil {
	background:
		linear-gradient(
			to right,
			color-mix(in srgb, var(--color-surface) 94%, transparent) 0%,
			color-mix(in srgb, var(--color-surface) 86%, transparent) 34%,
			color-mix(in srgb, var(--color-surface) 42%, transparent) 62%,
			color-mix(in srgb, var(--color-surface) 8%, transparent) 100%
		);
}

html[dir="ltr"] .contact-page__img {
	object-position: 65% center;
}

.contact-page__stage {
	position: relative;
	z-index: 1;
	width: min(100%, 34rem);
	display: grid;
	gap: clamp(var(--space-6), 4vw, var(--space-7));
	justify-items: start;
	margin-inline-end: auto;
	animation: contact-rise 720ms cubic-bezier(0.22, 1, 0.36, 1) 120ms both;
}

.contact-page__intro {
	display: grid;
	gap: var(--space-3);
	max-width: 28rem;
}

.contact-page__eyebrow {
	margin: 0;
	font-family: var(--font-sans);
	font-size: var(--text-xs);
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--color-primary);
}

.contact-page__title {
	margin: 0;
	font-family: var(--font-display);
	font-size: clamp(2.75rem, 8vw, 4.25rem);
	font-weight: 700;
	line-height: 1.02;
	letter-spacing: -0.03em;
	color: var(--color-ink);
}

.contact-page__lede {
	margin: var(--space-1) 0 0;
	max-width: 22rem;
	font-size: var(--text-md);
	line-height: 1.55;
	color: var(--color-text-muted);
}

.contact-page__channels {
	margin: 0;
	padding: 0;
	list-style: none;
	width: 100%;
	display: grid;
	gap: 0;
	border-block: 1px solid color-mix(in srgb, var(--color-border) 75%, transparent);
	background: color-mix(in srgb, var(--color-surface) 55%, transparent);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	padding-inline: var(--space-4);
	border-radius: var(--radius-subtle);
}

.contact-page__channel {
	display: grid;
	gap: var(--space-1);
	padding-block: var(--space-4);
	animation: contact-rise 720ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.contact-page__channel + .contact-page__channel {
	border-top: 1px solid color-mix(in srgb, var(--color-border) 70%, transparent);
}

.contact-page__channel--email {
	animation-delay: 180ms;
}

.contact-page__channel--phone {
	animation-delay: 240ms;
}

.contact-page__channel--whatsapp {
	animation-delay: 300ms;
}

.contact-page__label {
	font-size: var(--text-xs);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--color-text-muted);
}

.contact-page__value {
	font-family: var(--font-display);
	font-size: clamp(1.25rem, 2.8vw, 1.65rem);
	font-weight: 600;
	line-height: 1.25;
	letter-spacing: -0.015em;
	color: var(--color-ink);
	text-decoration: none;
	transition:
		color var(--motion-icon-duration) var(--motion-icon-ease-out),
		transform var(--motion-icon-duration) var(--motion-icon-ease-out);
}

.contact-page__value:hover,
.contact-page__value:focus-visible {
	color: var(--color-primary);
}

.contact-page__value:hover {
	transform: translateX(-0.15rem);
}

html[dir="ltr"] .contact-page__value:hover {
	transform: translateX(0.15rem);
}

.contact-page__hours {
	margin: 0;
	display: grid;
	gap: 0.2rem;
	font-size: var(--text-sm);
	line-height: 1.45;
	color: var(--color-text-muted);
	animation: contact-rise 720ms cubic-bezier(0.22, 1, 0.36, 1) 340ms both;
}

.contact-page__hours-label {
	font-size: var(--text-xs);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--color-text-muted) 80%, var(--color-ink));
}

.contact-page__hours-value {
	color: var(--color-text);
}

.contact-page__social {
	padding-top: var(--space-2);
	animation: contact-rise 720ms cubic-bezier(0.22, 1, 0.36, 1) 400ms both;
}

.contact-page__social-list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

.contact-page__social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	inline-size: 2.75rem;
	block-size: 2.75rem;
	border: 1px solid color-mix(in srgb, var(--color-border) 80%, transparent);
	border-radius: 999px;
	color: var(--color-ink);
	background: color-mix(in srgb, var(--color-surface) 70%, transparent);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	transition:
		color var(--motion-icon-duration) var(--motion-icon-ease-out),
		border-color var(--motion-icon-duration) var(--motion-icon-ease-out),
		background-color var(--motion-icon-duration) var(--motion-icon-ease-out),
		transform var(--motion-icon-duration) var(--motion-icon-ease);
}

.contact-page__social-link:hover,
.contact-page__social-link:focus-visible {
	color: var(--color-primary);
	border-color: color-mix(in srgb, var(--color-primary) 35%, var(--color-border));
	background: color-mix(in srgb, var(--color-primary) 6%, var(--color-surface));
	transform: scale(var(--motion-icon-scale-hover));
}

.contact-page__social-link:active {
	transform: scale(var(--motion-icon-scale-press));
}

@keyframes contact-rise {
	from {
		opacity: 0;
		transform: translateY(0.85rem);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes contact-media-in {
	from {
		opacity: 0;
		transform: scale(1.08);
	}
	to {
		opacity: 1;
		transform: scale(1.04);
	}
}

@keyframes contact-veil-in {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

@media (prefers-reduced-motion: reduce) {
	.contact-page__stage,
	.contact-page__channel,
	.contact-page__hours,
	.contact-page__social,
	.contact-page__img,
	.contact-page__veil {
		animation: none;
	}

	.contact-page__img {
		transform: none;
	}

	.contact-page__value:hover,
	html[dir="ltr"] .contact-page__value:hover,
	.contact-page__social-link:hover,
	.contact-page__social-link:focus-visible,
	.contact-page__social-link:active {
		transform: none;
	}
}

@media (max-width: 719px) {
	.contact-page__veil {
		background:
			linear-gradient(
				to top,
				color-mix(in srgb, var(--color-surface) 96%, transparent) 0%,
				color-mix(in srgb, var(--color-surface) 88%, transparent) 42%,
				color-mix(in srgb, var(--color-surface) 48%, transparent) 72%,
				color-mix(in srgb, var(--color-surface) 18%, transparent) 100%
			);
	}

	.contact-page__img {
		object-position: center 30%;
	}

	.contact-page__stage {
		width: min(100%, 26rem);
		margin-inline: 0;
		align-self: end;
	}
}

@media (min-width: 720px) {
	.contact-page {
		justify-content: flex-start;
	}

	.contact-page__stage {
		width: min(100%, 38rem);
		margin-inline-start: clamp(0rem, 4vw, 3rem);
	}
}

@media (min-width: 1100px) {
	.contact-page__img {
		object-position: 28% center;
	}

	html[dir="ltr"] .contact-page__img {
		object-position: 72% center;
	}
}
