.mod-accordioncats {
    font-family: var(--acc-font, inherit);
}

/* Base list */
.mod-accordioncats .acc-cats {
    list-style: none;
    margin: 0;
    padding: 0;
    border: none;
    border-radius: 0;
    background: transparent;
}

.mod-accordioncats .acc-item {
    display: block;
    padding: var(--acc-pad-y, 8px) var(--acc-pad-x, 10px);
    border-top: 0;
    border-bottom: 1px solid var(--acc-border, #e5e5e5);
}

.mod-accordioncats .acc-item:first-child {
    border-top: 0;
}

.mod-accordioncats .acc-row {
    display: flex;
    align-items: center;
    gap: var(--acc-row-gap, 16px);
}

/* Toggle */
.mod-accordioncats .acc-toggle {
    width: var(--acc-toggle-size, 26px);
    height: var(--acc-toggle-size, 26px);
    border: var(--acc-toggle-border-w, 0.5px) solid var(--acc-toggle-border, #d0d0d0);
    border-radius: var(--acc-toggle-radius, 6px);
    background: var(--acc-toggle-bg, transparent);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    user-select: none;
    font-weight: var(--acc-toggle-weight, 300);
    color: var(--acc-toggle-color, #666);
    font-size: var(--acc-toggle-font, 24px);
    line-height: 1;
    padding: 0;
}

.mod-accordioncats .acc-toggle::before {
    content: "+";
    line-height: 1;
}

.mod-accordioncats .acc-item.is-open > .acc-row > .acc-toggle::before {
    content: "-";
}

/* Link */
.mod-accordioncats .acc-link {
    text-decoration: none;
    color: var(--acc-text, #333) !important;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.mod-accordioncats .acc-link.is-active .acc-title {
    background: var(--acc-active-bg, #eef2ff);
    padding: 2px 12px;
    border-radius: 8px;
    font-weight: var(--acc-active-weight, 400);
}

/* Counter */
.mod-accordioncats .acc-count {
    color: var(--acc-count-color, #999);
    font-size: var(--acc-count-size, 13px);
    margin-left: 0;
    margin-inline-start: calc(var(--acc-title-count-gap, 6px) - var(--acc-row-gap, 16px));
}

/* Children + animation */
.mod-accordioncats .acc-children {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    padding-left: var(--acc-children-pad, 10px);
    margin-top: var(--acc-children-mt, 4px);
    width: 100%;
    transition: max-height var(--acc-anim, .2s) ease, opacity var(--acc-anim, .2s) ease;
    box-sizing: content-box;
}

.mod-accordioncats .acc-item.is-open > .acc-children {
    max-height: 2000px;
    opacity: 1;
}

/* Order (toggle left default) */
.mod-accordioncats .acc-row > .acc-toggle { order: 1; }
.mod-accordioncats .acc-row > .acc-link   { order: 2; }
.mod-accordioncats .acc-row > .acc-count  { order: 3; }

/* Toggle right */
.mod-accordioncats.acc-toggle-right .acc-row > .acc-link   { order: 1; }
.mod-accordioncats.acc-toggle-right .acc-row > .acc-count  { order: 2; }
.mod-accordioncats.acc-toggle-right .acc-row > .acc-toggle { order: 3; }

.mod-accordioncats.acc-toggle-right .acc-row {
    gap: 0;
}

.mod-accordioncats.acc-toggle-left .acc-toggle {
    margin-inline-start: 0;
    margin-inline-end: var(--acc-toggle-gap, 8px);
}

.mod-accordioncats.acc-toggle-right .acc-link {
    flex: 0 1 auto;
    margin-inline-end: 0;
}

.mod-accordioncats.acc-toggle-right .acc-count {
    margin-inline-start: var(--acc-title-count-gap, 6px);
    margin-inline-end: 0;
}

.mod-accordioncats.acc-toggle-right .acc-toggle {
    margin-inline-start: auto;
    margin-inline-end: 0;
}

/* =========================
   Sticky support (Cassiopeia/Grid)
   ========================= */

.site-grid > .container-sidebar-left,
.site-grid > .container-sidebar-right {
    align-self: stretch !important; /* важно для sticky внутри grid */
    min-height: 0;
}

/* Не ломаем sticky родителями */
.site-grid,
.site-grid > .grid-child,
.site-grid > .container-sidebar-left,
.site-grid > .container-sidebar-right,
.site-grid > .container-sidebar-left .sidebar-left,
.site-grid > .container-sidebar-right .sidebar-right,
.site-grid > .container-sidebar-left .card,
.site-grid > .container-sidebar-right .card,
.site-grid > .container-sidebar-left .card-body,
.site-grid > .container-sidebar-right .card-body {
    overflow: visible !important;
    contain: none !important;
}

/* Fallback: sticky на модуле (если card не найдена) */
.mod-accordioncats.acc-sticky {
    position: -webkit-sticky;
    position: sticky;
    top: var(--acc-sticky-top-final, var(--acc-sticky-top, 10px));
    z-index: 2;
    max-height: calc(100vh - var(--acc-sticky-top-final, var(--acc-sticky-top, 10px)));
    overflow: auto;
}

/* Основной режим: sticky на карточке */
.card.acc-sticky-card {
    position: -webkit-sticky !important;
    position: sticky !important;
    top: var(--acc-sticky-top-final, var(--acc-sticky-top, 10px));
    z-index: 2 !important; /* ниже шапки */
    max-height: calc(100vh - var(--acc-sticky-top-final, var(--acc-sticky-top, 10px)));
    overflow: auto;
    align-self: start;
}

/* Если sticky на карточке, у модуля sticky выключаем */
.card.acc-sticky-card .mod-accordioncats.acc-sticky {
    position: static !important;
    top: auto !important;
    max-height: none !important;
    overflow: visible !important;
}

/* Sticky card не должна сужаться */
.card.acc-sticky-card {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
    overflow: visible !important; /* убираем сужение из-за внутреннего scrollbar */
}

/* Скролл делаем внутри модуля */
.card.acc-sticky-card .mod-accordioncats.acc-sticky {
    position: static !important;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    max-height: calc(100vh - var(--acc-sticky-top-final, var(--acc-sticky-top, 10px)));
    overflow-y: auto;
    overflow-x: hidden;
}

.card.acc-sticky-card .mod-accordioncats.acc-sticky {
    scrollbar-gutter: stable;
}