/* 14.09.2026 — Contacts: office photo and info-card tuning */
body.page-id-359 .vsh-contacts__office {
    margin: auto 22px 22px;
    aspect-ratio: 16 / 9;
    border: 0;
    border-radius: 14px;
    background: #fffdf9;
}

body.page-id-359 .vsh-contacts__office img {
    opacity: .82;
    filter: saturate(.82) contrast(.94) brightness(1.02);
}

body.page-id-359 .vsh-contacts__office::after {
    content: "";
    position: absolute;
    inset: -1px;
    pointer-events: none;
    border-radius: inherit;
    box-shadow: inset 0 0 28px 18px #fffdf9;
}

body.page-id-359 .vsh-contact-line__icon--phone::before,
body.page-id-359 .vsh-contact-line__icon--mail::before,
body.page-id-359 .vsh-contact-line__icon--pin::before {
    inset: 7px;
}

body.page-id-359 .vsh-contacts__top > .vsh-contact-card .vsh-contact-line small {
    font-size: 13px;
}

body.page-id-359 .vsh-contacts__top > .vsh-contact-card .vsh-contact-note,
body.page-id-359 .vsh-contacts__top > .vsh-contact-card .vsh-contact-card__text {
    font-size: 15px;
    line-height: 1.6;
}

@media (max-width: 1200px) {
    body.page-id-359 .vsh-contacts__office {
        height: auto;
        min-height: 0;
        margin: 22px;
        border: 0;
    }
}

@media (max-width: 760px) {
    body.page-id-359 .vsh-contacts__office {
        margin: 0 16px 16px;
        aspect-ratio: 16 / 10;
    }
}

/* 14.09.2026 — compact the existing three-card layout without redesigning it */
@media (min-width: 1201px) {
    body.page-id-359 .vsh-contacts__top { gap: 16px; margin-bottom: 20px; }
    body.page-id-359 .vsh-contacts__intro-copy { padding: 22px 26px 12px; }
    body.page-id-359 .vsh-contacts__intro h1 { margin-bottom: 10px; font-size: clamp(40px, 3vw, 54px); }
    body.page-id-359 .vsh-contacts__lead { font-size: 16px; line-height: 1.48; }
    body.page-id-359 .vsh-contacts__office { margin: auto 20px 20px; aspect-ratio: 16 / 8.2; }

    body.page-id-359 .vsh-contacts__top > .vsh-contact-card { padding: 22px 24px 20px; }
    body.page-id-359 .vsh-contacts__top .vsh-contact-card__kicker { margin-bottom: 5px; }
    body.page-id-359 .vsh-contacts__top .vsh-contact-card h2 { margin-bottom: 14px; font-size: clamp(25px, 2vw, 31px); }
    body.page-id-359 .vsh-contacts__top .vsh-contact-list { gap: 5px; }
    body.page-id-359 .vsh-contacts__top .vsh-contact-line { min-height: 50px; padding: 5px 6px; gap: 10px; }
    body.page-id-359 .vsh-contacts__top .vsh-contact-line__icon { width: 40px; height: 40px; }
    body.page-id-359 .vsh-contacts__top .vsh-contact-socials { margin-top: 13px; gap: 8px; }
    body.page-id-359 .vsh-contacts__top .vsh-contact-social { min-height: 36px; padding: 6px 10px; }
    body.page-id-359 .vsh-contacts__top .vsh-contact-note { margin-top: 10px; line-height: 1.45; }
    body.page-id-359 .vsh-contacts__top .vsh-contact-card__text { margin-top: 12px; line-height: 1.5; }
    body.page-id-359 .vsh-contacts__top .vsh-contact-actions { margin-top: 14px; gap: 8px; }
    body.page-id-359 .vsh-contacts__top .vsh-contact-btn { min-height: 40px; padding: 8px 15px; }
}

@media (min-width: 761px) and (max-width: 1200px) {
    body.page-id-359 .vsh-contacts__top { gap: 16px; margin-bottom: 20px; }
    body.page-id-359 .vsh-contacts__intro-copy { padding: 22px 24px; }
    body.page-id-359 .vsh-contacts__office { margin: 18px; }
    body.page-id-359 .vsh-contacts__top > .vsh-contact-card { padding: 22px 24px; }
    body.page-id-359 .vsh-contacts__top .vsh-contact-card h2 { margin-bottom: 16px; }
    body.page-id-359 .vsh-contacts__top .vsh-contact-list { gap: 6px; }
    body.page-id-359 .vsh-contacts__top .vsh-contact-line { min-height: 52px; padding: 5px 6px; }
}

/* 14.09.2026 — more breathing room between contact/address positions */
@media (min-width: 1201px) {
    body.page-id-359 .vsh-contacts__top .vsh-contact-list {
        gap: 12px;
    }
}

@media (min-width: 761px) and (max-width: 1200px) {
    body.page-id-359 .vsh-contacts__top .vsh-contact-list {
        gap: 10px;
    }
}

/* 14.09.2026 — balance vertical space inside top contact cards */
@media (min-width: 1201px) {
    body.page-id-359 .vsh-contacts__intro-copy {
        padding: 24px 26px 20px;
    }

    body.page-id-359 .vsh-contacts__top > .vsh-contact-card {
        display: flex;
        flex-direction: column;
        padding: 26px 26px 20px;
    }

    body.page-id-359 .vsh-contacts__top > .vsh-contact-card:not(.vsh-contact-card--visit) .vsh-contact-socials {
        margin-top: auto;
        padding-top: 20px;
    }

    body.page-id-359 .vsh-contacts__top > .vsh-contact-card:not(.vsh-contact-card--visit) .vsh-contact-note {
        margin-top: 16px;
    }

    body.page-id-359 .vsh-contacts__top > .vsh-contact-card--visit .vsh-contact-card__text {
        margin-top: auto;
        padding-top: 20px;
    }

    body.page-id-359 .vsh-contacts__top > .vsh-contact-card--visit .vsh-contact-actions {
        margin-top: 18px;
    }
}

/* 14.09.2026 — more air around top-card headings */
@media (min-width: 1201px) {
    body.page-id-359 .vsh-contacts__top .vsh-contact-card__kicker {
        margin-bottom: 11px;
    }

    body.page-id-359 .vsh-contacts__top .vsh-contact-card h2 {
        margin-bottom: 22px;
    }
}

@media (min-width: 761px) and (max-width: 1200px) {
    body.page-id-359 .vsh-contacts__top .vsh-contact-card__kicker {
        margin-bottom: 9px;
    }

    body.page-id-359 .vsh-contacts__top .vsh-contact-card h2 {
        margin-bottom: 20px;
    }
}

/* 14.09.2026 — office photo: variant 1, light framed card */
body.page-id-359 .vsh-contacts__office {
    overflow: hidden;
    border: 3px solid rgba(255, 253, 249, .96);
    border-radius: 18px;
    background: #fffdf9;
    box-shadow:
        0 10px 28px rgba(112, 69, 31, .12),
        0 0 0 1px rgba(112, 69, 31, .08);
}

body.page-id-359 .vsh-contacts__office img {
    opacity: .84;
    filter: saturate(.84) contrast(.95) brightness(1.03);
}

body.page-id-359 .vsh-contacts__office::after {
    inset: 0;
    border-radius: 15px;
    box-shadow: inset 0 0 22px 10px rgba(255, 253, 249, .88);
}

/* 14.09.2026 — route intro: keep description visually attached to heading */
body.page-id-359 .vsh-route__head {
    display: block;
    margin-bottom: 22px;
}

body.page-id-359 .vsh-route__head > p {
    max-width: 860px;
    margin: 10px 0 0;
    color: #75655a;
    font-size: 16px;
    line-height: 1.5;
}

@media (max-width: 900px) {
    body.page-id-359 .vsh-route__head > p {
        max-width: none;
        margin-top: 8px;
        font-size: 15px;
    }
}

/* 14.09.2026 — route intro: let description use the available width */
@media (min-width: 901px) {
    body.page-id-359 .vsh-route__head > p {
        width: 100%;
        max-width: 1180px;
    }
}

/* 14.09.2026 — route cards: title beside icon */
body.page-id-359 .vsh-route-card {
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr);
    column-gap: 14px;
    align-content: start;
}

body.page-id-359 .vsh-route-card__icon {
    grid-column: 1;
    grid-row: 1;
    align-self: center;
    margin: 0;
}

body.page-id-359 .vsh-route-card h3 {
    grid-column: 2;
    grid-row: 1;
    align-self: center;
    margin: 0;
    line-height: 1.2;
}

body.page-id-359 .vsh-route-card > p,
body.page-id-359 .vsh-route-card > a {
    grid-column: 1 / -1;
}

body.page-id-359 .vsh-route-card h3 + p {
    margin-top: 14px;
}

/* Moscow Metro M, kept in the site's brown icon system */
body.page-id-359 .vsh-route-card__icon--metro {
    background-size: 30px 30px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%2370451f' d='M3.8 19 7.1 5h3.1l1.8 6.7L13.8 5h3.1l3.3 14h-3.1l-2-8.6-3.1 8-3.1-8L6.9 19H3.8Z'/%3E%3C/svg%3E");
}

/* 14.09.2026 — route cards: remove excessive empty height */
body.page-id-359 .vsh-route__grid {
    align-items: start;
}

body.page-id-359 .vsh-route-card {
    min-height: 0;
    height: auto;
    padding: 20px 18px 16px;
}

body.page-id-359 .vsh-route-card p:last-of-type,
body.page-id-359 .vsh-route-card a:last-child {
    margin-bottom: 0;
}
