/* ============================================================
   GP117 MODERN
   Современный слой оформления для шаблона AllRounder-3
   ============================================================ */


/* ============================================================
   БАЗОВЫЕ НАСТРОЙКИ
   ============================================================ */

html {
    height: auto !important;
    scroll-behavior: smooth;
}

body {
    margin: 0 !important;
    padding: 0 !important;

    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 14px !important;
    line-height: 1.55 !important;

    color: #30343a !important;
    background: #edf3ea !important;

    overflow-x: hidden;
}

* {
    box-sizing: border-box;
}

img,
video,
iframe {
    max-width: 100%;
}

a {
    transition:
        color .18s ease,
        background-color .18s ease,
        border-color .18s ease,
        opacity .18s ease,
        transform .18s ease,
        box-shadow .18s ease;
}


/* ============================================================
   ОСНОВНАЯ ОБОЛОЧКА САЙТА
   ============================================================ */

#wrapper,
#foot_container {
    width: calc(100% - 32px) !important;
    max-width: 1480px !important;

    margin-left: auto !important;
    margin-right: auto !important;

    background: #f4f6f4 !important;
    border: 0 !important;
}

#wrapper {
    margin-top: 18px !important;
    padding: 0 18px 20px !important;

    border-radius: 16px 16px 0 0;

    box-shadow:
        0 10px 34px rgba(25, 38, 28, .10);
}

#foot_container {
    margin-bottom: 22px !important;
    padding: 0 !important;

    border-radius: 0 0 16px 16px;

    overflow: hidden;

    box-shadow:
        0 12px 34px rgba(25, 38, 28, .10);
}


/* Старые декоративные элементы AllRounder */

.shadow-left,
.shadow-right,
.heckl,
.heckr,
.feckl,
.feckr,
.h3eckl,
.h3eckr {
    display: none !important;
}


/* ============================================================
   ПАНЕЛЬ ДОСТУПНОСТИ
   ============================================================ */

#toppanel {
    position: relative;
    min-height: 0;
}

#toppanel .module-outer {
    margin: 0 !important;
}

#toppanel .module {
    border-radius: 0 0 10px 10px;
    overflow: hidden;
}

#toppanel-toggle {
    opacity: .7;

    transition:
        opacity .18s ease;
}

#toppanel-toggle:hover {
    opacity: 1;
}


/* ============================================================
   ШАПКА
   ============================================================ */

#header_container {
    width: 100% !important;
    padding: 18px 0 0 !important;
}

#header {
    min-height: 126px !important;

    margin: 0 !important;
    padding: 0 24px !important;

    display: flex;
    align-items: center;

    position: relative;
    overflow: hidden;

    border: 0 !important;
    border-radius: 14px !important;

    background:
        linear-gradient(
            135deg,
            #303337 0%,
            #202326 100%
        ) !important;

    box-shadow:
        0 8px 22px rgba(0, 0, 0, .16);
}

#header::after {
    content: "";

    position: absolute;
    inset: 0;

    pointer-events: none;

    background:
        linear-gradient(
            90deg,
            rgba(140, 171, 47, .10),
            transparent 36%
        );
}


/* Логотип */

#logo {
    width: min(78%, 1000px) !important;

    position: relative;
    z-index: 1;

    overflow: visible !important;
}

#logo a.imglogo {
    display: block;
    line-height: 0 !important;
}

#logo a.imglogo img {
    display: block;

    width: 100% !important;
    max-width: 952px !important;

    height: auto !important;
    max-height: 120px;

    object-fit: contain;
    object-position: left center;
}


/* Баннер / версия для слабовидящих */

#banner_outer,
#banner {
    z-index: 2;
}

#banner {
    top: 50% !important;
    right: 22px !important;

    transform: translateY(-50%);

    max-width: 120px !important;
    max-height: 90px !important;

    margin: 0 !important;
    padding: 0 !important;

    border-radius: 10px;

    overflow: hidden;
}

#banner img {
    display: block;

    max-width: 100%;
    height: auto;

    opacity: .92;
}


/* ============================================================
   ХЛЕБНЫЕ КРОШКИ + ПОИСК
   ============================================================ */

#subhead {
    width: 100% !important;

    min-height: 48px !important;
    height: auto !important;

    margin: 14px 0 0 !important;
    padding: 7px 10px 7px 16px;

    display: flex;
    align-items: center;
    gap: 14px;

    overflow: visible !important;

    border: 1px solid #dde4dc !important;
    border-radius: 10px;

    background: #ffffff !important;
    background-image: none !important;

    box-shadow:
        0 3px 12px rgba(28, 38, 30, .05);
}

#subhead .breadcrumb,
#subhead .breadcrumbs {
    flex: 1 1 auto;
    min-width: 0;

    margin: 0 !important;
    padding: 0 !important;

    background: transparent !important;
    border: 0 !important;

    color: #6a716b !important;
}


/* Поиск */

#search {
    float: none !important;

    flex: 0 1 300px;

    margin: 0 !important;
    padding: 0 !important;

    background: none !important;
}

#search form {
    margin: 0 !important;
}

#search input[type="search"],
#search .inputbox {
    width: 100% !important;
    height: 36px;

    margin: 0 !important;
    padding: 7px 12px !important;

    border: 1px solid #d8dfd7 !important;
    border-radius: 8px !important;

    background: #f7f9f7 !important;

    box-shadow: none !important;

    font-size: 14px !important;

    transition:
        border-color .18s ease,
        box-shadow .18s ease,
        background-color .18s ease;
}

#search input[type="search"]:focus,
#search .inputbox:focus {
    outline: none;

    border-color: #8cab2f !important;

    background: #ffffff !important;

    box-shadow:
        0 0 0 3px rgba(140, 171, 47, .14) !important;
}


/* ============================================================
   ОСНОВНЫЕ КОЛОНКИ
   ============================================================ */

#container {
    width: 100% !important;

    padding: 18px 0 0 !important;
}

#container2,
#page_content {
    width: 100% !important;
}


/* Левая колонка */

#leftcol {
    width: 285px !important;

    float: left !important;

    margin: 0 !important;
    padding: 0 16px 20px 0 !important;
}


/* Центральный контент */

#content_outleft {
    width: calc(100% - 285px) !important;

    float: right !important;
}

#maincontent {
    width: 100% !important;

    float: none !important;

    min-height: 400px;

    margin: 0 !important;
    padding: 22px 24px 28px !important;

    overflow: visible !important;

    background: #ffffff !important;
    background-image: none !important;

    border: 1px solid #e0e6df !important;
    border-radius: 12px;

    box-shadow:
        0 5px 20px rgba(30, 42, 32, .06);

    transition:
        opacity .18s ease,
        transform .18s ease;
}

.item-page,
.item,
.leading-0,
.leading-1,
.leading-2,
.leading-3,
.leading-4,
.leading-5,
.contact {
    margin: 0 !important;
    padding: 0 !important;

    background: transparent !important;

    border: 0 !important;
}


/* ============================================================
   ТИПОГРАФИКА МАТЕРИАЛОВ
   ============================================================ */

#maincontent h1,
#maincontent h2,
#maincontent h3,
#maincontent h4 {
    font-family:
        Arial,
        Helvetica,
        sans-serif;

    color: #2f3337;
}

#maincontent h1 {
    line-height: 1.2;
}

#maincontent p,
#maincontent li,
#maincontent td,
#maincontent th {
    line-height: 1.6;
}

#maincontent a:not(.btn) {
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}

#maincontent img {
    height: auto;
}

#maincontent iframe,
#maincontent video {
    max-width: 100%;
}


/* ============================================================
   СКРЫВАЕМ СЛУЖЕБНУЮ ИНФОРМАЦИЮ JOOMLA
   ============================================================ */

/* Автор, категория, дата публикации,
   изменения, просмотры и т.п. */

#maincontent .article-info,
#maincontent .article-info-term,
#maincontent .createdby,
#maincontent .created,
#maincontent .published,
#maincontent .modified,
#maincontent .hits,
#maincontent .category-name,
#maincontent .parent-category-name {
    display: none !important;
}


/* Печать, e-mail, редактирование */

#maincontent .icons,
#maincontent .actions,
#maincontent .print-icon,
#maincontent .email-icon,
#maincontent .edit-icon {
    display: none !important;
}


/* Рейтинг материалов */

#maincontent .content_rating,
#maincontent .content_vote {
    display: none !important;
}


/* ============================================================
   ЛЕВАЯ КОЛОНКА — МОДУЛИ
   ============================================================ */

#leftcol .module-outer,
#leftcol .module-outer_menu,
#leftcol .module-outer_text {
    margin: 0 0 14px !important;
}


/* Карточки модулей */

#leftcol .module,
#leftcol .module_menu,
#leftcol .module_text {
    margin: 0 !important;
    padding: 0 !important;

    border: 1px solid #dde4dc !important;
    border-radius: 10px !important;

    background: #ffffff !important;
    background-image: none !important;

    box-shadow:
        0 4px 14px rgba(29, 41, 31, .05);

    overflow: hidden;
}


/* Убираем старые вложенные фоны */

#leftcol .module > div,
#leftcol .module > div > div,
#leftcol .module_menu > div,
#leftcol .module_menu > div > div,
#leftcol .module_text > div,
#leftcol .module_text > div > div {
    background: none !important;
    border: 0 !important;
}


/* Внутренняя область */

#leftcol .module div.lvround-inner,
#leftcol .module_menu div.lvround-inner,
#leftcol .module_text div.lvround-inner {
    margin: 0 !important;

    padding: 10px !important;

    background: #ffffff !important;

    border: 0 !important;
}


/* ============================================================
   ЗАГОЛОВКИ МОДУЛЕЙ ЛЕВОЙ КОЛОНКИ
   "Запись", "Меню", "Последние новости" и т.д.
   ============================================================ */

#wrapper #leftcol h3.moduleh3 {
    display: block !important;

    width: 100% !important;
    min-height: 0 !important;

    margin: 0 0 8px 0 !important;
    padding: 11px 14px !important;

    font-family:
        Arial,
        Helvetica,
        sans-serif !important;

    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;

    letter-spacing: .1px;

    color: #343a34 !important;

    background-color: #f1f5ee !important;
    background-image: none !important;

    border: 1px solid #dce4d8 !important;
    border-left: 4px solid #8cab2f !important;
    border-radius: 7px !important;

    text-shadow: none !important;
    opacity: 1 !important;

    box-shadow: none !important;
}


/* Любые вложенные элементы старого шаблона */

#wrapper #leftcol h3.moduleh3 span,
#wrapper #leftcol h3.moduleh3 a,
#wrapper #leftcol h3.moduleh3 strong,
#wrapper #leftcol h3.moduleh3 * {
    color: #343a34 !important;

    background: transparent !important;

    text-shadow: none !important;

    opacity: 1 !important;
}


/* ============================================================
   ЛЕВОЕ МЕНЮ
   ============================================================ */

#leftcol .module_menu ul.menu {
    margin: 0 !important;

    padding: 4px !important;

    list-style: none !important;
}

#leftcol .module_menu ul.menu > li,
#leftcol .module_menu ul.menu li {
    position: relative;

    min-height: 0 !important;

    margin: 2px 0 !important;
    padding: 0 !important;

    list-style: none !important;

    background: none !important;
}


/* Пункт меню */

#leftcol .module_menu ul.menu li > a,
#leftcol .module_menu ul.menu li > span.separator {
    display: block !important;

    min-height: 0 !important;

    margin: 0 !important;

    padding:
        9px 34px
        9px 11px !important;

    line-height: 1.35 !important;

    color: #3a3f3a !important;

    border: 0 !important;
    border-radius: 7px;

    background: transparent !important;

    font-size: 13px !important;
    font-weight: 500 !important;

    text-decoration: none !important;
}


/* Наведение */

#leftcol .module_menu ul.menu li > a:hover,
#leftcol .module_menu ul.menu li > span.separator:hover {
    color: #244219 !important;

    background: #edf4e7 !important;

    transform: translateX(2px);
}


/* Активный пункт */

#leftcol .module_menu ul.menu li.current > a,
#leftcol .module_menu ul.menu li.active > a {
    color: #233418 !important;

    background: #e7f0df !important;

    box-shadow:
        inset 3px 0 0 #8cab2f;

    font-weight: 700 !important;
}


/* Вложенное меню */

#leftcol .module_menu ul.menu li ul {
    margin:
        3px 0
        5px 10px !important;

    padding:
        2px 0
        2px 8px !important;

    border-left:
        1px solid #d9e2d4;

    overflow: hidden;
}

#leftcol .module_menu ul.menu li ul li > a {
    padding:
        7px 30px
        7px 9px !important;

    font-size: 12.5px !important;

    color: #565d57 !important;
}


/* ============================================================
   КНОПКА РАСКРЫТИЯ ПОДМЕНЮ
   ============================================================ */

.gp117-menu-toggle {
    position: absolute;

    top: 4px;
    right: 4px;

    width: 28px;
    height: 28px;

    margin: 0;
    padding: 0;

    display: grid;
    place-items: center;

    border: 0;
    border-radius: 6px;

    background: transparent;

    color: #69706a;

    cursor: pointer;

    font: inherit;

    transition:
        background-color .18s ease,
        color .18s ease,
        transform .22s ease;
}

.gp117-menu-toggle:hover {
    background: #e8efe4;

    color: #304329;
}

.gp117-menu-toggle::before {
    content: "›";

    display: block;

    font-size: 22px;
    line-height: 1;

    transform-origin: 50% 50%;

    transition:
        transform .22s ease;
}

li.gp117-menu-open > .gp117-menu-toggle::before {
    transform: rotate(90deg);
}


/* Закрытое подменю */

li.gp117-menu-collapsible > ul {
    max-height: 0;

    opacity: 0;

    margin-top: 0 !important;
    margin-bottom: 0 !important;

    transition:
        max-height .28s ease,
        opacity .2s ease,
        margin .2s ease;
}


/* Открытое подменю */

li.gp117-menu-open > ul {
    max-height: 1600px;

    opacity: 1;

    margin-top: 3px !important;
    margin-bottom: 5px !important;
}


/* ============================================================
   БАННЕРЫ И CUSTOM-МОДУЛИ
   ============================================================ */

#leftcol .custom {
    max-width: 100%;
}

#leftcol .custom p:first-child {
    margin-top: 0;
}

#leftcol .custom p:last-child {
    margin-bottom: 0;
}


/* ============================================================
   ФОРМЫ
   ============================================================ */

#maincontent input[type="text"],
#maincontent input[type="email"],
#maincontent input[type="tel"],
#maincontent input[type="search"],
#maincontent input[type="password"],
#maincontent select,
#maincontent textarea {
    max-width: 100%;

    padding: 9px 11px !important;

    border:
        1px solid #d5ddd3 !important;

    border-radius:
        7px !important;

    background:
        #ffffff !important;

    box-shadow:
        none !important;

    transition:
        border-color .18s ease,
        box-shadow .18s ease;
}

#maincontent input:focus,
#maincontent select:focus,
#maincontent textarea:focus {
    outline: none;

    border-color:
        #8cab2f !important;

    box-shadow:
        0 0 0 3px rgba(140, 171, 47, .13) !important;
}

#maincontent button,
#maincontent input[type="submit"],
#maincontent .btn-primary {
    border-radius:
        7px !important;
}


/* ============================================================
   ТАБЛИЦЫ
   ============================================================ */

#maincontent table {
    max-width: 100%;

    border-collapse: collapse;
}

#maincontent table[border] td,
#maincontent table[border] th {
    border-color:
        #dce3da !important;
}

#maincontent table td,
#maincontent table th {
    padding:
        9px 10px;
}


/* ============================================================
   AJAX / PJAX
   ============================================================ */

#maincontent.gp117-pjax-content-loading {
    opacity: .42;

    transform:
        translateY(3px);

    pointer-events: none;
}

body.gp117-pjax-loading {
    cursor: progress;
}

body.gp117-pjax-loading #maincontent::before {
    content: "Загрузка…";

    display: block;

    margin:
        0 0 12px;

    padding:
        8px 12px;

    background:
        #f5f8ee;

    border-left:
        3px solid #8cab2f;

    color:
        #55633a;

    font-size:
        13px;

    font-weight:
        bold;
}


/* ============================================================
   ФОТОГАЛЕРЕЯ
   ============================================================ */

.gp117-photo-gallery {
    display: flex;
    flex-wrap: wrap;

    gap: 12px;

    margin:
        12px 0 25px 0;
}

.gp117-photo {
    display: block;

    flex:
        0 1 180px;

    width:
        180px;

    height:
        125px;

    overflow:
        hidden;

    background:
        #f5f5f5;

    border:
        1px solid #dddddd;

    border-radius:
        6px;

    box-sizing:
        border-box;

    cursor:
        zoom-in;

    transition:
        transform .18s ease,
        box-shadow .18s ease,
        border-color .18s ease;
}

.gp117-photo:hover {
    transform:
        translateY(-2px);

    border-color:
        #b9c8af;

    box-shadow:
        0 5px 14px rgba(0, 0, 0, .15);
}

.gp117-photo img {
    display:
        block;

    width:
        100%;

    height:
        100% !important;

    object-fit:
        cover;

    border:
        0;
}


/* ============================================================
   LIGHTBOX
   ============================================================ */

.gp117-lightbox {
    display:
        none;

    position:
        fixed;

    z-index:
        999999;

    left:
        0;

    top:
        0;

    width:
        100%;

    height:
        100%;

    padding:
        30px;

    box-sizing:
        border-box;

    background:
        rgba(0, 0, 0, .88);

    align-items:
        center;

    justify-content:
        center;
}

.gp117-lightbox.gp117-lightbox-open {
    display:
        flex;
}

.gp117-lightbox img {
    display:
        block;

    max-width:
        94%;

    max-height:
        92vh;

    width:
        auto;

    height:
        auto !important;

    background:
        #ffffff;

    box-shadow:
        0 10px 40px rgba(0, 0, 0, .5);
}

.gp117-lightbox-close {
    position:
        absolute;

    top:
        15px;

    right:
        22px;

    width:
        44px;

    height:
        44px;

    margin:
        0;

    padding:
        0;

    border:
        0;

    border-radius:
        50%;

    background:
        rgba(255, 255, 255, .95);

    color:
        #333333;

    font-size:
        30px;

    line-height:
        40px;

    cursor:
        pointer;
}

.gp117-lightbox-close:hover {
    background:
        #ffffff;

    transform:
        scale(1.05);
}

body.gp117-lightbox-active {
    overflow:
        hidden !important;
}


/* ============================================================
   МОБИЛЬНАЯ КНОПКА МЕНЮ
   ============================================================ */

.gp117-mobile-nav-toggle {
    display:
        none;

    width:
        100%;

    margin:
        0 0 12px;

    padding:
        11px 14px;

    border:
        1px solid #d8e0d6;

    border-radius:
        8px;

    background:
        #ffffff;

    color:
        #303630;

    font-size:
        14px;

    font-weight:
        700;

    text-align:
        left;

    cursor:
        pointer;
}

.gp117-mobile-nav-toggle::after {
    content:
        "☰";

    float:
        right;

    font-weight:
        400;
}


/* ============================================================
   FOOTER
   ============================================================ */

#subfoot {
    min-height:
        0 !important;

    padding:
        10px 16px;

    border:
        0 !important;

    background:
        #2e3234 !important;
}

.copytext {
    padding:
        0 !important;

    color:
        #aeb5b0 !important;

    font-size:
        12px !important;
}

#footer {
    min-height:
        70px !important;

    margin:
        0 !important;

    padding:
        18px !important;

    border:
        0 !important;

    background:
        #222628 !important;

    background-image:
        none !important;
}

.footer-inner {
    min-height:
        0 !important;
}

#footer img {
    max-width:
        100%;

    height:
        auto;

    border-radius:
        7px;
}


/* Наверх */

#footer a#gotop {
    width:
        44px !important;

    height:
        44px !important;

    line-height:
        44px !important;

    margin-left:
        auto;

    border-radius:
        22px;

    background:
        rgba(255, 255, 255, .08);

    text-decoration:
        none !important;
}

#footer a#gotop:hover {
    background:
        rgba(140, 171, 47, .35);

    text-decoration:
        none !important;
}


/* ============================================================
   СРЕДНИЕ ЭКРАНЫ
   ============================================================ */

@media (max-width: 1050px) {

    #wrapper,
    #foot_container {
        width:
            calc(100% - 20px) !important;
    }


    #leftcol {
        width:
            250px !important;
    }


    #content_outleft {
        width:
            calc(100% - 250px) !important;
    }


    #logo {
        width:
            calc(100% - 120px) !important;
    }

}


/* ============================================================
   ПЛАНШЕТЫ / ТЕЛЕФОНЫ
   ============================================================ */

@media (max-width: 780px) {

    body {
        font-size:
            14px !important;
    }


    #wrapper,
    #foot_container {
        width:
            100% !important;

        margin:
            0 !important;

        border-radius:
            0 !important;

        box-shadow:
            none !important;
    }


    #wrapper {
        padding:
            0 10px 16px !important;
    }


    #header_container {
        padding-top:
            10px !important;
    }


    #header {
        min-height:
            92px !important;

        padding:
            10px 14px !important;

        border-radius:
            10px !important;
    }


    #logo {
        width:
            calc(100% - 78px) !important;
    }


    #logo a.imglogo img {
        width:
            100% !important;

        min-width:
            0 !important;
    }


    #banner {
        right:
            10px !important;

        max-width:
            66px !important;

        max-height:
            66px !important;
    }


    #subhead {
        display:
            block;

        padding:
            10px 12px;
    }


    #search {
        width:
            100% !important;

        margin-top:
            8px !important;
    }


    #container {
        padding-top:
            12px !important;
    }


    .gp117-mobile-nav-toggle {
        display:
            block;
    }


    #leftcol {
        display:
            none;

        width:
            100% !important;

        float:
            none !important;

        padding:
            0 0 12px !important;
    }


    body.gp117-mobile-nav-open #leftcol {
        display:
            block;

        animation:
            gp117Fade .18s ease;
    }


    #content_outleft {
        width:
            100% !important;

        float:
            none !important;
    }


    #maincontent {
        padding:
            18px 14px 22px !important;

        border-radius:
            9px;
    }


    /* Таблицы прокручиваются */

    #maincontent table {
        display:
            block;

        width:
            100% !important;

        overflow-x:
            auto;

        -webkit-overflow-scrolling:
            touch;
    }


    /* Галерея */

    .gp117-photo-gallery {
        gap:
            8px;
    }

    .gp117-photo {
        flex:
            1 1 145px;

        width:
            auto;

        height:
            110px;
    }


    .gp117-lightbox {
        padding:
            12px;
    }


    /* Footer */

    #footer {
        padding:
            14px 10px !important;
    }


    #footermodule1,
    #footermodule2,
    #footermodule3,
    #footermodule4,
    #footermodule5 {
        float:
            none !important;

        width:
            100% !important;

        margin:
            0 0 12px !important;
    }


    #scroll_up {
        width:
            auto !important;
    }

}


/* ============================================================
   МАЛЕНЬКИЕ ТЕЛЕФОНЫ
   ============================================================ */

@media (max-width: 520px) {

    #header {
        min-height:
            78px !important;
    }


    #banner {
        max-width:
            54px !important;

        max-height:
            54px !important;
    }


    #logo {
        width:
            calc(100% - 58px) !important;
    }


    #maincontent h1 {
        font-size:
            26px !important;
    }


    .gp117-photo {
        flex:
            1 1 125px;

        height:
            100px;
    }

}


/* ============================================================
   АНИМАЦИИ
   ============================================================ */

@keyframes gp117Fade {

    from {
        opacity:
            0;

        transform:
            translateY(-4px);
    }

    to {
        opacity:
            1;

        transform:
            translateY(0);
    }

}


/* ============================================================
   ЕСЛИ ПОЛЬЗОВАТЕЛЬ ОТКЛЮЧИЛ АНИМАЦИИ
   ============================================================ */

@media (prefers-reduced-motion: reduce) {

    html {
        scroll-behavior:
            auto;
    }

    *,
    *::before,
    *::after {
        animation-duration:
            .01ms !important;

        animation-iteration-count:
            1 !important;

        transition-duration:
            .01ms !important;
    }

}