.contact {
	background: var(--ink);
	color: #fff;
	padding: 48px var(--pad) 72px;
	display: grid;
	gap: 40px;
}

.contact h1 {
	font-size: clamp(56px, 10vw, 104px);
	line-height: 0.95;
	letter-spacing: -0.05em;
	font-weight: 600;
}

.contact__intro { display: flex; flex-direction: column; gap: 22px; }
.contact__intro > p { font-size: 18px; line-height: 1.5; color: #bdbdbd; }

.contact__photo { margin: 8px 0 0; border-radius: var(--radius); overflow: hidden; height: 280px; position: relative; }
.contact__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
.contact__place { font-size: 15px; color: #8a8a8f; }

.contact__form { display: flex; flex-direction: column; gap: 28px; }
.form-grid { display: grid; gap: 24px; }

.field { display: flex; flex-direction: column; gap: 8px; font-size: 14px; color: #bdbdbd; }
.field input,
.field textarea {
	width: 100%;
	font-family: inherit;
	font-size: 18px;
	color: #fff;
	background: transparent;
	border: 0;
	border-bottom: 1px solid #444;
	border-radius: 0;
	padding: 10px 0;
	min-height: 48px;
}
.field textarea { resize: vertical; min-height: 120px; }
.field input:focus,
.field textarea:focus { outline: none; border-bottom-color: var(--accent); }

.choices { border: 0; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.choices legend { font-size: 14px; color: #bdbdbd; padding: 0; }
.choices__list { display: flex; flex-wrap: wrap; gap: 10px; }
.choice {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	border: 1px solid #444;
	border-radius: 999px;
	padding: 10px 16px;
	font-size: 15px;
	min-height: 44px;
	cursor: pointer;
}
.choice:has(input:checked) { border-color: var(--accent); }
.choice input { accent-color: var(--accent); }

.contact .wpcf7 { min-width: 0; }
.contact .field .wpcf7-form-control-wrap,
.contact .choices .wpcf7-form-control-wrap { display: block; }
.contact .wpcf7-checkbox,
.contact .choices__list { display: flex; flex-wrap: wrap; gap: 10px; }
.contact .wpcf7-list-item { display: inline-flex; margin: 0; }
.contact .wpcf7-list-item label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	border: 1px solid #444;
	border-radius: 999px;
	padding: 10px 16px;
	font-size: 15px;
	min-height: 44px;
	cursor: pointer;
	color: #fff;
}
.contact .wpcf7-list-item label:has(input:checked) { border-color: var(--accent); }
.contact .wpcf7-list-item input { accent-color: var(--accent); width: auto; min-height: 0; border: 0; padding: 0; }
.contact .wpcf7-not-valid-tip { color: var(--blush); font-size: 13px; display: block; margin-top: 6px; }
.contact .field .wpcf7-not-valid { border-bottom-color: var(--accent); }

.contact__submit { display: flex; align-items: center; gap: 16px; }
.contact__submit .btn { flex: 1 1 auto; font-family: inherit; }
.contact .wpcf7-spinner { margin: 0; }

.contact .wpcf7 form .wpcf7-response-output {
	order: -1;
	margin: 0;
	padding: 14px 16px;
	border: 0;
	border-radius: 12px;
	background: rgba(255, 255, 255, 0.08);
	color: #fff;
}
.contact .wpcf7 form.sent .wpcf7-response-output,
.contact .wpcf7 form.failed .wpcf7-response-output { background: rgba(255, 255, 255, 0.14); }

.contact__legal { font-size: 14px; color: #8a8a8f; }
.contact__legal a { color: #fff; }

@media (min-width: 800px) {
	.form-grid { grid-template-columns: 1fr 1fr; gap: 28px; }
	.contact__submit .btn { flex: 0 0 auto; }
}

@media (min-width: 1100px) {
	.contact { grid-template-columns: 1fr 1.1fr; gap: 88px; padding: 110px var(--pad) 140px; }
	.contact__intro > p { font-size: 21px; }
	.contact__photo { height: 380px; }
}
