/* "Контакты" block: contact card + Yandex map (plugin_blocks/templates/block_content_2.html) */
html body #block_content_2.sa-contact {
	--ct-blue: #355a9f; --ct-blue-d: #2a4a86; --ct-ink: #1d2433; --ct-text: #4b5563; --ct-muted: #6b7280;
	--ct-line: #e5e7eb; --ct-soft: #f3f6fb;
	width: 100vw;
	margin: 0 calc(50% - 50vw);
	padding: var(--sa-section, 72px) 0;
	background: #fff;
	color: var(--ct-ink);
	font-family: 'Roboto', sans-serif;
	line-height: 1.4;
	text-align: left;
}
.sa-contact * { box-sizing: border-box; }
/* right after the services block (which has its own bottom padding) */
html body .sa-svc + #block_content_2.sa-contact { padding-top: 0; }
/* right after page text (price, service pages) */
html body #content + #block_content_2.sa-contact { padding-top: 32px; }

.sa-contact-in {
	max-width: calc(var(--sa-wrap, 1200px) + 2 * var(--sa-gutter, 32px)); margin: 0 auto; padding: 0 var(--sa-gutter, 32px);
	display: grid; grid-template-columns: minmax(320px, 420px) 1fr; gap: 20px; align-items: stretch;
}
.sa-contact-card { padding: 32px; border-radius: 20px; background: var(--ct-soft); display: flex; flex-direction: column; }
html body .sa-contact .sa-contact-title {
	margin: 0 0 24px; padding: 0; color: var(--ct-ink); font-family: inherit; font-size: clamp(28px, 3.4vw, 40px);
	font-weight: 700; line-height: 1.1; letter-spacing: 0; text-transform: none; text-align: left;
}
.sa-contact .sa-contact-title::before, .sa-contact .sa-contact-title::after { display: none; }

.sa-contact-list { margin: 0 0 24px; padding: 0; }
.sa-contact-row { padding: 14px 0; border-top: 1px solid #dfe5f0; }
.sa-contact-row:first-child { border-top: 0; padding-top: 0; }
.sa-contact-row dt {
	display: flex; align-items: center; gap: 8px; margin: 0 0 4px; color: var(--ct-muted);
	font-size: 14px; font-weight: 400; line-height: 1.3;
}
.sa-contact-row dt svg { width: 18px; height: 18px; flex: none; fill: none; stroke: var(--ct-blue); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.sa-contact-row dd { margin: 0; padding-left: 26px; color: var(--ct-ink); font-size: 17px; font-weight: 500; line-height: 1.4; }
.sa-contact-row dd small { display: block; color: var(--ct-text); font-size: 15px; font-weight: 400; }
.sa-contact-row dd a { color: var(--ct-ink); text-decoration: none; }
.sa-contact-row dd a:hover { color: var(--ct-blue); }
html body .sa-contact .sa-contact-phone { font-size: 22px; font-weight: 700; }

.sa-contact-acts { display: flex; flex-wrap: wrap; gap: 10px; margin-top: auto; }
html body .sa-contact .sa-contact-btn {
	flex: 1 1 auto; display: inline-flex; align-items: center; justify-content: center; padding: 13px 22px;
	border: 1px solid var(--ct-blue); border-radius: 10px; background: var(--ct-blue); color: #fff;
	font-size: 16px; font-weight: 500; line-height: 1.2; text-decoration: none; white-space: nowrap;
	transition: background .15s, color .15s;
}
html body .sa-contact .sa-contact-btn:hover { background: var(--ct-blue-d); border-color: var(--ct-blue-d); color: #fff; }
html body .sa-contact .sa-contact-btn.is-line { background: #fff; color: var(--ct-blue); border-color: #c9d6ee; }
html body .sa-contact .sa-contact-btn.is-line:hover { background: #eef3fb; color: var(--ct-blue-d); }

.sa-contact-map { position: relative; min-height: 440px; border-radius: 20px; overflow: hidden; background: var(--ct-soft); }
.sa-contact-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; }

@media (max-width: 860px) {
	html body #content + #block_content_2.sa-contact { padding-top: 24px; }
	.sa-contact-in { grid-template-columns: 1fr; gap: 16px; }
	.sa-contact-card { padding: 22px 20px; }
	.sa-contact-row dd { font-size: 18px; }
	.sa-contact-map { min-height: 320px; }
}

/* Visually hidden page title (/contacts/ page h1 for search engines) */
.sa-sr-only { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
