OLD found: True
CHANGED: True
/* ============================================================
   Layout — Header / Footer / Buttons
   Iter 2.4. По скрину дизайна:
   - Подвал: 3 колонки (бренд / разделы / контакты)
   - Соцсети в подвале — подписанные кружочки VK/IG/TG/MAX
   - Заголовки в подвале — обычный регистр
   - Иконка у адреса
   - Кнопка CTA внутри контактов
   - Низ: 5 ссылок + реквизиты второй строкой
   - Шапка: фикс видимости SVG-иконок соцсетей
   ============================================================ */

/* ============================================================
   ГЛОБАЛЬНЫЙ OVERRIDE КОНТЕЙНЕРА
   Легаси .container = max-width 1248px.
   Шапка и подвал = 1320px.
   Перебиваем чтобы контент главной был той же ширины.
   ============================================================ */
.container {
  max-width: var(--ds-container-max) !important;   /* 1320px как в шапке/подвале */
  width: 100%;
  padding: 0 20px !important;
  margin: 0 auto;
  box-sizing: border-box;
}

/* ============================================================
   ГЛОБАЛЬНЫЙ OVERRIDE ШРИФТОВ (TZ: Manrope + Inter)
   Легаси styles.css содержит 17 правил с Roboto/Philosopher —
   перебиваем на уровне body/headings с !important
   ============================================================ */
body, p, a, span, div, li, ul, button, input, textarea, select, label, td, th {
  font-family: var(--ds-font-body) !important;     /* Inter */
}
h1, h2, h3, h4, h5, h6 {
  font-family: var(--ds-font-heading) !important;  /* Manrope */
}

/* ============================================================
   1. Кнопки
   ============================================================ */

.ds-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: var(--ds-font-body);
  font-weight: var(--ds-fw-button);
  font-size: var(--ds-fs-button);
  line-height: 1.2;
  padding: var(--ds-pad-cta);
  border: 1px solid transparent;
  border-radius: var(--ds-radius-pill);
  cursor: pointer;
  text-decoration: none;
  transition: background-color .18s ease, color .18s ease, border-color .18s ease;
  white-space: nowrap;
  user-select: none;
}
.ds-btn--cta {
  background-color: var(--ds-color-cta);
  color: var(--ds-color-text-invert);
}
.ds-btn--cta:hover,
.ds-btn--cta:focus-visible {
  background-color: var(--ds-color-cta-hover);
  color: var(--ds-color-text-invert);
  outline: none;
}
.ds-btn--outline {
  background-color: transparent;
  color: var(--ds-color-heading);
  border-color: var(--ds-color-heading);
}
.ds-btn--outline:hover,
.ds-btn--outline:focus-visible {
  background-color: var(--ds-color-heading);
  color: var(--ds-color-heading-invert);
  outline: none;
}
.ds-btn--link {
  background: transparent;
  color: var(--ds-color-link);
  padding: 0;
  font-weight: var(--ds-fw-body);
  border-radius: 0;
}
.ds-btn--link::after {
  content: '→';
  display: inline-block;
  margin-left: 6px;
  transition: transform .18s ease;
}
.ds-btn--link:hover,
.ds-btn--link:focus-visible {
  color: var(--ds-color-link-hover);
  outline: none;
}
.ds-btn--link:hover::after { transform: translateX(3px); }
.ds-btn--ghost {
  background-color: transparent;
  color: var(--ds-color-heading-invert);
  border-color: var(--ds-color-heading-invert);
}
.ds-btn--ghost:hover {
  background-color: var(--ds-color-heading-invert);
  color: var(--ds-color-heading);
}
/* CTA на тёмном фоне (подвал) */
.ds-btn--cta-light {
  background-color: var(--ds-color-cta);
  color: var(--ds-color-text-invert);
  padding: 12px 28px;
  font-size: 16px;
}
.ds-btn--cta-light:hover,
.ds-btn--cta-light:focus-visible {
  background-color: var(--ds-color-cta-hover);   /* тёмно-зелёный, НЕ сливается с #142D1A */
  color: var(--ds-color-text-invert);
  outline: none;
}
@media (max-width: 768px) {
  .ds-btn { font-size: var(--ds-fs-button-mob); }
}

/* ============================================================
   2. Тег
   ============================================================ */
.ds-tag {
  display: inline-block;
  font-family: var(--ds-font-body);
  font-weight: var(--ds-fw-tag);
  font-size: var(--ds-fs-tag);
  line-height: 1.2;
  padding: var(--ds-pad-tag);
  background-color: var(--ds-color-bg-tag);
  color: var(--ds-color-heading);
  border-radius: var(--ds-radius-pill);
  white-space: nowrap;
}
@media (max-width: 768px) {
  .ds-tag { font-size: var(--ds-fs-tag-mob); }
}

/* ============================================================
   3. Header
   ============================================================ */
.ds-header {
  position: fixed;            /* всегда сверху, не прячется при скролле */
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  background-color: var(--ds-color-bg);
  border-bottom: none;                          /* убрали жёсткую линию */
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);   /* мягкая тень как в дизайне */
}

/* Компенсация фиксированной шапки — контент не уходит под неё
   Шапка: 8px padding + 56px лого + 8px padding = 72px, + запас под тень */
body {
  padding-top: 120px !important;  /* высота шапки + большой запас, как в дизайне */
}

.ds-header__container {
  max-width: 1320px;
  margin: 0 auto;
  padding: 8px 20px;
  display: flex;
  align-items: center;
  gap: 44px;                   /* воздух: лого→меню = меню→actions */
}

.ds-header__logo {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  color: inherit;
  flex-shrink: 0;
}
.ds-header__logo img {
  max-height: 56px;           /* ещё чуть крупнее (только десктоп, мобила перебивает) */
  width: auto;
  display: block;
}

.ds-header__nav {
  display: flex;
  align-items: center;
  padding-left: 0;                       /* убрал отступ от логотипа */
}
.ds-header__nav .nav__list {
  display: flex;
  align-items: center;
  gap: 32px;                    /* 32px между пунктами меню (на ≥1500px) */
  list-style: none;
  margin: 0;
  padding: 0;
}

/* На разрешениях < 1500px — пункты меню плотнее (10px) */
@media (max-width: 1500px) {
  .ds-header__nav .nav__list {
    gap: 10px !important;
  }
  .ds-header__nav {
    padding-left: 16px !important;
  }
}

/* На разрешениях < 1332px — убираем margin у пунктов меню и сжимаем шапку */
@media (max-width: 1332px) {
  .ds-header__nav .nav__list-item {
    margin: 0 !important;
  }
  .ds-header__container {
    gap: 32px !important;
  }
  .ds-header__actions {
    margin-left: auto !important;      /* телефон и соцсети — к правому краю */
  }
  /* Меню растягиваем на всё свободное место и распределяем пункты */
  .ds-header__nav {
    flex: 1 !important;                /* nav занимает всё между лого и actions */
    padding-left: 0 !important;
  }
  .ds-header__nav .nav__list {
    justify-content: space-between !important;  /* пункты равномерно по ширине nav */
    width: 100% !important;
  }
}
.ds-header__nav .nav__list-item { position: relative; margin: 0; }

.ds-header__nav .nav__list-item-href {
  font-family: var(--ds-font-body);
  font-weight: 500 !important;     /* Medium — менее жирный, чем телефон */
  font-size: 16px !important;       /* 16px как в дизайне */
  color: var(--ds-color-heading);
  text-decoration: none;
  padding: 4px 2px;
  transition: color .15s ease;
  white-space: nowrap;
  text-transform: none !important;
  letter-spacing: 0 !important;
  display: inline-block;
  position: relative;
}
.ds-header__nav .nav__list-item-href:hover { color: var(--ds-color-cta); }
.ds-header__nav .nav__list-item-href--active { color: var(--ds-color-cta); }

/* Убираем подчёркивание у пунктов меню */
/* 1) Легаси :before у активного пункта — 2px зелёная полоска */
.ds-header__nav .nav__list-item-href--active:before,
.ds-header__nav .nav__list-item-href--active::before {
  content: none !important;
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  background: transparent !important;
}
/* 2) Легаси border-bottom на span */
.ds-header__nav .nav__list-item-href span {
  border-bottom: none !important;
  padding-bottom: 0 !important;
}

/* Полностью убираем легаси-стрелку (она была кривая) — для ВСЕХ пунктов меню */
.ds-header__nav .nav__list-item-href:after {
  content: none !important;
  display: none !important;
}

/* Стрелка подменю — ТОЛЬКО для пунктов с подменю (Развлечения) */
.ds-header__nav .nav__list-item--have-sublist > .nav__list-item-href:after {
  content: '' !important;
  display: inline-block !important;
  position: static !important;        /* легаси ставило absolute — отменяем */
  width: 0 !important;
  height: 0 !important;
  border: none !important;
  border-left: 4px solid transparent !important;
  border-right: 4px solid transparent !important;
  border-top: 5px solid currentColor !important;
  transform: none !important;
  vertical-align: middle;
  margin: 0 0 2px 6px;                /* сдвиг под текст */
  opacity: .6;
}
.ds-header__nav .nav__sublist {
  list-style: none;
  margin: 0 !important;
  margin-top: 24px !important;            /* плашка на 24px ниже «Развлечения» */
  padding: 10px 0 !important;
  min-width: 220px;
  background-color: var(--ds-color-bg) !important;
  border-radius: var(--ds-radius-card);
  box-shadow: none;                      /* убрал тень с пунктов меню */
  position: absolute;
  top: 100% !important;
  left: -16px !important;
  display: none;
  z-index: 100;
  width: auto !important;
}

/* Hover-мост: невидимый псевдоэлемент сверху плашки, чтобы мышь не теряла hover */
.ds-header__nav .nav__sublist::before {
  content: '';
  position: absolute;
  bottom: 100%;
  left: 0;
  right: 0;
  height: 24px;
  z-index: 99;
}
.ds-header__nav .nav__list-item--have-sublist:hover .nav__sublist { display: block; }

/* Легаси ставил padding-right: 12px на пункт с подменю — уменьшили до 4px (место под стрелку) */
.ds-header__nav .nav__list-item--have-sublist .nav__list-item-href {
  padding-right: 4px !important;
}
.ds-header__nav .nav__sublist-item-href {
  display: block;
  font-family: var(--ds-font-body);
  font-size: 14px;
  font-weight: var(--ds-fw-button);
  color: var(--ds-color-text);
  text-decoration: none;
  padding: 8px 16px !important;        /* 8px сверху/снизу — пункты дышат, но компактно */
  line-height: 1.2 !important;
  transition: background-color .15s ease, color .15s ease;
  white-space: nowrap;
  min-width: 180px;
}

/* У пунктов выпадающего меню — убираем отступ снизу (легаси ставит 16px) */
.ds-header__nav .nav__sublist-item {
  margin-bottom: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.ds-header__nav .nav__sublist-item-href {
  padding: 8px 16px !important;       /* padding 8px сверху/снизу на самой ссылке */
}
.ds-header__nav .nav__sublist-item-href:hover {
  background-color: var(--ds-color-bg-muted);
  color: var(--ds-color-cta);
}

.ds-header__actions {
  display: flex;
  align-items: center;
  gap: 32px;                   /* 32px между телефоном / соцсетями / CTA */
  margin-left: auto;            /* прибить actions к правому краю контейнера */
}

/* Телефон в actions */
.header__phone {
  font-family: var(--ds-font-body);
  font-weight: 600 !important;     /* SemiBold — заметно жирнее */
  font-size: 16px !important;       /* 16px как в дизайне */
  color: var(--ds-color-heading);
  text-decoration: none;
  white-space: nowrap;
  transition: color .15s ease;
}
.header__phone:hover { color: var(--ds-color-cta); }

/* Соцсети в шапке — маленькие кружочки с SVG-иконками (как в подвале) */
.ds-header__socials {
  display: flex;
  align-items: center;
  gap: 14px;                   /* 14px между кружочками */
  list-style: none;
  margin: 0;
  padding: 0;
}
.ds-header__socials .social__item { list-style: none; margin: 0; padding: 0; }
.ds-header__socials .social__item-href {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  padding: 7px;                  /* отступы внутри, чтобы иконки не прижимались */
  box-sizing: border-box;
  border-radius: var(--ds-radius-pill);
  background-color: var(--ds-color-cta);
  color: var(--ds-color-text-invert);
  transition: background-color .15s ease;
  overflow: hidden;              /* чтобы иконка не вылезала */
}
.ds-header__socials .social__item-href:hover,
.ds-header__socials .social__item-href:focus-visible {
  background-color: var(--ds-color-cta-hover);   /* только смена цвета, никакого прыжка */
  outline: none;
  /* transform убран — иконка не прыгает */
}
/* Перебиваем inline fill и размеры на самом SVG И на детях */
.ds-header__socials .social__item-href svg,
.ds-header__socials .social__item-href svg *,
.ds-header__socials .social__item-href svg path,
.ds-header__socials .social__item-href svg g {
  width: 16px !important;       /* !important — перебиваем inline width="24" */
  height: 16px !important;
  min-width: 0 !important;      /* перебиваем inline min-width: 24px */
  max-width: 16px !important;
  max-height: 16px !important;
  fill: currentColor !important;
  flex-shrink: 0;
}

/* Бургер — 3 настоящих <span>, без псевдоэлементов */
.ds-header__burger {
  display: none;
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  cursor: pointer;
  width: 40px !important;
  height: 40px !important;
  min-width: 40px !important;
  min-height: 40px !important;
  position: relative !important;
  right: auto !important;
  top: auto !important;
  margin: 0 !important;
  flex-shrink: 0;
  box-sizing: border-box !important;
  align-self: center !important;
  outline: none !important;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 7px;
  margin-top: 2px;                   /* чуть-чуть опустить */
}
.ds-burger__line {
  display: block !important;
  width: 24px !important;
  min-width: 24px !important;
  max-width: 24px !important;
  height: 2px !important;
  min-height: 2px !important;
  max-height: 2px !important;
  background-color: var(--ds-color-heading) !important;
  border: none !important;
  border-radius: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  position: relative !important;
  left: 0 !important;
  right: 0 !important;
  top: 0 !important;
  bottom: 0 !important;
  transform: none !important;
  box-sizing: border-box !important;
  -webkit-transition: none !important;
  transition: none !important;
  flex-shrink: 0;
}
/* В состоянии is-open — превращаем в X */
.ds-header.is-open .ds-header__burger {
  gap: 0;
}
.ds-header.is-open .ds-burger__line {
  position: absolute;
  left: 8px;
  top: 50%;
  margin-top: -1px;
}
.ds-header.is-open .ds-burger__line:nth-child(1) {
  transform: rotate(45deg);
}
.ds-header.is-open .ds-burger__line:nth-child(2) {
  opacity: 0;
}
.ds-header.is-open .ds-burger__line:nth-child(3) {
  transform: rotate(-45deg);
}

/* Мобильная адаптация — телефон ВИДЕН */
@media (max-width: 1200px) {
  .header__phone {
    display: inline-block !important;
    font-size: 15px !important;
  }
}
@media (max-width: 1024px) {
  .ds-header__container {
    padding: 8px 16px;
    gap: 32px;                   /* одинаковые 32px между всеми flex-элементами */
    min-height: 64px;
    align-items: center !important;
    position: relative;
  }
  .ds-header__logo img { max-height: 40px; }

  /* Телефон — по центру шапки (absolute) */
  .header__phone {
    position: static !important;   /* планшет: телефон в потоке, рядом с CTA */
    left: auto !important;
    top: auto !important;
    right: auto !important;
    transform: none !important;
    z-index: 1;
  }
  .ds-header__actions { gap: 32px; margin-left: auto !important; }
  /* Бургер — к правому краю */
  .ds-header__burger { display: inline-flex !important; }
  .ds-header__socials { display: none !important; }
  .ds-header__actions .ds-btn--cta {
    padding: 8px 16px;
    font-size: 13px;
  }

  /* Слайд-меню */
  .ds-header__nav {
    position: fixed;
    inset: 64px 0 0 0;          /* на всю высоту под шапкой */
    background-color: var(--ds-color-bg);
    padding: 0;                  /* убрал padding — пункты меню прижаты к верху */
    transform: translateX(100%);
    transition: transform .25s ease;
    overflow-y: auto;
    z-index: 99;
    margin-right: 0;
    align-items: flex-start !important;   /* пункты сверху, а не по центру */
  }
  .ds-header__nav.is-open { transform: translateX(0); }
  .ds-header__nav .nav__list {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 8px 20px 20px;     /* padding теперь тут, а не на .nav */
  }
  .ds-header__nav .nav__list-item { border-bottom: 1px solid var(--ds-color-bg-muted); }
  .ds-header__nav .nav__list-item-href {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 0;            /* чуть больше для крупных пальцев */
    font-size: 18px;
  }
  .ds-header__nav .nav__list-item-href:after { margin-left: auto; }
  .ds-header__nav .nav__sublist {
    position: static;
    box-shadow: none;
    padding: 0 0 8px 16px;
    min-width: 0;
    display: block;
  }
  .ds-header__nav .nav__sublist-item-href {
    padding: 8px 0;
    font-size: 15px;
  }
}

/* Мобильная адаптация — телефон (<=640px) */
@media (max-width: 640px) {
  .ds-header__container {
    padding: 8px 12px;
    gap: 8px;
    min-height: 56px;
    align-items: center !important;
  }
  .ds-header__logo img { max-height: 32px; }
  .ds-header__nav { top: 56px; }
  .ds-header__actions .ds-btn--cta { display: none; }
  .ds-header__actions { gap: 8px; margin-left: 0 !important; }
  /* На мобиле телефон — по центру (absolute) */
  .header__phone {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    transform: translate(-50%, -50%) !important;
    z-index: 1;
    font-size: 15px !important;
  }
  .ds-header__burger { margin-left: auto !important; }
}

/* ============================================================
   4. Footer (3 колонки по дизайну)
   ============================================================ */
.ds-footer {
  background-color: #0D1A12;   /* темнее, чем --ds-color-cta-hover, ближе к дизайну */
  color: var(--ds-color-text-invert);
  padding: 48px 0 24px;
  font-family: var(--ds-font-body);
}
.ds-footer__container {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 24px;
}

/* Сетка: бренд (шире) / разделы / контакты */
.ds-footer__grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1.2fr;
  gap: 48px;
  padding-bottom: 32px;
}

/* Заголовки разделов — обычный регистр, без uppercase */
.ds-footer__col h4 {
  font-family: var(--ds-font-heading);
  font-weight: var(--ds-fw-heading);
  font-size: 18px;
  color: #FFFFFF;
  margin: 0 0 16px 0;
  text-transform: none;
  letter-spacing: 0;
}
/* Параграфы в подвале — сбрасываем дефолтные отступы, чтобы не было лишних промежутков */
.ds-footer p,
.ds-footer .footer__copy {
  margin: 0;
}

/* Колонка бренда */
.ds-footer__col--brand img,
.ds-footer__col--brand .logo img,
a.logo img[src*="logo-white"] {
  max-width: 70px !important;   /* !important — перебиваем inline style="max-width:140px" из include */
  height: auto;
  display: block;
  margin-bottom: 24px;          /* увеличенный отступ до текста */
}
.ds-footer__tagline {
  font-size: 14px;
  color: #B5B5B5 !important;    /* явно серый, чтобы было видно */
  line-height: 1.5;
  margin: 0 0 24px 0 !important;   /* отступ до соцсетей */
  max-width: 360px;
}

/* Соцсети в подвале — зелёные кружочки с белыми SVG-иконками */
.ds-footer__socials {
  display: flex;
  gap: 14px;                   /* 14px между кружочками */
  align-items: center;
  margin: 0;
  padding: 0;
  list-style: none;
  flex-wrap: wrap;
}
.ds-footer__socials .social__item {
  list-style: none;
  margin: 0;
  padding: 0;
}
.ds-footer__socials .social__item-href {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: var(--ds-radius-pill);
  background-color: var(--ds-color-cta);
  color: var(--ds-color-text-invert);
  transition: background-color .15s ease;
  text-decoration: none;
  transition: background-color .18s ease, transform .18s ease;
}
.ds-footer__socials .social__item-href:hover,
.ds-footer__socials .social__item-href:focus-visible {
  background-color: var(--ds-color-cta-hover);   /* только смена цвета, никакого прыжка */
  outline: none;
  /* transform убран — иконка не прыгает */
}
.ds-footer__socials .social__item-href svg {
  width: 22px;
  height: 22px;
  fill: currentColor !important;   /* перебиваем inline fill="#FFFFFF" — иконка белая по умолчанию */
}

/* Навигация — список ссылок */
.ds-footer__nav-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.ds-footer__nav-list-item { list-style: none; }
.ds-footer__nav-list-item-href {
  font-size: 14px;
  color: #B5B5B5 !important;    /* явно серый */
  text-decoration: none;
  transition: color .15s ease;
}
.ds-footer__nav-list-item-href:hover {
  color: var(--ds-color-bg-tag) !important;
}

/* Контакты */
.ds-footer__contacts {
  display: flex;
  flex-direction: column;
  gap: 10px;
  font-size: 14px;
  margin-bottom: 20px;
}
.ds-footer__contacts-item {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #B5B5B5 !important;    /* явно серый */
  text-decoration: none;
  transition: color .15s ease;
}
a.ds-footer__contacts-item:hover {
  color: var(--ds-color-bg-tag) !important;
}
.ds-footer__contacts-icon {
  flex-shrink: 0;
  width: 20px;
  height: 27px;       /* пропорция 24:32 для пина */
  display: block;
}
.ds-footer__cta {
  display: inline-flex;
}

/* Низ подвала — ссылки слева, копирайт справа (на всех экранах) */
.ds-footer__bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 32px;
  padding-top: 24px;
  font-size: 13px;
  color: #F1F1F1;
  opacity: 0.65;                /* серость как в дизайне */
  border-top: 1px solid rgba(255,255,255,.12);
  flex-wrap: wrap;
}
/* Hover на всю строку убран — меняется только конкретная ссылка при наведении */
.ds-footer__bottom-left {
  flex-shrink: 0;
  color: #F1F1F1;
}
.ds-footer__bottom-left .footer__copy,
.ds-footer__bottom-left p {
  margin: 0;
  color: #F1F1F1;
  font-size: 13px;
}
.ds-footer__bottom-right {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 18px 22px;
  justify-content: flex-end;       /* ссылки внутри блока — выровнены вправо */
  order: 1;                        /* блок ссылок — после копирайта (справа) */
}
.ds-footer__bottom a {
  white-space: nowrap;
  color: #F1F1F1;
  text-decoration: none;
  transition: color .15s ease;
}
.ds-footer__bottom a:hover {
  color: var(--ds-color-bg-tag);
}

@media (max-width: 1024px) {
  .ds-footer__grid { 
    grid-template-columns: 1fr auto;        /* brand слева, Разделы прижат к правому краю */
    gap: 36px; 
  }
  /* Колонка «Разделы» — текст по правому краю */
  .ds-footer__col--sections { text-align: right; }

  /* Низ: на планшете ссылки — слева */
  .ds-footer__bottom {
    flex-wrap: wrap;
  }
  .ds-footer__bottom-right {
    justify-content: flex-start !important;   /* ссылки внутри блока — к левому краю */
  }
}
@media (max-width: 640px) {
  .ds-footer { padding: 36px 0 20px; }
  .ds-footer__container { padding: 0 16px; }
  .ds-footer__grid { grid-template-columns: 1fr; gap: 28px; }
  .ds-footer__bottom { flex-direction: column; gap: 16px; align-items: center; text-align: center; }
  .ds-footer__bottom-left, .ds-footer__bottom-right { gap: 12px; align-items: center; justify-content: center; }
}


/* ============================================================
   MAIN PAGE — Hero / About / Rooms / Fun / Reviews / Help / Contacts
   Дизайн: rc-676b6804.apps.aigentura.ru
   ============================================================ */

/* ===== HERO (2-колоночный) ===== */
.ds-hero {
  background: var(--ds-color-bg);
  padding: 0 0 60px;            /* воздух даёт body padding-top */
}
.ds-hero__container {
  max-width: var(--ds-container-max);
  margin: 0 auto;
  padding: 0 20px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  align-items: stretch;
}
.ds-hero__left {
  border-radius: var(--ds-radius-card);
  overflow: hidden;
  position: relative;
  height: 586px;              /* фиксированная высота как в дизайне */
  aspect-ratio: auto;         /* не растягиваем квадратом */
}
.ds-hero__slider {
  width: 100%;
  height: 100%;
}
.ds-hero__slider .swiper-container,
.ds-hero__slider .swiper-wrapper,
.ds-hero__slider .swiper-slide {
  width: 100%;
  height: 100%;
}
.ds-hero__image {
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: bottom center;
}
.ds-hero__overlay {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 32px 28px;
  background: none;
}
.ds-hero__title {
  font-family: var(--ds-font-heading);
  font-size: 36px;
  font-weight: 800;
  line-height: 1.1;
  color: #FFFFFF;
  margin: 0;
  max-width: 500px;
}
.ds-hero__title--accent {
  color: var(--ds-color-bg-tag);       /* светло-зелёный как в дизайне */
  white-space: nowrap;                  /* вторая строка тоже не переносится */
}
.ds-hero__pagination {
  position: absolute !important;
  bottom: 14px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  z-index: 5;
  display: flex;
  gap: 6px;
}
.ds-hero__pagination .swiper-pagination-bullet {
  width: 8px;
  height: 8px;
  background: rgba(255,255,255,0.5);
  opacity: 1;
  margin: 0 !important;
  border-radius: 50%;
  transition: all 0.25s;
}
.ds-hero__pagination .swiper-pagination-bullet-active {
  background: #FFFFFF;
  width: 24px;
  border-radius: 4px;
}

/* Hero right (форма) */
.ds-hero__right {
  background: var(--ds-color-bg-muted);
  background-image: url('/tz/hero-pattern.png');  /* декоративный паттерн в правом нижнем углу */
  background-size: 100%;
  background-repeat: no-repeat;
  background-position: right bottom;
  border-radius: var(--ds-radius-card);
  padding: 36px 36px 40px;
  position: relative;
  overflow: hidden;
  min-height: 586px;          /* высота как у левой картинки */
  height: 586px;
  display: flex;              /* чтобы прижать форму к низу */
  flex-direction: column;
  justify-content: space-between;
}
/* Декоративный лист в правом нижнем углу (как в дизайне) */
.ds-hero__right::after {
  content: '';
  position: absolute;
  right: -40px;
  bottom: -40px;
  width: 200px;
  height: 200px;
  background: var(--ds-color-bg-tag);
  border-radius: 50%;
  opacity: 0.45;
  z-index: 0;
  pointer-events: none;
}
.ds-hero__right-inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  height: 100%;
  gap: 0;
  padding-top: 0;
  padding-bottom: 0;
}

/* Большой зазор между текстом и формой (как в дизайне) */
.ds-hero__form {
  margin-top: auto;
}
.ds-hero__quick {
  max-width: 100%;
}
.ds-hero__badge {
  display: inline-block;
  background: var(--ds-color-bg-tag);
  color: var(--ds-color-body);
  padding: 6px 18px;
  border-radius: 20px;        /* как в дизайне — пилюля */
  font-size: 16px;            /* как в дизайне */
  font-weight: 500;
  margin-bottom: 14px;
  float: right;                /* бейдж справа */
  margin-left: 14px;
  margin-top: 4px;
  clear: right;
}
.ds-hero__quick-text {
  display: block;
  clear: both;                 /* текст ПОД бейджем, не слева */
}
.ds-hero__subtitle {
  font-size: 18px;                /* как в дизайне — стандартный body-размер */
  font-weight: 400;
  color: var(--ds-color-body);
  line-height: 1.5;
  margin: 0;
  max-width: 70%;
}

.ds-hero__form {
  background: #FFFFFF;
  border-radius: var(--ds-radius-card);
  padding: 24px 24px 22px;
}
.ds-hero__form-title {
  font-family: var(--ds-font-heading);
  font-size: 22px;
  font-weight: 800;
  color: var(--ds-color-heading);
  margin: 0 0 18px;
}
.ds-hero__form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 14px;
}
.ds-hero__form-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  position: relative;
}
.ds-hero__form-label {
  font-size: 13px;
  color: var(--ds-color-body);
  font-weight: 500;
}
.ds-hero__form-input {
  font-family: var(--ds-font-body);
  font-size: 15px;
  font-weight: 500;                       /* жирнее */
  color: var(--ds-color-heading);
  background: var(--ds-color-bg-muted);
  border: none;
  border-radius: 12px;
  padding: 12px 40px 12px 14px;          /* справа место под иконку */
  width: 100%;
  box-sizing: border-box;
  transition: background-color 0.2s;
}
/* Иконка календаря справа — только у полей с датой */
.ds-hero__form-field--date::after {
  content: '';
  position: absolute;
  right: 14px;
  top: 50%;
  margin-top: 4px;
  width: 16px;
  height: 16px;
  background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23050505" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="18" rx="2"/><path d="M16 2v4M8 2v4M3 10h18"/></svg>') center/contain no-repeat;
  pointer-events: none;
  opacity: 0.6;
}
.ds-hero__form-input::placeholder {
  color: var(--ds-color-heading);
  font-weight: 500;
  opacity: 1;                             /* без бледности */
}
.ds-hero__form-input:focus {
  outline: none;
  background: #FFFFFF;
  box-shadow: 0 0 0 1px var(--ds-color-cta);
}
.ds-counter {
  display: flex;
  align-items: center;
  background: var(--ds-color-bg-muted);
  border-radius: 12px;
  padding: 0 8px;
  height: 44px;
  width: fit-content;
  min-width: 100%;
  justify-content: space-between;
}
/* В hero-форме счётчики (Взрослые, Дети) — белый фон как в дизайне */
.ds-hero__form .ds-counter {
  background: var(--ds-color-bg);
}
.ds-hero__form .ds-counter:hover {
  background: var(--ds-color-bg-muted);
}
.ds-counter__btn {
  background: transparent;
  border: none;
  font-size: 22px;
  color: var(--ds-color-cta);
  cursor: pointer;
  padding: 4px 12px;
  font-weight: 400;
  line-height: 1;
}
.ds-counter__btn:disabled {
  color: #B5B5B5;
  cursor: not-allowed;
}
.ds-counter__input {
  background: transparent;
  border: none;
  font-family: var(--ds-font-body);
  font-size: 15px;
  color: var(--ds-color-heading);
  text-align: center;
  width: 40px;
  padding: 0;
}
.ds-hero__form-submit {
  width: 100%;
  background: var(--ds-color-cta);
  color: #FFFFFF;
  font-family: var(--ds-font-body);
  font-size: 16px;
  font-weight: 500;
  border: none;
  border-radius: 28px;
  padding: 14px 24px;
  margin-top: 8px;
  cursor: pointer;
  transition: background-color 0.25s;
}
.ds-hero__form-submit:hover {
  background: var(--ds-color-cta-hover);
}

/* Hero responsive */
@media (max-width: 1024px) {
  .ds-hero {
    padding-bottom: 60px;
  }
  .ds-hero__container {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .ds-hero__left {
    height: auto;                 /* на мобиле — авто */
    aspect-ratio: 1 / 0.85;
  }
  .ds-hero__title {
    font-size: 28px;
  }
  .ds-hero__right {
    height: auto;                 /* на мобиле — авто */
    min-height: 0;
    padding: 24px;
  }
  .ds-hero__quick {
    max-width: 100%;
  }
}
@media (max-width: 640px) {
  .ds-hero {
    padding-bottom: 40px;
  }
  .ds-hero__form-row {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .ds-hero__title {
    font-size: 22px;
  }
  .ds-hero__form-title {
    font-size: 18px;
  }
}

/* ===== ABOUT (О нас + 6 features) ===== */
.ds-about {
  background: var(--ds-color-bg);
  padding: 80px 0;            /* единый ритм */
}
.ds-about__head {
  margin: 0 0 32px;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.ds-about__title {
  font-family: var(--ds-font-heading);
  font-size: 38px;
  font-weight: 800;
  color: var(--ds-color-heading);
  margin: 0;
  line-height: 1.15;
}
.ds-about__title-accent {
  white-space: nowrap;
}
.ds-about__head-actions {
  display: flex;
  align-items: center;
  gap: 32px;
  flex-shrink: 0;
}
.ds-about__more {
  font-family: var(--ds-font-body);
  font-size: 15px;
  color: var(--ds-color-body);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: color 0.2s;
}
.ds-about__more:hover {
  color: var(--ds-color-heading);
}
.ds-arrow {
  display: inline-block;
  transition: transform 0.2s;
}
.ds-about__more:hover .ds-arrow,
a:hover .ds-arrow {
  transform: translateX(3px);
}

.ds-about__grid {
  margin: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-auto-rows: 232px;
  gap: 20px;
}

/* feature card variants */
.ds-feature {
  border-radius: var(--ds-radius-card);
  overflow: hidden;
  background: var(--ds-color-bg-muted);
  position: relative;
  display: flex;
  flex-direction: column;
  transition: transform 0.25s, box-shadow 0.25s;
}
.ds-feature:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.06);
}
.ds-feature--text {
  padding: 28px 20px 32px;
  justify-content: space-between;
}
.ds-feature--text .ds-feature__body {
  display: flex;
  flex-direction: column;
  gap: 12px;
  height: 100%;
  position: relative;
}
.ds-feature--text .ds-feature__head {
  display: flex;
  justify-content: flex-start;     /* по умолчанию — тег слева */
  align-items: center;              /* выравнивание по верху — выровнять плашку и h3 */
  min-height: 28px;
  gap: 12px;
}
.ds-feature--text .ds-feature__head--right {
  justify-content: space-between;   /* у карточек с заголовком — тег справа */
}
.ds-feature--text .ds-feature__head--left {
  justify-content: flex-end;     /* у карточек без заголовка — тег справа */
}
.ds-feature--text .ds-feature__title--inline {
  margin: 0;
  font-size: 26px;
  font-weight: 800;
  line-height: 1.1;
  align-self: flex-start;            /* прижать к верху плашки */
}
.ds-feature--text .ds-feature__title {
  font-family: var(--ds-font-heading);
  font-size: 26px;
  font-weight: 800 !important;        /* жирный, перебиваем легаси */
  color: var(--ds-color-heading);
  margin: 0;
  line-height: 1.1;
}
.ds-feature--text .ds-feature__text {
  font-size: 16px;                /* как в дизайне — стандартный body */
  color: var(--ds-color-body);
  line-height: 1.5;
  margin: 0;
  margin-top: auto;                /* текст прижат к низу карточки */
}
.ds-feature__tag {
  display: inline-block;
  background: var(--ds-color-bg-tag);
  color: var(--ds-color-heading);
  padding: 4px 14px;
  border-radius: 16px;
  font-size: 16px;                /* уже стояло */
  font-weight: 500;
  align-self: flex-start;
}
.ds-feature__tag strong { font-weight: 600; }
.ds-feature--image {
  position: relative;
  flex: 1;                            /* растянуть на всю высоту flex-карточки */
  min-height: 0;
  overflow: hidden;
  background-color: #000;             /* fallback на случай пустой картинки */
}
.ds-feature--image .ds-feature__image {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center bottom; /* картинка прижата к низу */
}
.ds-feature--image .ds-feature__image--shift-down {
  background-position: center bottom;
  transform: translateY(8%);          /* шляпа чуть ниже для композиции */
}

.ds-feature--image .ds-feature__tag {
  position: absolute;
  top: 20px;
  left: 20px;
  right: 20px;
  z-index: 2;
  background: transparent !important;
  color: #FFFFFF;
  font-family: var(--ds-font-body);
  font-size: 18px;
  font-weight: 400;
  line-height: 1.3;
  padding: 0;
  border-radius: 0;
  max-width: calc(100% - 40px);
}
.ds-feature--image::after { display: none; }
.ds-feature--image .ds-feature__body {
  position: absolute;
  top: 0;                           /* текст сверху как в дизайне */
  left: 0;
  right: 0;
  padding: 24px 28px 22px;
  z-index: 2;
  color: #FFFFFF;
}
.ds-feature--image .ds-feature__title {
  font-family: var(--ds-font-heading);
  font-size: 18px;
  font-weight: 800;
  color: #FFFFFF;
  margin: 0 0 6px;
  line-height: 1.2;
}
.ds-feature--image .ds-feature__text {
  font-size: 18px;                /* как в дизайне */
  color: rgba(255,255,255,0.9);
  line-height: 1.4;
  margin: 0;
}

.ds-feature--image .ds-feature__text--overlay {
  position: absolute;
  top: 20px;
  left: 20px;
  right: 20px;
  z-index: 2;
  max-width: calc(100% - 40px);
}

/* About responsive */
@media (max-width: 1024px) {
  .ds-about {
    padding: 50px 0 50px;
  }
  .ds-about__title {
    font-size: 30px;
  }
  .ds-about__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 640px) {
  .ds-about__head {
    flex-direction: column;
    gap: 16px;
    margin-bottom: 28px;
  }
  .ds-about__title {
    font-size: 24px;
  }
  .ds-about__grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .ds-feature {
    min-height: 200px;
  }
}

/* ===== ROOMS (5 номеров) ===== */
.ds-rooms {
  background: var(--ds-color-bg);        /* белая секция, как в дизайне */
  padding: 80px 0;
}
.ds-rooms__subtitle {
  font-size: 18px;
  font-weight: 400;
  color: var(--ds-color-body);
  margin: 24px 0 32px;                  /* ещё больше воздуха сверху */
}
.ds-rooms__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.ds-rooms__viewport {
  overflow: hidden;                /* обрезаем карточки за пределами */
  width: 100%;
}
.ds-rooms__track {
  display: flex;
  gap: 24px;
  transition: transform 0.4s ease;
  will-change: transform;
}
.ds-rooms__track .ds-room-card {
  flex: 0 0 auto;                  /* ширину ставит JS */
  flex-shrink: 0;
  max-width: none;                 /* снимаем старый grid max-width */
  box-sizing: border-box;
}
.ds-room-card {
  background: var(--ds-color-bg-muted);  /* серые карточки как в дизайне */
  border-radius: var(--ds-radius-card);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform 0.25s, box-shadow 0.25s;
  padding: 20px;                         /* поля вокруг карточки */
  gap: 0;                                /* убрал стандартный gap */
}
.ds-room-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.06);
}
.ds-room-card__image {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  background-size: cover;
  background-position: center;
  position: relative;
  border-radius: 20px;                   /* скругление картинки */
  overflow: hidden;                      /* чтобы tag не вылезал */
}
.ds-room-card__body {
  padding: 20px 4px 4px;                 /* отступ сверху под картинкой */
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 1;
}
.ds-room-card__title {
  font-family: var(--ds-font-heading);
  font-size: 19px;
  font-weight: 800;
  color: var(--ds-color-heading);
  margin: 0;
  line-height: 1.2;
}
.ds-room-card__title a {
  color: inherit;
  text-decoration: none;
  transition: color 0.2s;
}
.ds-room-card__title a:hover {
  color: var(--ds-color-cta);
}
.ds-room-card__text {
  font-size: 16px;
  color: var(--ds-color-body);
  line-height: 1.45;
  margin: 0;
  flex: 1;
}
.ds-room-card__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-top: 8px;
  margin-top: auto;
}
.ds-room-card__more {
  font-size: 14px;
  color: var(--ds-color-heading);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-weight: 500;
  transition: color 0.2s;
}
.ds-room-card__more:hover {
  color: var(--ds-color-cta);
}
.ds-room-card__price {
  font-size: 15px;
  font-weight: 700;
  color: var(--ds-color-heading);
  margin: 0;
  white-space: nowrap;
}
.ds-rooms .container {
  max-width: var(--ds-container-max);
  margin: 0 auto;
  padding: 0 20px;
}
.ds-rooms__title {
  font-family: var(--ds-font-heading);
  font-size: 38px;
  font-weight: 800;
  color: var(--ds-color-heading);
  margin: 0;                              /* убрал нижний margin, чтобы только subtitle давал отступ */
  line-height: 1.15;
}
.ds-rooms__subtitle {
  font-size: 18px;            /* как .ds-hero__subtitle */
  font-weight: 400;
  color: var(--ds-color-body);
  margin: 0 0 40px;
  padding-top: 30px;                   /* отступ от заголовка */
}
.ds-rooms__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 24px;
}
.ds-rooms__more {
  font-family: var(--ds-font-body);
  font-size: 15px;
  color: var(--ds-color-heading);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: 500;
  transition: color 0.2s;
}
.ds-rooms__more:hover {
  color: var(--ds-color-cta);
}
.ds-rooms__nav {
  display: flex;
  align-items: center;
  gap: 16px;
}
.ds-nav-btn {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1.5px solid #B5B5B5;
  background: transparent;
  color: var(--ds-color-heading);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
}
.ds-nav-btn:hover {
  background: var(--ds-color-cta);
  border-color: var(--ds-color-cta);
  color: #FFFFFF;
}
.ds-rooms__page {
  font-size: 15px;
  color: var(--ds-color-body);
  min-width: 30px;
  text-align: center;
}

.ds-rooms__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

/* Rooms responsive */
@media (max-width: 1024px) {
  .ds-rooms {
    padding: 50px 0 50px;
  }
  .ds-rooms__title {
    font-size: 30px;
  }
  .ds-rooms__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 640px) {
  .ds-rooms__title {
    font-size: 24px;
  }
  .ds-rooms__head {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }
  .ds-rooms__grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}

/* ===== DATE FILTER BAR (между rooms и fun) ===== */
.ds-filter {
  background: var(--ds-color-bg);
  padding: 80px 0;                  /* единый ритм со всеми секциями */
}
.ds-filter__form {
  background: var(--ds-color-bg-muted);
  border-radius: 20px;
  padding: 32px 36px;               /* выше — как в дизайне */
}
.ds-filter__row {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr auto;
  gap: 20px;
  align-items: end;
}
.ds-filter__field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.ds-filter__label {
  font-size: 13px;
  color: var(--ds-color-text);
  font-weight: 500;
}
.ds-filter__input {
  font-family: var(--ds-font-body);
  font-size: 15px;
  font-weight: 500;
  color: var(--ds-color-heading);
  background: var(--ds-color-bg);         /* белый фон, как в дизайне */
  border: none;
  border-radius: 12px;
  padding: 14px 16px;
  width: 100%;
  box-sizing: border-box;
}
.ds-filter__input::placeholder {
  color: var(--ds-color-heading);
  font-weight: 500;
  opacity: 1;
}
.ds-filter__input:focus {
  outline: none;
  box-shadow: 0 0 0 1.5px var(--ds-color-cta);
  background: var(--ds-color-bg);
}
.ds-filter .ds-counter {
  background: var(--ds-color-bg-muted);  /* серый фон */
  height: 44px;
}
.ds-filter__select {
  font-family: var(--ds-font-body);
  font-size: 15px;
  font-weight: 500;
  color: var(--ds-color-heading);
  background: var(--ds-color-bg)              /* белый фон, как в дизайне */
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none'><path d='M1 1l5 5 5-5' stroke='%23050505' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>")
    no-repeat right 16px center;
  background-size: 12px 8px;
  border: none;
  border-radius: 12px;
  padding: 14px 38px 14px 16px;
  width: 100%;
  box-sizing: border-box;
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
  height: 48px;
}
.ds-filter__select:focus {
  outline: none;
  box-shadow: 0 0 0 1.5px var(--ds-color-cta);
}
.ds-filter__submit {
  background: var(--ds-color-cta);
  color: var(--ds-color-bg);
  font-family: var(--ds-font-body);
  font-size: 15px;
  font-weight: 500;
  border: none;
  border-radius: 28px;
  padding: 13px 28px;
  cursor: pointer;
  transition: background-color 0.2s;
  white-space: nowrap;
  height: 44px;
}
.ds-filter__submit:hover {
  background: var(--ds-color-cta-hover);
}

@media (max-width: 1024px) {
  .ds-filter__row {
    grid-template-columns: 1fr 1fr;
    gap: 14px;
  }
  .ds-filter__submit {
    grid-column: 1 / -1;
  }
}
@media (max-width: 640px) {
  .ds-filter__row {
    grid-template-columns: 1fr;
  }
  .ds-filter__form {
    padding: 18px 20px;
  }
}

/* ===== FUN (развлечения, 2 карточки) ===== */
.ds-fun {
  background: var(--ds-color-bg);
  padding: 80px 0;
}
.ds-fun .container {
  max-width: var(--ds-container-max);
  margin: 0 auto;
  padding: 0 20px;
}
.ds-fun__head {
  margin-bottom: 32px;
}
.ds-fun__head-left {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  width: 100%;
}
.ds-fun__tag {
  display: inline-block;
  background: var(--ds-color-bg-tag);
  color: var(--ds-color-body);
  padding: 6px 18px;
  border-radius: 18px;
  font-size: 16px;
  font-weight: 500;
  margin-bottom: 10px;
}
.ds-fun__title {
  font-family: var(--ds-font-heading);
  font-size: 38px;
  font-weight: 800;
  color: var(--ds-color-heading);
  margin: 0;
  line-height: 1.15;
  text-align: left;
}
.ds-fun__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
.ds-fun-card {
  background: var(--ds-color-bg-muted);
  border-radius: var(--ds-radius-card);
  overflow: hidden;
  min-height: 300px;
  transition: transform 0.25s, box-shadow 0.25s;
  position: relative;
  padding: 32px;                    /* поля вокруг карточки — больше */
  gap: 24px;                       /* отступ между текстом и картинкой */
}
.ds-fun-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.06);
}


.ds-fun-card__leaf {
  position: absolute;
  top: 36px;                       /* сдвинут вниз от верхнего края */
  left: 36px;
  width: 24px;
  height: 16px;
  color: var(--ds-color-bg-tag);
  z-index: 2;
}
.ds-fun-card__body {
  padding: 8px;                    /* без верхнего отступа — текст у верха картинки */
  display: flex;
  flex-direction: column;
  gap: 14px;
  justify-content: flex-start;
  align-self: stretch;
  flex: 1 1 50%;                   /* body тянется на 50% ширины и 100% высоты */
  min-height: 0;
}
.ds-fun-card__note {
  display: block;
  font-style: italic;              /* курсив */
  padding-top: 0;                  /* без верхнего отступа */
  margin-top: 0;                   /* без внешнего верхнего отступа */
  font-size: 16px;
  color: var(--ds-color-body);
  line-height: 1.5;
}
.ds-fun-card__more {
  display: none;                    /* в дизайне кнопки "Подробнее" нет */
}
.ds-fun-card__title {
  font-family: var(--ds-font-heading);
  font-size: 20px;
  font-weight: 800;
  color: var(--ds-color-heading);
  margin: 0;
  line-height: 1.2;
}
.ds-fun-card__text {
  font-size: 16px;
  color: var(--ds-color-body);
  line-height: 1.5;
  margin: 0;
}
.ds-fun-card__image {
  background-size: cover;
  background-position: center;
  min-height: 360px;
  border-radius: 20px;
  align-self: stretch;
  width: 100%;
  display: block;
}

/* Fun responsive */
@media (max-width: 1024px) {
  .ds-fun {
    padding: 50px 0 50px;
  }
  .ds-fun__title {
    font-size: 30px;
  }
  .ds-fun__grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 640px) {
  .ds-fun-card {
    min-height: auto;
  }
  .ds-fun-card__image {
    aspect-ratio: 16 / 10;
  }
  .ds-fun__title {
    font-size: 24px;
  }
}

/* ===== REVIEWS ===== */
.ds-reviews {
  background: var(--ds-color-bg);    /* белая секция, как в дизайне */
  padding: 80px 0;
}
.ds-reviews .container {
  max-width: var(--ds-container-max);
  margin: 0 auto;
  padding: 0 20px;
}
.ds-reviews__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 32px;
  flex-wrap: wrap;
  gap: 16px;
}
.ds-reviews__title {
  font-family: var(--ds-font-heading);
  font-size: 38px;
  font-weight: 800;
  color: var(--ds-color-heading);
  margin: 0;
  line-height: 1.15;
}
.ds-reviews__more {
  font-family: var(--ds-font-body);
  font-size: 15px;
  color: var(--ds-color-heading);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: 500;
  transition: color 0.2s;
}
.ds-reviews__more:hover {
  color: var(--ds-color-cta);
}
.ds-reviews__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}
.ds-review-card {
  background: var(--ds-color-bg-muted);  /* серые карточки на белой секции — как в дизайне */
  border-radius: var(--ds-radius-card);
  padding: 32px 28px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-height: 240px;
}
.ds-review-card__stars {
  display: flex;
  gap: 4px;
  color: var(--ds-color-cta);
  font-size: 20px;
  line-height: 1;
  margin-bottom: 4px;
}
.ds-review-card__star {
  color: var(--ds-color-cta);
}
.ds-review-card__text {
  font-size: 18px;
  color: var(--ds-color-body);
  line-height: 1.5;
  margin: 0;
  flex: 1;
  display: -webkit-box;
  -webkit-line-clamp: 5;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.ds-review-card__fio {
  font-family: var(--ds-font-heading);
  font-size: 18px;
  font-weight: 800 !important;
  color: var(--ds-color-heading);
  margin: 0;
  margin-top: auto;                /* имя прижато к низу карточки */
}
.ds-review-card__subject {
  font-size: 13px;
  color: var(--ds-color-body);
  margin: -6px 0 0;
  opacity: 0.7;
}

/* Reviews responsive */
@media (max-width: 1024px) {
  .ds-reviews {
    padding: 50px 0 50px;
  }
  .ds-reviews__title {
    font-size: 30px;
  }
  .ds-reviews__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 640px) {
  .ds-reviews__title {
    font-size: 24px;
  }
  .ds-reviews__grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }
}

/* ===== HELP FORM (Поможем выбрать номер) ===== */
.ds-help {
  background: var(--ds-color-bg);       /* белая секция */
  padding: 80px 0;
}
.ds-help .container {
  max-width: var(--ds-container-max);
  margin: 0 auto;
  padding: 0 20px;
}
.ds-help__card {
  background: var(--ds-color-bg-muted); /* серая карточка внутри */
  border-radius: var(--ds-radius-card);
  padding: 48px 56px;
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 60px;
  align-items: center;
}
.ds-help__title {
  font-family: var(--ds-font-heading);
  font-size: 32px;
  font-weight: 800;
  color: var(--ds-color-heading);
  margin: 0 0 16px;
  line-height: 1.15;
}
.ds-help__text {
  font-size: 18px;            /* как .ds-hero__subtitle */
  font-weight: 400;
  color: var(--ds-color-body);
  line-height: 1.5;
  margin: 0;
}
.ds-help__form {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.ds-help__form-input {
  font-family: var(--ds-font-body);
  font-size: 15px;
  color: var(--ds-color-heading);
  background: #FFFFFF;
  border: 1px solid transparent;
  border-radius: 12px;
  padding: 16px 18px;
  width: 100%;
  box-sizing: border-box;
  transition: border-color 0.2s;
}
.ds-help__form-input:focus {
  outline: none;
  border-color: var(--ds-color-cta);
}
.ds-help__form-check {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  color: var(--ds-color-body);
  cursor: pointer;
}
.ds-help__form-check input {
  width: 16px;
  height: 16px;
  accent-color: var(--ds-color-cta);
}
.ds-help__form-submit {
  background: var(--ds-color-cta);
  color: #FFFFFF;
  font-family: var(--ds-font-body);
  font-size: 16px;
  font-weight: 500;
  border: none;
  border-radius: 28px;
  padding: 16px 24px;
  cursor: pointer;
  transition: background-color 0.25s;
  margin-top: 4px;
}
.ds-help__form-submit:hover {
  background: var(--ds-color-cta-hover);
}

/* Help responsive */
@media (max-width: 1024px) {
  .ds-help__card {
    grid-template-columns: 1fr;
    gap: 32px;
    padding: 32px 28px;
  }
  .ds-help__title {
    font-size: 26px;
  }
}
@media (max-width: 640px) {
  .ds-help {
    padding: 40px 0 50px;
  }
  .ds-help__title {
    font-size: 22px;
  }
  .ds-help__card {
    padding: 24px 20px;
  }
}

/* ===== CONTACTS BLOCK ===== */
.ds-contacts {
  background: var(--ds-color-bg);
  padding: 80px 0;
}
.ds-contacts .container {
  max-width: var(--ds-container-max);
  margin: 0 auto;
  padding: 0 20px;
}
.ds-contacts__card {
  background: var(--ds-color-bg-muted);
  border-radius: var(--ds-radius-card);
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  align-items: stretch;
  overflow: hidden;
}
.ds-contacts__info {
  padding: 48px 56px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  align-items: flex-start;       /* tag и соцсети — по естественной ширине */
}
.ds-contacts__tag {
  display: inline-block;
  background: var(--ds-color-bg-tag);
  color: var(--ds-color-body);
  padding: 6px 18px;
  border-radius: 18px;
  font-size: 16px;            /* как в дизайне */
  font-weight: 500;
  margin-bottom: 14px;
}
.ds-contacts__title {
  font-family: var(--ds-font-heading);
  font-size: 32px;
  font-weight: 800;
  color: var(--ds-color-heading);
  margin: 0 0 18px;
  line-height: 1.15;
}
.ds-contacts__list {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin: 0 0 8px;
}
.ds-contacts__item {
  font-size: 18px;
  line-height: 1.5;
  color: var(--ds-color-heading);
}
.ds-contacts__item a {
  color: var(--ds-color-heading);
  text-decoration: none;
  transition: color 0.2s;
}
.ds-contacts__item a:hover {
  color: var(--ds-color-cta);
}
.ds-contacts__text {
  font-size: 18px;
  font-weight: 400;
  color: var(--ds-color-body);    /* как .ds-hero__subtitle */
  line-height: 1.5;
  margin: 8px 0 0;
  max-width: 90%;
}
.ds-contacts__socials {
  display: flex;
  gap: 12px;
  margin-top: 28px;               /* увеличенный воздух от текста */
}
.ds-contacts__info {
  display: flex;
  flex-direction: column;
  gap: 12px;
  font-size: 15px;
  color: var(--ds-color-body);
  margin-bottom: 24px;
}
.ds-contacts__info-item {
  display: flex;
  align-items: flex-start;
  gap: 8px;
}
.ds-contacts__info-item b {
  color: var(--ds-color-heading);
  margin-right: 4px;
}
.ds-contacts__socials {
  display: flex;
  gap: 10px;
  margin-bottom: 20px;
}
.ds-contacts__social {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--ds-color-cta);
  color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  transition: background-color 0.2s;
  flex-shrink: 0;
}
.ds-contacts__social svg {
  display: block;
  width: 24px;
  height: 24px;
  color: #FFFFFF;             /* SVG наследует белый */
}
.ds-contacts__social:hover {
  background: var(--ds-color-cta-hover);
}
.ds-contacts__cta {
  display: inline-block;
  background: var(--ds-color-cta);
  color: #FFFFFF;
  padding: 14px 28px;
  border-radius: 28px;
  text-decoration: none;
  font-size: 15px;
  font-weight: 500;
  transition: background-color 0.2s;
}
.ds-contacts__cta:hover {
  background: var(--ds-color-cta-hover);
}
.ds-contacts__map {
  border-radius: var(--ds-radius-card);
  overflow: hidden;
  min-height: 360px;
  background: #FFFFFF;
  margin: 32px;                    /* поля вокруг карты как в дизайне */
}
.ds-contacts__map iframe {
  display: block;                  /* убирает inline-баг и белую полосу снизу */
  width: 100%;
  vertical-align: top;
}
.ds-contacts__map iframe {
  width: 100%;
  height: 100%;
  min-height: 360px;
  border: none;
  display: block;
  vertical-align: top;             /* убирает белую полосу снизу */
}

/* Contacts responsive */
@media (max-width: 1024px) {
  .ds-contacts__card {
    grid-template-columns: 1fr;
    gap: 28px;
    padding: 28px 24px;
  }
  .ds-contacts__title {
    font-size: 26px;
  }
}
@media (max-width: 640px) {
  .ds-contacts {
    padding: 40px 0 50px;
  }
  .ds-contacts__title {
    font-size: 22px;
  }
  .ds-contacts__card {
    padding: 24px 20px;
  }
  .ds-contacts__map,
  .ds-contacts__map iframe {
    min-height: 280px;
  }
}

/* ============================================
   Внутренние страницы — общие
   ============================================ */
/* Скрыть старые блоки Битрикса на внутренних страницах */
.page--rooms .main__top,
.page--rooms .main__aside,
.page--rooms .filter-top,
.page--rooms .main__breadcrumbs,
.page--rooms .main__title,
.page--gallery .main__top,
.page--gallery .main__breadcrumbs,
.page--gallery .main__title { display: none !important; }
.page--gallery { padding-top: 0 !important; }
.page--gallery .main { padding: 0 !important; background: #fff !important; }
.page--gallery .ds-gallery__hero { padding-top: 180px !important; }   /* компенсация фиксированной шапки */
.page--rooms .main__content > .container > .row > .col-lg-4,
.page--rooms .main__content > .container > .row > .col-xl-3 { display: none !important; }
.page--rooms .main__content > .container > .row > .col-lg-8,
.page--rooms .main__content > .container > .row > .col-xl-9 { width: 100% !important; max-width: 100% !important; flex: 0 0 100% !important; }
.page--rooms .main__right > *:not(.ds-rooms-page) { display: none !important; }
.page--rooms .main { padding: 0 !important; background: #fff !important; }

.ds-rooms-page { padding: 60px 0 100px; background: #fff; }
.ds-rooms-page__tag { margin-bottom: 24px; }
.ds-rooms-page__title {
  font-family: var(--ds-font-heading);
  font-weight: 800;
  font-size: 56px;
  line-height: 1.1;
  color: var(--ds-color-heading);
  margin: 0 0 16px;
}
.ds-rooms-page__subtitle {
  font-size: 18px;
  line-height: 1.5;
  color: var(--ds-color-body);
  margin: 0 0 40px;
}
.ds-rooms-page__filter {
  background: var(--ds-color-bg-muted);
  border-radius: 24px;
  padding: 24px 32px;
  margin-bottom: 48px;
}
.ds-rooms-page__filter-row {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr auto;
  gap: 16px;
  align-items: end;
}
.ds-rooms-page__field { display: flex; flex-direction: column; gap: 6px; }
.ds-rooms-page__field-label {
  font-size: 13px;
  color: var(--ds-color-body);
  padding-left: 16px;
}
.ds-rooms-page__field-input {
  width: 100%;
  background: #fff;
  border: 1px solid #E5E5E5;
  border-radius: 12px;
  padding: 14px 16px;
  font-family: var(--ds-font-body);
  font-size: 16px;
  color: var(--ds-color-heading);
}
.ds-rooms-page__field-input:focus { outline: 2px solid var(--ds-color-cta); }
.ds-rooms-page__select {
  appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'><path d='M6 9l6 6 6-6' stroke='%234A4A4A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat: no-repeat;
  background-position: right 16px center;
  background-size: 16px;
  padding-right: 44px;
  cursor: pointer;
}
.ds-rooms-page__filter-btn {
  height: 52px;
  padding: 14px 28px;
  white-space: nowrap;
}

.ds-rooms-page__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-bottom: 60px;
}
.ds-rooms-page .ds-room-card {
  background: var(--ds-color-bg-muted);
  border-radius: 24px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  border: 1px solid #ECECEC;
  box-shadow: 0 2px 8px rgba(0,0,0,0.03);
}
.ds-rooms-page .ds-room-card__image {
  display: block;
  position: relative;
  aspect-ratio: 1.1;
  background-size: cover;
  background-position: center;
  background-color: #ddd;
  margin: 0;
  border-radius: 16px;
  overflow: hidden;
  width: 100%;
}
.ds-room-card__head {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 16px;
}
.ds-room-card__head h4 { margin: 0; }
.ds-room-card__head .ds-room-card__title { flex: 1; }
.ds-room-card__head .ds-room-card__tag { margin-left: auto; }
.ds-room-card__tag {
  display: inline-block;
  flex-shrink: 0;
  background: var(--ds-color-bg-tag);
  color: var(--ds-color-heading);
  font-family: var(--ds-font-body);
  font-weight: 600;
  font-size: 13px;
  padding: 6px 14px;
  border-radius: 100px;
}
.ds-rooms-page .ds-room-card__tag--lux {
  background: #FFF6BF;
}
.ds-rooms-page .ds-room-card__body {
  padding: 20px 0 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 1;
}
.ds-rooms-page .ds-room-card__title {
  font-family: var(--ds-font-heading);
  font-weight: 800;
  font-size: 22px;
  line-height: 1.2;
  margin: 0;
  color: var(--ds-color-heading);
}
.ds-rooms-page .ds-room-card__text {
  font-size: 15px;
  line-height: 1.5;
  color: var(--ds-color-body);
  margin: 0;
  min-height: 67.5px;             /* 3 строки × 22.5px line-height — выравнивает features */
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.ds-rooms-page .ds-room-card__features {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: start;
  gap: 8px 12px;
  font-size: 13px;
  color: var(--ds-color-body);
  min-height: 274px;
}
.ds-rooms-page .ds-room-card__features li {
  position: relative;
  padding-left: 14px;
}
.ds-rooms-page .ds-room-card__features li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 8px;
  width: 4px;
  height: 4px;
  background: var(--ds-color-cta);
  border-radius: 50%;
}
.ds-rooms-page .ds-room-card__meta {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid #eee;
}
.ds-rooms-page .ds-room-card__meta-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #F5F5F5;
  border: 0;
  border-radius: 100px;
  padding: 6px 14px;
  font-size: 13px;
  color: var(--ds-color-heading);
}
.ds-rooms-page .ds-room-card__meta-item svg { color: var(--ds-color-cta); }
.ds-rooms-page .ds-room-card__bottom {
  margin-top: auto;
  padding-top: 12px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}
.ds-rooms-page .ds-room-card__more {
  font-family: var(--ds-font-body);
  font-size: 15px;
  font-weight: 500;
  color: var(--ds-color-cta);
  text-decoration: none;
}
.ds-rooms-page .ds-room-card__more:hover { color: var(--ds-color-cta-hover); }
.ds-rooms-page .ds-room-card__price {
  font-family: var(--ds-font-body);
  font-weight: 700;
  font-size: 18px;
  color: var(--ds-color-heading);
  margin: 0;
}

.ds-rooms-page__tariff {
  background: var(--ds-color-bg-muted);
  border-radius: 32px;
  padding: 56px 32px;
  text-align: center;
}
.ds-rooms-page__tariff-title {
  font-family: var(--ds-font-heading);
  font-weight: 800;
  font-size: 40px;
  line-height: 1.1;
  margin: 0 0 16px;
  color: var(--ds-color-heading);
}
.ds-rooms-page__tariff-text {
  font-size: 17px;
  line-height: 1.5;
  color: var(--ds-color-body);
  margin: 0 auto 32px;
  max-width: 640px;
}

@media (max-width: 1024px) {
  .ds-rooms-page__grid { grid-template-columns: repeat(2, 1fr); }
  .ds-rooms-page__title { font-size: 40px; }
  .ds-rooms-page__filter-row { grid-template-columns: 1fr 1fr; }
  .ds-rooms-page__filter-btn { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .ds-rooms-page__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .ds-rooms-page__title { font-size: 32px; }
  .ds-rooms-page__filter-row { grid-template-columns: 1fr; }
  .ds-rooms-page__tariff { padding: 40px 20px; }
  .ds-rooms-page__tariff-title { font-size: 28px; }
}

/* ============================================
   Внутренние страницы — /gallery/
   ============================================ */
.ds-gallery { background: #fff; }
.ds-gallery__hero {
  position: relative;
  background: #050505 url('/upload/iblock/gallery-hero-v2.jpg') center/cover no-repeat;
  padding: 80px 0 100px;
  color: #fff;
  isolation: isolate;                  /* чтобы ::before был внутри */
}
.ds-gallery__hero::before { display: none; }
.ds-gallery__hero .container { position: relative; z-index: 1; }
.ds-gallery__hero-tag {
  display: inline-block;
  font-family: var(--ds-font-body);
  font-weight: 700;
  font-size: 14px;
  color: #EBFEC4;
  letter-spacing: 0.05em;
  margin-bottom: 24px;
  text-transform: uppercase;
}
.ds-gallery__hero-title {
  font-family: var(--ds-font-heading);
  font-weight: 800;
  font-size: 64px;
  line-height: 1.05;
  color: #fff;
  margin: 0 0 20px;
}
.ds-gallery__hero-subtitle {
  font-size: 18px;
  line-height: 1.5;
  color: rgba(255,255,255,0.7);
  margin: 0;
}

.ds-gallery__content { padding: 60px 0 100px; }
.ds-gallery__filters {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: center;
  margin-bottom: 48px;
}
.ds-gallery__filter {
  font-family: var(--ds-font-body);
  font-weight: 500;
  font-size: 16px;
  color: var(--ds-color-heading);
  background: transparent;
  border: 1px solid #E5E5E5;
  border-radius: 100px;
  padding: 12px 28px;
  cursor: pointer;
  transition: all .2s ease;
}
.ds-gallery__filter:hover {
  border-color: var(--ds-color-cta);
  color: var(--ds-color-cta);
}
.ds-gallery__filter.is-active {
  background: var(--ds-color-cta);
  color: #fff;
  border-color: var(--ds-color-cta);
}

.ds-gallery__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: 360px;              /* вертикальные картинки */
  grid-auto-flow: dense;              /* плотная упаковка */
  gap: 4px;
}
.ds-gallery__item {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: 12px;
  background: #f1f1f1;
  width: 100%;
  height: 100%;
  transition: transform .3s ease;
  will-change: transform;
}
.ds-gallery__item img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ds-gallery__item:hover { transform: scale(1.02); z-index: 2; }
.ds-gallery__item.is-hidden { display: none; }
.ds-gallery__img {
  width: 100%;
  height: auto;                        /* натуральные пропорции */
  display: block;
}

@media (max-width: 1024px) {
  .ds-gallery__grid { columns: 3; }
  .ds-gallery__hero-title { font-size: 48px; }
  .ds-gallery__hero-tag { letter-spacing: 0; }
}
@media (max-width: 640px) {
  .ds-gallery__grid { columns: 2; column-gap: 4px; }
  .ds-gallery__item { margin-bottom: 4px; border-radius: 8px; }
  .ds-gallery__hero-title { font-size: 36px; }
  .ds-gallery__hero { padding: 50px 0 60px; }
  .ds-gallery__filter { padding: 8px 16px; font-size: 14px; }
  .ds-gallery__hero-tag { font-size: 12px; letter-spacing: 0; }
}

/* ============================================
   Внутренние страницы — /contacts/
   ============================================ */
.page--contacts .main { padding: 0 !important; background: #fff !important; }
.page--contacts .main__aside,
.page--contacts .filter-top { display: none !important; }
.page--contacts .main__title {
  font-family: var(--ds-font-heading) !important;
  font-weight: 800 !important;
  font-size: 56px !important;
  line-height: 1.05 !important;
  color: var(--ds-color-heading) !important;
  margin: 24px 0 32px !important;
}
.ds-contacts--page { padding: 0; }                 /* без нижнего отступа — карта прижата к низу */
.ds-contacts__item-text--link {
  color: var(--ds-color-heading);
  text-decoration: none;
  transition: color .15s ease;
}
.ds-contacts__item-text--link:hover { color: var(--ds-color-cta); }

/* ============================================
   Внутренние страницы — /reviews/
   ============================================ */
.page--reviews .main { padding: 0 !important; background: #fff !important; }
.page--reviews .main__top,
.page--reviews .main__breadcrumbs,
.page--reviews .main__title,
.page--reviews .main__aside,
.page--reviews .filter-top { display: none !important; }
.ds-reviews--page { padding: 60px 0 100px; }
.ds-reviews__head-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
}
.ds-reviews__title--page {
  font-family: var(--ds-font-heading);
  font-weight: 800;
  font-size: 48px;
  line-height: 1.1;
  color: var(--ds-color-heading);
  margin: 0;
}
.ds-reviews__subtitle {
  font-size: 18px;
  line-height: 1.5;
  color: var(--ds-color-body);
  margin: 0 0 48px;
}
.ds-reviews--page .ds-reviews__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}
@media (max-width: 768px) {
  .ds-reviews--page .ds-reviews__grid { grid-template-columns: 1fr; }
  .ds-reviews__title--page { font-size: 32px; }
}

/* ============================================
   Модальные окна (popup)
   ============================================ */
.mfp-content .popup,
.popup {
  background: #fff;
  border-radius: 24px;
  padding: 0;
  max-width: 480px;
  width: 90%;
  margin: 40px auto;
  position: relative;
  box-shadow: 0 20px 60px rgba(0,0,0,0.15);
  overflow: hidden;
}
.popup__container {
  padding: 40px 40px 32px;
}
.popup__title {
  font-family: var(--ds-font-heading);
  font-weight: 800;
  font-size: 28px;
  line-height: 1.2;
  color: var(--ds-color-heading);
  margin: 0 0 24px;
  text-align: center;
}
.popup__content { color: var(--ds-color-body); }
.form-success {
  text-align: center;
  padding: 24px 16px 32px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}
.form-success__icon {
  width: 72px;
  height: 72px;
  color: var(--ds-color-cta, #142D1A);
  margin-bottom: 4px;
}
.form-success__icon svg { width: 100%; height: 100%; }
.form-success__title {
  font-family: var(--ds-font-heading);
  font-size: 28px;
  font-weight: 800;
  color: var(--ds-color-heading, #1A4520);
  line-height: 1.2;
  margin: 0;
}
.form-success__text {
  font-size: 16px;
  line-height: 1.5;
  color: var(--ds-color-body, #2A2A2A);
}
.form-success__text br + * { display: block; margin-top: 8px; }
.popup__close {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #F1F1F1;
  border: none;
  cursor: pointer;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .15s ease;
}
.popup__close:hover { background: #E5E5E5; }
.popup__close::before,
.popup__close::after {
  content: '';
  position: absolute;
  width: 14px;
  height: 2px;
  background: var(--ds-color-heading);
  border-radius: 1px;
}
.popup__close::before { transform: rotate(45deg); }
.popup__close::after { transform: rotate(-45deg); }

/* Поля в модалке — стиль как в остальном сайте */
.popup .form__field-input,
.popup input.input,
.popup input[type="text"],
.popup input[type="email"],
.popup input[type="tel"],
.popup textarea,
.popup select {
  width: 100%;
  background: #fff;
  border: 1px solid #E5E5E5;
  border-radius: 12px;
  padding: 14px 16px;
  font-family: var(--ds-font-body);
  font-size: 16px;
  color: var(--ds-color-heading);
  transition: border-color .15s ease, box-shadow .15s ease;
}
.popup .form__field-input:focus,
.popup input.input:focus,
.popup textarea:focus {
  outline: none;
  border-color: var(--ds-color-cta);
  box-shadow: 0 0 0 3px rgba(43, 117, 64, 0.1);
}
.popup .form__row { margin-bottom: 16px; }
.popup .form__field { position: relative; }

/* Кнопка в модалке — как ds-btn--cta */
.popup .form__btn button,
.popup button[type="submit"],
.popup .ds-btn,
.popup input[type="submit"] {
  width: 100%;
  background: var(--ds-color-cta);
  color: var(--ds-color-text-invert);
  font-family: var(--ds-font-body);
  font-weight: var(--ds-fw-button);
  font-size: var(--ds-fs-button);
  padding: var(--ds-pad-cta);
  border: none;
  border-radius: var(--ds-radius-pill);
  cursor: pointer;
  transition: background-color .18s ease;
  margin-top: 8px;
}
.popup .form__btn button:hover,
.popup button[type="submit"]:hover,
.popup .ds-btn:hover {
  background-color: var(--ds-color-cta-hover);
}
.popup input[type="submit"],
.popup input[type="submit"].form__submit-btn,
.popup input.ds-btn--cta {
  opacity: 1 !important;            /* кнопка submit в модалке всегда яркая */
  pointer-events: auto !important;
  cursor: pointer !important;
}

/* MFP — затемнение и центрирование */
.mfp-bg { background: rgba(0,0,0,0.65) !important; }
.mfp-wrap { overflow-y: auto !important; padding: 20px 0 !important; }

/* Главный фильтр на /rooms/ */
.page--rooms .main { padding-top: 0; }
.page--rooms .ds-rooms-page { padding: 60px 0; }

/* ============================================
   Внутренние страницы — /rooms/
   ============================================ */
.page--rooms .main__content > .container > .row > .col-lg-4,
.page--rooms .main__content > .container > .row > .col-xl-3 { display: none !important; }
.page--rooms .main__content > .container > .row > .col-lg-8,
.page--rooms .main__content > .container > .row > .col-xl-9 { width: 100% !important; max-width: 100% !important; flex: 0 0 100% !important; }
.page--rooms .main__right > *:not(.ds-rooms-page) { display: none !important; }

/* ============================================================
   Fun cards — link wrapper + "Подробнее" indicator
   ============================================================ */
.ds-fun-card {
  padding: 0;                       /* override: padding 0, inner __link has padding */
}
.ds-fun-card__link {
  display: flex;
  align-items: stretch;               /* body и image тянутся на всю высоту */
  gap: 32px;
  min-height: 400px;
  padding: 32px;
  text-decoration: none;
  color: inherit;
  position: relative;
  overflow: hidden;
}
.ds-fun-card__body { align-self: stretch; }   /* body тоже на всю высоту */
.ds-fun-card__body { flex: 1 1 50%; min-width: 0; align-self: stretch; }   /* текст — 50% блока */
.ds-fun-card__image { flex: 0 0 50%; align-self: stretch; }                    /* картинка — 50% блока, тянется на всю высоту */
.ds-fun-card__leaf { display: none; }                /* зелёные пимпочки убраны */
.ds-fun-card__more {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 12px;
  font-family: var(--ds-font-body);
  font-size: 15px;
  font-weight: 600;
  color: var(--ds-color-cta);
  transition: color 0.2s;
}
.ds-fun-card__more .ds-arrow {
  transition: transform 0.2s;
  display: inline-block;
}
.ds-fun-card__link:hover .ds-fun-card__more {
  color: var(--ds-color-cta-hover);
}
.ds-fun-card__link:hover .ds-fun-card__more .ds-arrow {
  transform: translateX(4px);
}
@media (max-width: 1024px) {
  .ds-fun-card__link {
    flex-direction: column-reverse;
    min-height: auto;
    padding: 0;
    gap: 16px;
  }
  .ds-fun-card__image {
    width: 100%;
    min-height: 240px;
    border-radius: 16px 16px 0 0;
  }
  .ds-fun-card__body {
    padding: 20px;
  }
}

/* ============================================================
   Fun detail page (page--fun-detail)
   ============================================================ */
.page--fun-detail .main__content,
.page--fun-detail .ds-wrapper > .ds-main,
.page--fun-detail .main__content > .container,
.page--fun-detail .main__content > .container > .row {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  flex: none !important;
}
.page--fun-detail .main__content > .container > .row > [class*="col-"] {
  width: 100% !important;
  max-width: 100% !important;
  flex: 0 0 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}
.page--fun-detail .main__aside,
.page--fun-detail .consult-form,
.page--fun-detail .aside-nav,
.page--fun-detail .main__breadcrumbs,
.page--fun-detail .main__title,
.page--fun-detail .bx-breadcrumb,
.page--fun-detail nav.breadcrumb,
.page--fun-detail .breadcrumb,
.page--fun-detail .breadcrumbs,
.page--fun-detail .breadcrumbs__list,
.page--fun-detail .breadcrumbs__item,
.page--fun-detail .breadcrumbs__link {
  display: none !important;
}
body.page--fun-detail { padding-top: 0 !important; }
.page--fun-detail .main,
.page--fun-detail .main__content,
.page--fun-detail .main__top,
.page--fun-detail .ds-wrapper,
.page--fun-detail .ds-main { margin-top: 0 !important; padding-top: 0 !important; }
.page--fun-detail .ds-fun-detail { margin-top: 0 !important; }
.page--fun-detail .ds-fun-detail__hero {
  margin-top: 0 !important;
  border-radius: 0 0 24px 24px !important;
  overflow: hidden;
}

.ds-fun-detail {
  padding: 0 0 80px;
  background: #fff;
}
.ds-fun-detail__top {
  display: block;
}
.ds-fun-detail__hero {
  background-size: cover;
  background-position: center;
  min-height: 480px;
  display: flex;
  align-items: flex-end;
  padding: 60px 0;
  position: relative;
  color: #fff;
  border-radius: 0 0 var(--ds-radius-card) var(--ds-radius-card);
  margin-bottom: 60px;
}
.ds-fun-detail__hero-content {
  max-width: var(--ds-container-max);
  margin: 0 auto;
  padding: 0 32px;
  width: 100%;
}
.ds-fun-detail__title {
  font-family: var(--ds-font-heading);
  font-size: 56px;
  font-weight: 800;
  line-height: 1.1;
  color: #fff;
  margin: 0 0 16px;
  max-width: 720px;
}
.ds-fun-detail__lead {
  font-size: 18px;
  line-height: 1.5;
  color: #fff;
  max-width: 640px;
  margin: 0;
  opacity: 0.92;
}
.ds-fun-detail__section {
  max-width: var(--ds-container-max);
  margin: 0 auto 60px;
  padding: 0 32px;
}
.ds-fun-detail__section-title {
  font-family: var(--ds-font-heading);
  font-size: 32px;
  font-weight: 800;
  color: var(--ds-color-heading);
  margin: 0 0 28px;
}
.ds-fun-detail__content {
  font-size: 17px;
  line-height: 1.7;
  color: var(--ds-color-body);
  max-width: 880px;
}
.ds-fun-detail__content p {
  margin: 0 0 16px;
}
.ds-fun-detail__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  margin: 0;
  padding: 0;
}
.ds-fun-detail__item {
  background: var(--ds-color-bg-muted);
  border-radius: 16px;
  padding: 24px 28px;
}
.ds-fun-detail__item-label {
  font-family: var(--ds-font-body);
  font-size: 13px;
  font-weight: 500;
  color: var(--ds-color-body);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin: 0 0 8px;
}
.ds-fun-detail__item-value {
  font-family: var(--ds-font-body);
  font-size: 16px;
  font-weight: 500;
  color: var(--ds-color-heading);
  line-height: 1.5;
  margin: 0;
  white-space: pre-line;
}
.ds-fun-detail__cta {
  max-width: var(--ds-container-max);
  margin: 60px auto 0;
  padding: 0 32px;
  display: flex;
  justify-content: center;
}

@media (max-width: 1024px) {
  .ds-fun-detail__title { font-size: 42px; }
  .ds-fun-detail__list { grid-template-columns: 1fr; }
  .ds-fun-detail__hero { min-height: 380px; }
}
@media (max-width: 640px) {
  .ds-fun-detail__title { font-size: 32px; }
  .ds-fun-detail__section-title { font-size: 24px; }
  .ds-fun-detail__hero { min-height: 300px; padding: 40px 0; margin-bottom: 40px; }
  .ds-fun-detail__section { margin-bottom: 40px; padding: 0 20px; }
  .ds-fun-detail__cta { padding: 0 20px; }
  .ds-fun-detail__item { padding: 18px 20px; }
  .ds-fun-detail__lead { font-size: 16px; }
}

/* ============================================
   Детальная страница номера — закруглённые углы
   ============================================ */
.gallery-slider,
.gallery-slider .swiper-container,
.gallery-slider .swiper-wrapper,
.gallery-slider .swiper-slide { border-radius: 20px; overflow: hidden; }
.gallery-slider__img,
.gallery-slider .swiper-slide img { border-radius: 20px; display: block; }

.formmakerent,
.filter > .filter__content,
.filter {
  border-radius: 20px;
  overflow: hidden;
}
.filter,
.filter > .filter__content,
.formmakerent {
  background: var(--gray-light-color);
}
.filter {
  border: 1px solid #ECECEC;
}
.filter > .filter__content {
  padding: 24px;
}
.formmakerent { padding: 0; background: transparent; }


/* ============================================
   Блок «О нас» на /rooms/
   ============================================ */
.ds-rooms-page__about {
  margin-top: 80px;
  padding: 60px 40px;
  background: #FAFAF8;
  border-radius: 24px;
}
.ds-rooms-page__about-tag {
  display: inline-block;
  margin-bottom: 16px;
}
.ds-rooms-page__about-title {
  font-family: var(--ds-font-heading);
  font-weight: 800;
  font-size: 32px;
  line-height: 1.15;
  color: var(--ds-color-heading);
  margin: 0 0 20px;
  max-width: 800px;
}
.ds-rooms-page__about-text p {
  font-size: 16px;
  line-height: 1.6;
  color: var(--ds-color-body);
  margin: 0 0 16px;
  max-width: 800px;
}
.ds-rooms-page__about-toggle {
  margin-top: 8px;
  background: transparent;
  border: 0;
  padding: 0;
  font-family: var(--ds-font-body);
  font-size: 15px;
  font-weight: 600;
  color: var(--ds-color-cta);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: color 0.2s;
}
.ds-rooms-page__about-toggle:hover { color: var(--ds-color-cta-hover, #0e1f12); }
.ds-rooms-page__about-toggle::after {
  content: '↓';
  display: inline-block;
  transition: transform 0.25s;
}
.ds-rooms-page__about-toggle.is-open::after { transform: rotate(180deg); }
}

/* Room detail: align booking block with gallery */
body:not(.page--rooms) .main__content > .container > .row {
  align-items: start !important;
}
body:not(.page--rooms) .filter {
  position: sticky;
  top: 120px;
  margin-top: 0;
  padding: 0;
}
/* Room detail: filter__toggle-btn as a visible heading */
body:not(.page--rooms) .main__aside .filter__toggle-btn {
  display: block;
  width: 100%;
  background: transparent;
  border: 0;
  padding: 24px 24px 0 24px;
  margin: 0;
  font-family: var(--ds-font-heading);
  font-weight: 800;
  font-size: 20px;
  color: var(--ds-color-heading);
  text-align: left;
  cursor: default;
  line-height: 1.2;
}
/* ============================================
   «Получите консультацию» на детальной странице
   Стиль как .ds-help на главной
   ============================================ */
.feedback {
  background: var(--ds-color-bg);
  padding: 80px 0;
}
.feedback .container {
  max-width: var(--ds-container-max);
  margin: 0 auto;
  padding: 0 20px;
}
.feedback > .container {
  display: block;
}
.feedback__title {
  font-family: var(--ds-font-heading);
  font-size: 32px;
  font-weight: 800;
  color: var(--ds-color-heading);
  margin: 0 0 16px;
  line-height: 1.15;
  text-align: center;
}
.feedback__subtitle {
  font-size: 18px;
  font-weight: 400;
  color: var(--ds-color-body);
  line-height: 1.5;
  margin: 0 0 32px;
  text-align: center;
}
.feedback .form--feedback {
  background: var(--ds-color-bg-muted);
  border-radius: var(--ds-radius-card);
  padding: 48px 56px;
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 60px;
  align-items: center;
}
.feedback .form--feedback .form__row {
  display: contents;
}
.feedback .form--feedback .form__group {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  width: 100%;
}
.feedback .form--feedback .form__field { width: 100%; }
.feedback .form--feedback .form__field-input {
  font-family: var(--ds-font-body);
  font-size: 15px;
  color: var(--ds-color-heading);
  background: #FFFFFF;
  border: 1px solid transparent;
  border-radius: 12px;
  padding: 16px 18px;
  width: 100%;
  box-sizing: border-box;
}
.feedback .form--feedback .form__field-input:focus {
  outline: none;
  border-color: var(--ds-color-cta);
}
.feedback .form--feedback .checkbox {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  color: var(--ds-color-body);
  margin: 16px 0 0;
}
.feedback .form--feedback .checkbox__input {
  width: 16px;
  height: 16px;
  accent-color: var(--ds-color-cta);
}
.feedback .form--feedback .form__submit-btn {
  background: var(--ds-color-cta);
  color: #FFFFFF;
  font-family: var(--ds-font-body);
  font-size: 16px;
  font-weight: 500;
  border: none;
  border-radius: 28px;
  padding: 16px 32px;
  cursor: pointer;
  width: 100%;
  transition: background-color 0.25s;
  margin-top: 16px;
}
.feedback .form--feedback .form__submit-btn:hover {
  background: var(--ds-color-cta-hover, #0e1f12);
}
@media (max-width: 768px) {
  .feedback { padding: 50px 0; }
  .feedback__title { font-size: 26px; }
  .feedback .form--feedback {
    grid-template-columns: 1fr;
    gap: 24px;
    padding: 32px 24px;
  }
  .feedback .form--feedback .form__group { grid-template-columns: 1fr; }
}

/* Убрать margin-top у .main__aside, который идёт после [class*="col-"] */
[class*="col-"] + [class*="col-"] .main__aside {
  margin-top: 0 !important;
}
/* Room detail: meta items on white background (no gray wis-content) */
body:not(.page--rooms) .wis-content {
  background: #FFFFFF;
}
body:not(.page--rooms) .tabs__list-item--active {
  background: #FFFFFF;
}
body:not(.page--rooms) .tabs {
  background: #FFFFFF;
}
body:not(.page--rooms) .tabs__list {
  background: #FFFFFF;
}
body:not(.page--rooms) .main__right {
  background: #FFFFFF;
}
/* ============================================
   Блок «О нас» после Номера и цены на главной
   ============================================ */
.ds-hotel-about {
  background: var(--ds-color-bg);
  padding: 80px 0;
  text-align: center;
}
.ds-hotel-about__title {
  font-family: var(--ds-font-heading);
  font-weight: 800;
  font-size: 38px;
  line-height: 1.15;
  color: var(--ds-color-heading);
  margin: 16px auto 0;
  max-width: 800px;
  text-align: left;
}
.ds-hotel-about__title-accent {
  color: var(--ds-color-heading);
}
.ds-hotel-about__text {
  max-width: 800px;
  margin: 32px auto 0;
  text-align: left;
  font-size: 16px;
  line-height: 1.6;
  color: var(--ds-color-body);
}
.ds-hotel-about__text p { margin: 0 0 16px; }
.ds-hotel-about__collapse p { margin: 0 0 16px; }
.ds-hotel-about__toggle {
  background: transparent;
  border: 0;
  padding: 0;
  font-family: var(--ds-font-body);
  font-size: 15px;
  font-weight: 600;
  color: var(--ds-color-cta);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: color 0.2s;
  margin-top: 8px;
}
.ds-hotel-about__toggle:hover { color: var(--ds-color-cta-hover, #0e1f12); }
.ds-hotel-about__toggle::after {
  content: '↓';
  display: inline-block;
  transition: transform 0.25s;
}
.ds-hotel-about__toggle.is-open::after { transform: rotate(180deg); }
/* Подзаголовок и фичи в развёрнутом блоке */
.ds-hotel-about__subtitle {
  font-family: var(--ds-font-heading);
  font-weight: 800;
  font-size: 22px;
  line-height: 1.2;
  color: var(--ds-color-heading);
  margin: 24px 0 16px;
}
.ds-hotel-about__features {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 24px;
  margin: 16px 0 8px;
}
.ds-hotel-about__feature {
  background: var(--ds-color-bg-muted, #F5F3EF);
  border-radius: 16px;
  padding: 20px;
}
.ds-hotel-about__feature-title {
  font-family: var(--ds-font-heading);
  font-weight: 700;
  font-size: 16px;
  color: var(--ds-color-heading);
  margin: 0 0 8px;
}
.ds-hotel-about__feature-text {
  font-size: 14px;
  line-height: 1.5;
  color: var(--ds-color-body);
  margin: 0;
}
@media (max-width: 768px) {
  .ds-hotel-about__features { grid-template-columns: 1fr; }
}
/* Room detail: bottom text (DETAIL_TEXT) */
body:not(.page--rooms) .ds-room-detail__text {
  max-width: var(--ds-container-max);
  margin: 32px auto;
  padding: 0 20px;
  font-size: 16px;
  line-height: 1.6;
  color: var(--ds-color-body);
}
body:not(.page--rooms) .ds-room-detail__text h4 {
  font-family: var(--ds-font-heading);
  font-weight: 800;
  font-size: 22px;
  color: var(--ds-color-heading);
  margin: 24px 0 12px;
  line-height: 1.2;
}
body:not(.page--rooms) .ds-room-detail__text h4:first-child { margin-top: 0; }
body:not(.page--rooms) .ds-room-detail__text p { margin: 0 0 16px; }
body:not(.page--rooms) .ds-room-detail__text ul {
  margin: 12px 0 24px;
  padding-left: 24px;
  list-style: disc;
}
body:not(.page--rooms) .ds-room-detail__text ul li {
  margin-bottom: 6px;
  line-height: 1.5;
  display: list-item;
  list-style: disc;
}
body:not(.page--rooms) .ds-room-detail__text h4 {
  font-family: var(--ds-font-heading);
  font-weight: 800;
  font-size: 22px;
  color: var(--ds-color-heading);
  margin: 24px 0 12px;
  line-height: 1.2;
}
body:not(.page--rooms) .ds-room-detail__text h4:first-child {
  margin-top: 0;
}
body:not(.page--rooms) .ds-room-detail__text p { margin: 0 0 16px; }
body:not(.page--rooms) .ds-room-detail__text ul {
  margin: 12px 0 24px;
  padding-left: 24px;
}
body:not(.page--rooms) .ds-room-detail__text ul li {
  margin-bottom: 6px;
  line-height: 1.5;
}
/* Room detail: meta inside .wis-content */
.wis-content .ds-room-card__meta {
  margin-top: 20px;
}
.wis-content .ds-room-card__meta .ds-room-card__meta-item {
  margin-right: 14px;
}
/* Mobile: уменьшить padding-top body */
@media (max-width: 768px) {
  body { padding-top: 90px !important; }
}
/* Mobile: contacts card padding + reduced gaps */
@media (max-width: 768px) {
  .ds-contacts { padding: 40px 0; }
  .ds-contacts__info { padding: 0; gap: 12px; margin-bottom: 0; }
  .ds-contacts__title { font-size: 24px; }
  .ds-contacts__list { gap: 6px; }
  .ds-contacts__item { font-size: 14px; }
  .ds-contacts__text { font-size: 14px; line-height: 1.5; }
  .ds-contacts__map { min-height: 280px; margin: 0; }
  .ds-hero__subtitle { max-width: 100%; }
}

/* Mobile: reduce section paddings globally */
@media (max-width: 768px) {
  .ds-about,
  .ds-rooms,
  .ds-fun,
  .ds-reviews,
  .ds-help,
  .ds-contacts,
  .ds-hotel-about,
  .ds-rooms-page__about { padding-top: 40px; padding-bottom: 40px; }
  .ds-rooms-page__grid { margin-bottom: 24px; }
  .ds-rooms-page__tariff { padding: 24px 20px; }
}
/* Mobile: filter padding & form spacing */
@media (max-width: 768px) {
  .ds-filter { padding: 40px 0; }
  .ds-filter__form { padding: 20px; }
  .ds-filter__form > p { margin-bottom: 20px; }   /* отступ между текстом и формой */
  .ds-filter__row { grid-template-columns: 1fr; gap: 12px; }
}
/* Mobile: уменьшить заголовок блока О нас */
@media (max-width: 768px) {
  .ds-hotel-about__title { font-size: 24px; line-height: 1.2; }
}
/* Mobile: hero form margin */
@media (max-width: 768px) {
  .ds-hero__form { margin-top: 30px; }
}
/* Mobile: room detail block titles (match main page styles) */
@media (max-width: 768px) {
  body:not(.page--rooms) .wis-content h4 {
    font-size: 20px;
    line-height: 1.2;
    margin: 24px 0 12px;
  }
  body:not(.page--rooms) .wis-content h4:first-child {
    margin-top: 0;
  }
  body:not(.page--rooms) .ds-room-detail__text h4 {
    font-size: 20px;
  }
  body:not(.page--rooms) .ds-rooms-page__title {
    font-size: 24px;
  }
}
/* Room detail: udobstva-hidden toggle (show on "All amenities" click) */
body:not(.page--rooms) .udobstva-hidden {
  display: none;
  background: #FAFAF8;
  border-radius: 16px;
  padding: 24px;
  margin-top: 24px;
}
body:not(.page--rooms) .udobstva-hidden.active {
  display: block;
}
body:not(.page--rooms) .udobstva-hidden h4 {
  font-family: var(--ds-font-heading);
  font-weight: 800;
  font-size: 20px;
  color: var(--ds-color-heading);
  margin: 0 0 12px;
  line-height: 1.2;
}
body:not(.page--rooms) .udobstva-v-nomere {
  list-style: disc !important;
  margin: 0 0 16px 0 !important;
  padding-left: 24px !important;
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  column-gap: 32px !important;
  row-gap: 4px !important;
  text-align: left !important;
}
body:not(.page--rooms) .udobstva-v-nomere li {
  display: list-item !important;
  text-align: left !important;
  padding: 4px 0 !important;
  list-style: disc !important;
}
body:not(.page--rooms) .udobstva__item {
  font-size: 14px;
  line-height: 1.5;
  color: var(--ds-color-body);
  display: flex;
  align-items: flex-start;
  gap: 8px;
}
body:not(.page--rooms) .udobstva__item img {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}
body:not(.page--rooms) .udobstva-all-button {
  display: inline-block;
  margin: 16px 0;
  padding: 10px 24px;
  background: var(--ds-color-cta);
  color: #fff;
  border: 0;
  border-radius: 24px;
  font-family: var(--ds-font-body);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: background-color 0.2s;
}
body:not(.page--rooms) .udobstva-all-button:hover { background: var(--ds-color-cta-hover); }
body:not(.page--rooms) .udobstva-all-button.active { background: var(--ds-color-bg-tag); color: var(--ds-color-heading); }
@media (max-width: 640px) {
  body:not(.page--rooms) .udobstva-v-nomere { grid-template-columns: 1fr; }
}
/* Mobile: about__head-actions align left */
@media (max-width: 768px) {
  .ds-about__head-actions { justify-content: flex-start; }
}
/* Mobile: about__head align start */
@media (max-width: 768px) {
  .ds-about__head { align-items: start; }
}
/* Burger icon: ::before = top line, ::after = bottom line */
.ds-header__burger {
  position: relative;
}
.ds-burger__icon,
.ds-burger__icon::before,
.ds-burger__icon::after {
  display: block;
  width: 24px;
  height: 2px;
  background: var(--ds-color-heading, #1A4520);
  border-radius: 1px;
  transition: transform 0.25s, opacity 0.25s, top 0.25s;
}
.ds-burger__icon {
  position: relative;
  margin-top: 19px;     /* центрируем 3 линии в кнопке 40px */
}
.ds-burger__icon::before,
.ds-burger__icon::after {
  content: '';
  position: absolute;
  left: 0;
}
.ds-burger__icon::before { top: -7px; }
.ds-burger__icon::after { top: 7px; }
/* X state */
.ds-header.is-open .ds-burger__icon { background: transparent; }
.ds-header.is-open .ds-burger__icon::before {
  top: 0;
  transform: rotate(45deg);
}
.ds-header.is-open .ds-burger__icon::after {
  top: 0;
  transform: rotate(-45deg);
}
/* Mobile: burger icon centered (no top margin) */
@media (max-width: 768px) {
  .ds-burger__icon { margin-top: 0; }
}
}
/* Global card head (also for room detail) */
.ds-room-card__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
}
.ds-room-card__head h4 { margin: 0; flex: 1; }
/* ============================================
   СПЕЦПРЕДЛОЖЕНИЯ (слайдер)
   ============================================ */
.ds-special {
  background: var(--ds-color-bg);
  padding: 80px 0;
}
.ds-special .container {
  max-width: var(--ds-container-max);
  margin: 0 auto;
  padding: 0 20px;
}
.ds-special__title {
  font-family: var(--ds-font-heading);
  font-weight: 800;
  font-size: 38px;
  color: var(--ds-color-heading);
  margin: 0 0 28px;
  line-height: 1.15;
}
.ds-special__subtitle {
  font-size: 18px;
  color: var(--ds-color-body);
  margin: 0 0 32px;
  line-height: 1.5;
}
.ds-special__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 24px;
}
.ds-special__more {
  font-family: var(--ds-font-body);
  font-size: 15px;
  font-weight: 600;
  color: var(--ds-color-heading);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: color 0.2s;
}
.ds-special__more:hover { color: var(--ds-color-cta); }
.ds-special__nav {
  display: flex;
  align-items: center;
  gap: 12px;
}
.ds-special__page {
  font-family: var(--ds-font-body);
  font-size: 14px;
  color: var(--ds-color-body);
  min-width: 36px;
  text-align: center;
}
.ds-special__viewport {
  overflow: hidden;
  width: 100%;
}
.ds-special__track {
  display: flex;
  gap: 24px;
  transition: transform 0.4s ease;
  will-change: transform;
}
.ds-special-card {
  flex: 0 0 calc((100% - 48px) / 3);
  background: var(--ds-color-bg-tag);
  border-radius: var(--ds-radius-card);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-height: 420px;
  transition: transform 0.25s, box-shadow 0.25s;
}
.ds-special-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.06);
}
.ds-special-card__image {
  display: block;
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  background-size: cover;
  background-position: center;
  background-color: #ddd;
}
.ds-special-card__head {
  display: flex;
  align-items: center;
  gap: 12px;
  justify-content: space-between;
}
.ds-special-card__discount {
  flex-shrink: 0;
  background: rgba(255, 255, 255, 0.92);
  color: var(--ds-color-heading);
  font-size: 14px;
  font-weight: 700;
  padding: 6px 14px;
  border-radius: 100px;
  letter-spacing: 0.3px;
  align-self: flex-start;
}
.ds-special-card__body {
  padding: 24px 28px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  flex: 1;
}
.ds-special-card__title {
  font-family: var(--ds-font-heading);
  font-size: 20px;
  font-weight: 800;
  flex: 1;
  margin: 0;
  color: var(--ds-color-heading);
  margin: 0;
  line-height: 1.2;
}
.ds-special-card__title a {
  color: inherit;
  text-decoration: none;
  transition: color 0.2s;
}
.ds-special-card__title a:hover { color: var(--ds-color-cta); }
.ds-special-card__text {
  font-size: 15px;
  line-height: 1.5;
  color: var(--ds-color-body);
  margin: 0;
  flex: 1;
}
.ds-special-card__price {
  font-family: var(--ds-font-heading);
  font-size: 18px;
  font-weight: 700;
  color: var(--ds-color-heading);
  margin: 0;
}
.ds-special-card__more {
  font-family: var(--ds-font-body);
  font-size: 15px;
  font-weight: 600;
  color: var(--ds-color-cta);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: auto;
}
.ds-special-card__more:hover { color: var(--ds-color-cta-hover, #0e1f12); }

/* Mobile: 1 card visible */
@media (max-width: 1024px) {
  .ds-special-card { flex: 0 0 calc((100% - 24px) / 2); }
}
@media (max-width: 768px) {
  .ds-special { padding: 40px 0; }
  .ds-special__title { font-size: 24px; }
  .ds-special-card { flex: 0 0 100%; }
}
/* ============================================
   СПЕЦПРЕДЛОЖЕНИЯ — страница /special/
   ============================================ */
.ds-special-page {
  background: var(--ds-color-bg);
  padding: 80px 0;
}
.ds-special-page .container {
  max-width: var(--ds-container-max);
  margin: 0 auto;
  padding: 0 20px;
}
.ds-special-page__title {
  font-family: var(--ds-font-heading);
  font-weight: 800;
  font-size: 38px;
  color: var(--ds-color-heading);
  margin: 0 0 12px;
}
.ds-special-page__subtitle {
  font-size: 18px;
  color: var(--ds-color-body);
  margin: 0 0 40px;
}
.ds-special-page__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.ds-special-card--page {
  min-height: 0;
  flex: 0 0 auto;
}
.ds-special-card--page .ds-special-card__image {
  aspect-ratio: 16 / 10;
}
.ds-special-card--page .ds-special-card__body {
  padding: 20px 24px;
}
.ds-special-card--page .ds-special-card__title {
  font-size: 18px;
  line-height: 1.3;
}
.ds-special-card--page .ds-special-card__text {
  font-size: 14px;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
@media (max-width: 1024px) {
  .ds-special-page__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
  .ds-special-page { padding: 40px 0; }
  .ds-special-page__title { font-size: 24px; }
  .ds-special-page__grid { grid-template-columns: 1fr; }
}

/* ============================================
   СПЕЦПРЕДЛОЖЕНИЕ — детальная страница
   ============================================ */
.ds-special-detail__hero {
  position: relative;
  background-size: cover;
  background-position: center;
  min-height: 480px;
  display: flex;
  align-items: flex-end;
  margin: 0 -20px;
}
.ds-special-detail__hero-overlay {
  width: 100%;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.6) 100%);
  padding: 60px 0 40px;
  color: #fff;
}
.ds-special-detail__hero-overlay .container { padding: 0 20px; max-width: var(--ds-container-max); margin: 0 auto; }
.ds-special-detail__title {
  font-family: var(--ds-font-heading);
  font-size: 42px;
  font-weight: 800;
  color: #fff;
  margin: 0 0 12px;
  line-height: 1.15;
}
.ds-special-detail__lead {
  font-size: 18px;
  color: rgba(255,255,255,0.95);
  margin: 0 0 16px;
  max-width: 800px;
  line-height: 1.5;
}
.ds-special-detail__price {
  font-family: var(--ds-font-heading);
  font-size: 24px;
  font-weight: 700;
  color: #fff;
  margin: 0;
}
.ds-special-detail .container {
  max-width: var(--ds-container-max);
  margin: 0 auto;
  padding: 0 20px;
}
.ds-special-detail__content {
  max-width: 800px;
  margin: 40px auto;
  font-size: 16px;
  line-height: 1.7;
  color: var(--ds-color-body);
}
.ds-special-detail__cta {
  display: flex;
  gap: 16px;
  justify-content: center;
  margin: 40px 0 60px;
  flex-wrap: wrap;
}
@media (max-width: 768px) {
  .ds-special-detail__hero { min-height: 320px; }
  .ds-special-detail__title { font-size: 28px; }
  .ds-special-detail__hero-overlay { padding: 40px 0 24px; }
}
.ds-btn--ghost {
  background: transparent;
  color: var(--ds-color-heading);
  border: 1px solid var(--ds-color-heading);
}
.ds-btn--ghost:hover {
  background: var(--ds-color-heading);
  color: #fff;
}
.ds-nav-btn {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--ds-color-bg-muted);
  border: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--ds-color-heading);
  transition: background 0.2s, color 0.2s;
}
.ds-nav-btn:hover {
  background: var(--ds-color-heading);
  color: #fff;
}
.ds-nav-btn:disabled {
  cursor: not-allowed;
}
/* ============================================
   Special detail page (page--special-detail)
   ============================================ */
.page--special-detail .main__content,
.page--special-detail .ds-wrapper > .ds-main,
.page--special-detail .main__content > .container,
.page--special-detail .main__content > .container > .row {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  flex: none !important;
}
.page--special-detail .main__content > .container > .row > [class*="col-"] {
  width: 100% !important;
  max-width: 100% !important;
  flex: 0 0 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}
.page--special-detail .main__aside,
.page--special-detail .consult-form,
.page--special-detail .aside-nav,
.page--special-detail .main__breadcrumbs,
.page--special-detail .main__title,
.page--special-detail .bx-breadcrumb,
.page--special-detail nav.breadcrumb,
.page--special-detail .breadcrumb,
.page--special-detail .breadcrumbs,
.page--special-detail .breadcrumbs__list,
.page--special-detail .breadcrumbs__item,
.page--special-detail .breadcrumbs__link {
  display: none !important;
}
body.page--special-detail { padding-top: 0 !important; }
.page--special-detail .main,
.page--special-detail .main__content,
.page--special-detail .main__top,
.page--special-detail .ds-wrapper,
.page--special-detail .ds-main { margin-top: 0 !important; padding-top: 0 !important; }
.page--special-detail .ds-fun-detail { margin-top: 0 !important; }
.page--special-detail .ds-fun-detail__hero {
  margin-top: 0 !important;
  border-radius: 0 0 24px 24px !important;
  overflow: hidden;
}
/* ============================================
   /special/ (list) — убрать лишний отступ
   ============================================ */
.page--special .main__breadcrumbs,
.page--special .main__top {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}
.page--special .ds-special-page {
  padding-top: 0 !important;
}
.page--special .ds-special-page__title {
  margin-top: 0 !important;
}
/* ============================================
   /special/CODE/ — центрировать кнопку CTA
   ============================================ */
.page--special-detail .ds-fun-detail__cta {
  display: flex;
  justify-content: center;
  margin: 40px 0 60px;
}
/* ============================================
   БЛОГ (главная)
   ============================================ */
.ds-blog {
  background: var(--ds-color-bg);
  padding: 80px 0;
}
.ds-blog .container {
  max-width: var(--ds-container-max);
  margin: 0 auto;
  padding: 0 20px;
}
.ds-blog__title {
  font-family: var(--ds-font-heading);
  font-weight: 800;
  font-size: 38px;
  color: var(--ds-color-heading);
  margin: 0 0 28px;
  line-height: 1.15;
}
.ds-blog__subtitle {
  font-size: 18px;
  color: var(--ds-color-body);
  margin: 0 0 32px;
  line-height: 1.5;
}
.ds-blog__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 24px;
}
.ds-blog__more {
  font-family: var(--ds-font-body);
  font-size: 15px;
  font-weight: 600;
  color: var(--ds-color-heading);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: color 0.2s;
}
.ds-blog__more:hover { color: var(--ds-color-cta); }
.ds-blog__nav {
  display: flex;
  align-items: center;
  gap: 12px;
}
.ds-blog__page {
  font-family: var(--ds-font-body);
  font-size: 14px;
  color: var(--ds-color-body);
  min-width: 36px;
  text-align: center;
}
.ds-blog__viewport {
  overflow: hidden;
  width: 100%;
}
.ds-blog__track {
  display: flex;
  gap: 24px;
  transition: transform 0.4s ease;
  will-change: transform;
}
.ds-blog-card {
  flex: 0 0 calc((100% - 48px) / 3);
  background: var(--ds-color-bg-muted);
  border-radius: var(--ds-radius-card);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-height: 420px;
  transition: transform 0.25s, box-shadow 0.25s;
}
.ds-blog-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.06);
}
.ds-blog-card__image {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  background-size: cover;
  background-position: center;
  background-color: #ddd;
}
.ds-blog-card__body {
  padding: 24px 28px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  flex: 1;
}
.ds-blog-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 4px;
}
.ds-blog-card__tag {
  display: inline-block;
  background: rgba(20, 45, 26, 0.08);
  color: var(--ds-color-cta, #142D1A);
  font-size: 12px;
  font-weight: 500;
  padding: 4px 10px;
  border-radius: 100px;
  line-height: 1.3;
}
.ds-blog-card__title {
  font-family: var(--ds-font-heading);
  font-size: 18px;
  font-weight: 700;
  color: var(--ds-color-heading);
  margin: 0;
  line-height: 1.3;
}
.ds-blog-card__title a {
  color: inherit;
  text-decoration: none;
  transition: color 0.2s;
}
.ds-blog-card__title a:hover { color: var(--ds-color-cta); }
.ds-blog-card__text {
  font-size: 14px;
  line-height: 1.5;
  color: var(--ds-color-body);
  margin: 0;
  flex: 1;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.ds-blog-card__more {
  font-family: var(--ds-font-body);
  font-size: 15px;
  font-weight: 600;
  color: var(--ds-color-cta);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: auto;
}
@media (max-width: 1024px) {
  .ds-blog-card { flex: 0 0 calc((100% - 24px) / 2); }
}
@media (max-width: 768px) {
  .ds-blog { padding: 40px 0; }
  .ds-blog__title { font-size: 24px; }
  .ds-blog-card { flex: 0 0 100%; }
}

/* ============================================
   БЛОГ — страница списка
   ============================================ */
.ds-blog-page {
  background: var(--ds-color-bg);
  padding: 40px 0 80px;
}
.ds-blog-page .container {
  max-width: var(--ds-container-max);
  margin: 0 auto;
  padding: 0 20px;
}
.ds-blog-page__title {
  font-family: var(--ds-font-heading);
  font-weight: 800;
  font-size: 38px;
  color: var(--ds-color-heading);
  margin: 0 0 12px;
}
.ds-blog-page__subtitle {
  font-size: 18px;
  color: var(--ds-color-body);
  margin: 0 0 32px;
}
.ds-blog-page__filters {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 32px;
}
.ds-blog-filter {
  background: var(--ds-color-bg-muted);
  color: var(--ds-color-heading);
  border: 0;
  padding: 10px 18px;
  border-radius: 100px;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s;
}
.ds-blog-filter:hover {
  background: rgba(20, 45, 26, 0.1);
}
.ds-blog-filter.is-active {
  background: var(--ds-color-cta, #142D1A);
  color: #fff;
}
.ds-blog-page__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.ds-blog-card--page {
  min-height: 0;
  flex: 0 0 auto;
}
.ds-blog-card--page .ds-blog-card__image {
  aspect-ratio: 16 / 10;
}
.ds-blog-card--page .ds-blog-card__body {
  padding: 20px 24px;
}
.ds-blog-card--page .ds-blog-card__title {
  font-size: 18px;
}
@media (max-width: 1024px) {
  .ds-blog-page__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
  .ds-blog-page { padding: 20px 0 40px; }
  .ds-blog-page__title { font-size: 24px; }
  .ds-blog-page__grid { grid-template-columns: 1fr; }
}

/* ============================================
   БЛОГ — детальная страница
   ============================================ */
.page--blog-detail .main__content,
.page--blog-detail .ds-wrapper > .ds-main,
.page--blog-detail .main__content > .container,
.page--blog-detail .main__content > .container > .row {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  flex: none !important;
}
.page--blog-detail .main__content > .container > .row > [class*="col-"] {
  width: 100% !important;
  max-width: 100% !important;
  flex: 0 0 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}
.page--blog-detail .main__aside,
.page--blog-detail .consult-form,
.page--blog-detail .aside-nav,
.page--blog-detail .main__breadcrumbs,
.page--blog-detail .main__title,
.page--blog-detail .bx-breadcrumb,
.page--blog-detail nav.breadcrumb,
.page--blog-detail .breadcrumb,
.page--blog-detail .breadcrumbs,
.page--blog-detail .breadcrumbs__list,
.page--blog-detail .breadcrumbs__item,
.page--blog-detail .breadcrumbs__link {
  display: none !important;
}
body.page--blog-detail { padding-top: 0 !important; }
.page--blog-detail .main,
.page--blog-detail .main__content,
.page--blog-detail .main__top,
.page--blog-detail .ds-wrapper,
.page--blog-detail .ds-main { margin-top: 0 !important; padding-top: 0 !important; }
.page--blog-detail .ds-fun-detail { margin-top: 0 !important; }
.page--blog-detail .ds-fun-detail__hero {
  margin-top: 0 !important;
  border-radius: 0 0 24px 24px !important;
  overflow: hidden;
}
.ds-blog-detail__tags {
  max-width: var(--ds-container-max);
  margin: 24px auto 24px;
  padding: 0 20px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.ds-blog-detail__tags--top {
  margin: 0 0 36px;
  padding: 0;
}
.ds-blog-detail__tags--top .ds-blog-card__tag {
  background: rgba(255, 255, 255, 0.15);
  color: #fff;
  backdrop-filter: blur(4px);
}
.ds-fun-detail__section {
  margin-top: 16px;
}
.page--blog-detail .ds-fun-detail__cta {
  display: flex;
  justify-content: center;
  margin: 40px 0 60px;
}
.page--blog .ds-blog-page__title,
.page--blog .ds-blog-page__subtitle {
  margin-top: 0 !important;
}
.page--blog .ds-blog-page {
  padding-top: 0 !important;
}
.ds-blog-card__date {
  font-size: 13px;
  color: var(--ds-color-body);
  opacity: 0.7;
  margin-bottom: 4px;
}
.ds-blog-detail__date {
  display: inline-block;
  background: rgba(255,255,255,0.15);
  color: #fff;
  font-size: 13px;
  padding: 6px 14px;
  border-radius: 100px;
  margin-bottom: 16px;
  font-weight: 500;
  backdrop-filter: blur(4px);
}
.udobstva__icon {
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  object-fit: contain;
  transition: transform 0.2s;
}
.udobstva__icon:hover {
  transform: scale(1.15);
}
.udobstva__item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: help;
}
.udobstva-v-nomere {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}
.ds-room-card__features {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 0 8px 0 !important;
  display: grid !important;
  grid-template-columns: repeat(6, 32px) !important;
  gap: 2px !important;
  row-gap: 2px !important;
  max-width: fit-content !important;
}
.ds-rooms-page .ds-room-card__features {
  min-height: auto !important;
  justify-content: start !important;
  width: 100% !important;
  max-width: 100% !important;
  row-gap: 20px !important;
  column-gap: 30px !important;
}
.ds-room-card__features li {
  list-style: none !important;
  background: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: help !important;
}
.ds-room-card__features li::before,
.ds-room-card__features li::marker {
  content: none !important;
  display: none !important;
}
.ds-room-card__feature-icon {
  width: 32px !important;
  height: 32px !important;
  object-fit: contain !important;
  flex-shrink: 0 !important;
  display: block !important;
  transition: transform 0.2s !important;
}
.ds-room-card__feature-icon:hover {
  transform: scale(1.15) !important;
}
.ds-room-card__features li {
  position: relative !important;
}
.ds-room-card__features li:hover::after {
  content: attr(data-tooltip) !important;
  position: absolute !important;
  bottom: calc(100% + 8px) !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  background: #142D1A !important;
  color: #fff !important;
  padding: 6px 12px !important;
  border-radius: 6px !important;
  font-size: 12px !important;
  white-space: nowrap !important;
  z-index: 100 !important;
  pointer-events: none !important;
  font-weight: 500 !important;
  line-height: 1.4 !important;
  font-family: var(--ds-font-body) !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15) !important;
  z-index: 1000 !important;
  animation: tooltip-fade 0.15s ease-out !important;
}
.ds-room-card__features li:hover::before {
  content: "" !important;
  position: absolute !important;
  bottom: calc(100% + 2px) !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  border: 6px solid transparent !important;
  border-top-color: #142D1A !important;
  z-index: 1000 !important;
  pointer-events: none !important;
}
@keyframes tooltip-fade {
  from { opacity: 0; transform: translateX(-50%) translateY(4px); }
  to { opacity: 1; transform: translateX(-50%) translateY(0); }
}
/* Удобства (CONVENIENCES) — компактные иконки с tooltip */
.ds-udobstva-grid{list-style:none!important;padding:0;margin:12px 0!important;display:flex!important;flex-wrap:wrap!important;gap:16px!important;align-items:center!important;max-width:100%!important}
.ds-udobstva-grid li{display:inline-flex!important;position:relative!important;cursor:help!important;list-style:none!important;background:none!important;padding:0!important;margin:0!important}
.ds-udobstva-grid li::before,.ds-udobstva-grid li::marker{content:none!important;display:none!important}
.ds-udobstva-icon{width:24px!important;height:24px!important;flex-shrink:0!important;object-fit:contain!important;transition:transform .2s!important;display:inline-block!important;vertical-align:middle!important;cursor:help}
.ds-udobstva-icon:hover{transform:scale(1.15)}
.ds-udobstva-item:hover .ds-udobstva-tip{opacity:1!important;visibility:visible!important;transform:translate(-50%,0)!important}
.ds-udobstva-tip{position:absolute!important;bottom:calc(100% + 8px)!important;left:50%!important;transform:translate(-50%,6px)!important;background:#142D1A!important;color:#fff!important;padding:6px 12px!important;border-radius:6px!important;font-size:12px!important;line-height:1.4!important;white-space:normal!important;width:max-content!important;max-width:240px!important;opacity:0!important;visibility:hidden!important;transition:all .2s!important;z-index:1000!important;pointer-events:none!important;text-align:center!important}
.ds-udobstva-tip::after{content:""!important;position:absolute!important;top:100%!important;left:50%!important;transform:translateX(-50%)!important;border:6px solid transparent!important;border-top-color:#142D1A!important}
.ds-rooms-page .ds-room-card {
  overflow: unset !important;
}
/* BOTTOM-LEFT ARTIFACT - hide specific debug/admin elements */
#uiNotificator, .ui-notificator, .bx-core-window, .bx-core-popup-menu,
[class*="ui-ia"], [class*="bx-adjust"], [id*="bx_adjust"],
[class*="bx-panel"], [class*="bx-debug"], [class*="bx-snap"],
.mquick, .mquick-link, .mquick-btn,
.bx-core-admin-icon, .bx-admin-icon, .bx-toolbar, .bx-imageloader,
.bx-editor-toolbar, .bx-editor-popup, .bx-finder, .bx-finder-popup,
bx\.Core\., bx\.UI, [class^="bx-core-"], [id^="bx-core-"],
[class*="bx-ua"], [class*="bx-cta"],
.bx_console, .bx-debugger, .bx-support, .bx-help,
.copilot-icon, .ai-icon, .harbor-debug, .harbor-inspector,
[class*="harbor-"], [class*="dev-icon"], [class*="devicon"]
{ display: none !important; visibility: hidden !important; opacity: 0 !important; pointer-events: none !important; }

/* Yandex.Metrika webvisor indicator (bottom-left) */
ym-webvisor-indicator, [data-webvisor-indicator], 
[data-name="webvisor"], webvisor-indicator,
.ym-webvisor-indicator, .__ym__webvisor,
[class*="webvisor"], [class*="ym-"], [class*="ym_"],
#webvisor-indicator, .webvisor-indicator, [id*="ym-"], [id*="ym_"] { display:none!important; }
/* Tariff code badge (BB, HB, FB, AI) — replaces breakfast/dinner icon */
.ds-udobstva-tariff{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:32px!important;
  height:24px!important;
  padding:0 8px!important;
  background:#142D1A!important;
  color:#fff!important;
  font-family:var(--ds-font-heading,'Manrope',sans-serif)!important;
  font-weight:700!important;
  font-size:12px!important;
  letter-spacing:.5px!important;
  border-radius:6px!important;
  cursor:help!important;
  position:relative!important;
  transition:background .2s!important;
}
.ds-udobstva-tariff:hover{background:#1F4A2A!important}
/* Tariff code tooltip via ::after (CSS-only) */
.ds-udobstva-item--tariff .ds-udobstva-tip{opacity:0!important;visibility:hidden!important}
.ds-udobstva-item--tariff .ds-udobstva-tariff::after{
  content:attr(data-tooltip)!important;
  position:absolute!important;
  bottom:calc(100% + 8px)!important;
  left:50%!important;
  transform:translate(-50%,6px)!important;
  background:#142D1A!important;
  color:#fff!important;
  padding:6px 12px!important;
  border-radius:6px!important;
  font-size:12px!important;
  line-height:1.4!important;
  white-space:normal!important;
  width:max-content!important;
  max-width:240px!important;
  opacity:0!important;
  visibility:hidden!important;
  transition:all .2s!important;
  z-index:1000!important;
  pointer-events:none!important;
  text-align:center!important;
  font-weight:400!important;
  letter-spacing:0!important;
}
.ds-udobstva-item--tariff:hover .ds-udobstva-tariff::after{
  opacity:1!important;
  visibility:visible!important;
  transform:translate(-50%,0)!important
}
/* Tariff badges (BB, AI) — always at the end, BB before AI */
.ds-udobstva-grid{flex-wrap:wrap!important}
.ds-udobstva-item--tariff[data-meal="BB"]{order:100!important}
.ds-udobstva-item--tariff[data-meal="AI"]{order:101!important}
/* Blog detail: hero edge-to-edge */
body.page--blog-detail{padding-top:0!important}
body.page--blog-detail .main{padding:0!important;background:transparent!important}
body.page--blog-detail .ds-blog-detail{margin-top:0!important}
body.page--blog-detail .ds-fun-detail__hero{
  border-radius:0 0 24px 24px!important;
  min-height:480px!important;
  margin:0!important;
  width:100%!important;
  max-width:100%!important;
  aspect-ratio:auto!important
}
body.page--blog-detail .ds-fun-detail__top{padding:0!important;margin:0!important;max-width:100%!important;width:100%!important}
body.page--blog-detail .ds-fun-detail__hero-content{padding:60px 24px!important}
body.page--blog-detail .ds-blog-detail__tags,
body.page--blog-detail .ds-fun-detail__section{
  max-width:var(--ds-container-max,1320px)!important;
  margin-left:auto!important;
  margin-right:auto!important
}
/* Blog detail: bottom button */
.ds-blog-detail__bottom{margin:48px 0 24px!important;text-align:center!important}
.ds-blog-detail__bottom .ds-btn{min-width:240px!important}
/* Fun slider (razvl_i_dosug) — same pattern as rooms slider */
.ds-fun__viewport{overflow:hidden!important;width:100%!important}
.ds-fun__track{display:flex!important;gap:24px!important;transition:transform .4s ease!important;will-change:transform!important}
.ds-fun__track .ds-fun-card{flex:0 0 auto!important;flex-shrink:0!important;box-sizing:border-box!important}
.ds-fun__head{display:flex!important;align-items:flex-end!important;justify-content:space-between!important;gap:16px!important;margin-bottom:24px!important}
.ds-fun__nav{display:flex!important;align-items:center!important;gap:16px!important}
.ds-fun__page{font-size:14px!important;color:var(--ds-color-body,#142D1A)!important;min-width:36px!important;text-align:center!important}
@media (max-width:768px){.ds-fun__head{flex-direction:column;align-items:flex-start;gap:12px}}
/* === New "About" block layout === */

.ds-about__head {
  margin: 0 0 32px;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}

.ds-about__title-main {
  font-family: var(--ds-font-heading);
  font-size: 38px;
  font-weight: 800;
  color: var(--ds-color-heading);
  line-height: 1.1;
  margin: 0;
  text-align: left;
}

.ds-about__title-badge {
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.3px;
  margin-bottom: 16px;
  margin-top: 10px;
}

.ds-about__hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
  align-items: stretch;
}

.ds-about__text-card {
  position: relative;
  overflow: hidden;
  background: #ffffff;
  border: 2px solid var(--ds-color-bg-tag);
  border-radius: 28px;
  padding: 44px 40px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.ds-about__pattern {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  pointer-events: none;
  z-index: 1;
  line-height: 0;
}
.ds-about__pattern svg {
  display: block;
  width: 100%;
  height: auto;
}
.ds-about__text-inner {
  position: relative;
  z-index: 2;
  text-align: left;
  align-self: stretch;
}

.ds-about__text-title {
  font-family: var(--ds-font-heading);
  font-size: 22px;
  font-weight: 800;
  line-height: 1.3;
  color: var(--ds-color-heading);
  margin: 0 0 20px;
  text-align: left;
}

.ds-about__paragraph {
  font-size: 16px;
  line-height: 1.55;
  color: var(--ds-color-heading);
  margin: 0 0 16px;
  text-align: left;
}
.ds-about__paragraph:last-of-type {
  margin-bottom: 0;
}

.ds-about__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: auto;
  padding-top: 24px;
}

.ds-about__badge {
  background: #fff;
  color: var(--ds-color-heading);
  font-size: 14px;
  font-weight: 500;
  padding: 8px 16px;
  border-radius: 100px;
}

.ds-about__image {
  display: block;
  background-size: cover;
  background-position: center;
  background-color: #ddd;
  border-radius: 28px;
  min-height: 480px;
  text-decoration: none;
  transition: transform 0.4s ease;
}
.ds-about__image:hover { transform: scale(1.01); }

/* Mobile */
@media (max-width: 900px) {
  .ds-about__hero { grid-template-columns: 1fr; }
  .ds-about__image { min-height: 320px; order: -1; }
  .ds-about__title-main { font-size: 32px; gap: 12px; }
  .ds-about__text-card { padding: 28px 24px; }
}

@media (max-width: 640px) {
  .ds-about__title-main { font-size: 26px; }
  .ds-about__text-title { font-size: 18px; }
}
/* === CTA pattern background === */
.ds-cta-pattern {
  position: relative;
  overflow: hidden;
  background-color: var(--ds-color-bg-muted, #F1F1F1);
}
.ds-cta-pattern::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url("/upload/cta_pattern.svg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  pointer-events: none;
  z-index: 0;
  opacity: 0.95;
}
.ds-cta-pattern > * {
  position: relative;
  z-index: 1;
}
/* Form validation visual feedback */
.ds-help__form-input:invalid:not(:placeholder-shown),
.ds-help__form-input.user-invalid {
  border-color: #d92d2d;
  box-shadow: 0 0 0 3px rgba(217, 45, 45, 0.12);
}
.ds-help__form-check input[type="checkbox"]:not(:checked).user-invalid + span {
  color: #d92d2d;
}
.ds-help__form-check input[type="checkbox"]:not(:checked).user-invalid + span::before {
  border-color: #d92d2d !important;
  box-shadow: 0 0 0 3px rgba(217, 45, 45, 0.12);
}
.ds-help__form-check input[type="checkbox"]:not(:checked).user-invalid + span::after {
  content: "* обязательно";
  display: inline-block;
  margin-left: 8px;
  font-size: 12px;
  color: #d92d2d;
  font-weight: 500;
}
/* Popup form validation visual feedback */
.form--review .form__field-input.error,
.form--review .form__field-input.user-invalid {
  border-color: #d92d2d !important;
  box-shadow: 0 0 0 3px rgba(217, 45, 45, 0.12);
}
.form--review .form__row--validate.error .form__field-warning {
  display: block !important;
}
/* Checkbox label: красный цвет + красная рамка когда не отмечен и есть ошибка */
/* Родительский div.checkbox получает красный фон, чтобы было видно визуально */
.form--review .checkbox:has(input.error),
.form--review .checkbox:has(input.user-invalid),
.form--review div.checkbox:has(input.error),
.form--review div.checkbox:has(input.user-invalid) {
  padding: 8px 12px !important;
  border: 2px solid #d92d2d !important;
  border-radius: 8px !important;
  background: rgba(217, 45, 45, 0.08) !important;
  display: inline-block !important;
}
/* Сам input — красная обводка */
.form--review .checkbox input.error,
.form--review .checkbox input.user-invalid {
  outline: 2px solid #d92d2d !important;
  outline-offset: 2px;
}
/* Label — красный цвет */
.form--review .checkbox input.error + label,
.form--review .checkbox input.user-invalid + label,
.form--review .checkbox__input.error ~ .checkbox__label,
.form--review .checkbox__input.user-invalid ~ .checkbox__label {
  color: #d92d2d;
}
/* === Popup form validation === */
.ds-cb-checkbox.ds-cb-checkbox--invalid {
  display: inline-block !important;
  padding: 10px 14px !important;
  border: 2px solid #d92d2d !important;
  border-radius: 10px !important;
  background: rgba(217, 45, 45, 0.08) !important;
  outline: 2px solid #d92d2d !important;
  outline-offset: 0 !important;
  animation: ds-cb-shake 0.4s ease-in-out !important;
}
.ds-cb-checkbox.ds-cb-checkbox--invalid .checkbox__label {
  color: #d92d2d !important;
  font-weight: 500 !important;
}
.ds-cb-checkbox.ds-cb-checkbox--invalid::before {
  content: "* обязательно" !important;
  display: block !important;
  color: #d92d2d !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  margin-bottom: 4px !important;
}
@keyframes ds-cb-shake {
  0%, 100% { transform: translateX(0); }
  25% { transform: translateX(-4px); }
  75% { transform: translateX(4px); }
}
/* Hero block height = 654px */
.ds-hero {
  min-height: 654px !important;
}
.ds-hero__left,
.ds-hero__right {
  min-height: 654px !important;
  height: 654px !important;
}
.ds-hero__slider,
.ds-hero__image {
  height: 654px !important;
  min-height: 654px !important;
}




