

/* Start:/local/components/rsf/contacts.page/templates/.default/style.css?17859226319384*/
/* Component: contacts.page
 * Парити Figma 2021:3549 (D) / 2021:3239 (M) — node 2021:3178.
 * Desktop: gap 32 между title→list и между группами; внутри группы gap 4 (title→rows),
 * row gap 4, label-стек w-67, value-стек flex, gap 12 между label/value.
 * Все цвета и размеры из Figma get_design_context (2026-05-02). */

.contacts-page {
    padding: 64px 0 0;
}

/* Контейнер contacts.page — выровнен по линии хедера: max-width =
   1312 + page-padding*2 = 1440px на desktop. Совпадает с .top-bar-inner /
   .nav-bar (max-width 1440), внутренний контент после padding = 1312. */
.contacts-page__container {
    max-width: calc(var(--container-max-width, 1312px) + var(--page-padding, 64px) * 2);
    margin: 0 auto;
    padding: 0 var(--page-padding, 64px);
}

.contacts-page__grid {
    display: flex;
    gap: 32px;
    align-items: stretch;
}

/* Map */
.contacts-page__map-wrapper {
    flex: 1;
    min-height: 100%;
    border-radius: 24px;
    overflow: hidden;
    display: flex;
}

.contacts-page__map {
    width: 100%;
    min-height: 392px;
    height: 100%;
    border-radius: 24px;
    cursor: pointer;
    transition: box-shadow var(--transition-base, 0.3s);
}

.contacts-page__map--active {
    box-shadow: var(--shadow-lg, 0 10px 25px rgba(0, 0, 0, 0.15));
}

/* Map embed (Yandex.Maps iframe из админки) */
.contacts-page__map-embed {
    position: relative;
    width: 100%;
    min-height: 392px;
    border-radius: 24px;
    overflow: hidden;
    display: flex;
}

.contacts-page__map-embed > div {
    width: 100%;
    height: 100%;
    min-height: 392px;
}

.contacts-page__map-embed iframe {
    width: 100%;
    height: 100%;
    min-height: 392px;
    border: none;
    display: block;
    border-radius: 24px;
}

/* Map marker */
.contacts-page__marker {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    transform: translate(-50%, -100%);
}

.contacts-page__marker-tooltip {
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    white-space: nowrap;
    background: var(--color-primary, #1F428E);
    color: #fff;
    font-size: var(--font-size-xs, 12px);
    padding: var(--spacing-xs, 4px) var(--spacing-sm, 8px);
    border-radius: var(--radius-sm, 4px);
    margin-bottom: 4px;
    pointer-events: none;
}

.contacts-page__marker-tooltip::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    border: 5px solid transparent;
    border-top-color: var(--color-primary, #1F428E);
}

/* Map fallback */
.contacts-page__map-fallback {
    width: 100%;
    height: 392px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: var(--color-bg-light, #F2F6FF);
    border-radius: 24px;
    color: var(--color-text-secondary, #6B6E7B);
    gap: var(--spacing-md, 12px);
    text-align: center;
    padding: var(--spacing-xl, 24px);
}

.contacts-page__map-fallback-icon {
    opacity: 0.5;
}

.contacts-page__map-fallback-address {
    font-size: 16px;
    margin: 0;
    max-width: 280px;
}

/* Contact info — на desktop info-блок матчится по высоте с картой через
   align-items:stretch у grid + justify-content:space-between (title наверху,
   3 контакт-блока распределены по высоте). На mobile эта раскладка сбрасывается. */
.contacts-page__info {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 32px;
    justify-content: space-between;
    padding: 8px 0; /* Figma frame 2021:3551 pb-[8px] + симметричный pt для центровки */
    min-height: 392px; /* match с .contacts-page__map min-height */
}

.contacts-org-name {
    font-size: 40px;
    font-weight: 700;
    color: var(--color-primary);
    margin: 0;
    line-height: 48px;
    letter-spacing: var(--ls-tight-4); /* -1.96 */
    white-space: nowrap;
}

.contacts-page__block {
    padding: 0;
    background: none;
    border-radius: 0;
    display: flex;
    flex-direction: column;
    gap: 4px; /* Figma 2021:3556 gap 4 (title→rows on desktop) */
}

.contact-group-title {
    font-size: 16px;
    font-weight: 700;
    color: var(--color-text, #3C4052);
    margin: 0;
    line-height: 24px;
}

.contacts-page__field {
    display: flex;
    gap: 12px; /* Figma 2021:3558 gap-[12px] */
    align-items: baseline;
    margin: 0;
}

.contacts-page__label {
    font-size: 16px;
    font-weight: 400;
    color: var(--color-text, #3C4052);
    min-width: 67px; /* Figma 2021:3559 w-[67px] — на коротких лейблах визуал тот же, BR-03 кастомные расширяются. */
    flex-shrink: 0;
    line-height: 24px;
    letter-spacing: normal;
    text-transform: none;
}

.contacts-page__value {
    font-size: 16px;
    font-weight: 700;
    color: var(--color-primary); /* #1F428E */
    line-height: 24px;
    flex: 1;
    min-width: 0;
}

.contacts-page__link {
    flex: 0 0 auto;
    color: var(--color-primary);
    font-weight: 700;
    text-decoration: none;
    transition: color var(--transition-fast, 0.15s);
}

/* Underline только для email-ссылок (Figma 2021:3565/3574/3582) */
.contacts-page__link[href^="mailto"] {
    text-decoration: underline;
}

.contacts-page__link:hover {
    color: var(--color-secondary-alt, #DD1F26);
}

/* Separator + page-title-section на /contacts/ — растягиваем .container до
   линии хедера (1440), чтобы H1 «КОНТАКТЫ», карта/форма и сепаратор
   совпадали по левой границе. */
.contacts-page ~ .container,
.contacts-page + .container,
body:has(.contacts-page) .page-title-section > .container {
    max-width: calc(var(--container-max-width, 1312px) + var(--page-padding, 64px) * 2);
    padding: 0 var(--page-padding, 64px);
}

/* На viewport ≥1440 layout.css снимает padding у .section/.page-title-section
   .container — нужно восстановить, иначе контент уезжает к самому краю. */
@media (min-width: 1440px) {
    body:has(.contacts-page) .page-title-section > .container {
        padding-left: var(--page-padding, 64px);
        padding-right: var(--page-padding, 64px);
    }
}

/* Page-title-section на /contacts/ — высота 140 по Figma 2021:3546,
   а не 204 как у /documents/ (Figma 2021:3019). Override снижает
   padding-bottom до 0 и padding-top до 68 (68 + h1 lh 72 = 140). */
body:has(.contacts-page) .page-title-section {
    padding-right: 0;
    padding-bottom: 0;
    padding-left: 0;
}

.contacts-separator {
    border: none;
    border-top: 1px solid var(--color-border, #D0D1D6);
    margin: 64px 0;
}

/* Когда форма обратной связи отключена в админке (contacts_show_form_block=N),
   карта-блок остаётся последним на странице — добавляем нижний отступ, чтобы
   не прижимался к футеру. */
body:not(:has(.contacts-form)) .contacts-page {
    padding-bottom: 64px;
}

/* Tablet (1024–1199) — узкий 2-col не помещается, переходим в column.
   Контакты ВЫШЕ карты (Figma mobile-порядок применим и к tablet). */
@media (max-width: 1199px) {
    .contacts-page__grid {
        flex-direction: column;
    }

    .contacts-page__info {
        order: -1;
        min-height: 0;
        justify-content: flex-start;
        padding: 0;
    }
}

/* Tablet portrait (768–1023) */
@media (max-width: 1023px) {
    .contacts-org-name {
        font-size: 32px;
        letter-spacing: var(--ls-tight-2); /* -0.96 */
        white-space: normal;
    }

    .contacts-separator {
        margin: 48px 0;
    }

    body:not(:has(.contacts-form)) .contacts-page {
        padding-bottom: 48px;
    }
}

/* Mobile ≤767 — Figma 2021:3239 */
@media (max-width: 767px) {
    .contacts-page {
        padding: 32px 0 0;
    }

    .contacts-page__info {
        order: -1;
        gap: 20px; /* Figma 2021:3244 gap 20 (между группами на mobile) */
        padding-bottom: 0;
    }

    .contacts-page__block {
        gap: 12px; /* Figma 2021:3245 gap 12 (title→rows на mobile) */
    }

    /* Mobile: rows внутри группы — gap 10 (Figma 2021:3247) */
    .contacts-page__block .contacts-page__field + .contacts-page__field {
        margin-top: 6px; /* gap 10 - line-height correction */
    }

    .contacts-page__map-wrapper {
        min-height: 0;
        border-radius: 16px;
    }

    .contacts-page__map,
    .contacts-page__map-fallback {
        height: 140px;
        min-height: 140px;
        border-radius: 16px;
    }

    .contacts-page__map-embed,
    .contacts-page__map-embed > div,
    .contacts-page__map-embed iframe {
        min-height: 140px;
        height: 140px;
        border-radius: 16px;
    }

    .contacts-separator {
        margin: 32px 0;
    }

    body:not(:has(.contacts-form)) .contacts-page {
        padding-bottom: 32px;
    }
}

/* End */
/* /local/components/rsf/contacts.page/templates/.default/style.css?17859226319384 */
