body {
    padding: 0;
    margin: 0;
    background: #FFFFFF;
}

html, h1, h2, h3, h4, h5, h6 {
    font-family: 'Montserrat', sans-serif;
}

html, a {
    font-family: 'Roboto Condensed', sans-serif;
}

.navbar {
    background: #007241;
}

.nav-link, .navbar-brand {
    color: #FFFFFF;
    cursor: pointer;
}

.nav-link {
    margin-right: 1em !important;
}

.nav-link:hover {
    background: #FFFFFF;
    color: #007241;
}

.nav-flink, .navbar-brand {
    color: #FFFFFF;
    cursor: pointer;
}

.nav-flink {
    margin-right: 1em !important;
}

.nav-flink:hover {
    background: #FFFFFF;
    color: #007241;
}

.navbar-collapse {
    justify-content: flex-end;
}

.navbar-toggler {
    background: #FFFFFF !important;
}

/* Убираем старый padding и задаём фиксированную высоту */
.header {
    background: url('site/images/header-bg.jpg') no-repeat center center;
    background-size: cover;
    height: 400px; /* Можно уменьшить до 400px, если нужно */
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    overflow: hidden; /* Опционально: предотвращает выход псевдоэлемента за границы */
}

/* Создаём полупрозрачный слой через псевдоэлемент */
.header::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5); /* Полупрозрачный чёрный фон */
    z-index: 0; /* Помещаем слой позади содержимого (.container) */
}

/* Убедимся, что .container отображается поверх псевдоэлемента */
.header > .container {
    position: relative; /* Создаёт новый слой, поверх ::before */
    z-index: 1; /* Явно указываем z-index выше псевдоэлемента */
    text-align: center; /* Центрируем содержимое */
    width: 100%; /* Занимаем всю ширину */
    padding: 0 15px; /* Учитываем отступы Bootstrap .container */
    box-sizing: border-box; /* Включаем padding в расчёт ширины */
}

/* Стили для содержимого .description - теперь применяются как .text-box */
.description {
    /* position: relative; уже установлено на .container */
    /* z-index: 1; уже установлено на .container */
    background: rgba(255, 255, 255, 0.5); /* Белый полупрозрачный фон */
    border-radius: 16px; /* Скругление углов */
    padding: 25px 30px; /* Отступы внутри */
    max-width: 85%; /* Ограничиваем ширину */
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.2); /* Тень */
    text-align: center; /* Центрируем текст внутри .description */
    box-sizing: border-box; /* Учитываем padding в ширине */
    /* Убираем width: fit-content; чтобы лучше центрировалось с max-width */
    /* Убираем z-index: 2; - не нужно, т.к. .container уже z-index: 1 */

    /* Добавляем центрирование самого .description как блока */
    margin: 0 auto; /* Центрирует блок по горизонтали */
    display: inline-block; /* Позволяет max-width и margin: 0 auto работать */
    vertical-align: middle; /* Выравнивание по вертикали, если нужно, относительно соседних элементов (обычно не требуется внутри флекса) */
    /* Если display: inline-block вызывает нежелательные эффекты (например, из-за пробелов между инлайн-элементами),
       можно вернуть display: block; и убрать vertical-align, но оставить margin: 0 auto; */
    /* display: block; */
    /* width: fit-content; /* Альтернатива: ширина по содержимому, но не шире max-width */
}

/* Цвет текста внутри .description */
.description,
.description h1,
.description h2,
.description h3,
.description p,
.description a {
    color: #000; /* Цвет текста на светлом фоне */
}

/* Убедимся, что содержимое внутри .description не съезжает */
.description > * {
    margin: 0;
    /* padding: 0; - если нужно обнулить внутренние отступы элементов */
}

.description h1,
.description h2,
.description h3,
.description p {
    /* color: #000; - уже задано выше */
    margin-bottom: 0.5rem; /* Добавим немного отступа между элементами */
}

.description h1 {
    margin-bottom: 1rem; /* Больше отступа под заголовком */
}

/* Остальные стили... */

/* Остальные стили... */

/* ============ ОСНОВНОЙ СТИЛЬ ДЛЯ ЧЕРЕДОВАНИЯ СЕКЦИЙ ============ */
section {
    padding: 60px 0;
    transition: background-color 0.3s ease; /* Плавное изменение фона */
}

section:nth-child(odd) {
    background-color: #ffffff; /* Белый */
}

section:nth-child(even) {
    background-color: #f0fff0; /* Светло-зелёный (MintCream) */
}
/* =============================================================== */

/* About */
.about {
    margin: 4em 0;
    padding: 1em;
    position: relative;
    background: transparent; /* Убираем фиксированный фон — теперь управляется через section */
}

.about h1, .about .desc h3 {
    color: #007241;
}

.about img {
    height: 100%;
    width: 100%;
    border-radius: 50%;
}

.about span {
    display: block;
    color: #007241;
    position: absolute;
    left: 115px;
}

.about .desc {
    padding: 2em;
    border-left: 4px solid #007241;
}

.about .desc p {
    line-height: 2;
    color: #333333;
}

/* Portfolio */
.portfolio {
    margin: 4em 0;
    position: relative;
    background: transparent; /* Убираем фиксированный фон */
}

.portfolio h1 {
    color: #007241;
    margin: 2em;
}

.portfolio img {
    height: 15rem;
    width: 100%;
    margin: 1em;
}

/* Blog */
.blog {
    margin: 4em 0;
    position: relative;
    background: transparent; /* Убираем фиксированный фон */
}

.blog h1 {
    color: #007241;
    margin: 2em;
}

.blog .card {
    box-shadow: 0 0 20px #cccccc;
    background: #FFFFFF;
}

.blog .card img {
    width: 100%;
    height: 12em;
}

.blog .card-title {
    color: #007241;
}

.blog .card-body {
    padding: 1em;
}

/* Team */
.team {
    margin: 4em 0;
    position: relative;
    background: transparent; /* Убираем фиксированный фон */
}

.team h1 {
    color: #007241;
    margin: 2em;
}

.team .item {
    position: relative;
    overflow: hidden;
}

.team .des {
    background: #007241;
    color: #FFFFFF;
    text-align: center;
    border-top-right-radius: 93%;
    transition: .3s ease-in-out;
    position: absolute;
    width: 88%;
    bottom: 24px;
}

.team .item:hover .des {
    height: 100%;
    background: rgba(0, 114, 65, 0.9);
    position: absolute;
    width: 89%;
    padding: 5em;
    top: 0;
    border-top-right-radius: 0;
}

/* Contact Form */
.contact-form {
    margin: 6em 0;
    position: relative;
    background: transparent; /* Убираем фиксированный фон */
}

.contact-form h1 {
    padding: 2em 1px;
    color: #007241;
}

.contact-form .right {
    max-width: 600px;
}

.contact-form .right .btn-secondary {
    background: #007241;
    color: #FFFFFF;
    border: 0;
}

.contact-form .right .form-control::placeholder {
    color: #333333;
    font-size: 16px;
}

@media (max-width: 400px) {
    #copyright {
        text-align: center;
    }
    #social > div {
        display: block;
        width: 100%;
        margin: 0 auto;
        text-align: center;
    }
}

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

html, body {
    overflow-x: hidden; /* Скрываем горизонтальный скролл для body/html */
}
.container, .container-fluid {
    max-width: 100%; /* Убеждаемся, что контейнеры не шире экрана */
    overflow-x: hidden; /* Скрываем горизонтальный скролл внутри контейнеров */
}
/* Если проблема в конкретном iframe, например, карте */
#map_873275302 { /* ID iframe с картой */
    max-width: 100%; /* Ограничиваем ширину iframe */
    box-sizing: border-box; /* Учитываем padding/border в ширине */
}

.card-img-top-small {
    width: 100px;
    height: auto;
    display: block; /* Убирает возможный отступ снизу из-за inline-block */
    margin-left: auto; /* Центрирует изображение по горизонтали */
    margin-right: auto;
}

/* Уменьшение изображений в карточках специализаций */
#specializationsContainer .spec-card-img-top {
    height: 100px !important; /* Было 150px — теперь компактнее */
    width: auto !important;
    max-width: 100%;
    object-fit: cover;
    border-top-left-radius: calc(0.375rem - 1px);
    border-top-right-radius: calc(0.375rem - 1px);
}

#specializationsContainer .spec-card-img-top {
    height: 100px !important;
    width: auto !important;
    max-width: 100%;
    object-fit: cover;
    border-top-left-radius: calc(0.375rem - 1px);
    border-top-right-radius: calc(0.375rem - 1px);
}

/* Уменьшение шрифта в карточках специализаций */
#specializationsContainer .spec-card-title {
    font-size: 1rem !important;
}

#specializationsContainer .spec-card-text {
    font-size: 0.875rem !important;
}