/* 
 * 1. VARIABLES & BASE (Tokens) 
 */
@font-face {
    font-family: 'Gotham Pro';
    src: url('../fonts/GothamPro-Bold.woff2') format('woff2'),
         url('../fonts/GothamPro-Bold.woff') format('woff');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Gotham Pro';
    src: url('../fonts/GothamPro-Black.woff2') format('woff2'),
         url('../fonts/GothamPro-Black.woff') format('woff');
    font-weight: 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Roboto';
    src: url('../fonts/Roboto-Light.woff2') format('woff2'),
         url('../fonts/Roboto-Light.woff') format('woff');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Roboto';
    src: url('../fonts/Roboto-Regular.woff2') format('woff2'),
         url('../fonts/Roboto-Regular.woff') format('woff');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Roboto';
    src: url('../fonts/Roboto-Italic.woff2') format('woff2'),
         url('../fonts/Roboto-Italic.woff') format('woff');
    font-weight: 400;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Roboto';
    src: url('../fonts/Roboto-Medium.woff2') format('woff2'),
         url('../fonts/Roboto-Medium.woff') format('woff');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Roboto';
    src: url('../fonts/Roboto-Bold.woff2') format('woff2'),
         url('../fonts/Roboto-Bold.woff') format('woff');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

:root {
    /* Colors */
    --c-red: #C41E21;
    --c-red-dark: #B10000;
    --c-black: #000000;
    --c-blue-dark: #1F2937;
    --c-gray-light: #F3F4F6;
    --c-gray-dark: #333333;
    --c-white: #FFFFFF;

    /* System variables */
    --c-text: var(--c-blue-dark);
    --c-bg: var(--c-white);

    /* Typography */
    --f-heading: 'Gotham Pro', sans-serif;
    --f-title: var(--f-heading);
    --f-text: 'Roboto', sans-serif;

    --f-size-h1: 48px;
    --f-size-h2: 32px;
    --f-size-h3: 24px;
    --f-size-h4: 20px;
    --f-size-base: 16px;

    /* Spacing */
    --gap: 20px;
    --container-width: 1280px;
    --container-padding: 56px;
    --transition: 0.3s ease;
    --radius: 8px;
    /* Based on user snippet rx=8 */
}

/* Base Reset */
*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

body {
    font-family: var(--f-heading);
    font-size: var(--f-size-base);
    color: var(--c-text);
    background-color: var(--c-bg);
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
    animation: page-fade-in 0.35s ease both;
}

@keyframes page-fade-in {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

@media (prefers-reduced-motion: reduce) {
    body {
        animation: none;
    }
}

a {
    text-decoration: none;
    color: inherit;
    transition: color var(--transition);
}

ul {
    list-style: none;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

input,
button {
    font-family: inherit;
    font-size: inherit;
    outline: none;
    border: none;
}

button {
    cursor: pointer;
    background: transparent;
}

/* 
 * 2. TYPOGRAPHY & UTILITIES 
 */
.h1,
h1 {
    font-family: var(--f-heading);
    font-size: var(--f-size-h1);
    font-weight: 700;
    line-height: 1.1;
}

.h2,
h2 {
    font-family: var(--f-heading);
    font-size: var(--f-size-h2);
    font-weight: 700;
    line-height: 1.2;
}

.h3,
h3 {
    font-family: var(--f-heading);
    font-size: var(--f-size-h3);
    font-weight: 700;
    line-height: 1.2;
}

.h4,
h4 {
    font-family: var(--f-heading);
    font-size: var(--f-size-h4);
    font-weight: 700;
    line-height: 1.3;
}

.text-white {
    color: var(--c-white);
}

.text-red {
    color: var(--c-red);
}

.text-gray {
    color: #6B7280;
}

.text-black {
    color: var(--c-black);
}

.text-gray-light {
    color: #A0AEC0;
}

.bg-red {
    background-color: var(--c-red);
}

.bg-red-light {
    background-color: var(--c-red-light);
}

.bg-white {
    background-color: var(--c-white);
}

.bg-dark {
    background-color: var(--c-gray-dark);
}

.bg-gray-light {
    background-color: var(--c-gray-light);
}

.bold-text {
    font-weight: 700;
}

.caps-text {
    letter-spacing: 0.05em;
    font-family: var(--f-heading);
    font-size: 14px;
}

.text-center {
    text-align: center;
}

/* Margins */
.mb-5 {
    margin-bottom: 20px;
}

.mb-1 {
    margin-bottom: 4px;
}

.mb-10 {
    margin-bottom: 40px;
}

.mr-60 {
    margin-right: 60px;
}

.mt-10 {
    margin-top: 40px;
}

.p-10 {
    padding: 40px;
}

.p-16 {
    padding: 60px 0;
}

.pt-5 {
    padding-top: 20px;
}

/* Layout Utilities */
.container {
    width: 100%;
    max-width: var(--container-width);
    margin: 0 auto;
    padding: 0 var(--container-padding);
}

._flex {
    display: flex;
    align-items: center;
}

._flex-between {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

._flex-center {
    display: flex;
    align-items: center;
    justify-content: center;
}

.flex-center {
    display: flex;
    align-items: center;
    justify-content: center;
}

.flex-column {
    flex-direction: column;
}

._flex-column {
    flex-direction: column;
}

._flex-grow {
    flex-grow: 1;
}

.gap-4 {
    gap: 16px;
}

.relative {
    position: relative;
}

.inline-block {
    display: inline-block;
}

.overflow-hidden {
    overflow: hidden;
}

.width-full {
    width: 100%;
}

.width-33 {
    width: 33.333%;
}

.width-50 {
    width: 50%;
}

.width-66 {
    width: 66.666%;
}

.height-full {
    height: 100%;
}

.border-bottom {
    border-bottom: 1px solid #E5E7EB;
}

.border-top {
    border-top: 1px solid #E5E7EB;
}

.border-bottom-red {
    border-bottom: 2px solid var(--c-red);
}

/* Decorative */
.rounded-full {
    border-radius: 50%;
}

.rounded {
    border-radius: 8px;
}

.border-rounded {
    border-radius: var(--radius);
}

.shadow {
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
}

.divider-red {
    width: 80px;
    height: 4px;
    background: var(--c-red);
    margin-top: 10px;
    border-radius: 2px;
}

/* Desktop view classes */
._view1 {
    display: block;
}

._view2 {
    display: none;
}

/* 
 * 3. COMPONENTS 
 */

/* Buttons */
.btn,
.m-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 40px;
    padding: 0 24px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 700;
    font-family: var(--f-heading);
    line-height: 1;
    text-align: center;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    cursor: pointer;
    border: none;
    white-space: nowrap;
    text-decoration: none;
    gap: 12px;
}

.btn--red,
.m-btn-red {
    background: #C41E21;
    color: var(--c-white) !important;
    box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.05);
    outline: 1px solid #C41E21;
    outline-offset: -1px;
    opacity: 1;
}

.btn--red:hover,
.m-btn-red:hover {
    opacity: 1;
    box-shadow: 0px 4px 12px rgba(196, 30, 33, 0.4);
    transform: translateY(-1px);
}

.btn-large {
    height: 48px;
    padding: 0 32px;
}

.m-btn-blue {
    background: #24A1DE;
    color: white !important;
}

.m-btn-lightblue {
    background: #3F47EB;
    color: white !important;
}

/* Removed conflicting button styles here */

.m-btn-outline {
    border: 1px solid #E5E7EB;
    color: var(--c-black);
}

.m-btn-outline:hover {
    border-color: var(--c-gray);
}

.m-btn-outline-red {
    border: 1px solid var(--c-red);
    color: var(--c-red);
    padding: 0 16px;
    border-radius: 8px;
    height: 40px;
}

/* Cleaned up redundant icon styles */

/* Logos */
.logo-icon {
    width: 48px;
    height: 48px;
    border-radius: 8px;
    font-family: var(--f-heading);
    font-weight: bold;
    font-size: 20px;
    margin-right: 15px;
}

/* Header Donate Button */
.header__btn-donate {
    width: 160px;
    font-size: 14px;
}

/* Footer Logo */
.footer-logo__img {
    width: 200px;
    height: auto;
    max-width: 100%;
}

/* Location "Как добраться" Button */
.location__btn {
    width: 100%;
}


/* 
 * 4. BLOCKS 
 */

/* Header */
.header {
    height: 72px;
    position: sticky;
    top: 0;
    width: 100%;
    z-index: 100;
    background: #FFFFFF;
    box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.05);
    border-bottom: 1px solid #F3F4F6;
}

.header .container {
    height: 100%;
}

.header__inner {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.header__logo img {
    width: 200px;
    height: 70px;
    object-fit: contain;
}

.logo-text {
    color: var(--c-black);
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0.05em;
}

.nav ul {
    gap: 32px;
}

.nav a {
    color: #1F2937;
    font-size: 14px;
    font-family: var(--f-heading);
    font-weight: 700;
    line-height: 16px;
    letter-spacing: 0.30px;
    transition: color 0.3s ease;
}

.nav a:hover {
    color: var(--c-red);
}

.header__actions {
    gap: 20px;
}

.search-btn {
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Main Hero */
.main {
    position: relative;
    min-height: 300px;
    display: flex;
    align-items: center;
    padding: 0;
}

.main__img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    overflow: hidden;
}

.main__img::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.2) 50%, rgba(0, 0, 0, 0) 100%);
    z-index: 2;
}

.main__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
}

.main:hover .main__img img {
    transform: scale(1.05);
}

.main .container {
    position: relative;
    z-index: 3;
}

.main__title {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    color: var(--c-white);
    gap: 16px;
    text-transform: none;
    letter-spacing: -0.01em;
}

.main__label,
.main__name {
    font-family: var(--f-heading);
    font-size: 48px;
    font-weight: 900;
    line-height: 1.1;
    white-space: nowrap;
}

.main__logo-wrap {
    margin-bottom: 12px;
}

.main__logo {
    width: 120px;
    height: auto;
}



/* ==========================================================================
   BLOCK: Sunday Service (АБСОЛЮТНО РОВНАЯ СЕТКА)
   ========================================================================== */

.sunday-service {
    padding: 64px 0;
}

.sunday-title {
    font-family: var(--f-heading);
    font-size: var(--f-size-h2);
    font-weight: 700;
    margin-bottom: 48px;
    color: #111827;
}

/* --- ДЕСКТОП (ЖЕСТКАЯ ФИКСАЦИЯ ВЫСОТЫ) --- */
.sunday__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    /* СЕКРЕТНОЕ ОРУЖИЕ: Жестко фиксируем высоту всего ряда. Теперь он не поплывет НИКОГДА. */
    grid-auto-rows: 524px;
}

.sunday__subgrid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    /* Идеально делит 524px пополам */
    grid-template-rows: 1fr 1fr;
    gap: 24px;
    height: 100%;
}

.sunday__grid--no-large {
    grid-template-columns: 1fr;
    grid-auto-rows: auto;
}

.sunday__grid--no-large .sunday__subgrid {
    height: auto;
    grid-template-rows: auto;
}

.sunday__subgrid--count-1 {
    grid-template-columns: 1fr;
}

.sunday__subgrid--count-2 {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto;
}

.sunday__subgrid--count-3 .sunday-card:last-child {
    grid-column: 1 / -1;
}

.sunday-card {
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    /* Контент прижат к низу */
    padding: 32px;
    width: 100%;
    height: 100%;
    transition: box-shadow var(--transition);
}

.sunday-card:hover .card-bg {
    transform: scale(1.08);
}

/* --- ГЛАВНАЯ КАРТОЧКА (ДЕСКТОП) --- */
.sunday-card--large {
    grid-column: 1 / 2;
    padding: 40px;
}

.sunday-card--large:hover .card-bg {
    transform: scale(1.05);
}

.card-img-wrap {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    z-index: 1;
}

.sunday-card .card-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 1;
    transition: transform 0.6s ease;
}

.sunday-card .card-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(0deg, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.2) 50%, rgba(0, 0, 0, 0) 100%);
    z-index: 2;
}

.sunday__grid .sunday-card__content {
    position: relative;
    z-index: 3;
    display: flex;
    flex-direction: column;
    gap: 8px;
    color: var(--c-white);
}

.sunday__grid .h3 {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: 4px;
    color: var(--c-white);
}

.sunday-card--large .h3 {
    font-size: var(--f-size-h2);
    margin-bottom: 12px;
}

.sunday-card--large .card-desc {
    font-family: var(--f-text);
    font-size: 18px;
    line-height: 1.5;
    max-width: 440px;
    color: rgba(255, 255, 255, 0.9);
    margin: 0 0 32px 0;
    /* Отступ до кнопки */
}

.sunday__subgrid .card-subtitle {
    font-family: var(--f-text);
    font-size: 12px;
    letter-spacing: 0.60px;
    color: rgba(255, 255, 255, 0.8);
}

/* ДЛИННАЯ КРАСНАЯ КНОПКА (ДЕСКТОП) */
.sunday-card--large .btn-card {
    border-radius: 8px;
    font-size: 16px;
    padding: 16px 0;
    width: 280px;
    /* <--- Задал фиксированную ширину, чтобы она была длинной */
    text-align: center;
    font-weight: 700;
    letter-spacing: 0.5px;
    background: #C41E21;
    color: var(--c-white) !important;
    cursor: pointer;
    border: none;
    transition: all var(--transition);
}

.sunday-card--large .btn-card:hover {
    filter: brightness(1.2) !important;
}

.btn-more-mobile {
    display: none;
}


/* --- ПЛАНШЕТЫ --- */
@media (max-width: 1024px) {
    .sunday__grid {
        grid-template-columns: 1fr;
        grid-auto-rows: auto;
        /* Отключаем жесткую высоту */
    }

    .sunday-card--large {
        min-height: 400px;
    }
}


/* ==========================================================================
   МОБИЛЬНАЯ ВЕРСИЯ (С ЖЕСТКИМИ ПЕРЕОПРЕДЕЛЕНИЯМИ)
   ========================================================================== */
@media (max-width: 768px) {
    .container {
        padding: 0 20px !important;
        /* Значительно расширяем контентную область */
    }

    .sunday-service {
        padding: 40px 0;
    }

    .sunday-title {
        font-size: 28px !important;
        text-align: center;
        margin-bottom: 24px;
        line-height: 1.2;
    }

    .sunday__grid {
        gap: 16px !important;
        grid-auto-rows: auto;
    }

    /* --- ГЛАВНАЯ КАРТОЧКА (МОБИЛКА: ИДЕАЛЬНАЯ КОМПАКТНАЯ ВЫСОТА) --- */
    .sunday-card--large {
        /* ЖЕСТКО СНИЖАЕМ ВЫСОТУ: */
        min-height: 260px !important;
        /* Аккуратные отступы сверху и снизу сформируют правильную форму: */
        padding: 32px 20px !important;

        justify-content: center !important;
        /* Центрируем весь блок по вертикали */
        background: transparent !important;
        border: none !important;
    }

    .sunday-card--large .card-bg {
        display: block !important;
    }

    /* --- ВОЗВРАЩАЕМ И УСИЛИВАЕМ ЗАТЕМНЕНИЕ ФОНА --- */
    .sunday-card--large .card-overlay {
        display: block !important;
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: 100% !important;
        /* Делаем градиент потемнее, чтобы белый текст читался идеально */
        background: linear-gradient(0deg, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0.4) 50%, rgba(0, 0, 0, 0.1) 100%) !important;
        z-index: 2 !important;
    }

    .sunday-card--large .sunday-card__content {
        padding: 0 !important;
        height: auto !important;
        /* Контент занимает ровно столько места, сколько нужно */
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: flex-start;
        text-align: left;
    }

    .sunday-card--large .h3 {
        font-size: 32px !important;
        line-height: 1.15 !important;
        color: var(--c-white) !important;
        margin-bottom: 12px !important;
    }

    .sunday-card--large .card-desc {
        font-size: 16px !important;
        line-height: 1.5 !important;
        color: rgba(255, 255, 255, 0.9) !important;
        margin-bottom: 24px !important;
        flex-grow: 0 !important;
        /* Текст не расползается */
    }

    /* --- КНОПКА С ЭФФЕКТОМ ПРИ НАВЕДЕНИИ --- */
    .sunday-card--large .btn-card {
        width: 100% !important;
        display: block !important;
        background: #C41E21 !important;
        /* Базовый красный */
        color: var(--c-white) !important;
        padding: 16px 0 !important;
        margin-top: 0 !important;
        border: none !important;
        transition: background-color 0.3s ease !important;
        /* Плавный переход */
        position: relative !important;
        z-index: 3 !important;
        /* Чтобы кнопка была поверх затемнения */
    }

    /* Темнеет при наведении: */
    .sunday-card--large .btn-card:hover {
        filter: brightness(1.2) !important;
    }

    /* --- МАЛЕНЬКИЕ КАРТОЧКИ (МОБИЛКА: Белые + Квадратные фото) --- */
    .sunday__subgrid {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto;
        gap: 12px;
        /* Уменьшаем зазор, чтобы карточки были шире */
    }

    .sunday__subgrid .sunday-card {
        background: #FFFFFF !important;
        border: 1px solid #E5E7EB !important;
        border-radius: 8px;
        padding: 0 !important;
        justify-content: flex-start !important;
        height: 100% !important;
        /* Увеличили с auto для выравнивания */
        display: flex !important;
        flex-direction: column !important;
        overflow: hidden !important;
        /* Гарантируем, что фото не "вылезет" при увеличении */
    }

    .sunday__subgrid .card-img-wrap {
        position: relative !important;
        width: 100% !important;
        height: auto !important;
        aspect-ratio: 1 / 1 !important;
        overflow: hidden !important;
        z-index: 1;
    }

    .sunday__subgrid .card-bg {
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
    }

    .sunday__subgrid .card-overlay {
        display: none !important;
        /* Прячем затемнение */
    }

    .sunday__subgrid .sunday-card__content {
        padding: 16px !important;
        color: #111827 !important;
        display: flex !important;
        flex-direction: column !important;
        flex-grow: 1 !important;
        /* Позволяет контенту занимать всё место до кнопки */
    }

    .sunday__subgrid .h3 {
        font-size: 16px !important;
        color: #111827 !important;
        margin-bottom: 4px !important;
    }

    .sunday__subgrid .card-subtitle {
        font-size: 13px !important;
        color: #6B7280 !important;
        margin-bottom: 16px !important;
    }

    /* ПРИНУДИТЕЛЬНЫЙ ФИКС КНОПКИ В МАЛЕНЬКИХ КАРТОЧКАХ */
    .sunday__subgrid .sunday-card .btn-more-mobile {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 100% !important;
        height: 40px !important;
        padding: 0 !important;
        /* Жестко сбрасываем любой сторонний фон на наш стандартный серый */
        background: #F9FAFB !important;
        border: 1px solid #E5E7EB !important;
        border-radius: 8px !important;
        color: #333333 !important;
        font-size: 14px !important;
        font-weight: 700 !important;
        font-family: var(--f-heading) !important;
        text-align: center !important;
        margin-top: auto !important;
        transition: background 0.3s ease !important;
    }

    /* Эффект наведения выравниваем под общий стиль */
    .sunday__subgrid .sunday-card .btn-more-mobile:hover {
        background: #F3F4F6 !important;
        /* Чуть темнее при наведении */
        color: #111827 !important;
    }

    /* ==========================================================================
       БЛОК СОБЫТИЙ (МОБИЛКА: КРУПНЫЙ ДИЗАЙН КАК НА МАКЕТЕ)
       ========================================================================== */

    .events__top {
        margin-bottom: 32px !important;
        padding-bottom: 0 !important;
        border-bottom: none !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        justify-content: flex-start !important;
    }

    .events__header {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
    }

    /* Огромный заголовок секции */
    .events__header .h2 {
        font-size: 32px !important;
        /* Reduces slightly for small screens */
        line-height: normal !important;
        margin-bottom: 12px !important;
        color: #333333 !important;
        width: 100% !important;
        max-width: none !important;
    }

    .events__header .divider-red {
        margin-top: 0 !important;
    }

    /* Прячем стрелки слайдера, если они мешают на мобилке (обычно листают свайпом) */
    .events__top .swiper-nav {
        display: none !important;
    }

    /* Сама карточка события */
    .event-card {
        padding: 24px !important;
        border-radius: 12px !important;
        /* Чуть мягче углы */
    }

    .event-card__header {
        margin-bottom: 24px !important;
    }

    /* Плашка даты (Светло-красный фон, темно-красный текст) */
    .event-date {
        background-color: #FEF2F2 !important;
        color: #C41E21 !important;
        font-size: 14px !important;
        padding: 8px 16px !important;
        border-radius: 6px !important;
        box-shadow: none !important;
    }

    /* Плашка времени (Белый фон, бордер) */
    .event-time {
        background-color: #FFFFFF !important;
        color: #111827 !important;
        font-size: 14px !important;
        font-weight: 700 !important;
        padding: 8px 16px !important;
        border: 1px solid #F3F4F6 !important;
        border-radius: 6px !important;
    }

    /* Крупный заголовок внутри карточки */
    .event-card .h4 {
        font-size: 24px !important;
        line-height: 1.3 !important;
        margin-bottom: 12px !important;
        color: #333333 !important;
    }

    /* Текст описания */
    .event-card .text {
        font-size: 14px !important;
        line-height: 1.5 !important;
        margin-bottom: 32px !important;
        color: #6B7280 !important;
    }

    /* Большая кнопка "ПОДРОБНЕЕ" */
    .event-card .btn-more {
        height: 40px !important;
        font-size: 14px !important;
        font-weight: 700 !important;
        letter-spacing: 0.5px !important;
        background: transparent !important;
        border: 1px solid #E5E7EB !important;
        color: #333333 !important;
        border-radius: 8px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 100% !important;
        transition: background 0.3s ease !important;
        /* Добавили плавность */
    }

    /* Эффект потемнения при наведении/нажатии */
    .event-card .btn-more:hover {
        background: #F3F4F6 !important;
        /* Приятный светло-серый цвет */
        color: #111827 !important;
    }

    /* --- МОБИЛКА: Перестраиваем слайдер в вертикальный список --- */
    /* Жестко переопределяем стили Swiper, превращая его в обычную колонку */
    .events-slider .swiper-wrapper {
        display: flex !important;
        flex-direction: column !important;
        transform: none !important;
        /* Отменяем прокрутку свайпера */
        gap: 16px !important;
        width: 100% !important;
        box-sizing: border-box;
    }

    .events-slider .swiper-slide {
        width: 100% !important;
        margin-right: 0 !important;
        /* Сбрасываем отступы свайпера */
        height: auto !important;
        display: flex;
    }

    /* МАГИЯ: Прячем все карточки начиная с 4-й, пока нет класса .is-expanded */
    .events-slider:not(.is-expanded) .swiper-slide:nth-child(n+4) {
        display: none !important;
    }

    /* Контейнер для кнопки */
    .events__mobile-more {
        display: block;
        margin-top: 24px;
    }

    /* Дизайн кнопки "Все события" с белым фоном и стрелкой */
    .btn-more-events {
        width: 100% !important;
        height: 40px !important;
        background: #FFFFFF !important;
        /* Белый фон */
        border: 1px solid #E5E7EB !important;
        border-radius: 8px !important;
        color: #333333 !important;
        font-size: 14px !important;
        font-weight: 700 !important;
        font-family: var(--f-heading) !important;
        cursor: pointer !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 8px !important;
        /* Отступ между текстом и стрелкой */
        transition: background 0.3s ease !important;
    }

    .btn-more-events:hover {
        background: #F9FAFB !important;
    }

    /* Плавный переворот стрелки */
    .btn-more-icon {
        transition: transform 0.3s ease !important;
    }

    /* Когда список раскрыт (есть класс is-expanded), стрелка смотрит вверх */
    .events-slider.is-expanded~.events__mobile-more .btn-more-icon {
        transform: rotate(180deg) !important;
    }
}

/* Events */
/* Events Section */
.events {
    padding: 64px 0;
    background-color: #F6F5F3;
    border-top: 1px solid #E5E7EB;
}

.events__top {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    padding-bottom: 24px;
    border-bottom: 1px solid #D1D5DB;
    margin-bottom: 40px;
}

.events__header {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.events__top .h2 {
    font-size: var(--f-size-h2);
    font-weight: 700;
    margin-bottom: 0;
}



.events-slider .swiper-wrapper {
    display: flex;
    align-items: stretch;
}

.events-slider .swiper-slide {
    height: auto;
    display: flex;
    flex-shrink: 0;
}

.swiper-nav.is-hidden {
    display: none !important;
}

.event-card {
    background: var(--c-white);
    padding: 24px;
    border-radius: 8px;
    outline: 1px solid #E5E7EB;
    outline-offset: -1px;
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    transition: all var(--transition);
}

.event-card--skeleton {
    pointer-events: none;
}

.event-skeleton {
    display: block;
    border-radius: 8px;
    background: linear-gradient(90deg, #ECEFF3 25%, #F6F8FB 40%, #ECEFF3 60%);
    background-size: 240% 100%;
    animation: event-skeleton-shimmer 1.2s ease-in-out infinite;
}

.event-skeleton--chip {
    width: 88px;
    height: 24px;
}

.event-skeleton--title {
    width: 72%;
    height: 26px;
    margin-bottom: 12px;
}

.event-skeleton--text {
    width: 100%;
    height: 12px;
    margin-bottom: 10px;
}

.event-skeleton--text-short {
    width: 82%;
    margin-bottom: 24px;
}

.event-skeleton--button {
    width: 100%;
    height: 40px;
}

@keyframes event-skeleton-shimmer {
    0% {
        background-position: 100% 0;
    }
    100% {
        background-position: -100% 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .event-skeleton {
        animation: none;
    }
}

.event-card:hover {
    box-shadow: 0px 4px 6px -1px rgba(0, 0, 0, 0.1), 0px 2px 4px -1px rgba(0, 0, 0, 0.06);
}

.event-card__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
}

.event-date {
    padding: 4px 12px;
    background-color: #C41E21 !important;
    color: #FFFFFF !important;
    font-size: 12px;
    font-weight: 700;
    font-family: var(--f-heading);
    border-radius: 8px;
    box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.05);
    letter-spacing: 0.60px;
    display: inline-block;
}

.event-time {
    padding: 4px 12px;
    border-radius: 8px;
    border: 1px solid #E5E7EB !important;
    color: #6B7280;
    font-size: 12px;
    font-weight: 700;
    font-family: var(--f-heading);
    display: inline-block;
}

.event-card .h4 {
    font-size: 18px;
    font-weight: 700;
    color: #333333;
    margin-bottom: 8px;
    line-height: 28px;
}

.event-card .text {
    flex: 1;
    color: #6B7280;
    font-size: 14px;
    font-family: var(--f-text);
    line-height: 20px;
    margin-bottom: 24px;
}

.btn-more {
    background: #F9FAFB;
    color: #374151 !important;
    height: 40px;
    width: 100%;
    border-radius: 8px;
    outline: 1px solid #E5E7EB;
    outline-offset: -1px;
    font-size: 14px;
}

.btn-more:hover {
    background: #F3F4F6;
}

.swiper-nav {
    display: flex;
    gap: 12px;
}

.nav-btn-prev,
.nav-btn-next {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    background: #FFFFFF;
    border: 1px solid #E2E8F0;
    cursor: pointer;
    transition: all 0.3s ease;
    user-select: none;
    border-radius: 50%;
    overflow: hidden;
    position: relative;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

.nav-btn-prev img,
.team-prev img {
    transform: rotate(90deg);
    width: 16px;
    height: 16px;
}

.nav-btn-next img,
.team-next img {
    transform: rotate(-90deg);
    width: 16px;
    height: 16px;
}

.nav-btn-prev:hover,
.nav-btn-next:hover {
    border-color: var(--c-red);
    background-color: var(--c-red);
}

.nav-btn-prev:hover img,
.team-prev:hover img {
    filter: brightness(0) invert(1);
}

.nav-btn-next:hover img,
.team-next:hover img {
    filter: brightness(0) invert(1);
}

.life-prev:hover img,
.life-next:hover img {
    filter: brightness(0) invert(1);
}

.swiper-button-disabled {
    opacity: 0.3 !important;
    cursor: default;
}

.location-section {
    padding: 64px 0;
    background: #FFFFFF;
    border-top: 1px solid #E5E7EB;
}

.location-container {
    display: flex;
    background: #FFFFFF;
    border: 1px solid #E5E7EB;
    border-radius: 12px;
    overflow: hidden;
    min-height: 480px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.location-info {
    width: 373px;
    padding: 40px;
    background: #FFFFFF;
    border-right: 1px solid #E5E7EB;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.location-badge {
    padding: 4px 12px;
    background: #FEF2F2;
    border-radius: 8px;
    border: 1px solid #C41E21;
    color: #C41E21;
    font-size: 12px;
    font-weight: 700;
    line-height: 16px;
    letter-spacing: 1.2px;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 16px;
    align-self: flex-start;
}

.location-title {
    font-size: var(--f-size-h2);
    font-weight: 700;
    font-family: var(--f-heading);
    line-height: 1.2;
    color: #111827;
    letter-spacing: -0.6px;
    margin-bottom: 32px;
}

.location-details {
    display: flex;
    flex-direction: column;
    gap: 32px;
    margin-bottom: 32px;
}

.location-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.location-item-icon {
    width: 36px;
    height: 36px;
    flex-shrink: 0;
    display: flex;
    align-items: flex-start;
    justify-content: center;
}

.location-item-icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.location-item-content {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.location-item-title {
    font-size: 16px;
    font-weight: 700;
    font-family: var(--f-heading);
    color: #333333;
    line-height: 24px;
}

.location-item-text {
    font-size: 14px;
    font-family: var(--f-text);
    color: #6B7280;
    line-height: 20px;
}

.location-item-schedule {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.schedule-row {
    font-size: 14px;
    line-height: 20px;
}

.schedule-label {
    font-size: 16px;
    line-height: 24px;
    font-family: var(--f-heading);
    color: #333333;
    font-weight: 700;
}

.schedule-value {
    font-size: 14px;
    line-height: 20px;
    font-family: var(--f-text);
    color: #4B5563;
    font-weight: 400;
}

#btn-transport {
    width: 100%;
    height: 48px !important;
    padding: 0 !important;
    font-size: 16px;
    font-weight: 700;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0px 4px 6px -1px rgba(0, 0, 0, 0.1), 0px 2px 4px -2px rgba(0, 0, 0, 0.1);
    transition: all var(--transition);
}

.location-info .btn:hover {
    box-shadow: 0px 10px 15px -3px rgba(196, 30, 33, 0.3);
    transform: translateY(-2px);
}

.location-map-wrap {
    flex: 1;
    position: relative;
    background: #F3F4F6;
}

#map {
    width: 100%;
    height: 100%;
}

.map-marker-static {
    position: absolute;
    --size: 48px;
    width: var(--size);
    height: var(--size);
    margin-left: calc(var(--size) / -2);
    margin-top: calc(var(--size) * -1);
    z-index: 10;
    transition: all 0.3s ease;
}

#map[data-zoom="high"] .map-marker-static {
    --size: 32px;
}

#map[data-zoom="low"] .map-marker-static {
    --size: 60px;
}

.map-marker-static img {
    width: 100%;
    height: 100%;
    display: block;
}

/* Contacts CTA */
.contacts-cta {
    background: #2D2D2D;
    /* Same as mobile mockup */
    color: #FFFFFF;
    padding: 80px 0;
}

.contacts-cta__inner {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    /* Aligned with top of the title initially */
    gap: 60px;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px;
}

.contacts-cta__text {
    flex: 1;
}

.contacts-cta__title {
    font-family: var(--f-heading);
    font-size: var(--f-size-h2);
    font-weight: 900;
    line-height: 1.1;
    margin-bottom: 16px;
    letter-spacing: -0.02em;
}

.contacts-cta__description {
    color: #9CA3AF;
    font-size: 18px;
    font-family: var(--f-text);
    line-height: 1.5;
    max-width: 580px;
}

.contacts-cta__actions {
    display: flex;
    gap: 16px;
    flex: 1;
    justify-content: flex-end;
}

@media (min-width: 769px) {
    .contacts-cta__actions {
        margin-top: 64px;
        /* Offset to align with the top of the description ONLY on desktop */
    }

    .contacts-cta__actions .m-btn {
        width: 180px !important;
        height: 48px !important;
        padding: 0 20px !important;
        gap: 10px !important;
        font-size: 14px !important;
    }

    .contacts-cta__actions .m-btn svg {
        width: 20px !important;
        height: 20px !important;
        flex-shrink: 0 !important;
    }
}

/* Duplicate .m-btn-blue removed — defined in components section */

.m-btn-indigo {
    background: #3F47EB;
    color: #FFFFFF !important;
}

.m-btn-red:hover,
.btn--red:hover,
.m-btn-blue:hover,
.m-btn-indigo:hover {
    filter: brightness(1.2) !important;
}

/* Cleaned up redundant SVG styles */

/* Footer */
.footer {
    padding: 64px 0 32px 0;
    background: #F9FAFB;
    border-top: 1px solid #E5E7EB;
    display: flex;
    flex-direction: column;
    align-items: center;
    font-family: var(--f-text);
}

.footer-inner {
    width: 100%;
    max-width: 1168px;
    padding-left: 24px;
    padding-right: 24px;
    display: flex;
    flex-direction: column;
    gap: 48px;
}

.footer-columns {
    display: flex;
    gap: 48px;
    justify-content: space-between;
    align-items: flex-start;
    width: 100%;
}

.footer-col {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.footer-logo-col {
    gap: 23px;
}

.footer-text {
    font-size: 14px;
    line-height: 1.6;
    color: #6B7280;
}

.footer-col-title {
    padding-bottom: 8px;
    border-bottom: 2px solid #C41E21;
    display: inline-block;
    color: #111827;
    font-size: 14px;
    font-family: var(--f-heading);
    font-weight: 700;
    letter-spacing: 0.7px;
    margin-bottom: 0;
    /* Set to 0 so the 24px gap of the container handles the spacing exclusively */
}

.footer-links-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.footer-link {
    color: #6B7280;
    font-size: 14px;
    font-family: var(--f-text);
    text-decoration: none;
    transition: color 0.3s ease, transform 0.2s ease;
}

.footer-link:hover {
    color: #C41E21;
}

.footer-socials {
    display: flex;
    gap: 16px;
    margin-top: 8px;
}

.footer-social-link {
    width: 32px;
    height: 32px;
    border-radius: 4px;
    display: flex;
    justify-content: center;
    align-items: center;
    text-decoration: none;
    transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275), filter 0.3s ease;
}

.footer-social-link:hover {
    transform: translateY(-3px);
    filter: brightness(1.2);
}

.footer-social-link.vk {
    background: #2787F5;
}

.footer-social-link.tg {
    background: #24A1DE;
}

.footer-social-link.mx {
    background: #3F47EB;
}

.footer-social-link img {
    width: 24px;
    height: 24px;
    object-fit: contain;
}

.footer-external-link {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    background: #FFFFFF;
    border: 1px solid #E5E7EB;
    border-radius: 4px;
    color: #111827;
    font-size: 13px;
    font-family: var(--f-heading);
    font-weight: 700;
    text-decoration: none;
    transition: all 0.3s ease;
}

.footer-external-link:hover {
    border-color: #C41E21;
    color: #C41E21;
    box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.05);
}

.footer-external-link .link-icon {
    width: 18px;
    height: 18px;
    color: #C41E21;
}

.footer-bottom {
    border-top: 1px solid #E5E7EB;
    padding-top: 32px;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
}

.footer-bottom-links {
    display: flex;
    gap: 32px;
}

.footer-bottom-link {
    color: #6B7280;
    font-size: 12px;
    text-decoration: none;
    transition: color 0.3s ease;
}

.footer-bottom-link:hover {
    color: #C41E21;
}

.footer-copyright {
    color: #9CA3AF;
    font-size: 12px;
    text-align: center;
}

/* 
 * 5. RESPONSIVE (Mobile First / Desktop overrides )
 */
@media (max-width: 1024px) {

    .events__grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .location-box {
        flex-direction: column;
    }

    .location__info,
    .location__map-container {
        width: 100%;
    }

    .location__map-container {
        height: 400px;
    }

    .footer__grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 768px) {
    ._view1 {
        display: none;
    }

    ._view2 {
        display: block;
    }

    .header__logo .logo-text {
        display: none;
    }

    .nav {
        display: none;
    }

    .header__actions .btn {
        display: none;
    }

    .main {
        min-height: 200px !important;
        /* Увеличили высоту до комфортного уровня */
        padding: 40px 0 !important;
    }

    .main__title {
        flex-direction: column !important;
        justify-content: center !important;
        gap: 4px !important;
        display: flex !important;
        align-items: center !important;
    }

    .main__label {
        font-size: 26px !important;
        /* Унифицированный размер */
        font-weight: 700;
        margin-bottom: 0 !important;
        color: var(--c-white);
        line-height: 1.1;
    }

    .main__name {
        font-size: 26px !important;
        /* Тот же размер для единообразия */
        white-space: nowrap !important;
        text-align: center;
        line-height: 1.2;
        letter-spacing: -0.5px;
        max-width: none !important;
    }

    .main__logo-wrap {
        margin-bottom: 12px !important;
    }

    .main__logo {
        width: 80px !important;
        height: auto;
    }


    /* "Предстоящие события" section */
    .events-header {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 20px !important;
    }

    .events-header .h2 {
        font-size: 36px !important;
        line-height: 1.1;
    }

    .events__grid {
        grid-template-columns: 1fr;
    }

    .event-card {
        min-height: 269px;
    }

    .event-card__title {
        font-size: 20px !important;
    }

    .btn-more {
        width: 100% !important;
        justify-content: center !important;
    }

    /* ==========================================================================
       БЛОК ЛОКАЦИИ И КАРТЫ (МОБИЛКА: ИДЕАЛЬНЫЙ FULL-BLEED)
       ========================================================================== */

    .location-section {
        padding: 48px 0 0 0 !important;
        background: #FFFFFF !important;
        border: none !important;
        overflow: hidden !important;
        /* Защита от горизонтального скролла */
    }

    /* Возвращаем главному контейнеру его законные отступы! */
    .location-section .container {
        padding-left: 24px !important;
        padding-right: 24px !important;
    }

    .location-container {
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
        border: none !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        overflow: visible !important;
        /* ВАЖНО: разрешаем карте выходить за границы блока */
    }

    .location-info {
        width: 100% !important;
        padding: 0 !important;
        /* Сброс, так как отступы теперь держит .container */
        border: none !important;
        margin-bottom: 32px !important;
        /* Отступ текста от карты */
    }

    /* --- МАГИЯ ДЛЯ КАРТЫ: Идеально от края до края экрана --- */
    .location-map-wrap {
        display: block !important;
        flex: none !important;
        /* Умная формула: ширина 100% экрана, сдвиг влево ровно на размер отступа */
        width: 100vw !important;
        margin-left: calc(-50vw + 50%) !important;

        height: 380px !important;
        /* Фиксируем высоту */
        min-height: 380px !important;
        /* Гарантия, что карта больше не исчезнет! */
        position: relative !important;
    }

    #map {
        width: 100% !important;
        height: 100% !important;
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
    }

    /* --- Иконки и плашки (Оставляем те же красивые стили) --- */
    .location-badge {
        border-radius: 8px !important;
        background: #FEF2F2 !important;
        color: #C41E21 !important;
        border: 1px solid #FECACA !important;
        font-size: 12px !important;
        font-weight: 700 !important;
        padding: 6px 16px !important;
        margin-bottom: 24px !important;
        letter-spacing: 1px !important;
    }

    .location-title {
        font-size: 28px !important;
        line-height: 1.15 !important;
        margin-bottom: 32px !important;
        color: #111827 !important;
    }

    .location-item {
        display: flex !important;
        align-items: flex-start !important;
        gap: 16px !important;
        margin-bottom: 24px !important;
    }

    /* ==========================================================================
       МАКСИМАЛЬНОЕ УВЕЛИЧЕНИЕ ИКОНОК (МОБИЛКА)
       ========================================================================== */

    /* 1. Делаем сам светло-красный кружок очень крупным */
    .location-item-icon {
        width: 56px !important;
        /* Было 44px, стало 56px */
        height: 56px !important;
        /* Было 44px, стало 56px */
        background-color: #FEF2F2 !important;
        border-radius: 50% !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        flex-shrink: 0 !important;
        margin-top: 0px !important;
        /* Сбросили отступ, так как кружок крупный */
    }

    /* 2. Делаем сами картинки (пин и часики) массивными и жирными */
    .location-item-icon img,
    .location-item-icon svg {
        width: 40px !important;
        /* Было 32px, увеличили для лучшей пропорции в 56px круге */
        height: 40px !important;
        object-fit: contain !important;
    }

    .location-item-title,
    .schedule-label {
        font-size: 18px !important;
        font-weight: 700 !important;
        color: #111827 !important;
        margin-bottom: 6px !important;
        line-height: 1.3 !important;
    }

    .location-item-text,
    .schedule-value {
        font-size: 15px !important;
        color: #4B5563 !important;
        line-height: 1.5 !important;
    }

    .location-item-schedule {
        display: flex !important;
        flex-direction: column !important;
        gap: 8px !important;
    }

    #btn-transport {
        margin-top: 24px !important;
        height: 48px !important;
        padding: 0 !important;
        /* Иерархия: Large кнопка */
        font-size: 16px !important;
    }

    /* Contact Section Mobile */
    .contacts-cta {
        padding: 64px 24px !important;
        background: #2D2D2D !important;
        /* Mobile-specific background color */
    }

    .contacts-cta__inner {
        flex-direction: column !important;
        align-items: center !important;
        gap: 32px !important;
        text-align: center !important;
        padding: 0 !important;
        max-width: 100% !important;
    }

    .contacts-cta__text {
        width: 100% !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        gap: 12px !important;
    }

    .contacts-cta__title {
        font-size: 28px !important;
        font-weight: 700 !important;
        color: #FFFFFF !important;
        margin-bottom: 0 !important;
        line-height: 1.1 !important;
        letter-spacing: -0.3px !important;
        max-width: 100% !important;
    }

    .contacts-cta__description {
        font-size: 15px !important;
        color: #9CA3AF !important;
        max-width: 280px !important;
        margin: 0 auto !important;
        line-height: 1.4 !important;
        display: block !important;
    }

    .contacts-cta__actions {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        gap: 12px !important;
        width: 100% !important;
        justify-content: center !important;
        margin-top: 0 !important;
        /* Reset desktop margin */
    }

    .contacts-cta__actions .m-btn {
        width: 100% !important;
        max-width: 240px !important;
        height: 48px !important;
        /* Унификация: 48px для всех Large кнопок */
        border-radius: 8px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 12px !important;
        padding: 0 20px !important;
        border: none !important;
        box-shadow: 0 6px 14px rgba(0, 0, 0, 0.25) !important;
        flex-shrink: 0 !important;
    }

    .contacts-cta__actions .m-btn svg {
        width: 24px !important;
        /* Scaled down from 40px */
        height: 24px !important;
        margin: 0 !important;
        flex-shrink: 0 !important;
    }

    .contacts-cta__actions .m-btn span {
        font-size: 14px !important;
        font-weight: 800 !important;
        line-height: 1.1 !important;
        text-align: center !important;
        display: block !important;
        white-space: nowrap !important;
        letter-spacing: 0.3px !important;
    }

    /* Override any flex stacking on buttons to keep text in one line */
    .m-btn-red span,
    .contacts-cta__actions .m-btn span {
        display: inline-block !important;
    }

    /* Footer Section Mobile */
    .footer {
        padding: 48px 24px 112px 24px !important;
    }

    .footer-columns {
        flex-direction: row !important;
        flex-wrap: wrap !important;
        gap: 40px !important;
    }

    .footer-logo-col,
    .footer-col-links {
        width: 100% !important;
        flex: none !important;
    }

    .footer-col-nav {
        width: calc(50% - 20px) !important;
        flex: none !important;
    }

    .footer-bottom {
        align-items: flex-start !important;
    }

    .footer-bottom-links {
        flex-direction: column !important;
        gap: 12px !important;
        width: 100% !important;
        align-items: center !important;
        /* Center links on mobile */
        text-align: center !important;
    }

    .link-icon {
        width: 14px !important;
        height: 14px !important;
    }
}

/* Mobile Bottom Navigation Bar */
.mobile-navbar {
    display: none;
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 70px;
    background: white;
    box-shadow: 0px -5px 15px rgba(0, 0, 0, 0.05);
    border-top: 1px solid #E5E7EB;
    z-index: 3000; /* Выше чем оверлей меню */
}

.mobile-navbar__inner {
    display: flex;
    justify-content: space-around;
    align-items: center;
    height: 100%;
    max-width: 500px;
    margin: 0 auto;
}

.mobile-navbar__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    text-decoration: none;
    color: #9CA3AF;
    /* Серый цвет по умолчанию */
    font-size: 10px;
    font-family: var(--f-heading);
    font-weight: 700;
    letter-spacing: 0.22px;
    flex: 1;
    /* Равномерное распределение */
    height: 100%;
}

.mobile-navbar__item svg {
    display: block;
    margin: 0 auto;
    transition: color 0.3s ease;
}

.mobile-navbar__item--active {
    color: #C41E21 !important;
}

.mobile-navbar__item--active svg {
    color: #C41E21 !important;
}

/* --- MOBILE MENU --- */

.mobile-menu-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.4);
    z-index: 2000;
    display: none;
    opacity: 0;
    transition: opacity 0.4s ease;
    backdrop-filter: blur(2px);
}

.mobile-menu-overlay.active {
    opacity: 1;
}

.mobile-menu-sheet {
    position: absolute;
    bottom: -100%;
    left: 0;
    width: 100%;
    background: white;
    border-top-left-radius: 24px;
    border-top-right-radius: 24px;
    padding: 20px 20px 40px; /* Уменьшил нижний отступ, так как теперь стоп выше */
    transition: bottom 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0px -10px 25px rgba(0, 0, 0, 0.08);
}

.mobile-menu-overlay.active .mobile-menu-sheet {
    bottom: 70px; /* Останавливается точно над навигатором */
}

.mobile-menu-handle {
    width: 40px;
    height: 4px;
    background-color: #E5E7EB;
    border-radius: 2px;
    margin: 0 auto 24px;
}

.mobile-menu-content {
    display: flex;
    flex-direction: column;
}

.mobile-menu-link {
    font-size: 16px;
    font-weight: 700;
    font-family: var(--f-heading);
    color: #1F2937;
    padding: 18px 0;
    border-bottom: 1px solid #F3F4F6;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    display: flex;
    align-items: center;
    justify-content: space-between;
    transition: all 0.25s ease-out;
    opacity: 0;
    transform: translateY(12px);
}

.mobile-menu-overlay.active .mobile-menu-link {
    opacity: 1;
    transform: translateY(0);
}

/* Light staggered animation */
.mobile-menu-overlay.active .mobile-menu-link:nth-child(1) { transition-delay: 0.05s; }
.mobile-menu-overlay.active .mobile-menu-link:nth-child(2) { transition-delay: 0.1s; }
.mobile-menu-overlay.active .mobile-menu-link:nth-child(3) { transition-delay: 0.15s; }
.mobile-menu-overlay.active .mobile-menu-link:nth-child(4) { transition-delay: 0.2s; }

.mobile-menu-link:hover, .mobile-menu-link:active {
    color: var(--c-red);
    padding-left: 8px;
}

.mobile-menu-link:last-child {
    border-bottom: none;
}

.mobile-menu-link::after {
    content: '';
    width: 8px;
    height: 8px;
    border-top: 2px solid #D1D5DB;
    border-right: 2px solid #D1D5DB;
    transform: rotate(45deg);
    transition: all 0.3s ease;
}

.mobile-menu-link:hover::after {
    border-color: var(--c-red);
    transform: rotate(45deg) translate(2px, -2px);
}

/* Navbar button animation */
.mobile-navbar__item {
    transition: transform 0.2s ease, color 0.3s ease;
}

.mobile-navbar__item:active {
    transform: scale(0.92);
}

.mobile-navbar__item svg {
    transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.mobile-navbar__item.is-menu-open {
    color: var(--c-red);
}

.mobile-navbar__item.is-menu-open svg {
    transform: rotate(90deg) scale(1.1);
}

@media (max-width: 768px) {
    .mobile-navbar {
        display: block;
    }
}

/* Modal Window Styles */
.modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.6);
    backdrop-filter: blur(2px);
    display: none;
    justify-content: center;
    align-items: center;
    z-index: 10000;
    padding: 16px;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.modal-overlay.active {
    display: flex;
    opacity: 1;
}

.modal-container {
    width: 500px;
    max-width: 100%;
    max-height: 90vh;
    background: white;
    box-shadow: 0px 25px 50px -12px rgba(0, 0, 0, 0.25);
    border-radius: 8px;
    position: relative;
    overflow-y: auto;
    transform: translateY(20px);
    transition: transform 0.3s ease;
}

.modal-overlay.active .modal-container {
    transform: translateY(0);
}

.modal-inner-wide {
    max-width: 800px;
    width: 90%;
}

.modal-inner {
    padding: 40px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.modal-header-badge {
    margin-bottom: 8px;
}

.modal-badge {
    display: inline-flex;
    padding: 4px 12px;
    background: #FEF2F2;
    border-radius: 6px;
    color: #C41E21;
    font-size: 12px;
    font-weight: 700;
    font-family: var(--f-heading);
    line-height: 16px;
    letter-spacing: 0.6px;
}

.modal-title {
    font-size: 28px;
    font-weight: 700;
    font-family: var(--f-heading);
    line-height: 40px;
    color: #333333;
    margin-bottom: 16px;
}

.modal-info-grid {
    display: flex;
    gap: 24px;
    margin-bottom: 24px;
    padding-top: 16px;
}

.modal-info-item {
    display: flex;
    gap: 12px;
}

.modal-info-icon {
    width: 20px;
    height: 20px;
    margin-top: 4px;
}

.modal-info-label {
    font-size: 14px;
    font-weight: 700;
    font-family: var(--f-heading);
    color: #6B7280;
    letter-spacing: 0.35px;
    line-height: 20px;
}

.modal-info-value {
    font-size: 18px;
    font-weight: 700;
    font-family: var(--f-text);
    color: #333333;
    line-height: 28px;
}

.modal-body {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.modal-text {
    font-size: 16px;
    font-family: var(--f-text);
    color: #4B5563;
    line-height: 26px;
}

.modal-text--bold {
    font-weight: 700;
}

.modal-close {
    position: absolute;
    top: 16px;
    right: 16px;
    width: 32px;
    height: 32px;
    background: #F3F4F6;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.3s ease;
    z-index: 10;
}

.modal-close:hover {
    background: #E5E7EB;
}

.modal-close::before,
.modal-close::after {
    content: '';
    position: absolute;
    width: 12px;
    height: 1.5px;
    background: #6B7280;
}

.modal-close::before {
    transform: rotate(45deg);
}

.modal-close::after {
    transform: rotate(-45deg);
}



/* Base Responsive for Map Route Modal */
@media (max-width: 768px) {
    .header {
        display: none;
    }




    /* Sunday Service Mobile Heading */
    .sunday-title {
        font-size: 32px;
        font-weight: 900;
        text-align: center;
        line-height: 1.2;
        margin: 0 auto 32px auto;
        text-transform: none;
        letter-spacing: -0.5px;
    }

    .sunday-service {
        padding: 56px 0;
    }


}

/* Hover effects for Footer links and buttons */
.footer a {
    transition: opacity 0.3s ease, filter 0.3s ease !important;
}

.footer a:hover {
    opacity: 0.8 !important;
}

/* --- ДЕСКТОП: Прячем мобильную кнопку --- */
@media (min-width: 769px) {
    .events__mobile-more {
        display: none !important;
    }
}


/* ==========================================================================
   MODAL WINDOW: HOW TO GET THERE
   ========================================================================== */

/* --- MODAL BASE --- */
.modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 4000;
    display: none;
    /* Переключается в JS */
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.modal.is-active {
    display: flex;
}

.modal__overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(17, 24, 39, 0.4);
    backdrop-filter: blur(4px);
}

.modal__content {
    position: relative;
    background: #fff;
    width: 100%;
    max-width: 1000px;
    border-radius: 16px;
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
    overflow: hidden;
    z-index: 2;
    animation: modalSlideUp 0.3s ease-out;
    font-family: var(--f-text);
}

@keyframes modalSlideUp {
    from {
        transform: translateY(20px);
        opacity: 0;
    }

    to {
        transform: translateY(0);
        opacity: 1;
    }
}

.modal__close {
    position: absolute;
    top: 24px;
    right: 24px;
    background: transparent;
    border: none;
    border-radius: 50%;
    width: 32px;
    height: 32px;
    cursor: pointer;
    color: #9CA3AF;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
    z-index: 10;
}

.modal__close:hover {
    color: #111827;
    transform: scale(1.1);
}

/* --- HEADER & BODY --- */
.modal__header {
    padding: 32px 40px 0;
}

.modal__header .h2 {
    font-size: var(--f-size-h3);
    font-weight: 700;
    font-family: var(--f-heading);
    color: #111827;
}

.modal__body {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 40px;
    padding: 32px 40px;
}

/* --- INFO COLUMN --- */
.modal__section {
    margin-bottom: 32px;
}

.modal__section-title {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
}

.modal__section-title h3 {
    font-size: 20px;
    font-weight: 400;
    color: #111827;
}

.modal-icon {
    object-fit: contain;
}

.icon-red {
    color: #C41E21;
}

.modal__station-card {
    background: #F9FAFB;
    border: none;
    border-radius: 8px;
    padding: 24px;
    margin-bottom: 16px;
}

.station-name {
    font-weight: 400;
    color: #111827;
    margin-bottom: 12px;
}

.transport-list {
    list-style: none;
    font-size: 14px;
    line-height: 1.6;
    color: #4B5563;
}

.transport-list strong {
    color: #111827;
    font-weight: 400;
}

.walk-note {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    font-weight: 400;
    color: #9CA3AF;
    padding-left: 4px;
}

.entry-guide {
    padding-left: 20px;
    color: #4B5563;
    line-height: 1.6;
}

.entry-guide li {
    margin-bottom: 12px;
    position: relative;
    list-style-type: none;
    padding-left: 4px;
}

.entry-guide li::before {
    content: "";
    position: absolute;
    left: -16px;
    top: 8px;
    width: 6px;
    height: 6px;
    background-color: #C41E21;
    border-radius: 50%;
}

/* --- MAP COLUMN --- */
.modal__map-container {
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid #E5E7EB;
    height: 100%;
    min-height: 400px;
}

/* --- FOOTER --- */
.modal__footer {
    padding: 24px 40px;
    background: #F9FAFB;
    border-top: 1px solid #E5E7EB;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: calc(24px + env(safe-area-inset-bottom));
}

.modal__help {
    display: flex;
    align-items: center;
    gap: 12px;
}

.help-label {
    display: block;
    font-size: 11px;
    font-weight: 400;
    color: #9CA3AF;
    letter-spacing: 0.8px;
    margin-bottom: 2px;
}

.help-phone {
    font-size: 19px;
    font-weight: 400;
    color: #111827;
    text-decoration: none;
}

.modal__btn {
    padding: 14px 28px;
    font-size: 14px;
    display: flex;
    align-items: center;
    gap: 10px;
}

/* --- MOBILE ADAPTATION --- */
@media (max-width: 768px) {
    .modal {
        padding: 0;
    }

    .modal__content {
        height: 100%;
        border-radius: 0;
        overflow-y: auto;
    }

    .modal__body {
        grid-template-columns: 1fr;
        gap: 24px;
        padding: 24px;
    }

    .modal__map-container {
        order: -1;
        min-height: 250px;
    }

    .modal__footer {
        flex-direction: column;
        gap: 20px;
        text-align: center;
        padding-bottom: calc(28px + env(safe-area-inset-bottom));
    }
}

/* Event Modal Mobile Fix - More Compact */
@media (max-width: 768px) {
    .modal-overlay .modal-inner {
        padding: 28px 20px !important;
    }

    .modal-overlay .modal-title {
        font-size: 22px !important;
        line-height: 1.2 !important;
        margin-bottom: 16px !important;
    }

    .modal-overlay .modal-info-grid {
        flex-direction: column !important;
        gap: 12px !important;
        margin-bottom: 16px !important;
        padding-top: 8px !important;
    }

    .modal-overlay .modal-info-item {
        gap: 10px !important;
    }

    .modal-overlay .modal-info-label {
        font-size: 10px !important;
        line-height: 1.2 !important;
        margin-bottom: 0 !important;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }

    .modal-overlay .modal-info-value {
        font-size: 13px !important;
        line-height: 1.4 !important;
    }

    .modal-overlay .modal-body {
        gap: 10px !important;
    }

    .modal-overlay .modal-text {
        font-size: 14px !important;
        line-height: 1.5 !important;
    }
}

/* 
 * 17. ABOUT US PAGE 
 */
.about-page-new {
    background-color: var(--c-white);
}

/* Вводная часть */
.about-intro {
    padding: 80px 0;
    text-align: center;
    max-width: 800px;
    margin: 0 auto;
}

.about-intro__title {
    font-family: var(--f-heading);
    font-weight: 700;
    font-size: var(--f-size-h1);
    /* Unified size */
    line-height: 1.2;
    color: var(--c-text);
    margin-bottom: 24px;
}

.about-intro__text {
    font-family: var(--f-text);
    font-weight: 400;
    font-size: var(--f-size-base);
    /* Unified text size */
    line-height: 1.6;
    color: var(--c-text);
}

/* Секция с лидерами */
.about-leaders {
    background-color: #F8F9FA;
    /* Светло-серый фон */
    padding: 80px 0;
}

.about-leaders__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: start;
}

/* Левая колонка (Епископ) */
.about-leaders__title {
    font-family: var(--f-heading);
    font-weight: 700;
    font-size: var(--f-size-h2);
    /* Unified H2 */
    color: var(--c-text);
    margin-bottom: 30px;
}

.about-leaders__placeholder {
    width: 100%;
    background-color: #E9ECEF;
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
}

.about-leaders__placeholder img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
}


/* Diagonal lines for placeholder */
.about-leaders__placeholder::before,
.about-leaders__placeholder::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    pointer-events: none;
}

.about-leaders__placeholder::before {
    background: linear-gradient(to bottom right, transparent 49.5%, #D0D4D9 49.5%, #D0D4D9 50.5%, transparent 50.5%);
}

.about-leaders__placeholder::after {
    background: linear-gradient(to top right, transparent 49.5%, #D0D4D9 49.5%, #D0D4D9 50.5%, transparent 50.5%);
}

.about-leaders__placeholder--main {
    aspect-ratio: 16 / 10;
    margin-bottom: 24px;
}

.about-leaders__placeholder--main svg {
    position: relative;
    z-index: 1;
}

.about-leaders__placeholder--service {
    aspect-ratio: 16 / 10;
    margin-top: 32px;
}

.about-leaders__placeholder--service span {
    position: relative;
    z-index: 1;
    font-family: var(--f-title);
    font-weight: 700;
    font-size: 16px;
    color: #8C939A;
    text-align: center;
    letter-spacing: 0.05em;
    line-height: 1.4;
}

.about-leaders__signature {
    margin-top: 24px;
    font-family: var(--f-title);
    font-weight: 700;
    font-size: 16px;
    color: var(--c-title);
    line-height: 1.4;
}

.about-leaders__text {
    font-family: var(--f-text);
    font-weight: 400;
    font-size: 16px;
    line-height: 1.6;
    color: var(--c-text);
}

/* Правая колонка (Карточка церкви) */
.about-leaders__card {
    background-color: var(--c-white);
    border: 1px solid var(--c-border);
    border-radius: 12px;
    padding: 40px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
}

.about-leaders__card-title {
    font-family: var(--f-title);
    font-weight: 700;
    font-size: 24px;
    color: var(--c-title);
    margin-bottom: 30px;
}

.about-leaders__card-subtitle {
    font-family: var(--f-title);
    font-weight: 700;
    font-size: 18px;
    color: var(--c-title);
    margin-bottom: 12px;
}

.about-leaders__card-text {
    font-family: var(--f-text);
    font-weight: 400;
    font-size: 16px;
    line-height: 1.6;
    color: var(--c-text);
}

.about-leaders__card-section {
    margin-bottom: 24px;
}

.about-leaders__card-section:last-child {
    margin-bottom: 0;
}

.about-leaders__card-divider {
    border: none;
    border-top: 1px solid var(--c-border);
    margin: 24px 0;
}

@media (max-width: 991px) {
    .about-intro {
        padding: 60px 0;
    }

    .about-leaders {
        padding: 60px 0;
    }

    .about-leaders__grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }
}

@media (max-width: 767px) {
    .about-intro {
        padding: 40px 0;
    }

    .about-intro__title {
        font-size: 32px;
    }

    .about-intro__text {
        font-size: 16px;
    }

    .about-leaders {
        padding: 40px 0;
    }

    .about-leaders__card {
        padding: 24px;
    }
}

/* СЕКЦИЯ НАША КОМАНДА */
.team {
    padding: 80px 0;
    background-color: var(--c-white);
}

.team__title {
    font-family: var(--f-heading);
    font-size: var(--f-size-h2);
    font-weight: 700;
    color: var(--c-text);
    text-align: center;
    margin-bottom: 48px;
}

.team-slider {
    position: relative;
    padding-bottom: 60px;
    /* Отступ для точек в мобайле */
}

.team-card {
    display: flex;
    flex-direction: column;
    transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
    cursor: pointer;
}

.team-card:hover {
    transform: translateY(-10px);
}

.team-card__image-placeholder {
    width: 100%;
    aspect-ratio: 1 / 1;
    background-color: var(--c-gray-light);
    border-radius: var(--radius);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 24px;
    position: relative;
    overflow: hidden;
    background-image:
        linear-gradient(to bottom right, transparent calc(50% - 1px), #E2E8F0 calc(50% - 1px), #E2E8F0 calc(50% + 1px), transparent calc(50% + 1px)),
        linear-gradient(to top right, transparent calc(50% - 1px), #E2E8F0 calc(50% - 1px), #E2E8F0 calc(50% + 1px), transparent calc(50% + 1px));
}

.team-card__image-placeholder img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
    transition: transform 0.7s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.team-card:hover .team-card__image-placeholder img {
    transform: scale(1.1);
}

.team-card__name {
    font-family: var(--f-heading);
    font-weight: 700;
    font-size: var(--f-size-h3);
    color: var(--c-text);
    margin-bottom: 8px;
}

.team-card__role {
    font-family: var(--f-heading);
    font-weight: 700;
    font-size: 14px;
    letter-spacing: 0.05em;
    color: var(--c-red);
    margin-bottom: 12px;
}

.team-card__desc {
    font-family: var(--f-text);
    font-size: var(--f-size-base);
    color: #6B7280;
    line-height: 1.5;
}

.team-modal__img-wrap {
    width: min(100%, 420px);
    aspect-ratio: 1 / 1;
    margin: 0 auto 24px;
    border-radius: 12px;
    overflow: hidden;
    background: #E2E8F0;
}

.team-modal__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Навигация слайдера */
.team-controls {
    display: block;
    margin-top: 0;
}

.team-prev,
.team-next {
    position: absolute;
    top: 180px;
    /* Опустили чуть ниже для лучшего центра по фото */
    transform: translateY(-50%);
    z-index: 10;
}

.team-prev {
    left: 8px;
}

.team-next {
    right: 8px;
}


/* На мобильных фиксим положение, чтобы стрелка не "прыгала", но оставляем другие эффекты */
.team-prev:hover,
.team-next:hover {
    transform: translateY(-50%) !important;
}

.team-pagination {
    bottom: 0 !important;
}

.team-pagination .swiper-pagination-bullet {
    width: 10px;
    height: 10px;
    background: #CBD5E1;
    opacity: 1;
}

.team-pagination .swiper-pagination-bullet-active {
    background: var(--c-red);
}

@media (min-width: 1024px) {
    .team-slider {
        padding-bottom: 0;
        padding: 0 60px;
        /* Место для стрелок по бокам */
    }

    .team-controls {
        display: block;
        margin-top: 0;
    }

    .team-prev,
    .team-next {
        position: absolute;
        top: 50%;
        bottom: auto;
        transform: translateY(-50%);
        width: 48px;
        height: 48px;
        margin-top: -80px;
        /* Поднимаем из-за текста под картинкой */
    }

    /* Переопределяем поведение с глобального :hover чтобы стрелки не сдвигались */
    .team-prev:hover,
    .team-next:hover {
        transform: translateY(calc(-50% - 1px));
    }

    .team-prev {
        left: 0;
    }

    .team-next {
        right: 0;
    }

    .team-pagination {
        display: none;
    }
}

@media (max-width: 991px) {
    .team {
        padding: 60px 0;
    }

    .team__title {
        margin-bottom: 32px;
    }

    .team-modal__img-wrap {
        width: min(100%, 320px);
    }
}

@media (max-width: 768px) {
    .team-slider {
        padding-bottom: 48px;
    }

    .team-card__image-placeholder {
        margin-bottom: 16px;
    }

    .team-card__desc {
        font-size: 14px;
        line-height: 1.45;
    }

    .team-modal__img-wrap {
        width: min(100%, 280px);
        margin-bottom: 16px;
    }
}

/* 
 * =====================================
 * НАШИ ЦЕННОСТИ (ABOUT PAGE)
 * =====================================
 */
.values {
    background-color: var(--c-gray-light);
    /* #F3F4F6 */
    padding: 100px 0;
}

.values__title {
    margin-bottom: 60px;
    text-align: center;
}

.values-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.values-grid.values-grid--count-1 {
    grid-template-columns: minmax(280px, 440px);
    justify-content: center;
}

.values-grid.values-grid--count-2 {
    grid-template-columns: repeat(2, minmax(280px, 1fr));
}

.values-card {
    background: var(--c-white);
    border: 1px solid #E2E8F0;
    border-radius: 12px;
    padding: 40px 32px;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.02);
    transition: all 0.3s ease;
    cursor: pointer;
}

.values-card:hover {
    transform: translateY(-8px);
    box-shadow: 0px 20px 25px -5px rgba(0, 0, 0, 0.1), 0px 10px 10px -5px rgba(0, 0, 0, 0.04);
}

.values-card__icon {
    width: 64px;
    height: 64px;
    background-color: #fcebeb;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 24px;
    color: var(--c-red);
}

.values-card__icon svg,
.values-card__icon img {
    width: 32px;
    height: 32px;
    object-fit: contain;
}

.values-card__title {
    font-family: var(--f-heading);
    font-weight: 700;
    font-size: 22px;
    color: #111827;
    margin-bottom: 16px;
    white-space: pre-line;
}

.values-card__text {
    font-family: var(--f-text);
    font-weight: 400;
    font-size: 16px;
    line-height: 1.45;
    color: #4B5563;
    width: 100%;
    max-width: 100%;
    margin: 0;
}

.values-card__read {
    display: none;
    align-items: center;
    justify-content: center;
    margin-top: 20px;
    min-width: 112px;
    height: 42px;
    padding: 0 22px;
    border: 0;
    border-radius: 8px;
    font-family: var(--f-title);
    font-size: 15px;
    font-weight: 700;
    color: var(--c-white);
    background: var(--c-red);
    cursor: pointer;
    transition: background-color 0.2s ease, transform 0.2s ease;
}

.values-card__read:hover,
.values-card__read:focus-visible {
    background: var(--c-red-dark);
    transform: translateY(-1px);
}

@media (max-width: 1024px) {
    .values-card {
        padding: 32px 24px;
    }
}

@media (max-width: 768px) {
    .values {
        padding: 60px 0;
    }

    .values__title {
        margin-bottom: 40px;
    }

    .values-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .values-card__title {
        margin-bottom: 0;
    }

    .values-card__text {
        display: none;
    }

    .values-card__read {
        display: inline-flex;
    }

    .values-grid.values-grid--count-1,
    .values-grid.values-grid--count-2 {
        grid-template-columns: 1fr;
        justify-content: stretch;
    }
}

/* 
 * =====================================
 * БЛОК: ПРИСОЕДИНЯЙТЕСЬ К НАШЕЙ СЕМЬЕ
 * =====================================
 */
.join-family {
    padding: 100px 0;
    background-color: var(--c-white);
}

.join-family__inner {
    max-width: 1280px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.join-family__title {
    margin-bottom: 24px;
    color: #111827;
}

.join-family__text {
    font-family: var(--f-text);
    font-size: 16px;
    line-height: 1.6;
    color: #4B5563;
    margin-bottom: 48px;
    max-width: 680px;
    text-align: center;
}

.join-family__actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 32px;
    width: 100%;
    max-width: 100%;
}

.join-family__socials {
    display: flex;
    gap: 12px;
    justify-content: center;
    flex-shrink: 0;
}

.join-social-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border: 1px solid #E5E7EB;
    border-radius: 12px;
    background: #FFFFFF;
    color: #4B5563;
    font-family: var(--f-heading);
    font-weight: 700;
    font-size: 15px;
    text-decoration: none;
    transition: all 0.3s ease;
}

.join-social-btn img {
    width: 24px;
    height: auto;
    filter: none;
}

.join-social-btn.vk {
    background: #2787F5;
    border-color: #2787F5;
}

.join-social-btn.tg {
    background: #24A1DE;
    border-color: #24A1DE;
}

.join-social-btn.mx {
    background: #3F47EB;
    border-color: #3F47EB;
}

.join-social-btn.media {
    background: #2787F5;
    border-color: #2787F5;
}

.join-social-btn svg {
    width: 20px;
    height: 20px;
    color: #4B5563;
    /* Используем currentColor для плавного перехода */
    transition: color 0.3s ease;
}

.join-social-btn:hover {
    opacity: 0.9;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.join-social-btn.vk:hover,
.join-social-btn.tg:hover,
.join-social-btn.mx:hover,
.join-social-btn.media:hover {
    border-color: transparent;
    color: white;
}

.join-social-btn:hover svg {
    color: var(--c-red);
}

.join-family__divider {
    width: 1px;
    height: 48px;
    background-color: #E5E7EB;
    flex-shrink: 0;
    align-self: center;
}

.join-family__phone {
    display: flex;
    align-items: center;
    gap: 16px;
    text-decoration: none;
    max-width: 100%;
}

.join-family__phones {
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-width: 0;
    align-items: flex-start;
    flex: 0 1 auto;
    max-width: 100%;
}

.phone-icon-wrap {
    width: 52px;
    height: 52px;
    background-color: #FEF2F2;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--c-red);
    flex-shrink: 0;
    transition: background-color 0.3s ease;
}

.join-family__phone-text {
    font-family: var(--f-heading);
    font-weight: 700;
    font-size: 24px;
    color: #111827;
    transition: color 0.3s ease;
    display: block;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.join-family__phone .join-family__phone-text {
    display: inline-flex;
    align-items: baseline;
    flex-wrap: nowrap;
    gap: 0.35em;
    white-space: nowrap;
}

.join-family__phone .join-family__phone-number,
.join-family__phone .join-family__phone-name {
    display: inline;
    flex: 0 0 auto;
    white-space: nowrap;
}

.join-family__phone:hover .phone-icon-wrap {
    background-color: #FEE2E2;
}

.join-family__phone:hover span {
    color: var(--c-red);
}

/* Адаптив для мобильных устройств */
@media (max-width: 1024px) {
    .join-family__phones {
        min-width: 0;
    }

    .join-family__phone-text {
        overflow: visible;
        text-overflow: clip;
        white-space: normal;
    }

    .join-family__phone .join-family__phone-text {
        display: block;
        white-space: normal;
    }

    .join-family__phone .join-family__phone-name {
        display: block;
        white-space: normal;
    }
}

@media (max-width: 768px) {
    .join-family {
        padding: 60px 0;
    }

    .join-family__title {
        font-size: 28px !important;
        line-height: 1.2;
        margin-bottom: 16px;
    }

    .join-family__text {
        font-size: 15px;
        margin-bottom: 32px;
    }

    .join-family__actions {
        display: flex;
        flex-direction: column;
        gap: 32px;
    }

    .join-family__socials {
        flex-wrap: wrap;
        justify-content: center;
        gap: 16px;
    }

    .join-family__divider {
        display: none;
    }

    .join-family__phones {
        min-width: 0;
        width: 100%;
        align-items: center;
    }

    .join-family__phone {
        width: 100%;
        justify-content: center;
    }

    .join-family__phone-text {
        font-size: clamp(15px, 4.7vw, 22px);
        white-space: normal;
    }

    .join-family__phone .join-family__phone-text {
        display: block;
        white-space: normal;
    }

    .join-family__phone .join-family__phone-name {
        display: block;
        white-space: normal;
    }
}

/* ==========================================================================
   СТРАНИЦА "ДОМАШНИЕ ГРУППЫ"
   ========================================================================== */

/* --- 1. КАК ЭТО РАБОТАЕТ --- */
.how-it-works {
    padding: 100px 0;
    background: var(--c-white);
}

.how-it-works__inner {
    max-width: 840px;
    margin: 0 auto;
    text-align: center;
}

.how-it-works__inner .h2 {
    margin-bottom: 32px;
    color: var(--c-black);
}

.how-it-works__text p {
    font-family: var(--f-text);
    font-size: 18px;
    line-height: 1.6;
    color: #4B5563;
    /* Серый текст как на макете */
    margin-bottom: 24px;
}

.how-it-works__text p:last-child {
    margin-bottom: 0;
}

/* --- 2. ПОЧЕМУ СТОИТ ПРИСОЕДИНИТЬСЯ --- */
.why-join {
    padding: 100px 0;
    background-color: #F9FAFB;
    /* Очень светло-серый фон */
}

.why-join__title {
    margin-bottom: 48px;
    color: var(--c-black);
}

.why-join__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.why-join__grid.why-join__grid--count-1 {
    grid-template-columns: minmax(280px, 440px);
    justify-content: center;
}

.why-join__grid.why-join__grid--count-2 {
    grid-template-columns: repeat(2, minmax(280px, 1fr));
}

.why-card {
    background: var(--c-white);
    border: 1px solid #E5E7EB;
    border-radius: 12px;
    padding: 40px 32px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    transition: all var(--transition);
}

.why-card:hover {
    transform: translateY(-4px);
    box-shadow: 0px 20px 25px -5px rgba(0, 0, 0, 0.05), 0px 10px 10px -5px rgba(0, 0, 0, 0.02);
}

.why-card__icon {
    width: 64px;
    height: 64px;
    background-color: #FEF2F2;
    /* Светло-красный фон */
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 24px;
    flex-shrink: 0;
    /* Чтобы не сжималось */
}

.why-card__icon img {
    width: 32px;
    height: 32px;
    object-fit: contain;
    /* Центрируем и подгоняем размер */
}

.why-card__title {
    font-family: var(--f-heading);
    font-size: 20px;
    font-weight: 700;
    color: #111827;
    margin-bottom: 16px;
    line-height: 1.3;
}

.why-card__text {
    font-family: var(--f-text);
    font-size: 15px;
    line-height: 1.6;
    color: #6B7280;
}

/* --- 3. ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ (FAQ) --- */
.faq-section {
    padding: 100px 0;
    background: var(--c-white);
}

.faq-section__title {
    margin-bottom: 48px;
    color: var(--c-black);
}

.faq-list {
    max-width: 800px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.faq-item {
    background: var(--c-white);
    border: 1px solid #E5E7EB;
    border-radius: 8px;
    overflow: hidden;
    transition: border-color var(--transition), box-shadow var(--transition);
}

.faq-item:hover {
    border-color: #D1D5DB;
}

.faq-item.is-active {
    border-color: var(--c-red);
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
}

.faq-item__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 24px;
    cursor: pointer;
    user-select: none;
}

.faq-item__title {
    font-family: var(--f-heading);
    font-size: 18px;
    font-weight: 700;
    color: #111827;
}

.faq-item__icon {
    color: #9CA3AF;
    transition: transform 0.3s ease, color 0.3s ease;
}

.faq-item:hover .faq-item__icon {
    color: #6B7280;
}

.faq-item.is-active .faq-item__icon {
    transform: rotate(180deg);
    color: var(--c-red);
}

.faq-item__content {
    display: none;
    /* Скрыто по умолчанию, открывается через JS */
    padding: 0 24px 24px 24px;
}

.faq-item__content p {
    font-family: var(--f-text);
    font-size: 15px;
    line-height: 1.6;
    color: #4B5563;
    margin: 0;
}

/* --- 4. ПРИСОЕДИНИТЬСЯ (ФОРМА) --- */
.join-group {
    padding: 100px 0;
    background-color: #F9FAFB;
}

.join-group__header {
    margin-bottom: 40px;
}

.join-group__header .h2 {
    margin-bottom: 16px;
    color: var(--c-black);
}

.join-group__subtitle {
    font-family: var(--f-text);
    font-size: 16px;
    color: #6B7280;
    max-width: 500px;
    margin: 0 auto;
    line-height: 1.5;
}

.join-group__form-wrapper {
    max-width: 540px;
    margin: 0 auto;
    background: var(--c-white);
    border: 1px solid #E5E7EB;
    border-radius: 12px;
    padding: 48px;
    box-shadow: 0px 10px 15px -3px rgba(0, 0, 0, 0.05);
}

.form-group {
    margin-bottom: 24px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.form-label {
    font-family: var(--f-heading);
    font-size: 14px;
    font-weight: 700;
    color: #374151;
    margin-bottom: 8px;
}

.form-input {
    width: 100%;
    height: 48px;
    background: #FFFFFF;
    border: 1px solid #D1D5DB;
    border-radius: 8px;
    padding: 0 16px;
    font-family: var(--f-text);
    font-size: 16px;
    color: #111827;
    transition: border-color var(--transition), box-shadow var(--transition);
}

.form-input::placeholder {
    color: #9CA3AF;
}

.form-input:focus {
    border-color: var(--c-red);
    outline: none;
    box-shadow: 0 0 0 3px rgba(196, 30, 33, 0.1);
}

.form-submit {
    width: 100%;
    margin-top: 8px;
}

/* ==========================================================================
   АДАПТИВНОСТЬ (MOBILE)
   ========================================================================== */
@media (max-width: 1024px) {
    .why-join__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {

    .how-it-works,
    .why-join,
    .faq-section,
    .join-group {
        padding: 60px 0;
    }

    .how-it-works__text p {
        font-size: 16px;
    }

    .why-join__grid {
        grid-template-columns: 1fr;
    }

    .why-join__grid.why-join__grid--count-1,
    .why-join__grid.why-join__grid--count-2 {
        grid-template-columns: 1fr;
        justify-content: stretch;
    }

    .why-card {
        padding: 24px;
    }

    .faq-item__header {
        padding: 20px;
    }

    .faq-item__title {
        font-size: 16px;
    }

    .faq-item__content {
        padding: 0 20px 20px 20px;
    }

    .join-group__form-wrapper {
        padding: 32px 24px;
    }
}

/* ==========================================================================
   СТРАНИЦА "ПОЖЕРТВОВАНИЯ"
   ========================================================================== */

/* Общая обертка контента */
.donate-page-wrapper {
    padding: 80px 0 80px 0;
    background-color: #F9FAFB;
    /* Цвет фона всей страницы как на макете */
}

/* --- 1. Основная карточка пожертвований --- */
.donate-card {
    background: #FFFFFF;
    border: 1px solid #E5E7EB;
    border-radius: 12px;
    padding: 64px 48px;
    box-shadow: 0px 10px 30px rgba(0, 0, 0, 0.02);
    max-width: 1040px;
    margin: 0 auto;
}

.donate-card__title {
    text-align: center;
    color: #111827;
    margin-bottom: 48px;
    font-weight: 700;
}

.donate-card__body {
    display: flex;
    align-items: stretch;
    gap: 48px;
}

/* Колонка QR */
.donate-qr-col {
    flex: 0 0 320px;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.donate-qr-box {
    width: 280px;
    height: 280px;
    background: #F3F4F6;
    /* Цвет серого квадрата */
    border: 2px dashed #D1D5DB;
    /* Пунктирная обводка */
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 24px;
    overflow: hidden;
}

.donate-qr-box img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.donate-qr-text {
    font-family: var(--f-text);
    font-size: 14px;
    color: #6B7280;
    text-align: center;
    line-height: 1.5;
}

/* Разделитель */
.donate-divider {
    width: 1px;
    background-color: #E5E7EB;
    flex-shrink: 0;
}

/* Колонка информации */
.donate-info-col {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.donate-info__label {
    font-family: var(--f-heading);
    font-weight: 700;
    font-size: 20px;
    color: #333333;
    margin-bottom: 12px;
}

.donate-info__phone {
    font-family: var(--f-heading);
    font-weight: 900;
    font-size: 36px;
    color: var(--c-red);
    /* Красный цвет телефона */
    margin-bottom: 16px;
    line-height: 1;
}

.donate-info__recipient {
    font-family: var(--f-text);
    font-size: 16px;
    color: #374151;
    margin-bottom: 6px;
}

.donate-info__role {
    font-family: var(--f-text);
    font-size: 14px;
    color: #6B7280;
    margin-bottom: 32px;
}

.donate-info__btn {
    width: max-content;
    margin-bottom: 40px;
    height: 48px;
    padding: 0 24px;
    font-size: 14px;
}

/* Инструкция */
.donate-instructions {
    background: #F9FAFB;
    border-radius: 8px;
    padding: 24px;
}

.donate-instructions__title {
    font-family: var(--f-heading);
    font-weight: 700;
    font-size: 15px;
    color: #111827;
    margin-bottom: 16px;
}

.donate-instructions__list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.donate-instructions__list li {
    font-family: var(--f-text);
    font-size: 14px;
    color: #4B5563;
    margin-bottom: 10px;
    line-height: 1.5;
}

.donate-instructions__list li:last-child {
    margin-bottom: 0;
}

/* --- 2. Карточка "Духовный смысл" --- */
.spiritual-card {
    background: #F6F5F3;
    /* Теплый бежево-серый цвет */
    border-radius: 12px;
    padding: 56px 48px;
    max-width: 1040px;
    margin: 0 auto 40px auto;
    text-align: center;
}

.spiritual-card__title {
    font-family: var(--f-heading);
    color: #111827;
    margin-bottom: 24px;
}

.spiritual-card__text {
    font-family: var(--f-text);
    font-size: 18px;
    line-height: 1.7;
    color: #4B5563;
    max-width: 860px;
    margin: 0 auto;
}


/* ==========================================================================
   АДАПТИВНОСТЬ (MOBILE)
   ========================================================================== */
@media (max-width: 992px) {
    .donate-card__body {
        gap: 32px;
    }

    .donate-qr-col {
        flex: 0 0 260px;
    }

    .donate-qr-box {
        width: 240px;
        height: 240px;
    }

    .donate-info__phone {
        font-size: 28px;
    }
}

@media (max-width: 768px) {
    .donate-page-wrapper {
        padding: 40px 0 60px 0;
    }

    .donate-card {
        padding: 32px 24px;
    }

    .donate-card__title {
        font-size: 28px;
        margin-bottom: 32px;
    }

    .donate-card__body {
        flex-direction: column;
        /* Перестраиваем в одну колонку */
        align-items: center;
        gap: 32px;
    }

    .donate-divider {
        display: none;
        /* Прячем разделительную линию */
    }

    .donate-qr-col {
        flex: auto;
        width: 100%;
    }

    .donate-qr-box {
        width: 100%;
        max-width: 280px;
    }

    .donate-info-col {
        width: 100%;
        align-items: center;
        text-align: center;
    }

    .donate-info__btn {
        width: 100%;
        /* Кнопка на всю ширину */
        justify-content: center;
    }

    .donate-info__phone {
        font-size: 24px !important;
        margin-bottom: 12px;
    }

    .donate-info__recipient {
        font-size: 14px;
        margin-bottom: 4px;
    }

    .donate-instructions {
        text-align: left;
        /* Текст инструкции остается по левому краю */
        width: 100%;
    }

    .spiritual-card {
        padding: 40px 24px;
    }

    .spiritual-card__title {
        font-size: 26px;
    }

    .spiritual-card__text {
        font-size: 16px;
    }

    .main--donate .main__name {
        white-space: normal !important;
        max-width: 340px !important;
        font-size: 24px !important;
        line-height: 1.2;
        letter-spacing: -0.2px;
    }
}

/* ==========================================================================
   ДЕТСКОЕ СЛУЖЕНИЕ (children.css)
   ========================================================================== */

/* Section 0: Intro */
.children-intro {
    padding: 100px 0 80px;
    background-color: var(--c-white);
}

.children-intro__title {
    font-family: var(--f-heading);
    font-size: var(--f-size-h1);
    font-weight: 700;
    color: var(--c-black);
    margin-bottom: 24px;
}

.children-intro__subtitle {
    font-family: var(--f-text);
    font-size: 18px;
    line-height: 1.6;
    color: #4B5563;
    max-width: 800px;
    margin: 0 auto;
}

/* Section 1: Groups */
.children-groups {
    padding: 80px 0;
    background-color: #F9FAFB;
}

.children-groups__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
    max-width: 1000px;
    margin: 0 auto;
}

.children-groups__grid.children-groups__grid--count-1 {
    grid-template-columns: minmax(280px, 560px);
    justify-content: center;
}

.children-card {
    background-color: var(--c-white);
    border: 1px solid #E5E7EB;
    border-radius: 12px;
    overflow: hidden;
    cursor: pointer;
    transition: all var(--transition);
    display: flex;
    flex-direction: column;
}

.children-card:hover {
    transform: translateY(-4px);
    box-shadow: 0px 20px 25px -5px rgba(0, 0, 0, 0.05), 0px 10px 10px -5px rgba(0, 0, 0, 0.02);
}

.children-card__img {
    width: 100%;
    height: 220px;
    background-color: #E2E8F0;
    position: relative;
    overflow: hidden;
}

.children-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--transition);
}

.children-card:hover .children-card__img img {
    transform: scale(1.05);
}

.children-card__content {
    padding: 32px;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}

.children-card__title {
    font-family: var(--f-heading);
    font-size: 20px;
    font-weight: 700;
    color: #111827;
    margin-bottom: 16px;
    line-height: 1.3;
}

.children-card__text {
    font-family: var(--f-text);
    font-size: 15px;
    line-height: 1.6;
    color: #6B7280;
    margin-bottom: 24px;
    flex-grow: 1;
}

.children-card__link {
    font-size: 14px;
    letter-spacing: 0.05em;
    transition: color var(--transition);
}

.children-card:hover .children-card__link {
    color: var(--c-red);
}

/* Section 2: Gallery */
.children-gallery {
    padding: 80px 0;
    background-color: var(--c-white);
}

.children-gallery__title {
    margin-bottom: 48px;
    color: #2D3748;
}

.children-gallery__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 16px;
}

.children-gallery__item {
    display: block;
    width: 100%;
    padding-bottom: 100%;
    /* Square */
    background-color: #E2E8F0;
    border-radius: 12px;
    position: relative;
    background-image: linear-gradient(to bottom right, transparent calc(50% - 1px), #CBD5E0 calc(50% - 1px), #CBD5E0 calc(50% + 1px), transparent calc(50% + 1px)), linear-gradient(to top right, transparent calc(50% - 1px), #CBD5E0 calc(50% - 1px), #CBD5E0 calc(50% + 1px), transparent calc(50% + 1px));
    transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
    cursor: pointer;
    overflow: hidden;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
}

.children-gallery__item:hover {
    transform: translateY(-8px) scale(1.03);
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
    background-color: #CBD5E0;
}

.children-gallery__item:hover svg {
    color: var(--c-red);
    transform: translate(-50%, -50%) scale(1.2);
}

.children-gallery__item svg {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 32px;
    height: 32px;
    color: #A0AEC0;
    transition: all 0.4s ease;
}

.children-gallery__item--photo {
    background-image: none;
    background-color: #E2E8F0;
}

.children-gallery__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}

.children-gallery__item--photo:hover .children-gallery__img {
    transform: scale(1.06);
}

/* Section 3: Form */
.children-form-section {
    padding: 80px 0;
    background-color: #F7FAFC;
}

.children-form-card {
    max-width: 600px;
    margin: 0 auto;
    background: var(--c-white);
    border: 1px solid #E2E8F0;
    border-radius: 12px;
    padding: 48px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.02);
}

.children-form-card .h2 {
    margin-bottom: 8px;
    color: var(--c-black);
    font-family: var(--f-heading);
}

.children-form-card__subtitle {
    font-family: var(--f-text) !important;
    font-weight: 400 !important;
    color: #6B7280;
    font-size: 16px;
}

.children-form-card .form-group {
    margin-bottom: 24px;
    text-align: left;
}

.row-flex {
    display: flex;
    gap: 20px;
}

.form-group-item {
    flex: 1;
}

@media (max-width: 576px) {
    .row-flex {
        flex-direction: column;
        gap: 24px;
    }
}

.children-form-card .form-input {
    width: 100%;
    height: 52px;
    border: 1px solid #E5E7EB;
    border-radius: 8px;
    padding: 14px 16px;
    font-family: var(--f-text) !important;
    font-size: 16px;
    color: var(--c-text);
    outline: none;
    transition: all var(--transition);
    line-height: normal;
}

.children-form-card textarea {
    width: 100%;
    min-height: 120px;
    border: 1px solid #E5E7EB;
    border-radius: 8px;
    padding: 14px 16px;
    font-family: var(--f-text) !important;
    font-size: 16px;
    color: var(--c-text);
    outline: none;
    transition: all var(--transition);
    line-height: 1.5;
}

.children-form-card .form-input::placeholder,
.children-form-card textarea::placeholder {
    color: #9CA3AF;
    font-family: var(--f-text);
    font-weight: 400;
}

.form-policy-text {
    margin-top: 16px;
    font-size: 13px;
    line-height: 1.6;
    color: #6B7280;
    text-align: center;
    font-family: var(--f-text);
}

.form-policy-text a {
    color: var(--c-red);
    font-weight: 500;
    text-decoration: underline;
    transition: opacity var(--transition);
}

.form-policy-text a:hover {
    opacity: 0.7;
    color: var(--c-red);
}

.children-form-card textarea {
    height: 120px;
    resize: vertical;
}

.children-form-card .form-input:focus,
.children-form-card textarea:focus {
    border-color: var(--c-red);
    box-shadow: 0 0 0 3px rgba(196, 30, 33, 0.1);
}

/* Mobile Adaptations */
@media (max-width: 992px) {
    .children-intro__title {
        font-size: 36px;
    }

    .children-gallery__grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .children-groups__grid {
        grid-template-columns: 1fr;
    }

    .children-groups__grid.children-groups__grid--count-1 {
        grid-template-columns: 1fr;
        justify-content: stretch;
    }
}

@media (max-width: 768px) {
    .children-intro {
        padding: 60px 0 40px;
    }

    .children-intro__title {
        font-size: 28px;
    }

    .children-intro__subtitle {
        font-size: 16px;
    }

    .children-form-card {
        padding: 32px 24px;
    }
}

/* ==========================================================================
   ВОСКРЕСНОЕ СЛУЖЕНИЕ (sunday.css)
   ========================================================================== */

/* --- СЕКЦИЯ 1: HERO БАННЕР --- */
.sunday-hero {
    position: relative;
    height: 100vh;
    min-height: 600px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--c-white);
    margin-top: -72px;
    /* Поднимаем под прозрачную шапку */
    padding-top: 72px;
    /* Компенсируем контент */
}

.sunday-hero__bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.sunday-hero__bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.sunday-hero__overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.6);
    /* Темное затемнение как на макете */
}

.sunday-hero__inner {
    position: relative;
    z-index: 2;
    max-width: 800px;
    margin: 0 auto;
    height: 100%;
}

.sunday-hero__title {
    font-family: var(--f-heading);
    font-size: min(80px, 12vw);
    /* Очень крупный заголовок */
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    margin-bottom: 24px;
    line-height: 1.1;
    max-width: 100%;
    overflow-wrap: normal;
}

.sunday-hero__subtitle {
    font-family: var(--f-text);
    font-size: 20px;
    font-weight: 300;
    line-height: 1.5;
    color: rgba(255, 255, 255, 0.9);
}

.sunday-hero__scroll {
    position: absolute;
    bottom: 40px;
    left: 50%;
    transform: translateX(-50%);
    animation: bounce 2s infinite;
    cursor: pointer;
    z-index: 3;
}

@keyframes bounce {

    0%,
    20%,
    50%,
    80%,
    100% {
        transform: translate(-50%, 0);
    }

    40% {
        transform: translate(-50%, -20px);
    }

    60% {
        transform: translate(-50%, -10px);
    }
}

/* --- СЕКЦИЯ 2: ЦИТАТА --- */
.sunday-quote {
    background-color: #373737;
    /* Темно-серый цвет из макета */
    padding: 100px 0;
    color: var(--c-white);
}

.sunday-quote__text {
    font-family: var(--f-heading);
    font-size: 36px;
    font-weight: 700;
    line-height: 1.3;
    max-width: 900px;
    margin: 0 auto;
}

.sunday-quote__divider {
    width: 64px;
    height: 4px;
    background-color: var(--c-red);
    margin: 32px auto;
    border-radius: 2px;
}

.sunday-quote__author {
    font-family: var(--f-heading);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 2px;
    color: #A0AEC0;
}

/* --- СЕКЦИЯ 3: КАРТОЧКИ (ФИЧИ) --- */
.sunday-features {
    padding: 100px 0;
    background-color: var(--c-white);
}

.sunday-features__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
}

.sunday-features__grid.sunday-features__grid--count-1 {
    grid-template-columns: minmax(280px, 520px);
    justify-content: center;
}

.sunday-features__grid.sunday-features__grid--count-2 {
    grid-template-columns: repeat(2, minmax(280px, 1fr));
}

.feature-card {
    background: var(--c-white);
    border: 1px solid #E2E8F0;
    border-radius: 12px;
    padding: 48px 40px;
    display: flex;
    flex-direction: column;
    transition: transform var(--transition), box-shadow var(--transition);
}

.feature-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.05);
}

.feature-card__icon {
    width: 48px;
    height: 48px;
    color: #2D3748;
    /* Темно-серый цвет иконки */
    margin-bottom: 24px;
}

.feature-card__title {
    font-family: var(--f-heading);
    font-size: 20px;
    font-weight: 700;
    text-transform: uppercase;
    color: #2D3748;
    margin-bottom: 16px;
    letter-spacing: 0.05em;
}

.feature-card__text {
    font-family: var(--f-text);
    font-size: 15px;
    line-height: 1.6;
    color: #4A5568;
    margin-bottom: 32px;
    flex-grow: 1;
}

.feature-card__link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    letter-spacing: 1px;
}

.feature-card__link svg {
    transition: transform var(--transition);
}

.feature-card:hover .feature-card__link svg {
    transform: translateX(4px);
}

/* --- СЕКЦИЯ 4: ЖИЗНЬ ЦЕРКВИ (СЛАЙДЕР) --- */
.sunday-life {
    padding: 80px 0 100px;
    background-color: #F7FAFC;
    /* Светло-серый фон */
    overflow: hidden;
}

.sunday-life__header {
    margin-bottom: 40px;
}

.sunday-life__header .h2 {
    text-transform: uppercase;
    color: #2D3748;
    margin: 0;
}

.sunday-life .swiper-nav {
    display: flex;
    gap: 12px;
}

.life-prev,
.life-next {
    /* Base styles inherited from .nav-btn-prev/next */
    background: transparent;
}

.life-prev:hover,
.life-next:hover {
    background: var(--c-red);
}

.life-slide-img {
    width: 100%;
    padding-bottom: 65%;
    /* Соотношение сторон */
    background-color: #E2E8F0;
    border-radius: 8px;
    position: relative;
    background-image: linear-gradient(to bottom right, transparent calc(50% - 1px), #CBD5E0 calc(50% - 1px), #CBD5E0 calc(50% + 1px), transparent calc(50% + 1px)), linear-gradient(to top right, transparent calc(50% - 1px), #CBD5E0 calc(50% - 1px), #CBD5E0 calc(50% + 1px), transparent calc(50% + 1px));
}

.life-slide-img svg {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 40px;
    height: 40px;
    color: #A0AEC0;
}

.life-slide-img--photo {
    background-image: none;
    overflow: hidden;
}

.life-slide-img__photo {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.life-slide-img__link {
    position: absolute;
    inset: 0;
    display: block;
}

/* Пагинация (точки) */
.life-pagination {
    display: none;
    justify-content: center;
    margin-top: 24px;
}

.life-pagination .swiper-pagination-bullet {
    width: 8px;
    height: 8px;
    background: #CBD5E0;
    opacity: 1;
    margin: 0 4px !important;
}

.life-pagination .swiper-pagination-bullet-active {
    background: var(--c-red);
}

/* --- СЕКЦИЯ 5: ФОРМА ВИЗИТА --- */
.sunday-visit {
    padding: 100px 0;
    background-color: var(--c-white);
}

.sunday-visit__header {
    margin-bottom: 48px;
}

.sunday-visit__form-wrap {
    max-width: 600px;
    margin: 0 auto;
}

.visit-form__group {
    margin-bottom: 20px;
}

.visit-form__input,
.visit-form__select {
    width: 100%;
    height: 56px;
    border: 1px solid #CBD5E0;
    border-radius: 8px;
    padding: 0 20px;
    font-family: var(--f-text);
    font-size: 16px;
    color: #2D3748;
    background: var(--c-white);
    outline: none;
    transition: border-color var(--transition);
}

.visit-form__input::placeholder {
    color: #A0AEC0;
}

.visit-form__input:focus,
.visit-form__select:focus {
    border-color: var(--c-red);
}

.visit-form__select {
    cursor: pointer;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg width='14' height='8' viewBox='0 0 14 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L7 7L13 1' stroke='%234A5568' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 20px center;
}

.visit-form__policy {
    text-align: center;
    font-size: 12px;
    color: #A0AEC0;
    margin-top: 16px;
}


/* ==========================================================================
   АДАПТИВНОСТЬ (MOBILE & TABLET)
   ========================================================================== */

@media (max-width: 1024px) {
    .sunday-features__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {

    /* Hero */
    .sunday-hero {
        height: auto;
        min-height: 400px;
        padding-top: 100px;
        padding-bottom: 90px;
    }

    .sunday-hero__title {
        font-size: 34px;
        letter-spacing: 0;
        padding: 0 16px;
    }

    .sunday-hero__subtitle {
        font-size: 16px;
        padding: 0 16px;
    }

    /* Quote */
    .sunday-quote {
        padding: 60px 20px;
    }

    .sunday-quote__text {
        font-size: 22px;
    }

    /* Features */
    .sunday-features {
        padding: 60px 0;
    }

    .sunday-features__grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .sunday-features__grid.sunday-features__grid--count-1,
    .sunday-features__grid.sunday-features__grid--count-2 {
        grid-template-columns: 1fr;
        justify-content: stretch;
    }

    .feature-card {
        padding: 32px 24px;
    }

    /* Slider */
    .sunday-life {
        padding: 60px 0 80px;
    }

    ._hide-mobile {
        display: none !important;
    }

    .sunday-life__header {
        justify-content: center;
    }

    .life-pagination {
        display: flex;
        /* Показываем точки на мобилке */
        position: relative;
        /* Убираем дефолтный абсолют свайпера */
        bottom: 0;
    }

    /* Form */
    .sunday-visit {
        padding: 60px 0;
    }
}
/* --- FEATURE MODAL SPECIFIC (ADDED) --- */
.feature-modal {
    width: 650px;
    max-width: 100%;
}

.feature-modal__image {
    width: 100%;
    height: 300px;
    border-radius: 12px;
    overflow: hidden;
    margin-bottom: 24px;
    background: #F3F4F6;
}

.feature-modal__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.feature-modal__content {
    display: flex;
    flex-direction: column;
    gap: 24px;
    text-align: left;
}

.feature-modal__section {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.feature-modal__section-title {
    font-size: 18px;
    font-weight: 700;
    font-family: var(--f-heading);
    color: #333333;
    margin: 0;
}

.feature-modal__section-text {
    font-size: 15px;
    line-height: 1.6;
    color: #4B5563;
    font-family: var(--f-text);
    margin: 0;
}

.feature-modal__footer {
    margin-top: 32px;
    display: flex;
    justify-content: flex-end;
}

@media (max-width: 640px) {
    .feature-modal__image {
        height: 200px;
    }
    
    .modal-inner {
        padding: 32px 20px;
    }
    
    .feature-modal__section-title {
        font-size: 17px;
    }
}

/* --- LEGAL PAGES STYLES (UPDATED) --- */
.legal {
    padding: 80px 0;
    background-color: var(--c-white);
    min-height: 600px;
}

.legal__title {
    font-size: 32px;
    font-weight: 700;
    margin-bottom: 8px;
    color: #111827;
}

.legal-badge {
    display: inline-block;
    padding: 4px 12px;
    border: 1px solid var(--c-red);
    border-radius: 6px;
    color: var(--c-red);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 20px;
}

.legal-date {
    font-family: var(--f-text);
    font-size: 14px;
    color: #9CA3AF;
    margin-bottom: 48px;
}

.legal__card {
    background: #FFFFFF;
    border: 1px solid #F3F4F6;
    border-radius: 12px;
    padding: 60px;
    max-width: 900px;
    margin: 0 auto;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03);
}

.legal__content h3 {
    font-size: 18px;
    font-weight: 700;
    margin: 40px 0 20px;
    color: #111827;
}

.legal__content p {
    font-family: var(--f-text);
    font-size: 15px;
    line-height: 1.8;
    color: #4B5563;
    margin-bottom: 20px;
}

.legal__content ul {
    margin: 20px 0;
    padding-left: 0;
    list-style: none;
}

.legal__content li {
    font-family: var(--f-text);
    font-size: 15px;
    line-height: 1.8;
    color: #4B5563;
    margin-bottom: 12px;
    position: relative;
    padding-left: 24px;
}

.legal__content li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 10px;
    width: 6px;
    height: 6px;
    background-color: #D1D5DB;
    border-radius: 50%;
}

.legal__footer-card {
    font-family: var(--f-text);
    background-color: #F9FAFB;
    border-radius: 8px;
    padding: 32px;
    margin-top: 48px;
    border-left: 4px solid var(--c-red);
}

.legal-contact-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
    margin-top: 12px;
}

.legal-contact-col {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.legal__info-label {
    font-size: 13px;
    font-weight: 700;
    color: #111827;
    text-transform: uppercase;
    margin-bottom: 12px;
    letter-spacing: 0.02em;
}

.legal__info-value {
    font-family: var(--f-text);
    font-size: 16px;
    color: #4B5563;
    line-height: 1.6;
}

.legal-footer-notice {
    font-family: var(--f-text);
    text-align: center;
    max-width: 800px;
    margin: 60px auto 0;
    font-size: 13px;
    color: #9CA3AF;
    line-height: 1.6;
}

/* Official page specific */
.legal-official-block {
    border-bottom: 1px solid #F3F4F6;
    padding: 32px 0;
}

.legal-official-block:first-child {
    padding-top: 0;
}

.legal-official-block:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.legal-official-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
}

.leadership-box {
    background-color: #F9FAFB;
    border-radius: 8px;
    padding: 24px 32px;
    margin-top: 16px;
}

.leadership-item {
    font-family: var(--f-text);
    font-size: 15px;
    color: #4B5563;
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 16px;
}

.leadership-item svg {
    color: #9CA3AF;
}

.leadership-item a {
    color: var(--c-red);
    font-weight: 700;
}

.u-divider-red-center {
    width: 60px;
    height: 4px;
    background-color: var(--c-red);
    margin: 24px auto;
}

@media (max-width: 768px) {
    .legal {
        padding: 60px 0;
    }
    .legal__card {
        padding: 32px 24px;
    }
    .legal-contact-grid,
    .legal-official-grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }
    .legal__title {
        font-size: 24px;
    }
}

/* final edits: headings, non-breaking visuals, unified links/forms */
h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-weight:700}
.contacts-cta__title{font-weight:900}
.universal-question-form .form-input,.universal-question-form .visit-form__input{font-family:var(--f-text)}
.universal-question-form .form-group{margin-bottom:16px}
.universal-question-form .form-label{display:block;margin-bottom:8px;font-weight:500}
.universal-question-form .form-input{width:100%;min-height:56px;border-radius:8px}
.universal-question-form textarea.form-input{min-height:120px;line-height:1.45;padding-top:14px;resize:vertical}
.universal-question-form textarea.form-input::placeholder{line-height:1.45;color:#9CA3AF}
.about-leaders__story .about-leaders__card-text+.about-leaders__card-text,.about-leaders__story-more .about-leaders__card-text+.about-leaders__card-text{margin-top:16px}.about-leaders__story-more{margin-top:16px}.about-leaders__read-more{display:inline-flex;align-items:center;margin-top:14px;padding:0;border:0;background:transparent;color:var(--c-red);font-family:var(--f-title);font-size:16px;font-weight:700;line-height:1.4;cursor:pointer}.about-leaders__read-more:hover{color:var(--c-red-dark)}.about-leaders__read-more[hidden]{display:none}
.form-success-modal{position:fixed;inset:0;z-index:10060;display:none;align-items:center;justify-content:center;padding:24px;background:rgba(17,24,39,.58);opacity:0;transition:opacity .25s ease}.form-success-modal.active{opacity:1}.form-success-modal__content{position:relative;width:min(520px,100%);min-height:220px;display:flex;align-items:center;justify-content:center;padding:60px 48px;font-family:var(--f-text);text-align:center;color:#1F2937;background:#FFFFFF;border-radius:8px;box-shadow:0 24px 70px rgba(17,24,39,.24);transform:translateY(16px);transition:transform .25s ease}.form-success-modal.active .form-success-modal__content{transform:translateY(0)}.form-success-modal__title{max-width:420px;font-family:var(--f-title);font-size:28px;font-weight:700;line-height:1.25}.form-success-modal__close{position:absolute;top:18px;right:18px;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:50%;font-family:Arial,sans-serif;font-size:24px;line-height:1;color:#6B7280;background:#F3F4F6;cursor:pointer;transition:background-color .2s ease,color .2s ease}.form-success-modal__close:hover,.form-success-modal__close:focus-visible{color:#111827;background:#E5E7EB}@media (max-width:600px){.form-success-modal__content{min-height:180px;padding:52px 28px}.form-success-modal__title{font-size:22px}}
