.contact-icon { display: inline-block; width: 28px; height: 28px; flex: 0 0 28px; object-fit: contain; vertical-align: middle; }
span.contact-icon { background: currentColor; mask: var(--contact-mask) center / contain no-repeat; }
.contact-icon-telegram { --contact-mask: url('/images/telegram.svg'); }
.contact-icon-vk { --contact-mask: url('/images/vk.svg'); }
.contact-icon-instagram { --contact-mask: url('/images/contacts/instagram.svg'); }
.contact-icon-max { --contact-mask: url('/images/contacts/max.svg'); }
.contact-icon-whatsapp { --contact-mask: url('/images/contacts/whatsapp.svg'); }
.contact-icon-phone { --contact-mask: url('/images/contacts/phone.svg'); }
.contact-icon-email { --contact-mask: url('/images/contacts/email.svg'); }
.contact-icon-map { --contact-mask: url('/images/contacts/map.svg'); }
.contact-icon-link { --contact-mask: url('/images/contacts/link.svg'); }
.studio-contact { display: flex; align-items: center; gap: 14px; min-width: 0; max-width: 100%; }
a.studio-contact::before { display: none; }
.contact-copy { display: block; min-width: 0; overflow-wrap: anywhere; flex: 1; }
.contact-label { display: block; }
.studio-contact .contact-value, .studio-contact .contact-description { display: block; font-size: 13px; line-height: 1.6; letter-spacing: normal; }
.contact-description { opacity: .75; margin-top: 6px; }
.studio-contact .contact-platform-notice { display: block; font: 12px/1.6 Arial, sans-serif; letter-spacing: normal; margin-top: 10px; white-space: normal; overflow-wrap: anywhere; }
.contact-arrow { flex: 0 0 auto; }
.social-links .studio-contact { gap: 16px; }
.social-links .contact-icon { width: 36px; height: 36px; flex-basis: 36px; }
.contact-details .studio-contact { align-items: flex-start; }
.contact-details .contact-label { font-size: 20px; margin-bottom: 12px; }
.contact-details .studio-contact .contact-value { font-size: 17px; }
.contact-details .contact-description { margin-top: 12px; }
.contact-compact { display: flex; flex-direction: column; gap: 16px; }
.contact-compact .studio-contact { font-size: 14px; }
.contact-compact .contact-description { display: none; }
.footer-contact .studio-contact { flex: 0 1 300px; }
.footer-contact .contact-description, .footer-socials .contact-description { display: none; }
.footer-socials { flex-wrap: wrap; }
.footer-socials .studio-contact { font-size: 13px; }
.footer-socials .contact-value { font-size: 11px; }
.contact-admin-layout { display: grid; grid-template-columns: minmax(280px, 380px) minmax(0, 1fr); gap: 28px; align-items: start; }
.contact-editor { min-width: 0; }
.contact-editor select { width: 100%; padding: 12px; font: inherit; border: 1px solid #8b967f; border-radius: 6px; }
.contact-admin-card { min-width: 0; overflow-wrap: anywhere; }
.contact-admin-heading { display: flex; gap: 14px; align-items: center; }
.contact-admin-heading > div { min-width: 0; flex: 1; }
.contact-admin-heading h3 { margin: 0 0 6px; }
.contact-admin-heading p { margin: 0; }
.contact-admin-heading > span:last-child { font-size: 12px; }
.contact-admin-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-top: 20px; }
.contact-admin-actions button { padding: 9px 12px; font-size: 13px; }
.contact-admin-actions button:disabled { opacity: .4; cursor: default; }
.contact-admin-actions .contact-delete { background: #fde4dd; color: #922819; }
.contact-icon-preview { display: flex; gap: 12px; align-items: center; margin-top: 20px; }
@media (max-width: 800px) { .contact-admin-layout { grid-template-columns: 1fr; } }
.yandex-place h2 { margin-bottom: 16px; font-size: clamp(28px, 3.5vw, 48px); line-height: 1.15; letter-spacing: -1px; }
.yandex-place > p { max-width: 720px; line-height: 1.6; }
.yandex-place-grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(300px, 1fr); gap: 24px; margin-top: 32px; }
.yandex-place-card { min-width: 0; }
.yandex-place-card h3 { margin: 0 0 16px; }
.yandex-place-card iframe { display: block; width: 100%; height: 540px; border: 1px solid var(--line); background: var(--paper); border-radius: 12px; }
.yandex-place-card > a { display: inline-block; margin-top: 16px; text-decoration: underline; line-height: 1.5; }
.yandex-place-card:last-child iframe { max-width: 760px; }
@media (max-width: 360px) { .section.yandex-place { padding-inline: 10px; } }
@media (max-width: 800px) {
    .yandex-place-grid { grid-template-columns: minmax(0, 1fr); }
    .yandex-place-card iframe { height: 500px; }
}
