/**
 * Contact page — aligned with À propos / Galerie visual language.
 *
 * @package TheSistersOffroad
 */

.tso-contact-page {
	--bg: #100a07;
	--card: #1b130e;
	--card-2: #261910;
	--text: #fff7ef;
	--muted: rgba(255, 247, 239, 0.78);
	--line: rgba(232, 93, 4, 0.3);
	--accent: #e85d04;
	background: radial-gradient(circle at 14% 0%, rgba(232, 93, 4, 0.18), transparent 42%),
		linear-gradient(175deg, #120c08 0%, #18110d 48%, #0f0906 100%);
	color: var(--text);
	width: 100%;
	max-width: 100%;
	margin-left: 0;
	margin-right: 0;
}

.tso-contact-page .tso-wrap {
	max-width: 1240px;
	margin: 0 auto;
	padding: 0 1.2rem;
}

/* Hero */
.tso-contact-hero {
	padding: clamp(4rem, 9vw, 7.5rem) 0 clamp(2rem, 5vw, 3.2rem);
	background: radial-gradient(ellipse 70% 50% at 10% 0%, rgba(232, 93, 4, 0.14), transparent 55%),
		radial-gradient(ellipse 55% 45% at 92% 8%, rgba(232, 93, 4, 0.1), transparent 50%);
}

.tso-contact-eyebrow {
	margin: 0 0 0.75rem;
	color: var(--accent);
	font-size: 0.74rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.tso-contact-title {
	margin: 0;
	font-size: clamp(2.35rem, 7.5vw, 5.2rem);
	line-height: 0.92;
	text-transform: uppercase;
}

.tso-contact-title .accent {
	color: var(--accent);
}

.tso-contact-lead {
	margin: 1rem 0 0;
	max-width: 46rem;
	color: var(--muted);
	font-size: clamp(1rem, 2vw, 1.15rem);
	line-height: 1.65;
}

/* Main grid */
.tso-contact-main {
	padding: 0 0 clamp(2.5rem, 5vw, 4rem);
}

.tso-contact-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.15rem;
	align-items: stretch;
}

.tso-contact-panel {
	display: flex;
	flex-direction: column;
	min-height: 100%;
	background: linear-gradient(180deg, #1a120d, var(--card));
	border: 1px solid var(--line);
	border-radius: 14px;
	padding: clamp(1.15rem, 2.4vw, 1.85rem);
}

.tso-contact-panel > h2 {
	margin: 0 0 1rem;
	font-size: clamp(1.15rem, 2.6vw, 1.65rem);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	line-height: 1.15;
}

/* Info rows */
.tso-contact-info-list {
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
	flex: 1;
}

.tso-contact-info {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 0.85rem 1rem;
	align-items: start;
	padding: 0.85rem 0.95rem;
	border: 1px solid var(--line);
	border-radius: 10px;
	background: rgba(0, 0, 0, 0.22);
}

.tso-contact-info__icon {
	width: 2.35rem;
	height: 2.35rem;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 8px;
	background: rgba(232, 93, 4, 0.12);
	border: 1px solid rgba(232, 93, 4, 0.35);
	font-size: 1.05rem;
	line-height: 1;
}

.tso-contact-info__label {
	display: block;
	margin: 0 0 0.25rem;
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--accent);
}

.tso-contact-info__body {
	margin: 0;
	color: var(--muted);
	font-size: 0.95rem;
	line-height: 1.55;
}

.tso-contact-info__body a {
	color: var(--text);
	text-decoration: none;
	border-bottom: 1px solid rgba(232, 93, 4, 0.45);
	transition: color 0.15s ease, border-color 0.15s ease;
}

.tso-contact-info__body a:hover,
.tso-contact-info__body a:focus-visible {
	color: #fff;
	border-bottom-color: var(--accent);
}

/* Form column */
.tso-contact-form-column {
	flex: 1;
	display: flex;
	flex-direction: column;
	min-height: 0;
}

.tso-contact-form-intro {
	margin: 0 0 0.85rem;
	color: var(--muted);
	font-size: 0.92rem;
	line-height: 1.55;
}

.tso-contact-form {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 0.7rem;
	min-height: 0;
}

.tso-contact-form__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.7rem;
}

.tso-contact-form label {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(255, 247, 239, 0.55);
}

.tso-contact-form input,
.tso-contact-form textarea {
	width: 100%;
	box-sizing: border-box;
	background: rgba(0, 0, 0, 0.35);
	border: 1px solid var(--line);
	color: var(--text);
	padding: 0.78rem 0.85rem;
	font: inherit;
	font-size: 0.95rem;
	font-weight: 400;
	text-transform: none;
	letter-spacing: normal;
	border-radius: 8px;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.tso-contact-form input::placeholder,
.tso-contact-form textarea::placeholder {
	color: rgba(255, 247, 239, 0.38);
	text-transform: none;
	letter-spacing: normal;
}

.tso-contact-form textarea {
	flex: 1;
	min-height: 150px;
	resize: vertical;
	line-height: 1.5;
}

.tso-contact-form label.tso-contact-form__field--stretch {
	flex: 1;
	display: flex;
	flex-direction: column;
	min-height: 0;
}

.tso-contact-form input:focus,
.tso-contact-form textarea:focus {
	outline: none;
	border-color: rgba(232, 93, 4, 0.65);
	box-shadow: 0 0 0 1px rgba(232, 93, 4, 0.2);
}

.tso-contact-form__submit {
	margin-top: auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 0.88rem 1.2rem;
	border: 1px solid var(--accent);
	background: linear-gradient(135deg, #e85d04, #c94d06);
	color: #1a0e07;
	font-weight: 700;
	font-size: 0.82rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	cursor: pointer;
	border-radius: 8px;
	transition: filter 0.15s ease, transform 0.1s ease;
}

.tso-contact-form__submit:hover {
	filter: brightness(1.06);
}

.tso-contact-form__submit:active {
	transform: translateY(1px);
}

/* Map */
.tso-contact-map {
	margin-top: 1.15rem;
	border: 1px solid var(--line);
	border-radius: 14px;
	overflow: hidden;
	background: var(--card-2);
}

.tso-contact-map__head {
	padding: 0.65rem 1rem;
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--accent);
	border-bottom: 1px solid var(--line);
	background: rgba(0, 0, 0, 0.2);
}

.tso-contact-map iframe {
	width: 100%;
	height: min(52vw, 420px);
	border: 0;
	display: block;
}

@media (max-width: 960px) {
	.tso-contact-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 640px) {
	.tso-contact-form__row {
		grid-template-columns: 1fr;
	}
}
