

/* Contact page --------------------------------------------------------- */
.nss-contact-page {
	background: var(--wp--preset--color--background);
	color: var(--wp--preset--color--text);
}
.nss-contact-head {
	width: min(var(--nss-container), calc(100% - 32px));
	margin-inline: auto;
	padding-block: clamp(1.35rem, 3vw, 2.25rem) 1rem;
}
.nss-contact-head h1 {
	margin: 0.45rem 0 0;
	font-size: clamp(1.8rem, 3vw, 3rem);
	line-height: 1.08;
}
.nss-contact-hero {
	position: relative;
	width: 100%;
	height: 500px;
	background: #eef3f8;
	overflow: hidden;
}
.nss-contact-hero__map,
.nss-contact-hero__empty,
.nss-contact-hero__constructor,
.nss-contact-hero__constructor iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}
.nss-contact-hero__constructor script {
	display: block;
}
.nss-contact-hero__empty {
	background: linear-gradient(90deg, rgba(31, 94, 255, 0.12) 1px, transparent 1px), linear-gradient(0deg, rgba(21, 58, 91, 0.12) 1px, transparent 1px), #eef3f8;
	background-size: 56px 56px;
}
.nss-contact-hero__content {
	position: relative;
	z-index: 2;
	width: min(var(--nss-container), calc(100% - 32px));
	margin-inline: auto;
	padding-block: clamp(1.5rem, 4vw, 3rem);
	pointer-events: none;
}
.nss-contact-hero__content h1 {
	display: inline-block;
	margin: 0.45rem 0 0;
	padding: 0.55rem 0.85rem;
	background: rgba(255, 255, 255, 0.92);
	border: 1px solid rgba(102, 112, 133, 0.16);
	border-radius: 8px;
	box-shadow: 0 16px 44px rgba(15, 23, 42, 0.12);
	font-size: clamp(1.7rem, 3vw, 3rem);
	line-height: 1.08;
}
.nss-contact-breadcrumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
	align-items: center;
	color: var(--wp--preset--color--muted);
	font-size: 0.9rem;
}
.nss-contact-breadcrumbs a,
.nss-contact-breadcrumbs span {
	text-decoration: none;
}
.nss-contact-breadcrumbs a {
	color: var(--wp--preset--color--secondary);
}
.nss-contact-content {
	padding-block: clamp(2rem, 5vw, 4rem);
}
.nss-contact-content__inner,
.nss-contact-requisites__inner {
	width: min(var(--nss-container), calc(100% - 32px));
	margin-inline: auto;
}
.nss-contact-content__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(320px, 0.42fr);
	gap: clamp(1rem, 3vw, 2rem);
	align-items: start;
}
.nss-contact-info {
	display: grid;
	gap: 1rem;
}
.nss-contact-panel,
.nss-contact-form-card,
.nss-contact-requisites__inner {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	box-shadow: 0 18px 48px rgba(15, 23, 42, 0.08);
}
.nss-contact-panel,
.nss-contact-form-card {
	padding: clamp(1.1rem, 2.5vw, 1.6rem);
}
.nss-contact-panel h2,
.nss-contact-form-card h2,
.nss-contact-requisites h2 {
	margin: 0 0 1rem;
	font-size: 1.35rem;
	line-height: 1.2;
}
.nss-contact-lines {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.8rem;
}
.nss-contact-line {
	display: grid;
	gap: 0.25rem;
	padding: 0.85rem;
	background: var(--wp--preset--color--surface-alt);
	border: 1px solid rgba(102, 112, 133, 0.12);
	border-radius: 8px;
}
.nss-contact-line span,
.nss-contact-shop__hours,
.nss-contact-requisites dt {
	color: var(--wp--preset--color--muted);
	font-size: 0.88rem;
}
.nss-contact-line a {
	color: var(--wp--preset--color--text);
	font-size: 1.05rem;
	font-weight: 850;
	text-decoration: none;
}
.nss-contact-messengers {
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;
	margin-top: 1rem;
}
.nss-contact-messenger {
	display: inline-grid;
	place-items: center;
	width: 42px;
	height: 42px;
	background: var(--nss-contact-msg-color, var(--wp--preset--color--primary));
	border-radius: 50%;
	color: #fff;
	text-decoration: none;
}
.nss-contact-messenger svg,
.nss-contact-messenger img {
	width: 21px;
	height: 21px;
	object-fit: contain;
}
.nss-contact-shops {
	display: grid;
	gap: 0.85rem;
}
.nss-contact-shop {
	display: grid;
	grid-template-columns: 132px minmax(0, 1fr);
	gap: 1rem;
	align-items: stretch;
	padding: 0.85rem;
	background: var(--wp--preset--color--surface-alt);
	border: 1px solid rgba(102, 112, 133, 0.12);
	border-radius: 8px;
}
.nss-contact-shop__image {
	width: 100%;
	height: 100%;
	min-height: 112px;
	object-fit: cover;
	border-radius: 7px;
}
.nss-contact-shop h3,
.nss-contact-shop p {
	margin: 0;
}
.nss-contact-shop h3 {
	margin-bottom: 0.45rem;
	font-size: 1.05rem;
}
.nss-contact-shop__hours {
	margin-top: 0.45rem !important;
}
.nss-contact-form-card {
	position: sticky;
	top: 96px;
}
.nss-contact-form,
.nss-contact-form label {
	display: grid;
	gap: 0.55rem;
}
.nss-contact-form {
	gap: 0.85rem;
}
.nss-contact-form label span {
	font-weight: 750;
}
.nss-contact-form input:not([type="checkbox"]),
.nss-contact-form textarea {
	width: 100%;
	padding: 0.72rem 0.85rem;
	background: var(--wp--preset--color--surface-alt);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	color: var(--wp--preset--color--text);
	font: inherit;
}
.nss-contact-form textarea {
	resize: vertical;
}
.nss-contact-form__privacy {
	grid-template-columns: auto minmax(0, 1fr);
	align-items: start;
	color: var(--wp--preset--color--muted);
	font-size: 1rem;
	line-height: 1.45;
}
.nss-contact-form__privacy input {
	width: 1.25rem;
	height: 1.25rem;
	margin-top: 0.08rem;
}
.nss-contact-form__privacy a {
	color: var(--wp--preset--color--primary);
}
.nss-contact-form button {
	display: inline-flex;
	justify-content: center;
	min-height: 46px;
	padding: 0.8rem 1rem;
	background: var(--wp--preset--color--primary);
	border: 1px solid var(--wp--preset--color--primary);
	border-radius: 8px;
	color: #fff;
	font-size: 1.05rem;
	font-weight: 850;
	cursor: pointer;
	transition: background var(--nss-transition), transform var(--nss-transition);
}
.nss-contact-form button:hover,
.nss-contact-form button:focus {
	background: var(--wp--preset--color--secondary);
	transform: translateY(-1px);
}
.nss-contact-form-notice {
	margin-bottom: 0.9rem;
	padding: 0.75rem 0.85rem;
	border-radius: 8px;
	font-size: 0.92rem;
}
.nss-contact-form-notice p {
	margin: 0;
}
.nss-contact-form-notice--success {
	background: color-mix(in srgb, var(--wp--preset--color--success) 12%, #fff);
	color: var(--wp--preset--color--success);
}
.nss-contact-form-notice--error {
	background: color-mix(in srgb, var(--wp--preset--color--error) 10%, #fff);
	color: var(--wp--preset--color--error);
}
.nss-contact-requisites {
	padding-block: 0 clamp(2rem, 5vw, 4rem);
}
.nss-contact-requisites__inner {
	padding: clamp(1.1rem, 2.5vw, 1.6rem);
}
.nss-contact-requisites dl {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0.8rem;
	margin: 0;
}
.nss-contact-requisites div {
	min-width: 0;
	padding: 0.75rem;
	background: var(--wp--preset--color--surface-alt);
	border-radius: 8px;
}
.nss-contact-requisites dt,
.nss-contact-requisites dd {
	margin: 0;
}
.nss-contact-requisites dd {
	margin-top: 0.25rem;
	font-weight: 750;
	overflow-wrap: anywhere;
}
@media (max-width: 980px) {
	.nss-contact-content__inner {
		grid-template-columns: 1fr;
	}

	.nss-contact-form-card {
		position: static;
	}

	.nss-contact-requisites dl {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (max-width: 640px) {
	.nss-contact-hero {
		height: 360px;
	}

	.nss-contact-lines,
.nss-contact-requisites dl {
		grid-template-columns: 1fr;
	}

	.nss-contact-shop {
		grid-template-columns: 1fr;
	}

	.nss-contact-shop__image {
		aspect-ratio: 16 / 9;
	}
}