/**
 * Точечное обновление дизайна (п.2,4,5,6,7,8).
 * Не удаляет и не скрывает текстовый контент CMS.
 */

:root {
    --font-display: "Source Serif 4", "Source Serif Pro", "Times New Roman", Times, serif;
    --font-sans: "Source Sans 3", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    /* Тёплый бумажный нейтрал — не крем #F4F1EA и не «фиолетовый AI». */
    --color-page-1: #efeee9;
    --color-page-2: #e3e1da;
    --color-page-3: #d8d5cc;
    --color-surface: #fffcf7;
    --color-text: #1c242c;
    --color-muted: #5a6570;
    --color-heading: #0e4a72;
    --color-link: #0a5f96;
    --color-link-hover: #084a75;
    --color-nav: #0c5f9e;
    --color-nav-end: #0a4d80;
    --color-accent-soft: #2f6b4f;
    --radius-sm: 8px;
    --radius-md: 10px;
    --radius-lg: 12px;
    --shadow-sm: 0 1px 0 rgba(40, 36, 28, 0.06), 0 8px 20px rgba(40, 36, 28, 0.05);
    --shadow-md: 0 1px 0 rgba(40, 36, 28, 0.06), 0 14px 28px rgba(40, 36, 28, 0.08);
}

body {
    font-family: var(--font-sans);
    background:
        linear-gradient(180deg, rgba(255, 252, 247, 0.55), transparent 28%),
        linear-gradient(165deg, var(--color-page-1) 0%, var(--color-page-2) 48%, var(--color-page-3) 100%);
    background-attachment: fixed;
    color: var(--color-text);
}

@media (max-width: 991px) {
    body {
        background-attachment: scroll;
    }
}

/* —— 2. Типографика заголовков —— */
h1,
h2,
h3,
h4,
.site-title,
#inline-title-display,
.sitemap-page__title,
.admin-leadership-card__name,
.contacts-card__title,
.home-news-row__title,
.home-event__title,
.news-cards__title,
.one-window-docs__title,
.one-window-section__title,
.one-window-notice__title {
    font-family: var(--font-display);
    letter-spacing: -0.015em;
    font-optical-sizing: auto;
}

/* —— 4. Внутренние страницы: H1 слева, воздух —— */
.content-page .card h1#inline-title-display,
.main-layout.content-page .card h1#inline-title-display,
.content-page .card > h1#inline-title-display {
    text-align: left;
    margin: 0 0 1rem;
    font-size: clamp(1.45rem, 1.2rem + 1vw, 1.85rem);
    line-height: 1.28;
    font-weight: 700;
    color: var(--color-heading);
}

.main-layout.content-page .card {
    background: var(--color-surface);
    border: 1px solid rgba(40, 36, 28, 0.1);
    box-shadow: var(--shadow-sm);
}

.main-layout.content-page .card .rich-content,
.main-layout.content-page .card .rich-content--prose,
.main-layout.content-page .card .cms-prose {
    text-align: left;
    max-width: 72ch;
}

.main-layout.content-page .card .rich-content p,
.main-layout.content-page .card .rich-content--prose p,
.main-layout.content-page .card .cms-prose p {
    margin: 0 0 1.05rem;
    line-height: 1.72;
}

.main-layout.content-page .card .rich-content li,
.main-layout.content-page .card .cms-prose li {
    line-height: 1.65;
    margin-bottom: 0.35rem;
}

.main-layout.content-page .card .rich-content h2,
.main-layout.content-page .card .rich-content h3,
.main-layout.content-page .card .rich-content h4,
.main-layout.content-page .card .cms-prose h2,
.main-layout.content-page .card .cms-prose h3,
.main-layout.content-page .card .cms-prose h4 {
    text-align: left;
    margin-top: 1.35rem;
    margin-bottom: 0.65rem;
    line-height: 1.3;
}

/* Филиалы/таблицы на всю ширину колонки — не сужаем */
.main-layout.content-page .card .branch-info-grid,
.main-layout.content-page .card .contacts-directory__grid,
.main-layout.content-page .card .rich-content table {
    max-width: none;
}

/* —— 5. Карточки филиалов: порядок и чтение, текст не скрываем —— */
.branch-info-grid {
    gap: 1.5rem;
}

.branch-info-card {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    padding: 1rem 1.05rem 1.1rem;
    background: var(--color-surface);
    border: 1px solid rgba(40, 36, 28, 0.12);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
}

.branch-info-card > .branch-info-card__photo,
.branch-info-card > .admin-leadership-card__photo {
    order: 1;
    margin: 0;
}

.branch-info-card.contacts-card > .contacts-card__title.admin-leadership-card__name,
.branch-info-card > .contacts-card__title,
.branch-info-card > .admin-leadership-card__name {
    order: 2;
    margin: 0;
    text-align: left !important;
    font-size: 1.15rem;
    line-height: 1.3;
}

.branch-info-card > .branch-info-card__contacts,
.branch-info-card > .admin-leadership-venue {
    order: 3;
    margin: 0;
    padding: 0.75rem 0.85rem;
    background: rgba(40, 36, 28, 0.03);
    border: 1px solid rgba(40, 36, 28, 0.08);
    border-radius: var(--radius-sm);
}

.branch-info-card > .branch-info-card__description {
    order: 4;
    margin: 0;
}

.branch-info-card .admin-leadership-venue__title {
    margin: 0 0 0.55rem;
    font-size: 0.82rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-muted);
    text-align: left;
    font-family: var(--font-sans);
}

.branch-info-card .admin-leadership-meta__row {
    display: grid;
    grid-template-columns: minmax(7rem, 34%) 1fr;
    gap: 0.35rem 0.85rem;
    padding: 0.35rem 0;
    border-bottom: 1px solid rgba(40, 36, 28, 0.06);
}

.branch-info-card .admin-leadership-meta__row:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.branch-info-card .admin-leadership-meta__label {
    font-family: var(--font-sans);
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--color-muted);
}

.branch-info-card .admin-leadership-meta__value {
    font-size: 0.95rem;
    line-height: 1.45;
    color: var(--color-text);
}

.branch-info-card__description p {
    margin: 0 0 0.8rem;
    line-height: 1.68;
    text-align: left;
}

.branch-info-card__description p:last-child {
    margin-bottom: 0;
}

.branch-info-card__photo img,
.branch-info-card .admin-leadership-card__photo img {
    border-radius: var(--radius-sm);
    border: 1px solid rgba(40, 36, 28, 0.1);
}

@media (max-width: 768px) {
    .branch-info-card .admin-leadership-meta__row {
        grid-template-columns: 1fr;
        gap: 0.15rem;
    }

    /* На мобиле длинные страницы филиалов: описание сворачивается, текст остаётся в DOM */
    .branch-info-card > .branch-info-card__description {
        max-height: 9.5rem;
        overflow: hidden;
        position: relative;
        mask-image: linear-gradient(180deg, #000 55%, transparent 100%);
        -webkit-mask-image: linear-gradient(180deg, #000 55%, transparent 100%);
    }

    .branch-info-card.is-expanded > .branch-info-card__description {
        max-height: none;
        mask-image: none;
        -webkit-mask-image: none;
        overflow: visible;
    }

    .branch-info-card__more {
        order: 5;
        display: inline-flex;
        align-self: flex-start;
        margin: 0;
        padding: 0;
        border: 0;
        background: none;
        color: var(--color-link);
        font-family: var(--font-sans);
        font-size: 0.92rem;
        font-weight: 700;
        cursor: pointer;
        text-decoration: underline;
        text-underline-offset: 2px;
    }
}

@media (min-width: 769px) {
    .branch-info-card__more {
        display: none !important;
    }
}

/* —— 8. Дата в одном месте —— */
.home-news-row {
    align-items: flex-start;
}

.home-news-row__body {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.home-news-row .home-news-row__date,
.home-news-row__body .home-news-row__date,
.news-cards__item_link .news-cards__date,
.news-cards__date {
    order: 0;
    margin: 0 0 0.15rem;
    font-family: var(--font-sans);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: var(--color-accent-soft);
}

.home-news-row__title,
.news-cards__title {
    order: 1;
    margin: 0;
}

.home-news-row__text,
.news-cards__summary {
    order: 2;
}

.home-event {
    display: grid;
    grid-template-columns: 3.5rem minmax(0, 1fr);
    gap: 0.85rem;
    align-items: start;
}

.home-event__date {
    width: 3.5rem;
    min-height: 3.5rem;
    margin: 0;
    background: rgba(47, 107, 79, 0.1);
    color: var(--color-accent-soft);
    border-radius: var(--radius-sm);
}

.news-cards__item_link,
.news-cards__summary-stack {
    display: flex;
    flex-direction: column;
    align-items: stretch;
}

.news-cards__date {
    margin-bottom: 0.25rem;
}

/* Карточки/поверхности чуть спокойнее */
.home-start,
.card,
.home-events-card,
.sidebar .promo-banner,
.left-menu {
    border-radius: var(--radius-md);
}

/* —— 7. Мобильное меню: одно компактное, без дубля «сервисов» —— */
@media (max-width: 900px) {
    /* Сервисы уже в шапке/тулбаре — в гамбургере не дублируем */
    .top-nav__mobile-services {
        display: none !important;
    }

    .top-nav__panel {
        max-height: min(78vh, 640px);
        overflow: auto;
        -webkit-overflow-scrolling: touch;
    }

    .top-nav > .top-nav__item > a,
    .top-nav > .top-nav__item > .top-nav__item-head > a {
        font-size: 1.02rem;
        font-weight: 700;
    }

    /* Подменю остаются свёрнутыми до «Подменю» (логика в style.css + site-top-nav.js) */
}
