/*
 * Unit17 Contact page (page-templates/contact.php).
 *
 * Layout only. Type, colour, buttons, cards, form fields and notices come from
 * u17-system.css — do not restyle them here.
 */

.u17-contact {
	font-family: var(--u17-font);
	font-weight: 300;
	color: var(--u17-text);
	background: var(--u17-white);
	overflow-x: clip;
}

.u17-contact *,
.u17-contact *::before,
.u17-contact *::after {
	box-sizing: border-box;
}

.u17-contact p {
	margin-top: 0;
}

/* ============================================================ header */
.u17-contact__hero {
	align-items: flex-end;
	min-height: clamp(300px, 34vw, 440px);
	background: var(--u17-ink);
	--u17-photo-scrim:
		linear-gradient(180deg, rgba(0, 0, 0, 0.1) 0%, rgba(0, 0, 0, 0.35) 45%, rgba(0, 0, 0, 0.85) 100%),
		linear-gradient(90deg, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0) 65%);
}

.u17-contact__hero-img {
	object-position: 30% 50%;
}

.u17-contact__hero-inner {
	width: 100%;
	padding-block: 48px clamp(36px, 5vw, 60px);
}

.u17-contact__hero .u17-kicker {
	color: var(--u17-teal);
}

.u17-contact__title {
	margin-bottom: 14px;
	color: var(--u17-white);
}

.u17-contact__lead {
	max-width: 560px;
	margin: 0;
	font-weight: 300;
	color: rgba(255, 255, 255, 0.88);
}

/* ============================================================ ways + form */
.u17-contact__grid {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: clamp(40px, 6vw, 96px);
	align-items: start;
}

.u17-contact__list {
	margin: 36px 0 0;
	padding: 0;
	list-style: none;
}

.u17-contact__item {
	display: grid;
	grid-template-columns: 40px 1fr;
	gap: 18px;
	padding: 24px 0;
	border-top: 1px solid var(--u17-line);
}

.u17-contact__item:last-child {
	border-bottom: 1px solid var(--u17-line);
}

.u17-contact__item svg {
	width: 32px;
	height: 32px;
	margin-top: 2px;
	fill: none;
	stroke: var(--u17-teal-text);
	stroke-width: 1.5;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.u17-contact__item .u17-heading--card {
	margin-bottom: 6px;
}

.u17-contact__value {
	margin: 0;
	font-size: 20px;
	font-weight: 400;
	line-height: 1.4;
	color: var(--u17-ink);
	overflow-wrap: anywhere;
}

.u17-contact__value a {
	color: inherit;
	text-decoration: none;
	border-bottom: 1px solid var(--u17-teal);
}

.u17-contact__value a:hover {
	color: var(--u17-teal-text);
}

.u17-contact__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 22px;
	margin: 14px 0 0;
}

.u17-contact__note {
	margin: 6px 0 0;
	font-size: var(--u17-fs-small);
	color: var(--u17-muted);
}

/* the form sits on a paper card so it reads as one task */
.u17-contact__form {
	padding: clamp(24px, 4vw, 48px);
	background: var(--u17-paper);
	border-top: 3px solid var(--u17-teal);
}

.u17-contact__form-title {
	font-size: clamp(26px, 2.6vw, 34px);
}

/* ============================================================ help links */
.u17-contact__help-head {
	max-width: 760px;
	margin-bottom: clamp(32px, 4vw, 48px);
}

.u17-contact__help-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--u17-space-4);
}

.u17-contact__help-card {
	position: relative;
	display: block;
	padding-bottom: 64px;
	text-decoration: none;
}

.u17-contact__go {
	position: absolute;
	left: 28px;
	bottom: 28px;
	font-size: 22px;
	color: var(--u17-teal-text);
	transition: transform var(--u17-fast);
}

.u17-contact__help-card:hover .u17-contact__go,
.u17-contact__help-card:focus-visible .u17-contact__go {
	transform: translateX(6px);
}

/* ============================================================ social */
.u17-contact__social {
	padding-block: clamp(40px, 5vw, 64px);
}

.u17-contact__social-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 24px 48px;
}

.u17-contact__social-text {
	margin: 0;
	font-size: clamp(20px, 2vw, 26px);
	font-weight: 300;
	line-height: 1.35;
	color: var(--u17-white);
}

/* ============================================================ responsive */
@media (max-width: 1024px) {
	.u17-contact__grid {
		grid-template-columns: 1fr;
	}

	.u17-contact__list {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 0 24px;
	}

	.u17-contact__item,
	.u17-contact__item:last-child {
		grid-template-columns: 1fr;
		gap: 10px;
		border-bottom: 1px solid var(--u17-line);
	}
}

@media (max-width: 767px) {
	.u17-contact__list,
	.u17-contact__help-grid {
		grid-template-columns: 1fr;
	}

	.u17-contact__item,
	.u17-contact__item:last-child {
		grid-template-columns: 40px 1fr;
		gap: 16px;
		border-bottom: 0;
	}

	.u17-contact__item:last-child {
		border-bottom: 1px solid var(--u17-line);
	}

	.u17-contact__hero-img {
		object-position: 12% 50%;
	}

	.u17-contact__form {
		margin-inline: calc(-1 * var(--u17-gutter));
	}

	.u17-contact__social-inner > .u17-actions {
		width: 100%;
	}
}
