/* ============================================================================
   Contact page — form panel + details aside
   ============================================================================ */

.contact__grid {
	align-items: start;
	gap: clamp(var(--space-6), 4vw, var(--space-8));
}

/* ---- Form panel ---------------------------------------------------------- */
.contact__form-panel {
	padding: clamp(var(--space-5), 4vw, var(--space-7));
	background: var(--bg-surface);
	border: var(--border-hairline) solid var(--border-default);
	border-radius: var(--radius-xl);
	box-shadow: var(--shadow-sm);
}

.contact__panel-title {
	margin: 0 0 var(--space-6);
	font-family: var(--font-display);
	font-size: var(--fs-h3);
	font-weight: var(--fw-semibold);
	letter-spacing: var(--tracking-snug);
	color: var(--text-primary);
}

.contact-form .form-actions {
	margin-top: var(--space-6);
}

.contact-form .btn svg {
	transition: transform var(--dur-base) var(--ease-out);
}

.contact-form .btn:hover svg {
	transform: translateX(4px);
}

.contact-form__note {
	margin-top: var(--space-4);
}

/* Honeypot — visually hidden, off-screen (not display:none so bots still see it) */
.abs-hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* Success/error banner spacing */
.contact__form-panel .form-message {
	margin-bottom: var(--space-6);
	padding: var(--space-4) var(--space-5);
	border-radius: var(--radius-md);
	background: var(--bg-page);
	border: var(--border-hairline) solid var(--border-default);
}

.contact__form-panel .form-message-success {
	border-color: color-mix(in srgb, var(--color-success) 40%, var(--border-default));
	background: color-mix(in srgb, var(--color-success) 8%, var(--bg-page));
}

.contact__form-panel .form-message-error {
	border-color: color-mix(in srgb, var(--color-error) 40%, var(--border-default));
	background: color-mix(in srgb, var(--color-error) 8%, var(--bg-page));
}

/* ---- Details aside ------------------------------------------------------- */
.contact__aside {
	display: grid;
	gap: var(--grid-gap);
}

@media (min-width: 1024px) {
	.contact__aside {
		position: sticky;
		top: calc(var(--header-height) + var(--space-5));
	}
}

.contact-card {
	padding: clamp(var(--space-5), 3vw, var(--space-6));
	background: var(--bg-surface);
	border: var(--border-hairline) solid var(--border-default);
	border-radius: var(--radius-lg);
}

.contact-card--steps {
	background: var(--bg-page);
}

.contact-card__title {
	margin: 0 0 var(--space-5);
	font-family: var(--font-display);
	font-size: var(--fs-h4);
	font-weight: var(--fw-semibold);
	color: var(--text-primary);
}

.contact-card__subtitle {
	margin: 0 0 var(--space-4);
	font-family: var(--font-display);
	font-size: var(--fs-body);
	font-weight: var(--fw-semibold);
	letter-spacing: var(--tracking-wide);
	text-transform: uppercase;
	color: var(--text-muted);
}

/* Contact list */
.contact-list {
	display: grid;
	gap: var(--space-4);
	margin: 0;
	padding: 0;
	list-style: none;
	max-inline-size: none;
}

.contact-list__item {
	display: flex;
	align-items: center;
	gap: var(--space-4);
}

.contact-list__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	inline-size: 44px;
	block-size: 44px;
	flex-shrink: 0;
	border-radius: var(--radius-md);
	background: var(--accent-wash);
	color: var(--accent-strong);
}

.contact-list__meta {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-inline-size: 0;
}

.contact-list__label {
	font-size: var(--fs-caption);
	letter-spacing: var(--tracking-wide);
	text-transform: uppercase;
	color: var(--text-muted);
}

.contact-list__meta a {
	color: var(--text-primary);
	text-decoration: none;
	font-weight: var(--fw-medium);
	word-break: break-word;
}

.contact-list__meta a:hover {
	color: var(--accent-strong);
}

/* What happens next */
.contact-steps {
	display: grid;
	gap: var(--space-4);
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: none;
	max-inline-size: none;
}

.contact-step {
	display: flex;
	align-items: flex-start;
	gap: var(--space-3);
	font-size: var(--fs-body-sm);
	line-height: var(--lh-body);
	color: var(--text-secondary);
}

.contact-step__no {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	inline-size: 26px;
	block-size: 26px;
	flex-shrink: 0;
	border-radius: var(--radius-pill);
	background: var(--color-ink);
	color: var(--color-paper);
	font-family: var(--font-display);
	font-size: var(--fs-caption);
	font-weight: var(--fw-semibold);
}
