:root {
    --background-color: #151515;
    --text-color: #e0e0e0;
    --link-color: #fe9d1a;
    --russia: 'Russia-Light', Helvetica, arial;
    --box-shadow: 0px 0px 9px 5px rgba(255, 255, 255, 0.33);
    --preview-title: #d3d3d3;
    --metaline: 1px solid #424242;
    --line-bg: #333;
    --pagi-nav-bl: 1px solid #595959;
    --border-site-desc: 2px solid #666;
    --site-desc: #bdbdbd;
    --transparent-bg: #222;
    --cat-bg: #212121;
    --cat-hover: #373737;
    --button-bg: #666;
    --comm-background-color: #424242;
    --comm-text-border: 1px solid #434343;
    --main-block-actor-bg: #222;
    --modal-input-border: 1px solid #2f2f2f;
    --info-color: #c2c2c2;
    --alert-color: #fff;
    --model-about: #222;
    --border-radius: 5px;
    --border-radius-sm: 3px;
}

html[data-theme='dark'] {
    --background-color: #151515;
    --text-color: #e0e0e0;
    --link-color: #fe9d1a;
    --russia: 'Russia-Light', Helvetica, arial;
    --box-shadow: 0px 0px 9px 5px rgba(255, 255, 255, 0.33);
    --preview-title: #d3d3d3;
    --metaline: 1px solid #424242;
    --line-bg: #333;
    --pagi-nav-bl: 1px solid #595959;
    --border-site-desc: 2px solid #666;
    --site-desc: #bdbdbd;
    --transparent-bg: #222;
    --cat-bg: #212121;
    --cat-hover: #373737;
    --button-bg: #666;
    --comm-background-color: #424242;
    --comm-text-border: 1px solid #434343;
    --main-block-actor-bg: #222;
    --modal-input-border: 1px solid #2f2f2f;
    --info-color: #c2c2c2;
    --alert-color: #fff;
    --model-about: #222;
    --border-radius: 5px;
    --border-radius-sm: 3px;
    --footer-border-top: 2px solid #292828;
    --header-bc: linear-gradient(0deg, rgba(0, 0, 0, 0) 0%, rgb(0, 0, 0) 65%);
}

html[data-theme='light'] {
    --background-color: #f9f9f9;
    --text-color: #121416d8;
    --link-color: #fe9d1a;
    --russia: 'Russia-Light', Helvetica, arial;
    --box-shadow: 0px 0px 9px 5px rgba(54,51,101,0.33);
    --preview-title: #555;
    --metaline: 1px solid #ccc;
    --line-bg: rgb(227 227 227);
    --pagi-nav-bl: 1px solid #e3e3e3;
    --border-site-desc: 2px solid #c6c6c6;
    --site-desc: #5c5c5c;
    --transparent-bg: rgb(242 242 242);
    --cat-bg: #f2f2f2;
    --cat-hover: #fff;
    --button-bg: #ccc;
    --comm-background-color: #f9f9f9;
    --comm-text-border: 1px solid #e8e8e8;
    --main-block-actor-bg: #fff;
    --modal-input-border: 1px solid #e4e4e4;
    --info-color: #282828;
    --alert-color: #111;
    --model-about: #fff;
    --border-radius: 5px;
    --border-radius-sm: 3px;
    --footer-border-top: 2px solid #e3e3e3;
    --header-bc: linear-gradient(0deg, rgba(0, 0, 0, 0) 0%, rgb(68, 68, 68) 10%);
}

* {
    margin: 0;
    padding: 0;
    outline: none;
    border: 0;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}
body {
    background: var(--background-color) ;
    color: var(--text-color);
    font-size: 16px;
    font-family: var(--russia);
    font-weight: normal;
    line-height: normal;
    padding: 0;
    margin: 0;
    height: 100%;
    width: 100%;
}
body.modal-open {
    overflow: hidden;
    padding-right: var(--sb-width, 0px) !important;
}
body.modal-open .header {
    padding-right: var(--sb-width, 0px);
}
p {
    font-family: var(--russia);
    margin-bottom: 0;
}
a {
    color: var(--text-color);
    text-decoration: none;
}
a:hover {
    color: var(--link-color);
    filter: brightness(95%);
}
img {
    border-radius: var(--border-radius);
    vertical-align: unset;
}
dl, ol, ul {
    list-style: none;
    margin-top: 0;
    margin-bottom: 0;
}
.d-none, .dpn, .mobile-menu, .counter, .side-panel, .descrip-btn, .video-meta-mobile {
    display: none;
}
.container {
    width: 100%;
    padding-right: 0;
    padding-left: 0;
    margin-right: auto;
    margin-left: auto;
}
.unselectable {
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}
#gotop {
    position: fixed;
    width: 65px;
    height: 65px;
    line-height: 60px;
    right: 20px;
    bottom: 20px;
    cursor: pointer;
    z-index: 9998;
    display: none;
    opacity: 0.7;
    background-color: rgba(0, 0, 0, 0.48);
    color: var(--color-white);
    border-radius: 50%;
    text-align: center;
    font-size: 4em;
}
/*************************************************/

/**************** Основные блоки *****************/
.contello {
    width: 100%;
}
.content {
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    -ms-flex-wrap: wrap;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    -ms-flex-pack: justify;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    margin: 10px 0;
}
.position {
    align-items: center;
    display: flex;
}
.header {
    width: 100%;
    background: var(--header-bc);

    color: white;
    position: fixed;
    top: 0;
    z-index: 11;
}
.header-container {
    display: grid;
    grid-template-columns: auto 1fr auto auto auto;
    align-items: center;
    max-width: 1920px;
    margin: 0 auto;
}
.header-logo {
    display: flex;
    justify-content: flex-start;
    margin-left: -5px;
}
.header-logo img {
    max-height: 40px;
}
.header-menu {
    display: flex;
    justify-content: flex-start;
    margin-left: 20px;
    text-transform: uppercase;
}
.header-menu ul {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
}
.header-menu ul li {
    margin-right: 20px;
}
.header-menu ul li a {
    text-decoration: none;
    color: white;
    font-size: 18px;
}
.header-menu ul li a:hover {
    color: var(--link-color);
    cursor: pointer;
}
.header-search {
    display: flex;
    justify-content: flex-end;
    position: relative;
}
.header-search input {
    padding: 5px;
    padding-left: 5px;
    border-radius: var(--border-radius);
    border: 1px solid #ccc;
    transition: width 0.1s ease;
    width: 0;
    opacity: 0;
    position: absolute;
    left: 100%;
    top: -4px;
    margin-left: 15px;
}
.active {
    min-width: 0px;
    min-height: 0px;
    padding: 0px;
    background-color: #6d6d6d;
}
.header-search input.active {
    width: 230px;
    opacity: 1;
}
.header-search button {
    background: none;
    border: none;
    color: white;
    cursor: pointer;
    font-size: 20px;
}
.header-search input[type="text"] {
    background-color: #fff;
    padding-left: 8px !important;
    color: #000;
}
.header-search .icon-search:hover, .header-search .icon-search:active {
    color: var(--link-color);
}
.header-auth {
    display: flex;
    justify-content: flex-end;
}
.header-auth .user-item {
    color: white;
    text-decoration: none;
    margin-left: 15px;
    font-size: 16px;
}
.header-auth .reg {
    background-color: var(--link-color);
    color: #111;
}
.header-auth .user-item:hover {
    color: #111;
    cursor: pointer;
}
.header-auth .reg:hover {
    color: #fff;
}
.header-theme-toggle {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-left: 3px;
}
#theme-toggle {
    background: none;
    padding: 0px;
    cursor: pointer;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    border-radius: 8%;
    height: 38px;
    border: none;
    cursor: pointer;
    margin: 14px 10px;
}
#theme-toggle .icon {
    display: inline-block;
    width: 24px;
    height: 24px;
    text-align: center;
    line-height: 24px;
}
#theme-toggle svg:hover path {
    fill: var(--link-color);
}
.header-actions a {
    margin-left: 15px;
    padding: 8px 10px;
    color: #fff;
    text-transform: uppercase;
    font-weight: bold;
    font-size: 14px;
    text-decoration: none;
    border: 1px solid var(--link-color);
    border-radius: var(--border-radius-sm);
}
.header-actions a:hover {
    background: var(--link-color);
    color: #000;
}
#topchik-fav {
    background-color: #4f4f4f;
    color: var(--color-white);
    vertical-align: top;
    padding: 3px 4px 0px 3px;
    margin-left: 8px;
    border-radius: var(--border-radius-sm);
}
.footer {
    display: flex;
    flex-direction: column;
    position: relative;
    border-top: var(--footer-border-top);
}
.podvalchik-copyr {
    margin: 10px;
    font-size: 14px;
    padding-top: 10px;
    color: var(--color-white);
    text-align: center;
}
.podvalchik-copyr, .podvalchik-menu {
    background-color: var(--heder-footer-bg);
}
.podvalchik-menu a {
    text-transform: uppercase;
    color: var(--footer-color);
    display: inline-block;
    vertical-align: top;
    padding: 3px 3px;
    font-size: 12px;
    margin-bottom: 10px;
    cursor: pointer;
}
.podvalchik-menu a:hover {
    color: var(--color-white);
}
.container {
    max-width: 1920px;
    margin: 0 auto;
    width: fill-available;
    width: -webkit-fill-available;
    width: -moz-available;
}
/*************************************************/

/**************** Age verification ***************/

/* Оверлей (фон) модального окна */
.age-modal-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(21, 21, 21, 0.95);
    z-index: 1000;
    justify-content: center;
    align-items: flex-start; /* Выравнивание по верху */
    padding-top: 5vh; /* Отступ сверху */
}

/* Контейнер модального окна */
.age-modal-wrapper {
    background: #1a1a1a; /* Чуть светлее #151515 для контраста */
    color: #fff;
    padding: 40px;
    border-radius: 15px;
    max-width: 550px;
    margin: 20px;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.8); /* Глубокая тень */
    border: 1px solid rgba(254, 157, 26, 0.3); /* Тонкая рамка в акцентном цвете */
    position: relative;
    overflow: hidden;
}

/* Добавляем декоративный элемент - верхняя полоска */
.age-modal-wrapper::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 5px;
    background: linear-gradient(90deg, rgb(254, 157, 26), transparent); /* Градиент */
}

/* Контент внутри модального окна */
.age-modal-content {
    text-align: center;
}

/* Заголовок */
.age-modal-content h1 {
    color: #fff;
    font-size: 28px;
    margin-bottom: 25px;
    text-transform: uppercase; /* Для эффектности */
    letter-spacing: 1px;
}

/* Параграфы */
.age-modal-content p {
    color: #e0e0e0; /* Мягкий белый для читаемости */
    font-size: 16px;
    line-height: 1.6;
    margin: 15px 0;
}

/* Ссылки */
.age-modal-content a {
    color: rgb(254, 157, 26);
    text-decoration: none;
    font-weight: bold;
    transition: color 0.3s;
}

.age-modal-content a:hover {
    color: rgb(255, 180, 50); /* Светлее при наведении */
    text-decoration: underline;
}

/* Список */
.age-modal-content ul {
    text-align: left;
    margin: 20px 0;
    padding-left: 25px;
    color: #e0e0e0;
    list-style-type: none; /* Убираем стандартные маркеры */
}

.age-modal-content ul li {
    position: relative;
    padding-left: 20px;
}

.age-modal-content ul li::before {
    content: '•';
    color: rgb(254, 157, 26); /* Акцентный цвет для маркеров */
    position: absolute;
    left: 0;
    font-size: 20px;
}

/* Контейнер для кнопок */
.age-modal-buttons {
    display: flex;
    justify-content: center;
    margin-top: 30px;
    gap: 15px; /* Расстояние между кнопками */
}

/* Общие стили для кнопок */
.age-modal-btn {
    padding: 14px 30px;
    border: none;
    border-radius: var(--border-radius); /* Скругленные кнопки */
    cursor: pointer;
    font-size: 18px;
    font-weight: bold;
    text-transform: uppercase;
    letter-spacing: 1px;
    transition: all 0.3s ease; /* Плавные переходы */
}

/* Кнопка "Я не согласен" */
.disagree {
    background: #333;
    color: #fff;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.5);
}

.disagree:hover {
    background: #444;
    transform: translateY(-2px); /* Легкий подъем при наведении */
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.6);
}

/* Кнопка "Я согласен" */
.agree {
    background: rgb(254, 157, 26);
    color: #fff;
    box-shadow: 0 4px 15px rgba(254, 157, 26, 0.4);
}

.agree:hover {
    background: rgb(255, 180, 50);
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(254, 157, 26, 0.6);
}

/* Стили для даты */
.age-modal-content p:last-of-type {
    color: #b0b0b0;
    font-size: 14px;
    margin-top: 25px;
    font-style: italic;
}

/* Медиа-запрос для мобильных устройств (ширина до 600px) */
@media (max-width: 600px) {
    .age-modal-wrapper {
        height: 60vh; /* Высота 60% от высоты экрана */
        overflow-y: auto; /* Полоса прокрутки, если контент не помещается */
        padding: 20px; /* Уменьшаем отступы */
    }
    .age-modal-content h1 {
        font-size: 20px; /* Уменьшаем заголовок */
    }
    .age-modal-content p {
        font-size: 14px; /* Уменьшаем текст */
    }
    .age-modal-btn {
        padding: 10px 20px; /* Уменьшаем кнопки */
        font-size: 14px;
    }
}

/*************************************************/

/***************** Видео карточка ****************/
.video-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    margin-bottom: 20px;
}
.preview {
    padding-bottom: 2px;
}
.video {
    display: inline-block;
    position: relative;
    width: 100%;
    padding: 0;
    vertical-align: top;
    margin: 0;
    overflow: hidden;
}
.video-thumbnail {
    position: relative;
    width: 100%;
    height: 0;
    padding-bottom: 56.25%; /* 16:9 aspect ratio */
    background-color: #000;
    overflow: hidden;
    border-radius: var(--border-radius);
}
.video img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    transition: opacity 0.5s ease-in-out;
}
.video img.loaded {
    opacity: 1;
}
.video video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 2;
    opacity: 0;
    pointer-events: none;
    background: transparent;
    transition: opacity 0.3s ease-in-out;
}
.preview::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 4px;
    background: linear-gradient(to right, #fe9d1a, #fffc00);
    z-index: 5; /* Поверх остальных элементов */
    transition: width 0.8s ease-in-out, opacity 0.2s ease-in-out;
    border-top-left-radius: 5px;
    border-top-right-radius: 5px;
    opacity: 1;
}
.preview:hover::before {
    width: 100%;
    opacity: 1;
}
.preview:hover::before {
    animation: hideBar 1s ease-in-out forwards;
}
@keyframes hideBar {
    80% {
        width: 100%;
        opacity: 1;
    }
    100% {
        width: 100%;
        opacity: 0;
    }
}
.video .image:hover {
    box-shadow: var(--box-shadow);
    -webkit-box-shadow: var(--box-shadow);
    -moz-box-shadow: var(--box-shadow);
}
.preview:hover video {
    opacity: 1;
    background-color: transparent;
}
.preview:hover img {
    transition: opacity 0.3s ease-in-out;
}
.metagrid {
    display: grid;
    grid-template-rows: auto auto auto;
    grid-template-columns: 1fr;
    padding: 2px 5px 2px 5px;
}
.actor-meta {
    grid-column: 1;
    grid-row: 1;
}
.texturl {
    display: -webkit-box;
    font-weight: bold;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
    cursor: default;
}
.meta-info {
    grid-column: 2;
    grid-row: 1;
}
.meta-info .dtime,
.meta-info .nviews {
    padding: 1px 5px;
    color: var(--preview-title);
    font-size: 14px;
    cursor: default;
}
.dtime svg {
    vertical-align: text-top;
}
.metaline {
    margin: 0 5px;
}
.title-line {
    display: block;
    border-bottom: var(--metaline);
}
.preview-title {
    font-size: 1.05em;
    font-weight: 300;
    line-height: 22px;
    height: 44px;
    overflow: hidden;
    color: var(--preview-title);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    padding: 2px 5px;
}
/*************************************************/

/******************* Пагинация *******************/
.pagination-container {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 5px;
    padding: 10px 20px;
    border-radius: var(--border-radius);
}
.pagination-container a,
.pagination-container span {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 40px;
    height: 40px;
    color: var(--text-color);
    font-size: 20px;
    font-weight: bold;
    text-decoration: none;
    border-radius: var(--border-radius);
    background-color: transparent;
}
.pagination-container a:hover {
    background-color: #555;
    color: #fff;
}
.pagination-container .pagination-current {
    background-color: #444;
    color: #f1f1f1;
    cursor: default;
}
.pagination-container .pagination-back,
.pagination-container .pagination-forward,
.pagination-container .pagination-start,
.pagination-container .pagination-end {
    font-size: 18px;
    line-height: 1;
}
.pagination-container .pagination-back:hover,
.pagination-container .pagination-forward:hover,
.pagination-container .pagination-start:hover,
.pagination-container .pagination-end:hover {
    background-color: #555;
    color: #fff;
}
/*************************************************/

/****************** Разделитель ******************/
.fcTdkq {
    display: flex;
    flex-direction: column;
    -webkit-box-align: center;
    align-items: center;
    -webkit-box-pack: center;
    justify-content: center;
    height: 2.9rem;
    position: relative;
    width: 100%;
}
.line {
    position: absolute;
    width: 100%;
    height: 2px;
    background-color: var(--line-bg);
}
.f-title {
    background-color: var(--background-color);
    margin: 5px 0 5px 0;
    padding: 0 10px;
    font-weight: bold;
    font-size: 1.2em;
    color: var(--text-color);
    text-transform: uppercase;
    z-index: 1;
    position: relative;
}
/*************************************************/

/**************** ОПИСАНИЕ страницы **************/
.site-desc, .static-desc {
    color: var(--site-desc);
    line-height: 18px;
    padding: 10px 5px;
    width: 100%;
}
.site-desc h1, .static-desc h1 {
    font-size: 1.3em;
}
.site-desc h1, .site-desc h2, .site-desc h3 {
    padding-bottom: 10px;
    border-bottom: var(--border-site-desc);
    font-size: 1.15em;
    text-transform: uppercase;
    font-weight: bold;
}
.transparent {
    padding: 10px;
    border-radius: 0 0 8px 8px;
}
/*************************************************/

/******************** Видео **********************/
.fleft {
    width: calc(100% - 420px);
    width: -webkit-calc(100% - 420px);
}
.fright {
    width: 400px;
}
.fcTdkqr {
    display: flex;
    align-items: center;
    -webkit-box-pack: center;
    justify-content: center;
    height: 2.9rem;
    position: relative;
    width: 100%;
    margin-top: 0;
}
video.lazy-loaded {
    opacity: 0; /* Изначально скрыто */
    transition: opacity 0.5s ease-in-out; /* Плавное появление */
}

video.lazy-loaded.loaded {
    opacity: 1; /* Появляется после загрузки постера */
}
.line_r {
    width: 100%;
}
.video-title h1 {
    font-size: 1.4em;
    color: var(--text-color);
    font-weight: bold;
    min-width: 100%;
    padding: 15px 0;
    margin: 0;
}
.video-meta {
    display: inline-flex;
    color: var(--text-color);
}
.v-item-one, .v-item-two {
    float: left;
    line-height: 20px;
    height: 35px;
    padding: 0 20px;
    border-right: var(--pagi-nav-bl);
}
.v-item-three {
    float: left;
    line-height: 20px;
    height: 35px;
    padding: 0 20px;
}
.v-item-three a {
    color: var(--text-color);
    font-weight: 600;
    text-decoration: underline;
}
.v-item-three a:hover, .video-actors a:hover, .video-tags a:hover {
    color: var(--link-color);
    cursor: pointer;
}
.video-actors {
    text-transform: uppercase;
    font-size: 1.1em;
    color: var(--text-color);
    margin: 14px 0;
}
.video-actors a {
    color: var(--text-color);
    font-weight: 600;
    margin: 0 5px;
}
.title-meta, .actors-social {
    display: flex;
    flex-flow: row nowrap;
    justify-content: space-between;
    border-bottom: var(--metaline);
}
.social, .video-info, .video-tags, .video-description {
    margin: 10px 0;
}
.toggle-btn {
    margin: 5px 0;
    cursor: pointer;
    text-decoration: underline;
}
.video-tags a {
    color: var(--text-color);
    display: inline-block;
    padding: 0 6px;
    background-color: var(--cat-bg);
    margin: 0 5px 5px 0;
    border-radius: var(--border-radius-sm);
    filter: none;
}
.video-tags, .video-description {
    line-height: 24px;
    color: var(--text-color);
}
.ratingtypeplusminus {
    cursor: default;
}
.ratingplus, .ratingminus, .ratingzero {
    font-size: 18px;
    font-weight: 400;
    top: 50%;
    color: var(--text-color);
    align-content: end;
}
.plus-rating, .minus-rating, .add_favorite {
    cursor: pointer;
}
.vmeta-plus, .vmeta-minus, .fm-fav {
    position: relative;
    display: inline-flex;
    vertical-align: middle;
    font-size: 1.3em;
    opacity: .8;
    background-color: var(--background-color);
    border: var(--pagi-nav-bl);
    color: var(--preview-title);
    padding: 3px 6px 1px;
    border-radius: var(--border-radius-sm);
    margin-left: 5px;
}
.vmeta-plus svg:hover path {
    fill: green;
}
.vmeta-minus svg:hover path {
    fill: red;
}
.fm-fav svg:hover path {
    fill: var(--link-color);
}
.more-top, .more-bottom {
    cursor: pointer;
    background-color: var(--cat-bg);
    color: var(--text-color);
    padding: 3px;
    text-align: center;
    border-radius: var(--border-radius);
}
/*************************************************/

/****************** Комментарии ******************/
.vidoser-comms {
    padding: 10px;
    background-color: var(--cat-bg);
    margin-top: 10px;
    border-radius: var(--border-radius);
}
.comms-title {
    line-height: 30px;
}
.comms-title > span {
    font-size: 14px;
}
.bb-editor textarea {
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    padding: 7px;
    border: var(--comm-text-border);
    width: 100%;
    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
    -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
    transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
    margin-top: -1px;
    outline: none;
}
.ac-title {
    margin-bottom: 10px;
}
.add-comm-form {
    position: relative;
    margin: 20px 0;
    display: none;
}
.ac-inputs {
    margin-bottom: 15px;
}
.ac-submit {
    padding-bottom: 15px;
}
.ac-submit button {
    float: right;
    padding: 5px 10px;
    background-color: var(--button-bg);
    border-radius: var(--border-radius-sm);
    color: var(--color-white);
    cursor: pointer;
}
.ac-submit button:hover, .ui-dialog-buttonset button:hover, .login-box button:hover {
    background-color: var(--link-color);
}
.ac-textarea textarea {
    height: 85px;
}
textarea {
    display: block;
    color: var(--text-color);
    background-color: var(--comm-background-color);
    border-radius: var(--border-radius);
    overflow: auto;
    vertical-align: top;
    resize: vertical;
}
.input-name > input[type="text"] {
    color: var(--text-color);
    background-color: var(--comm-background-color);
    border: var(--modal-input-border);
    padding: 5px;
    vertical-align: middle;
    box-sizing: border-box;
    border-radius: var(--border-radius);
    width: 100%;
    margin-bottom: 10px;
}
.button {
    padding: 0 10px;
    display: inline-block;
    height: 30px;
    line-height: 30px;
    border-radius: var(--border-radius-sm);
    cursor: pointer;
    background-color: var(--button-bg);
    color: var(--color-white);
    text-align: center;
    text-transform: uppercase;
    float: right;
}
.button:hover {
    background-color: var(--link-color);
    color: var(--color-white);
}
.comm {
    background-color: var(--cat-bg);
    padding: 10px;
    margin-top: 10px;
    color: var(--text-color);
    border-radius: var(--border-radius);
}
.comm-meta {
    margin-bottom: 10px;
}
.comm-author {
    font-weight: bold;
}
.comm-date {
    font-size: 12px;
    float: right;
    color: var(--info-color);
}
.comm-text {
    background-color: var(--comm-background-color);
    padding: 10px;
    border-radius: var(--border-radius);
}
.comment {
    display: inline-block;
    width: 90%;
}
.reply {
    padding-bottom: 15px;
    position: relative;
}
.reply-button {
    position: absolute;
    bottom: 0;
    right: 0;
    color: var(--text-color);
    background-color: var(--comm-background-color);
}
.reply-button:hover {
    color: var(--link-color);
}
/*************************************************/

/******************* Поиск ***********************/
.search-box {
    width: 280px;
    margin: 0 5px;
}
.search-field {
    width: 100%;
    position: relative;
}
input[type="text"] {
    border-radius: var(--border-radius);
    color: var(--text-color);
    border: var(--modal-input-border);
    background-color: var(--cat-bg);
}
.search-field input {
    width: 100%;
    padding: 0 35px 0 5px;
    background-color: var(--cat-bg);
    color: var(--text-color);
    height: 30px;
    line-height: 30px;
    box-shadow: none;
}
.search-results {
    margin: 0 5px;
}
.search-results h3 {
    font-size: 1.3rem;
    font-weight: bold;
    line-height: 1.6rem;
    text-transform: uppercase;
    padding: 0.5rem 0px;
    margin-bottom: 0.5rem;
    border-style: solid;
    border-color: var(--line-bg);
    border-image: none;
    border-width: 0.1rem 0px;
    margin: 10px auto;
}
/*************************************************/

/***************** Актер *************************/
.model-breadcrumb {
    margin-bottom: 10px;
}
.model-breadcrumb, .main-block-actor, .model-main-title, .model-info-position, .model-title, .model-description, .model-about,
.block-hide, .blkread-more, .icon-plus::before, .model-meta-information, .model-info, .info-blk, .model-meta li, .txt-color-model, .about-block {
    box-sizing: border-box;
}
.model-about {
    position: relative;
    margin: 0 15px;
}
.text-container {
    max-height: none;
    overflow: visible;
    transition: none;
}
.toggle-input {
    display: none;
}
.toggle-label {
    display: none;
}
.main-block-actor, .model-main-title {
    display: flex;
    flex: 0 1 100%;
    flex-wrap: wrap;
    background-color: var(--main-block-actor-bg);
    border-radius: 10px;
}
.model-block-f {
    width: 100%;
}
.model-block-foto, .model-pic-img img, .model-description {
    position: relative;
    min-height: 1px;
    width: 100%;
}
.model-block-foto {
    padding: 10px;
    border-radius: 8px;
}
.model-pic-img img {
    width: 100%;
    height: auto;
    aspect-ratio: 3/4;
    opacity: 0; /* Изначально скрыто */
    transition: opacity 0.5s ease-in-out; /* Плавное появление */
}
.model-pic-img img.loaded {
    opacity: 1; /* Появляется после загрузки */
}
.model-description, .model-info-position, .model-main-title {
    background-color: var(--main-block-actor-bg);
}
.model-title {
    color: var(--text-color);
    font-weight: bold;
    text-transform: uppercase;
    font-size: 36px;
    margin: 0;
}
.model-meta-information, .model-info, .modelinfo-blk, .info-blk, .model-meta li, .txt-color-model, .about-block {
    display: flex;
}
.model-meta-information, .model-info-position {
    align-items: center;
    margin: 1em calc(15px);
    font-size: 14px;
    text-align: left;
    cursor: default;
}
.model-info {
    font-size: 17px;
    margin-top: 20px;
    color: var(--info-color);
}
.txt-color-model {
    color: var(--info-color);
    margin-right: 5px;
}
.txt-color-model svg {
    display: flex;
    align-items: center;
    justify-content: center;
}
.social-link {
    margin-left: 10px;
}
.modelinfo-blk {
    margin-bottom: 10px;
}
.info-blk {
    margin-left: 15px;
}
.model-meta li {
    line-height: 25px;
    color: var(--text-color);
}
.about-block {
    display: flex;
    line-height: 24px;
    color: var(--text-color);
    font-size: 16px;
}
/*************************************************/

/************** Страница категорий ***************/
.cat-div, .nav-in a span:first-child, .nav-in a span + span {
    background-color: var(--main-block-actor-bg);
    border-radius: var(--border-radius);
}
.category-h3 {
    font-size: 1.5em;
    margin: 13px;
    padding: 10px 0;
    border-bottom: var(--metaline);
}
.cat-div {
    box-shadow: 0 0 5px 1px rgba(0, 0, 0, 0.05);
}
/************* Навигация категорий ***************/
.nav {
    margin: 5px 0;
    padding-right: 5px;
    padding-top: 5px;
    padding-bottom: 10px;
    font-size: 1.1em;
    display: flex;
    width: 100%;
    background-color: var(--main-block-actor-bg);
    border-radius: var(--border-radius);
}
.nav-in li {
    width: 25%;
    display: inline-block;
    box-sizing: border-box;
    text-align: center;
    margin: -2px;
}
.nav-in a {
    display: block;
    padding: 0 15px;
    height: 28px;
    line-height: 28px;
    position: relative;
    overflow: hidden;
    color: var(--metaline);
}
.nav-in a:before {
    content: "";
    height: 1px;
    border-top: 1px dotted #666;
    position: absolute;
    left: 30px;
    right: 30px;
    top: 15px;
}
.nav-in a span:first-child {
    display: inline-block;
    vertical-align: top;
    padding-right: 10px;
    background-color: var(--main-block-actor-bg);
    max-width: calc(100% - 80px);
    max-width: -webkit-calc(100% - 80px);
    float: left;
    position: relative;
    z-index: 10;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.nav-in a span + span {
    display: inline-block;
    vertical-align: top;
    color: #888;
    background-color: var(--main-block-actor-bg);
    padding-left: 10px;
    top: 2px;
    float: right;
    position: relative;
    z-index: 10;
    font-size: 0.75em;
}
.nav-in a:after {
    content: "";
    display: table;
    clear: both;
}
.nav-in a:hover, .nav-in a:hover span, .nav-in a.active, .nav-in a.active span {
    background-color:var(--cat-hover);
    color: var(--text-color);
    border-radius: 4px;
}
.wrap-center {
    width: 100%;
}
/*************************************************/

/*************** Страница актеров ****************/
.gender-filter {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-bottom: 20px;
    flex-wrap: wrap;
}
.btn-models {
    display: inline-block;
    padding: 8px 10px;
    /*border: 1px solid #444;*/
    border-radius: var(--border-radius);
    color: #fff;
    background-color: #444;
    font-size: 16px;
    text-transform: uppercase;
}
.btn-models:hover {
    background-color: var(--link-color);
    color: #fff;
}
.active-btn {
    background-color: var(--link-color);
    color: #fff;
    border-color: var(--link-color);
}
.posi {
    display: flex;
    justify-content: center;
    position: relative;
}
.filter-dropdown {
    position: relative;
    display: inline-block;
    cursor: pointer;
}
.lab span {
    font-size: 16px;
    color: #f9f9f9;
    padding: 8px 10px;
    border-radius: var(--border-radius);
    background-color: #444;
    display: inline-block;
    text-transform: uppercase;
}
.lab span:hover {
    background-color: var(--link-color);
    color: #fff;
}
.filter-dropdown input[type="checkbox"] {
    display: none;
}
.slide {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    background-color: #333;
    border-radius: var(--border-radius);
    list-style: none;
    margin: 0;
    padding: 10px 0;
    width: 113px;
    z-index: 10;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}
.filter-dropdown input[type="checkbox"]:checked + .slide {
    display: block;
}
.slide li {
    padding: 5px 15px;
}
.slide li a {
    text-decoration: none;
    color: #f9f9f9;
}
.slide li a:hover {
    color: var(--link-color);
}
.slide li a.active {
    font-weight: bold;
    color: #848484;
}
label {
    display: inline-block;
    margin-bottom: 0!important;
}
.lettersList {
    display: block;
    text-align: center;
    font-size: 1.8em;
    margin: 10px;
    color: #fff;
}
.letterstyle {
    display: inline-block;
    min-width: 40px;
    background-color: #444;
    padding: 5px;
    border: 0;
    margin: 2px 2px;
    text-transform: uppercase;
    color: var(--color-white);
    border-radius: var(--border-radius-sm);
}
.letterstyle:hover {
    background-color: #848484;
    color: var(--color-white);
    box-shadow: 0 0 8px 1px rgba(18, 10, 59, 0.33);
    -webkit-box-shadow: 0 0 8px 1px rgba(18, 10, 59, 0.33);
    -moz-box-shadow: 0 0 8px 1px rgba(18, 10, 59, 0.33);
}
.span-active .active {
    min-width: 55px;
    min-height: 50px;
    padding: 12px;
    background-color: var(--link-color);
}
.active:hover {
    filter: none;
    box-shadow: none;
    cursor: default;
}
/*************************************************/

/******************** Актеры *********************/
.modelsList {
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    gap: 10px;
}
.modelsList li {
    width: 100%;
    position: relative;
    overflow: hidden;
    border-radius: var(--border-radius);
}
.image-container {
    position: relative;
    overflow: hidden;
    border-radius: var(--border-radius);
}
.modelsList li img {
    width: 100%;
    height: auto;
    aspect-ratio: 2/3;
    display: block;
    opacity: 0; /* Изначально скрыто */
    transition: opacity 0.5s ease-in-out; /* Плавное появление */
}
.modelsList li img.loaded {
    opacity: 1; /* Появляется после загрузки */
}
.modelsList li img:hover {
    background-color: rgba(10, 10, 10, 0.16);
}
.actors-video {
    position: absolute;
    bottom: 3px;
    left: 3px;
    background: rgba(0, 0, 0, 0.59);
    color: white;
    padding: 3px 10px;
    border-radius: 4px;
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 0.9rem;
}
.actors-video span {
    display: flex;
    align-items: center;
    justify-content: center;
}
.actors-video svg {
    margin-right: 8px;
}
.actors-video p {
    margin: 0;
    color: #fff;
    font-size: 14px;
    padding-top: 3px;
}
.actorname {
    margin: 5px 0;
}
.actorname h2 {
    font-size: 1.05rem;
    text-align: center;
    margin: 0;
}
/*************************************************/

/****************** Служебные ********************/
.align-center {
    display: flex;
    align-items: center;
}
.alert-success {
    color: var(--text-color);
    background-color: var(--cat-bg);
    border-color: var(--cat-bg);
    border-radius: var(--border-radius);
}
.alert-danger {
    color: #fff;
    background-color: var(--link-color);
    border-color: var(--link-color);
}
pre {
    display: block;
    font-size: 87.5%;
    color: var(--text-color);
    background-color: var(--cat-bg);
    padding: 10px;
    max-width: 100%;
    overflow-x: auto;
    word-break: break-all;
    white-space: pre-wrap;
}
.rules-title {
    margin-left: 5px;
}
.rules {
    background-color: var(--main-block-actor-bg);
    color: var(--text-color);
    padding: 15px 15px;
    margin: 30px 0px;
    border-radius: 6px;
}
/*************************************************/

/************* Боковое меню мобилка **************/
.btn-menu {
    display: none;
}
.side-panel {
    display: none;
    width: 285px;
    height: 100%;
    overflow-x: hidden;
    overflow-y: auto;
    background-color: #000;
    padding: 0 10px;
    z-index: 888;
    position: fixed;
    left: -285px;
    top: 0px;
    transition: left .2s;
    -webkit-transition: left .2s;
}
.side-panel.active {
    left: 0;
}
.close-overlay {
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.8);
    position: fixed;
    left: 0;
    top: 0;
    z-index: 887;
    display: none;
}
body.opened-menu {
    overflow: hidden;
    width: 100%;
    height: 100%;
}
.active {
    left: 0;
}
.sidebar-menu {
    list-style: none;
    padding: 0;
    margin: 20px 0;
}
.sidebar-menu li {
    margin-bottom: 15px;
}
.sidebar-menu li a {
    text-decoration: none;
    color: #fff;
    font-size: 16px;
    display: flex;
    align-items: center;
    padding: 10px 15px;
    border-radius: var(--border-radius);
    background: #333;
    transition: background 0.3s ease, color 0.3s ease;
    text-transform: uppercase;
    font-family: var(--russia);
}
.sidebar-menu li a span {
    font-family: var(--russia);
}
.sidebar-menu li a:hover {
    background: #444;
    color: #ffd700;
}
.side-icons {
    margin-right: 10px;
    font-size: 18px;
    color: #ffd700;
}
.header-sidebar {
    display: flex;
    justify-content: space-evenly;
}
.header-sidebar .user-item {
    color: white;
    text-decoration: none;
    font-size: 16px;
    cursor: pointer;
}
.header-sidebar .reg {
    background-color: var(--link-color);
    color: #111;
}
.header-sidebar .user-item:hover {
    color: #111;
}
.header-sidebar .reg:hover {
    color: #fff;
}
.side-favorites {
    margin-left: 7px;
    text-transform: uppercase;
    font-size: 16px;
    font-weight: bold;
    color: #fff;
}
.side-favorites:hover {
    color: #ffd700;
}
.m-search {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 25px;
}
.m-search-form {
    display: flex;
    align-items: center;
    width: 100%;
}
.m-search-button {
    background: #212121;
    border: 1px solid #2f2f2f;
    color: #fff;
    font-size: 18px;
    cursor: pointer;
    padding: 7px;
    border-radius: var(--border-radius);
}
.m-icon-search::before {
    content: ">>";
    font-size: 18px;
}
.m-search-input {
    background-color: #333!important;
    color: #fff!important;
    padding: 8px;
    border-radius: 4px;
    width: 100%;
    box-sizing: border-box;
    margin-right: 10px;
}
.m-search-button:hover {
    background-color: #444;
}
.m-search-input:active {
    background-color: #444;
}
.m-search input[type="text"] {
    border: 1px solid #2f2f2f
}
.m-search-input::placeholder {
    color: #aaa;
}
/*************************************************/

/**************** Модальные окна *****************/
.section-title {
    font-size: 16px;
    text-transform: uppercase;
    font-weight: bold;
    padding: 5px 0 5px 0;
}
.complaint {
    height: 150px;
}
.form-control {
    display: block;
    width: 100%;
    height: calc(1.5em + .75rem + 2px);
    padding: .375rem .75rem;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
    color: #495057;
    background-color: var(--cat-bg);
    background-clip: padding-box;
    border: var(--modal-input-border);
    border-radius: .25rem;
    transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out;
}
.form-control:focus, .search-field input:focus {
    color: var(--text-color);
    background-color: var(--cat-bg);
    border-color: var(--transparent-bg);
    outline: 0;
    box-shadow: 0 0 0 .2rem rgba(98, 98, 98, 0.25);
}
.form-control:disabled, .form-control[readonly] {
    background-color: var(--cat-bg);
    opacity: 1;
}
.complaint-video, .login-modal, .signup-modal, .cabinet-modal, .favorites-modal, .feedback-modal {
    width: auto;
    margin: 0 auto;
    height: auto;
    background-color: var(--background-color);
    border: solid 5px var(--cat-bg);
    color: var(--text-color);
}
.complaint-video > .row > .col, .login-modal > .row > .col, .signup-modal > .row > .col, .cabinet-modal > .row > .col, .favorites-modal > .row > .col, .feedback-modal > .row > .col {
    margin: 5px 10px;
}
.text-favorites-center {
    text-align: center;
    margin: 5px;
}
.btn-secondary {
    color: #fff;
    background-color: var(--link-color);
    border-color: var(--link-color);
    font-size: 16px;
    text-transform: uppercase;
    font-weight: bold;
}
.btn-secondary:hover {
    color: #fff;
    border-color: rgba(254, 157, 26, 0.87);
    background-color: rgba(254, 157, 26, 0.87);
}
/* Базовые стили модалки (были в bootstrap.min.css, теперь здесь) */
.modal {
    display: none;
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1050;
    overflow: hidden;
    outline: 0;
}
.modal-open .modal {
    overflow-x: hidden;
    overflow-y: auto;
}
.modal-backdrop {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #000;
    z-index: 1000;
}
/* Плавное появление/исчезновение модалок */
.modal.fade {
    opacity: 0;
    transition: opacity 0.25s ease;
}
.modal.fade.show {
    opacity: 1;
}

/* Диалог: лёгкий сдвиг вниз + масштаб при открытии */
.modal.fade .modal-dialog {
    transform: translateY(-24px) scale(0.97);
    transition: transform 0.25s ease;
}
.modal.fade.show .modal-dialog {
    transform: translateY(0) scale(1);
}

.modal-backdrop.fade {
    opacity: 0;
    transition: opacity 0.25s ease;
}
.modal-backdrop.show {
    opacity: 0.8;
}
.container .main-row {
    margin-top: 70px;
}
/*************************************************/


/**************** Медиа запросы ******************
**************************************************/
@media (max-width: 1930px) {
    .header {
        padding: 0 5px;
    }
    .wrapper {
        margin: 0 5px;
    }
}

@media (min-width: 1600px) {
    .photo-block {
        flex: 0 0 25%;
        max-width: 25%;
    }
    .model-block-description {
        flex: 0 0 75%;
        max-width: 75%;
    }
    .meta-two-blocks {
        flex: 0 0 100%;
        max-width: 100%;
    }
}

@media screen and (max-width: 1610px) {
    .header-menu ul li a {
        font-size: 16px;
    }
    .header-auth .user-item {
        font-size: 14px;
    }
    .fleft {
        width: 100%;
    }
    .fright {
        width: 100%;
    }
    .right-video-grid {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: 10px;
        margin-bottom: 20px;
    }
}

@media screen and (max-width: 1490px) {
    .video-grid {
        grid-template-columns: repeat(3, 1fr);
    }
    .modelsList {
        grid-template-columns: repeat(6, 1fr);
    }
    .right-video-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .model-meta-information, .model-info-position {
        margin: 5px;
    }
    .model-meta-information h2 {
        margin-left: 10px;
    }
    .meta {
        bottom: 100px;
        background: rgba(81, 81, 81, 0.87);
        border-radius: var(--border-radius-sm);
        margin-right: 3px;
    }
    .dtime, .nviews, .quality {
        padding: 0 5px 0 5px;
        font-size: 14px;
        color: var(--color-white);
    }
    .meta .icon-cog {
        color: var(--color-white);
    }
    .name {
        width: 100%;
    }
}
@media screen and (max-width: 1435px) {
    .header-menu, .header-auth {
        display: none;
    }
    .header-theme-toggle {
        justify-content: right;
    }
    .btn-menu {
        display: block;
        font-size: 39px;
        margin-right: 25px;
    }
    .side-panel {
        display: block;
    }
    .header-actions a {
        margin-left: 0px;
    }
}

@media screen and (max-width: 1370px) {
    .model-title {
        font-size: 25px;
    }
    .about-block, .modelinfo-blk {
        font-size: 14px;
    }
    .model-info {
        font-size: 16px;
        margin-top: 5px;
    }
}

@media (min-width: 1300px) {
    .photo-block {
        flex: 0 0 25.0%;
        max-width: 25.0%;
    }
    .model-block-description {
        flex: 0 0 25.0%;
        max-width: 25.0%;
    }
    .meta-two-blocks {
        flex: 0 0 100%;
        max-width: 100%;
    }
}

@media screen and (max-width: 1210px) {
    .video-grid {
        width: 100%;
        grid-template-columns: repeat(2, 1fr);
    }
    .modelsList {
        width: 100%;
        grid-template-columns: repeat(3, 1fr);
    }
    .topchik-menu, .btns-log {
        display: none;
    }
    .sec-menu {
        flex-direction: row-reverse;
    }
    .nav-in li {
        width: 33%;
    }
    .video-title {
        font-size: 1.3em;
    }
    .top-actors {
        width: 25%;
    }
    .text-container {
        --collapsed-height: 60px;
        --expanded-height: auto;
        max-height: var(--collapsed-height);
        overflow: hidden;
        transition: max-height 0.3s ease;
    }
    .toggle-input {
        display: none;
    }
    .toggle-input:checked ~ .text-container {
        max-height: var(--expanded-height);
    }
    .toggle-label {
        -moz-box-align: end;
        align-items: end;
        background-color: transparent;
        background-position: left bottom;
        background-repeat: no-repeat;
        background-attachment: scroll;
        background-origin: padding-box;
        background-clip: border-box;
        background-image: linear-gradient(to right, rgba(0, 0, 0, 0), var(--model-about) 100%);
        background-size: 100% 24px;
        inset: 0px;
        cursor: pointer;
        display: flex;
        flex-direction: row-reverse;
        position: absolute;
        bottom: 0;
        right: 0;
        padding: 10px;
    }
    .icon-collapse,
    .icon-expand {
        display: none;
        stroke: currentColor;
        transition: transform 200ms ease;
        color: var(--link-color);
    }
    .toggle-input:checked + .text-container + .toggle-label .icon-collapse {
        display: inline;
    }
    .toggle-input:not(:checked) + .text-container + .toggle-label .icon-expand {
        display: inline;
    }
    .toggle-input:checked + .text-container + .toggle-label .icon-expand {
        transform: rotate(180deg);
    }
}

@media (min-width: 1000px) {
    .photo-block {
        flex: 0 0 25.0%;
        max-width: 25.0%;
    }
    .model-block-description {
        flex: 0 0 75.0%;
        max-width: 75.0%;
    }
    .meta-two-blocks {
        flex: 0 0 50%;
        max-width: 100%;
    }
}

@media (max-width: 999px) {
    .photo-block {
        width: 100%;
    }
    .model-block-f {
        width: 100%;
        flex: 0 0 100%;
        max-width: 100%;
    }
    .meta-two-blocks {
        flex: 0 0 50%;
        max-width: 100%;
    }
}

@media screen and (max-width: 950px) {
    .video-title {
        font-size: 1.2em;
    }
    .video-meta {
        display: none;
    }
    .video-meta-mobile {
        display: inline-flex;
        justify-content: space-around;
        font-size: 14px;
        min-width: 100%;
        border-bottom: var(--metaline);
    }
    .v-item-one, .v-item-two, .v-item-three {
        display: inline-flex;
        float: none;
        line-height: 10px;
        height: auto;
        padding: 10px 0;
        border-right: none;
    }
    .v-info {
        display: inline-flex;
    }
}

@media screen and (max-width: 875px) {
    .video-grid {
        grid-template-columns: repeat(1, 1fr);
    }
    .right-video-grid {
        grid-template-columns: repeat(1, 1fr);
    }
    .search-results h3 {
      font-size: 1rem;
    }
}

@media screen and (max-width: 768px) {

    .lettersList {
        font-size: 1em;
        margin: 5px;
    }
    .letterstyle {
        min-width: 34px;
    }
    .active {
      min-width: 48px;
      min-height: 42px;

    }
    .descrip-btn {
        display: block;
        padding-top: 10px;
        text-decoration: underline;
    }
    .actors {
        display: inline-flex;
        flex-wrap: wrap;
    }
    .actors a, .actors span {
        font-size: 0.8em;
    }
    .vmeta-plus, .vmeta-minus, .fm-fav {
        font-size: 1em;
    }
    .video-tags, .video-description {
        line-height: 24px;
        font-size: 14px;
        color: var(--text-color);
    }
    .preview {
        cursor: pointer;
    }
    .preview.touch::before {
        width: 100%;
        opacity: 1;
    }
    .preview.touch::before {
        animation: none;
    }
    .preview.touch video {
        opacity: 1;
    }
}

@media screen and (max-width: 690px) {
    .nav-in li {
        width: 100%;
    }
    .video-title {
        font-size: 1em;
    }
    .video-title h1 {
        font-size: 1.1em;
    }
}

@media screen and (max-width: 667px) {
    .tech-info {
        display: none;
    }
    .items-title, .site-desc h1, .static-desc h1 {
        font-size: 1em;
    }
    .modelinfo-blk {
        flex-wrap: wrap;
    }
    .meta-two-blocks {
        flex: 0 0 100%;
        max-width: 100%;
    }
}

@media screen and (max-width: 590px) {
    .modelsList {
        grid-template-columns: repeat(2, 1fr);
    }
    .ui-dialog {
        width: 100% !important;
    }
    .ui-dialog-buttonset button {
        display: block;
        margin: 0 0 5px 0;
        width: 100%;
    }
}

@media screen and (max-width: 540px) {
    .register {
        width: 95%;
    }
    .imp {
        padding: 0;
        width: 88%;
        margin: 0 auto;
    }
    .form-submit {
        margin-top: 13px;
    }
    .v-item-two {
        display: none;
    }
}

@media screen and (max-width: 470px) {
    .actors span {
        display: none;
    }
}

/*************************************************/
/* ---- Toast уведомления ---- */
.toast-overlay {
    position: fixed;
    inset: 0;
    z-index: 9998;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    background: transparent;
    transition: background 0.25s ease;
}
.toast-overlay.toast-overlay-visible {
    pointer-events: auto;
    background: rgba(0, 0, 0, 0.25);
}
.toast-item {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    padding: 32px 36px 20px;
    width: 340px;
    max-width: calc(100vw - 32px);
    border-radius: 16px;
    background: var(--main-block-actor-bg);
    color: var(--text-color);
    border: 1px solid var(--border-site-desc);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.28);
    cursor: pointer;
    overflow: hidden;
    /* Начальное состояние */
    opacity: 0;
    transform: scale(0.82) translateY(-16px);
    transition: opacity 0.26s cubic-bezier(0.34, 1.56, 0.64, 1),
                transform 0.26s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.toast-item.toast-visible {
    opacity: 1;
    transform: scale(1) translateY(0);
}
/* Иконка */
.toast-icon {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.toast-icon svg {
    width: 28px;
    height: 28px;
}
.toast-success .toast-icon {
    background: rgba(76, 175, 80, 0.12);
    color: #4caf50;
    border: 2px solid rgba(76, 175, 80, 0.4);
}
.toast-error .toast-icon {
    background: rgba(229, 57, 53, 0.12);
    color: #e53935;
    border: 2px solid rgba(229, 57, 53, 0.4);
}
.toast-info .toast-icon {
    background: rgba(254, 157, 26, 0.12);
    color: var(--link-color);
    border: 2px solid rgba(254, 157, 26, 0.4);
}
/* Текст */
.toast-text {
    margin: 0;
    font-size: 16px;
    line-height: 1.5;
    text-align: center;
    font-weight: 500;
}
/* Прогресс-бар */
.toast-bar {
    position: absolute;
    bottom: 0;
    left: 0;
    height: 3px;
    width: 100%;
    border-radius: 0 0 16px 16px;
    transform-origin: left center;
    animation: toast-shrink linear forwards;
}
.toast-success .toast-bar { background: #4caf50; }
.toast-error   .toast-bar { background: #e53935; }
.toast-info    .toast-bar { background: var(--link-color); }

@keyframes toast-shrink {
    from { transform: scaleX(1); }
    to   { transform: scaleX(0); }
}

/* ================================================================
   Bootstrap replacement — классы, ранее предоставляемые
   bootstrap/4.5.2/css/bootstrap.min.css. Убираем внешний CDN,
   заменяем минимальным набором без изменения текущего вида.
   ================================================================ */

/* ── Сетка (используется только внутри модалок) ──────────────── */
.row {
    display: flex;
    flex-wrap: wrap;
}

/* col / col-md-12 внутри модалок всегда полная ширина */
.col,
.col-md-12 {
    width: 100%;
    box-sizing: border-box;
    min-width: 0;
}

/* ── Позиционирование модального окна ────────────────────────── */
.modal-dialog {
    position: relative;
    width: auto;
    margin: 0.5rem;
    pointer-events: none;
}
@media (min-width: 576px) {
    .modal-dialog {
        max-width: 500px;
        margin: 1.75rem auto;
    }
}

/* Структура контента модалки; кастомные -modal классы
   (login-modal, signup-modal и т.д.) уже переопределяют
   background и border через var(--*) — не трогаем */
.modal-content {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    pointer-events: auto;
    background-clip: padding-box;
    border-radius: 0.3rem;
    outline: 0;
}

/* ── Кнопки ──────────────────────────────────────────────────── */
/* Только структура — цвет задаётся модификаторами (.btn-secondary и др.),
   которые определены выше в файле. background/border здесь не ставим
   чтобы не перебить их из-за порядка в каскаде. */
.btn {
    display: inline-block;
    font-weight: 400;
    text-align: center;
    vertical-align: middle;
    cursor: pointer;
    user-select: none;
    padding: 0.375rem 0.75rem;
    font-size: 1rem;
    line-height: 1.5;
    border-radius: 0.25rem;
    text-decoration: none;
}
.btn:not(:disabled) { cursor: pointer; }

/* btn-block — кнопка на всю ширину (формы в модалках) */
.btn-block {
    display: block;
    width: 100%;
}

/* btn-sm — уменьшенная кнопка */
.btn-sm {
    padding: 0.25rem 0.5rem;
    font-size: 0.875rem;
    line-height: 1.5;
    border-radius: 0.2rem;
}

/* ── Утилиты ─────────────────────────────────────────────────── */
.mb-3  { margin-bottom: 1rem; }
.text-center { text-align: center; }

/* ================================================================

/* ================================================================
   MODELS FILTER — desktop (.mfd-*) и mobile (.mfm-*)
   Два отдельных компонента, каждый виден только на своём viewport.
   ================================================================ */

/* ─── ОБЩИЕ — поля, слайдер, теги (используются обоими) ──────── */

.mf-label {
    display: block;
    font-size: 0.78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--info-color);
    margin-bottom: 5px;
}
.mf-range-vals { color: var(--link-color); font-weight: 400; text-transform: none; letter-spacing: 0; margin-left: 6px; }

/* Range-слайдер */
.mf-range { padding: 8px 10px 4px; }
.mf-range-track {
    position: relative;
    height: 4px;
    background: var(--line-bg);
    border-radius: 2px;
    margin: 10px 0;
}
.mf-range-fill {
    position: absolute; height: 100%;
    background: var(--link-color); border-radius: 2px; pointer-events: none;
}
.mf-range-thumb {
    position: absolute; top: 50%;
    width: 18px; height: 18px;
    background: var(--link-color);
    border: 2px solid var(--background-color);
    border-radius: 50%;
    transform: translate(-50%, -50%);
    cursor: grab; touch-action: none; z-index: 2;
    transition: box-shadow 120ms;
}
.mf-range-thumb:hover,
.mf-range-thumb.is-dragging { box-shadow: 0 0 0 5px rgba(254,157,26,.25); cursor: grabbing; }

/* Select страны */
.mf-select-wrap  { position: relative; user-select: none; }
.mf-select-face  {
    display: flex; align-items: center; justify-content: space-between;
    padding: 7px 10px;
    background: var(--transparent-bg); border: 1px solid var(--line-bg);
    border-radius: var(--border-radius-sm);
    font-size: 0.88rem; color: var(--text-color); cursor: pointer;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    min-width: 140px; transition: border-color 150ms;
}
.mf-select-face::after { content: '▾'; margin-left: 8px; flex-shrink: 0; color: var(--info-color); font-size: .7rem; }
.mf-select-wrap.is-open .mf-select-face { border-color: var(--link-color); }
.mf-select-drop  {
    display: none; position: absolute; top: calc(100% + 3px); left: 0;
    min-width: 200px; max-width: 260px;
    background: var(--cat-bg); border: 1px solid var(--link-color);
    border-radius: var(--border-radius-sm); box-shadow: 0 6px 20px rgba(0,0,0,.35); z-index: 500;
}
.mf-select-wrap.is-open .mf-select-drop { display: block; }
.mf-select-search {
    display: block; width: 100%; box-sizing: border-box;
    padding: 7px 10px; border: none; border-bottom: 1px solid var(--line-bg);
    background: var(--transparent-bg); color: var(--text-color); font-size: .88rem; outline: none;
}
.mf-select-list  { max-height: 200px; overflow-y: auto; }
.mf-select-opt   {
    padding: 7px 12px; font-size: .88rem; color: var(--text-color); cursor: pointer;
    display: flex; justify-content: space-between; align-items: center; transition: background 100ms;
}
.mf-select-opt:hover  { background: var(--cat-hover); }
.mf-select-opt.is-sel { color: var(--link-color); font-weight: 600; }
.mf-opt-cnt { font-size: .75rem; color: var(--info-color); margin-left: 6px; }

/* Кнопки пола и сортировки */
.mf-btn-group { display: flex; gap: 5px; flex-wrap: wrap; }
.mf-btn {
    padding: 5px 12px; font-size: .85rem;
    border: 1px solid var(--line-bg); border-radius: var(--border-radius-sm);
    background: var(--transparent-bg); color: var(--text-color);
    cursor: pointer; text-decoration: none; white-space: nowrap;
    transition: background 130ms, border-color 130ms, color 130ms;
}
.mf-btn:hover   { border-color: var(--link-color); color: var(--link-color); }
.mf-btn.is-on   { background: var(--link-color); border-color: var(--link-color); color: #fff; font-weight: 600; }
.mf-btn.is-on:hover { color: #fff; }

/* Кнопки применить / сбросить */
.mf-apply {
    padding: 7px 18px; background: var(--link-color); color: #fff;
    border: 1px solid var(--link-color); border-radius: var(--border-radius-sm);
    font-size: .88rem; font-weight: 600; cursor: pointer; white-space: nowrap;
    transition: background 150ms;
}
.mf-apply:hover { background: rgba(254,157,26,.8); }
.mf-reset {
    padding: 7px 14px; background: transparent; color: var(--info-color);
    border: 1px solid var(--line-bg); border-radius: var(--border-radius-sm);
    font-size: .88rem; font-weight: 600; cursor: pointer; white-space: nowrap;
    transition: color 150ms, border-color 150ms;
}
.mf-reset:hover { color: var(--text-color); border-color: var(--text-color); }

/* Активные теги */
.mf-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.mf-tag  {
    display: inline-flex; align-items: center; gap: 4px;
    background: var(--cat-bg); border: 1px solid var(--link-color);
    color: var(--text-color); border-radius: 20px;
    padding: 3px 10px 3px 12px; font-size: .82rem;
}
.mf-tag-rm {
    background: none; border: none; color: var(--info-color);
    cursor: pointer; font-size: .8rem; padding: 0 2px; line-height: 1; transition: color 120ms;
}
.mf-tag-rm:hover { color: var(--link-color); }

/* Скелетон */
.mf-loading .modelsList li { background: var(--cat-bg); border-radius: var(--border-radius); animation: mf-pulse 1.2s ease-in-out infinite; }
.mf-loading .modelsList li * { opacity: 0; }
@keyframes mf-pulse { 0%,100% { opacity:1; } 50% { opacity:.4; } }

/* ─── DESKTOP фильтр — показываем только на широких экранах ───── */

/* ── Высота всех интерактивных элементов — одна переменная ── */
.mfd-bar { --h: 36px; }

/*
 * Grid с auto-колонками: каждый .mfd-field и .mfd-actions
 * занимает свою колонку. align-items: end — поля с лейблами
 * и кнопки без лейбла выравниваются по нижнему краю.
 * justify-content: center — блок по центру строки.
 */
.mfd-bar {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: auto;
    align-items: end;
    justify-content: center;
    gap: 14px 20px;
    background: var(--cat-bg);
    border: 1px solid var(--line-bg);
    border-radius: var(--border-radius);
    padding: 14px 18px;
    margin-bottom: 12px;
}

/* Поле: лейбл сверху + элемент снизу */
.mfd-field {
    display: grid;
    grid-template-rows: auto var(--h);
    gap: 4px;
    align-items: end;
}

/* Группа кнопок (пол, сортировка) */
.mfd-field .mf-btn-group {
    height: var(--h);
    align-items: stretch;
    flex-wrap: nowrap;
    gap: 4px;
}
.mfd-field .mf-btn {
    height: var(--h);
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    padding: 0 12px;
}

/* Select страны */
.mfd-field .mf-select-wrap { height: var(--h); }
.mfd-field .mf-select-face {
    height: var(--h);
    min-width: 160px;
    box-sizing: border-box;
}

/* Слайдер: трек строго по центру внутри --h */
.mfd-field .mf-range {
    height: var(--h);
    padding: 0 10px;
    display: grid;
    align-items: center;
    min-width: 150px;
    box-sizing: border-box;
}
.mfd-field .mf-range-track {
    margin: 0;
    width: 100%;
}

/* Кнопки применить/сбросить — высота = --h, без лейбла */
.mfd-actions {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: auto;
    gap: 8px;
    height: var(--h);
    align-items: stretch;
}
.mfd-actions .mf-apply,
.mfd-actions .mf-reset {
    height: var(--h);
    padding: 0 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    font-size: .88rem;
    white-space: nowrap;
}

/* На мобилке — прячем весь десктопный фильтр */
@media (max-width: 768px) {
    .mfd-bar { display: none; }
}

/* ─── MOBILE фильтр — показываем только на узких экранах ─────── */

/* Строка с кнопкой — скрыта на десктопе */
.mfm-btn-row { display: none; }

@media (max-width: 768px) {
    .mfm-btn-row {
        display: flex;
        justify-content: flex-end;
        margin-bottom: 8px;
    }
    .mfm-btn {
        display: inline-flex;
        align-items: center; gap: 7px;
        background: var(--cat-bg); color: var(--text-color);
        border: 1px solid var(--line-bg); border-radius: var(--border-radius);
        padding: 8px 14px; font-size: .9rem; cursor: pointer;
        transition: background 150ms;
    }
    .mfm-btn:hover { background: var(--cat-hover); }
    .mfm-badge {
        background: var(--link-color); color: #fff;
        border-radius: 10px; padding: 1px 6px; font-size: .75rem; font-weight: 700;
    }
}

/* Оверлей */
.mfm-overlay {
    display: none;
    position: fixed; inset: 0;
    background: rgba(0,0,0,0.6);
    z-index: 1100;
}
.mfm-overlay.on { display: block; }

/* Bottom-sheet — ТОЛЬКО на мобилке; при открытии добавляется класс on */
.mfm-sheet {
    display: none;
    position: fixed;
    left: 0; right: 0; bottom: 0;
    width: 100%;
    max-height: 85vh;
    overflow-y: auto;
    background: var(--cat-bg);
    border-radius: 14px 14px 0 0;
    z-index: 1101;
    flex-direction: column;
    animation: mfm-up .26s ease forwards;
}
.mfm-sheet.on { display: flex; }

@keyframes mfm-up {
    from { transform: translateY(100%); }
    to   { transform: translateY(0); }
}

/* Шапка шита */
.mfm-head {
    display: flex; align-items: center; justify-content: space-between;
    padding: 14px 16px 12px;
    border-bottom: 1px solid var(--line-bg); flex-shrink: 0;
    background: var(--cat-bg); position: sticky; top: 0; z-index: 1;
}
.mfm-title { font-weight: 700; font-size: 1rem; color: var(--text-color); }
.mfm-close {
    background: none; border: none; color: var(--info-color);
    font-size: 1.2rem; cursor: pointer; padding: 4px 8px; line-height: 1;
}

/* Тело шита */
.mfm-body  { padding: 14px 16px; display: flex; flex-direction: column; gap: 18px; }
.mfm-field { display: flex; flex-direction: column; gap: 5px; }

/* Кнопки группы во всю ширину */
.mfm-body .mf-btn-group { flex-direction: row; flex-wrap: wrap; }
.mfm-body .mf-btn       { flex: 1; text-align: center; }

/* Подвал шита */
.mfm-foot {
    display: flex; gap: 10px;
    padding: 12px 16px 24px;
    border-top: 1px solid var(--line-bg);
    background: var(--cat-bg); position: sticky; bottom: 0;
}
.mfm-foot .mf-apply,
.mfm-foot .mf-reset { flex: 1; text-align: center; padding: 12px; font-size: .95rem; }

/* iOS auto-zoom fix: font-size < 16px триггерит зум при фокусе на input.
   На мобилке форсируем 16px для всех инпутов внутри мобильного фильтра. */
@media (max-width: 768px) {
    .mfm-sheet input,
    .mfm-sheet textarea,
    .mfm-sheet select {
        font-size: 16px !important;
    }
}

/* ================================================================
   COMMENTS  (.cm-*)
   ================================================================ */

.cm-wrap {
    margin-top: 24px;
}

/* Заголовок */
.cm-header {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    margin-bottom: 16px;
    padding-bottom: 10px;
    border-bottom: var(--border-site-desc);
}
.cm-count {
    font-size: 0.9rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--info-color);
}
.cm-write-btn {
    display: inline-grid;
    grid-auto-flow: column;
    align-items: center;
    gap: 5px;
    background: transparent;
    border: 1px solid var(--link-color);
    color: var(--link-color);
    border-radius: var(--border-radius);
    padding: 5px 12px;
    font-size: 0.82rem;
    cursor: pointer;
    transition: background 150ms, color 150ms;
}
.cm-write-btn:hover { background: var(--link-color); color: #fff; }

/* Форма */
.cm-form-wrap { margin-bottom: 20px; }
.cm-form {
    background: var(--cat-bg);
    border: 1px solid var(--line-bg);
    border-radius: var(--border-radius);
    padding: 12px;
    display: grid;
    gap: 8px;
}
.cm-form--reply {
    background: var(--transparent-bg);
    border-left: 3px solid var(--link-color);
}
.cm-inp, .cm-ta {
    width: 100%;
    box-sizing: border-box;
    background: var(--transparent-bg);
    border: 1px solid var(--line-bg);
    border-radius: var(--border-radius-sm);
    color: var(--text-color);
    font-family: inherit;
    font-size: 0.9rem;
    padding: 8px 10px;
    outline: none;
    transition: border-color 150ms;
    resize: vertical;
}
.cm-inp:focus, .cm-ta:focus { border-color: var(--link-color); }
.cm-ta { min-height: 80px; line-height: 1.5; }

.cm-form-foot {
    display: grid;
    grid-auto-flow: column;
    justify-content: start;
    gap: 8px;
    align-items: center;
}
.cm-submit-btn {
    background: var(--link-color);
    color: #fff;
    border: none;
    border-radius: var(--border-radius-sm);
    padding: 7px 18px;
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    transition: opacity 150ms;
}
.cm-submit-btn:hover { opacity: 0.85; }
.cm-submit-btn--sm { padding: 5px 14px; font-size: 0.82rem; }
.cm-cancel-btn {
    background: none;
    border: none;
    color: var(--info-color);
    font-size: 0.82rem;
    cursor: pointer;
    padding: 0 4px;
    transition: color 150ms;
}
.cm-cancel-btn:hover { color: var(--text-color); }

/* Список */
#cm-list { display: grid; gap: 1px; }

/* Один комментарий */
.cm-item {
    padding: 14px 0;
    border-bottom: 1px solid var(--line-bg);
}
.cm-item:last-child { border-bottom: none; }

.cm-body { display: grid; gap: 6px; }

.cm-meta {
    display: grid;
    grid-auto-flow: column;
    justify-content: start;
    gap: 10px;
    align-items: center;
}
.cm-author {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--link-color);
}
.cm-date {
    font-size: 0.78rem;
    color: var(--info-color);
}

.cm-text {
    font-size: 0.92rem;
    line-height: 1.6;
    color: var(--text-color);
    word-break: break-word;
}

.cm-actions {
    display: grid;
    grid-auto-flow: column;
    justify-content: start;
    gap: 12px;
    align-items: center;
    margin-top: 2px;
}

/* Кнопка лайка */
.cm-like-btn {
    display: inline-grid;
    grid-auto-flow: column;
    align-items: center;
    gap: 5px;
    background: none;
    border: 1px solid var(--line-bg);
    border-radius: 20px;
    color: var(--info-color);
    font-size: 0.8rem;
    cursor: pointer;
    padding: 3px 10px 3px 8px;
    transition: color 150ms, border-color 150ms, background 150ms;
    user-select: none;
}
.cm-like-btn:hover {
    color: var(--link-color);
    border-color: var(--link-color);
}
.cm-like-btn.is-liked {
    color: var(--link-color);
    border-color: var(--link-color);
    background: rgba(254,157,26,0.12);
    font-weight: 600;
}
.cm-like-btn:active       { transform: scale(0.97); }
/* SVG иконка: только stroke без fill по умолчанию,
   при is-liked — fill через CSS не работает без атрибута,
   поэтому на сервере выводим fill="currentColor" при liked */
.cm-like-cnt              { min-width: 10px; line-height: 1; }

.cm-like-static {
    display: inline-grid;
    grid-auto-flow: column;
    align-items: center;
    gap: 4px;
    font-size: 0.8rem;
    color: var(--link-color);
}

.cm-reply-btn {
    background: none;
    border: none;
    color: var(--info-color);
    font-size: 0.8rem;
    cursor: pointer;
    padding: 0;
    transition: color 150ms;
}
.cm-reply-btn:hover { color: var(--link-color); }

/* Реплаи */
.cm-replies {
    margin-top: 8px;
    margin-left: 24px;
    padding-left: 12px;
    border-left: 2px solid var(--line-bg);
}
.cm-item--reply {
    padding: 10px 0;
    border-bottom: none;
}
.cm-item--reply .cm-text { font-size: 0.88rem; }

/* Форма ответа */
.cm-reply-form { margin-top: 8px; }

/* Уведомление об успехе */
.cm-notice {
    font-size: 0.85rem;
    color: var(--info-color);
    padding: 8px 0;
    font-style: italic;
}
