/* ==========================================================================
   1. ФИРМЕННЫЕ ЦВЕТА И БАЗОВЫЕ КОНТЕЙНЕРЫ
   ========================================================================== */
:root {
    --cassiopeia-color-primary: #007799;
    --cassiopeia-color-hover: #005b75;
    --cassiopeia-color-link: #007799;
}

body, html {
    overflow-x: hidden !important;
}

.header {
    background: #007799 !important;
    background-image: none !important;
}

.footer {
    background: #1a202c !important;
    color: #ffffff;
}

.footer a { 
    color: #cbd5e0; 
}

.footer a:hover { 
    color: #ffffff; 
}
/* ==========================================================================
   2. ДЕСКТОПНАЯ СТРУКТУРА: ЖЁСТКОЕ ВЫРАВНИВАНИЕ В ОДНУ ЛИНИЮ (ОТ 992px)
   ========================================================================== */
@media (min-width: 992px) {
    /* 1. Отключаем дефолтную CSS Grid сетку Joomla Cassiopeia */
    .header,
    .header .header-sidebar,
    .header .site-grid,
    .header .container-header {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        justify-content: space-between !important;
        min-height: 90px !important;
        padding-left: 15px !important;
        padding-right: 15px !important;
        box-sizing: border-box !important;
    }

    /* 2. Жестко фиксируем бренд/логотип слева */
    .header .navbar-brand,
    .header .brand {
        display: flex !important;
        align-items: center !important;
        position: static !important; /* Убираем любые сдвиги */
        float: none !important;
        margin: 0 !important;
        padding: 0 !important;
        flex-shrink: 0 !important; /* Запрещаем сжиматься */
        max-width: 250px !important;
    }

    .header .navbar-brand img,
    .header .brand img {
        max-width: 100% !important;
        height: auto !important;
        display: block !important;
    }

    /* 3. Жестко фиксируем блок навигации справа */
    .header .container-nav {
        display: flex !important;
        align-items: center !important;
        position: static !important; /* Никакого absolute/fixed! */
        float: none !important;
        margin-left: auto !important; /* Магия flex: отталкивает меню максимально вправо */
        margin-right: 0 !important;
        margin-top: 0 !important;
        margin-bottom: 0 !important;
        padding: 0 !important;
        transform: none !important;
        width: auto !important;
    }

    /* 4. Список кнопок */
    .mod-menu {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        justify-content: flex-end !important;
        gap: 6px !important;
        margin: 0 !important;
        padding: 0 !important;
        list-style: none !important;
    }

    .mod-menu > li {
        margin: 0 !important;
        padding: 0 !important;
        width: auto !important;
        display: flex !important;
        align-items: center !important;
    }

    /* 5. Кнопки меню */
    .mod-menu > li > a, 
    .mod-menu > li > span {
        display: inline-flex !important;
        align-items: center !important;
        padding: 6px 10px !important;
        background-color: rgba(255, 255, 255, 0.15) !important;
        color: #ffffff !important;
        text-transform: uppercase !important;
        font-size: 13px !important;
        font-weight: 650 !important;
        letter-spacing: 0.2px !important;
        border-radius: 4px !important;
        transition: all 0.25s ease-in-out !important;
        border: 1px solid rgba(255, 255, 255, 0.2) !important;
        text-decoration: none !important;
        white-space: nowrap !important;
        line-height: 1 !important;
    }

    .mod-menu > li > a:hover,
    .mod-menu > li.active > a,
    .mod-menu > li.active > span {
        background-color: #ffffff !important;
        color: #007799 !important;
        box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1) !important;
        transform: translateY(-1px) !important;
    }

    /* ----------------------------------------------------------------------
       2.1 ВЫПАДАЮЩЕЕ МЕНЮ
       ---------------------------------------------------------------------- */
    .mod-menu li.parent {
        position: relative !important;
        display: flex !important;
        align-items: center !important;
    }

    .mod-menu li.parent > .mm-toggler,
    .mod-menu li.parent > button {
        display: none !important;
    }

    .mod-menu li.parent > a::after,
    .mod-menu li.parent > span::after {
        content: "" !important;
        display: inline-block !important;
        margin-left: 4px !important;
        vertical-align: middle !important;
        border-top: 4px solid currentColor !important;
        border-right: 4px solid transparent !important;
        border-left: 4px solid transparent !important;
        transition: transform 0.2s ease !important;
    }

    .mod-menu li.parent:hover > a::after,
    .mod-menu li.parent:hover > span::after {
        transform: rotate(180deg) !important;
    }

    .mod-menu li.parent ul {
        display: none !important;
        position: absolute !important;
        top: 100% !important;
        left: 0 !important;
        z-index: 1000 !important;
        min-width: 190px !important;
        background: transparent !important;
        box-shadow: none !important;
        border: none !important;
        padding: 6px 0 0 0 !important; 
        margin: 0 !important;
        list-style: none !important;
    }

    .mod-menu li.parent:hover ul {
        display: flex !important;
        flex-direction: column !important;
        gap: 5px !important;
    }

    .mod-menu li.parent ul a,
    .mod-menu li.parent ul span {
        display: block !important;
        padding: 6px 12px !important;
        background-color: #005b75 !important;
        color: #ffffff !important;
        text-transform: uppercase !important;
        font-size: 11px !important;
        font-weight: 650 !important;
        letter-spacing: 0.3px !important;
        border-radius: 4px !important;
        border: 1px solid rgba(255, 255, 255, 0.15) !important;
        text-decoration: none !important;
        white-space: nowrap !important;
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1) !important;
        transition: all 0.25s ease-in-out !important;
    }

    .mod-menu li.parent ul a:hover {
        background-color: #ffffff !important;
        color: #007799 !important;
        box-shadow: 0 4px 6px rgba(0, 0, 0, 0.15) !important;
        transform: translateX(2px) !important;
    }
}

/* ==========================================================================
   3. МОБИЛЬНАЯ АДАПТАЦИЯ (OFFCANVAS ДО 991.98px)
   ========================================================================== */
@media (max-width: 991.98px) {
    .header .site-grid,
    .header .header-sidebar {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        flex-wrap: nowrap !important;
    }

    .header .container-nav {
        margin-left: 0 !important;
        width: auto !important;
    }

    .navbar-toggler {
        color: #ffffff !important;
        border-color: rgba(255, 255, 255, 0.5) !important;
        padding: 8px 12px !important;
        background-color: transparent !important;
    }

    .offcanvas .mod-menu {
        display: flex;
        flex-direction: column !important;
        width: 100%;
        gap: 5px !important;
        padding: 0;
        margin: 0;
        list-style: none;
    }

    .offcanvas .mod-menu > li { 
        width: 100%; 
    }

    .offcanvas .mod-menu > li > a,
    .offcanvas .mod-menu > li > span {
        display: block !important;
        background: transparent !important;
        color: #333333 !important;
        border: none !important;
        padding: 12px 15px !important;
        text-decoration: none;
        box-shadow: none !important;
        transform: none !important;
        text-transform: none !important;
    }

    .offcanvas .mod-menu > li > a:hover,
    .offcanvas .mod-menu > li.active > a {
        background: #f7fafc !important;
        color: #007799 !important;
    }

    .offcanvas .mod-menu li.parent ul { 
        padding-left: 20px; 
        list-style: none; 
    }

    .offcanvas .mod-menu li.parent ul a { 
        color: #666666 !important; 
        padding: 8px 15px !important; 
        display: block; 
    }
}

/* ==========================================================================
   4. ПРИВЕТСТВЕННЫЙ МОДУЛЬ НА ГЛАВНОЙ
   ========================================================================== */
.welcome-banner {
    background-size: contain !important;
    background-position: right center !important;
    background-repeat: no-repeat !important;
    padding: 20px 0 !important;
    margin-bottom: 30px !important;
    position: relative !important;
    width: 100% !important;
}

.welcome-banner h2 {
    color: #222222 !important;
    font-weight: 400 !important;
    margin-bottom: 20px !important;
    font-size: 28px !important;
}

.welcome-content {
    display: flex !important;
    gap: 20px !important;
    align-items: flex-start !important;
}

.welcome-content img {
    border-radius: 0 !important;
    box-shadow: none !important;
    flex-shrink: 0 !important;
}

.welcome-text {
    background: transparent !important;
    padding: 0 !important;
    border: none !important;
    backdrop-filter: none !important;
}

.welcome-text p {
    color: #333333 !important;
    font-size: 15px !important;
    line-height: 1.5 !important;
    margin-bottom: 12px !important;
}

.welcome-text p.welcome-footer {
    margin-top: 20px !important;
    margin-bottom: 0 !important;
}

.welcome-text a {
    color: #007799 !important;
    text-decoration: underline !important;
}

.welcome-text a:hover {
    color: #005b75 !important;
}

@media (max-width: 991px) {
    .welcome-banner {
        background-image: none !important;
    }
}

@media (max-width: 768px) {
    .welcome-content {
        flex-direction: column !important;
    }

    .welcome-content img {
        width: 100% !important;
        height: auto !important;
    }

    .welcome-banner h2 {
        font-size: 22px !important;
    }
}

/* ==========================================================================
   5. ГЛАВНАЯ СТАТЬЯ И БЛОК УСЛУГ
   ========================================================================== */
.main-article-block {
    margin-top: 30px !important;
    color: #333333 !important;
}

.article-content-wrapper {
    display: flex !important;
    flex-direction: row-reverse !important;
    gap: 30px !important;
    margin-bottom: 40px !important;
}

.article-side-img {
    flex-shrink: 0 !important;
    height: auto !important;
    max-width: 347px !important;
}

.article-text-body p {
    font-size: 15px !important;
    line-height: 1.6 !important;
    margin-bottom: 15px !important;
}

.article-services-section h4 {
    color: #005b75 !important;
    font-size: 20px !important;
    font-weight: 700 !important;
    margin-bottom: 20px !important;
    border-bottom: 2px solid #007799 !important;
    padding-bottom: 8px !important;
}

.services-grid {
    display: flex !important;
    gap: 30px !important;
    flex-wrap: wrap !important;
}

.service-col {
    flex: 1 1 280px !important;
}

.service-col h5 {
    font-size: 16px !important;
    font-weight: 600 !important;
    margin-bottom: 10px !important;
    color: #222222 !important;
}

.service-col h5 a {
    color: #007799 !important;
    text-decoration: none !important;
}

.service-col h5 a:hover {
    text-decoration: underline !important;
    color: #005b75 !important;
}

.service-col ul {
    padding-left: 20px !important;
    margin: 0 !important;
}

.service-col ul li {
    font-size: 14px !important;
    line-height: 1.5 !important;
    margin-bottom: 6px !important;
    color: #555555 !important;
}

@media (max-width: 768px) {
    .article-content-wrapper {
        flex-direction: column !important;
    }

    .article-side-img {
        max-width: 100% !important;
        width: 100% !important;
        height: auto !important;
    }

    .services-grid {
        flex-direction: column !important;
        gap: 20px !important;
    }
}

/* ==========================================================================
   6. МОДУЛЬ С ЭФФЕКТОМ ПАРАЛЛАКСА (ЗАМОРОЖЕННЫЙ ФОН)
   ========================================================================== */
.parallax-services-module {
    background-attachment: fixed !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
    background-size: cover !important;
    width: 100% !important;
    margin: 40px 0 !important;
    position: relative !important;
    border-radius: 8px !important;
    overflow: hidden !important;
}

.parallax-overlay {
    background: rgba(0, 35, 46, 0.75) !important;
    padding: 60px 20px !important;
    width: 100% !important;
    height: 100% !important;
}

.parallax-container {
    max-width: 1140px !important;
    margin: 0 auto !important;
}

.parallax-services-module h2 {
    color: #ffffff !important;
    text-align: center !important;
    font-size: 28px !important;
    font-weight: 700 !important;
    margin-bottom: 45px !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
}

.features-list {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 40px 30px !important;
}

.feature-item {
    display: flex !important;
    align-items: flex-start !important;
    gap: 20px !important;
}

.feature-item img {
    flex-shrink: 0 !important;
    filter: brightness(0) invert(1) !important;
    opacity: 0.9 !important;
}

.feature-text h3 {
    color: #ffffff !important;
    font-size: 18px !important;
    font-weight: 600 !important;
    margin-bottom: 8px !important;
}

.feature-text p {
    color: rgba(255, 255, 255, 0.85) !important;
    font-size: 14.5px !important;
    line-height: 1.5 !important;
    margin: 0 !important;
}

@media (max-width: 768px) {
    .parallax-services-module {
        background-attachment: scroll !important; 
    }

    .features-list {
        grid-template-columns: 1fr !important;
        gap: 30px !important;
    }

    .parallax-overlay {
        padding: 40px 15px !important;
    }

    .parallax-services-module h2 {
        font-size: 22px !important;
        margin-bottom: 30px !important;
    }
}

/* ==========================================================================
   7. СЕКЦИЯ СПЕЦИАЛИСТОВ
   ========================================================================== */
.specialists-section {
    padding: 40px 20px;
    max-width: 1200px;
    margin: 0 auto;
    font-family: sans-serif;
    color: #333333;
}

.section-title {
    text-align: center;
    font-size: 28px;
    font-weight: normal;
    margin-bottom: 40px;
}

.specialists-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 30px;
}

.specialist-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.specialist-photo {
    width: 100%;
    max-width: 240px;
    margin-bottom: 15px;
}

.specialist-photo img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
    aspect-ratio: 4 / 3;
}

.photo-consent {
    font-size: 9px;
    color: #666666;
    margin: 8px 0 0 0;
    line-height: 1.2;
}

.specialist-name {
    font-size: 22px;
    font-weight: normal;
    line-height: 1.2;
    margin: 10px 0;
}

.specialist-desc {
    font-size: 14px;
    color: #444444;
    line-height: 1.4;
    margin: 0;
}

@media (max-width: 992px) {
    .specialists-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
    }
}

@media (max-width: 576px) {
    .specialists-grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .section-title {
        font-size: 24px;
    }
}

/* ==========================================================================
   8. ПОЗИЦИИ BOTTOM-A И BOTTOM-B
   ========================================================================== */
#sp-bottom-a .container > .row, 
.sp-position-bottom-a, 
[class*="bottom-a"] {
    display: block !important;
}

#sp-bottom-a .sp-module,
.position-bottom-a .module {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    margin-bottom: 30px;
}

#sp-bottom-a .sp-module:last-child,
.position-bottom-a .module:last-child {
    margin-bottom: 0;
}

#sp-bottom-a .container > .row,
.position-bottom-a .row {
    margin-left: 0 !important;
    margin-right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
}

@media (min-width: 992px) {
    #sp-bottom-b .container > .row,
    .position-bottom-b .row {
        display: flex !important;
    }

    #sp-bottom-b .container > .row > div:nth-child(1),
    .position-bottom-b .row > div:nth-child(1) {
        flex: 0 0 40% !important;
        max-width: 40% !important;
        width: 40% !important;
    }

    #sp-bottom-b .container > .row > div:nth-child(2),
    .position-bottom-b .row > div:nth-child(2) {
        flex: 0 0 60% !important;
        max-width: 60% !important;
        width: 60% !important;
    }
}

#sp-bottom-b, 
.sp-position-bottom-b-wrapper,
section[id*="bottom-b"] {
    background-color: #f8f9fa !important;
    padding: 50px 0 !important;
}

/* ==========================================================================
   9. ОФОРМЛЕНИЕ МАТЕРИАЛОВ И АДАПТИВНАЯ ГАЛЕРЕЯ
   ========================================================================== */
.article-content-text {
    color: #1a2b4c;
    font-size: 1rem;
    line-height: 1.6;
    text-align: justify;
    margin-bottom: 15px;
}

.readmore-btn-text {
    color: #ffffff !important;
    font-weight: 600;
}

.readmore-btn-dark-text {
    color: #1a2b4c !important;
}

/* Галерея */
.custom-gallery {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)) !important;
    gap: 15px !important;
    margin: 20px 0 !important;
    width: 100% !important;
}

.gallery-item {
    display: flex !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    border-radius: 6px !important;
    transform: translateZ(0) !important;
}

.gallery-item a {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    cursor: pointer !important;
}

.gallery-item img {
    width: 100% !important;
    height: 150px !important;
    object-fit: cover !important;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1) !important;
    transition: transform 0.3s cubic-bezier(0.25, 1, 0.5, 1) !important;
    pointer-events: auto !important;
    backface-visibility: hidden !important;
    will-change: transform !important;
}

.gallery-item a:hover img {
    transform: scale(1.05) !important;
}