/* Contact block */



.ws-contact {

	position: relative;

	z-index: 2;

	overflow: visible;

	padding: clamp(64px, 10vw, 120px) 0;

	background: var(--ws-white);

}



/* Decoration — mobile only, top-right between blocks */

.ws-contact-deco {

	display: none;

}



.ws-contact-inner {

	display: grid;

	grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);

	gap: clamp(40px, 6vw, 80px);

	align-items: start;

}



.ws-contact-subtitle {

	margin: 0 0 20px;

	font-size: 0.75rem;

	font-weight: 600;

	line-height: 1.2;

	letter-spacing: 0.14em;

	text-transform: uppercase;

	color: var(--ws-black);

}



.ws-contact-title {

	margin: 0 0 clamp(20px, 3vw, 28px);

	font-size: clamp(2rem, 4.5vw, 3.5rem);

	font-weight: 700;

	line-height: 1.05;

	letter-spacing: -0.03em;

}



.ws-contact-title-dark {

	display: block;

	color: var(--ws-black);

}



.ws-contact-title-muted {

	display: block;

	color: var(--ws-gray);

}



.ws-contact-desc {

	margin: 0 0 clamp(28px, 4vw, 40px);

	max-width: 420px;

	font-size: 0.9375rem;

	line-height: 1.75;

	color: var(--ws-gray);

}



.ws-contact-details {

	list-style: none;

	margin: 0;

	padding: 0;

	display: flex;

	flex-direction: column;

	gap: 16px;

}



.ws-contact-detail {

	display: flex;

	align-items: flex-start;

	gap: 12px;

	font-size: 0.9375rem;

	line-height: 1.5;

	color: var(--ws-gray);

}



.ws-contact-detail--phone .ws-contact-detail-text {

	font-weight: 700;

	color: var(--ws-black);

	text-decoration: none;

}



.ws-contact-detail a.ws-contact-detail-text:hover {

	opacity: 0.7;

}



.ws-contact-detail-icon {

	flex-shrink: 0;

	color: var(--ws-gray);

	margin-top: 2px;

}



/* Form */

.ws-contact-form {

	display: flex;

	flex-direction: column;

	gap: clamp(36px, 4vw, 44px);

}



.ws-contact-fields--row {

	display: grid;

	grid-template-columns: repeat(2, minmax(0, 1fr));

	gap: clamp(28px, 3vw, 36px) 24px;

}



.ws-contact-field {

	display: flex;

	align-items: center;

	gap: 12px;

	border-bottom: 1px solid rgba(0, 0, 0, 0.2);

	padding-bottom: 14px;

}



.ws-contact-field-icon {

	flex-shrink: 0;

	color: var(--ws-black);

}



.ws-contact-field input,

.ws-contact-field textarea {

	width: 100%;

	border: none;

	background: transparent;

	padding: 0;

	font: inherit;

	font-size: 0.9375rem;

	color: var(--ws-black);

	outline: none;

}



.ws-contact-field input::placeholder,

.ws-contact-field textarea::placeholder {

	color: var(--ws-black);

}



.ws-contact-field--textarea {

	align-items: flex-start;

}



.ws-contact-field--textarea .ws-contact-field-icon {

	margin-top: 4px;

}



.ws-contact-field textarea {

	resize: vertical;

	min-height: 72px;

}



.ws-contact-form-foot {

	display: flex;

	flex-wrap: wrap;

	align-items: center;

	gap: 20px 28px;

	margin-top: 8px;

}



.ws-contact-submit {

	display: inline-flex;

	align-items: center;

	gap: 10px;

	padding: 14px 28px;

	border: none;

	border-radius: 0;

	background: var(--ws-black);

	color: var(--ws-white);

	font-size: 0.875rem;

	font-weight: 600;

	cursor: pointer;

	transition: opacity 0.25s ease;

}



.ws-contact-submit:hover {

	opacity: 0.85;

}



.ws-contact-submit--static {

	pointer-events: none;

}



.ws-contact-consent {

	display: inline-flex;

	align-items: flex-start;

	gap: 10px;

	font-size: 0.8125rem;

	line-height: 1.45;

	color: var(--ws-gray);

	cursor: pointer;

	max-width: 280px;

}



.ws-contact-consent input {

	margin-top: 3px;

	flex-shrink: 0;

}



.ws-contact-consent-text u {

	text-decoration: underline;

	text-underline-offset: 2px;

}



.ws-contact-notice {

	margin-bottom: 20px;

	padding: 12px 16px;

	font-size: 0.875rem;

	border-radius: 6px;

}



.ws-contact-notice--success {

	background: #edf7ed;

	color: #1e4620;

}



.ws-contact-notice--error {

	background: #fdecea;

	color: #611a15;

}



.ws-contact-form--preview .ws-contact-field span:last-child {

	color: var(--ws-black);

	font-size: 0.9375rem;

}



/* Mobile */

@media (max-width: 1023px) {

	.ws-contact-deco {

		display: block;

		position: absolute;

		top: 0;

		right: max(var(--ws-gutter), calc((100vw - var(--ws-container)) / 2 + var(--ws-gutter)));

		width: clamp(100px, 28vw, 160px);

		transform: translateY(-35%);

		pointer-events: none;

		z-index: 4;

	}



	.ws-contact-deco-inner {

		will-change: transform;

		transition: transform 0.08s linear;

	}



	.ws-contact-deco-img {

		width: 100%;

		height: auto;

		object-fit: contain;

	}



	.ws-contact-inner {

		grid-template-columns: 1fr;

		gap: 40px;

	}



	.ws-contact-fields--row {

		grid-template-columns: 1fr;

		gap: clamp(28px, 4vw, 36px);

	}



	.ws-contact-form-foot {

		flex-direction: column;

		align-items: flex-start;

	}

}



@media (prefers-reduced-motion: reduce) {

	.ws-contact-deco-inner {

		transition: none;

	}

}


