html {
    overflow: -moz-scrollbars-vertical;
    overflow-y: scroll;
    height: 100%;
}

body {
    /*background-image: url("../images/background.png");
    background-position: center center;
    background-size: auto;
    background-repeat: repeat;
    background-attachment: scroll;
    height: 100%;
    color: #2d2d2d;*/
    background: #f1f1f1;
}

a {
    color: #4a4a4a;
    text-decoration: none;
}
a:hover {
    color: #4a4a4a;
    text-decoration: none;
}

h4 {
    font-size: 1.64rem;
    line-height: 110%;
    margin: 0.82rem 0 0.656rem 0;
}

h4 a {
    color: #4a4a4a;
}

h4 a:hover {
    color: #e65100;
}
.js-alert--error {
    color: rgb(204, 21, 63);
    background-color: #FFEE9CFF;
    border: 1px solid #D6CA8EFF;
}
.js-alert {
    display: flex;
    padding: 12px;
    justify-content: center;
}
.page-link {
    position: relative;
    display: block;
    padding: .5rem .75rem;
    margin-left: -1px;
    line-height: 1.25;
    color: royalblue;
    background-color: #fcfcfc;
    border: 1px solid #dee2e6;
}
.page-link:hover {
    z-index: 2;
    color: #fff;
    text-decoration: none;
    background-color: #3267b0;
    border-color: #2c5b9c;
}
.page-item.disabled .page-link {
    color: slategrey;
    pointer-events: none;
    cursor: auto;
    background-color: #fcfcfc;
    border-color: #dee2e6;
}
.page-item.active .page-link {
    z-index: 3;
    color: #fff;
    background-color: #3267b0;
    border-color: #2c5b9c;
}

/**
 * Navbar
 */
.navbar {
    justify-content: flex-end;
    padding: 0;
}
/*.navbar {
    padding: 0 .75rem;
    margin-bottom: 1.125rem;
    height: 3.5rem;
    box-shadow: 0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12);
}*/
.navbar-brand {
    line-height: 1.05;
}
/*
.navbar ul a {
  transition: background-color .3s;
  font-size: 1rem;
  color: #fff;
  display: block;
  padding: 0 15px;
  cursor: pointer;
}

.navbar ul a.btn, .navbar ul a.btn-large, .navbar ul a.btn-large, .navbar ul a.btn-flat, .navbar ul a.btn-floating {
    margin-top: -2px;
    margin-left: 15px;
    margin-right: 15px;
}

.navbar ul a:hover {
    background-color: rgba(0, 0, 0, 0.1);
}*/

.navbar-green ul li a {
    color: #eee !important;
}

/* change the link color */
.navbar-green .navbar-nav .nav-link {
    color: rgba(255,255,255,.5);
    padding: 1rem 1.25rem;
}

/* change the color of active or hovered links */
.navbar-green .nav-item.active .nav-link,
.navbar-green .nav-item:hover .nav-link {
    color: #ffffff;
    background: rgba(238, 68, 0, .9);
}

.navbar-custom ul li a {
    color: #eee !important;
}
.navbar-custom .navbar-nav .nav-link {
    color: rgba(255,255,255,.5);
    padding: .75rem 1.25rem;
}
.navbar-custom .nav-item.current .nav-link,
.navbar-custom .nav-item:hover .nav-link {
    color: #ffffff;
    background-color: #3267b0;
}
.navbar-custom .dropdown:hover > .dropdown-menu {
    background-color: #2c5b9c;
    display: block;
}
/* ========================================
   ИСПРАВЛЕНО: Блокируем ТОЛЬКО для десктопа
   (иначе клики не работают на мобайле!)
   ======================================== */
.desktop-nav .dropdown>.dropdown-toggle:active {
    pointer-events: none;
}

/* Разрешаем клики для мобайла */
.mobile-nav .dropdown>.dropdown-toggle:active,
.offcanvas .dropdown>.dropdown-toggle:active {
    pointer-events: auto !important;
}
.navbar-custom .dropdown-item:hover {
    background-color: #3267b0;
}
/* РАСШИРЕНИЕ DROPDOWN ДЛЯ ДЕСКТОПА */
.desktop-nav .dropdown-menu {
    min-width: 320px;
}

.desktop-nav .dropdown-item {
    padding: 0.75rem 1.5rem;
    font-size: 0.95rem;
    white-space: normal;
    line-height: 1.4;
}

.desktop-nav .dropdown-item:hover {
    padding-left: 1.75rem;
    transition: padding-left 0.2s ease;
}
.navbar__btn {
    padding: 7px;
    cursor: pointer;
}
.navbar__burger {
    display: block;
    position: relative;
    width: 32px;
    height: 20px;
}
.navbar__burger span {
    display: block;
    position: relative;
    background-color: #7c7c7d;
    width: 100%;
    height: 2px;
    top: 9px;
    transition: all 0.3s ease 0s;
}
.navbar__burger:before,
.navbar__burger:after {
    content: '';
    background-color: #7c7c7d;
    position: absolute;
    width: 100%;
    height: 2px;
    transition: all 0.3s ease 0s;
}
.navbar__burger:before {
    top: 0;
}
.navbar__burger:after {
    bottom: 0;
}
.navbar__burger.active span {
    transform: scale(0);
}
.navbar__burger.active:before {
    transform: rotate(45deg);
    top: 9px;
}
.navbar__burger.active:after {
    transform: rotate(-45deg);
    bottom: 9px;
}
.navbar-collapse {
    transition: all 0.3s ease 0s;
}

/* Icon 2 */
.navbar__burger2 {
    width: 30px;
    height: 20px;
    position: relative;
    margin: 0;
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    transform: rotate(0deg);
    -webkit-transition: .5s ease-in-out;
    -moz-transition: .5s ease-in-out;
    -o-transition: .5s ease-in-out;
    transition: .5s ease-in-out;
    cursor: pointer;
}

.navbar__burger2 span {
    display: block;
    position: absolute;
    height: 3px;
    width: 100%;
    border-radius: 9px;
    opacity: 1;
    left: 0;
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    transform: rotate(0deg);
    -webkit-transition: .25s ease-in-out;
    -moz-transition: .25s ease-in-out;
    -o-transition: .25s ease-in-out;
    transition: .25s ease-in-out;
}

.navbar__burger2 span {
    background: #e65100;
}

.animated-icon3 span {
    background: #f3e5f5;
}

.navbar__burger2 span:nth-child(1) {
    top: 0;
}
.navbar__burger2 span:nth-child(2),
.navbar__burger2 span:nth-child(3) {
    top: 10px;
}
.navbar__burger2 span:nth-child(4) {
    top: 20px;
}

.navbar__burger2.active span:nth-child(1) {
    top: 11px;
    width: 0;
    left: 50%;
}
.navbar__burger2.active span:nth-child(2) {
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    -o-transform: rotate(45deg);
    transform: rotate(45deg);
}
.navbar__burger2.active span:nth-child(3) {
    -webkit-transform: rotate(-45deg);
    -moz-transform: rotate(-45deg);
    -o-transform: rotate(-45deg);
    transform: rotate(-45deg);
}
.navbar__burger2.active span:nth-child(4) {
    top: 11px;
    width: 0;
    left: 50%;
}

.breadcrumb {
    border-radius: 0;
    background-color: transparent;
    background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAIcKAACMDQABBbcAAIDoAABSBQABFVsAADavAAAfQQLQ3GkAAAAmSURBVHjaYvz//38kAxUAEwOVwKhBowaNGjRq0GAxCAAAAP//AwB6kwN66kTFwQAAAABJRU5ErkJggg==');
}

.page-breadcrumb {
    background: #f9fafb;
    border: 1px solid #eef1f4;
    padding: 4px 8px;
}

.page-breadcrumb .breadcrumb {
    background-image: none;
    background-color: transparent;
}

.page-breadcrumb .breadcrumb-item + .breadcrumb-item::before {
    color: #8a94a6;
}

.page-breadcrumb .breadcrumb-item,
.page-breadcrumb .breadcrumb-item a {
    font-size: 0.825rem;
}

.page-breadcrumb a {
    text-decoration: none;
}

/**
 * Content
 */
.card {
    border: none;
    border-radius: 0;
}
.card-img, .card-img-bottom {
    border-bottom-right-radius: calc(.25rem - 1px);
    border-bottom-left-radius: calc(.25rem - 1px);
}
.card-img, .card-img-top {
    border-top-left-radius: calc(.25rem - 1px);
    border-top-right-radius: calc(.25rem - 1px);
}
.category-posts {
    margin: 0;
    padding: 0;
}
.category-posts > li {
    display: flex;
    border-bottom: 1px solid #053f8e6b;
    box-sizing: initial;
    padding: 11px 0;
    position: relative;
}
.category-posts > li:last-child {
    border-bottom: none;
    margin-bottom: 1rem;
}
.calendar-event {
    display: block;
}
.calendar-event-link {
    display: flex;
    align-items: flex-start;
    gap: 0.35rem;
    padding: 6px 8px 6px 6px;
    border-radius: 2px;
}
.calendar-event-link:hover {
    background: #f1f1f1;
}
body.h-100 {
    height: auto;
}
main.container.bg-white {
    flex: 1 0 auto;
    display: flow-root;
    padding-bottom: 64px;
}
.calendar-event-link:focus-visible {
    outline: 2px solid #0d6efd;
    outline-offset: 2px;
}
.calendar-event-link--static:hover {
    background: transparent;
}
.calendar-event-icon {
    flex: 0 0 auto;
    margin-top: 2px;
    width: 1.25rem;
    min-width: 1.25rem;
    height: 1.25rem;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}
.calendar-event-content {
    margin-left: 0;
}
.calendar-event a.calendar-event-link:hover {
    text-decoration: none;
}
.calendar-event-title {
    color: #053f8e;
}
.calendar-event-date {
    font-size: smaller;
}
.calendar-event-empty {
    display: block;
    padding: 6px 0;
    color: #6c757d;
}
.list-post {
    border-bottom: 1px solid #053f8e6b;
}
.list-post-cover {
    display: block;
    outline: none;
    margin-top: 1px;
    aspect-ratio: 4 / 3;
    background: #f3f5f8;
}
.list-post-cover picture,
.list-post-cover img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.bg-transparent {
    background-color: transparent;
}
figure {
    margin: 0 0 .5rem;
}
.featured-cover {
    margin-left: auto;
    margin-right: auto;
    width: 100%;
}
.post__h1, .announce__h1 {
    overflow-wrap: break-word;
    font-size: 1.65rem;
    line-height: 1.125;
    margin: .125rem 4rem 1rem 0;
}
.post__h2, .announce__h2 {
    overflow-wrap: anywhere;
    font-size: 1rem;
    margin-bottom: .375rem;
}
.post__h2 > a {
    color: #053f8e;
}
.post__h2 > a > span:first-child {

}
.post__context {
    font-size: .75rem;
    line-height: 1;
    position: relative;
    text-transform: uppercase;
    vertical-align: top;
}
.post__context, .charts__context, .slide__context {
    color: #d93e00;
    display: block;
    font-weight: 400;
    padding-bottom: 0.125rem;
}
.post__title, .slide__title {
    font-size: 1.375rem;
}
.post__title:hover {
    /*color: #2c529c;*/
    text-decoration: underline;
}
.post__intro {
    font-size: 1rem;
    /*line-height: 1.1875rem;*/
}
.post__intro p {
    line-height: 1.2;
    margin-bottom: .375rem;
}
.post__intro > p:last-child {
    margin-bottom: 0;
}
.post__meta {
    color: #777;
    font-size: 0.75em;
    line-height: 1;
    position: absolute;
    top: 0;
    right: 4px;
}
.post__list_cover {
    /*background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAIcKAACMDQABBbcAAIDoAABSBQABFVsAADavAAAfQQLQ3GkAAAAmSURBVHjaYvz//38kAxUAEwOVwKhBowaNGjRq0GAxCAAAAP//AwB6kwN66kTFwQAAAABJRU5ErkJggg==');
    padding: 16px 20px 0 20px;*/
}
.post__show_cover {
    margin-top: 4px;
}
.post__list_aside {
    display: flex;
}
.post__aside_cover {
    padding-top: 3px;
}
.post__aside_content {
    margin: 0 4px;
    line-height: 1;
}
.post__aside_title {
    font-size: 98%;
}
.list-aside {
    padding-left: 25px;
}
.list-aside-item {
    line-height: 1.1;
    margin-bottom: 1rem;
}
.aside-link {

}
.aside-link:hover {
    color: #ee4400;
    text-decoration: underline;
}
.aside__archives_title {
    font-size: 1.25rem;
}

figure.image {
    display: inline-block;
}

figure.align-left {
    float: left;
}

figure.align-right {
    float: right;
}

figure.image img {
    margin: 0;
}

figure.image figcaption {
    text-align: center;
    color: #666;
    font-style: italic;
    font-size: 90%;
}
.light-green.lighten-5 {
    background-color: #f1f8e9 !important;
    overflow: auto;
}
.light-green {
    background-color: #fff !important;
    overflow: auto;
}
.lesson-block {
    margin: .25rem 0 1.25rem 0;
}
.lesson-card {
    position: relative;
    display: -ms-flexbox;
    display: flex;
        -ms-flex-direction: column;
    flex-direction: column;
    min-width: 0;
    word-wrap: break-word;
    background-color: #f7f7f7;
    background-clip: border-box;
    border: 1px solid rgba(0,0,0,.125);
    border-radius: 0;
}
.lesson__h2 {
    overflow-wrap: break-word;
    font-size: 1.5rem;
    margin-bottom: .375rem;
}

.lesson-intro {
    font-size: 1.375rem;
    color: #5e5e5e;
}
.lesson-header {
    padding: .5rem .75rem;
    background-color: #ecf4e3;
    border-bottom: 1px solid #ddd;
}
.lesson-body {
    font-size: 1rem;
}
.lesson-body > table > tbody {
    /*font-size: 1.125rem;*/
}
.schedule-group-notes {
    margin: 1.25rem 1.75rem;
    line-height: 1.2;
}
.pointer {
    cursor: pointer;
}
.responsive-map {
    height: 0;
    overflow: hidden;
    padding-bottom: 56%;
    position: relative;
}

.responsive-map iframe {
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%;
}

/**
 * Footer
 */
footer h5 {
    /*color: #CCCC00 !important;*/
    color: #3498db;
    font-size: 1.25rem;
    line-height: 1.1;
    margin: 0.82rem 0 0.656rem 0;
    font-weight: 400;
}

footer ul {
    list-style-type: none;
    padding: 0;
}

footer ul li {
    list-style-type: none;
}

footer ul li a {
    color: #eee !important;
}

.brand-image {
    width: 30px;
    min-width: 30px;
    margin: 0 10px;
}
.brand-name {
    font-size: medium;
}
.brand-city {
    font-size: small;
}

.site-header {
    background-color: #f9fafb;
    background-image: linear-gradient(rgba(255, 255, 255, 0.67), rgba(255, 255, 255, 0.67)), url("/images/header2.jpg");
    background-repeat: no-repeat;
    background-size: 100% auto;
    background-position: center 50%;
}

.text-green-dark {
    color: #1B5E20 !important;
}
.table td {
    line-height: 1.2;
}
.bg-green {
    background-color: #66BB6A !important;
}
.bg-blue {
    background-color: #2c5b9c !important;
}
.bg-white {
    background-color: #ffffff;
}
a.bg-green:hover, a.bg-green:focus,
button.bg-green:hover,
button.bg-green:focus {
    background-color: #1d2124 !important;
}

.site-footer {
    padding-top: 20px;
    margin-top: 0;
    color: #f5f5f5 !important;
    background-color: #1e232d  !important;
    border-top: 2px solid #E9E907;
}
.site-footer a {
    color: #ecf0f1;
    text-decoration: none;
    transition: color 0.3s;
}
.site-footer a:hover {
    color: #3498db !important;
}
.footer-links {

}
.footer-copyright {
    overflow: hidden;
    height: 50px;
    line-height: 50px;
    color: #888  !important;
    background-color: #1a202c !important;
}

.text-block {
    position: relative;
}
.text-block:not(:last-child) {
    margin-bottom: 1.5rem !important;
}
@media (max-width: 576px) {
    .offcanvas {
        width: 80% !important;
    }
}
@media (min-width: 576px) {
    h1 {
        font-size: 1.3rem;
        line-height: 1.1;
    }
h2 {
    font-size: larger;
}
h1 {
    color: #053f8e;
}
    .header {
        height: 74px;
    }
    .header .contacts{
        display: none;
    }
    .header .slogan {
        font-size: x-small;
    }
    .logo__img {
        margin-left: 20px;
        height: 55px;
        margin-top: 8px;
    }
}

@media (min-width:768px) {
    .header {
        height: 90px;
    }
    .logo__img{
        margin-left: 22px;
        height: 70px;
        margin-top: 8px;
    }
    .header .contacts{
        display: none;
    }
    .header .slogan {
        font-size: small;
    }
    .navbar-brand {
        line-height: 1.05;
    }
    .navbar{
        justify-content: flex-end;
    }
    .navbar__btn{
        padding: 7px;
        cursor: pointer;
    }
    .post__h2 > a > span:first-child {
        position: relative;
        top: -2px;
    }
}

@media (min-width: 768px) and (max-width: 991px) {
    .desktop-nav {
        display: none !important;
    }
    .mobile-nav {
        display: block;
    }
}

@media (min-width: 992px) {
    h1 {
        font-size: 1.4rem;
        font-family: inherit;
        font-weight: normal;
    }
    h2 {
        font-size: 134%;
        font-family: inherit;
        font-weight: normal;
        line-height: 1.1;
    }
    .header {
        height: 140px;
    }
    .header .contacts {
        display: block;
    }
    .navbar-brand {
        line-height: 1.05;
    }
    .brand-name {
        font-size: large;
    }
    .brand-city {
        font-size: medium;
    }
    .header .slogan {
        font-size: 18px;
    }
    .logo__img{
        margin-left: 34px;
        height: 110px;
        margin-top: 8px;
    }
    .navbar__burger,
    .navbar__burger2 {
        display: none;
    }
    .desktop-nav {
        display: block !important;
    }

    .mobile-nav {
        display: none !important;
    }
}

@media (min-width: 1200px) {
    .header {
        height: 140px;
    }
    .header .contacts {
        display: block;
        margin: 3px 14px 0 0;
    }
    .header .lang {
        margin: 8px 12px 0px 0px;
    }
    .header a#brand {
        margin: 5px 25px 0px 0px;
        line-height: 1.05;
        font-size: x-large;
    }
    .header .slogan {
        font-size: 18px;
    }
    .logo__img{
        margin-left: 40px;
        height: 115px;
        margin-top: 8px;
    }
    .navbar__burger,
    .navbar__burger2 {
        display: none;
    }
}

/* ============================================
   ПО УМОЛЧАНИЮ (ДЛЯ ВСЕХ РАЗМЕРОВ)
   ============================================ */


/* ============================================
   TRANSITION ЭФФЕКТЫ ДЛЯ ДЕСКТОПА
   ============================================ */

/* Начальное состояние dropdown */
.desktop-nav .dropdown-menu {
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px);
    transition: opacity 0.3s ease-in-out,
    visibility 0.3s ease-in-out,
    transform 0.3s ease-in-out;
    pointer-events: none;
}

/* При hover - анимация появления */
.desktop-nav .dropdown:hover > .dropdown-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
}

/* Cascade анимация для items */
.desktop-nav .dropdown-menu .dropdown-item {
    opacity: 0;
    transform: translateX(-10px);
    transition: all 0.2s ease-in-out;
}

.desktop-nav .dropdown:hover > .dropdown-menu .dropdown-item {
    opacity: 1;
    transform: translateX(0);
}

.desktop-nav .dropdown:hover > .dropdown-menu .dropdown-item:nth-child(1) {
    transition-delay: 0.05s;
}

.desktop-nav .dropdown:hover > .dropdown-menu .dropdown-item:nth-child(2) {
    transition-delay: 0.1s;
}

.desktop-nav .dropdown:hover > .dropdown-menu .dropdown-item:nth-child(3) {
    transition-delay: 0.15s;
}

.desktop-nav .dropdown:hover > .dropdown-menu .dropdown-item:nth-child(4) {
    transition-delay: 0.2s;
}

/* ============================================
   СТРЕЛКА ДЛЯ ДЕСКТОПА
   ============================================ */

/* Добавляем стрелку ▼ для dropdown */
.desktop-nav .dropdown > .nav-link::after {
    content: '▼';
    font-size: 0.6em;
    margin-left: 5px;
    opacity: 0.6;
    transition: opacity 0.2s;
    display: inline-block;
    vertical-align: middle;
}

.desktop-nav .dropdown:hover > .nav-link::after {
    opacity: 1;
}

/* Убираем старые dropdown стили */
.offcanvas .dropdown-menu {
    display: none !important;
}

/* ===== УБИРАЕМ ТОЧКИ СПИСКА ===== */
.offcanvas ul,
.offcanvas ul.collapse,
.offcanvas .collapse {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.offcanvas li,
.offcanvas ul li {
    list-style: none !important;
    list-style-type: none !important;
    padding: 0;
    margin: 0;
}

.offcanvas li::marker,
.offcanvas li::before {
    content: none !important;
    display: none !important;
}

/* ===== ВЛОЖЕННЫЕ ССЫЛКИ - БАЗОВОЕ СОСТОЯНИЕ ===== */
.offcanvas .navbar-collapse li .nav-link,
.offcanvas ul.navbar-collapse li .nav-link,
.offcanvas .collapse li .nav-link,
.offcanvas ul.collapse li .nav-link {
    color: rgba(255, 255, 255, 0.8) !important;
    padding: 0.5rem 1rem 0.5rem 2.5rem !important;
    font-size: 0.95rem !important;
    border-left: 3px solid transparent !important;
    background-color: transparent !important;
    display: block !important;
    text-decoration: none !important;
    transition: background-color 0.15s ease,
    border-left-color 0.15s ease,
    padding-left 0.15s ease !important;
    -webkit-tap-highlight-color: transparent !important;
}

/* ===== :ACTIVE ДЛЯ ТАЧ-УСТРОЙСТВ ===== */
.offcanvas .navbar-collapse li .nav-link:active,
.offcanvas ul.navbar-collapse li .nav-link:active,
.offcanvas .collapse li .nav-link:active,
.offcanvas ul.collapse li .nav-link:active {
    background-color: rgba(255, 255, 255, 0.1) !important;
    border-left-color: #85c1e9 !important;
    padding-left: 2.75rem !important;
    color: white !important;
}

/* ===== :HOVER ДЛЯ ДЕСКТОПА ===== */
@media (hover: hover) and (pointer: fine) {
    .offcanvas .navbar-collapse li .nav-link:hover,
    .offcanvas ul.navbar-collapse li .nav-link:hover,
    .offcanvas .collapse li .nav-link:hover,
    .offcanvas ul.collapse li .nav-link:hover {
        background-color: rgba(255, 255, 255, 0.1) !important;
        border-left-color: #85c1e9 !important;
        padding-left: 2.75rem !important;
        color: white !important;
    }
}

/* ===== CURRENT ЭЛЕМЕНТ - ПОСТОЯННО ПОДСВЕЧЕН С ОТСТУПОМ ===== */
.offcanvas li.current > .nav-link,
.offcanvas li.current .nav-link,
.offcanvas .navbar-collapse li.current .nav-link,
.offcanvas .collapse li.current .nav-link {
    background-color: rgba(255, 255, 255, 0.1) !important;
    border-left-color: #85c1e9 !important;
    padding-left: 2.75rem !important;
    color: white !important;
}

/* ===== CURRENT_ANCESTOR (родитель текущей страницы) ===== */
.offcanvas li.current_ancestor > .nav-link,
.offcanvas .navbar-collapse li.current_ancestor .nav-link {
    background-color: rgba(255, 255, 255, 0.05) !important;
}

/* ===== РОДИТЕЛЬСКИЕ ССЫЛКИ - БЕЗ BORDER ===== */
.offcanvas .navbar-nav > .nav-item > .nav-link,
.offcanvas .navbar-nav > li > .nav-link {
    border-left: none !important;
}

/* ===== СТРЕЛКА ДЛЯ COLLAPSE ===== */
.offcanvas .nav-link[data-bs-toggle="collapse"] {
    position: relative !important;
}

.offcanvas .nav-link[data-bs-toggle="collapse"]::after {
    content: '' !important;
    position: absolute !important;
    right: 1rem !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 0 !important;
    height: 0 !important;
    border-left: 5px solid transparent !important;
    border-right: 5px solid transparent !important;
    border-top: 5px solid rgba(255, 255, 255, 0.7) !important;
    transition: transform 0.3s ease !important;
}

.offcanvas .nav-link[aria-expanded="true"]::after {
    transform: translateY(-50%) rotate(180deg) !important;
    border-top-color: white !important;
}

/* ===== РАЗДЕЛИТЕЛИ ===== */
.offcanvas .navbar-nav > .nav-item,
.offcanvas .navbar-nav > li {
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.offcanvas .navbar-nav > .nav-item:last-child,
.offcanvas .navbar-nav > li:last-child {
    border-bottom: none;
}

/* Очень маленькие экраны */
@media (max-width: 576px) {
    .offcanvas {
        width: 85% !important;
    }

    .offcanvas .navbar-collapse li .nav-link,
    .offcanvas .collapse li .nav-link {
        font-size: 0.9rem !important;
        padding-left: 2rem !important;
    }

    .offcanvas .navbar-collapse li .nav-link:active,
    .offcanvas .navbar-collapse li .nav-link:hover,
    .offcanvas .collapse li .nav-link:active,
    .offcanvas .collapse li .nav-link:hover,
    .offcanvas .collapse li.current .nav-link {
        padding-left: 2.25rem !important;
    }
}
/* CURRENT ЭЛЕМЕНТ - ПОСТОЯННО ПОДСВЕЧЕН С ОТСТУПОМ */
/* Работает в ЛЮБОМ состоянии collapse (закрыт/открывается/открыт) */
.offcanvas li.current > .nav-link,
.offcanvas li.current .nav-link,
.offcanvas .navbar-collapse li.current .nav-link,
.offcanvas .collapse li.current .nav-link,
.offcanvas ul.collapse li.current > .nav-link,
.offcanvas ul.collapse.show li.current > .nav-link,
.offcanvas ul.collapse.collapsing li.current > .nav-link,
.offcanvas ul.navbar-collapse li.current > .nav-link,
.offcanvas ul.navbar-collapse.show li.current > .nav-link,
.offcanvas ul.navbar-collapse.collapsing li.current > .nav-link,
.offcanvas .collapse.show li.current .nav-link,
.offcanvas .collapse.collapsing li.current .nav-link {
    background-color: rgba(255, 255, 255, 0.1) !important;
    border-left-color: #85c1e9 !important;
    padding-left: 2.75rem !important;
    color: white !important;
}

/* CURRENT_ANCESTOR (родитель текущей страницы) */
.offcanvas li.current_ancestor > .nav-link,
.offcanvas .navbar-collapse li.current_ancestor .nav-link {
    background-color: rgba(255, 255, 255, 0.05) !important;
}

.pdf-download-btn {
    transition: all 0.3s ease;
}
.pdf-download-btn:hover {
    background-color: #5a6268;
    border-color: #545b62;
}

.sidebar-card {
    border: 1px solid #eef1f4;
    background: #f9fafb;
    overflow: hidden;
}

.sidebar-card__head {
    padding: 3px 8px 1px;
    font-size: 0.8rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: #586474;
    background: #f7f9fb;
    border-bottom: none;
}

.sidebar-card__body {
    padding: 8px 10px 10px;
}

.sidebar-card__body--tight {
    padding: 0 8px 8px;
}

.sidebar-card__list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.sidebar-card .list-aside {
    padding-left: 0;
}

.sidebar-card .list-aside-item {
    margin-bottom: 0.5rem;
}

.sidebar-card .list-aside-item:last-child {
    margin-bottom: 0;
}

.sidebar-card .aside__archives_title {
    font-size: 0.9rem;
}

.sidebar-card .calendar-event {
    padding: 2px 0;
}

.sidebar-card__media {
    display: block;
    line-height: 0;
    overflow: hidden;
    text-decoration: none;
    position: relative;
    padding: 0 6px 6px;
}

.sidebar-card__frame {
    display: block;
    aspect-ratio: 4 / 3;
    background: #f3f5f8;
    overflow: hidden;
}

.sidebar-card__frame picture,
.sidebar-card__frame img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.sidebar-card__cta {
    position: absolute;
    right: 18px;
    bottom: 14px;
    font-size: 1.1rem;
    font-weight: 700;
    color: #cfd6df;
    background: transparent;
    border: none;
    line-height: 1;
    transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
}

.sidebar-card__media:hover .sidebar-card__cta,
.sidebar-card__media:focus-visible .sidebar-card__cta {
    color: #ffffff;
    background: transparent;
    border-color: transparent;
}

.gallery-card {
    height: 100%;
    background: #f9fafb;
    border: 1px solid #eef1f4;
    padding: 8px;
}

.gallery-card__link {
    display: block;
    text-decoration: none;
    color: inherit;
}

.gallery-card__link:focus-visible {
    outline: 3px solid #0d6efd;
    outline-offset: 2px;
}

.gallery-card .gallery-thumb {
    position: relative;
    background: #f8f9fa;
    overflow: hidden;
    aspect-ratio: 16 / 10;
    border: 1px solid #e6e9ee;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.gallery-thumb::before {
    content: '';
    position: absolute;
    inset: 0;
    background-color: #f3f5f8;
    background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc2NCcgaGVpZ2h0PSc2NCcgdmlld0JveD0nMCAwIDY0IDY0JyBmaWxsPSdub25lJyBzdHJva2U9JyM5YWE0YjInIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJz48cmVjdCB4PScxMicgeT0nMTgnIHdpZHRoPSc0MCcgaGVpZ2h0PSczMCcgcng9JzQnLz48Y2lyY2xlIGN4PSczMicgY3k9JzMzJyByPScxMCcvPjxwYXRoIGQ9J00yMiAxOGw0LTZoMTJsNCA2Jy8+PC9zdmc+");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 32px 32px;
    opacity: 0.6;
    z-index: 0;
}

.gallery-card .gallery-thumb picture,
.gallery-card .gallery-thumb img {
    display: block;
    width: 100%;
    height: 100%;
    position: relative;
    z-index: 1;
}

.gallery-card .gallery-thumb img {
    object-fit: cover;
}

.gallery-thumb__placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    color: #9aa4b2;
}

.gallery-card__title-overlay {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 8px 10px;
    font-size: 0.85rem;
    font-weight: 500;
    color: #ffffff;
    background: linear-gradient(0deg, rgba(0, 0, 0, 0.65), rgba(0, 0, 0, 0));
    opacity: 0;
    transition: opacity 0.2s ease;
}

.gallery-card__body {
    padding: 8px 2px 2px;
}

.gallery-card__desc {
    margin-top: 4px;
    font-size: 1rem;
    color: inherit;
    line-height: 1.3;
}

.gallery-card__meta {
    margin-top: 4px;
    font-size: 0.75rem;
    color: #7a8491;
    display: flex;
    align-items: center;
    gap: 6px;
}

.gallery-card__meta .meta-sep {
    color: #9aa4b2;
}

.gallery-card__link:hover .gallery-thumb,
.gallery-card__link:focus-visible .gallery-thumb {
    border-color: #c7d2e2;
    box-shadow: 0 0 0 2px rgba(13, 110, 253, 0.15);
}

.gallery-card__link:hover .gallery-card__title-overlay,
.gallery-card__link:focus-visible .gallery-card__title-overlay {
    opacity: 1;
}

.gallery-title {
    font-size: 1.35rem;
    font-weight: 500;
    line-height: 1.2;
}

.gallery-meta-right {
    font-size: 0.8rem;
    line-height: 1.2;
    text-align: right;
    letter-spacing: 0.2px;
}

.gallery-meta-right i {
    opacity: 0.8;
}

.gallery-back-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    font-size: 0.85rem;
    color: #6c757d;
    background: #f4f6f8;
    border: 1px solid #e6e9ee;
    border-radius: 999px;
    text-decoration: none;
}

.gallery-back-link:hover {
    color: #2d2d2d;
    border-color: #cfd6df;
}
