/*
  Селезневские бани — мягкая геометрия.
  Изменяем только форму углов: никаких размеров, отступов, сеток или позиций.
  Скругления рассчитаны на сохранение выразительного редакционного дизайна.
*/

:root {
  --bani-radius-control: 10px;
  --bani-radius-photo: 14px;
  --bani-radius-card: 20px;
}

/* Главная: интерактивные кнопки и плитки с фотографиями. */
.btn,
.contact-btn,
.site-mobile-menu,
.site-mobile-menu a:focus-visible {
  border-radius: var(--bani-radius-control);
}

.public-card,
.room.room-1,
.room.room-2,
.room.room-3,
.room-card {
  border-radius: var(--bani-radius-card);
  overflow: hidden;
}

.gallery-card {
  border-radius: var(--bani-radius-photo);
  overflow: hidden;
}

/* Внутренние страницы: фотогалереи и все основные кнопки действий. */
.room-photo {
  border-radius: var(--bani-radius-photo);
  overflow: hidden;
}

.room-hero-cta a,
.price-actions a,
.room-mobile-bar a,
.room-mobile-bar button,
.room-footer-actions .btn,
.room-header .room-nav .room-phone {
  border-radius: var(--bani-radius-control);
}

/* Кликабельный телефон в мобильной шапке внутренних страниц. */
.room-header .mobile-header-phone {
  display: none;
}

/* Понятная навигация внутренних страниц вместо декоративного «гамбургера». */
.room-header .header-home-link {
  padding: 10px 14px;
  border: 1px solid rgba(255, 255, 255, .28);
  color: #fff;
}

.room-header .mobile-back-link {
  display: none;
}

/* Нижний звонок остаётся компактным, но больше не теряется на тёмной панели. */
.room-mobile-bar a {
  margin: 7px;
  border: 1px solid rgba(255, 255, 255, .72) !important;
  border-radius: var(--bani-radius-control);
  background: #f1e8d9;
  color: #171411 !important;
  font-size: 8.5px;
  font-weight: 700;
  box-shadow: 0 4px 16px rgba(0, 0, 0, .28);
}

.room-mobile-bar a:hover,
.room-mobile-bar a:focus-visible {
  background: #fffaf1;
  border-color: #fff !important;
}

/* Единое затемнение обложек VIP-номеров и общественных разрядов. */
.room-page .room-hero::after {
  background: linear-gradient(
    90deg,
    rgba(0, 0, 0, .56) 0%,
    rgba(0, 0, 0, .53) 34%,
    rgba(0, 0, 0, .31) 52%,
    rgba(0, 0, 0, .07) 70%,
    rgba(0, 0, 0, .02) 100%
  ) !important;
}

@media (max-width: 900px) {
  .room-header {
    grid-template-columns: 64px minmax(0, 1fr) 64px !important;
  }

  .room-header::after {
    content: none !important;
    display: none !important;
  }

  .room-header .mobile-header-phone {
    display: inline-flex;
    grid-column: 2;
    grid-row: 1;
    justify-self: center;
    align-items: center;
    min-height: 38px;
    color: #fff;
    font-size: 11px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: .035em;
    white-space: nowrap;
  }

  .room-header > .brand {
    grid-column: 3 !important;
    grid-row: 1;
    justify-self: end;
  }

  .room-header .mobile-back-link {
    display: inline-flex;
    grid-column: 1;
    grid-row: 1;
    justify-self: start;
    align-items: center;
    min-height: 38px;
    color: #fff;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
  }

  .room-page:not(.public-detail) .room-mobile-bar {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }

  .public-detail .room-mobile-bar {
    display: flex;
    justify-content: center;
    align-items: stretch;
    padding: 0 18px env(safe-area-inset-bottom);
  }

  .public-detail .room-mobile-bar a:first-child {
    width: min(190px, 100%);
  }

  .room-page .room-hero::after {
    background: linear-gradient(
      90deg,
      rgba(0, 0, 0, .58) 0%,
      rgba(0, 0, 0, .46) 64%,
      rgba(0, 0, 0, .28) 100%
    ) !important;
  }
}

@media (max-width: 360px) {
  .room-header {
    padding-inline: 14px !important;
    grid-template-columns: 54px minmax(0, 1fr) 54px !important;
  }

  .room-header .mobile-header-phone {
    font-size: 10px;
  }
}

/* Спецпредложение выделяется мягко, без перестройки таблицы цен. */
.vip-revised .price-promo {
  border-radius: 12px;
}

/* Рамки фокуса повторяют радиусы карточек и клавиатурную навигацию. */
#public .public-card .public-card-hitarea {
  border-radius: inherit;
}

.public-card:focus-within,
.room:focus-visible,
.room-photo:focus-visible,
.gallery-card:focus-visible {
  outline-offset: 3px;
}

@media (max-width: 700px) {
  :root {
    --bani-radius-control: 9px;
    --bani-radius-photo: 11px;
    --bani-radius-card: 15px;
  }

  .site-mobile-menu {
    border-radius: 12px;
    overflow: hidden;
  }
}

/* На опубликованном сайте не показываем незаполненные редакторские слоты. */
.bani-live-view .room-gallery-grid .room-photo--empty:not(.photo-replaced) {
  display: none;
}
