/**
 * Сверка с эталоном: dev_aitourist/.workingmat/Redesign/styles.css
 * Пути к ассетам — относительно css/ → ../assets/rp-fig/
 */
html {
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .rp-nav-panel.collapsing {
    transition-duration: 0.01ms;
  }

  /* Меньше нагрузки на слабых устройствах: только затемнение */
  .rp-topbar::before {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
}

:root {
  /* Горизонтальные поля контента: только через .rp-page-wrap (~8–8,5% ширины на больших экранах). */
  --rp-page-gutter-min: 16px;
  --rp-page-gutter-x: clamp(8vw, 8.25vw, 8.5vw);
  --rp-section-gap-y: 120px;
  --rp-accent: #fbae33;
  --rp-ink: #273b4a;
  --rp-faq-icon-muted: #8f8f8f;
  --rp-hero-overlay: rgba(39, 59, 74, 0.35);
  /* Полоса над героем: затемнение + размытие фона */
  --rp-topbar-scrim: rgba(39, 59, 74, 0.42);
  --rp-topbar-blur: 14px;
  /* Панель главного меню: #273B4A @ 80% */
  --rp-nav-sheet-bg: rgba(39, 59, 74, 0.8);
  --rp-nav-col-rule: #fff;
  --rp-card-shadow: 3px 4px 4px rgba(0, 0, 0, 0.25);
  --rp-culture: #2f6fde;
  --rp-parks: #2ea36c;
  --rp-ent: #7646d9;
  --rp-history: #c9a227;
}

body {
  font-family: "Raleway", system-ui, sans-serif;
  color: var(--rp-ink);
  background: #fff;
}

/* Горизонтальные поля основного контента (без Bootstrap .container для секций). */
.rp-page-wrap {
  box-sizing: border-box;
  width: 100%;
  padding-inline: var(--rp-page-gutter-min);
}

@media (min-width: 992px) {
  .rp-page-wrap {
    padding-inline: max(var(--rp-page-gutter-min), var(--rp-page-gutter-x));
  }
}

/* Вертикальный ритм между основными блоками: суммарно 120px между соседними секциями */
.rp-section-y {
  padding-block: calc(var(--rp-section-gap-y) / 2);
}

.rp-promo.rp-section-y {
  padding-block: 0;
  margin-block: calc(var(--rp-section-gap-y) / 2);
}

.rp-search-input,
.rp-footer-email-field,
#footerEmail {
  font-family: "Roboto", system-ui, sans-serif;
  font-variant-numeric: tabular-nums;
}

.rp-topbar {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 35;
  padding: clamp(0.5rem, 2vw, 1.25rem) 0;
  isolation: isolate;
}

/* Полупрозрачное затемнение и размытие под верхней строкой (герой позади) */
.rp-topbar::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background: var(--rp-topbar-scrim);
  backdrop-filter: blur(var(--rp-topbar-blur));
  -webkit-backdrop-filter: blur(var(--rp-topbar-blur));
  pointer-events: none;
}

.rp-topbar-inner {
  position: relative;
  z-index: 1;
  overflow: visible;
}

.rp-navbar-actions {
  overflow: visible;
}

.rp-topbar .navbar {
  --bs-navbar-color: rgba(255, 255, 255, 0.95);
  --bs-navbar-hover-color: #fff;
}

/* Шапка: лого слева | на lg+ центр занят гамбургером | справа язык / профиль / «К экскурсиям»; гамбургер справа только < lg */
.rp-navbar-shell {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-between;
  gap: clamp(0.35rem, 2vw, 0.85rem);
}

.rp-navbar-center-slot {
  flex: 1 1 auto;
  min-width: 0;
  justify-content: center;
}

.rp-navbar-shell .navbar-brand {
  margin-right: 0;
}

.rp-hamburger-btn {
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 6px;
  width: 44px;
  height: 44px;
  padding: 0;
  margin: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #fff;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: opacity 0.2s ease;
}

.rp-hamburger-btn:hover {
  opacity: 0.92;
}

.rp-hamburger-btn:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
}

.rp-hamburger-bar {
  display: block;
  width: 26px;
  height: 3px;
  border-radius: 2px;
  background: currentColor;
}

.rp-navbar-actions {
  flex-shrink: 0;
  align-items: center;
}

/* Мобильная шапка: одна строка — лого | Rus, профиль, пилюля, гамбургер */
@media (max-width: 991.98px) {
  .rp-navbar-actions {
    flex-wrap: nowrap;
    max-width: none;
    min-width: 0;
  }

  .rp-navbar-actions .rp-navbar-lang {
    flex-shrink: 0;
    order: 0;
  }

  .rp-navbar-actions .rp-navbar-profile {
    flex-shrink: 0;
    order: 0;
  }

  .rp-navbar-actions .rp-navbar-pills-wrap {
    flex-shrink: 0;
    justify-content: flex-end;
    order: 0;
    padding-top: 0;
    min-width: 0;
  }

  .rp-navbar-actions .rp-hamburger-btn {
    order: 0;
    margin-left: 0;
    flex-shrink: 0;
  }

  .rp-navbar-shell .rp-navbar-actions {
    margin-left: 0.5rem;
  }
}

.rp-navbar-lang {
  white-space: nowrap;
  font-size: clamp(0.75rem, 2vw, 0.9375rem);
  line-height: 1;
}

/* Язык: выпадающий список (макет — globe + Rus + chevron), без флагов */
.rp-lang-switcher {
  position: relative;
  flex-shrink: 0;
}

.rp-lang-toggle {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.15rem;
  border: 0;
  background: transparent;
  color: #fff;
  font-family: inherit;
  font-size: clamp(0.75rem, 2vw, 0.9375rem);
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
  cursor: pointer;
}

.rp-lang-toggle:hover,
.rp-lang-toggle:focus-visible {
  color: #fff;
  opacity: 0.92;
}

.rp-lang-toggle:focus-visible {
  outline: 2px solid var(--rp-accent);
  outline-offset: 2px;
  border-radius: 4px;
}

.rp-lang-switcher .language-popup.rp-lang-dropdown {
  display: none;
  position: absolute;
  top: calc(100% + 0.5rem);
  right: 0;
  min-width: 10.5rem;
  margin: 0;
  padding: 0.35rem 0;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
  z-index: 1100;
}

.rp-lang-switcher.active .language-popup.rp-lang-dropdown {
  display: block;
}

.rp-lang-switcher .rp-lang-option.language-btn {
  display: flex;
  align-items: center;
  width: 100%;
  padding: 0.5rem 1rem;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--rp-ink);
  font-family: inherit;
  font-size: 0.9375rem;
  font-weight: 500;
  text-align: left;
  cursor: pointer;
}

.rp-lang-switcher .rp-lang-option.language-btn:hover {
  background: rgba(251, 174, 51, 0.12);
}

.rp-lang-switcher .rp-lang-option.language-btn.active {
  background: rgba(251, 174, 51, 0.2);
  color: var(--rp-ink);
  font-weight: 600;
}

.rp-navbar-profile {
  line-height: 1;
}

.rp-navbar-pill {
  white-space: nowrap;
}

/* Главное меню: разворот вниз из-под шапки (фрейм Figma), не offcanvas */
.rp-nav-backdrop {
  position: fixed;
  inset: 0;
  z-index: 28;
  margin: 0;
  padding: 0;
  border: 0;
  background: rgba(39, 59, 74, 0.42);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.rp-nav-backdrop:focus {
  outline: none;
}

.rp-nav-backdrop:focus-visible {
  outline: 2px solid var(--rp-accent);
  outline-offset: -2px;
}

.rp-nav-panel {
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  z-index: 3;
  margin-top: 0.35rem;
  border: 0;
}

.rp-nav-panel:not(.show) {
  pointer-events: none;
}

.rp-nav-panel.show {
  pointer-events: auto;
}

.rp-nav-panel-sheet {
  margin-inline: 0;
  width: 100%;
  max-width: 100%;
  background: var(--rp-nav-sheet-bg);
  border-radius: 0;
  border: 0;
  box-shadow: 0 12px 40px rgba(39, 59, 74, 0.15);
  overflow: hidden;
}

.rp-nav-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.25rem;
  border-bottom: 0;
}

.rp-nav-panel-title {
  font-family: "Raleway", system-ui, sans-serif;
  font-weight: 700;
  font-size: 1.125rem;
  color: #fff;
}

.rp-nav-panel-close {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: transparent;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.rp-nav-panel-close-ring {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  border: 1px solid rgba(255, 255, 255, 0.65);
  background:
    linear-gradient(#fff, #fff) no-repeat center/0.85rem 1px,
    linear-gradient(#fff, #fff) no-repeat center/1px 0.85rem;
}

.rp-nav-panel-close:hover .rp-nav-panel-close-ring {
  border-color: #fff;
}

.rp-nav-panel-close:focus-visible {
  outline: 2px solid var(--rp-accent);
  outline-offset: 2px;
}

.rp-nav-panel-links {
  display: flex;
  flex-direction: column;
  padding: 0.25rem 0 0.5rem;
}

@media (min-width: 992px) {
  .rp-nav-panel-links {
    position: relative;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    padding: 0;
    gap: 0;
    align-items: stretch;
  }

  /* Две вертикальные линии 2px на всю высоту раскрытого меню (между колонками) */
  .rp-nav-panel-links::before,
  .rp-nav-panel-links::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    width: 2px;
    background: var(--rp-nav-col-rule);
    pointer-events: none;
    z-index: 1;
  }

  .rp-nav-panel-links::before {
    left: calc(100% / 3 - 1px);
  }

  .rp-nav-panel-links::after {
    left: calc(200% / 3 - 1px);
  }
}

.rp-nav-drawer-link {
  display: block;
  width: 100%;
  font-family: "Raleway", system-ui, sans-serif;
  font-weight: 600;
  font-size: 1rem;
  color: #fff;
  text-decoration: none;
  padding: 1rem 1.25rem;
  border-bottom: 0;
  transition: color 0.15s ease, background-color 0.15s ease;
}

@media (min-width: 992px) {
  .rp-nav-panel-links .rp-nav-drawer-link {
    margin: 0;
    border-bottom: 0;
    border-right: 0;
    position: relative;
    z-index: 2;
  }
}

.rp-nav-drawer-link:hover,
.rp-nav-drawer-link:focus-visible {
  color: #fff;
  background-color: rgba(255, 255, 255, 0.12);
}

.rp-nav-drawer-link:focus-visible {
  outline: 2px solid var(--rp-accent);
  outline-offset: -2px;
  z-index: 0;
}

.rp-nav-drawer-link[aria-current="page"] {
  background-color: rgba(251, 174, 51, 0.22);
}

.rp-nav-submenu-wrap {
  display: flex;
  flex-direction: column;
}

.rp-nav-submenu-head {
  display: flex;
  align-items: stretch;
  gap: 0;
}

.rp-nav-drawer-link--toggle {
  border: 0;
  background: transparent;
  cursor: pointer;
  flex: 1 1 auto;
}

.rp-nav-submenu-caret {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  border: 0;
  background: transparent;
  color: #fff;
  cursor: pointer;
  transition: background-color 0.15s ease;
}

.rp-nav-submenu-caret:hover,
.rp-nav-submenu-caret:focus-visible {
  background-color: rgba(255, 255, 255, 0.12);
}

.rp-nav-submenu-caret[aria-expanded="true"] i {
  transform: rotate(180deg);
}

.rp-nav-submenu {
  display: none;
  flex-direction: column;
  background: rgba(0, 0, 0, 0.12);
}

.rp-nav-submenu.is-open {
  display: flex;
}

.rp-nav-drawer-link--sub {
  padding-left: 2rem;
  font-weight: 500;
  font-size: 0.9375rem;
}

@media (min-width: 992px) {
  .rp-nav-submenu-wrap {
    grid-column: span 1;
  }
}

.rp-logo {
  color: #fff;
  text-decoration: none;
  line-height: 0;
}

.rp-logo:hover {
  color: #fff;
  opacity: 0.92;
}

.rp-logo:focus-visible {
  outline: 2px solid var(--rp-accent);
  outline-offset: 4px;
  border-radius: 4px;
}

.rp-logo-img {
  display: block;
  width: auto;
  height: clamp(1.85rem, 5.2vw, 2.6rem);
  max-width: min(100%, 13.5rem);
}

.rp-hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 6rem 0 4rem;
  background: #0b0f14;
  box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
  overflow: hidden;
}

.rp-hero-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}

.rp-hero-bg-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

.rp-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(
    105deg,
    rgba(8, 12, 22, 0.72) 0%,
    rgba(8, 12, 22, 0.35) 45%,
    rgba(8, 12, 22, 0.55) 100%
  );
  pointer-events: none;
}

.rp-hero-inner {
  position: relative;
  z-index: 2;
  width: 100%;
}

.rp-hero-catalog-toolbar {
  width: 100%;
}

.rp-hero-catalog-toolbar .rp-catalog-toolbar {
  width: 100%;
  max-width: 100%;
}

.rp-hero-catalog-toolbar .rp-catalog-filters-btn {
  flex-shrink: 0;
}

/* Hero (до lg): три категории — одна строка капсул по центру (как #routes); «Фильтры» — ниже */
@media (max-width: 991.98px) {
  .rp-catalog-toolbar--hero-mobile {
    align-items: center;
  }

  .rp-catalog-segment--hero-mobile-grid {
    display: inline-flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
    gap: clamp(0.28rem, 1.4vw, 0.55rem);
    max-width: 100% !important;
    min-width: 0;
    width: auto;
    margin-inline: auto;
    padding: clamp(0.32rem, 1vw, 0.52rem);
    border-radius: 999px;
    background: #f5f5f5;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .rp-catalog-segment--hero-mobile-grid::-webkit-scrollbar {
    display: none;
  }

  /* Неактивные вкладки (в т.ч. «Экскурсии») — прозрачный фон и контур акцента */
  .rp-catalog-segment--hero.rp-catalog-segment--hero-mobile-grid .rp-catalog-tab {
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    white-space: nowrap;
    font-weight: 600;
    font-size: clamp(0.65rem, 2.35vw, 0.8125rem);
    line-height: 1.25;
    font-family: inherit;
    border-radius: 999px;
    padding: 0.38rem clamp(0.45rem, 2vw, 0.95rem);
    border: 2px solid var(--rp-accent);
    background: transparent;
    color: #fff;
    cursor: pointer;
    transition:
      background-color 0.18s ease,
      color 0.18s ease,
      border-color 0.18s ease;
  }

  .rp-catalog-segment--hero.rp-catalog-segment--hero-mobile-grid .rp-catalog-tab:hover:not(.active) {
    background: rgba(255, 255, 255, 0.12);
    border-color: var(--rp-accent);
    color: #fff;
  }

  .rp-catalog-segment--hero.rp-catalog-segment--hero-mobile-grid .rp-catalog-tab.active {
    background: var(--rp-accent);
    border-color: var(--rp-accent);
    color: #fff;
  }

  .rp-catalog-segment--hero.rp-catalog-segment--hero-mobile-grid .rp-catalog-tab:focus-visible {
    outline: 2px solid var(--rp-accent);
    outline-offset: 2px;
  }
}

@media (max-width: 991.98px) {
  .rp-hero {
    /* Однострочная шапка — меньше отступ под липкий бар */
    padding-top: clamp(4.85rem, 16vw, 5.85rem);
  }

  /* ~90px между подзаголовком героя и строкой выбора города */
  .rp-hero-lead {
    margin-bottom: 90px !important;
  }
}

.rp-hero-title {
  font-weight: 500;
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 1.15;
  color: #fff;
  max-width: 52rem;
  margin-left: auto;
  margin-right: auto;
}

.rp-hero-title strong {
  font-weight: 600;
}

.rp-hero-title .rp-accent {
  color: var(--rp-accent);
}

.rp-hero-lead {
  font-weight: 500;
  font-size: clamp(1.15rem, 2vw, 1.625rem);
  color: rgba(255, 255, 255, 0.95);
  max-width: 36rem;
  margin-left: auto;
  margin-right: auto;
}

.rp-search-shell {
  max-width: 29.125rem;
  margin-left: auto;
  margin-right: auto;
  padding: 1px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.95);
  background: transparent;
  box-shadow: none;
  color-scheme: light;
}

.rp-search-inner {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 3.125rem;
  padding: 4px 6px 4px 1.1rem;
  border-radius: 999px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.2);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  box-shadow: 0 2px 16px rgba(0, 0, 0, 0.08);
}

.rp-search-input {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  align-self: center;
  min-height: 2.75rem;
  box-sizing: border-box;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0.55rem 0.35rem 0.55rem 0 !important;
  font-weight: 600;
  font-size: 1.125rem;
  line-height: 1.3;
  letter-spacing: 0.01em;
  color: #fff !important;
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
  -webkit-text-fill-color: #fff;
}

#citySearch {
  color: #fff !important;
  -webkit-text-fill-color: #fff;
}

.rp-search-input:focus {
  background: transparent !important;
  background-color: transparent !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff;
  box-shadow: none !important;
  outline: 0;
}

.rp-search-input::placeholder {
  color: rgba(255, 255, 255, 0.75) !important;
  font-weight: 600;
  opacity: 1;
}

.rp-search-input::-webkit-input-placeholder {
  color: rgba(255, 255, 255, 0.75) !important;
  -webkit-text-fill-color: rgba(255, 255, 255, 0.75);
}

.rp-search-shell .rp-search-input:-webkit-autofill,
.rp-search-shell .rp-search-input:-webkit-autofill:hover,
.rp-search-shell .rp-search-input:-webkit-autofill:focus {
  transition: background-color 50000s ease-out;
  -webkit-box-shadow: 0 0 0 1000px rgba(255, 255, 255, 0.15) inset !important;
  box-shadow: 0 0 0 1000px rgba(255, 255, 255, 0.15) inset !important;
  -webkit-text-fill-color: #fff !important;
}

.rp-search-input::-webkit-search-cancel-button {
  -webkit-appearance: none;
  appearance: none;
  display: none;
}

.rp-search-submit {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 8.5rem;
  margin: 0;
  padding: 0.65rem 1.45rem;
  border: 0 !important;
  border-radius: 999px;
  font-family: inherit;
  font-weight: 700;
  font-size: 1.125rem;
  line-height: 1.2;
  letter-spacing: 0.02em;
  color: #fff !important;
  background: var(--rp-accent) !important;
  background-color: var(--rp-accent) !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
  cursor: pointer;
}

.rp-search-submit:hover {
  color: #fff;
  filter: brightness(1.08);
}

.rp-search-submit:active {
  color: #fff;
  filter: brightness(0.96);
}

.rp-search-submit:focus-visible {
  outline: 2px solid var(--rp-accent);
  outline-offset: 2px;
}

.rp-how-section {
  background: #fff;
}

.rp-how-columns {
  --bs-gutter-x: 1.75rem;
}

@media (min-width: 992px) {
  .rp-how-columns {
    --bs-gutter-x: 2rem;
    align-items: center;
  }
}

/* На десктопе колонки заполняют доступную ширину (.rp-page-wrap уже задаёт поля). */
.rp-how-stack {
  max-width: 100%;
  width: 100%;
}

.rp-phone-mock {
  position: relative;
  max-width: 320px;
}

.rp-phone-mock--single {
  max-width: 373px;
}

.rp-phone-mock--single img {
  display: block;
  width: 100%;
  height: auto;
}

.rp-phone-mock--composite {
  max-width: 320px;
  width: 100%;
}

/* Блок «Как это работает?»: один экспорт с несколькими экранами */
.rp-phone-mock--how-all {
  max-width: min(100%, clamp(260px, 42vw, 520px));
  width: 100%;
}

.rp-phone-mock--how-all img {
  display: block;
  width: auto;
  max-width: 100%;
  max-height: 600px;
  height: auto;
  margin-inline: auto;
  object-fit: contain;
}

/* Экран того же габарита, что и рамка: слой под PNG с прозрачным «окном» */
.rp-phone-stack {
  position: relative;
  display: block;
  width: 100%;
  line-height: 0;
}

.rp-phone-screen-layer {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  pointer-events: none;
  border-radius: 0;
  box-shadow: none;
}

.rp-phone-frame {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: auto;
  pointer-events: none;
}

.rp-pill-orange {
  background: var(--rp-accent);
  color: #fff;
  font-weight: 500;
  font-size: 1rem;
  border-radius: 20px;
  padding: 0.5rem 1.25rem;
  border: 0;
  text-decoration: none;
  display: inline-block;
}

.rp-pill-orange:hover {
  color: #fff;
  filter: brightness(1.05);
}

.rp-pill-outline {
  background: transparent;
  color: #fff;
  font-weight: 500;
  font-size: 1rem;
  border-radius: 20px;
  padding: 0.45rem 1.2rem;
  border: 1px solid #fff;
  text-decoration: none;
  display: inline-block;
}

.rp-pill-outline:hover {
  color: #fff;
  background: rgba(255, 255, 255, 0.12);
}

button.rp-pill-outline {
  cursor: pointer;
  appearance: none;
  line-height: 1.25;
}

button.rp-pill-outline:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
}

.rp-promo-code-btn {
  margin-top: 0;
}

/* Group 52: Rectangle 4273 + текст SPRING2026 — Raleway Regular 29px */
button.rp-promo-code-btn.rp-promo-code-btn--g52.rp-pill-outline {
  box-sizing: border-box;
  width: min(211px, 100%);
  height: 48px;
  padding: 0 10px;
  border-radius: 25px;
  border-width: 1px;
  font-family: "Raleway", system-ui, sans-serif;
  font-weight: 400;
  font-size: 29px;
  letter-spacing: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

@media (max-width: 575.98px) {
  button.rp-promo-code-btn.rp-promo-code-btn--g52.rp-pill-outline {
    font-size: clamp(1.125rem, 4.5vw, 29px);
  }
}

.rp-section-heading {
  margin-bottom: clamp(1.75rem, 4vw, 2.75rem);
}

.rp-section-kicker {
  font-weight: 600;
  font-size: 0.95rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--rp-accent);
  text-align: center;
}

.rp-section-title {
  font-weight: 600;
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  color: var(--rp-ink);
  text-align: center;
  max-width: 40rem;
  margin-left: auto;
  margin-right: auto;
  line-height: 1.2;
}

/* Длинный заголовок блока FAQ — ближе к экспорту главной */
#faq .rp-section-title {
  max-width: min(100%, 52rem);
}

.rp-card-tour {
  border-radius: 25px;
  overflow: hidden;
  border: 1px solid #bdbdbd;
  box-shadow: var(--rp-card-shadow);
  height: 100%;
  background: #fff;
  transition: border-color 0.22s ease, box-shadow 0.22s ease;
}

.rp-card-tour:hover {
  border-color: var(--rp-accent);
  box-shadow: 3px 4px 4px rgba(0, 0, 0, 0.2), 0 0 0 1px color-mix(in srgb, var(--rp-accent) 35%, transparent);
}

.rp-card-tour .card-img-top {
  height: 280px;
  object-fit: cover;
  border-radius: 25px 25px 0 0;
}

.rp-card-tour .card-title {
  font-weight: 600;
  font-size: 1.125rem;
  color: var(--rp-accent);
}

.rp-card-tour .card-text {
  font-size: 0.875rem;
  color: var(--rp-ink);
  line-height: 1.35;
}

.rp-price {
  font-family: "Roboto", system-ui, sans-serif;
  font-weight: 700;
  font-size: 1rem;
  font-variant-numeric: tabular-nums;
  color: var(--rp-ink);
  white-space: nowrap;
}

.rp-blog-date {
  font-family: "Roboto", system-ui, sans-serif;
  font-weight: 400;
  font-variant-numeric: tabular-nums;
}

/* Арифметические цифры и промокоды — Roboto поверх Raleway в тексте */
.rp-num,
.rp-promo-percent {
  font-family: "Roboto", system-ui, sans-serif;
  font-variant-numeric: tabular-nums;
}

/* Две строки: pill-кнопка слева, цена справа (макет) */
.rp-tour-offers {
  gap: 0.65rem !important;
}

/* Скрытие «С автором-гидом» на квест/иммерсив: место в карточке сохраняется */
.rp-tour-offers--hide-author .rp-tour-offer-row--author {
  visibility: hidden;
  pointer-events: none;
  user-select: none;
}

.rp-tour-offer-row--author.is-reserved {
  visibility: hidden;
  pointer-events: none;
  user-select: none;
}

.rp-card-tour .card-body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
}

.rp-card-tour .rp-tour-offers {
  margin-top: auto !important;
}

.rp-tour-type-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  /* Ширина как у «С виртуальным гидом» — обе капсулы одинаковые */
  min-width: 15.75rem;
  max-width: 100%;
  padding: 0.35rem 1.15rem;
  margin: 0;
  border: 1px solid #9e9e9e;
  border-radius: 999px;
  background: #fff;
  color: var(--rp-ink);
  font-family: inherit;
  font-weight: 500;
  font-size: clamp(0.7rem, 1.85vw, 0.8125rem);
  line-height: 1.25;
  text-align: center;
  cursor: pointer;
  transition: border-color 0.18s ease, color 0.18s ease, background-color 0.18s ease;
}

.rp-tour-type-btn:hover {
  border-color: var(--rp-accent);
  color: var(--rp-ink);
  background-color: rgba(251, 174, 51, 0.08);
}

.rp-tour-type-btn:focus-visible {
  outline: 2px solid var(--rp-accent);
  outline-offset: 2px;
}

/* Карточка каталога: кнопка слева, справа капсула + цена (низ цены = низ кнопки) */
.rp-tour-offer-row--virtual,
.rp-tour-offer-row--author {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.65rem 1rem;
  align-items: end;
  min-height: 0;
}

.rp-tour-offer-side {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0.5rem;
  min-width: 0;
  min-height: 3.15rem;
  align-self: end;
}

.rp-tour-offer-side--solo {
  justify-content: flex-end;
}

.rp-tour-book-btn,
.rp-tour-book-btn--placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  min-height: 3.15rem;
  padding: 0.45rem 1rem;
  margin: 0;
  border: none;
  border-radius: 999px;
  background: var(--rp-accent);
  color: #1a1a1a;
  font-family: inherit;
  text-align: center;
  align-self: end;
  box-sizing: border-box;
}

.rp-tour-book-btn {
  cursor: pointer;
  transition: filter 0.18s ease, box-shadow 0.18s ease;
}

.rp-tour-book-btn--placeholder {
  visibility: hidden;
  pointer-events: none;
}

.rp-tour-book-btn:hover {
  filter: brightness(1.03);
  box-shadow: 0 2px 8px rgba(251, 174, 51, 0.45);
}

.rp-tour-book-btn:focus-visible {
  outline: 2px solid var(--rp-ink);
  outline-offset: 2px;
}

.rp-tour-book-btn__title {
  display: block;
  font-weight: 700;
  font-size: clamp(0.75rem, 2vw, 0.875rem);
  line-height: 1.2;
  color: #1a1a1a;
}

.rp-tour-book-btn__sub {
  display: block;
  margin-top: 0.1rem;
  font-weight: 400;
  font-size: clamp(0.625rem, 1.75vw, 0.75rem);
  line-height: 1.2;
  color: #fff;
}

.rp-tour-capacity-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.28rem 0.7rem;
  border-radius: 999px;
  background: #ececec;
  font-family: "Roboto", system-ui, sans-serif;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.2;
  color: var(--rp-ink);
  white-space: nowrap;
  align-self: flex-start;
  margin-bottom: auto;
}

.rp-tour-capacity-badge__icon {
  font-size: 0.95rem;
  color: #6b6b6b;
  flex-shrink: 0;
}

.rp-price--card {
  font-size: clamp(1.85rem, 5.5vw, 2.5rem);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.02em;
  align-self: flex-end;
}

.rp-price--card-note {
  font-size: clamp(0.8125rem, 2.5vw, 1rem);
  font-weight: 600;
  line-height: 1.2;
  text-align: right;
  max-width: 9rem;
  white-space: normal;
}

.rp-tour-more-btn {
  display: inline-flex;
  align-items: center;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--rp-accent, #f95c19);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: color 0.18s ease, border-color 0.18s ease;
}

.rp-tour-more-btn:hover {
  color: #d4501a;
  border-bottom-color: currentColor;
}

/* Загрузка каталога экскурсий по городу (главная) */
.rp-tours-grid-host {
  position: relative;
}

.rp-tours-loader {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: clamp(240px, 36vw, 380px);
  padding: 2rem 1.25rem;
  margin-bottom: 0;
  background: rgba(255, 252, 250, 0.98);
  border-radius: 20px;
}

.rp-tours-loader[hidden] {
  display: none !important;
}

.rp-tours-loader-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.15rem;
  max-width: 22rem;
  text-align: center;
}

.rp-loader-spinner,
.rp-tours-loader-spinner {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  border: 4px solid rgba(251, 174, 51, 0.22);
  border-top-color: var(--rp-accent, #fbae33);
  border-right-color: #f95c19;
  animation: rp-tours-loader-spin 0.9s linear infinite;
}

/* Полноэкранный прелоадер (все rp-страницы) */
.rp-preloader {
  position: fixed;
  inset: 0;
  z-index: 999999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  background: rgba(255, 252, 250, 0.98);
  transition: opacity 0.28s ease, visibility 0.28s ease;
}

.rp-preloader--hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.rp-preloader-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.15rem;
  max-width: 20rem;
  text-align: center;
}

.rp-preloader-text {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--rp-ink, #0d0d0c);
  line-height: 1.45;
}

.rp-tours-loader-text {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--rp-ink, #0d0d0c);
  line-height: 1.45;
}

.rp-tours-grid-host--loading .tourList {
  display: none !important;
}

@keyframes rp-tours-loader-spin {
  to {
    transform: rotate(360deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  .rp-tours-loader-spinner {
    animation-duration: 1.4s;
  }
}

.rp-orange-bar {
  background: var(--rp-accent);
  margin-bottom: calc(var(--rp-section-gap-y) / 2);
}

.rp-orange-bar--promo {
  min-height: 103px;
  padding: clamp(1rem, 3vw, 1.35rem) 0;
  display: flex;
  align-items: center;
}

.rp-orange-bar--promo.is-hidden,
.rp-orange-bar--promo[hidden] {
  display: none !important;
}

.rp-orange-bar-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.85rem 1.5rem;
  text-align: center;
}

.rp-orange-bar-utp {
  font-family: "Raleway", system-ui, sans-serif;
  font-weight: 700;
  font-size: clamp(1rem, 2.4vw, 1.35rem);
  line-height: 1.35;
  color: #1a1a1a;
  max-width: 42rem;
}

.rp-orange-bar-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  padding: 0.5rem clamp(1rem, 3vw, 1.5rem);
  border-radius: 999px;
  background: #fff;
  color: #1a1a1a;
  font-weight: 700;
  font-size: clamp(0.8125rem, 2vw, 0.9375rem);
  line-height: 1.25;
  text-decoration: none;
  white-space: nowrap;
  transition: filter 0.18s ease, box-shadow 0.18s ease;
}

.rp-orange-bar-cta:hover {
  color: #1a1a1a;
  filter: brightness(0.98);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.12);
}

.rp-orange-bar-cta:focus-visible {
  outline: 2px solid #1a1a1a;
  outline-offset: 2px;
}

/* Hero: кнопка «Забронировать экскурсию» — капсула как поле города */
.rp-hero-book-tours-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 29.125rem;
  min-height: 3.125rem;
  padding: 0.55rem 1.5rem;
  border: none;
  border-radius: 999px;
  background: var(--rp-accent);
  color: #1a1a1a;
  font-family: inherit;
  font-weight: 700;
  font-size: clamp(0.9375rem, 2.2vw, 1.125rem);
  line-height: 1.25;
  text-align: center;
  text-decoration: none;
  box-shadow: 0 2px 14px rgba(0, 0, 0, 0.12);
  transition: filter 0.18s ease, box-shadow 0.18s ease;
}

.rp-hero-book-tours-btn:hover {
  color: #1a1a1a;
  filter: brightness(1.04);
  box-shadow: 0 3px 18px rgba(0, 0, 0, 0.16);
}

.rp-hero-book-tours-btn:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
}

.rp-accent-text {
  color: var(--rp-accent);
}

/*
  Типы экскурсий:
  • Hero (<lg): одна строка капсул в серой подложке, по центру (как #routes)
  • #routes (десктоп): серая капсула + таблетки как в макете
*/
.rp-catalog-toolbar {
  row-gap: 0;
}

/* Базово: строка вкладок (Hero, прокрутка на узкой ширине) */
.rp-catalog-segment {
  display: inline-flex;
  flex: 0 1 auto;
  min-width: 0;
  flex-wrap: nowrap;
  align-items: center;
  gap: clamp(0.5rem, 2.5vw, 1.35rem);
  padding: 0;
  border-radius: 0;
  background: transparent;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.rp-catalog-segment::-webkit-scrollbar {
  display: none;
}

/* Десктоп: блок «Экскурсии и маршруты» — серый фон и кнопки-капсулы */
#routes .rp-catalog-toolbar > .rp-catalog-segment {
  flex: 0 1 auto;
  max-width: min(100%, calc(100% - 10rem));
  gap: clamp(0.35rem, 1.2vw, 0.75rem);
  padding: clamp(0.35rem, 1vw, 0.55rem);
  border-radius: 999px;
  background: #f5f5f5;
}

#routes .rp-catalog-tab {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  font-weight: 600;
  font-size: 0.875rem;
  line-height: 1.25;
  font-family: inherit;
  border-radius: 999px;
  padding: 0.45rem clamp(0.85rem, 2vw, 1.35rem);
  border: 1px solid transparent;
  color: #757575;
  background: #fff;
  cursor: pointer;
  white-space: nowrap;
  transition:
    background-color 0.18s ease,
    color 0.18s ease,
    border-color 0.18s ease;
}

#routes .rp-catalog-tab:hover:not(.active) {
  border-color: var(--rp-accent);
  color: #444;
}

#routes .rp-catalog-tab.active {
  background: var(--rp-accent);
  border-color: var(--rp-accent);
  color: #fff;
}

#routes .rp-catalog-tab:focus-visible {
  outline: 2px solid var(--rp-accent);
  outline-offset: 2px;
}

/* Hero: текстовые вкладки с нижней линией */
.rp-catalog-segment--hero .rp-catalog-tab {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  font-weight: 600;
  font-size: clamp(0.8rem, 2.6vw, 0.875rem);
  line-height: 1.25;
  font-family: inherit;
  border-radius: 0;
  padding: 0.2rem 0.15rem;
  border: none;
  border-bottom: 2px solid transparent;
  background: transparent;
  cursor: pointer;
  color: rgba(255, 255, 255, 0.88);
  transition: color 0.18s ease, border-color 0.18s ease;
}

.rp-catalog-segment--hero .rp-catalog-tab:hover:not(.active) {
  color: #fff;
  border-bottom-color: var(--rp-accent);
}

.rp-catalog-segment--hero .rp-catalog-tab.active {
  color: var(--rp-accent);
  border-bottom-color: var(--rp-accent);
}

.rp-catalog-segment--hero .rp-catalog-tab:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
}

.rp-catalog-filters-btn {
  appearance: none;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-weight: 600;
  font-size: 0.875rem;
  white-space: nowrap;
  padding: 0.5rem 1.35rem;
  border-radius: 999px;
  border: 1px solid var(--rp-accent);
  background: var(--rp-accent);
  font-family: inherit;
  cursor: pointer;
  color: #fff;
  transition: filter 0.18s ease, border-color 0.18s ease;
}

.rp-catalog-filters-btn .bi {
  font-size: 1rem;
  color: inherit;
}

.rp-catalog-filters-btn:hover {
  color: #fff;
  background: var(--rp-accent);
  border-color: var(--rp-accent);
  filter: brightness(1.06);
}

.rp-catalog-filters-btn:focus-visible {
  outline: 2px solid var(--rp-ink);
  outline-offset: 2px;
}

/* Hero: «Фильтры» — прозрачная кнопка с контуром акцента, не на всю ширину */
.rp-catalog-filters-btn--hero-outline {
  width: auto;
  align-self: center;
  background: transparent;
  border: 2px solid var(--rp-accent);
  color: #fff;
  filter: none;
}

.rp-catalog-filters-btn--hero-outline .bi {
  color: inherit;
}

.rp-catalog-filters-btn--hero-outline:hover {
  background: rgba(251, 174, 51, 0.15);
  border-color: var(--rp-accent);
  color: #fff;
  filter: none;
}

.rp-catalog-filters-btn--hero-outline:focus-visible {
  outline-color: #fff;
}

.rp-section-muted {
  background: #f5f6f8;
}

.rp-feature-title {
  font-weight: 700;
  font-size: 1rem;
  color: var(--rp-accent);
  margin-bottom: 0.5rem;
}

.rp-feature-text {
  font-size: 0.875rem;
  line-height: 1.4;
  color: var(--rp-ink);
}

.rp-feature-icon {
  font-size: 1.75rem;
  /* Серые иконки во всех брейкпоинтах (секция «Как это работает?») */
  color: var(--rp-faq-icon-muted);
  display: block;
  margin-bottom: 0.5rem;
}

/* «Как это работает?»: на мобильных иконка и заголовок пункта по центру */
@media (max-width: 991.98px) {
  .rp-how-section .rp-feature {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .rp-how-section .rp-feature-icon {
    margin-bottom: 0.5rem;
  }

  .rp-how-section .rp-feature-title {
    width: 100%;
  }

  .rp-how-section .rp-feature-text {
    text-align: center;
  }

  .rp-how-stack {
    max-width: 100%;
    margin-inline: auto;
  }
}

/* Figma Group 32 — «Личный кабинет» (1200×554.99, node 9:316) */
.rp-g32-card {
  width: 100%;
  max-width: none;
  margin-inline: 0;
  background: #ffffff;
  border: 1px solid #e0e0e0;
  border-radius: 30.59px;
  box-shadow: 3px 3.5px 3.496px 1.748px rgba(0, 0, 0, 0.2);
  box-sizing: border-box;
}

.rp-g32-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(1.75rem, 4vw, 2.5rem);
  padding: clamp(1.5rem, 4vw, 4.48rem) clamp(1rem, 3.6vw, 4.097rem);
  min-height: 0;
}

@media (min-width: 992px) {
  .rp-g32-grid {
    grid-template-columns: minmax(240px, 426.51px) minmax(0, 1fr);
    column-gap: clamp(1.5rem, 4vw, 11.3075rem);
    align-items: start;
    padding: 4.479375rem 4.096875rem 4.424375rem;
    min-height: 34.686875rem;
  }
}

@media (min-width: 1200px) {
  .rp-g32-grid {
    grid-template-columns: 426.51px minmax(0, 1fr);
    /* 180.92px — как в Figma между панелью и колонкой текста */
    column-gap: 11.3075rem;
  }
}

.rp-g32-aside-wrap {
  display: flex;
  justify-content: center;
  width: 100%;
}

@media (min-width: 992px) {
  .rp-g32-aside-wrap {
    justify-content: flex-start;
  }
}

.rp-g32-aside {
  width: 100%;
  max-width: 426.51px;
  min-height: 25.783125rem;
  box-sizing: border-box;
  background: rgba(245, 245, 245, 0.7);
  border: 0.874px solid #8f8f8f;
  border-radius: 30.59px;
  padding: 2rem 1.75rem 2.25rem;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.rp-g32-user-wrap {
  margin-bottom: clamp(2.5rem, 5vw, 3.5rem);
}

.rp-g32-user {
  display: block;
  font-size: 53.31px;
  line-height: 1;
  color: #8f8f8f;
}

.rp-g32-tagline {
  margin: 0 0 1.64rem;
  font-family: Raleway, system-ui, sans-serif;
  font-weight: 600;
  font-size: 13.984px;
  line-height: 1.15;
  color: #273b4a;
  text-align: center;
}

.rp-g32-help {
  margin: 0 0 0.545rem;
  font-family: Raleway, system-ui, sans-serif;
  font-weight: 500;
  font-size: 12.236px;
  line-height: 1.15;
  color: #273b4a;
  text-align: center;
}

.rp-g32-btn {
  appearance: none;
  width: 100%;
  max-width: 290.17px;
  min-height: 34.96px;
  box-sizing: border-box;
  border-radius: 17.48px;
  font-family: Raleway, system-ui, sans-serif;
  font-weight: 500;
  font-size: 13.64px;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.35rem 1rem;
  cursor: pointer;
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, filter 0.2s ease;
}

.rp-g32-btn--primary {
  margin-bottom: 2.24rem;
  background: #fbae33;
  color: #ffffff;
  border: 0.874px solid #fbae33;
}

.rp-g32-btn--primary:hover {
  color: #ffffff;
  filter: brightness(1.03);
}

.rp-g32-btn--outline {
  background: transparent;
  color: #8f8f8f;
  border: 0.874px solid #8f8f8f;
  margin-bottom: 0.6rem;
}

.rp-g32-btn--outline:last-of-type {
  margin-bottom: 0;
}

.rp-g32-btn--outline:hover {
  border-color: var(--rp-accent, #fbae33);
  color: #273b4a;
}

.rp-g32-btn:focus-visible {
  outline: 2px solid #273b4a;
  outline-offset: 2px;
}

.rp-g32-features {
  display: flex;
  flex-direction: column;
  gap: 0;
  width: 100%;
  max-width: 100%;
  justify-self: stretch;
}

.rp-g32-feature {
  display: flex;
  align-items: flex-start;
  gap: clamp(1rem, 4vw, 3.6875rem);
}

.rp-g32-feature + .rp-g32-feature {
  margin-top: clamp(0.75rem, 2.2vw, 1.85rem);
}

.rp-g32-feature-ico {
  width: 34.96px;
  height: 34.96px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.rp-g32-feature-ico .bi {
  font-size: 24px;
  line-height: 1;
  color: #8f8f8f;
}

.rp-g32-feature-body {
  flex: 1;
  min-width: 0;
  max-width: 384.56px;
}

/* На десктопе текст преимуществ тянется на всю ширину правой колонки (как на экспорте главной). */
@media (min-width: 992px) {
  .rp-g32-feature-body {
    max-width: none;
  }
}

.rp-g32-feature-title {
  margin: 0 0 0.55rem;
  font-family: Raleway, system-ui, sans-serif;
  font-weight: 600;
  font-size: 18.18px;
  line-height: 1.15;
  color: #fbae33;
}

.rp-g32-feature-text {
  font-family: Raleway, system-ui, sans-serif;
  font-weight: 400;
  font-size: 13.64px;
  line-height: 1.35;
  color: #273b4a;
}

/* Карта / offcanvas — прежние кнопки */
.rp-btn-lk-primary {
  border-radius: 25px;
  font-weight: 600;
  background: var(--rp-accent);
  color: #fff;
  border: 0;
  padding: 0.65rem 1rem;
}

.rp-btn-lk-primary:hover {
  background: #e8a02e;
  color: #fff;
}

.rp-btn-lk-outline {
  border-radius: 25px;
  font-weight: 600;
  border: 1px solid #cfd6dc;
  color: var(--rp-ink);
  background: #fff;
  padding: 0.65rem 1rem;
}

.rp-btn-lk-outline:hover {
  border-color: var(--rp-accent);
  color: var(--rp-ink);
}

.rp-faq-accordion .accordion-button::after {
  display: none;
}

.rp-faq-btn {
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--rp-ink);
  padding: 1rem 0;
  gap: 0.5rem;
}

.rp-faq-btn:not(.collapsed) {
  color: var(--rp-accent);
}

.rp-faq-ico {
  color: var(--rp-faq-icon-muted);
  font-size: 1.25rem;
}

.rp-faq-btn:not(.collapsed) .rp-faq-ico {
  color: var(--rp-faq-icon-muted);
}

.rp-faq-toggle {
  /* было 2rem × 2rem — в 1,5 раза компактнее */
  width: calc(2rem / 1.5);
  height: calc(2rem / 1.5);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--rp-accent);
  color: var(--rp-accent);
  flex-shrink: 0;
}

.rp-faq-toggle .bi {
  font-size: calc(1rem / 1.5);
  line-height: 1;
}

.rp-faq-btn:not(.collapsed) .rp-faq-toggle {
  background: var(--rp-accent);
  color: #fff;
}

/* Promo — Figma node 47:895 «Group 52»: ~1468×525 при ширине вьюпорта ~1470 */
.rp-promo {
  position: relative;
  width: 100%;
  overflow: hidden;
  min-height: clamp(380px, 36vw, 525px);
  background-color: var(--rp-accent);
}

.rp-promo-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}

.rp-promo-bg-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* Фон: заполняем секцию без непропорционального растяжения (cover) */
.rp-promo--group52 {
  background-color: var(--rp-accent);
  background-position: center;
  background-size: cover;
}

@media (min-width: 992px) {
  .rp-promo--group52 {
    min-height: 525px;
    display: flex;
    align-items: center;
    background-size: cover;
    background-position: center;
  }
}

.rp-promo .z-1 {
  position: relative;
  z-index: 1;
}

.rp-promo-inner {
  padding-block: clamp(1.75rem, 4vw, 2.75rem);
  width: 100%;
}

@media (min-width: 992px) {
  .rp-promo:not(.rp-promo--group52) .rp-promo-inner {
    padding-top: clamp(4rem, 14vw, 10.3125rem);
    padding-bottom: clamp(2rem, 8vw, 5.0625rem);
  }

  .rp-promo--group52 .rp-promo-inner {
    padding-block: clamp(0.75rem, 2vw, 1.25rem);
  }
}

@media (min-width: 1400px) {
  .rp-promo:not(.rp-promo--group52) .rp-promo-inner {
    padding-top: 165px;
    padding-bottom: 81px;
  }
}

/* Колонки 745fr / 723fr относительно 1468px ≈ 50.748% / 49.252% */
@media (min-width: 992px) {
  .rp-promo-row--group52 {
    min-height: 0;
    flex-wrap: nowrap;
  }

  .rp-promo-row--group52 > .rp-promo-copy-col {
    flex: 0 0 50.748%;
    max-width: 50.748%;
  }

  .rp-promo-row--group52 > .rp-promo-percent-col {
    flex: 0 0 49.252%;
    max-width: 49.252%;
  }

  /* Текст на x≈290 от левого края артборда 1468 — компенсируем центрирование контейнера */
  .rp-promo-copy-col {
    padding-inline-start: min(290px, max(1rem, calc(100vw * (290 / 1468) - 140px)));
  }
}

.rp-promo-row:not(.rp-promo-row--group52) {
  min-height: clamp(360px, 50vw, 525px);
}

.rp-promo-copy {
  max-width: 100%;
}

@media (min-width: 992px) {
  .rp-promo-copy {
    max-width: 319px;
  }
}

.rp-promo-title {
  font-family: "Raleway", system-ui, sans-serif;
  font-weight: 700;
  font-size: clamp(1.45rem, 1.2vw + 1.1rem, 1.861rem); /* 29.773px */
  line-height: 1.25;
  color: #fff;
  letter-spacing: -0.012em;
  margin-bottom: clamp(0.75rem, 2vw, 1.1875rem); /* ~19px */
  max-width: 19.94rem; /* ~319px */
}

.rp-promo-lede {
  font-family: "Raleway", system-ui, sans-serif;
  font-weight: 400;
  font-size: clamp(0.8125rem, 0.45vw + 0.72rem, 0.93rem); /* 14.887px */
  line-height: 1.5;
  color: #fff;
  margin-bottom: clamp(1.25rem, 5vw, 2.5rem); /* ~40px */
  max-width: 18.31rem; /* ~293px */
}

.rp-promo-code-label-out {
  font-family: "Raleway", system-ui, sans-serif;
  font-weight: 700;
  font-size: clamp(1.45rem, 1.2vw + 1.1rem, 1.861rem); /* 29.773px */
  line-height: 1.25;
  color: #fff;
  margin: 0 0 clamp(0.5rem, 1.5vw, 0.8125rem); /* ~13px до рамки промокода */
}

/* На мобиле узкие блоки с max-width остаются слева — центрируем сами элементы колонки */
@media (max-width: 991.98px) {
  .rp-promo-copy > .rp-promo-title,
  .rp-promo-copy > .rp-promo-lede,
  .rp-promo-copy > .rp-promo-code-label-out {
    margin-left: auto;
    margin-right: auto;
    text-align: center;
  }

  .rp-promo-copy > button.rp-promo-code-btn {
    display: block;
    margin-left: auto;
    margin-right: auto;
  }
}

/* «-30%» — центрирование по горизонтали (группа как единое целое, кегли из макета Group 29) */
.rp-promo-percent.rp-promo-percent--figma {
  position: relative;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: baseline;
  justify-content: center;
  width: 100%;
  max-width: 100%;
  height: auto;
  min-height: 0;
  margin-inline: auto;
  padding-inline: 0.5rem;
  font-family: "Raleway", system-ui, sans-serif;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  flex-shrink: 0;
}

.rp-promo-percent--figma .rp-promo-minus {
  position: relative;
  font-weight: 600;
  font-size: clamp(2.75rem, 10vw, 7.229rem);
  color: #fff;
  line-height: 1;
  margin-right: 0.02em;
  transform: translateY(0.18em);
}

.rp-promo-percent--figma .rp-promo-digits {
  position: relative;
  font-weight: 600;
  font-size: clamp(4rem, 28vw, 17.696rem);
  color: #fff;
  letter-spacing: -0.04em;
  line-height: 0.82;
}

.rp-promo-percent--figma .rp-promo-pct {
  position: relative;
  font-weight: 600;
  font-size: clamp(1.5rem, 8vw, 5.316rem);
  color: #fff;
  line-height: 1;
  margin-left: 0.04em;
  transform: translateY(0.12em);
}

@media (min-width: 1200px) {
  .rp-promo-percent--figma .rp-promo-minus {
    font-size: 115.656px;
    transform: translateY(0.62em);
  }

  .rp-promo-percent--figma .rp-promo-digits {
    font-size: 283.135px;
    line-height: 0.78;
  }

  .rp-promo-percent--figma .rp-promo-pct {
    font-size: 85.062px;
    transform: translateY(0.42em);
  }
}

.rp-map-stage {
  position: relative;
  width: 100%;
  max-width: none;
}

.rp-map-wrap {
  position: relative;
  width: 100%;
  min-height: clamp(340px, 62vw, 503px);
}

@media (min-width: 992px) {
  .rp-map-wrap {
    min-height: 503px;
    height: 503px;
  }
}

.rp-map-wrap .rp-map-fab {
  position: absolute;
  right: 1.25rem;
  bottom: 1.25rem;
  width: 3rem;
  height: 3rem;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

.map-shell {
  position: relative;
  border-radius: 25px;
  overflow: hidden; /* режет выезжающую панель фильтров по скруглению карты до открытия */
  border: 1px solid #e0e0e0;
  width: 100%;
  height: 100%;
  min-height: clamp(340px, 62vw, 503px);
  background: #e8edf0;
}

@media (min-width: 992px) {
  .map-shell {
    min-height: 503px;
    height: 503px;
  }
}

.map-shell iframe {
  width: 100%;
  height: clamp(340px, 62vw, 503px);
  border: 0;
  pointer-events: auto;
  display: block;
}

@media (min-width: 992px) {
  .map-shell iframe {
    height: 503px;
  }
}

.map-markers {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.map-pin {
  position: absolute;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  border: 2px solid #fff;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.24);
  pointer-events: none;
  transition: opacity 180ms ease, transform 180ms ease;
}

.map-pin.is-off {
  opacity: 0.12;
  transform: translate(-50%, -50%) scale(0.75);
}

.legend-dot {
  width: 14px;
  height: 14px;
  border-radius: 4px;
  flex-shrink: 0;
}

/* FAB — 76×76, поз. x≈1092 y≈44 при ширине 1200 (Figma 37:636) */
.rp-mapfab {
  position: absolute;
  top: auto;
  right: clamp(14px, calc(32 / 1200 * 100%), 32px);
  bottom: clamp(14px, 3vw, 32px);
  width: 76px;
  height: 76px;
  border-radius: 999px;
  border: none;
  background: var(--rp-accent);
  box-shadow: 0 22px 40px rgba(0, 0, 0, 0.22);
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
  cursor: pointer;
  transition: filter 140ms ease, transform 140ms ease;
  padding: 0;
}

@media (min-width: 992px) {
  .rp-mapfab {
    top: 44px;
    bottom: auto;
  }
}

.rp-mapfab:hover {
  filter: brightness(1.05);
  transform: translateY(-1px);
}

.rp-mapfab:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 3px;
}

.rp-mapfab-ico {
  font-size: 2.25rem;
  line-height: 1;
  display: block;
}

/* Выезжающие фильтры — ~413px, #F8F8F8, тень из макета 57:150 */
.rp-map-filters-drawer {
  display: none;
}

.rp-map-filters-close {
  position: absolute;
  top: 19px;
  right: 19px;
  z-index: 3;
  width: 24px;
  height: 24px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}

.rp-map-filters-close:focus-visible {
  outline: 2px solid var(--rp-accent);
  outline-offset: 3px;
  border-radius: 50%;
}

.rp-map-filters-close-ring {
  position: absolute;
  inset: 0;
  border: 1px solid #8f8f8f;
  border-radius: 50%;
  box-sizing: border-box;
}

.rp-map-filters-close-x {
  position: relative;
  font-size: 0.65rem;
  color: #8f8f8f;
  line-height: 1;
}

.rp-map-filters-inner {
  padding: 3rem 1.5rem 1.75rem;
  overflow-y: auto;
  flex: 1;
  min-height: 0;
}

.rp-map-filters-title {
  font-family: Raleway, system-ui, sans-serif;
  font-weight: 700;
  font-size: 1.375rem;
  color: #273b4a;
  letter-spacing: -0.02em;
}

.rp-map-filters-reset {
  font-family: Raleway, system-ui, sans-serif;
  font-weight: 600;
  font-size: 0.8125rem;
  color: var(--rp-accent);
  text-decoration: none;
}

.rp-map-filters-reset:hover {
  color: #273b4a;
}

/* Панель фильтров (сборка РП / узел 1-552): строка — маркер + подпись слева, чекбокс справа */
.rp-map-filter-row.form-check {
  padding-left: 0;
}

.rp-map-filter-row {
  display: flex;
  flex-direction: row-reverse;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 3.25rem;
  padding-block: 0.35rem;
  margin-bottom: 0;
  border-bottom: 1px solid #ececec;
}

.rp-map-fieldset > .rp-map-filter-row:last-child {
  border-bottom: 0;
}

.rp-map-filter-row .form-check-input {
  float: none;
  width: 1.25rem;
  height: 1.25rem;
  margin: 0;
  flex-shrink: 0;
  border-color: #b0b0b0;
  border-radius: 0.35rem;
}

.rp-map-filter-row .form-check-input:checked {
  background-color: var(--rp-accent);
  border-color: var(--rp-accent);
}

.rp-map-filter-row .form-check-input:focus {
  box-shadow: 0 0 0 0.2rem rgba(251, 174, 51, 0.25);
}

.rp-map-filter-row .form-check-label {
  font-family: Raleway, system-ui, sans-serif;
  font-weight: 600;
  font-size: 1rem;
  line-height: 1.35;
  color: #273b4a;
  margin: 0;
  flex: 1 1 auto;
  min-width: 0;
  cursor: pointer;
}

.rp-map-filters-head {
  margin-bottom: 1.25rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid #e0e0e0;
}

.rp-map-filters-note {
  font-family: Raleway, system-ui, sans-serif;
  font-size: 0.8125rem;
  border-color: #e0e0e0 !important;
  margin-top: 1.25rem;
  padding-top: 1.25rem !important;
}

@media (min-width: 992px) {
  .rp-map-filters-drawer {
    display: flex;
    flex-direction: column;
    position: absolute;
    top: 0;
    right: 0;
    width: min(413px, calc(100% - 48px));
    height: 100%;
    max-height: 100%;
    margin: 0;
    padding: 0;
    background: #f8f8f8;
    box-shadow: -3px -4px 4px rgba(0, 0, 0, 0.25);
    border-radius: 0 25px 25px 0;
    z-index: 6;
    transform: translate3d(100%, 0, 0);
    transition: transform 0.28s cubic-bezier(0.33, 1, 0.68, 1);
    pointer-events: none;
    will-change: transform;
  }

  .rp-map-filters-drawer.is-open {
    transform: translate3d(0, 0, 0);
    pointer-events: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  .rp-map-filters-drawer {
    transition: none;
  }
}

.rp-filter-sheet {
  background: #f8f8f8;
  border-right: 1px solid #e0e0e0;
}

.rp-filter-sheet .offcanvas-header {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.25rem 1.25rem 1rem;
}

.rp-map-filters-close--sheet {
  position: relative;
  top: auto;
  right: auto;
  flex-shrink: 0;
}

.rp-filter-sheet-body {
  background: #f8f8f8;
  padding: 1.25rem 1.25rem 1.5rem;
}

.rp-filter-sheet-body > .d-flex > .rp-map-filter-row:last-child {
  border-bottom: 0;
}

/* Отзывы — карточки + карусель (макет: имя слева, контурные звёзды справа) */
.rp-reviews-section {
  background: #fff;
  overflow: visible;
}

/* Не обнулять padding здесь — это перебивало .rp-review-card (более слабый селектор). */
.rp-reviews-section blockquote.rp-review-card {
  margin: 0;
  border: 0;
}

.rp-reviews-carousel {
  position: relative;
  overflow: visible;
  padding-inline: clamp(0.25rem, 2vw, 2.75rem);
  /* запас под box-shadow карточек, если браузер всё же клипает по высоте */
  padding-bottom: clamp(2.5rem, 5vw, 3.5rem);
}

.rp-reviews-row {
  --bs-gutter-x: clamp(1.25rem, 3vw, 2rem);
  --bs-gutter-y: clamp(1.25rem, 3vw, 2rem);
}

/* Bootstrap ставит overflow:hidden на .carousel-inner — клипует тени и низ карточек */
.rp-reviews-carousel .carousel-inner {
  overflow: visible;
  padding-bottom: 1.75rem;
}

.rp-reviews-carousel .carousel-item {
  overflow: visible;
}

.rp-review-card {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-self: stretch;
  margin: 0;
  background: #fff;
  color: var(--rp-ink);
  border: 1px solid #e0e0e0;
  border-radius: 30px;
  /* Равномерные поля как в макете (~36px); без «лишней» нижней полосы от flex */
  padding: clamp(1.75rem, 3.5vw, 2.25rem);
  box-shadow: var(--rp-card-shadow);
}

.rp-review-top {
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1.25rem;
}

.rp-review-stars {
  display: flex;
  flex-wrap: nowrap;
  flex-shrink: 0;
  align-items: center;
  gap: 0.18rem;
  margin: 0;
  font-size: 1.0625rem;
  line-height: 1;
  color: var(--rp-accent);
}

.rp-review-stars .bi::before {
  vertical-align: 0;
}

.rp-review-text {
  flex: 0 1 auto;
  margin: 0;
  font-family: "Raleway", system-ui, sans-serif;
  font-size: 0.8525rem;
  font-weight: 400;
  line-height: 1.5;
  color: var(--rp-ink);
}

.rp-review-author {
  margin: 0;
  padding: 0;
  flex: 1 1 auto;
  min-width: 0;
  font-style: normal;
  font-family: "Raleway", system-ui, sans-serif;
  font-weight: 600;
  font-size: 0.9375rem;
  line-height: 1.25;
  color: var(--rp-ink);
  text-align: start;
}

/* Карусель: индикаторы и стрелки */
.rp-reviews-indicators {
  position: static;
  margin: 1.5rem 0 0;
  justify-content: center;
  gap: 0.5rem;
}

.rp-reviews-indicators [data-bs-target] {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  margin: 0;
  border: 0;
  background-color: color-mix(in srgb, var(--rp-accent) 35%, #d0d0d0);
  opacity: 1;
}

.rp-reviews-indicators [data-bs-target].active {
  background-color: var(--rp-accent);
}

.rp-reviews-control {
  width: clamp(2.25rem, 5vw, 2.75rem);
  height: clamp(2.25rem, 5vw, 2.75rem);
  top: 50%;
  bottom: auto;
  transform: translateY(-50%);
  opacity: 1;
  background: #fff;
  border-radius: 50%;
  border: 1px solid #e0e0e0;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.rp-reviews-control .carousel-control-prev-icon,
.rp-reviews-control .carousel-control-next-icon {
  width: 1rem;
  height: 1rem;
  filter: invert(58%) sepia(64%) saturate(600%) hue-rotate(359deg) brightness(102%);
}

.rp-reviews-carousel .carousel-control-prev {
  left: 0;
}

.rp-reviews-carousel .carousel-control-next {
  right: 0;
}

@media (max-width: 575.98px) {
  .rp-reviews-carousel:not(.rp-reviews-carousel--mobile) {
    padding-inline: 0.5rem;
    padding-bottom: clamp(2rem, 8vw, 2.75rem);
  }
}

.rp-reviews-carousel--mobile {
  padding-inline: clamp(0.125rem, 1.5vw, 0.5rem);
  padding-bottom: clamp(2rem, 6vw, 2.75rem);
}

.rp-reviews-carousel--mobile .rp-reviews-row--single {
  --bs-gutter-x: 0;
}

@media (max-width: 991.98px) {
  .rp-reviews-carousel--mobile .rp-reviews-indicators {
    flex-wrap: wrap;
    row-gap: 0.35rem;
  }
}

.rp-blog-card {
  border-radius: 25px;
  overflow: hidden;
  border: 1px solid #e0e0e0;
  box-shadow: var(--rp-card-shadow);
}

.rp-blog-card .card-img-top {
  height: 220px;
  width: 100%;
  object-fit: cover;
  border-radius: 0;
}

.rp-blog-card-title,
.rp-blog-card-title:hover,
.rp-blog-card-title:focus-visible {
  color: var(--rp-accent);
}

/* Footer — макет 1:1: оранжевая полоска, белый фон, 5 колонок, копирайт справа */
.rp-footer {
  --rp-footer-muted: #666666;
  --rp-footer-heading: #111111;
  --rp-footer-copy: #8f8f8f;
  margin-top: calc(var(--rp-section-gap-y) / 2);
}

.rp-footer-accent {
  height: 60px;
  width: 100%;
  background: var(--rp-accent);
}

.rp-footer-top {
  background: #fff;
  padding-block: clamp(2.5rem, 5vw, 3.5rem);
}

.rp-footer-brand {
  font-family: "Raleway", system-ui, sans-serif;
  font-weight: 700;
  font-size: clamp(1.125rem, 1.8vw, 1.25rem);
  color: var(--rp-footer-heading);
  margin-bottom: 0.75rem;
  letter-spacing: -0.02em;
}

.rp-footer-brand-logo {
  display: inline-block;
  margin-bottom: 0.75rem;
  line-height: 0;
}

.rp-footer-brand-logo:focus-visible {
  outline: 2px solid var(--rp-accent);
  outline-offset: 4px;
  border-radius: 4px;
}

.rp-footer-logo-img {
  height: 60px;
  width: auto;
  max-width: min(100%, 420px);
  display: block;
  object-fit: contain;
  object-position: left center;
}

.rp-footer-brand--sm {
  font-size: clamp(1.05rem, 1.6vw, 1.15rem);
  margin-bottom: 0.65rem;
}

.rp-footer-lede {
  font-family: "Roboto", system-ui, sans-serif;
  font-size: 0.9375rem;
  line-height: 1.55;
  color: var(--rp-footer-muted);
  max-width: 36rem;
}

.rp-footer-email-combo {
  display: flex;
  align-items: center;
  width: 100%;
  max-width: 32rem;
  padding: 4px 5px 4px 4px;
  background: #fff;
  border: 1px solid #e0e0e0;
  border-radius: 999px;
  box-sizing: border-box;
}

.rp-footer-email-field {
  flex: 1 1 auto;
  min-width: 0;
  border: 0;
  padding: 0.65rem 1rem 0.65rem 1.1rem;
  font-size: 1rem;
  line-height: 1.25;
  color: var(--rp-ink);
  background: transparent;
  outline: none;
}

.rp-footer-email-field::placeholder {
  color: #9e9e9e;
}

.rp-footer-subscribe-btn {
  flex: 0 0 auto;
  border: 0;
  border-radius: 999px;
  padding: 0.6rem 1.35rem;
  background: var(--rp-accent);
  color: #fff;
  font-family: "Raleway", system-ui, sans-serif;
  font-weight: 600;
  font-size: 0.9375rem;
  line-height: 1.2;
  cursor: pointer;
  transition: filter 0.15s ease, transform 0.15s ease;
}

.rp-footer-subscribe-btn:hover {
  filter: brightness(1.05);
}

.rp-footer-subscribe-btn:focus-visible {
  outline: 2px solid var(--rp-ink);
  outline-offset: 2px;
}

.rp-footer-links {
  background: #fff;
  padding-top: clamp(2rem, 4.5vw, 3.25rem);
  padding-bottom: clamp(2rem, 4.5vw, 2.75rem);
}

.rp-footer-link-grid {
  margin-bottom: 0;
}

.rp-footer-col-title {
  font-family: "Raleway", system-ui, sans-serif;
  font-weight: 700;
  font-size: 1rem;
  color: var(--rp-footer-heading);
  margin-bottom: 1rem;
  letter-spacing: -0.01em;
}

.rp-footer-list {
  font-family: "Roboto", system-ui, sans-serif;
  font-size: 0.9375rem;
  line-height: 1.65;
  color: var(--rp-footer-muted);
}

.rp-footer-list li + li {
  margin-top: 0.25rem;
}

.rp-footer-list a {
  color: inherit;
  text-decoration: none;
  transition: color 0.15s ease;
}

.rp-footer-list a:hover,
.rp-footer-list a:focus-visible {
  color: var(--rp-accent);
}

.rp-footer-contact {
  font-family: "Roboto", system-ui, sans-serif;
  font-size: 0.9375rem;
  line-height: 1.65;
  color: var(--rp-footer-muted);
}

.rp-footer-contact a {
  color: inherit;
  text-decoration: none;
}

.rp-footer-contact a:hover,
.rp-footer-contact a:focus-visible {
  color: var(--rp-accent);
}

.rp-footer-hours {
  font-family: "Roboto", system-ui, sans-serif;
  font-size: 0.9375rem;
  line-height: 1.65;
  color: var(--rp-footer-muted);
}

.rp-footer-rule {
  margin: clamp(1.75rem, 4vw, 2.5rem) 0 1rem;
  border: 0;
  border-top: 1px solid #e0e0e0;
  opacity: 1;
}

.rp-footer-copyright {
  text-align: right;
  font-family: "Roboto", system-ui, sans-serif;
  font-size: 0.8125rem;
  line-height: 1.5;
  color: var(--rp-footer-copy);
}

@media (max-width: 575.98px) {
  .rp-footer-copyright {
    text-align: center;
  }

  .rp-footer-email-combo {
    flex-direction: column;
    align-items: stretch;
    border-radius: 1rem;
    padding: 0.5rem;
    gap: 0.5rem;
  }

  .rp-footer-subscribe-btn {
    width: 100%;
    padding-block: 0.7rem;
  }
}

.rp-pay-img {
  display: block;
  max-width: 209px;
  width: 100%;
  height: auto;
  max-height: 40px;
  object-fit: contain;
  object-position: left center;
}

@media (prefers-reduced-motion: reduce) {
  .rp-card-tour {
    transition: none;
  }

  .rp-tour-type-btn {
    transition: none;
  }

  .rp-tour-book-btn {
    transition: none;
  }

  .rp-reviews-carousel .carousel-item {
    transition: none;
  }
}

@media (max-width: 991.98px) {
  .rp-hamburger-btn {
    width: 40px;
    height: 40px;
    gap: 5px;
  }

  .rp-hamburger-bar {
    width: 22px;
    height: 2.5px;
  }

  .rp-navbar-shell .rp-navbar-actions {
    gap: 0.38rem;
  }

  /* Одна строка: чуть уже лого и капсула */
  .rp-logo-img {
    height: clamp(1.5rem, 4vw, 1.9rem);
    max-width: min(9rem, 38vw);
  }

  .rp-navbar-shell .rp-pill-orange.rp-navbar-pill {
    padding-inline: clamp(0.45rem, 2.5vw, 0.75rem);
    font-size: clamp(0.6875rem, 2.6vw, 0.8125rem);
  }
}

@media (max-width: 767.98px) {
  .rp-tour-offer-row--virtual,
  .rp-tour-offer-row--author {
    grid-template-columns: 1fr;
    gap: 0.55rem;
    align-items: stretch;
  }

  .rp-tour-offer-row--virtual .rp-tour-offer-side,
  .rp-tour-offer-row--author .rp-tour-offer-side {
    order: -1;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    min-height: 0;
    width: 100%;
    align-self: auto;
  }

  .rp-tour-offer-row--virtual .rp-tour-capacity-badge {
    margin-bottom: 0;
    align-self: center;
  }

  .rp-tour-offer-row--virtual .rp-tour-offer-side--solo,
  .rp-tour-offer-row--author .rp-tour-offer-side--solo {
    justify-content: flex-end;
  }

  .rp-tour-offer-row--virtual .rp-price--card,
  .rp-tour-offer-row--author .rp-price--card {
    align-self: center;
  }

  .rp-tour-offer-row--virtual .rp-tour-book-btn,
  .rp-tour-offer-row--virtual .rp-tour-book-btn--placeholder,
  .rp-tour-offer-row--author .rp-tour-book-btn,
  .rp-tour-offer-row--author .rp-tour-book-btn--placeholder {
    order: 1;
    align-self: stretch;
  }

  .rp-navbar-pill {
    padding-inline: 0.75rem;
    font-size: 0.8125rem;
  }

  .rp-logo-img {
    max-width: min(100%, 10.25rem);
    min-width: 6.5rem;
    height: auto;
    width: auto;
  }

  .rp-hero-title {
    font-size: 1.75rem;
  }

  .rp-search-shell {
    max-width: 100%;
  }

  .rp-search-inner {
    min-height: 3.125rem;
    padding-inline: 0.75rem 4px;
  }

  .rp-search-input {
    font-size: 1rem;
  }

  .rp-search-submit {
    min-width: 6.25rem;
    font-size: 1rem;
    padding-inline: 1rem;
  }
}

/* --------------------------------------------------------------------------
   Страница экскурсии (excursion.html) — общие токены с главной
   -------------------------------------------------------------------------- */
.rp-page-excursion {
  background: #fff;
}

.rp-excursion-main {
  --bs-gutter-x: 1.75rem;
}

/* Верх страницы по макету .fig: светлый блок + галерея (крупное фото + два превью) */
.rp-excursion-intro {
  background: #fff;
  border-bottom: 1px solid #ececec;
}

.rp-excursion-breadcrumb-list--surface {
  --bs-breadcrumb-divider-color: rgba(39, 59, 74, 0.35);
  margin-bottom: 0;
}

.rp-excursion-breadcrumb-list--surface .breadcrumb-item a {
  color: var(--rp-ink);
  text-decoration: none;
  opacity: 0.85;
}

.rp-excursion-breadcrumb-list--surface .breadcrumb-item a:hover {
  color: var(--rp-accent);
  text-decoration: underline;
}

.rp-excursion-breadcrumb-list--surface .breadcrumb-item.active {
  color: var(--rp-ink);
  opacity: 1;
}

.rp-excursion-kicker {
  font-family: "Raleway", system-ui, sans-serif;
  font-weight: 600;
  font-size: clamp(0.875rem, 2vw, 1rem);
  color: var(--rp-accent);
  letter-spacing: 0.02em;
}

.rp-excursion-kicker--surface {
  text-transform: none;
}

.rp-excursion-intro-title {
  font-family: "Raleway", system-ui, sans-serif;
  font-weight: 700;
  font-size: clamp(1.6rem, 4.2vw, 2.625rem);
  line-height: 1.12;
  max-width: min(22ch, 100%);
  letter-spacing: -0.02em;
  color: var(--rp-ink);
}

.rp-excursion-meta {
  gap: 0.5rem !important;
}

.rp-excursion-chip--surface {
  display: inline-flex;
  align-items: center;
  padding: 0.35rem 0.85rem;
  border-radius: 999px;
  font-size: 0.8125rem;
  font-weight: 600;
  background: #f8f8f8;
  border: 1px solid #e0e0e0;
  color: var(--rp-ink);
}

.rp-excursion-gallery-main {
  min-height: clamp(200px, 38vw, 420px);
  border: 1px solid #e0e0e0 !important;
  box-shadow: var(--rp-card-shadow);
}

.rp-excursion-gallery-main-img {
  display: block;
  object-fit: cover;
  min-height: clamp(200px, 38vw, 420px);
}

.rp-excursion-gallery-thumb {
  min-height: clamp(72px, 16.5vw, 150px);
  border: 1px solid #e0e0e0 !important;
  box-shadow: var(--rp-card-shadow);
}

.rp-excursion-gallery-thumb-img {
  display: block;
  object-fit: cover;
  min-height: clamp(72px, 16.5vw, 150px);
}

@media (min-width: 992px) {
  .rp-excursion-gallery-thumb {
    min-height: 0;
    flex: 1 1 0;
  }

  .rp-excursion-gallery-thumb-img {
    min-height: 0;
    height: 100%;
  }
}

.rp-excursion-cover-img {
  border-radius: 25px;
  border: 1px solid #e0e0e0;
  box-shadow: var(--rp-card-shadow);
  object-fit: cover;
  aspect-ratio: 16 / 9;
}

.rp-excursion-includes li {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  margin-bottom: 0.65rem;
  font-size: 1rem;
  line-height: 1.55;
  color: #3d4f5c;
}

.rp-excursion-include-ico {
  flex-shrink: 0;
  margin-top: 0.15rem;
  font-size: 1.1rem;
  color: var(--rp-accent);
}

.rp-excursion-inline-promo {
  background: var(--rp-accent);
  color: #fff;
  border-radius: 20px;
  padding: 1.1rem 1.25rem;
}

.rp-excursion-inline-promo-title {
  font-family: "Raleway", system-ui, sans-serif;
  font-weight: 700;
  font-size: clamp(1rem, 2.4vw, 1.15rem);
  margin: 0;
}

.rp-excursion-inline-promo-text {
  font-size: 0.9rem;
  opacity: 0.95;
}

.rp-excursion-prose {
  font-size: 1rem;
  line-height: 1.65;
  color: #3d4f5c;
}

.rp-excursion-list {
  padding-left: 1.25rem;
  margin: 0;
  color: #3d4f5c;
}

.rp-excursion-list li {
  margin-bottom: 0.35rem;
}

.rp-excursion-faq .accordion-button {
  font-size: 1rem;
  color: var(--rp-ink);
  background: #fafafa;
}

.rp-excursion-faq .accordion-button:not(.collapsed) {
  background: #fff;
  color: var(--rp-ink);
  box-shadow: none;
}

.rp-excursion-book-card {
  position: sticky;
  top: clamp(1rem, 3vh, 1.5rem);
  padding: 0;
  border: 1px solid #e0e0e0;
  border-radius: 25px;
  box-shadow: var(--rp-card-shadow);
  background: #fff;
  overflow: hidden;
}

.rp-excursion-book-card-head {
  background: #f8f8f8;
  border-bottom: 1px solid #e8e8e8;
  padding: 1rem 1.2rem;
}

.rp-excursion-book-head-label {
  font-family: "Raleway", system-ui, sans-serif;
  font-weight: 700;
  font-size: 0.8125rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #8f8f8f;
}

.rp-excursion-book-head-price {
  font-family: "Roboto", system-ui, sans-serif;
  font-weight: 700;
  font-size: 1.35rem;
  color: var(--rp-ink);
  margin-top: 0.35rem !important;
}

.rp-excursion-book-card > *:not(.rp-excursion-book-card-head) {
  padding-left: clamp(1.25rem, 3.2vw, 1.75rem);
  padding-right: clamp(1.25rem, 3.2vw, 1.75rem);
}

.rp-excursion-book-card > .rp-excursion-book-title {
  padding-top: clamp(1.1rem, 2.5vw, 1.35rem);
}

.rp-excursion-book-card > .rp-excursion-form {
  padding-bottom: clamp(1.35rem, 3.2vw, 2rem);
}

.rp-excursion-book-title {
  font-family: "Raleway", system-ui, sans-serif;
  font-weight: 700;
  font-size: clamp(1.25rem, 2.2vw, 1.5rem);
  color: var(--rp-ink);
  letter-spacing: -0.02em;
}

.rp-excursion-book-lede {
  line-height: 1.5;
}

.rp-excursion-summary-box {
  background: #f8f8f8;
  border: 1px solid #e0e0e0;
  border-radius: 25px;
  padding: 1rem 1.15rem;
}

.rp-excursion-summary-box .rp-tour-offers {
  background: transparent;
}

.rp-excursion-summary-box .rp-tour-offer-row {
  border-color: rgba(224, 224, 224, 0.9);
}

.rp-excursion-summary-label {
  font-family: "Raleway", system-ui, sans-serif;
  font-weight: 600;
  font-size: 0.8125rem;
  color: #8f8f8f;
  margin: 0;
}

.rp-excursion-fieldset-legend {
  font-family: "Raleway", system-ui, sans-serif;
  font-weight: 600;
  font-size: 0.8125rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #8f8f8f;
  margin-bottom: 0.5rem;
  display: block;
  width: 100%;
  padding: 0;
}

.rp-excursion-price-rows .rp-tour-type-btn[disabled],
.rp-excursion-price-rows .rp-tour-type-btn[aria-disabled="true"] {
  opacity: 1;
  cursor: default;
  pointer-events: none;
}

.rp-excursion-form .form-label {
  color: var(--rp-ink);
}

.rp-excursion-input {
  border-radius: 20px;
  border: 1px solid #e0e0e0;
  padding: 0.7rem 1.05rem;
  font-family: "Roboto", system-ui, sans-serif;
}

.rp-excursion-input:focus {
  border-color: var(--rp-accent);
  box-shadow: 0 0 0 3px rgba(251, 174, 51, 0.25);
}

.rp-excursion-radio {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  padding: 0.75rem 1rem;
  border: 1px solid #e8e8e8;
  border-radius: 20px;
  cursor: pointer;
  margin: 0;
  transition: border-color 0.2s ease, background 0.2s ease;
}

.rp-excursion-radio:hover {
  border-color: var(--rp-accent);
  background: rgba(251, 174, 51, 0.06);
}

.rp-excursion-radio input {
  margin-top: 0.35rem;
  flex-shrink: 0;
}

.rp-excursion-radio:has(input:checked) {
  border-color: var(--rp-accent);
  background: rgba(251, 174, 51, 0.08);
}

.rp-excursion-submit {
  background: var(--rp-accent);
  border: none;
  border-radius: 20px;
  padding: 0.85rem 1.25rem;
  font-size: 1rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
  cursor: pointer;
  transition: filter 0.2s ease, color 0.2s ease;
  /* Совпадает с .rp-search-submit (герой главной) — перебивает Bootstrap .btn */
  background-color: var(--rp-accent) !important;
  color: #fff !important;
}

/* Те же hover/active/focus, что у .rp-search-submit на rp-main.html */
.rp-excursion-submit:hover,
.rp-excursion-submit:active,
.rp-excursion-submit:focus,
.rp-excursion-submit:focus-visible {
  background-color: var(--rp-accent) !important;
  color: #fff !important;
  border-color: transparent !important;
}

.rp-excursion-submit:hover {
  filter: brightness(1.08);
}

.rp-excursion-submit:active {
  filter: brightness(0.96);
}

.rp-excursion-submit:focus-visible {
  outline: 2px solid var(--rp-accent);
  outline-offset: 2px;
}

.rp-excursion-hero-row > [class*="col-"] {
  display: flex;
  flex-direction: column;
}

.rp-excursion-hero-row .rp-excursion-gallery-main--stage {
  min-height: clamp(220px, 32vw, 420px);
}

.rp-excursion-hero-row .rp-excursion-thumb-btn {
  min-height: clamp(100px, 14vw, 200px);
}

.rp-checkout-fields-row .form-label {
  margin-bottom: 0.25rem;
}

.rp-excursion-book-card .rp-excursion-book-title {
  font-size: clamp(1rem, 1.8vw, 1.2rem);
}

.rp-excursion-paybar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1040;
  padding: 0.65rem 1rem calc(0.65rem + env(safe-area-inset-bottom, 0px));
  background: rgba(255, 255, 255, 0.97);
  border-top: 1px solid #e8e8e8;
  box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.08);
}

.rp-excursion-paybar-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  max-width: 720px;
  margin: 0 auto;
}

.rp-page-excursion .rp-excursion-main {
  padding-bottom: calc(5.5rem + env(safe-area-inset-bottom, 0px));
}

@media (min-width: 992px) {
  .rp-page-excursion .rp-excursion-main {
    padding-bottom: 0;
  }

  .rp-excursion-paybar {
    display: none !important;
  }
}

@media (max-width: 991.98px) {
  .rp-excursion-book-card {
    position: static;
    top: auto;
  }

  .rp-excursion-intro-title {
    max-width: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .rp-excursion-submit {
    transition: none;
  }
}

/* --------------------------------------------------------------------------
   Страница excursion.html — экспорт фрейма «Страница экскурсии.png»
   -------------------------------------------------------------------------- */

.rp-page-excursion .rp-topbar.rp-topbar--excursion-solid {
  position: relative;
  padding-block: clamp(0.65rem, 2vw, 1.05rem);
  background: #273b4a;
}

.rp-page-excursion .rp-topbar.rp-topbar--excursion-solid::before {
  display: none;
}

@media (prefers-reduced-motion: reduce) {
  .rp-page-excursion .rp-topbar.rp-topbar--excursion-solid::before {
    display: none;
  }
}

@media (min-width: 992px) {
  .rp-page-excursion .rp-excursion-intro-title {
    max-width: min(52ch, 100%);
  }
}

.rp-excursion-gallery-main--stage {
  position: relative;
}

.rp-excursion-gallery-nav {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  padding-inline: clamp(0.75rem, 2vw, 1.25rem);
  pointer-events: none;
}

.rp-excursion-gallery-btn {
  width: 2.5rem;
  height: 2.5rem;
  flex-shrink: 0;
  padding: 0;
  margin: 0;
  pointer-events: auto;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.85);
  /* Перебиваем Bootstrap Reboot / браузерный hover (часто даёт светлый фон) */
  background-color: rgba(39, 59, 74, 0.55);
  color: #fff;
  -webkit-tap-highlight-color: transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
  transition:
    background-color 0.2s ease,
    filter 0.2s ease,
    transform 0.15s ease,
    box-shadow 0.2s ease;
}

.rp-excursion-gallery-btn:hover {
  background-color: rgba(39, 59, 74, 0.78);
  color: #fff;
  filter: brightness(1.08);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.28);
}

.rp-excursion-gallery-btn:active {
  background-color: rgba(39, 59, 74, 0.9);
  filter: brightness(0.96);
}

.rp-excursion-gallery-btn:focus-visible {
  outline: 2px solid var(--rp-accent);
  outline-offset: 2px;
}

.rp-excursion-gallery-btn:focus:not(:focus-visible) {
  outline: none;
}

.rp-excursion-gallery-btn .bi {
  color: inherit;
  pointer-events: none;
}

.rp-excursion-thumb-btn:focus-visible {
  outline: 2px solid var(--rp-accent);
  outline-offset: 3px;
}

.rp-excursion-thumb-btn--active.rp-excursion-gallery-thumb {
  outline: 2px solid var(--rp-accent);
  outline-offset: 2px;
  box-shadow: 0 0 0 1px rgba(251, 174, 51, 0.35), var(--rp-card-shadow);
}

.rp-excursion-aside {
  padding: clamp(0.5rem, 1.5vw, 0.75rem) 0 clamp(0.25rem, 1vw, 0.5rem);
  border-radius: 0;
  border: 0;
  box-shadow: none;
  background: transparent;
}

.rp-excursion-aside--stacked {
  margin-top: 0;
}

.rp-excursion-aside-badge {
  display: inline-block;
  background: #273b4a;
  padding: 0.3rem 0.65rem;
  border-radius: 6px;
  font-size: 0.7rem;
  letter-spacing: 0.03em;
  margin-bottom: 0.65rem;
}

.rp-excursion-aside-star,
.rp-excursion-aside-stars.text-warning .bi-star-fill {
  color: var(--rp-accent);
}

.rp-excursion-hero-stats-row {
  width: 100%;
}

.rp-excursion-meta-band {
  border-radius: 12px;
  padding: 0.75rem;
  border: 1px solid transparent;
}

.rp-excursion-meta-band--accent {
  background: rgba(251, 174, 51, 0.14);
  border-color: rgba(251, 174, 51, 0.45);
}

.rp-excursion-meta-band--muted {
  background: #f0f2f4;
  border-color: #dde2e6;
}

.rp-excursion-meta-cell {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  min-height: 100%;
  padding: 0.5rem 0.35rem;
  font-size: 0.8125rem;
  line-height: 1.35;
}

.rp-excursion-meta-ico {
  flex-shrink: 0;
  font-size: 1.25rem;
  line-height: 1;
  margin-top: 0.1rem;
}

.rp-excursion-meta-ico--accent {
  color: #c88700;
}

.rp-excursion-meta-ico--muted {
  color: #6b7c8a;
}

.rp-excursion-meta-body {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 0;
}

.rp-excursion-meta-label {
  font-weight: 600;
  font-size: 0.75rem;
  letter-spacing: 0.01em;
  color: #273b4a;
}

.rp-excursion-meta-value {
  font-weight: 700;
  font-size: 0.9375rem;
  font-family: "Roboto", system-ui, sans-serif;
  color: #273b4a;
}

.rp-excursion-meta-band--accent .rp-excursion-meta-value {
  color: #c88700;
}

.rp-excursion-preview-row {
  background: #fff;
}

.rp-tour-map-preview {
  width: 100%;
  height: clamp(280px, 42vw, 420px);
  min-height: 280px;
  background: #e8ecef;
  z-index: 0;
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.rp-tour-map-preview .leaflet-container {
  width: 100%;
  height: 100%;
  min-height: inherit;
  font-family: inherit;
}

.rp-tour-map-preview--error {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #6b7c8a;
  font-size: 0.875rem;
  padding: 1rem;
}

.rp-tour-map-preview .leaflet-control-container {
  display: none;
}

.rp-tour-map-number-badge {
  background: #fff;
  border: 2px solid #2563eb;
  border-radius: 50%;
  width: 30px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 800;
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.35);
  color: #273b4a;
}

.rp-excursion-aside-cta {
  border: none !important;
  border-radius: 20px;
  padding-block: 0.75rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
  cursor: pointer;
  text-decoration: none;
  transition: filter 0.2s ease, color 0.2s ease;
  /* Совпадает с .rp-search-submit на главной (перебивает .btn) */
  background: var(--rp-accent) !important;
  background-color: var(--rp-accent) !important;
  color: #fff !important;
}

.rp-excursion-aside-cta:hover,
.rp-excursion-aside-cta:active,
.rp-excursion-aside-cta:focus,
.rp-excursion-aside-cta:focus-visible {
  background: var(--rp-accent) !important;
  background-color: var(--rp-accent) !important;
  color: #fff !important;
  border-color: transparent !important;
  text-decoration: none;
}

.rp-excursion-aside-cta:hover {
  filter: brightness(1.08);
}

.rp-excursion-aside-cta:active {
  filter: brightness(0.96);
}

.rp-excursion-aside-cta:focus-visible {
  outline: 2px solid var(--rp-accent);
  outline-offset: 2px;
}

.rp-excursion-detail-kicker {
  font-family: "Raleway", system-ui, sans-serif;
  font-weight: 700;
  font-size: clamp(0.9375rem, 2vw, 1rem);
  color: var(--rp-accent);
  letter-spacing: 0.02em;
}

/* Заголовок секции «Подробнее» — строго по левому краю (перебивает глобальный .rp-section-title) */
.rp-excursion-details-head .rp-section-title {
  text-align: left !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  max-width: none !important;
}

.rp-excursion-details-head .rp-excursion-detail-kicker {
  text-align: left;
}

.rp-excursion-details .rp-excursion-route-body {
  text-align: left;
}

/* Маршрут: одна непрерывная вертикальная линия (акцент), номера поверх линии */
.rp-excursion-route--timeline {
  display: flex;
  flex-direction: column;
  gap: 0;
  position: relative;
  padding-left: 0;
}

.rp-excursion-route--timeline::before {
  content: "";
  position: absolute;
  left: calc(1.25rem - 1px);
  top: 1rem;
  bottom: 1rem;
  width: 2px;
  background: var(--rp-accent);
  border-radius: 1px;
  z-index: 0;
}

.rp-excursion-route--timeline .rp-excursion-route-item {
  display: grid;
  grid-template-columns: 2.5rem minmax(0, 1fr);
  gap: 0 1.125rem;
  align-items: flex-start;
  padding-bottom: clamp(1.15rem, 2.8vw, 1.65rem);
  position: relative;
  z-index: 1;
}

.rp-excursion-route--timeline .rp-excursion-route-item:last-child {
  padding-bottom: 0;
}

.rp-excursion-route-num-cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  align-self: stretch;
  position: relative;
  z-index: 1;
}

.rp-excursion-route-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  flex-shrink: 0;
  border-radius: 50%;
  font-size: 0.9375rem;
  font-weight: 700;
  font-family: "Roboto", system-ui, sans-serif;
  background: var(--rp-accent);
  color: #fff;
}

.rp-excursion-route-body {
  min-width: 0;
}

.rp-excursion-benefits {
  background: #fff;
}

.rp-excursion-benefit {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.rp-excursion-benefit-ico {
  display: inline-block;
  font-size: 1.75rem;
  color: var(--rp-faq-icon-muted, #8f8f8f);
  margin-bottom: 0.85rem;
}

.rp-excursion-benefit-title {
  color: var(--rp-accent);
  font-family: "Raleway", system-ui, sans-serif;
}

.rp-excursion-audio-preview {
  max-width: 100%;
}

.rp-excursion-benefit-list {
  padding-left: 1.1rem;
  margin: 0;
  text-align: left;
}

.rp-excursion-booking-bottom {
  background: linear-gradient(180deg, #fff 0%, #f8f9fa 100%);
}

.rp-excursion-book-card--bottom {
  box-shadow: var(--rp-card-shadow);
}

.rp-excursion-list-enhanced {
  padding-left: 1rem;
  margin: 0;
  color: #3d4f5c;
  width: 100%;
  align-self: stretch;
  text-align: left;
}

.rp-excursion-list-enhanced li {
  margin-bottom: 0.5rem;
}

/* Блок «Бронирование» — сверка с экспортом Group-49 (1×) */
.rp-excursion-book-panel-head {
  background: var(--rp-accent);
  border-bottom: 0;
  padding: 30px 36px;
}

.rp-excursion-book-panel-title {
  font-family: "Raleway", system-ui, sans-serif;
  font-size: 25px; /* Dev Mode Figma */
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -0.01em;
}

.rp-excursion-book-panel {
  border: 1px solid #e0e0e0;
  border-radius: 25px;
  overflow: hidden;
  box-shadow: var(--rp-card-shadow);
}

.rp-excursion-book-panel-body {
  padding: 34px 36px 38px;
}

.rp-excursion-book-info-title {
  font-family: "Raleway", system-ui, sans-serif;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.35;
  color: var(--rp-ink);
  margin: 0 0 28px;
  text-align: left;
}

.rp-excursion-book-meta-row {
  margin-bottom: 32px;
  align-items: flex-start;
}

.rp-excursion-quick-form--g49 {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin: 0;
  width: 100%;
}

.rp-excursion-promo-field-hint {
  font-family: "Raleway", system-ui, sans-serif;
  font-weight: 500;
  font-size: 1rem;
  line-height: 1.45;
  color: var(--rp-ink);
  margin-block: 0;
  text-align: left;
}

.rp-excursion-input--g49.rp-excursion-input--g49 {
  width: 100%;
  max-width: 100%;
  min-height: 50px;
  padding: 0 1.5rem;
  border-radius: 999px;
  border: 1px solid #d9d9d9;
  font-size: 0.9375rem;
  font-family: "Roboto", system-ui, sans-serif;
  font-weight: 400;
}

.rp-excursion-input--g49::placeholder {
  color: #b8b8b8;
}

.rp-excursion-book-submit-row {
  display: flex;
  justify-content: flex-end;
  margin-top: 28px;
}

.rp-excursion-submit--g49.rp-excursion-submit--g49 {
  width: 230px;
  max-width: 100%;
  min-height: 50px;
  padding: 0 1.25rem;
  border-radius: 999px;
  border: none;
  font-family: "Raleway", system-ui, sans-serif;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.2;
  white-space: normal;
}

.rp-excursion-book-price-strong {
  font-family: "Raleway", system-ui, sans-serif;
  font-weight: 700;
}

.rp-excursion-book-panel-body .rp-excursion-submit {
  border-radius: 999px;
  white-space: normal;
}

.rp-excursion-submit--fixed {
  width: 230px;
  max-width: 100%;
}

.rp-excursion-book-label {
  font-family: "Raleway", system-ui, sans-serif;
  font-weight: 700;
  color: var(--rp-accent);
}

.rp-excursion-book-price .rp-excursion-book-label {
  display: block;
  font-size: 1rem;
  line-height: 1.4;
}

.rp-excursion-book-lede-line {
  font-family: "Raleway", system-ui, sans-serif;
  font-weight: 500;
  font-size: 1rem;
  line-height: 1.5;
  color: var(--rp-ink);
}

.rp-excursion-book-price-line {
  font-family: "Raleway", system-ui, sans-serif;
  font-weight: 500;
  font-size: 1rem;
  line-height: 1.5;
  color: var(--rp-ink);
}

.rp-excursion-book-price-muted {
  font-weight: 500;
  color: var(--rp-ink);
}

@media (max-width: 767.98px) {
  .rp-excursion-book-panel-head {
    padding: 24px 20px;
  }

  .rp-excursion-book-panel-body {
    padding: 26px 20px 30px;
  }

  .rp-excursion-book-info-title {
    margin-bottom: 22px;
  }

  .rp-excursion-book-meta-row {
    margin-bottom: 28px;
  }

  .rp-excursion-book-submit-row {
    justify-content: center;
    margin-top: 24px;
  }

  .rp-excursion-submit--g49.rp-excursion-submit--g49 {
    width: min(230px, 100%);
  }
}

.rp-excursion-quick-form .rp-excursion-input {
  width: 100%;
  max-width: 100%;
}

.rp-excursion-bottom-promo {
  width: 100%;
  background-color: var(--rp-accent);
}

.rp-excursion-bottom-promo--bg {
  background-color: var(--rp-accent);
  background-image: url("../mpcpm9it-Group-71.png");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  min-height: clamp(220px, 32vw, 360px);
  display: flex;
  align-items: center;
  justify-content: center;
}

.rp-excursion-bottom-promo-code {
  background: transparent;
  color: #fff;
  border: 2px solid #fff;
  border-radius: 999px;
  font-family: "Roboto", system-ui, sans-serif;
  letter-spacing: 0.04em;
}

.rp-excursion-bottom-promo-code:hover {
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
}

.rp-excursion-reviews-section .rp-section-heading {
  text-align: center;
}

.rp-excursion-reviews-section .rp-section-heading .rp-section-title {
  margin-inline: auto;
  text-align: center;
}

/* ---------- Страница прохождения квест-экскурсии (quest-excursion.html) ---------- */
body.rp-page-quest {
  background: #fff;
}

.rp-page-quest .rp-topbar.rp-topbar--excursion-solid {
  position: relative;
  padding-block: clamp(0.65rem, 2vw, 1.05rem);
  background: #273b4a;
  /* Видимый зазор между шапкой и контентом (см. макет / превью) */
  margin-bottom: clamp(1rem, 2.5vw, 1.75rem);
}

.rp-page-quest .rp-topbar.rp-topbar--excursion-solid::before {
  display: none;
}

@media (prefers-reduced-motion: reduce) {
  .rp-page-quest .rp-topbar.rp-topbar--excursion-solid::before {
    display: none;
  }
}

.rp-quest-kicker {
  font-family: "Raleway", system-ui, sans-serif;
  font-weight: 600;
  font-size: 1rem;
  color: var(--rp-accent);
  text-transform: none;
  letter-spacing: 0;
}

.rp-quest-title {
  font-family: "Raleway", system-ui, sans-serif;
  font-weight: 700;
  font-size: clamp(1.375rem, 2.65vw, 2rem);
  line-height: 1.22;
  color: var(--rp-ink);
  max-width: min(100%, 44rem);
}

@media (min-width: 992px) {
  .rp-quest-hero-meta-row .rp-quest-kicker {
    text-align: left;
  }
}

/* «Группа из N человек» — без капсулы, оранжевая точка как в макете */
.rp-quest-group-line {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-family: "Raleway", system-ui, sans-serif;
  font-weight: 600;
  font-size: 1rem;
  line-height: 1.35;
  color: var(--rp-ink);
}

@media (min-width: 992px) {
  .rp-quest-hero-meta-row .col-lg-6.text-lg-end .rp-quest-group-line {
    justify-content: flex-end;
  }
}

.rp-quest-group-line::before {
  content: "";
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: var(--rp-accent);
  flex-shrink: 0;
}

.rp-quest-admin-btn {
  font-family: "Raleway", system-ui, sans-serif;
  font-weight: 500;
  font-size: 0.875rem;
  border-radius: 20px;
  padding: 0.55rem 1.25rem;
  background: #fff;
  border-color: #d0d5da !important;
  color: var(--rp-ink);
}

.rp-quest-admin-btn:hover {
  background: #f8f8f8;
  border-color: #c8c8c8 !important;
  color: var(--rp-ink);
}

.rp-quest-connect-count {
  font-family: "Raleway", system-ui, sans-serif;
}

/* QR по export-quest.png — крупный, по центру */
.rp-quest-qr-wrap {
  width: min(304px, 88vw);
  max-width: 100%;
}

.rp-quest-qr-img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 12px;
  border: 1px solid #e8e8e8;
}

/* Полная строка ссылки участников как в макете */
.rp-quest-link-url {
  font-size: clamp(0.8125rem, 2.2vw, 0.9375rem);
  font-family: "Roboto", system-ui, sans-serif;
  word-break: break-word;
}

/* Полоса «Длина маршрута / Продолжительность» — две строки слева (скрин 1:2) */
.rp-quest-card-meta {
  font-family: "Raleway", system-ui, sans-serif;
  color: var(--rp-ink);
  font-size: 0.875rem;
}

.rp-quest-map-meta--stack {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}

.rp-quest-meta-line-item {
  font-family: "Raleway", system-ui, sans-serif;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.45;
  color: var(--rp-ink);
  margin: 0;
}

.rp-quest-meta-line-item strong {
  font-weight: 700;
}

.rp-quest-meta-line-item .rp-num {
  font-family: "Roboto", system-ui, sans-serif;
  font-weight: 700;
}

.rp-quest-card-meta strong {
  font-weight: 600;
}

.rp-quest-card-meta .rp-num {
  font-family: "Roboto", system-ui, sans-serif;
}

.rp-quest-welcome-heading {
  font-family: "Raleway", system-ui, sans-serif;
  font-weight: 700;
  font-size: clamp(1.375rem, 3.2vw, 1.75rem);
  text-align: center;
  color: var(--rp-ink);
}

.rp-quest-welcome-lede {
  font-family: "Raleway", system-ui, sans-serif;
  font-size: 1rem;
  color: var(--rp-muted-text, #757575);
  max-width: 36rem;
}

.rp-quest-mode-label {
  font-family: "Raleway", system-ui, sans-serif;
  color: var(--rp-ink);
}

.rp-quest-direct-btn,
.rp-quest-mode-pill {
  font-family: "Raleway", system-ui, sans-serif;
  font-weight: 500;
  font-size: 0.8125rem;
  line-height: 1.25;
  border-radius: 24px;
  padding: 0.4rem 1.1rem;
  background: var(--rp-ink) !important;
  color: #fff !important;
  border: none !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
}

.rp-quest-mode-pill--cached {
  background: #4a5f6f !important;
}

.rp-quest-direct-btn:hover {
  filter: brightness(1.08);
  color: #fff !important;
}

.rp-quest-ip-note {
  color: #757575 !important;
  font-family: "Raleway", system-ui, sans-serif;
}

.rp-quest-link {
  color: var(--rp-accent);
  text-decoration: none;
}

.rp-quest-link:hover {
  text-decoration: underline;
  color: var(--rp-accent);
}

.rp-quest-outline-btn {
  font-family: "Raleway", system-ui, sans-serif;
  font-weight: 500;
  font-size: 0.875rem;
  border-radius: 20px;
  padding: 0.4rem 1rem;
}

.rp-quest-start {
  font-family: "Raleway", system-ui, sans-serif;
  font-weight: 600;
  font-size: 1rem;
  border-radius: 20px;
  padding: 0.85rem 1.5rem;
  background: var(--rp-accent) !important;
  border: none !important;
  color: #fff !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
}

.rp-quest-start:hover {
  filter: brightness(1.08);
  color: #fff !important;
}

.rp-quest-start:active {
  filter: brightness(0.96);
}

.rp-quest-card {
  border-radius: 25px !important;
  border-color: #e0e0e0 !important;
  box-shadow: var(--rp-card-shadow) !important;
}

/* Карточка активного шага (#quest-play) — скрин 1:2, ~24px радиус */
.rp-quest-play-card.rp-quest-card {
  border-radius: 24px !important;
}

.rp-quest-play-card.rp-quest-card.shadow {
  box-shadow: 0 3px 4px rgba(0, 0, 0, 0.2) !important;
}

/* Прогресс и счёт — только в правой колонке (не на всю ширину карточки) */
.rp-quest-progress-strip-inner {
  background: transparent;
}

.rp-quest-progress-strip-inner .rp-quest-progress {
  margin-bottom: 0;
}

.rp-quest-progress-strip-inner .d-flex.mt-2 {
  margin-top: 0.5rem !important;
}

.rp-quest-map-meta {
  font-family: "Raleway", system-ui, sans-serif;
}

.rp-quest-progress {
  width: 100%;
  height: 8px;
  min-height: 8px;
  border-radius: 999px;
  background: #e8ebed;
  overflow: hidden;
  padding: 0 !important;
  box-sizing: border-box;
  display: flex;
  align-items: stretch;
}

.rp-quest-progress-fill,
.rp-quest-progress .progress-bar {
  height: 100% !important;
  min-height: 0;
  align-self: stretch;
  border-radius: inherit;
}

.rp-quest-progress-fill {
  border-radius: inherit;
  background: var(--rp-accent);
  transition: width 0.35s ease;
}

body.rp-page-quest .quest-progress .rp-quest-progress.progress {
  padding: 0 !important;
  border: none;
  box-shadow: none;
}

.rp-quest-meta-line {
  font-family: "Roboto", system-ui, sans-serif;
  font-size: 0.8125rem;
  font-weight: 400;
  color: #757575;
}

.rp-quest-points {
  font-family: "Roboto", system-ui, sans-serif;
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--rp-accent);
}

.rp-quest-points .rp-num {
  color: inherit;
  font-family: "Roboto", system-ui, sans-serif;
}

.rp-quest-star {
  color: var(--rp-accent);
  font-size: 0.95rem;
}

/* Строка метаданных + карта/панель: нижняя часть тянется по высоте правой колонки */
.rp-quest-play-body-row {
  min-height: 0;
}

/* Карта квеста: тот же embed, что на rp-main; высота 100% колонки (перебиваем фикс .map-shell 503px) */
.rp-quest-map-shell.map-shell {
  flex: 1 1 auto;
  min-height: clamp(220px, 38vw, 320px);
  height: auto;
  display: flex;
  flex-direction: column;
  border-radius: 16px;
  background: #fff;
  border-color: #e0e0e0;
}

.rp-quest-map-shell.map-shell iframe,
.rp-quest-map-iframe {
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

@media (min-width: 992px) {
  .rp-quest-map-shell.map-shell {
    min-height: 0 !important;
    height: 100% !important;
    max-height: none !important;
    flex: 1 1 auto;
  }

  .rp-quest-map-shell.map-shell iframe,
  .rp-quest-map-iframe {
    height: 100% !important;
    min-height: 0 !important;
  }
}

/* Левая колонка: мета сверху, карта — по верхнему краю и на всю высоту колонки вместе с правой */
@media (min-width: 992px) {
  .rp-quest-map-col {
    min-height: 0;
  }

  .rp-quest-map-col .rp-quest-map-figure {
    min-height: 0;
    flex: 1 1 auto;
    justify-content: flex-start;
    align-items: stretch;
    padding: clamp(10px, 1.15vw, 18px) clamp(12px, 1.25vw, 20px) clamp(14px, 1.35vw, 22px);
    overflow: hidden;
    border-radius: 0;
    background: #fff;
  }

  .rp-quest-map-col .rp-quest-map-shell.map-shell {
    align-self: stretch;
  }
}

/* «ТОЧКА N —» + тонкая оранжевая линия до правого края колонки */
.rp-quest-point-label {
  font-family: "Raleway", system-ui, sans-serif;
  color: var(--rp-accent);
  text-transform: uppercase;
  letter-spacing: 0.02em;
  font-weight: 700;
  font-size: 0.9375rem;
  line-height: 1.3;
  margin: 0;
  display: flex;
  align-items: center;
  width: 100%;
  gap: 0.5rem;
}

.rp-quest-point-label::after {
  content: "";
  flex: 1 1 auto;
  height: 1px;
  background: var(--rp-accent);
  min-width: 1rem;
}

.rp-quest-point-label .rp-num {
  font-family: "Roboto", system-ui, sans-serif;
  font-weight: 700;
}

.rp-quest-point-name {
  font-family: "Raleway", system-ui, sans-serif;
  color: var(--rp-ink, #273b4a);
  font-weight: 700;
  font-size: clamp(1.0625rem, 2.1vw, 1.25rem);
  line-height: 1.28;
  letter-spacing: -0.01em;
}

.rp-quest-task-text {
  font-family: "Raleway", system-ui, sans-serif;
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.5;
  color: #333;
}

.rp-quest-coords {
  font-family: "Roboto", system-ui, sans-serif;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.45;
  color: #888;
  letter-spacing: 0.01em;
  margin: 0;
}

.rp-quest-coords .rp-num {
  font-weight: 500;
  color: #6d6d6d;
}

.rp-quest-point-photo {
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.rp-quest-point-photo-wrap {
  border-color: #e0e0e0 !important;
  border-radius: 16px !important;
}

.rp-quest-answer-input {
  border-radius: 12px;
  min-height: 48px;
  font-family: "Roboto", system-ui, sans-serif;
  border: 1px solid #d9d9d9;
}

.rp-quest-check-btn {
  border-radius: 20px;
  padding: 0.7rem 1.25rem;
  font-family: "Raleway", system-ui, sans-serif !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
}

.rp-quest-hint-icon {
  color: var(--rp-accent);
  font-size: 1rem;
}

.rp-quest-hint-pill {
  font-family: "Raleway", system-ui, sans-serif !important;
  font-weight: 500;
  font-size: 0.875rem;
  text-align: left;
  white-space: normal;
  border-radius: 8px !important;
  padding: 0.65rem 0.9rem !important;
  border: 1px solid rgba(251, 174, 51, 0.45) !important;
  background: #fff !important;
  color: var(--rp-ink) !important;
  display: flex !important;
  align-items: center;
  width: 100% !important;
  gap: 0.75rem;
  transition:
    filter 0.2s ease,
    border-color 0.2s ease,
    background-color 0.2s ease;
}

.rp-quest-hint-penalty {
  font-family: "Roboto", system-ui, sans-serif;
  font-weight: 500;
  font-size: 0.8125rem;
  color: #666;
  flex-shrink: 0;
  margin-left: auto;
}

.rp-quest-hint-pill:hover {
  background: #fffdf8 !important;
  border-color: rgba(251, 174, 51, 0.65) !important;
  color: var(--rp-ink) !important;
  filter: none;
}

.rp-quest-play-panel {
  font-family: "Raleway", system-ui, sans-serif;
  gap: 0;
}

.rp-quest-hints {
  margin-top: auto;
  padding-top: 0.25rem;
}

@media (min-width: 992px) {
  .rp-quest-play-panel {
    padding: 1.35rem 1.5rem 1.5rem !important;
    min-height: 100%;
  }
}

@media (max-width: 991.98px) {
  .rp-quest-map-figure {
    min-height: min(260px, 58vw);
    padding: 12px;
    background: #fff;
  }

  .rp-quest-map-shell.map-shell {
    min-height: min(220px, 50vw);
    background: #fff;
  }
}

/* Старт экскурсии /tour/start — #quest-play, Leaflet */
.rp-page-tour-start .leaflet-control-attribution,
.rp-page-tour-start .leaflet-control-container {
  display: none;
}

/* Карта /tour/start — см. assets/rp-redesign/css/rp-tour-start-figma.css */

.rp-page-tour-start .mapscreen {
  position: relative;
  overflow: hidden;
}

/* swap карта/видео — rp-tour-start-figma.css (.rp-tour-map-swap) */

/* Боковая панель звука — старт экскурсии (токены редизайна) */
.rp-page-tour-start .rp-audio-controls-panel,
.rp-page-tour-start .audio-controls-panel,
.rp-audio-controls-panel.audio-controls-panel {
  position: fixed;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  z-index: 1080;
  display: flex;
  flex-direction: row;
  align-items: center;
  transition: transform 0.3s ease;
  font-family: "Raleway", system-ui, sans-serif;
  pointer-events: auto;
}

.rp-page-tour-start .rp-audio-controls-tab,
.rp-page-tour-start .audio-tab {
  flex-shrink: 0;
  align-self: center;
  width: auto;
  height: 150px;
  min-height: 150px;
  max-height: 150px;
  border: none;
  background: var(--rp-accent);
  color: #fff;
  padding: 0.5rem 0.55rem;
  border-radius: 16px 0 0 16px;
  cursor: pointer;
  box-shadow: -3px 2px 8px rgba(39, 59, 74, 0.18);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  line-height: 1;
  transition: filter 0.2s ease, box-shadow 0.2s ease;
}

.rp-page-tour-start .rp-audio-controls-tab:hover,
.rp-page-tour-start .audio-tab:hover {
  filter: brightness(1.06);
  color: #fff;
}

.rp-page-tour-start .rp-audio-controls-tab:focus-visible,
.rp-page-tour-start .audio-tab:focus-visible {
  outline: 2px solid var(--rp-ink);
  outline-offset: 2px;
}

.rp-page-tour-start .rp-audio-controls-body,
.rp-page-tour-start .audio-content {
  background: #fff;
  width: 0;
  min-width: 0;
  overflow: hidden;
  transition: width 0.3s ease, padding 0.3s ease, opacity 0.25s ease;
  box-shadow: var(--rp-card-shadow);
  border-radius: 16px 0 0 16px;
  border: 1px solid #e8ecef;
  border-right: none;
  opacity: 0;
}

.rp-page-tour-start .rp-audio-controls-panel.open .rp-audio-controls-body,
.rp-page-tour-start .rp-audio-controls-panel.open .audio-content,
.rp-page-tour-start .audio-controls-panel.open .audio-content,
.rp-audio-controls-panel.open .rp-audio-controls-body {
  width: min(260px, 78vw);
  padding: 1rem 1.1rem 1.05rem;
  opacity: 1;
}

.rp-page-tour-start .rp-audio-controls-title {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--rp-ink);
  line-height: 1.35;
  margin: 0;
  padding-bottom: 0.65rem;
  border-bottom: 1px solid #eef1f3;
}

.rp-page-tour-start .rp-audio-control-group,
.rp-page-tour-start .audio-control-group {
  margin-bottom: 1rem;
}

.rp-page-tour-start .rp-audio-control-group:last-child,
.rp-page-tour-start .audio-control-group:last-child {
  margin-bottom: 0;
}

.rp-page-tour-start .rp-audio-control-heading,
.rp-page-tour-start .audio-control-group h6 {
  color: var(--rp-ink);
  margin: 0 0 0.55rem;
  font-size: 0.8125rem;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 0.4rem;
  line-height: 1.3;
}

.rp-page-tour-start .rp-audio-control-heading .bi,
.rp-page-tour-start .audio-control-group h6 i {
  color: var(--rp-accent);
  font-size: 1rem;
  flex-shrink: 0;
}

.rp-page-tour-start .rp-audio-control-row,
.rp-page-tour-start .audio-control {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}

.rp-page-tour-start .rp-audio-btn,
.rp-page-tour-start .btn-audio {
  flex-shrink: 0;
  background: #f4f6f8;
  border: 1px solid #d8dee4 !important;
  width: 2.25rem;
  height: 2.25rem;
  min-width: 2.25rem;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  color: var(--rp-ink);
  transition: background 0.2s ease, border-color 0.2s ease, transform 0.15s ease, color 0.2s ease;
}

.rp-page-tour-start .rp-audio-btn:hover,
.rp-page-tour-start .btn-audio:hover {
  background: #fff;
  border-color: var(--rp-accent) !important;
  color: var(--rp-ink);
}

.rp-page-tour-start .rp-audio-btn:active,
.rp-page-tour-start .btn-audio:active {
  transform: scale(0.96);
}

.rp-page-tour-start .rp-audio-slider,
.rp-page-tour-start .audio-slider {
  flex: 1 1 auto;
  min-width: 0;
  height: 0.35rem;
  margin: 0;
  cursor: pointer;
  accent-color: var(--rp-accent);
}

.rp-page-tour-start .rp-audio-slider::-webkit-slider-thumb,
.rp-page-tour-start .audio-slider::-webkit-slider-thumb {
  background: var(--rp-accent);
}

.rp-page-tour-start .rp-audio-tour-status,
.rp-page-tour-start .tour-status {
  font-family: "Roboto", system-ui, sans-serif;
  font-size: 0.8125rem;
  font-weight: 500;
  color: #6b7a86;
  flex: 1 1 auto;
  text-align: center;
  transition: color 0.2s ease;
}

.rp-page-tour-start .btn-audio.tour-active,
.rp-page-tour-start .rp-audio-btn.tour-active {
  background: var(--rp-accent) !important;
  border-color: var(--rp-accent) !important;
  color: #fff !important;
}

.rp-page-tour-start .btn-audio.tour-paused,
.rp-page-tour-start .rp-audio-btn.tour-paused {
  background: #d64545 !important;
  border-color: #d64545 !important;
  color: #fff !important;
}

.rp-page-tour-start #connect-tour .connect-group.btn-warning,
.rp-page-tour-start #connect-tour .connect-group:not(.btn-danger):not(.btn-success) {
  background-color: var(--rp-accent) !important;
  border-color: var(--rp-accent) !important;
  color: #fff !important;
}

.rp-page-tour-start .txtGroup .alert,
.rp-page-tour-start .qrGroup {
  text-align: center;
}

@media (max-width: 768px) {
  .rp-page-tour-start .rp-audio-controls-panel,
  .rp-page-tour-start .audio-controls-panel,
  .rp-audio-controls-panel.audio-controls-panel {
    top: auto;
    bottom: calc(1.25rem + env(safe-area-inset-bottom, 0px));
    transform: none;
  }

  .rp-page-tour-start .rp-audio-controls-panel.open .rp-audio-controls-body,
  .rp-page-tour-start .rp-audio-controls-panel.open .audio-content,
  .rp-page-tour-start .audio-controls-panel.open .audio-content {
    width: min(240px, 86vw);
    padding: 0.85rem 0.95rem;
  }

  .rp-page-tour-start .rp-audio-controls-tab,
  .rp-page-tour-start .audio-tab {
    height: 150px;
    min-height: 150px;
    max-height: 150px;
    padding: 0.5rem 0.45rem;
  }
}

/* Landscape lock (только мобильные; на десктопе скрыто) */
.orientation-lock {
  position: fixed;
  z-index: 9999;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(0, 0, 0, 0.95);
  color: #fff;
  display: none;
  justify-content: center;
  align-items: center;
  text-align: center;
  font-size: 22px;
  padding: 20px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.5s ease;
}

@media (max-width: 767.98px) {
  .orientation-lock {
    display: flex;
  }
}

.orientation-lock.show {
  opacity: 1;
  pointer-events: auto;
}

.orientation-lock .message {
  animation: rp-orientation-pulse 1.5s infinite;
}

@keyframes rp-orientation-pulse {
  0% {
    transform: scale(1);
    opacity: 1;
  }
  50% {
    transform: scale(1.05);
    opacity: 0.8;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}
