/*
 * Contact: info card grid, map with floating form card, form fields.
 */

/* ------------------------------------------------------- map + form */

.asli-contact-map {
	position: relative;
	border-radius: var(--asli-radius-card);
	overflow: hidden;
	min-height: 620px;
	display: grid;
}

.asli-contact-map__frame {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
	filter: saturate(0.85);
}

.asli-contact-map--no-map {
	min-height: 0;
	background: var(--asli-surface-alt);
}

.asli-contact-map__card {
	position: relative;
	z-index: 2;
	justify-self: end;
	align-self: center;
	width: min(480px, calc(100% - 2 * var(--asli-space-lg)));
	margin: var(--asli-space-2xl) var(--asli-space-2xl);
	background: var(--asli-surface);
	border-radius: var(--asli-radius-box);
	box-shadow: var(--asli-shadow-card-hover);
	padding: var(--asli-space-xl);
}

@media (max-width: 767px) {
	.asli-contact-map__card {
		margin: var(--asli-space-lg) auto;
		justify-self: center;
	}
}

/* ----------------------------------------------------------- the form */

.asli-form {
	display: grid;
	gap: var(--asli-space-md);
}

.asli-form__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--asli-space-md);
}

@media (max-width: 480px) {
	.asli-form__row {
		grid-template-columns: 1fr;
	}
}

.asli-form__field {
	display: grid;
	gap: var(--asli-space-2xs);
}

.asli-form__field input,
.asli-form__field select,
.asli-form__field textarea {
	width: 100%;
	padding: 0.75rem 1rem;
	border: 1px solid var(--asli-border);
	border-radius: var(--asli-radius-tile);
	background: var(--asli-surface-alt);
	font: inherit;
	color: var(--asli-ink);
}

.asli-form__field input:focus-visible,
.asli-form__field select:focus-visible,
.asli-form__field textarea:focus-visible {
	outline: 2px solid var(--asli-blue);
	outline-offset: 0;
	border-color: var(--asli-blue);
	background: var(--asli-surface);
}

.asli-form__error {
	color: #b3261e;
	font-size: var(--asli-text-meta);
	min-height: 1em;
}

.asli-form__status {
	font-weight: var(--asli-weight-medium);
	min-height: 1.5em;
	margin: 0;
}

.asli-form__status.is-success {
	color: #1b6e3c;
}

.asli-form__status.is-error {
	color: #b3261e;
}

/* Honeypot stays visually hidden but focusable-off for bots only. */
.asli-form__hp {
	position: absolute !important;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}
