/* ==========================================================================
   Контакты
   Правила нужны одному адресу — `/kontakty/`, поэтому файл лежит отдельно
   и подключается ContactController через View::useStyle().
   Карточки способов связи и форма собраны из готовых классов (`.card`,
   `.grid`, `.tags`, `.form`), своего здесь — заглушка карты и две раскладки
   в две колонки.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Способы связи
   -------------------------------------------------------------------------- */

.contacts-way {
    gap: var(--space-1);
}

.contacts-way__title {
    font-size: var(--font-size-h4);
    line-height: var(--line-height-h4);
}

/* Телефон и почта — главное в карточке: размер крупнее текста, цифры
   табличные, чтобы номер не «плясал» рядом с соседней карточкой. */
.contacts-way__value {
    display: block;
    color: var(--color-text);
    font-size: var(--font-size-h3);
    line-height: var(--line-height-h3);
    font-variant-numeric: tabular-nums;
    text-decoration: none;
    overflow-wrap: anywhere;
}

a.contacts-way__value:hover,
a.contacts-way__value:focus-visible {
    color: var(--color-accent);
}

.contacts-way__links {
    margin-top: 4px;
}

.contacts-way__note {
    margin-top: auto;
    padding-top: var(--space-1);
    color: var(--color-muted);
    font-size: var(--font-size-caption);
    line-height: var(--line-height-caption);
}

/* --------------------------------------------------------------------------
   2. Заглушка карты
   Интерактивная карта в работу не входит: схема нарисована SVG, точку
   на местности заменяет адрес в карточке рядом.
   -------------------------------------------------------------------------- */

.contacts-map {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: var(--grid-gap);
    align-items: stretch;
}

.contacts-map__canvas {
    position: relative;
    min-height: 320px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-section);
    background-color: var(--color-surface);
    overflow: hidden;
}

/* Кварталы и улицы: цвет наследуется от текста и приглушается прозрачностью,
   поэтому схема остаётся в палитре и не спорит с фоном секции. */
.contacts-map__scheme {
    width: 100%;
    height: 100%;
    color: var(--color-border);
}

/* Метка стоит в перекрестье «улиц» схемы, а не по центру блока. */
.contacts-map__pin {
    position: absolute;
    top: 38%;
    left: 42%;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    margin: -28px 0 0 -28px;
    border-radius: var(--radius-pill);
    background-color: var(--color-accent-soft);
    color: var(--color-accent);
}

.contacts-map__card {
    display: flex;
    flex-direction: column;
}

.contacts-map__title {
    font-size: var(--font-size-h3);
    line-height: var(--line-height-h3);
}

.contacts-map__address {
    color: var(--color-text);
    font-size: var(--font-size-lead);
    line-height: var(--line-height-lead);
}

.contacts-map__list {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    margin: 0;
    padding: 0;
    list-style: none;
    color: var(--color-text);
}

.contacts-map__label {
    display: block;
    color: var(--color-muted);
    font-size: var(--font-size-caption);
    line-height: var(--line-height-caption);
}

.contacts-map__note {
    color: var(--color-muted);
}

/* Кнопки прижаты к низу карточки: карта слева и карточка справа кончаются
   на одной линии независимо от длины адреса. */
.contacts-map__card .btn-row {
    margin-top: auto;
    padding-top: var(--space-1);
}

/* --------------------------------------------------------------------------
   3. Форма обратной связи
   -------------------------------------------------------------------------- */

.contacts-form {
    display: grid;
    grid-template-columns: 1fr 1.1fr;
    gap: var(--grid-gap);
    align-items: start;
}

.contacts-form__intro {
    max-width: var(--measure);
}

.contacts-form__steps {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    margin: 0;
    padding: 0;
    list-style: none;
    color: var(--color-muted);
    font-size: var(--font-size-caption);
    line-height: var(--line-height-caption);
}

/* Галочка вместо маркера: тот же приём, что в пометках героя. */
.contacts-form__steps li {
    position: relative;
    padding-left: var(--space-3);
}

.contacts-form__steps li::before {
    content: '';
    position: absolute;
    top: 6px;
    left: 2px;
    width: 10px;
    height: 6px;
    border-left: 1.5px solid var(--color-accent);
    border-bottom: 1.5px solid var(--color-accent);
    transform: rotate(-45deg);
}

/* --------------------------------------------------------------------------
   4. Реквизиты
   -------------------------------------------------------------------------- */

.contacts-requisites__title {
    font-size: var(--font-size-h3);
    line-height: var(--line-height-h3);
}

.contacts-requisites__text {
    color: var(--color-text);
}

.contacts-requisites__note {
    color: var(--color-muted);
}

/* --------------------------------------------------------------------------
   5. Брейкпоинты
   -------------------------------------------------------------------------- */

@media (max-width: 1024px) {
    /* Карта и форма перестают делить строку: на планшете обе колонки узкие,
       и поля формы становятся полосками. */
    .contacts-map,
    .contacts-form {
        grid-template-columns: 1fr;
    }

    .contacts-map__canvas {
        min-height: 240px;
    }
}

@media (max-width: 480px) {
    .contacts-map__canvas {
        min-height: 180px;
    }

    .contacts-way__value {
        font-size: var(--font-size-h4);
        line-height: var(--line-height-h4);
    }
}
