html, body {
  overscroll-behavior: none;
}

body {
    background-color: #eeeff3 !important;
}

.icms-header__middle {
    background-color: #489f00 !important;
}



.carousel.ordinary .swiper-slide {width: 140px;}
.carousel.mini .swiper-slide {width: 100px;}


.poster .image-container {
    width: 200px;
    height: 300px;
}

.poster-normal .image-container {
    width: 140px;
    height: 210px;
}

.poster-mini .image-container {
    width: 100px;
    height: 145px;
}

.poster-micro .image-container {
    width: 45px;
    height: 67px;
}

.image-container {
    position: relative;
    overflow: hidden;
    border-radius: .25rem;
    display: flex;
    justify-content: center;
}

.image-container .image-placeholder {
    position: absolute;
    inset: 0;
    background-image: url(../images/placeholder_movie_rect.svg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    background-color: #f2f2f2;
    border-radius: 0.25rem !important;
}

.image-container img {
    position: relative;
    width: 100%;
    height: 100%;
    object-fit: cover;
}


.wmp-100 {max-width: 100px;}
.mw-px-150 {min-width: 150px;}
.fs-07 {font-size: .7rem;}
.fs-08 {font-size: .8rem;}
.fs-085 {font-size: .85rem;}
.fs-09 {font-size: .9rem;}

.text-xs  { font-size: .75rem; }   /* ~12px */
.text-sm  { font-size: .875rem; }  /* ~14px */
.text-base{ font-size: 1rem; }      /* ~16px */
.text-lg  { font-size: 1.125rem; }  /* ~18px */
.text-xl  { font-size: 1.25rem; }   /* ~20px */
.text-2xl { font-size: 1.4rem; }    /* ~24px */
.text-3xl { font-size: 1.875rem; }  /* ~30px */
.text-4xl { font-size: 2.25rem; }   /* ~36px */

/* Часто удобно сразу задать line-height */
.leading-tight { line-height: 1.2; }
.leading-normal{ line-height: 1.5; }

.gap {
    border-top: 1px solid #ededed;
    width: 80%;
    margin: 0 auto;
}

.movies-list .genres a {color: #414141;}
.movies-list .g-ser {
    background-color: #ededed;
    color: #a2a2a2;
    padding: 0.2rem 0.3rem;
    font-size: 0.65rem;
    border-radius: 0.1rem;
    text-transform: uppercase;
}
.movie-view .fields {
    background-color: #f9f9f9;
    color: #606060;
}
.movie-view .fields > div {margin: .7rem 0;}


.carousel .swiper-slide .rating {
    top: 0;
    right: 0;
    font-size: .8rem;
    cursor: default;
    z-index: 1;
}


.movie-persons .poster-mini {
    max-width: 100px;
}




/* ============================
   SEARCH BLOCK — FULL CSS
   Условия:
   - Desktop: инпут в шапке; бэкдроп при фокусе; результаты под инпутом.
   - Mobile: инпут фиксируется у верхнего края; результаты ниже.
   ============================ */

:root{
  --search-gap: 8px;              /* Отступ между инпутом и результатами */
  --search-modal-max: 300px;      /* Максимальная ширина модального инпута/результатов */
  --search-input-h: 44px;         /* Примерная высота инпута в модалке (для расчёта top) */
  --z-backdrop: 1000;
  --z-input: 1001;
  --z-results: 1002;
}

/* Блок поиска как якорь позиционирования (desktop) */
.search-block { position: relative; }

/* Форма — чтобы .search-result совпадал по ширине с инпутом (desktop) */
.search-block form {
  position: relative;
  display: inline-block;
  width: auto;
}

/* ===== Инпут — обычный режим (desktop) ===== */
.search-block .search-input {
  background-color: #449700;
  border: 1px solid #449700;
  outline: none;
  color: #ffffff;
  padding: 0.3rem .5rem;
  border-radius: 0.2rem;
  width: 265px;
  position: relative; /* остаётся в потоке */
  z-index: var(--z-input);       /* в обычном режиме не мешаем */
}
.search-block .search-input::placeholder { color: #fff; }

/* ===== Результаты — сразу под инпутом (desktop) ===== */
.search-block .search-result {
  position: absolute;
  top: calc(100% + var(--search-gap));
  left: 0;
  z-index: var(--z-results);
  background: #fff;
  box-shadow: 1px 1px 3px #a5a5a5;
  display: none;     /* показывается из JS */
  width: 100%;
  text-align: left;
    -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}

/* Содержимое результатов */
.search-block .search-result .no-result {
  display: none;
  color: #858585;
  padding: 1em;
  text-align: center;
}
.search-block .search-result .items .items-title {
  color: #5a5a5a;
  font-size: 0.9em;
  margin: 1em;
}
.search-block .search-result .items a.item {
  text-decoration: none;
  color: #000;
  padding: 0.4rem 0;
  display: block;
}
.search-block .search-result .items a.item .title {
  font-size: 0.9em;
  overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
}
.search-block .search-result .items a.item em {
    font-style: normal;
}
.search-block .search-result .items a.item .info {
  overflow: hidden; white-space: nowrap; text-overflow: ellipsis; display: block;
}
.search-block .search-result .all-results {
  background: #e5e5e5; color: #383838;
  padding: 0.4em; border: none; width: 100%;
}
.search-block .search-result .items a.item:hover,
.search-block .search-result .all-results:hover { background: #eff6f9; }

/* ===== Бэкдроп (desktop + mobile) ===== */
.search-block .search-backdrop {
  position: fixed;
  inset: 0;
  z-index: var(--z-backdrop);
  background-color: #1a1a1a;
  display: none;
  opacity: 0;
  transition: opacity .2s ease;
}
.search-block .search-backdrop.show {
  display: block;
  opacity: 0.7;
}

/* ============================
   МОБИЛЬНЫЙ «МОДАЛЬНЫЙ» РЕЖИМ
   ============================ */
@media (max-width: 767px) {
  /* В активном состоянии переносим инпут в top страницы и поднимаем над бэкдропом */
  
  .search-block.active {
      display: block !important;
  }
  
  
  .search-block.active .search-input {
    position: fixed;
    top: max(12px, env(safe-area-inset-top)); /* аккуратно с вырезами экранов */
    left: 50%;
    transform: translateX(-50%);
    width: min(92vw, var(--search-modal-max));
    z-index: var(--z-input);
    padding: 0.75rem 1rem;
    border-radius: 0.4rem;
    font-size: 16px;
  }

  /* Результаты — сразу под инпутом, также фиксированные */
  .search-block.active .search-result {
    position: fixed;
    left: 50%;
    transform: translateX(-50%);
    top: calc(max(12px, env(safe-area-inset-top)) + var(--search-input-h) + var(--search-gap));
    width: min(92vw, var(--search-modal-max));
    z-index: var(--z-results);
    max-height: 60vh;
    overflow: auto;
  }
}

/* ===== Плавность появления результатов (опционально) ===== */
.search-block .search-result { transition: opacity .15s ease, transform .15s ease; }
.search-block .search-result[style*="display: block"] { opacity: 1; }

/* ===== Указатель для иконки ===== */
.search-icon { cursor: pointer; }









.icms-hleft,.icms-hright{flex:1 1 0;min-width:0;display:flex;align-items:center}
.icms-hcenter{flex:0 0 auto;text-align:center}

/* --- Лого по центру (текст) --- */
.icms-logo{
    font-size: 1rem;
    color: #fff !important;
    text-decoration: none;
    text-transform: uppercase;
    font-family: 'Roboto', sans-serif;
    vertical-align: middle;
    line-height: 0;
    background-image: url(../images/logo.webp);
    height: 30px;
    background-repeat: no-repeat;
    background-size: contain;
    padding-left: 2.5rem;
    padding-top: 0.1rem;
}
.icms-logo:hover{color:#fff!important;opacity:.85;text-decoration:none}

/* --- Кнопка меню (SVG) слева, белая и крупнее --- */
.icms-header #menuToggle{
  color:#fff!important;
  font-size:1.5rem;
  display:flex;
  align-items:center;
  cursor:pointer
}

/* ===== Desktop menu (справа): горизонтально + белые ссылки верхнего уровня ===== */
@media (min-width:992px){
  /* Горизонтальная раскладка UL вне зависимости от стилей .menu */
  .desktop-nav .menu.menu-main{
    display:flex!important;
    flex-direction:row!important;
    align-items:center;
    flex-wrap:nowrap;
    padding-left:0;
    margin-bottom:0;
    list-style:none
  }
  .desktop-nav .menu.menu-main>li{display:block!important;position:relative}

  /* Белые ссылки верхнего уровня */
  .desktop-nav .menu.menu-main>li>a.nav-link,
  .desktop-nav .menu.menu-main>li>a.dropdown-toggle{
    color:#fff!important;
    padding: .5em .7em!important;
  }
  .desktop-nav .menu.menu-main>li>a:hover,
  .desktop-nav .menu.menu-main>li>a:focus{
    color:#fff!important;opacity:.85;text-decoration:none
  }

  /* Дропдауны примыкают к низу пункта меню */
  .desktop-nav .dropdown-menu{margin-top:0}
}

/* Глубокие дропдауны не обрезаем и чуть смещаем вложенные */
.desktop-nav .dropdown-menu{overflow:visible}
.desktop-nav .dropdown-menu .dropdown-menu{margin-left:.125rem}

/* ===== Mobile drawer (левое выдвижное меню) ===== */
/* ===== Mobile drawer — FINAL ===== */
.icms-drawer {
  position: fixed;
  inset: 0;
  display: none;
  z-index: 1050;
  opacity: 0;                 /* появление контейнера */
}
.icms-drawer.is-open { display: flex; }
.icms-drawer.is-open.is-ready { opacity: 1; }

/* панель слева, флекс-колонка, скролл у .mobile-nav, корректный 100vh */
.icms-drawer__panel{
  position: relative;
  width: 80vw;
  max-width: 400px;
  height: calc(var(--vh, 1vh) * 100);
  background: #fff;
  box-shadow: 2px 0 16px rgba(0,0,0,.2);
  display: flex;
  flex-direction: column;
  overflow: hidden;

  /* слайд-ин */
  transform: translateX(-100%);
  transition: transform .28s cubic-bezier(.22,.61,.36,1);
}

/* бекдроп плавно проявляется и не ловит клики, пока скрыт */
.icms-drawer__backdrop{
  flex: 1 1 auto;
  background: rgba(0,0,0,.35);
  opacity: 0;
  transition: opacity .28s ease;
  pointer-events: none;
}
.icms-drawer.is-open .icms-drawer__backdrop{ pointer-events: auto; }
.icms-drawer.is-open.is-ready .icms-drawer__backdrop{ opacity: 1; }

/* область меню скроллится */
#mobileMenu .mobile-nav{
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  padding-bottom: env(safe-area-inset-bottom);
}
#mobileMenu .mobile-nav-header{ flex: 0 0 auto; }

.icms-drawer__close{border:0;background:transparent;font-size:2rem;line-height:1;color:#666}
body.no-scroll{overflow:hidden}

/* Шапка в сайд-меню */
.mobile-nav-header{border-bottom:1px solid rgba(0,0,0,.08)}
.mobile-nav-header .mobile-logo{color:#222;text-decoration:none}
.mobile-nav-header .mobile-logo:hover{opacity:.85;text-decoration:none}

/* ===== Mobile nav (аккордеон) ===== */
#mobileMenu .mobile-nav ul{list-style:none;padding-left:0;margin:0}
#mobileMenu .mobile-nav li{margin:.25rem 0;border-bottom:1px solid rgba(0,0,0,.06)}
#mobileMenu .mobile-nav li:last-child{border-bottom:0}

/* Заголовки аккордеона: тёмные, с индикатором */
#mobileMenu .mm-toggle{
  width:100%;text-align:left;padding:.625rem 1rem;font-weight:600;
  border:0;background:transparent;color:#383838
}
#mobileMenu .mm-toggle::after{content:"▸";float:right;transition:transform .2s;font-weight:400}
#mobileMenu .mm-toggle[aria-expanded="true"]::after{transform:rotate(90deg)}

/* Ссылки внутри раскрытых секций */
#mobileMenu .mobile-nav .mm-link{
  display:block;padding:.5rem 1.25rem;color:#383838;text-decoration:none
}
#mobileMenu .mobile-nav .mm-link:hover{opacity:.9;text-decoration:none}

/* Сайд-панель — флекс-колонка, чтобы область меню могла скроллиться */
.icms-drawer__panel {
  display: flex;
  flex-direction: column;
  overflow: hidden; /* прячем лишнее, скролл будет на .mobile-nav */
}

/* Область навигации внутри панели — скролл по вертикали */
#mobileMenu .mobile-nav {
  flex: 1 1 auto;
  min-height: 0;                /* важно для корректного флекса */
  overflow-y: auto;
  -webkit-overflow-scrolling: touch; /* плавный скролл на iOS */
  overscroll-behavior: contain;      /* не прокручивать страницу под низом */
}

/* Если у тебя есть шапка внутри панели (например .mobile-nav-header), фиксируем её */
#mobileMenu .mobile-nav-header {
  flex: 0 0 auto;
}

/* Панель — флекс-колонка, скролл у области меню */
.icms-drawer__panel{
  display:flex;
  flex-direction:column;
  height:calc(var(--vh, 1vh) * 100); /* вместо 100vh — корректно на iOS */
  overflow:hidden;                   /* скролл только внутри .mobile-nav */
}

/* Навигация внутри панели — скроллится */
#mobileMenu .mobile-nav{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  padding-bottom: env(safe-area-inset-bottom); /* чтобы ничего не съедал нижний бар */
}

/* Если есть шапка внутри панели — она фиксированной высоты */
#mobileMenu .mobile-nav-header{ flex:0 0 auto; }

/* Плавное появление контейнера и слайд панели */
.icms-drawer{
  position:fixed;
  inset:0;
  display:none;
  z-index:1050;
  opacity:0; /* контейнер невидим до is-ready */
}
.icms-drawer.is-open{ display:flex; }
.icms-drawer.is-open.is-ready{ opacity:1; }

.icms-drawer__panel{
  transform:translateX(-100%);
  transition:transform .28s cubic-bezier(.22,.61,.36,1);
}
.icms-drawer.is-open.is-ready .icms-drawer__panel{
  transform:translateX(0);
}

/* Плавный бекдроп */
.icms-drawer__backdrop{
  opacity:0;
  transition:opacity 2s ease;
  pointer-events:none;
}
.icms-drawer.is-open .icms-drawer__backdrop{ pointer-events:auto; }
.icms-drawer.is-open.is-ready .icms-drawer__backdrop{ opacity:1; }


