/* Стоимость работ*/
.cost-modern__viewport {
  touch-action: pan-y; 
}

/* Сертификаты */
.section.certificates .cert-preview {
  touch-action: pan-y;
}

/* Лайтбокс */
.room-photos-lightbox__img {
  touch-action: pan-y;
}
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
html, body{
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}




/* Топ бар */
:root { --topbar-h: 78px; }

.topbar { height: var(--topbar-h); }


@media (max-width: 768px) {
  :root { --topbar-h: 68px; }

  .topbar {
    height: var(--topbar-h);
    background: rgba(22, 22, 22, 0.88);
  }

  .topbar__logo img {
    height: 45px;
    transform: translate(-10px, 4px);
  }
}

@media (max-width: 1180px) {

  /* показываем бургер */
  .topbar__toggle {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }

  /* контейнер меню */
  .topbar__menu {
    position: fixed;
    top: var(--topbar-h);
    left: 0;
    right: 0;

    display: flex;
    flex-direction: column;
    gap: 0;

    background: rgba(18,18,18,0.98);
    backdrop-filter: blur(6px);
    border-top: 1px solid rgba(255,255,255,0.08);

    max-height: calc(100svh - var(--topbar-h));
    overflow-x: hidden;
    scrollbar-width: none;
    z-index: 9998;

    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;

    opacity: 0;
    transform: translateY(-8px);
    pointer-events: none;
    transition: opacity .22s ease, transform .22s ease;
  }

  .topbar__menu::-webkit-scrollbar {
    width: 0;
    height: 0;
    display: none;
  }

  /* когда бургер открыт */
  .topbar.is-mobile-open .topbar__menu {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
    overflow-y: auto;
  }

  /* включаем прокрутку меню только когда надо (JS добавляет .is-scrollable) */
  .topbar__menu.is-scrollable {
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  .topbar__menu > li {
    border-bottom: 1px solid rgba(255,255,255,0.06);
  }

  .topbar__menu .item {
    width: 100%;
    padding: 14px 16px;
    font-size: 18px;
  }

  /* dropdown (общие) */
  .dropdown {
    --topbar-dropdown-padding-y: 8px;
    position: static;
    box-shadow: none;
    background: transparent;
    margin-left: 8px;

    display: block;
    max-height: 0;
    overflow: hidden;

    opacity: 0;
    transform: translateY(-6px);
    pointer-events: none;

    padding: 0;
    transition:
      max-height .34s cubic-bezier(.22, .61, .36, 1),
      opacity .22s ease,
      transform .22s ease,
      padding .22s ease;
  }

  /* Горизонтальная геометрия не должна меняться в первом кадре анимации. */
  .topbar__menu .dropdown {
    padding-right: 0;
    padding-left: 0;
  }

  /* открытая выпадашка с внутренним скроллом*/
  .topbar__menu .has-dropdown.is-open > .dropdown {
    max-height: var(--topbar-dropdown-height, 1800px);
    overflow: hidden;

    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
    padding: var(--topbar-dropdown-padding-y) 0;
  }

  .dropdown a {
    font-size: 16px;
    padding: 10px 24px;
    white-space: normal;
    transition: background-color .2s ease, color .2s ease;
  }

  .dropdown a:hover {
    background-color: rgba(255,255,255,0.08);
    color: #f4d58e;
  }

  /* "Ремонт" — геометрия сетки не меняется во время раскрытия. */
  .topbar__menu .dropdown.dropdown--columns-2 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 16px;
  }

  .topbar__menu .dropdown.dropdown--columns-2 > li {
    min-width: 0;
    margin: 4px 0;
  }

  .topbar__menu .dropdown.dropdown--columns-2 a {
    width: 100%;
    min-width: 0;
    max-width: none;
    padding: 10px 24px;
    font-size: 16px;
    line-height: 1.35;
    box-sizing: border-box;
  }

  .topbar__menu .has-dropdown.is-open > .dropdown.dropdown--columns-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 16px;
    max-height: var(--topbar-dropdown-height, 1800px);
    overflow: hidden;
  }
}

@keyframes topbarMenuIn {
  from { transform: translateY(-8px); opacity: 0; }
  to   { transform: translateY(0);   opacity: 1; }
}

@keyframes dropdownIn {
  from { transform: translateY(-4px); opacity: 0; }
  to   { transform: translateY(0);    opacity: 1; }
}

/* Фикс дерганной анимации топбара */
@media (max-width: 1180px) {
  .topbar.is-noanim .topbar__menu,
  .topbar.is-noanim .dropdown {
    transition: none !important;
    animation: none !important;
  }
}

@media (max-width: 1180px) {
  .topbar,
  .topbar * {
    -webkit-tap-highlight-color: rgba(0,0,0,0) !important;
  }

  /* на всякий: чтобы не было фокус-рамок */
  .topbar a:focus,
  .topbar a:focus-visible,
  .topbar .item:focus,
  .topbar .item:focus-visible,
  .topbar__toggle:focus,
  .topbar__toggle:focus-visible {
    outline: none !important;
    box-shadow: none !important;
  }
}








/* Первая секция */
@media (max-width: 768px){

  :root{
    --hero-offset-top: 35px;   
    --hero-pad-top: 60px;      /* воздух сверху */
    --hero-pad-bottom: 40px;   /* воздух снизу */
  }

  /* секция hero на мобилке */
  section.section.hero.is-full-height.dark{
    position: relative !important;
    display: block !important;
    height: auto !important;
    min-height: auto !important;

    padding-top: calc(var(--topbar-h, 68px) + var(--hero-offset-top)) !important;
    padding-bottom: 0 !important;
    overflow: hidden; 
  }

  /* внутренние отступы */
  section.section.hero.is-full-height.dark.hero{
    padding-top: var(--hero-pad-top) !important;
    padding-bottom: var(--hero-pad-bottom) !important;
  }

  /* контент поверх фона */
  section.section.hero.is-full-height.dark .container{
    padding-top: 30px !important; 
    position: relative !important;
    z-index: 2 !important;
    top: 0 !important;
  }

  /* Bulma прижим вниз выключаем */
  section.section.hero.is-full-height.dark .container.align-self-end{
    align-self: auto !important;
  }

  /* типографика */
  .hero h1{
    text-align:center !important;
    width:100% !important;
    font-size:32px !important;
    line-height:1.25 !important;
    margin-bottom:30px !important;
  }

  .hero ul{ margin-bottom: 8px !important; }

  .hero ul li{
    font-size:19px !important;
    line-height:1.4 !important;
    margin-bottom:10px !important;
  }

  .hero .button--primary{
    width:100% !important;
    text-align:center !important;
    padding:14px 0 !important;
    font-size:16px !important;
    margin-top: 20px !important;
  }

  .scroll-down{ display:none !important; }
}

/* На PRO MAX моделях экран широкий, стилизуем контент по это */
@media (max-width: 768px) and (min-width: 420px){
  section.section.hero.is-full-height.dark{
    min-height: 100svh !important;
    display: flex !important;
    align-items: flex-start !important;
  }

  section.section.hero.is-full-height.dark .container{
    width: 100%;
    padding-top: 40px !important; 
  }
  .hero h1{
    font-size: 36px !important;
    line-height: 1.2 !important;
  }

  .hero ul li{
    font-size: 20px !important;
  }

  .hero .button--primary{
    padding: 16px 0 !important;
    font-size: 17px !important;
  }
}

/* ДЛИННЫЕ ANDROID QHD+ (20:9, 1440×3200) */
@supports not (-webkit-touch-callout: none) {
  @media 
    (max-width: 768px) and
    (min-aspect-ratio: 9/20) and
    (max-width: 412px) {

    section.section.hero.is-full-height.dark{
      min-height: 100svh !important;  
    }

    /* ЧУТЬ воздуха снизу — но контент не трогаем */
    section.section.hero.is-full-height.dark.hero{
      padding-bottom: 40px !important; 
    }
  }
  

}











/* Вторая секция */
@media (max-width: 768px) {
  .partners-section {
    padding-top: 40px !important;   
    padding-bottom: 80px !important;
    margin-top: 20px;              
  }

  .partners-title {
    font-size: 28px !important;
    line-height: 1.25;
    margin-bottom: 12px;
    padding: 0 16px;              
  }

  .partners-subtitle {
    font-size: 20px !important;
    margin-bottom: 24px;
    padding: 0 16px;
  }

  .partners-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr); /* 2 логотипа в ряд */
    gap: 16px 12px;
    padding: 0 12px;              
    justify-items: center;
  }

  .partner-item {
    width: 100%;
    max-width: 180px;              /* ширина карточки */
    padding: 8px 10px;
    box-sizing: border-box;
  }

  .partner-item img {
    max-width: 110px;              /* логотипы */
    width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
  }

  /* Если количество карточек нечетно — последняя по центру */
  .partners-grid > .partner-item:last-child:nth-child(odd) {
    grid-column: 1 / -1;      
    justify-self: center;     
  }
}
/* центрирование "Курилотрансавто" под любые устройства*/
@media (max-width: 768px) {

  .brand-word{
    display: inline;
    position: relative;
  }

  .brand-word::before,
  .brand-word::after{
    position: absolute;
    top: 50%;                       
    transform: translateY(-50%);  
    font: inherit;
    color: inherit;
    line-height: 1;              
    pointer-events: none;
  }

  .brand-word::before{
    content: "«";
    left: -0.55em;
  }

  .brand-word::after{
    content: "»";
    right: -0.55em;
  }
}









/* Третья секция */
/* Стоимость работ */
@media (hover: none) {
  .cost-modern__arrow:hover {
    background: rgba(255,255,255,0.9) !important;
    box-shadow: 0 6px 16px rgba(0,0,0,0.25) !important;
    transform: translateY(-50%) !important;
  }
}
@media (max-width: 768px) {


  .section.cost-modern {
    padding-bottom: 80px;
  }

  .cost-modern {
    padding: 32px 0 20px;
  }

  .cost-modern__header {
    margin-bottom: 20px;
    padding: 0 16px;
    text-align: center;
  }

  .cost-modern__title {
    font-size: 32px;
  }

  .cost-modern__subtitle {
    font-size: 20px;
  }

  /* область с карточкой и стрелками */
  .cost-modern__viewport {
    position: relative;
    max-width: 100%;
    margin: 0 auto 24px;
    padding: 0 24px;
  }

  .cost-modern__grid {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    position: relative;
    width: 100%;
    max-width: 520px;     
    margin: 0 auto;
    gap: 0;
  }

  /* одна карточка по центру, в потоке */
  .cost-card {
    position: relative;
    width: 100%;
    margin: 0 auto;
    transform: none;

    padding: 14px 14px 16px;
    border-radius: 14px;
    box-shadow: 0 10px 24px rgba(0,0,0,0.35);
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
  }

  /* Активная карточка — просто появляется */
  .cost-card.is-center,
  .cost-card.is-active {
    opacity: 1;
    pointer-events: auto;
  }

  /* скрываем остальные карточки */
  .cost-card.is-left,
  .cost-card.is-right,
  .cost-card.is-hidden {
    display: none;
    opacity: 0;
    pointer-events: none;
  }

  .cost-card__icon {
    width: 40px;
    height: 40px;
  }

  .cost-card__title {
    font-size: 20px;
  }

  .cost-card__text {
    font-size: 16px;
  }

  .cost-card__list {
    font-size: 15px;
  }

  .button.button--ghost.cost-card__btn {
    padding: 9px 18px;
    font-size: 14px;
  }

  /* Стрелки */
  .cost-modern__arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);

    width: 36px;
    height: 36px;
    font-size: 20px;

    z-index: 20;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .cost-modern__arrow--prev {
    left: -22px; 
  }

  .cost-modern__arrow--next {
    right: -22px;
  }

  .cost-modern__arrow:hover {
    transform: translateY(-50%); 
  }

  /* Общие данные */
  .cost-modern__rates {
    margin-top: 30px; 
    padding: 0 16px;
  }

  .cost-modern__rates-title {
    font-size: 26px;
    margin: 0 0 10px;
  }

  .cost-rates {
    display: grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 12px; 
  }

  .cost-rate {
    padding: 10px 8px 12px; 
    border-radius: 12px;
  }

  .cost-rate__value {
    margin: 0 0 4px;
    font-size: 16px;
  }

  .cost-rate__value span {
    font-size: 18px;
  }

  .cost-rate__label {
    margin: 0;
    font-size: 15px;
    line-height: 1.3;
  }

}







/* Четвертая секция */
/* Сертификаты */
@media (max-width: 768px) {

  .section.certificates {
    padding-bottom: 70px;
  }

  /* Жёстко центрируем правую колонку + превью + трек */
  .section.certificates .cert-layout__right,
  .section.certificates .cert-preview,
  .section.certificates .cert-preview .cert-track {
    margin-left: auto !important;
    margin-right: auto !important;
  }

  /* заголовок секции — ближе к фото */
  .section.certificates .certificates__header {
    margin-bottom: -40px;  
    text-align: center;
  }

  .section.certificates .certificates__header h2 {
    font-size: 28px;
    line-height: 1.25;
  }

  /* Две колонки в столбик */
  .section.certificates .cert-layout {
    flex-direction: column;
    align-items: center;
    gap: 0;
    max-width: 100%;
  }

  .section.certificates .cert-layout__right {
    order: 1;    
    width: 100%;
  }

  .section.certificates .cert-layout__left {
    order: 2;  
    width: 100%;
  }

  /* фото сертификата по центру */
  .section.certificates .cert-preview {
    width: 100%;
    display: flex;
    justify-content: center;
    margin-bottom: -40px;  
  }

  .section.certificates .cert-preview .cert-track {
    width: 320px;
    max-width: 100%;
    height: 440px;
    margin: 0 auto;     
    overflow: hidden;
  }

  .section.certificates .cert-preview .cert-track img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
  }

  /* Левый блок под фото (заголовок + подпись) */
  .section.certificates .cert-info {
    max-width: 350px;
    margin: 8px auto 0; 
    text-align: center;
    min-height: auto;    
  }

  /* Заголовок сертификата под фото */
  .section.certificates .cert-info h3 {
    margin: 0 0 12px;   
    font-size: 20px;

    height: auto;
    display: block;
    text-align: center;
  }

  /* Подпись под сертификатом */
  .section.certificates .cert-info .docs-item {
    max-width: 350px;
    margin: 6px auto 16px;   
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;

    text-align: left;
    height: auto;           
  }

  /* Иконка */
  .section.certificates .cert-info .docs-item .icon-box-img img {
    width: 28px;
    height: auto;
    margin: 0;
  }

  /* Текст */
  .section.certificates .cert-info .docs-item .icon-box-text p {
    margin: 0;
    line-height: 1.3;
  }

  /* Кнопка "Скачать" — по центру */
  .section.certificates .cert-info .button {
    display: inline-block;
    margin: 0 auto;
  }

  /* Стрелки и "1/7" — компактнее */
  .section.certificates .cert-nav {
    margin-top: 12px;
    display: flex;
    justify-content: center;
    padding-left: 0;
  }

  .section.certificates .cert-nav__arrow,
  .section.certificates .cert-nav__pager {
    position: static;
    margin: 0 4px;
  }
}







/* Пятая секция */
/* Более 25 лет на рынке */
@media (max-width: 768px) {

  .section.years {
    padding-bottom: 30px;  
    padding-top: 0px;
  }


  .section.years .subtitle {
    margin-bottom: 20px;
    padding: 0 16px;
    text-align: center;
  }

  .section.years .subtitle h2 {
    font-size: 32px;      
    line-height: 1.25;
    margin: 0;
  }

  /* Сетка карточек 1 колонка и по центру */
  .section.years .icon-box {
    padding: 18px 14px 16px;
    border-radius: 14px;
    box-shadow: 0 10px 24px rgba(0,0,0,0.18);
    margin: 0 auto 8px;
    max-width: 520px;
  }

  /* Последней карточке убираем отступ вниз */
  .section.years .icon-box:last-child {
    margin-bottom: 0;
  }

  /* Иконка компактнее */
  .section.years .icon-box-img {
    margin-bottom: 10px;
  }

  .section.years .icon-box-img img {
    width: 46px;
    height: auto;
    display: block;
    margin: 0 auto;
  }

  /* Заголовок карточки */
  .section.years .icon-box-text h3 {
    font-size: 20px;
    margin: 0 0 6px;
  }

  /* Текст карточки */
  .section.years .icon-box-text p {
    font-size: 16px;
    line-height: 1.35;
    margin: 0;
  }

  /* Убираем лишние переносы на мобилках */
  .section.years .icon-box-text br {
    display: none;
  }

  /* Убираем лишние боковые отступы у bootstrap-колонок */
  .section.years .row {
    --bs-gutter-x: 16px;
  }
}






/* Шестая секция */
/* Наше местоположение */
@media (max-width: 768px) {

  .section.location {
    padding: 32px 0 55px;
    overflow-x: hidden;
  }

  .section.location .subtitle {
    padding: 0 16px;
    text-align: center;
    margin-bottom: 24px;
  }

  .section.location .subtitle h2 {
    font-size: 32px;
    line-height: 1.25;
    margin: 0;
  }

  /* Отключаем десктопный разделитель */
  .section.location .is-divided,
  .section.location .is-divided::after {
    border: none !important;
    content: none !important;
    display: block !important;
  }

  /* центрируем карточки + отступ */
  .section.location .location__item-wrap {
    padding: 0 16px;
    margin-bottom: 24px;
    display: flex;
    justify-content: center;
    width: 100%;
  }

  .section.location .location__item-wrap:last-child {
    margin-bottom: 0;
  }

  /* Заголовок локации */
  .section.location .location__title {
    text-align: center;
    margin: 0 0 14px;
    font-size: 20px;
    line-height: 1.25;
  }

  /* "СТО / S-3200" */
  .section.location .location__title span {
    display: inline-flex;
    align-items: baseline;
    gap: 10px;

    padding: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;

    font-family: inherit !important;
    font-weight: 700 !important;
    letter-spacing: inherit !important;
    line-height: 1.1 !important;
    font-size: 18px !important;   /* СТО чуть крупнее */
  }

  .section.location .location__title span small {
    font-family: inherit !important;
    font-weight: inherit !important;
    letter-spacing: inherit !important;
    line-height: inherit !important;

    font-size: 0.85em !important; /* S-3200 меньше */
    opacity: 0.9 !important;
    white-space: nowrap;
  }

  /* Разделение строк: бейдж / название (чтобы не прилипало) */
  .section.location .location__title br {
    display: block;
    margin-top: 10px;
  }

  /* Карточка */
  .section.location .location__item {
    width: 100%;
    max-width: 520px;
    box-sizing: border-box;

    padding: 18px 14px 16px;
    border-radius: 14px;
    box-shadow: 0 10px 24px rgba(0,0,0,0.18);
  }

  /* Список */
  .section.location .location__item ul {
    margin: 0 0 16px;
    padding-left: 18px;
  }

  .section.location .location__item ul li {
    font-size: 16px;
    line-height: 1.35;
    margin-bottom: 6px;
  }

  .section.location .location__item ul li:last-child {
    margin-bottom: 0;
  }

  /* Иконка + текст трассы */
  .section.location .location__info h5 {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: start;

    column-gap: 4px;
    margin: 0 0 14px;

    font-size: 16px;
    line-height: 1.35;
  }

  .section.location .location__info h5 img {
    width: 14px;
    height: auto;
    margin-top: 4px;
  }

  .section.location .location__info h5 br {
    display: none;
  }

  /* Кнопка */
  .section.location .location__btn {
    width: 100%;
    max-width: 360px;
    margin: 0 auto;
    display: block;

    padding: 12px 18px;
    font-size: 15px;
    border-radius: 12px;
  }
}






/* Седьмая секция */
/* Отзывы наших клиентов */
@media (max-width: 768px) {

  .section.reviews--alt{
    padding: 32px 0 50px;       
    overflow-x: hidden;
  }

  .section.reviews--alt .subtitle{
    text-align: center;
    padding: 0 16px;
    margin-bottom: -5px;            /* отступ до карточек */
  }

  .section.reviews--alt .subtitle h2{
    font-size: 32px;
    line-height: 1.2;
    margin: 0;
  }

  /* скрываем “Посмотреть все отзывы” */
  .section.reviews--alt .reviews__link{
    display: none !important;
  }

  /* список карточек */
  .section.reviews--alt .reviews-wrap{
    padding: 0 0px;
    margin: 0;
    gap: 10px;                  
  }

  .section.reviews--alt .reviews-item__wrap{
    padding: 0;
    margin: 0;
    display: flex;
    justify-content: center;
  }

  .section.reviews--alt .reviews-item{
    width: 100%;
    max-width: 520px;

    padding: 14px 14px 10px;       
    border-radius: 14px;
    box-shadow: 0 10px 24px rgba(0,0,0,0.18);
  }

  .section.reviews--alt .reviews-item__title h4{
    margin: 0 0 2px;
    font-size: 17px;
    line-height: 1.15;
  }

  .section.reviews--alt .reviews-item__city p{
    margin: 0 0 6px;                
    font-size: 13px;
    opacity: 0.85;
  }

  .section.reviews--alt .reviews-item__content{
    font-size: 15px;
    line-height: 1.42;
    margin-top: -20px;
  }

  .section.reviews--alt .reviews-item__meta .divider{
    margin: 8px 0 6px;
    opacity: 0.45;
  }

  /* строка с датой и рейтингом */
  .section.reviews--alt .reviews-item__date{
    float: none;
    display: inline-flex;
    align-items: center;
  }

  .section.reviews--alt .reviews-item__rating{
    float: none;
    display: inline-flex;
    align-items: center;
    margin: 0 0 0 auto;    
  }

  .section.reviews--alt .reviews-item__meta{
    margin-top: 8px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
  }

  /* divider занимает всю строку */
  .section.reviews--alt .reviews-item__meta .divider{
    flex: 0 0 100%;
  }

  .section.reviews--alt .reviews-item__meta::after{
    content: none;
  }


  .section.reviews--alt .reviews-item__date time{
    font-size: 13px;
    opacity: 0.85;
  }

  /* звезды чуть поджимаем */
  .section.reviews--alt .reviews-item__rating{
    gap: 4px;
  }

  /* кнопка оставить отзыв */
  .section.reviews--alt .button.button--primary.button--popup{
    width: 100%;
    max-width: 520px;
    display: block;
    margin: -10px auto 0;          
    border-radius: 12px;
    padding: 14px 18px;
    font-size: 15px;
  }

  /* bootstrap ровность */
  .section.reviews--alt .row{
    --bs-gutter-x: 16px;
  }

  .review-modal{
    align-items: flex-end;       
    justify-content: center;
    padding: 12px;                  /* чтобы карточка не липла к краям */
  }

  /* backdrop остается как на десктопе, только чуть сильнее */
  .review-modal.is-open .review-modal__backdrop{
    background: rgba(0,0,0,.50);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
  }

  .review-modal__dialog{
    width: min(560px, 100%);
    max-width: 100%;

    padding: 16px 14px 14px;
    border-radius: 16px 16px 14px 14px;

    transform: translateY(18px);
  }

  .review-modal.is-open .review-modal__dialog{
    transform: translateY(0);
  }

  /* крестик */
  .review-modal__close{
    top: 6px !important;
    right: 6px !important;
    width: 40px;
    height: 40px;
    font-size: 22px;
  }

  .review-modal__title{
    margin: 0 44px 8px 0;           /* место под крестик справа */
    font-size: 18px;
    line-height: 1.2;
    text-align: left;
  }

  .review-modal__subtitle{
    margin: 0 0 12px;
    font-size: 14px;
    line-height: 1.35;
    text-align: left;
    color: #555;
  }

  .review-modal__buttons{
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    margin-bottom: 10px;
  }

  .review-modal__btn{
    display: block;
    padding: 12px 14px;
    border-radius: 14px;

    background: #fff;
    border: 1px solid rgba(0,0,0,.10);
    color: #222;
    text-decoration: none;

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

  .review-modal__btn:active{
    background: rgba(221,185,111,.10);
    border-color: rgba(221,185,111,.70);
  }

  .review-modal__btn-title{
    display: block;
    font-size: 15px;
    font-weight: 600;
    margin-bottom: 3px;
    text-align: left;
  }

  .review-modal__btn-desc{
    display: block;
    font-size: 13px;
    color: #666;
    line-height: 1.25;
    text-align: left;
  }

  .review-modal__hint{
    margin: 0;
    font-size: 12.5px;
    text-align: left;
    color: #777;
    line-height: 1.25;
  }

  /* lock scroll в модалке*/
  body.is-scroll-locked {
    position: fixed;
    width: 100%;
    overflow: hidden;
  }

}


/* Футер просто выключаем, не нужен */
@media (max-width: 768px) {
  footer.footer {
    display: none !important;
  }
}








/* Фикс залипающих кнопок. Mobile / touch: отключаем sticky-hover, используем :active */
@media (max-width: 768px) {

  /* Базовые настройки интерактивных элементов */
  a,
  button,
  .button,
  [role="button"],
  [tabindex] {
    -webkit-tap-highlight-color: transparent;
    tap-highlight-color: transparent;
    touch-action: manipulation;
    transition: background .15s ease, color .15s ease, box-shadow .15s ease, opacity .15s ease;
  }

  /* Убираем фокус после тапа */
  a:focus,
  button:focus,
  .button:focus,
  [role="button"]:focus,
  [tabindex]:focus {
    outline: none !important;
    box-shadow: none !important;
  }

  /* Hover на мобилке всегда сбрасываем в базу */
  a:hover,
  button:hover,
  .button:hover,
  [role="button"]:hover,
  [tabindex]:hover {
    transform: none !important;
    filter: none !important;
    box-shadow: none !important;
  }

  /* Отклик на нажатие */
  a:active,
  button:active,
  .button:active,
  [role="button"]:active,
  [tabindex]:active {
    opacity: 0.88;
  }

  /* Стрелки блока стоимости */
  .cost-modern__arrow {
    transform: translateY(-50%) !important;
    transition: background .15s ease, box-shadow .15s ease !important;
  }

  .cost-modern__arrow:hover {
    background: rgba(255,255,255,0.9) !important;
    box-shadow: 0 6px 16px rgba(0,0,0,0.25) !important;
    transform: translateY(-50%) !important;
  }

  .cost-modern__arrow:active {
    opacity: 1;
    background: #f2e0b2 !important;
    box-shadow: 0 10px 24px rgba(0,0,0,0.35) !important;
    transform: translateY(-50%) !important;
  }

  /* Стрелки сертификатов */
  .section.certificates .cert-nav__arrow {
    transform: none !important;
    transition: background .15s ease, color .15s ease, box-shadow .15s ease !important;
  }

  .section.certificates .cert-nav__arrow:hover {
    background: #ffffff !important;
    color: #222 !important;
    box-shadow: none !important;
  }

  .section.certificates .cert-nav__arrow:active {
    opacity: 1;
    background: #DDB96F !important;
    color: #000 !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.18) !important;
  }

  /* Кнопки */
  .button.button--primary:hover {
    background-color: #DDB96F !important;
  }

  .button.button--primary:active {
    opacity: 1;
    background-color: #d3a546 !important;
  }

  .button.button--secondary:hover {
    color: #dbad49 !important;
    background-color: transparent !important;
  }

  .button.button--secondary:active {
    opacity: 1;
    color: #000000 !important;
    background-color: #DDB96F !important;
  }

  .button.button--link:hover {
    color: #DDB96F !important;
    background-color: transparent !important;
    border-color: transparent !important;
  }

  .button.button--link:active {
    opacity: 1;
    color: #d3a546 !important;
    background-color: transparent !important;
    border-color: transparent !important;
  }
}


/* Desktop only: hover-эффекты для мыши/тачпада */
@media (hover: hover) and (pointer: fine) {

  .cost-modern__arrow:hover {
    background: #f2e0b2;
    box-shadow: 0 10px 24px rgba(0,0,0,0.35);
    transform: translateY(-52%);
  }

  .section.certificates .cert-nav__arrow:hover {
    background: #DDB96F;
    color: #000;
    box-shadow: 0 4px 12px rgba(0,0,0,0.18);
    transform: translateY(-1px);
  }

  .button.button--primary:hover {
    background-color: #d3a546;
  }

  .button.button--secondary:hover {
    color: #000000;
    background-color: #DDB96F;
  }
}

  /* Фикс топбара */
@media (max-width: 1180px) {
  /* 1) БАЗОВЫЙ цвет всех пунктов меню (и при focus тоже) */
  .topbar__menu .item,
  .topbar__menu .item:focus,
  .topbar__menu .item:focus-visible,
  .topbar__menu a,
  .topbar__menu a:focus,
  .topbar__menu a:focus-visible {
    color: #fff !important;     
    outline: none !important;
    box-shadow: none !important;
  }

  /* 2) только когда пункт реально открыт */
  .topbar__menu .has-dropdown.is-open > .item {
    color: #f4d58e !important;
  }

  /* 3) На всякий случай: если пункт закрыт — даже при фокусе он белый */
  .topbar__menu .has-dropdown:not(.is-open) > .item,
  .topbar__menu .has-dropdown:not(.is-open) > .item:focus,
  .topbar__menu .has-dropdown:not(.is-open) > .item:focus-visible {
    color: #fff !important;
  }
}





/* Виджет новостей */
@media (max-width: 768px) {
  .news-widget{
    left: 50% !important;
    right: auto !important;
    bottom: 16px !important;

    width: min(360px, calc(100vw - 24px)) !important;

    /* центрирование + сохранение выезда */
    --slide-x: 120%;
    transform: translateX(-50%) translateX(var(--slide-x)) !important;
  }

  .news-widget.is-visible{
    --slide-x: 0%;
    transform: translateX(-50%) translateX(var(--slide-x)) !important;
  }
}













/* Сервис панель + вытекающие (сплит панель + гостиница) */
@media (max-width: 768px) {

  /* overlay full screen */
  .popup.service-panel{
    position: fixed !important;
    inset: 0 0 auto !important;
    width: 100% !important;
    height: 100% !important;
    height: 100dvh !important;
    background: transparent !important;
    z-index: 9999 !important;
  }

  .popup.service-panel::before{
    background: rgba(0,0,0,0) !important;
    backdrop-filter: blur(0) !important;
    -webkit-backdrop-filter: blur(0) !important;
  }

  .popup.service-panel.active::before{
    background: rgba(0,0,0,.38) !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
  }

  .popup.service-panel.is-closing::before{
    background: rgba(0,0,0,0) !important;
    backdrop-filter: blur(0) !important;
    -webkit-backdrop-filter: blur(0) !important;
  }

  /* Короткая карточка заканчивается вместе с контентом, длинная ограничена viewport. */
  .popup.service-panel .service-panel__content{
    position: absolute !important;
    inset: 0 0 auto !important;

    margin: 0 !important;
    width: 100% !important;
    max-height: calc(100dvh - max(10px, env(safe-area-inset-bottom, 0px))) !important;

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

    background: #ffffff !important;
    color: #000000 !important;
    box-shadow: 0 12px 34px rgba(0,0,0,.28) !important;

    padding: 0 !important;

    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;

    /* Высота остается естественной, пока содержимое помещается на экране. */
    height: auto !important;
    min-height: 0 !important;
  }

  /* Шапка (обычная) */
  .popup.service-panel .service-panel__header{
    position: sticky !important;
    top: 0 !important;
    z-index: 10 !important;

    background: rgb(215 215 215 / 40%) !important;
    backdrop-filter: blur(8px) !important;
    -webkit-backdrop-filter: blur(8px) !important;

    border-bottom: 2px solid rgba(0,0,0,0.08) !important;

    padding: 12px 52px 10px 14px !important;
    border-radius: 0 0 14px 14px !important;
  }

  .popup.service-panel .service-panel__header h2{
    margin: 0 !important;
    font-size: 21px !important;
    font-weight: 650 !important;
    line-height: 1.15 !important;
    color: #000 !important;
  }

  .popup.service-panel .service-panel__lead{
    margin: 4px 0 0 !important;
    font-size: 14px !important;
    color: rgba(0,0,0,0.88) !important;
  }

  /* Крестик */
  .popup.service-panel .popup-close{
    position: absolute !important;
    top: 6px !important;
    right: 6px !important;

    width: 42px;
    height: 42px;

    z-index: 20 !important;
    font-size: 22px;
  }

  /* Тело: скролл внутри + чуть меньше общий текст */
  .popup.service-panel .service-panel__header:not(.split-header){
    min-height: 64px !important; /* под Android fix */
  }

  .popup.service-panel .service-panel__body{
    flex: 1 1 auto !important;
    min-height: 0 !important;

    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;

    padding: 14px 16px 18px !important;

    font-size: 17px !important;
    line-height: 1.5 !important;
  }


  /* Больше воздуха между секциями */
  .popup.service-panel .service-section{
    margin: 0 0 22px !important;
  }
  .popup.service-panel .service-section:last-child{
    margin-bottom: 0 !important;
  }

  .popup.service-panel .service-section h3{
    font-size: 18px !important;
    margin: 0 0 10px !important;
  }

  .popup.service-panel .service-list li,
  .popup.service-panel .service-bullets li{
    line-height: 1.55;
    margin: .35em 0;
  }

  /* PRICE: аккуратный перенос на мобилках */
  .price{
    width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
  }
  .price td{
    vertical-align: top;
    padding: 10px 0 !important;
  }
  .price td:first-child{
    width: 72%;
    padding-right: 12px;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
    line-height: 1.35;
    font-size: 17px;
  }
  .price td:last-child{
    width: 28%;
    text-align: right;
    white-space: nowrap;
    font-weight: 600;
    font-size: 17px;
  }

  /* Галерея на мобилке */
  .popup.service-panel .gallery.gallery--bodyshop{
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  .popup.service-panel .gallery__side-nav{
    display: none !important;
  }

  .popup.service-panel .gallery.gallery--bodyshop .gallery__main{
    max-width: none !important;
    width: 100% !important;
    aspect-ratio: 16 / 10;
    border-radius: 14px;
  }

  /* подпись над галереей — поджать */
  .popup.service-panel .gallery-caption{
    margin-bottom: 8px !important;
  }

  /* превью */
  .popup.service-panel .gallery.gallery--bodyshop .gallery__thumbs{
    display: flex !important;
    gap: 10px !important;

    overflow-x: auto !important;
    overflow-y: hidden !important;

    padding: 4px 2px 2px !important;
    margin-top: 6px !important;

    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;

    justify-content: flex-start !important;
    flex-wrap: nowrap !important;
    margin-bottom: -15px !important;
  }

  .popup.service-panel .gallery.gallery--bodyshop .gallery__thumbs img{
    flex: 0 0 auto !important;
    width: 84px !important;
    height: 58px !important;
    scroll-snap-align: start;
  }

  /* Центровка ТОЛЬКО когда JS добавил класс */
  .popup.service-panel .gallery.gallery--bodyshop .gallery__thumbs.is-centered{
    justify-content: center !important;
    overflow-x: hidden !important;
    scroll-snap-type: none !important;
  }
  .popup.service-panel .gallery.gallery--bodyshop .gallery__thumbs.is-centered img{
    scroll-snap-align: none !important;
  }

  

  /* вертикальный скролл панели даже если палец на картинке */
  .popup.service-panel .gallery__main img{
    touch-action: pan-y;
    -webkit-user-drag: none;
    user-select: none;
  }

  /* оставляем ТОЛЬКО кнопку на всю ширину у контактов */
  .popup.service-panel .contact-note__item{
    display: none !important;
  }

  .popup.service-panel .contact-note{
    display: block !important;
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid rgba(0,0,0,0.12);
  }

  .popup.service-panel .contact-note__center{
    width: 100% !important;
    display: block !important;
  }

  .popup.service-panel .contact-note__center .button{
    width: 100% !important;
    max-width: none !important;

    display: flex !important;
    align-items: center;
    justify-content: center;

    padding: 8px 16px !important;
    font-size: 15px !important;
    font-weight: 600;

    border-radius: 12px;
  }

  #panel-kontakti .contact-note{
    display: grid !important;
    grid-template-columns: 1fr;
    gap: 18px;
  }

  #panel-kontakti .contact-note__item{
    display: flex !important;
    align-items: flex-start;
    text-align: left;
  }

  #panel-kontakti .contact-note__center{
    display: none !important;
  }
}


@media (max-width: 768px){

  /* split-header padding + скругление */
  #panel-stoyanka .service-panel__header.split-header,
  #panel-kontakti .service-panel__header.split-header{
    padding: 12px 44px 10px 14px !important;
    border-radius: 0 0 14px 14px !important;
    overflow: hidden;

    /* фиксируем высоту и центрируем контент по высоте */
    height: 65px !important;
    min-height: 65px !important;
    max-height: 65px !important;

    box-sizing: border-box !important;

    display: grid !important;
    grid-template-columns: 1fr 1fr;
    align-items: center !important;

    -webkit-tap-highlight-color: transparent;
  }

  #panel-stoyanka .split-header .split-half,
  #panel-kontakti .split-header .split-half{

    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    height: 100% !important;
    padding-top: 0px !important;
  }

  /* правую половину ближе к краю + “игнор крестика” */
  #panel-stoyanka .split-header .split-half.right,
  #panel-kontakti .split-header .split-half.right{
    padding-right: 2px !important;
    transform: translateX(25px) !important;
  }

  /* индикатор (тоньше/уже) */
  #panel-stoyanka .split-header .indicator,
  #panel-kontakti .split-header .indicator{
    height: 2px !important;
    width: 44% !important;
    left: 3% !important;
    bottom: 0 !important;
    border-radius: 2px !important;
    transition: left .25s ease !important;
  }

  #panel-stoyanka .split-header[data-active="right"] .indicator,
  #panel-kontakti .split-header[data-active="right"] .indicator{
    left: 53% !important;
  }

  /* типографика сплита (НЕ увеличиваем) */
  #panel-stoyanka .split-header h2,
  #panel-kontakti .split-header h2{
    margin: 0 !important;
    line-height: 1.15 !important;
    white-space: nowrap;
  }

  #panel-stoyanka .split-header p,
  #panel-kontakti .split-header p{
    margin: 3px 0 0 !important;
    line-height: 1.1 !important;
    white-space: nowrap;
  }
}








/* Раскрывающийся хедер если контента много + фикс скролла на мобилках (не долистывался до конца)*/
@media (max-width: 768px){

  /* Контент панелей: колонка */
  .popup.service-panel .service-panel__content{
    display: flex !important;
    flex-direction: column !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: calc(100dvh - max(10px, env(safe-area-inset-bottom, 0px))) !important;
    overflow: hidden !important;  
  }

  /* Шапка пусть будет по контенту */
  .popup.service-panel .service-panel__header{
    flex: 0 0 auto !important;
  }

  /* Скролл внутри body, без calc */
  .popup.service-panel .service-panel__body{
    flex: 1 1 auto !important;
    min-height: 0 !important;         
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;

    height: auto !important;
    max-height: none !important;

    padding-bottom: 18px !important;
    scroll-padding-bottom: 18px;
  }
}
@media (max-width: 768px){
  .popup.service-panel .service-panel__header.hdr-collapsible{
    overflow: hidden !important;
    will-change: max-height;
    transition: max-height .42s cubic-bezier(.22,.61,.36,1);
  }

  .popup.service-panel .service-panel__header.hdr-collapsible:not(.is-expanded){
    max-height: 65px !important;
  }

  .popup.service-panel .service-panel__header.hdr-collapsible::after{
    content:"";
    position:absolute; left:0; right:0; bottom:0;
    height:26px; pointer-events:none;
    background: linear-gradient(to bottom,
      rgba(215,215,215,0) 0%,
      rgba(215,215,215,0.55) 55%,
      rgba(215,215,215,0.85) 100%
    );
    opacity:1;
    transition: opacity .18s ease !important;
  }
  .popup.service-panel .service-panel__header.hdr-collapsible.is-expanded::after{
    opacity:0;
  }

  .popup.service-panel .service-panel__header.hdr-collapsible .header-toggle-hit{
    display:block;
    position:absolute;
    left:0; right:0; bottom:0;
    height:28px;
    background:transparent;
    border:0;
    padding:0;
    margin:0;
    z-index:19;
    -webkit-tap-highlight-color:transparent;
    touch-action:manipulation;
  }
  .popup.service-panel .service-panel__header.hdr-collapsible.is-expanded .header-toggle-hit{
    height:44px;
  }

}
@media (max-width: 768px){
  .popup.service-panel .service-panel__header.hdr-collapsible{
    transform: translateZ(0);
  }
}












 /* Гостиница / Аккордеон номеров */
@media (max-width: 768px) {

  .room-item__head{
    padding: 14px 14px;
    gap: 10px;
  }

  /* справа (цена + шеврон) чуть компактнее */
  .room-item__price{
    font-size: 14px;
  }

  /* внутри раскрытия: в колонку */
  .room-item__inner{
    grid-template-columns: 1fr !important;
    gap: 14px;
    padding: 14px 14px 16px;
    align-items: start !important;
  }

  .room-item__photos{
    padding: 0 40px;        /* место под стрелки */
    transform: none;
    width: 100%;
  }

  /* фото занимает максимум ширины */
  .room-item__photos-track{
    width: 100%;
    max-width: none;  
    aspect-ratio: 16 / 10;          
  }

  /* стрелки ближе к фото на мобилке */
  .room-item__photos-arrow--prev{ left: 0px; }
  .room-item__photos-arrow--next{ right: 0px; }

  /* стрелки */
  .room-item__photos-arrow{
    width: 32px;
    height: 32px;
    font-size: 18px;
  }

  .room-item__text p{ font-size: 15.5px; }
  .room-item__text ul li{ font-size: 14.8px; }

  .room-item__photos-arrow{
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;

    outline: none !important;
    box-shadow: 0 4px 12px rgba(0,0,0,.18) !important;

    transform: translateY(-50%) !important;

    transition:
      background .10s ease,
      box-shadow .10s ease,
      opacity .10s ease !important;
  }

  /* hover на тачах — базовое состояние */
  .room-item__photos-arrow:hover{
    background: rgba(255,255,255,0.95) !important;
    box-shadow: 0 4px 12px rgba(0,0,0,.18) !important;
    transform: translateY(-50%) !important;
    filter: none !important;
  }

  .room-item__photos-arrow:active{
    opacity: 0.88 !important; 
    background: rgba(255,255,255,0.95) !important;
    box-shadow: 0 6px 16px rgba(0,0,0,0.25) !important;
    transform: translateY(-50%) !important;
  }

  .room-item__photos-arrow:focus,
  .room-item__photos-arrow:focus-visible{
    outline: none !important;
    box-shadow: 0 4px 12px rgba(0,0,0,.18) !important;
    transform: translateY(-50%) !important;
  }
}









/* Фикс гэпов наших работ и новостей */
@media (max-width: 768px){
  #panel-raboti  .service-panel__body > .service-section:first-child {
    margin-top: -18px !important;
  }
  #panel-novosti  .service-panel__body > .service-section:first-child {
    margin-top: -18px !important;
  }
}





/* Одно фото: убираем превью и боковые стрелки (перебивает mobile display:flex !important) */
@media (max-width: 768px){
  .popup.service-panel .gallery.gallery--bodyshop.gallery--single .gallery__thumbs{
    display: none !important;
  }
  .popup.service-panel .gallery.gallery--bodyshop.gallery--single .gallery__side-nav{
    display: none !important;
  }
}







/* Панель партнеров */
@media (max-width: 768px){

  #panel-partners .partners-grid--panel{
    margin-top: 8px !important;  
    gap: 12px 12px !important;   
  }

  #panel-partners .partner-item{
    flex: 0 0 calc(50% - 12px) !important;
    max-width: calc(50% - 12px) !important;

    height: 96px !important;  
    padding: 10px 12px !important;
  }

  #panel-partners .partner-item img{
    max-height: 56px !important;
  }
}




/* Панель Фотогалерея */
@media (max-width: 768px){

  #panel-gallery.popup.service-panel > .service-panel__content > .service-section{
    padding: 14px 16px 18px !important;
    margin: 0 !important;
  }

  /* чтобы галерея не упиралась в края внутри секции */
  #panel-gallery .gallery.gallery--bodyshop{
    margin: 0 !important;
  }

}
/* Мобилка: анимированно "гасим" липкий hover */
@media (max-width: 768px){
  .popup.service-panel .gallery.gallery--bodyshop .gallery__thumbs img.thumb-hoverkill,
  .popup.service-panel .gallery.gallery--bodyshop .gallery__thumbs img.thumb-hoverkill:hover{
    opacity: .7 !important;
    transform: none !important;
    box-shadow: none !important;
    filter: none !important;
  }
}

.gallery.gallery--bodyshop .gallery__thumb-scrollbar{
  display: none;
}

/* Превьюшки */
@media (max-width: 768px){

  /* Лента */
  .popup.service-panel .gallery.gallery--bodyshop .gallery__thumbs,
  .popup.service-panel .gallery.gallery--bodyshop .gallery__thumbs.is-scroll9,
  .popup.service-panel .gallery.gallery--bodyshop .gallery__thumbs.is-centered{
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;

    display: flex !important;
    flex-wrap: nowrap !important;
    justify-content: flex-start !important;

    overflow-x: auto !important;
    overflow-y: hidden !important;

    /* левый край */
    padding: 8px 10px 9px 2px !important;
    margin-bottom: 0 !important;
    scroll-padding-left: 2px;

    box-sizing: border-box !important;
    gap: 10px !important;

    -webkit-overflow-scrolling: touch;
    touch-action: pan-x !important;

    scroll-snap-type: x proximity !important;

    /* На мобильных используем одинаковый собственный индикатор ниже ленты. */
    scrollbar-width: none;
  }

  /* Превью */
  .popup.service-panel .gallery.gallery--bodyshop .gallery__thumbs img{
    flex: 0 0 auto !important;
    width: 84px !important;
    height: 58px !important;

    scroll-snap-align: start;
    scroll-snap-stop: always;

    /* анти-синяя подсветка / sticky focus на Android */
    -webkit-tap-highlight-color: transparent;
    outline: none !important;
    user-select: none;
    -webkit-user-drag: none;
  }

  .popup.service-panel .gallery.gallery--bodyshop .gallery__thumbs img:focus,
  .popup.service-panel .gallery.gallery--bodyshop .gallery__thumbs img:focus-visible{
    outline: none !important;
    box-shadow: none !important;
  }

  /* Нативный scrollbar на iOS/Android ведёт себя по-разному. */
  .popup.service-panel .gallery.gallery--bodyshop .gallery__thumbs::-webkit-scrollbar{
    display: none !important;
  }

  .popup.service-panel .gallery.gallery--bodyshop .gallery__thumb-scrollbar{
    display: none;
    position: relative;
    grid-column: 1 / -1;
    width: calc(100% - 4px);
    height: 4px;
    margin: -2px 2px 2px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(25,26,26,.10);
    pointer-events: none;
  }

  .popup.service-panel .gallery.gallery--bodyshop.gallery--thumbs-scrollable .gallery__thumb-scrollbar{
    display: block;
  }

  .popup.service-panel .gallery.gallery--bodyshop .gallery__thumb-scrollbar-thumb{
    position: absolute;
    inset: 0 auto 0 0;
    min-width: 34px;
    border-radius: inherit;
    background: rgba(223,185,101,.88);
    box-shadow: 0 1px 4px rgba(139,103,35,.16);
    transform: translate3d(0,0,0);
    transform-origin: left center;
    will-change: transform, width;
  }
}

/* Финальное центрирование превью на мобилках */
@media (max-width: 768px){

  .popup.service-panel .gallery.gallery--bodyshop .gallery__thumbs.is-centered{
    justify-content: center !important;
    overflow-x: hidden !important;      
    scroll-snap-type: none !important;    
    padding-left: 0 !important;       
    padding-right: 0 !important;
  }

  .popup.service-panel .gallery.gallery--bodyshop .gallery__thumbs.is-centered img{
    scroll-snap-align: none !important;
    scroll-snap-stop: normal !important;
  }
}
@media (max-width: 768px){
  .popup.service-panel .gallery.gallery--bodyshop .gallery__thumbs.is-centered{
    touch-action: manipulation !important; 
  }
}

/* Touch: “подсветка/приподнятие” только через is-active, без hover */
@media (hover: none) and (pointer: coarse) {
  .gallery.gallery--bodyshop .gallery__thumbs img.is-active{
    transform: translateY(-1px) scale(1.02);
    box-shadow:
      inset 0 0 0 1px rgba(221,185,111,.62),
      0 2px 6px rgba(0,0,0,.22);
    opacity: 1;
  }
}





/* iOS/mobile: панель карты не используется, отключаем полностью */
@media (max-width: 1024px) {
  .map-panel {
    display: none !important;
  }
}






/* Уведомление об отправке формы "Задать вопрос" */
@media (max-width: 768px) {
  .question-toast {
    left: 16px;
    right: 16px;
    bottom: 16px;

    transform: translateY(20px);
    max-width: none;

    padding: 12px 16px;
    font-size: 14px;
    border-radius: 12px;
  }

  .question-toast.is-visible {
    transform: translateY(0);
  }
}












/* Лайтбокс */
@media (max-width: 768px) {
  .lightbox,
  .room-photos-lightbox {
    z-index: 11000 !important;
  }

  .lightbox,
  [data-cert-lightbox] {
    touch-action: pan-y;
    overscroll-behavior: contain;
  }

  .lightbox__nav {
    display: none !important;
  }
}
/* Лайтбокс гостиницы */
@media (max-width: 768px) {
  .room-photos-lightbox__nav {
    display: none !important;
  }
}




/* Задать вопрос */
@media (max-width: 768px) {

  /* модалка как у отзывов снизу */
  #questionModal.review-modal{
    align-items: flex-end;
    justify-content: center;
    padding: 12px;
  }

  #questionModal .review-modal__backdrop{
    background: rgba(0,0,0,.50);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
  }

  /* диалог */
  #questionModal .review-modal__dialog{
    width: min(560px, 100%);
    max-width: 100%;
    background: #fff;
    border-radius: 16px;
    padding: 16px 14px 14px;

    max-height: calc(100svh - 24px);

    display: flex;          
    flex-direction: column; 
    overflow: hidden;      
  }


  /* крестик ближе к краю */
  #questionModal .review-modal__close{
    top: 6px !important;
    right: 6px !important;
    width: 40px;
    height: 40px;
    font-size: 22px;
  }

  /* заголовок */
  #questionModal .question-modal__title{
    margin: 0 44px 10px 0;
    font-size: 22px;
    line-height: 1.2;
    font-weight: 700;
    color: #222;
  }

  /* форма */
  #questionModal .question-form{
    flex: 1 1 auto;               
    min-height: 0;                 
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overflow-anchor: none;          /* анти-дерг */
    padding-right: 2px;
  }


  /* сетка в 1 колонку */
  #questionModal .question-form__grid{
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    margin-bottom: 10px;
  }

  /* группы */
  #questionModal .question-form__group{
    position: relative;
    margin: 0;
    padding-bottom: 16px; /* резерв под ошибку */
  }

  /* подписи */
  #questionModal .question-form__label{
    display: block;
    margin: 0 0 4px;
    font-size: 13px;
    line-height: 1.25;
    color: #444;
    opacity: .95;
  }

  /* инпуты/textarea */
  #questionModal .question-form__input,
  #questionModal .question-form__textarea{
    width: 100%;
    margin: 0 !important;
    border-radius: 12px;
    padding: 12px 12px;
    font-size: 16px;
    line-height: 1.2;
    box-sizing: border-box;
  }

  #questionModal .question-form__textarea{
    height: 130px !important;    
    min-height: 130px !important;
    max-height: 130px !important;    
    resize: none;
  }
  

  /* ошибка: absolute, но слот есть всегда */
  #questionModal .question-form__error{
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;

    margin: 0 !important;
    font-size: 12px;
    min-height: 14px;
    line-height: 14px;
  }

  /* группа с тумблером — без резерва под ошибку */
  #questionModal .question-form__group:has([data-contact-type]){
    padding-bottom: 0;
  }

  /* согласие */
  #questionModal .question-form__consent{
    margin-top: 2px;
  }

  #questionModal .question-form__consent-label{
    display: flex;
    gap: 10px;
    align-items: flex-start;
    font-size: 13px;
    line-height: 1.35;
    color: #444;
    opacity: .95;
    margin: 0;
  }

  #questionModal .question-form__consent-label input{
    margin-top: 3px;
    flex: 0 0 auto;
  }

  /* футер формы */
  #questionModal .question-form__footer{
    margin-top: auto;             
    display: flex;
    flex-direction: column;
    gap: 8px;
    align-items: stretch;

    padding-top: 10px;
    padding-bottom: calc(8px + env(safe-area-inset-bottom));
  }


  /* кнопка */
  #questionModal .question-form__submit{
    width: 100%;
    max-width: 520px;
    margin: 0 auto;
    border-radius: 14px;
    padding: 14px 18px;
    font-size: 16px;
  }

  /* хинт под кнопкой */
  #questionModal .question-form__hint{
    margin: 0;
    font-size: 13px;
    line-height: 1.35;
    color: #666;
    opacity: .95;
    text-align: left;
    max-width: 520px;
  }

  #questionModal .question-form__consent-label span{
    max-width: 520px;
  }

  #questionModal .question-form__col{
    margin: 0;
  }

  /* чтобы скролл НЕ пробивал наружу */
  #questionModal .question-form { overscroll-behavior: contain; }
  #reviewModal .review-modal__dialog { overscroll-behavior: contain; }

}

/* Финальные мобильные ограничения для динамических галерей. */
@media (max-width: 768px) {
  .popup.service-panel .gallery.gallery--bodyshop.gallery--single .gallery__thumbs,
  .popup.service-panel .gallery.gallery--bodyshop.gallery--single .gallery__side-nav {
    display: none !important;
  }

  .lightbox img,
  .room-photos-lightbox__img,
  .cert-lightbox__img {
    touch-action: pan-y !important;
  }
}

/* На телефоне закрывается вся полноэкранная панель, без белой паузы. */
@media (max-width: 768px) {
  .popup.service-panel {
    background: transparent !important;
  }

  body.site-scroll-locked {
    height: auto !important;
    min-height: 100% !important;
    overflow: visible !important;
  }

  .popup.service-panel.is-closing {
    opacity: 0 !important;
    visibility: visible !important;
    transition: opacity .18s ease !important;
  }

  .popup.service-panel.is-closing .service-panel__content {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  /* Плавный переход из нижней модалки «Задать вопрос» в полноэкранную панель. */
  .popup.service-panel.is-modal-transition {
    transition: opacity .3s ease, visibility 0s !important;
  }

  .popup.service-panel.is-modal-transition.is-preparing {
    opacity: 0 !important;
    visibility: visible !important;
  }

  .popup.service-panel.is-modal-transition.active {
    opacity: 1 !important;
  }

  /* Мобильные браузеры могут сохранять :hover после возврата системной стрелкой. */
  .button.button--ghost.cost-card__btn:hover {
    background-color: #fffaf0 !important;
    color: #5a430e !important;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.25) !important;
  }
}

/* Финальные hover/touch-состояния каруселей. */
@media (hover: hover) and (pointer: fine) {
  .cost-modern__arrow:hover {
    background: #f2e0b2 !important;
    box-shadow: 0 10px 24px rgba(0, 0, 0, .35) !important;
    transform: translateY(-52%) !important;
  }

  .section.certificates .cert-nav__arrow:hover {
    background: #DDB96F !important;
    color: #000 !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, .18) !important;
    transform: translateY(-1px) !important;
  }

  .button.button--ghost.cost-card__btn:hover {
    background-color: #d5aa58 !important;
    color: #151515 !important;
    box-shadow: 0 10px 22px rgba(0, 0, 0, .45) !important;
  }
}

@media (max-width: 768px) {
  .cost-modern__arrow.is-touch-active {
    background: #f2e0b2 !important;
    box-shadow: 0 10px 24px rgba(0, 0, 0, .35) !important;
    transform: translateY(-50%) !important;
  }

  .section.certificates .cert-nav__arrow.is-touch-active {
    background: #DDB96F !important;
    color: #000 !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, .18) !important;
  }

  .button.button--ghost.cost-card__btn.is-touch-active {
    background-color: #d5aa58 !important;
    color: #151515 !important;
    box-shadow: 0 8px 18px rgba(0, 0, 0, .34) !important;
  }

  .popup.service-panel .gallery__nav-btn.is-touch-active {
    background: rgba(134, 134, 134, .1) !important;
    transform: scale(1.04) !important;
  }
}





















