/*! склейка: /assets/base.css /assets/photo-lost.css /assets/tour/program.css /assets/tour.css /assets/tour/hero.css /assets/tour/present-popup.css /assets/tour/expectations.css /assets/tour/info.css /assets/tour/accommodation.css /assets/tour/guide.css /assets/tour/price.css /assets/tour/booking.css /assets/tour/faq.css /assets/tour/other-tours.css /assets/pa/header.css /assets/pa/popups.css /assets/pa/phone.css /assets/fonts.css /assets/pa/common.css /assets/pa/advantages.css /assets/pa/banner.css /assets/pa/subscribe.css /assets/pa/partners.css /assets/pa/footer.css /assets/ribbon.css /assets/reviews.css */
/* /assets/base.css */
/* Основа страниц своей вёрстки без CSS Webflow (пока — страница тура): правила Webflow для тегов —
 * сброс normalize.css, его базовые стили и стили сайта для body, заголовков, абзацев, ссылок, списков —
 * перенесены как есть (те же значения), и шрифт заголовков Bebas Neue. Классов здесь нет: вид частей
 * страницы — в их CSS (assets/tour/, assets/pa/). */

@font-face {
  font-family: Bebasneue;
  src: url("/v/c9ebed3530/assets/cdn.prod.website-files.com/67e3d4a57de60de33068b63c/67e3d69bcf693c4b877634df_BebasNeue-Regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: Bebasneue;
  src: url("/v/b1c3911d6e/assets/cdn.prod.website-files.com/67e3d4a57de60de33068b63c/67e3d69b61f1b66fbb06fe47_BebasNeue-Bold.ttf") format("truetype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

html {
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  font-family: sans-serif;
}
body {
  margin: 0;
}
article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary {
  display: block;
}
audio, canvas, progress, video {
  vertical-align: baseline;
  display: inline-block;
}
audio:not([controls]) {
  height: 0;
  display: none;
}
[hidden], template {
  display: none;
}
a {
  background-color: #0000;
}
a:active, a:hover {
  outline: 0;
}
abbr[title] {
  border-bottom: 1px dotted;
}
b, strong {
  font-weight: bold;
}
dfn {
  font-style: italic;
}
h1 {
  margin: .67em 0;
  font-size: 2em;
}
mark {
  color: #000;
  background: #ff0;
}
small {
  font-size: 80%;
}
sub, sup {
  vertical-align: baseline;
  font-size: 75%;
  line-height: 0;
  position: relative;
}
sup {
  top: -.5em;
}
sub {
  bottom: -.25em;
}
img {
  border: 0;
}
svg:not(:root) {
  overflow: hidden;
}
hr {
  box-sizing: content-box;
  height: 0;
}
pre {
  overflow: auto;
}
code, kbd, pre, samp {
  font-family: monospace;
  font-size: 1em;
}
button, input, optgroup, select, textarea {
  color: inherit;
  font: inherit;
  margin: 0;
}
button {
  overflow: visible;
}
button, select {
  text-transform: none;
}
button, html input[type="button"], input[type="reset"] {
  -webkit-appearance: button;
  cursor: pointer;
}
button[disabled], html input[disabled] {
  cursor: default;
}
button::-moz-focus-inner, input::-moz-focus-inner {
  border: 0;
  padding: 0;
}
input {
  line-height: normal;
}
input[type="checkbox"], input[type="radio"] {
  box-sizing: border-box;
  padding: 0;
}
input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button {
  height: auto;
}
input[type="search"] {
  -webkit-appearance: none;
}
input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}
legend {
  border: 0;
  padding: 0;
}
textarea {
  overflow: auto;
}
optgroup {
  font-weight: bold;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
td, th {
  padding: 0;
}
* {
  box-sizing: border-box;
}
html {
  height: 100%;
}
body {
  color: #333;
  background-color: #fff;
  min-height: 100%;
  margin: 0;
  font-family: Arial, sans-serif;
  font-size: 14px;
  line-height: 20px;
}
img {
  vertical-align: middle;
  max-width: 100%;
  display: inline-block;
}
h1, h2, h3, h4, h5, h6 {
  margin-bottom: 10px;
  font-weight: bold;
}
h1 {
  margin-top: 20px;
  font-size: 38px;
  line-height: 44px;
}
h2 {
  margin-top: 20px;
  font-size: 32px;
  line-height: 36px;
}
h3 {
  margin-top: 20px;
  font-size: 24px;
  line-height: 30px;
}
h4 {
  margin-top: 10px;
  font-size: 18px;
  line-height: 24px;
}
h5 {
  margin-top: 10px;
  font-size: 14px;
  line-height: 20px;
}
h6 {
  margin-top: 10px;
  font-size: 12px;
  line-height: 18px;
}
p {
  margin-top: 0;
  margin-bottom: 10px;
}
blockquote {
  border-left: 5px solid #e2e2e2;
  margin: 0 0 10px;
  padding: 10px 20px;
  font-size: 18px;
  line-height: 22px;
}
figure {
  margin: 0 0 10px;
}
figcaption {
  text-align: center;
  margin-top: 5px;
}
ul, ol {
  margin-top: 0;
  margin-bottom: 10px;
  padding-left: 40px;
}
fieldset {
  border: 0;
  margin: 0;
  padding: 0;
}
button, [type="button"], [type="reset"] {
  cursor: pointer;
  -webkit-appearance: button;
  border: 0;
}
label {
  margin-bottom: 5px;
  font-weight: bold;
  display: block;
}
:root {
  --_colors---light: white;
  --_colors---primary: #27282b;
  --_colors---background: #fafafa;
  --_colors---primary-hover: #5d5e62;
  --_colors---secondary-dark: #e3e3e3;
  --_border-radius---6px: 6px;
  --_colors---secondary: #f0f0f0;
  --_colors---accent: #e1f641;
  --_colors---color-4: #e3d7ff;
  --_colors---color-1: #dbe7fd;
  --_colors---color-2: #ffdad3;
  --_colors---color-3: #f3f57f;
  --_colors---ya-stars: #ffc300;
  --_colors---error: #ff3725;
}
body {
  background-color: var(--_colors---light);
  color: var(--_colors---primary);
  font-family: Roboto Condensed, sans-serif;
  font-size: 16px;
  line-height: 20px;
}
h1 {
  margin-top: 0;
  margin-bottom: 0;
  font-family: Bebasneue, Arial, sans-serif;
  font-size: 128px;
  font-weight: 700;
  line-height: 90%;
}
h2 {
  margin-top: 0;
  margin-bottom: 0;
  font-family: Bebasneue, Arial, sans-serif;
  font-size: 72px;
  font-weight: 700;
  line-height: 105%;
}
h3 {
  margin-top: 0;
  margin-bottom: 0;
  font-family: Bebasneue, Arial, sans-serif;
  font-size: 56px;
  font-weight: 700;
  line-height: 105%;
}
h4 {
  margin-top: 0;
  margin-bottom: 0;
  font-family: Bebasneue, Arial, sans-serif;
  font-size: 32px;
  font-weight: 700;
  line-height: 115%;
}
p {
  margin-bottom: 0;
  font-family: Roboto Condensed, sans-serif;
  font-size: 32px;
  line-height: 130%;
}
a {
  color: var(--_colors---primary);
}
ul {
  margin-top: 0;
  margin-bottom: 10px;
  padding-left: 21px;
  font-size: 22px;
  line-height: 130%;
  list-style-type: square;
}
li {
  margin-bottom: 12px;
}
@media screen and (min-width: 1440px) {
  h1 {
    font-size: 128px;
  }
  h2 {
    line-height: 105%;
  }
  h3 {
    font-size: 56px;
  }
  h4 {
    font-family: Bebasneue, Arial, sans-serif;
    font-size: 32px;
    font-weight: 700;
    line-height: 115%;
  }
  ul {
    margin-bottom: 0;
    padding-left: 22px;
    font-size: 22px;
    line-height: 130%;
    list-style-type: square;
  }
  li {
    margin-bottom: 12px;
  }
}

@media screen and (max-width: 991px) {
  h1 {
    font-size: 70px;
    line-height: 90%;
  }
  h2 {
    font-size: 48px;
  }
  h3 {
    font-size: 40px;
  }
}

/* Кадр фото (eleventy/frames.js, site/_data/photo-frames.yaml): какая часть фото видна в рамке.
 * Сборка ставит у картинки data-frame и положение рамки; на телефоне — свою, если кадр там другой.
 * <picture class="pa-frame"> (свои копии фото для телефона) не меняет вёрстку: картинка стоит, как без него. */
img[data-frame] { object-position: var(--frame-x) var(--frame-y); }
@media (max-width: 767px) {
  img[data-frame] { object-position: var(--frame-phone-x, var(--frame-x)) var(--frame-phone-y, var(--frame-y)); }
}
picture.pa-frame { display: contents; }

/* /assets/photo-lost.css */
/* Заглушка «фото потерялось» (site/_includes/photo-lost.njk): картинка в стиле сайта и надпись
 * поверх неё. Размер задаёт место, где она стоит: класс бывшей картинки (tp-expectations-photo, ab-gallery-photo…) или
 * правила программы по дням в program.css. Подключается на каждой странице с заглушками. */
.photo-lost {
  position: relative;
  display: flex;
  align-items: flex-start;
  padding: 20px;
  border-radius: 6px;
  background: #f0f0f0 center / cover no-repeat;
  box-sizing: border-box;
}
.photo-lost-1 { background-image: url("/v/bc30985c77/assets/photo-lost/1.svg"); }
.photo-lost-2 { background-image: url("/v/134be7f1cc/assets/photo-lost/2.svg"); }
.photo-lost-3 { background-image: url("/v/4bc336501e/assets/photo-lost/3.svg"); }
.photo-lost-4 { background-image: url("/v/813df26969/assets/photo-lost/4.svg"); }
.photo-lost-text {
  max-width: 300px;
  padding: 10px 14px 8px;
  border-radius: 6px;
  background: #fafafa;
  box-shadow: 4px 4px 0 #e1f641;
  color: #27282b;
  font-family: Bebasneue, Arial, sans-serif;
  font-size: 28px;
  line-height: 1.05;
  text-transform: uppercase;
}
@media (max-width: 479px) {
  .photo-lost { padding: 14px; }
  .photo-lost-text { font-size: 22px; }
}

/* /assets/tour/program.css */
/* Страница тура, раздел site/_includes/tour/program.njk — программа по дням; поведение — program.js рядом.
 * Размеры и отступы — те же, что были у Webflow: внешне раздел не изменился. */
.tp-program { margin-top: 180px; }
.tp-program .tp-container { gap: 48px; }
.tp-program-title { align-self: center; }
.tp-program-days { margin: 0; padding: 0; list-style: none; }

/* День: пунктир сверху (штрих 16 px, шаг 32 px, прозрачность 20%), слева текст, справа фото. */
.tp-day { margin: 0; padding-bottom: 28px; }
.tp-day::before {
  content: "";
  display: block;
  height: 1px;
  margin: 1px 0 26px;
  background: repeating-linear-gradient(90deg, currentColor 0 16px, transparent 16px 32px);
  opacity: .2;
}
.tp-day-row { display: flex; gap: 80px; justify-content: space-between; align-items: flex-start; }
.tp-day-info { display: flex; flex-direction: column; gap: 24px; min-width: 440px; max-width: 544px; }
.tp-program .tp-day-title { display: flex; gap: 24px; justify-content: space-between; align-items: flex-start; font-size: 32px; line-height: 115%; }
.tp-day-number { display: flex; gap: 4px; white-space: nowrap; opacity: .4; }
.tp-day-name { max-width: 440px; }
.tp-program .tp-day-text p { margin: 0 0 12px; font-size: 16px; font-weight: 400; line-height: 130%; }
.tp-day-text ul { margin: 0 0 10px; padding-left: 21px; overflow: hidden; font-size: 22px; line-height: 130%; list-style-type: square; }
.tp-day-text li { margin-bottom: 12px; }
@media (min-width: 1440px) {
  .tp-day-text ul { margin-bottom: 0; padding-left: 22px; }
}

/* «Читать больше» — только на телефоне (кнопка видна до 991 px, текст свёрнут до четырёх строк до 767 px). */
.tp-day-more { display: none; padding: 0; border: 0; background: none; font: inherit; color: #849404; text-align: start; }
.tp-day-more svg { width: 20px; height: 20px; }

/* Кнопка «Показать ещё» — тёмная, стрелка выезжает при наведении. */
.tp-program-more {
  display: flex;
  align-self: center;
  justify-content: center;
  align-items: center;
  width: 438px;
  height: 50px;
  padding: 8px 12px;
  border: 0;
  border-radius: var(--tp-radius);
  background: var(--tp-dark);
  color: var(--tp-accent);
  font: 16px/130% var(--tp-font-text);
  text-align: start;
  cursor: pointer;
  transition: background-color .2s;
}
.tp-program-more:hover { background: #1c1d1f; }
.tp-program-more-mark {
  display: flex;
  width: 0;
  height: 16px;
  padding-left: 6px;
  overflow: hidden;
  transition: all .2s cubic-bezier(.645, .045, .355, 1);
}
.tp-program-more:hover .tp-program-more-mark { width: 18px; }
.tp-program-more-mark svg { flex: none; width: 12px; }

/* Фото дня на компьютере — сеткой в колонке 400–568 × 388 px, без листания: data-photos — сколько
 * фото видно (до пяти). Одно — во всю колонку; два — пополам; больше — первое слева во всю высоту,
 * остальные справа. Шестое и дальше скрыты: на пятом «+N», по клику открываются все. Места фото для
 * копий нужного размера — PLACES_BY_CLASS в eleventy/photos.js (tp-day-photo-*): меняете сетку — поправьте и их. */
.tp-day-photos { margin: 0; padding: 0; list-style: none; font: inherit; border-radius: var(--tp-radius); overflow: hidden; }
.tp-day-photo { position: relative; margin: 0; overflow: hidden; border-radius: var(--tp-radius); }
.tp-day-photo a { display: block; }
.tp-day-photo img { display: block; object-fit: cover; }
.tp-day-photo-more { display: none; }
@media (min-width: 992px) {
  .tp-day-photos {
    display: grid;
    flex: 1;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-template-rows: repeat(2, minmax(0, 1fr));
    gap: 6px;
    min-width: 400px;
    max-width: 568px;
    height: 388px;
  }
  .tp-day-photo { grid-column: span 2; cursor: zoom-in; }
  .tp-day-photo:first-child { grid-row: span 2; }
  [data-photos="1"] .tp-day-photo:first-child { grid-column: 1 / -1; }
  [data-photos="2"] .tp-day-photo { grid-row: span 2; }
  [data-photos="4"] .tp-day-photo:nth-child(2),
  [data-photos="4"] .tp-day-photo:nth-child(3),
  [data-photos="5"] .tp-day-photo:nth-child(n+2) { grid-column: span 1; }
  .tp-day-photo:nth-child(n+6) { display: none; }
  .tp-day-photo a { width: 100%; height: 100%; }
  .tp-day-photo img { width: 100%; height: 100%; max-width: none; transition: transform .4s ease; }
  .tp-day-photo:hover img { transform: scale(1.04); }
  .tp-day-photo-more {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgb(25 47 52 / 55%);
    color: #fff;
    font-size: 32px;
    font-weight: 700;
    pointer-events: none;
  }
  /* Заглушка «фото потерялось» — во всё место фото (общие стили заглушки — photo-lost.css). */
  .tp-day-photo .photo-lost { width: 100%; height: 100%; min-height: 0; }
}
@media (min-width: 992px) and (prefers-reduced-motion: reduce) {
  .tp-day-photo img { transition: none; }
}

@media (max-width: 991px) {
  .tp-program { margin-top: 100px; }
  .tp-program .tp-container { gap: 32px; }
  .tp-day { padding-bottom: 20px; }
  .tp-day::before { margin-bottom: 18px; }
  .tp-day-row { flex-direction: column; gap: 20px; }
  .tp-day-info { gap: 16px; width: 100%; min-width: 350px; max-width: none; }
  .tp-program .tp-day-title { flex-direction: column; gap: 6px; }
  .tp-day-name { max-width: none; }
  .tp-day-more { display: flex; gap: 4px; align-items: center; margin-top: -8px; }
  .tp-program-more { width: 318px; }

  /* Фото дня на телефоне — лента 200 × 140 px с прокруткой вбок (полосы прокрутки не видно). */
  .tp-day-photos {
    display: flex;
    gap: 4px;
    width: 100%;
    height: 140px;
    border-radius: var(--tp-radius) 0 0 var(--tp-radius);
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }
  .tp-day-photos::-webkit-scrollbar { display: none; }
  .tp-day-photo { display: flex; flex: none; justify-content: center; align-items: center; width: 200px; height: 140px; scroll-snap-align: start; }
  .tp-day-photo a { width: 100%; height: 100%; }
  .tp-day-photo img { width: 100%; height: 100%; max-width: none; }
  .tp-day-photo .photo-lost { width: 200px; min-height: 140px; height: 140px; padding: 10px; }
  .tp-day-photo .photo-lost-text { padding: 6px 8px 4px; box-shadow: 3px 3px 0 var(--tp-accent); font-size: 17px; }
}

@media (max-width: 767px) {
  .tp-day-info { min-width: 0; }
  .tp-program .tp-day-title { gap: 12px; }
  .tp-program-more { width: 100%; }
  .tp-day-text { display: -webkit-box; margin: 0; overflow: hidden; -webkit-box-orient: vertical; transition: all .3s ease; }
  .tp-day-text.tp-collapsed { -webkit-line-clamp: 4; }
  .tp-day-more { cursor: pointer; }
  .tp-day-more svg { transition: transform .3s ease; }
  .tp-day-more[aria-expanded="true"] svg { transform: rotate(180deg); }
}
@media (max-width: 767px) and (prefers-reduced-motion: reduce) {
  .tp-day-text, .tp-day-more svg { transition: none; }
}

@media (min-width: 1440px) {
  .tp-program-more { width: 430px; }
}
@media (max-width: 479px) {
  .tp-program { margin-top: 90px; }
}

/* /assets/tour.css */
/* Страница тура (site/tour.njk, разделы — site/_includes/tour/): своя вёрстка без классов Webflow.
 * Здесь общее для всех разделов — цвета, шрифты, ширина страницы, заголовки; стили каждого раздела —
 * site/assets/tour/<раздел>.css. Классы — с приставкой tp-, чтобы не пересекаться с CSS Webflow,
 * который страница пока подключает ради общих шапки, подвала, баннера и других общих блоков. Ленты (стрелки, прокрутка вбок) —
 * общие для сайта: assets/ribbon.css.
 * Значения — те же, что были у Webflow: внешне страница не изменилась (scripts/compare-pages.mjs). */
:root {
  --tp-dark: #27282b;
  --tp-dark-hover: #5d5e62;
  --tp-light: #fff;
  --tp-background: #fafafa;
  --tp-grey: #f0f0f0;
  --tp-grey-dark: #e3e3e3;
  --tp-accent: #e1f641;
  --tp-error: #ff3725;
  --tp-stars: #ffc300;
  --tp-radius: 6px;
  --tp-font-head: Bebasneue, Arial, sans-serif; /* шрифт подключает CSS Webflow (@font-face) */
  --tp-font-text: "Roboto Condensed", sans-serif;
}

/* Ширина содержимого и поля по краям — как .container Webflow. */
.tp-container { display: flex; flex-direction: column; margin: 0 auto; padding: 0 32px; }
@media (min-width: 1440px) { .tp-container { max-width: 1440px; padding: 0 50px; } }
@media (max-width: 991px) { .tp-container { padding: 0 24px; overflow: hidden; } }
@media (max-width: 767px) { .tp-container { padding: 0 16px; } }

/* Заголовки и текст внутри разделов тура. */
.tp-section h2, .tp-section h3, .tp-section h4 { margin: 0; font-family: var(--tp-font-head); font-weight: 700; }
.tp-section h2 { font-size: 72px; line-height: 105%; }
.tp-section h3 { font-size: 56px; line-height: 105%; }
.tp-section h4 { font-size: 32px; line-height: 115%; }
.tp-section p { margin: 0; font-family: var(--tp-font-text); line-height: 130%; }
.tp-text-l { font-size: 22px; }
.tp-text { font-size: 16px; }
@media (max-width: 991px) {
  .tp-section h2 { font-size: 48px; }
  .tp-section h3 { font-size: 40px; }
  .tp-text-l { font-size: 18px; }
}

/* Кнопка «Записаться в группу» (#fixed-button в site/tour.njk) — ведёт к форме заявки. Показывает и
 * прячет её assets/tour/hero.js (пока видна обложка — спрятана); на телефоне она закреплена внизу
 * экрана, на компьютере — полоса над подвалом, как было у Webflow. */
.tp-fixed-booking { display: none; }
@media (max-width: 767px) {
  .tp-fixed-booking { position: fixed; bottom: 32px; left: 16px; display: flex; min-width: 200px; max-width: 500px; }
}
.tp-accent-button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 50px;
  padding: 8px 12px;
  border-radius: var(--tp-radius);
  background-color: var(--tp-accent);
  color: var(--tp-dark);
  font-family: var(--tp-font-text);
  font-size: 16px;
  line-height: 130%;
  text-decoration: none;
  transition: background-color .2s;
}
.tp-accent-button:hover { background-color: #d4eb26; }
.tp-button-mark { display: flex; width: 0; height: 16px; padding-left: 6px; overflow: hidden; transition: all .2s cubic-bezier(.645, .045, .355, 1); }
.tp-button-mark svg { width: 12px; }
.tp-accent-button:hover .tp-button-mark, .tp-accent-button:focus-visible .tp-button-mark { width: 18px; }
@media (prefers-reduced-motion: reduce) { .tp-accent-button, .tp-button-mark { transition: none; } }

/* Отступ под закреплённую шапку и до подвала — как .main у Webflow. */
.tp-main { margin-top: 68px; margin-bottom: 180px; }

/* /assets/tour/hero.css */
/* Страница тура, раздел site/_includes/tour/hero.njk: обложка — название, коротко о туре, кнопки, форма
 * «перезвоните» на «стекле» поверх фото. Размеры и цвета — как были у Webflow (.tour-hero и соседи). */

/* Обложка заходит под прозрачную шапку. */
.tp-hero { margin-top: -70px; overflow: hidden; }

.tp-hero-wrapper {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  gap: 74px;
  margin-top: 72px;
  padding: 56px 0;
}

/* Название и коротко о туре. */
.tp-hero-heading {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 8px;
  width: 100%;
  max-width: 1375px;
}
.tp-hero .tp-hero-title {
  margin: 0;
  color: var(--tp-accent);
  font-family: var(--tp-font-head);
  font-size: 128px;
  font-weight: 700;
  line-height: 90%;
}
.tp-hero .tp-hero-lead { width: 600px; color: var(--tp-background); font-size: 22px; }

/* Кнопки, форма и стрелка «листайте вниз» (видна только на телефоне; на компьютере — пустой
   третий элемент строки, без него форма встала бы иначе). */
.tp-hero-content {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 40px;
  width: 100%;
}
.tp-hero-buttons { width: 438px; }
.tp-hero-button {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 50px;
  margin: 0;
  padding: 8px 12px;
  border: 0;
  border-radius: var(--tp-radius);
  background-color: var(--tp-accent);
  color: var(--tp-dark);
  font: inherit;
  text-decoration: none;
  cursor: pointer;
  transition: background-color .2s;
}
.tp-hero-button:hover { background-color: #d4eb26; }
.tp-hero-button--present { display: none; }
.tp-hero-button-text { font-family: var(--tp-font-text); font-size: 16px; line-height: 130%; }
/* Стрелка выезжает справа от надписи при наведении. */
.tp-hero-button-mark {
  display: flex;
  width: 0;
  height: 16px;
  padding-left: 6px;
  overflow: hidden;
  transition: all .2s cubic-bezier(.645, .045, .355, 1);
}
.tp-hero-button:hover .tp-hero-button-mark { width: 18px; }
.tp-hero-button-arrow { width: 12px; }

/* Форма на «стекле»: размытый фон и зерно поверх него. Высота растёт, чтобы вместить галочку. */
.tp-hero-form {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  width: 493px;
  min-height: 217px;
  padding: 18px;
  border-radius: 6px;
  background: rgba(250, 250, 250, .2);
  box-shadow: 0 6px 16px rgba(0, 0, 0, .1), inset 0 -1px 5.2px rgba(0, 0, 0, .25);
  backdrop-filter: blur(7.5px);
}
.tp-hero-form::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: .07;
  background: url("/v/e18141be04/assets/cdn.prod.website-files.com/67e3d4a57de60de33068b63c/67e64c059bba8c136e23c026_grain.webp") #fafafa33 0 0 / 100px 100px repeat;
  mix-blend-mode: screen;
  box-shadow: 0 6px 16px rgba(0, 0, 0, .1), inset 0 -1px 5.2px rgba(0, 0, 0, .25);
  backdrop-filter: blur(7.5px);
}
.tp-hero .tp-hero-form-title { color: var(--tp-background); font-size: 32px; line-height: 115%; }

/* Телефон и кнопка-стрелка в одну строку, галочка согласия — строкой ниже. Поле телефона
   библиотека intl-tel-input (assets/pa/phone.js) оборачивает в .iti с флагом страны. */
.tp-hero-fields { display: flex; flex-wrap: wrap; justify-content: flex-start; align-items: center; width: 100%; }
.tp-hero-fields > .iti, .tp-hero-fields > .tp-hero-phone { flex: 1 1 0; min-width: 0; }
.tp-hero-phone {
  display: block;
  width: 100%;
  height: 69px;
  margin: 0;
  padding: 20px 0;
  border: 0;
  border-bottom: 1px solid var(--tp-background);
  border-radius: 0;
  background-color: transparent;
  color: var(--tp-grey);
  font-size: 14px;
  line-height: 1.42857;
  vertical-align: middle;
}
.tp-hero-phone:focus { outline: 0; border-bottom-color: var(--tp-grey); }
.tp-hero-phone::placeholder { color: var(--tp-grey); }
.tp-hero-submit {
  display: block;
  height: 69px;
  margin: 0 0 8px;
  padding: 9px 15px;
  border: 0;
  border-bottom: 1px solid var(--tp-background);
  border-radius: 0;
  background: transparent url("/v/c071b170fa/assets/cdn.prod.website-files.com/67e3d4a57de60de33068b63c/67ee9278a4480f525e368bd9_wsend-button.svg") 50% / 20px 20px no-repeat;
  font: inherit;
  line-height: inherit;
  cursor: pointer;
}
.tp-hero-submit:hover { background-image: url("/v/81cafaa5ba/assets/cdn.prod.website-files.com/67e3d4a57de60de33068b63c/67ee9298b1070567d8cad0d6_wsend-buttonh.svg"); }

/* Галочка согласия: настоящий флажок невидим, рисуем свой квадрат. */
.tp-hero-consent { display: block; flex: 0 0 100%; width: 100%; margin: 12px 0 5px; padding-left: 20px; font-weight: 400; }
.tp-hero-consent-input { position: absolute; z-index: -1; opacity: 0; }
.tp-hero-consent-box {
  float: left;
  width: 12px;
  height: 12px;
  margin: 4px 0 0 -20px;
  border: 1px solid var(--tp-accent);
  border-radius: 2px;
  line-height: normal;
}
.tp-hero-consent-input:checked + .tp-hero-consent-box {
  border-color: #3898ec;
  background: #3898ec url("/v/83f5fbb274/assets/cdn.prod.website-files.com/67e3d4a57de60de33068b63c/686cde71535ac6bbdb5478c1_action-icons1.svg") 50% / cover no-repeat;
}
.tp-hero-consent-input:focus-visible + .tp-hero-consent-box { box-shadow: 0 0 3px 1px #3898ec; }
.tp-hero-consent-text { display: inline-block; color: var(--tp-accent); font-size: 12px; cursor: pointer; }
.tp-hero-consent-muted { opacity: .5; }
.tp-hero-consent-link { color: var(--tp-accent); }

/* «Спасибо» и «не удалось» — показывает site-enhancements.js вместо формы. */
.tp-hero-form-done { display: none; padding: 20px; background-color: #ddd; text-align: center; }
.tp-hero-form-fail { display: none; margin-top: 10px; padding: 10px; background-color: #ffdede; }

.tp-hero-arrow-icon { display: none; }
@media (prefers-reduced-motion: no-preference) {
  .tp-hero-arrow { animation: tp-hero-bounce 1.5s infinite; }
}
@keyframes tp-hero-bounce {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(10px); }
}

/* Фото — во всю ширину экрана, уходит под шапку; закрывает место целиком (object-fit: cover), видно
 * верх фото по середине — или кадр, выбранный в админке (eleventy/frames.js). Размеры мест —
 * PLACES_BY_CLASS в eleventy/photos.js и PLACE_FRAMES в eleventy/frames.js. */
.tp-hero-bg {
  position: absolute;
  top: -72px;
  bottom: 0;
  left: calc(50% - 50vw);
  z-index: -1;
  width: 100vw;
  overflow: hidden;
}
.tp-hero-photo { display: block; width: 100%; max-width: none; height: 100%; object-fit: cover; object-position: 50% 0; }

.tp-hero[data-hero-contrast="likiyskaya"] .tp-hero-bg::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(9, 29, 42, .5), rgba(9, 29, 42, .22) 32%, transparent 62%);
  content: "";
  pointer-events: none;
}
.tp-hero[data-hero-contrast="likiyskaya"] .tp-hero-title { text-shadow: 0 2px 16px rgba(9, 29, 42, .4); }
.tp-hero[data-hero-contrast="likiyskaya"] .tp-hero-lead { text-shadow: 0 1px 8px rgba(9, 29, 42, .75); }

@media (min-width: 1440px) {
  .tp-hero { margin-top: -72px; }
  .tp-hero-wrapper { gap: 56px; width: 100%; margin: 72px auto 64px; padding: 64px 0; }
  .tp-hero-heading { max-width: 100%; }
  .tp-hero .tp-hero-lead { width: 506px; }
  .tp-hero-content { gap: 48px; }
  .tp-hero-buttons { width: 430px; }
}

@media (max-width: 991px) {
  .tp-hero { min-height: 800px; }
  .tp-hero-wrapper { gap: 27px; padding: 100px 0 64.5px; }
  .tp-hero-heading { align-items: center; max-width: 513px; }
  .tp-hero .tp-hero-title { font-size: 70px; text-align: center; }
  .tp-hero .tp-hero-lead { width: auto; max-width: 513px; font-size: 18px; text-align: center; }
  .tp-hero-content { flex-direction: column; align-items: center; }
  .tp-hero-buttons { width: 100%; max-width: 513px; }
  .tp-hero-form { order: -1; width: auto; max-width: 513px; }
}

@media (max-width: 767px) {
  .tp-hero-wrapper { gap: 40px; justify-content: flex-start; margin-top: 64px; padding: 71.5px 0 72px; }
  .tp-hero-bg { top: -64px; } /* от верха обложки: фото не уходит выше неё */
  .tp-hero-heading { gap: 12px; width: auto; }
  .tp-hero-content { gap: 16px; justify-content: flex-start; }
  .tp-hero-buttons { display: flex; flex-direction: column; gap: 12px; }
  /* На телефоне формы нет — вместо неё кнопка, открывающая окно «Получить презентацию». */
  .tp-hero-form { display: none; }
  .tp-hero-button--present { display: flex; border: 1px solid var(--tp-background); background-color: transparent; color: var(--tp-background); }
  .tp-hero-button--present:hover { background-color: var(--tp-background); color: var(--tp-dark); }
  .tp-hero-arrow { width: 40px; height: 40px; margin-top: 16px; }
  .tp-hero-arrow-icon { display: flex; color: var(--tp-background); }
}

@media (max-width: 479px) {
  .tp-hero { min-height: 0; }
  .tp-hero-wrapper { padding-top: 48px; }
  .tp-hero-content { gap: 32px; }
}

/* /assets/tour/present-popup.css */
/* Страница тура, раздел site/_includes/tour/present-popup.njk: окно «Получить презентацию» поверх
 * затемнённой страницы. Размеры и цвета — как были у Webflow (.present-popup, .present-form). */
.tp-present {
  position: fixed;
  inset: 0;
  display: flex;
  justify-content: center;
  align-items: center;
}
.tp-present[hidden] { display: none; }
.tp-present:focus { outline: 0; }
.tp-present-overlay { position: fixed; inset: 0; z-index: 1; background-color: rgba(0, 0, 0, .5); }
.tp-present-close {
  position: absolute;
  top: 24px;
  right: 24px;
  z-index: 2;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  background: none;
  color: var(--tp-accent);
  cursor: pointer;
}
.tp-present-close svg { display: block; }

/* Окно по центру экрана (сверху и снизу — auto: место задаёт выравнивание .tp-present). */
.tp-present-box {
  position: absolute;
  left: 0;
  right: 0;
  z-index: 1;
  width: 556px;
  margin: 0 auto;
  padding: 32px;
  border-radius: var(--tp-radius);
  background-color: var(--tp-dark);
}
.tp-present-title {
  margin: 0;
  color: var(--tp-accent);
  font-family: var(--tp-font-head);
  font-size: 32px;
  font-weight: 700;
  line-height: 115%;
}

.tp-present-form { display: flex; flex-direction: column; width: 100%; }
.tp-present-phone {
  display: block;
  width: 100%;
  height: 61px;
  margin: 0 0 8px;
  padding: 20px 0;
  border: 0;
  border-bottom: 1px solid var(--tp-accent);
  border-radius: 0;
  background-color: transparent;
  color: var(--tp-accent);
  font-size: 14px;
  line-height: 130%;
  vertical-align: middle;
}
.tp-present-phone:focus { outline: 0; }
.tp-present-phone::placeholder { color: #e1f64180; }
.tp-present-submit {
  display: block;
  height: 48px;
  margin: 20px 0 12px;
  padding: 8px 12px;
  border: 0;
  border-radius: var(--tp-radius);
  background-color: var(--tp-accent);
  color: var(--tp-dark);
  font: inherit;
  line-height: inherit;
  cursor: pointer;
  transition: background-color .2s;
}
.tp-present-submit:hover { background-color: #d4eb26; }

/* Галочка согласия: настоящий флажок невидим, рисуем свой квадрат. */
.tp-present-consent { display: block; margin: 0 0 5px; padding-left: 20px; font-weight: 400; }
.tp-present-consent-input { position: absolute; z-index: -1; opacity: 0; }
.tp-present-consent-box {
  float: left;
  width: 12px;
  height: 12px;
  margin: 4px 0 0 -20px;
  border: 1px solid var(--tp-accent);
  border-radius: 2px;
  line-height: normal;
}
.tp-present-consent-input:checked + .tp-present-consent-box {
  border-color: #3898ec;
  background: #3898ec url("/v/83f5fbb274/assets/cdn.prod.website-files.com/67e3d4a57de60de33068b63c/686cde71535ac6bbdb5478c1_action-icons1.svg") 50% / cover no-repeat;
}
.tp-present-consent-input:focus-visible + .tp-present-consent-box { box-shadow: 0 0 3px 1px #3898ec; }
.tp-present-consent-text { display: inline-block; color: var(--tp-accent); font-size: 12px; cursor: pointer; }
.tp-present-consent-muted { opacity: .5; }
.tp-present-consent-link { color: var(--tp-accent); }

/* «Спасибо» и «не удалось» — показывает site-enhancements.js вместо формы. */
.tp-present-done { display: none; padding: 20px; background-color: #ddd; text-align: center; }
.tp-present-fail { display: none; margin-top: 10px; padding: 10px; background-color: #ffdede; }

@media (max-width: 767px) {
  .tp-present-box {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 24px;
    width: auto;
    margin: 0 16px;
    padding: 16px;
  }
}

/* /assets/tour/expectations.css */
/* Страница тура, раздел site/_includes/tour/expectations.njk: «хлебные крошки» и «Что вас ждёт».
 * Лента (.pa-ribbon--bleed, общее — в assets/ribbon.css) — до краёв экрана с обеих сторон, карточки встают
 * по полю текста; раздел обрезает лишнее. Карточка — 317 px (на планшете 320), между карточками 24 px (20). */
.tp-expectations { margin-top: 60px; overflow: hidden; }
.tp-breadcrumbs {
  display: flex; gap: 10px; margin-bottom: 20px;
  font-family: var(--tp-font-text); font-size: 16px; line-height: 20px;
}
.tp-breadcrumbs a { color: var(--tp-dark); line-height: 130%; text-decoration: none; }
.tp-breadcrumbs [aria-current="page"] { opacity: .5; }
.tp-expectations-head { display: flex; justify-content: space-between; align-items: flex-start; }
.tp-expectations-nav { display: flex; gap: 12px; }
.tp-expectations-ribbon { margin-top: 40px; }
.tp-expectations-list { gap: 24px; }
.tp-expectations-card { display: flex; flex-direction: column; width: 317px; }
.tp-expectations-photo { width: 100%; height: 317px; }
img.tp-expectations-photo { display: block; object-fit: cover; border-radius: var(--tp-radius) var(--tp-radius) 0 0; }
.tp-expectations-text {
  box-sizing: border-box; height: 128px; padding: 18px;
  border-radius: 0 0 var(--tp-radius) var(--tp-radius); background-color: var(--tp-grey);
}
@media (max-width: 991px) {
  .tp-expectations { margin-top: 56px; padding-bottom: 50px; }
  .tp-expectations-nav { display: none; }
  .tp-expectations-ribbon { margin-top: 32px; }
  .tp-expectations-list { gap: 20px; }
  .tp-expectations-card { width: 320px; }
  .tp-expectations-photo { height: 200px; }
}
@media (max-width: 767px) {
  .tp-expectations { margin-top: 60px; padding-bottom: 60px; }
  .tp-breadcrumbs { flex-wrap: wrap; }
}
@media (max-width: 479px) {
  .tp-expectations-card { width: 317px; }
}

/* /assets/tour/info.css */
/* Страница тура, раздел site/_includes/tour/info.njk — «О путешествии». Значения — как были у Webflow
 * (внешне раздел не изменился). На компьютере — колонка характеристик и карта справа; до 991 px
 * характеристики — сетка в две колонки (описание первым), карта — полоса 130 px с кнопкой «Открыть
 * карту»; до 767 px каждый блок во всю ширину, сложность и комфорт — в конце, рядом; до 479 px — друг
 * под другом. .tp-info--new — туры с new_design: даты заездов переносятся на новую строку. */
.tp-info { margin-top: 150px; }
.tp-info-wrap { display: flex; flex-flow: wrap; justify-content: space-between; align-items: flex-end; gap: 48px 24px; }
.tp-info-main { display: flex; flex-flow: column; gap: 40px; max-width: 705px; }
.tp-info-specs { display: flex; flex-flow: column; justify-content: flex-start; align-items: flex-start; align-self: stretch; gap: 24px; }
.tp-info-general, .tp-info-departures, .tp-info-level { display: flex; gap: 24px; width: 100%; }
.tp-info-about { display: flex; gap: 24px; }

/* Подпись блока («Общее», «Сложность», …) — колонка слева. */
.tp-info-label { display: flex; flex: 1; gap: 6px; width: auto; min-width: 179px; max-width: 184px; }

.tp-info-facts { display: flex; gap: 32px; }
.tp-info-facts .tp-info-value { font-family: var(--tp-font-head); font-size: 32px; font-weight: 700; line-height: 115%; }

/* Значок «i» с подсказкой: видна при наведении и когда значок в фокусе (с клавиатуры, касанием). */
.tp-info-hint { position: relative; width: 18px; height: 18px; }
.tp-info-hint-button { display: block; width: 18px; height: 18px; margin: 0; padding: 0; border: 0; background: none; color: inherit; cursor: pointer; }
.tp-info-hint-button svg { display: block; width: 18px; height: 18px; }
.tp-info-tooltip { display: none; position: absolute; top: 0; left: 0; width: 340px; margin-top: 22px; padding: 18px; border-radius: var(--tp-radius); background-color: var(--tp-background); }
.tp-info-hint:hover .tp-info-tooltip, .tp-info-hint:focus-within .tp-info-tooltip { display: flex; }

/* Шкала сложности и комфорта: закрашенные деления — .tp-info-bar--on (их ставит шаблон). */
.tp-info-scale { display: flex; flex: 1; justify-content: flex-start; align-items: center; gap: 6px; width: auto; }
.tp-info-bar { flex: 1; width: auto; min-width: 51px; max-width: 76.8px; height: 24px; border-radius: var(--tp-radius); background-color: var(--tp-grey-dark); }
.tp-info-bar--on { background-color: var(--tp-accent); }

.tp-info-dates { display: flex; gap: 5px; margin: 0; padding: 0; list-style: none; font-size: inherit; line-height: inherit; }
.tp-info--new .tp-info-dates { flex-wrap: wrap; }
.tp-info-date { margin: 0; padding: 8px 16px; border: 1px solid #27282b33; border-radius: var(--tp-radius); }

.tp-info-about-content { display: flex; gap: 5px; min-width: 491px; max-width: 491px; }
.tp-info-about-text p { font-size: 16px; font-weight: 400; }

/* Кнопка: при наведении справа выезжает стрелка. */
.tp-info-button { display: flex; justify-content: center; align-items: center; width: 100%; max-width: 100%; height: 50px; padding: 8px 12px; border-radius: var(--tp-radius); background-color: var(--tp-accent); color: var(--tp-dark); text-decoration: none; transition: background-color .2s; }
.tp-info-button:hover { background-color: #d4eb26; }
.tp-info-button--half { width: 50%; }
.tp-info-button-text { font-family: var(--tp-font-text); font-size: 16px; line-height: 130%; }
.tp-info-button-mark { display: flex; width: 0; height: 16px; padding-left: 6px; overflow: hidden; transition: all .2s cubic-bezier(.645, .045, .355, 1); }
.tp-info-button-mark svg { width: 12px; }
.tp-info-button:hover .tp-info-button-mark { width: 18px; }

/* Карта маршрута: по клику — во весь экран (info.js). */
.tp-info-map { display: flex; flex: 1; justify-content: center; align-items: center; width: auto; min-width: 430px; max-width: 100%; min-height: 493px; max-height: 493px; overflow: auto; border-radius: var(--tp-radius); background-color: #abce83; }
.tp-info-map-link { display: inline-flex; justify-content: center; align-items: center; max-width: 100%; max-height: 493px; overflow: clip; }
.tp-info-map-img { display: inline-block; max-width: 100%; min-width: 535px; min-height: 493px; vertical-align: middle; object-fit: contain; }
.tp-info-map-overlay { display: none; }

@media (prefers-reduced-motion: reduce) {
  .tp-info-button, .tp-info-button-mark { transition: none; }
}

@media (min-width: 1440px) {
  .tp-info-map { align-items: flex-start; min-width: 493px; max-width: 544px; max-height: none; }
}

@media (max-width: 991px) {
  .tp-info { margin-top: 50px; padding: 56px 0; background-color: var(--tp-grey); }
  .tp-info-wrap { row-gap: 40px; }
  .tp-info-main { gap: 24px; width: 100%; max-width: none; }
  .tp-info-specs { display: grid; grid-template-columns: minmax(200px, 1fr) minmax(200px, 1fr); grid-template-rows: auto auto; grid-auto-flow: row; justify-content: start; align-items: start; gap: 32px; }
  .tp-info-general { flex-flow: column; }
  .tp-info-departures { flex-flow: column; gap: 16px; }
  .tp-info-facts { display: grid; flex: 0 auto; grid-template-columns: 103px 103px; grid-template-rows: auto auto; place-content: start; place-items: start; gap: 28px 40px; }
  .tp-info-about { flex-flow: column; order: -1; }
  .tp-info-about-content { width: auto; min-width: 336px; max-width: 439.5px; }
  .tp-info-levels { display: flex; flex-flow: column; gap: 16px; }
  .tp-info-level { flex-flow: column; gap: 8px; }
  .tp-info-scale { width: 100%; }
  .tp-info-bar { height: 8px; }
  .tp-info-button--half { width: 100%; }
  .tp-info-map { position: relative; min-height: 130px; max-height: 130px; overflow: hidden; }
  .tp-info-map-overlay { display: flex; position: absolute; inset: 0; flex: 1; justify-content: center; align-items: center; min-width: 100%; min-height: 100%; padding: 0 24px; background-color: #00000057; }
}

@media (max-width: 767px) {
  .tp-info-general { gap: 20px; }
  .tp-info-general, .tp-info-departures, .tp-info-about { grid-column: span 2; }
  .tp-info-about, .tp-info-level { gap: 20px; }
  .tp-info-levels { display: grid; grid-template-columns: 1fr 1fr; order: 9999; grid-column: span 2; gap: 16px; }
  .tp-info-dates { flex-wrap: wrap; }
  .tp-info-about-content { min-width: 0; max-width: none; }
  .tp-info-bar { min-width: 0; max-width: none; }
  .tp-info-tooltip { z-index: 3; }
  .tp-info-tooltip--comfort { margin-left: -183px; }
  .tp-info-map { min-width: 0; }
}

@media (max-width: 479px) {
  .tp-info { margin-top: 60px; }
  .tp-info-specs { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .tp-info-level { gap: 8px; }
  .tp-info-levels { grid-template-columns: 1fr; place-content: start; place-items: start; }
  .tp-info-scale { gap: 2px; width: auto; }
  .tp-info-tooltip { width: 250px; margin-top: 27px; margin-left: -128px; }
  .tp-info-tooltip--comfort { margin-left: -104px; }
}

/* /assets/tour/accommodation.css */
/* Страница тура, раздел site/_includes/tour/accommodation.njk: «Проживание».
 * На компьютере — две колонки: слева окно ленты (видно одно фото, стрелки в углу), справа заголовок и
 * текст. Фото занимает место по своему размеру — от 434 до 658 px в ширину, 434 в высоту (как было у
 * Webflow). На телефоне заголовок над лентой, фото 320 × 228 (на узком 300 × 196), стрелок нет. */
.tp-accommodation { margin-top: 180px; }
.tp-accommodation-content {
  position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 16px;
  align-items: start; justify-items: stretch;
}
.tp-accommodation-title-phone { display: none; }
.tp-accommodation-gallery { position: relative; overflow: hidden; }
.tp-accommodation-slide { display: flex; justify-content: space-between; align-items: flex-start; width: 100%; overflow: hidden; }
.tp-accommodation-pic {
  display: flex; justify-content: center; align-items: center; width: 658px; min-width: 434px; max-width: 658px; height: 434px;
  border-radius: var(--tp-radius); overflow: hidden; pointer-events: none;
}
/* Фото закрывает место целиком, по середине — или в кадре из админки (eleventy/frames.js). */
.tp-accommodation-photo { display: block; width: 100%; height: 100%; object-fit: cover; }
.tp-accommodation-nav { position: absolute; right: 24px; bottom: 24px; display: flex; gap: 12px; }
.tp-accommodation-info {
  display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 24px;
  min-width: 434px; max-width: 658px;
}
.tp-accommodation-text p { font-size: 18px; }
.tp-accommodation-text ul { overflow: hidden; }
@media (max-width: 991px) {
  .tp-accommodation { margin-top: 100px; }
  .tp-accommodation-content { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; }
  .tp-accommodation-title-phone { display: block; }
  .tp-accommodation-title-desktop, .tp-accommodation-nav { display: none; }
  .tp-accommodation-gallery { width: 100%; }
  .tp-accommodation-list { gap: 8px; }
  .tp-accommodation-slide {
    flex-direction: column; justify-content: center; align-items: flex-start;
    width: 320px; height: 228px; border-radius: var(--tp-radius);
  }
  .tp-accommodation-pic { width: 100%; min-width: 0; max-width: none; height: 100%; }
  .tp-accommodation-info { max-width: none; }
}
@media (max-width: 479px) {
  .tp-accommodation-slide { width: 300px; height: 196px; }
  .tp-accommodation-info { min-width: 0; }
}

/* /assets/tour/guide.css */
/* Страница тура, раздел site/_includes/tour/guide.njk — «Ваш гид». Размеры и отступы — те же, что были
 * у Webflow: внешне раздел не изменился. Фото — по месту (object-fit), копии под размер места —
 * tp-guide-photo в PLACES_BY_CLASS (eleventy/photos.js): меняете размеры — поправьте и их. */
.tp-guide { position: relative; margin-top: 180px; }
.tp-guide-wrap { display: flex; gap: 24px; justify-content: space-between; align-items: center; }
.tp-guide-info { display: flex; flex-direction: column; gap: 24px; justify-content: center; align-items: flex-start; min-width: 350px; max-width: 658px; }
.tp-guide-title { display: flex; gap: 8px; }
.tp-guide .tp-guide-bio { margin-bottom: 12px; font-size: 18px; font-weight: 400; }
.tp-guide-photo { flex: 1; min-width: 450px; max-width: 658px; height: 457px; border-radius: var(--tp-radius); object-fit: cover; }

/* Линия-рисунок за разделом — только на компьютере. */
.tp-guide-line {
  position: absolute;
  inset: 0 0 auto;
  z-index: -1;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  margin: -101px auto 0;
  overflow: hidden;
}
.tp-guide-line img { min-width: 2360px; max-width: none; }

@media (max-width: 991px) {
  .tp-guide { margin-top: 80px; }
  .tp-guide-wrap { gap: 20px; align-items: flex-start; }
  .tp-guide-info { gap: 32px; min-width: 0; max-width: 350px; }
  .tp-guide-photo { min-width: 0; max-width: 100%; height: 420px; }
  .tp-guide-line { display: none; }
}
@media (max-width: 767px) {
  .tp-guide { padding: 54px 0; background: var(--tp-grey); }
  .tp-guide-wrap { flex-direction: column; gap: 24px; }
  .tp-guide-info { gap: 24px; max-width: none; }
  .tp-guide-photo { flex: none; align-self: stretch; height: 200px; }
}

/* /assets/tour/price.css */
/* Страница тура, раздел site/_includes/tour/price.njk — цена, условия оплаты, «Включено» и «Не включено»;
 * поведение — price.js рядом. Размеры и отступы — те же, что были у Webflow: внешне раздел не изменился. */
.tp-price { margin-top: 180px; }
.tp-price .tp-container { gap: 40px; }
.tp-price-head { display: flex; justify-content: space-between; }
.tp-price-title { text-align: center; }
.tp-price-sum { display: flex; flex-direction: column; gap: 12px; }
.tp-price .tp-price-amount { display: flex; gap: 12px; justify-content: flex-end; align-items: center; font: 700 56px/105% var(--tp-font-head); }
.tp-price-old {
  font-weight: 400;
  text-decoration: line-through 3px var(--tp-dark);
  text-decoration-skip-ink: auto;
}
.tp-price-terms { display: flex; gap: 6px; }
/* Пустой последний элемент строки, как было у Webflow: после «?» ещё 6 px отступа. */
.tp-price-terms::after { content: ""; }

/* «?» с условиями оплаты: подсказка видна, пока на «?» наведена мышь, или после нажатия (price.js). */
.tp-price-hint { position: relative; width: 24px; height: 24px; }
.tp-price-hint-button { display: flex; width: 24px; height: 24px; padding: 0; border: 0; background: none; color: inherit; cursor: pointer; }
.tp-price-hint-button svg { width: 24px; }
.tp-price-hint-circle { color: var(--tp-accent); }
.tp-price-hint-panel {
  position: absolute;
  inset: 0 0 auto auto;
  z-index: 9999;
  display: none;
  flex-direction: column;
  width: 324px;
  margin: 26px 13px 0 0;
  padding: 18px;
  border-radius: var(--tp-radius);
  background: var(--tp-background);
  box-shadow: 0 2px 16px #6e5e4224;
  font-size: 16px;
}
.tp-price-hint:hover .tp-price-hint-panel, .tp-price-hint.tp-open .tp-price-hint-panel { display: flex; }
.tp-price .tp-price-hint-panel p { margin: 0 0 8px; font-size: 16px; }

/* «Включено» — рамка, маркеры списка — салатовые квадраты; «Не включено» — серая плашка. */
.tp-price-lists { display: flex; gap: 24px; justify-content: space-between; align-items: flex-start; }
.tp-price .tp-price-list-title { font-size: 32px; line-height: 115%; }
.tp-price-lists ul { margin: 0 0 10px; padding-left: 21px; font-size: 22px; line-height: 130%; list-style-type: square; }
.tp-price-lists li { margin-bottom: 12px; }
.tp-price-included {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
  min-width: 0;
  padding: 24px;
  border: 1px solid var(--tp-grey);
  border-radius: var(--tp-radius);
}
.tp-price-included ul { list-style: none; }
.tp-price-included li { position: relative; }
.tp-price-included li::before {
  content: "";
  position: absolute;
  top: 10px;
  left: -20px;
  width: 6px;
  height: 6px;
  background: url("/v/0c04b2b09b/assets/cdn.prod.website-files.com/67e3d4a57de60de33068b63c/67f61eabf814e4a9b52d37ea_Rectangle%20404.svg") 0 0 / cover no-repeat;
}
.tp-price-extra { border-radius: var(--tp-radius); background: var(--tp-grey); }
.tp-price-extra summary { display: flex; gap: 18px; justify-content: space-between; align-items: center; padding: 24px; list-style: none; }
.tp-price-extra summary::-webkit-details-marker { display: none; }
/* Свёрнутый список остаётся в раскладке (невидимый, высотой 0): ширина плашки — по содержимому, как была. */
.tp-price-extra:not([open])::details-content { content-visibility: visible; block-size: 0; overflow: hidden; visibility: hidden; }
.tp-price-extra-body { display: flex; flex-direction: column; gap: 12px; margin: 0 24px; padding-bottom: 24px; }
.tp-price .tp-price-note p { margin: 0 0 12px; font-size: 18px; font-weight: 400; line-height: 130%; }
.tp-price-extra li { font-size: 16px; line-height: 130%; }

@media (min-width: 1440px) {
  .tp-price-included { min-width: 586px; }
  .tp-price-lists ul { margin-bottom: 0; padding-left: 22px; }
}
@media (max-width: 991px) {
  .tp-price { margin-top: 80px; }
  .tp-price .tp-container { gap: 32px; }
  .tp-price-head { flex-direction: column; }
  .tp-price-sum { justify-content: flex-start; align-items: center; }
  .tp-price .tp-price-amount { font-size: 40px; }
  .tp-price-hint-panel { z-index: 99; }
  .tp-price-lists { flex-direction: column; gap: 20px; }
  .tp-price-included { padding: 16px; }
  .tp-price-included ul { font-size: 18px; }
  .tp-price-extra summary { padding: 16px; cursor: pointer; }
  .tp-price-extra-body { margin: 0 16px; padding-bottom: 16px; }
}
@media (max-width: 767px) {
  .tp-price .tp-container { gap: 40px; }
  .tp-price-head { gap: 24px; }
  .tp-price-hint { display: flex; justify-content: flex-end; align-items: flex-start; }
  .tp-price-hint-panel { right: auto; left: auto; margin-right: 0; }
  .tp-price-lists { min-width: 0; }
  .tp-price-included { gap: 0; }
}
@media (max-width: 479px) {
  .tp-price-terms { justify-content: flex-end; align-items: flex-start; }
  .tp-price-hint-panel { width: 280px; margin-left: auto; margin-right: -20px; }
}

/* /assets/tour/booking.css */
/* Страница тура, раздел site/_includes/tour/booking.njk: «Оставить заявку» — тёмная карточка с формой
 * и выбором заезда, справа фото с логотипом (на компьютере). Размеры — как были у Webflow. */
.tp-booking { margin-top: 150px; }
.tp-booking__inner { display: flex; gap: 24px; justify-content: space-between; align-items: flex-start; }

.tp-booking__card {
  display: flex; flex-direction: column; gap: 32px; justify-content: center; align-items: flex-start;
  width: 100%; min-width: 400px; max-width: 658px; min-height: 790.781px; padding: 32px;
  border-radius: var(--tp-radius); background-color: var(--tp-dark);
}
.tp-booking__form { width: 100%; }
.tp-section .tp-booking__title { margin-bottom: 24px; font-size: 56px; color: var(--tp-accent); }
.tp-section .tp-booking__tour { font-size: 16px; color: var(--tp-accent); }

/* Заезды: кнопки-вкладки, выбранная — салатовая; её дата уходит в скрытое поле departure. */
.tp-booking__tabs { display: flex; gap: 8px; margin: 20px 0; }
.tp-booking__tab {
  display: flex; flex-direction: column; gap: 4px; justify-content: flex-start; align-items: flex-start;
  max-width: 100%; margin: 0; padding: 8px; border: 1px solid var(--tp-accent); border-radius: var(--tp-radius);
  background: none; color: var(--tp-accent); font: inherit; text-align: left; cursor: pointer;
}
.tp-booking__tab[aria-pressed="true"] { background-color: var(--tp-accent); color: var(--tp-dark); }
.tp-booking__tab-text { display: block; font-family: var(--tp-font-text); font-size: 16px; line-height: 130%; }
.tp-booking__tab-info { display: flex; gap: 4px; justify-content: flex-start; align-items: center; }
.tp-booking__tab-tag {
  display: block; padding: 2px 8px; border-radius: var(--tp-radius); background-color: #e1f64133;
  font-family: var(--tp-font-text); font-size: 12px; line-height: 130%;
}
.tp-booking__tab[aria-pressed="true"] .tp-booking__tab-tag { background-color: rgba(39, 40, 43, .2); }
/* Новое оформление (new_design в tour.yaml): вкладки по три в ряд (на телефоне — по две). */
.tp-booking--wrap .tp-booking__tabs { flex-wrap: wrap; }
.tp-booking--wrap .tp-booking__tab { flex: 1 1 calc(33.333% - 8px); min-width: 0; }

/* Поля: только нижняя салатовая линия. Телефон оформляет intl-tel-input (assets/pa/phone.js). */
.tp-booking__field {
  display: block; width: 100%; height: 61px; margin: 0 0 8px; padding: 20px 0;
  border: 0; border-bottom: 1px solid var(--tp-accent); border-radius: 0; outline: 0;
  background-color: transparent; color: var(--tp-accent);
  font-family: var(--tp-font-text); font-size: 14px; line-height: 130%; vertical-align: middle;
}
.tp-booking__field::placeholder { color: #e1f64180; }
.tp-booking__comment { height: auto; min-height: 61px; max-height: 61px; margin-bottom: 0; line-height: 1.42857; overflow: auto; }

/* Как связаться: свои кружки вместо стандартных переключателей. */
.tp-booking__contacts { display: flex; flex-direction: column; gap: 8px; margin: 28px 0; }
.tp-booking__radio { display: flex; align-items: flex-start; margin: 0; font-weight: 400; color: var(--tp-accent); font-size: 16px; line-height: 20px; cursor: pointer; }
.tp-booking__radio-input {
  flex: none; width: 16px; height: 16px; margin: 1px 12px 0 0; border: 1px solid var(--tp-accent); border-radius: 50%;
  appearance: none; opacity: .5; cursor: pointer;
}
.tp-booking__radio-input:hover { opacity: 1; }
.tp-booking__radio-input:checked {
  opacity: 1; background: var(--tp-dark) url("/v/3b41a0bd36/assets/cdn.prod.website-files.com/67e3d4a57de60de33068b63c/67f64951a5f84375068d6200_Ellipse%2071.svg") 50% / 6px 6px no-repeat;
}
.tp-booking__radio-input:focus-visible, .tp-booking__checkbox:focus-visible { outline: 1px solid var(--tp-accent); outline-offset: 2px; }

.tp-booking__submit {
  display: inline-block; width: 100%; height: 48px; margin: 20px 0 12px; padding: 8px 12px; border: 0;
  border-radius: var(--tp-radius); background-color: var(--tp-accent); color: var(--tp-dark);
  font-family: var(--tp-font-text); font-size: 16px; line-height: 130%; appearance: button; cursor: pointer;
  transition: background-color .2s;
}
.tp-booking__submit:hover { background-color: #d4eb26; }

/* Согласие: квадратик и мелкий текст со ссылками. Текст — строчный блок рядом с плавающим квадратиком,
 * как было у Webflow: от этого зависит высота строки (и всей карточки) на один-два пикселя. */
.tp-booking__consent { display: block; margin: 0 0 5px; padding-left: 20px; color: var(--tp-accent); font-weight: 400; cursor: pointer; }
.tp-booking__consent > span { display: inline-block; font-size: 12px; }
.tp-booking__checkbox {
  float: left; width: 12px; height: 12px; margin: 4px 0 0 -20px; border: 1px solid var(--tp-accent); border-radius: 2px;
  appearance: none; cursor: pointer;
}
.tp-booking__checkbox:checked {
  border-color: #3898ec;
  background: #3898ec url("/v/83f5fbb274/assets/cdn.prod.website-files.com/67e3d4a57de60de33068b63c/686cde71535ac6bbdb5478c1_action-icons1.svg") 50% / cover no-repeat;
}
.tp-booking__muted { opacity: .5; }
.tp-booking__consent a { color: var(--tp-accent); }

/* Ответ после отправки (показывает site-enhancements.js). */
.tp-booking__done { display: none; color: var(--tp-accent); }
.tp-section .tp-booking__done h3 { margin-bottom: 12px; }
.tp-section .tp-booking__done p { font-size: 16px; }
.tp-booking__fail { display: none; margin-top: 10px; padding: 10px; background-color: #ffdede; }

/* Фото справа с логотипом поверх; на телефоне и планшете его нет. */
.tp-booking__pic {
  display: flex; justify-content: center; align-items: center; align-self: stretch; position: relative; overflow: hidden;
  width: 100%; min-width: 400px; max-width: 658px; border-radius: var(--tp-radius);
}
.tp-booking__logo { position: relative; z-index: 1; width: 175px; height: 234px; color: var(--tp-accent); }
.tp-booking__photo { display: block; position: absolute; inset: 0; width: 100%; max-width: none; height: 100%; min-height: 791px; object-fit: cover; }

@media (max-width: 991px) {
  .tp-booking { margin-top: 80px; }
  .tp-booking__card { max-width: none; min-height: 0; padding: 24px; }
  .tp-section .tp-booking__title { font-size: 40px; }
  .tp-booking__tabs { gap: 10px; }
  .tp-booking__tab-tag { display: flex; justify-content: center; align-items: center; }
  .tp-booking__pic { display: none; }
}
@media (max-width: 767px) {
  .tp-booking { margin-top: 140px; }
  .tp-booking--wrap .tp-booking__tab { flex-basis: calc(50% - 8px); }
}
@media (max-width: 479px) {
  .tp-booking__card { min-width: 0; }
  .tp-booking__tabs { flex-wrap: wrap; }
}

/* /assets/tour/faq.css */
/* Страница тура, раздел site/_includes/tour/faq.njk — вопросы и ответы. Размеры и отступы — те же, что
 * были у Webflow: внешне раздел не изменился. Ответ раскрывается плавно там, где браузер это умеет
 * (::details-content), в остальных — сразу; свёрнутый ответ остаётся в раскладке (невидимый, высотой 0),
 * поэтому ширина колонок, как и была, учитывает и ответы. */
.tp-faq { margin-top: 180px; padding-bottom: 80px; }
.tp-faq .tp-container { gap: 40px; }
.tp-faq-list { display: grid; grid-template: auto auto / 1fr 1fr; grid-auto-columns: 1fr; gap: 8px 24px; justify-content: space-between; align-items: start; }
.tp-faq-item { border-radius: var(--tp-radius); background: var(--tp-grey); interpolate-size: allow-keywords; }
.tp-faq-item summary { display: flex; gap: 18px; justify-content: space-between; align-items: center; padding: 24px; list-style: none; cursor: pointer; }
.tp-faq-item summary::-webkit-details-marker { display: none; }
.tp-faq-question { font-family: var(--tp-font-text); line-height: 130%; }
.tp-faq-icon { display: flex; align-self: flex-start; justify-content: center; align-items: center; width: 2rem; transition: transform .4s ease; }
.tp-faq-item[open] .tp-faq-icon { transform: rotate(45deg); }
.tp-faq-item::details-content { content-visibility: visible; block-size: 0; overflow: hidden; visibility: hidden; transition: block-size .4s ease, visibility .4s; }
.tp-faq-item[open]::details-content { block-size: auto; visibility: visible; }
.tp-faq-answer { display: flex; flex-direction: column; gap: 12px; margin: 0 24px; padding-bottom: 24px; }
.tp-faq .tp-faq-answer p { margin: 0 0 12px; font-size: 18px; font-weight: 400; line-height: 130%; }
.tp-faq-answer ul { margin: 0 0 10px; padding-left: 21px; overflow: hidden; font-size: 22px; line-height: 130%; list-style-type: square; }
.tp-faq-answer li { margin-bottom: 12px; font-size: 16px; font-weight: 400; line-height: 130%; }
@media (prefers-reduced-motion: reduce) {
  .tp-faq-icon, .tp-faq-item::details-content { transition: none; }
}

/* Кнопка «Задать вопрос» — тёмная, стрелка выезжает при наведении. */
.tp-faq-ask {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 50px;
  padding: 8px 12px;
  border: 0;
  border-radius: var(--tp-radius);
  background: var(--tp-dark);
  color: var(--tp-accent);
  font: 16px/130% var(--tp-font-text);
  text-align: start;
  cursor: pointer;
  transition: background-color .2s;
}
.tp-faq-ask:hover { background: #1c1d1f; }
.tp-faq-ask-mark {
  display: flex;
  width: 0;
  height: 16px;
  padding-left: 6px;
  overflow: hidden;
  transition: all .2s cubic-bezier(.645, .045, .355, 1);
}
.tp-faq-ask:hover .tp-faq-ask-mark { width: 18px; }
.tp-faq-ask-mark svg { flex: none; width: 12px; }

@media (min-width: 1440px) {
  .tp-faq-answer ul { margin-bottom: 0; padding-left: 22px; }
}
@media (max-width: 991px) {
  .tp-faq { margin-top: 80px; }
  .tp-faq .tp-container { gap: 32px; }
  .tp-faq-item summary { padding: 16px; }
  .tp-faq-answer { margin: 0 16px; padding-bottom: 16px; }
}
@media (max-width: 767px) {
  .tp-faq-icon { width: 1.75rem; }
}

/* /assets/tour/other-tours.css */
/* Страница тура, раздел site/_includes/tour/other-tours.njk: «Куда ещё можно поехать» — заголовок со
 * стрелками и лента карточек туров. Лента — обычная прокрутка браузера по горизонтали (без полосы
 * прокрутки), во всю ширину экрана; отступ слева и справа — как поле .tp-container (assets/tour.css).
 * Размеры — как были у Webflow. */
.tp-other-tours { --tp-other-tours-gutter: 32px; margin-top: 180px; }
.tp-other-tours__head { display: flex; justify-content: space-between; align-items: flex-start; }
.tp-other-tours__nav { display: flex; gap: 12px; }
.tp-other-tours__arrow {
  display: flex; justify-content: center; align-items: center; width: 58px; height: 58px; margin: 0; padding: 9px;
  border: 0; border-radius: 100px; background-color: var(--tp-accent); color: var(--tp-dark); cursor: pointer;
  transition: background-color .2s;
}
.tp-other-tours__arrow:hover { background-color: #d4eb26; }
.tp-other-tours__arrow svg { width: 24px; height: 24px; }
.tp-other-tours__arrow--next svg { transform: rotate(180deg); }

.tp-other-tours__list {
  display: flex; gap: 24px; justify-content: flex-start; align-items: flex-start; position: relative;
  margin: 40px 0 0; padding: 0 var(--tp-other-tours-gutter); list-style: none; font-size: 16px; line-height: 20px;
  overflow-x: auto; overscroll-behavior-x: contain; scroll-padding-inline: var(--tp-other-tours-gutter);
  scrollbar-width: none; cursor: grab;
}
.tp-other-tours__list::-webkit-scrollbar { display: none; }
.tp-other-tours__list.is-dragging { cursor: grabbing; user-select: none; }

/* Карточка тура. */
.tp-tour-card { display: flex; flex-direction: column; flex: none; width: 389px; margin: 0; overflow: hidden; }
.tp-tour-card__pic {
  display: flex; justify-content: center; align-items: flex-start; position: relative; overflow: hidden; min-height: 251px;
  border-top-left-radius: var(--tp-radius); border-top-right-radius: var(--tp-radius);
}
.tp-tour-card__photo { display: block; width: 100%; max-width: 100%; height: 251px; object-fit: cover; }
.tp-tour-card__tag {
  position: absolute; top: 18px; right: 18px; padding: 4px 12px; border-radius: var(--tp-radius); background-color: var(--tp-background);
  font-family: var(--tp-font-text); font-size: 16px; line-height: 20px; text-transform: uppercase;
}
.tp-tour-card__info {
  display: flex; flex-direction: column; flex: 1; justify-content: space-between; align-items: flex-start;
  min-height: 323px; max-height: 323px; padding: 16px; background-color: var(--tp-grey);
  border-bottom-left-radius: var(--tp-radius); border-bottom-right-radius: var(--tp-radius);
}
.tp-tour-card__top { display: flex; flex-direction: column; gap: 8px; }
.tp-section .tp-tour-card__title { font-size: 32px; line-height: 115%; }
.tp-tour-card__dates { display: flex; flex-wrap: wrap; gap: 2px; }
.tp-tour-card__date {
  padding: 6px 12px; border-radius: var(--tp-radius); background-color: var(--tp-grey-dark);
  font-family: var(--tp-font-text); font-size: 16px; line-height: 20px;
}
.tp-section .tp-tour-card__text {
  display: -webkit-box; margin-top: 8px; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2;
  font-size: 16px; opacity: .7;
}
.tp-tour-card__bottom { display: flex; flex-direction: column; gap: 16px; width: 100%; margin-top: 21px; }
.tp-section .tp-tour-card__price { font-size: 32px; }
.tp-tour-card__old-price, .tp-tour-card__amount { font-family: var(--tp-font-head); line-height: 115%; }
.tp-tour-card__amount { font-weight: 700; }
.tp-tour-card__muted { opacity: .5; }

/* «Подробнее»: при наведении справа выезжает стрелка-логотип. */
.tp-tour-card__button {
  display: flex; justify-content: center; align-items: center; width: 100%; height: 50px; padding: 8px 12px;
  border-radius: var(--tp-radius); background-color: var(--tp-dark); color: var(--tp-accent);
  font-family: var(--tp-font-text); font-size: 16px; line-height: 130%; text-decoration: none; transition: background-color .2s;
}
.tp-tour-card__button:hover { background-color: #1c1d1f; }
.tp-tour-card__mark {
  display: flex; width: 0; height: 16px; padding-left: 6px; overflow: hidden;
  transition: all .2s cubic-bezier(.645, .045, .355, 1);
}
.tp-tour-card__button:hover .tp-tour-card__mark { width: 18px; }
.tp-tour-card__mark svg { flex: none; width: 12px; height: 16px; }

@media (min-width: 1440px) {
  .tp-other-tours { --tp-other-tours-gutter: max(50px, calc((100% - 1440px) / 2 + 50px)); }
}
@media (max-width: 991px) {
  .tp-other-tours { --tp-other-tours-gutter: 24px; margin-top: 80px; }
  .tp-other-tours__head { justify-content: center; }
  .tp-other-tours__nav { display: none; }
  .tp-other-tours__list { gap: 20px; align-items: stretch; margin-top: 32px; }
  .tp-tour-card { width: 320px; }
  .tp-tour-card__info { max-height: none; }
}
@media (max-width: 767px) {
  .tp-other-tours { --tp-other-tours-gutter: 16px; }
  .tp-other-tours__head { flex-direction: column; justify-content: space-between; align-items: center; }
  .tp-tour-card { width: 350px; }
}
@media (prefers-reduced-motion: reduce) {
  .tp-tour-card__mark { transition: none; }
}

/* /assets/pa/header.css */
/* Шапка сайта (site/_includes/pa/header.njk): своя вёрстка без классов Webflow, приставка pa- — общие части
 * всего сайта. Значения — те же, что были у прежней шапки Webflow: внешне шапка не изменилась
 * (scripts/compare-pages.mjs). Поведение — assets/pa/header.js. */
.pa-header {
  --pa-dark: #27282b;
  --pa-light: #fafafa;
  --pa-accent: #e1f641;
  --pa-font-head: Bebasneue, Arial, sans-serif;
  --pa-font-text: "Roboto Condensed", sans-serif;
  position: absolute;
  inset: 0 0 auto;
  z-index: 99999;
  padding: 20px 0;
  color: var(--pa-light);
  font-family: var(--pa-font-text);
  font-size: 16px;
  line-height: 20px;
}
.pa-header, .pa-header *, .pa-header *::before, .pa-header *::after { box-sizing: border-box; }
@media (min-width: 1440px) { .pa-header { overflow: hidden; } }
@media (max-width: 991px) { .pa-header { height: 72px; } }
@media (max-width: 767px) { .pa-header { height: auto; padding: 14px 0; } }

/* Ширина и поля по краям — как у остальных блоков страницы. */
.pa-header-container { display: flex; flex-direction: column; margin: 0 auto; padding: 0 32px; }
@media (min-width: 1440px) { .pa-header-container { max-width: 1440px; padding: 0 50px; } }
@media (max-width: 991px) { .pa-header-container { padding: 0 24px; overflow: hidden; } }
@media (max-width: 767px) { .pa-header-container { padding: 0 16px; } }

/* Полоса: слева меню, по центру логотип, справа телефон и мессенджеры; до 991 px — логотип и кнопка меню. */
.pa-header-bar { position: relative; display: flex; justify-content: space-between; align-items: center; }
.pa-header-nav { display: flex; justify-content: flex-start; align-items: center; gap: 48px; }
.pa-header-contacts { display: flex; justify-content: flex-end; align-items: center; gap: 32px; }
@media (min-width: 1440px) { .pa-header-nav { gap: 57px; } }
@media (max-width: 991px) { .pa-header-nav, .pa-header-contacts { display: none; } }

.pa-header-link { color: var(--pa-light); line-height: 130%; text-decoration: none; white-space: nowrap; }
.pa-header-link:hover { text-decoration: none; }
@media (min-width: 1280px) { .pa-header-link:hover { color: #e3e3e3; } }
@media (min-width: 1440px) { .pa-header-link { transition: all .2s; } }

.pa-header-logo { position: absolute; inset: 0; width: 161px; margin: 0 auto; }
.pa-header-logo-link { display: inline-block; max-width: 100%; width: 161px; height: 28.333px; color: var(--pa-light); }
@media (min-width: 1440px) { .pa-header-logo-link[aria-current] { height: 28.33px; } }
@media (max-width: 991px) { .pa-header-logo { position: static; margin-left: 0; } }
@media (max-width: 479px) {
  .pa-header-logo { display: flex; justify-content: flex-start; align-items: center; width: 120px; height: 21.5px; }
  .pa-header-logo-link[aria-current] { width: 120px; height: 21.5px; }
}

/* Круглые кнопки Telegram и WhatsApp — в шапке и в меню. */
.pa-chats { display: flex; justify-content: flex-start; align-items: center; gap: 8px; }
.pa-chat {
  display: flex; justify-content: center; align-items: center; width: 32px; height: 32px; border-radius: 40px;
  background-color: var(--pa-light); color: var(--pa-dark); transition: background-color .2s;
}
.pa-chat:hover { background-color: #d4d4d4; }
.pa-chat-icon { width: 18px; height: 18px; color: var(--pa-dark); }
.pa-chat-icon-telegram { margin-right: 3px; }
.pa-chat-icon-whatsapp { margin-left: 1px; }

.pa-header-burger, .pa-menu-close {
  display: none; margin: 0; padding: 0; border: 0; background: none; color: inherit; cursor: pointer;
}
.pa-header-burger-icon, .pa-menu-close-icon { display: block; width: 100%; height: auto; }
@media (max-width: 991px) { .pa-header-burger { display: block; width: 34px; height: 34px; } }

/* Меню до 991 px: во весь экран, выезжает сверху. Закрытое — невидимо и для клавиатуры. */
.pa-menu { display: none; }
@media (max-width: 991px) {
  .pa-menu {
    position: fixed; top: -100%; left: 0; z-index: 1000; display: flex; width: 100%; height: 100%; padding: 48px 32px;
    overflow-y: auto; background-color: var(--pa-dark); visibility: hidden;
    transition: top .3s ease-in-out, visibility 0s .3s;
  }
  .pa-menu.pa-menu-open { top: 0; visibility: visible; transition: top .3s ease-in-out; }
  .pa-menu-close { display: block; position: absolute; top: 0; right: 0; width: 34px; height: 34px; margin: 14px 32px 0 0; }
}
@media (prefers-reduced-motion: reduce) { .pa-menu, .pa-menu.pa-menu-open { transition: none; } }
.pa-menu-inner { display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start; min-height: 100%; }
.pa-menu-nav { display: flex; flex-direction: column; gap: 20px; }
.pa-menu-list { margin: 0; padding: 0; list-style: none; font-size: 22px; line-height: 130%; }
.pa-menu-list li { margin: 15px 0; }
.pa-menu-link {
  color: var(--pa-light); font-family: var(--pa-font-head); font-size: 48px; font-weight: 700; line-height: 108%;
  text-decoration: none; transition: color .3s ease;
}
.pa-menu-bottom { display: flex; flex-direction: column; gap: 24px; }
.pa-menu-contacts { display: flex; gap: 24px; }
.pa-menu-contact { color: var(--pa-light); font-size: 13px; text-decoration: none; }
.pa-menu-email { text-decoration: underline; }

/* Кнопка «Наверх»: появляется, когда страницу пролистали (assets/pa/header.js). */
.pa-to-top {
  display: none; position: fixed; right: 32px; bottom: 100px; z-index: 99; width: 50px; height: 50px; margin: 0; padding: 1px 6px;
  border: none; border-radius: 50%; background-color: var(--pa-accent); color: black;
  font-family: var(--pa-font-text); font-size: 18px; line-height: 20px; cursor: pointer;
  box-shadow: 0 4px 15px rgba(37, 211, 102, .5);
  transition: background-color .3s ease, transform .2s ease-out, box-shadow .2s ease-out;
}
.pa-to-top.pa-to-top-shown { display: block; }
.pa-to-top:hover { background-color: #d4eb26; transform: scale(1.1); box-shadow: 0 6px 20px rgba(37, 211, 102, .7); }
@media (max-width: 767px) { .pa-to-top { right: 16px; } }

/* Плавающая кнопка WhatsApp в правом нижнем углу, «дышит» тенью. */
.pa-whatsapp { position: fixed; right: 32px; bottom: 32px; width: 50px; height: 50px; }
@media (min-width: 1440px) { .pa-whatsapp { z-index: 2147483647; } }
@media (max-width: 767px) { .pa-whatsapp { z-index: 9999; right: 16px; } }
.pa-whatsapp-button {
  display: flex; justify-content: center; align-items: center; width: 50px; height: 50px; border-radius: 40px;
  background-color: #25d366; color: var(--pa-dark); text-decoration: none;
  box-shadow: 0 4px 15px rgba(37, 211, 102, .5);
  transition: transform .2s ease-out, box-shadow .2s ease-out;
  animation: pa-whatsapp-pulse 1.5s infinite;
}
.pa-whatsapp-button:hover { background-color: #22b95a; transform: scale(1.1); box-shadow: 0 6px 20px rgba(37, 211, 102, .7); }
.pa-whatsapp-icon { width: 28px; height: 28px; margin-left: 1px; color: white; }
@keyframes pa-whatsapp-pulse {
  0% { box-shadow: 0 0 0 0 rgba(37, 211, 102, .5); }
  70% { box-shadow: 0 0 0 10px rgba(37, 211, 102, 0); }
  100% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0); }
}
@media (prefers-reduced-motion: reduce) {
  .pa-whatsapp-button { animation: none; }
  .pa-header-link, .pa-chat, .pa-menu-link, .pa-to-top, .pa-whatsapp-button { transition: none; }
}

/* Тёмная шапка (pa-header--dark, headerTheme = "dark") — на страницах со светлым фоном сверху: стоит в потоке
 * страницы, а не поверх первого раздела; текст, логотип и «бургер» тёмные, кнопки мессенджеров в полосе — тёмные
 * с белым значком; поля сверху и снизу — 20 px на всех ширинах. Меню на телефоне — как у светлой. Кнопка
 * «Наверх» — как была у этой шапки в Webflow: справа 32 px на всех ширинах и выше всего на странице. */
.pa-header--dark { position: static; z-index: auto; color: var(--pa-dark); }
@media (min-width: 1440px) { .pa-header--dark { overflow: visible; } }
@media (max-width: 991px) { .pa-header--dark { height: auto; } }
@media (max-width: 767px) { .pa-header--dark { padding: 20px 0; } }
.pa-header--dark .pa-header-link, .pa-header--dark .pa-header-logo-link { color: var(--pa-dark); }
.pa-header--dark .pa-header-link:hover { color: #5d5e62; }
.pa-header--dark .pa-header-contacts .pa-chat { background-color: var(--pa-dark); }
.pa-header--dark .pa-header-contacts .pa-chat:hover { background-color: #5d5e62; }
.pa-header--dark .pa-header-contacts .pa-chat-icon { color: white; }
.pa-header--dark .pa-menu-close { color: var(--pa-light); }
.pa-header--dark .pa-to-top { z-index: 99999999; }
@media (max-width: 767px) { .pa-header--dark .pa-to-top { right: 32px; } }

/* Кнопка «Записаться в группу» страницы тура (#fixed-button, site/tour.njk) видна только на телефоне —
 * правило жило во встроенном стиле старой шапки; на компьютере кнопка занимает место, но не видна. */
#fixed-button { visibility: hidden; }
@media (max-width: 767px) { #fixed-button { visibility: visible; } }

/* /assets/pa/popups.css */
/* Окна с формами заявок (site/_includes/pa/popups.njk): «Индивидуальный тур», «Куда хотите поехать»,
 * «Задать вопрос». Тёмная карточка по центру экрана на затемнённом фоне; значения — те же, что были у
 * прежней шапки Webflow. Открывает и закрывает assets/pa/popups.js (класс pa-popup-open). */
.pa-popup {
  position: fixed; inset: 0; display: none; justify-content: center; align-items: center;
  font-family: "Roboto Condensed", sans-serif; font-size: 16px; line-height: 20px;
}
.pa-popup.pa-popup-open { display: flex; }
.pa-popup-overlay { position: fixed; inset: 0; z-index: 1; background-color: #00000080; }
.pa-popup-close {
  position: absolute; top: 0; right: 0; z-index: 100; width: 40px; height: 40px; margin: 24px 24px 0 0; padding: 0;
  border: 0; background: none; color: #e1f641; cursor: pointer;
}
.pa-popup-close-icon { display: block; width: 100%; height: auto; }

/* Карточка: по вертикали — по центру окна, по горизонтали — 556 px по центру (на телефоне — с полями 16 px). */
.pa-popup-box {
  position: absolute; left: 0; right: 0; z-index: 1; width: 556px; margin: 0 auto; padding: 32px;
  border-radius: 6px; background-color: #27282b;
}
.pa-popup-box:focus { outline: none; }
.pa-popup--individual .pa-popup-box { display: flex; flex-direction: column; justify-content: flex-start; align-items: flex-start; gap: 24px; }
@media (max-width: 767px) { .pa-popup-box { width: auto; margin: 0 16px; padding: 16px; } }

.pa-popup-title { margin: 0; color: #e1f641; font-family: Bebasneue, Arial, sans-serif; font-size: 32px; font-weight: 700; line-height: 115%; }

.pa-popup-form { display: flex; flex-direction: column; flex: 0 auto; width: 100%; }
/* Поля: только нижняя салатовая линия. Телефон оформляет intl-tel-input (assets/pa/phone.css). */
.pa-popup-field {
  display: block; width: 100%; height: 61px; margin: 0 0 8px; padding: 20px 0;
  border: 0; border-bottom: 1px solid #e1f641; border-radius: 0; outline: 0;
  background-color: transparent; color: #e1f641;
  font-family: inherit; font-size: 14px; line-height: 130%; vertical-align: middle;
}
.pa-popup-field::placeholder { color: #e1f64180; }
.pa-popup-comment { height: auto; min-height: 61px; max-height: 61px; margin-bottom: 0; line-height: 1.42857; overflow: auto; }

.pa-popup-submit {
  display: inline-block; height: 48px; margin: 20px 0 12px; padding: 8px 12px; border: 0; border-radius: 6px;
  background-color: #e1f641; color: #27282b; font: inherit; line-height: inherit;
  appearance: button; cursor: pointer; transition: background-color .2s;
}
.pa-popup-submit:hover { background-color: #d4eb26; }

/* Согласие: квадратик и мелкий текст со ссылками; текст — строчный блок рядом с плавающим квадратиком,
 * как было у Webflow (от этого зависит высота строки). */
.pa-popup-consent { display: block; margin: 0 0 5px; padding-left: 20px; color: #e1f641; font-weight: 400; cursor: pointer; }
.pa-popup-consent-text { display: inline-block; font-size: 12px; }
.pa-popup-checkbox {
  float: left; width: 12px; height: 12px; margin: 4px 0 0 -20px; border: 1px solid #e1f641; border-radius: 2px;
  appearance: none; cursor: pointer;
}
.pa-popup-checkbox:checked {
  border-color: #3898ec;
  background: #3898ec url("/v/83f5fbb274/assets/cdn.prod.website-files.com/67e3d4a57de60de33068b63c/686cde71535ac6bbdb5478c1_action-icons1.svg") 50% / cover no-repeat;
}
.pa-popup-checkbox:focus-visible { outline: 0; box-shadow: 0 0 3px 1px #3898ec; }
.pa-popup-muted { opacity: .5; }
.pa-popup-consent a { color: #e1f641; }

/* Ответ после отправки (показывает site-enhancements.js). */
.pa-popup-done { display: none; padding: 20px; background-color: #ddd; text-align: center; }
.pa-popup-fail { display: none; margin-top: 10px; padding: 10px; background-color: #ffdede; }

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

/* /assets/pa/phone.css */
/* Поле телефона во всех формах страницы (intl-tel-input, assets/pa/phone.js): флаг страны слева в поле,
 * список стран со строкой поиска. Подключается после intlTelInput.css и поправляет его под наши поля. */
.iti__country-container {
  position: absolute;
  top: 16px;
  bottom: 28px;
  background-color: transparent;
  padding: var(--iti-border-width);
  border-radius: 6px;
  font-family: Roboto Condensed, sans-serif;
}

.iti--inline-dropdown .iti__dropdown-content {
  position: absolute;
  z-index: 2;
  margin-top: 8px;
  margin-left: 0px;
  padding: 8px 8px 8px 8px;
  border: 0px;
  box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.2);
  max-width: 360px;
  font-family: Roboto Condensed, sans-serif;
}

.iti__search-input {
  width: 100%;
  border-width: 0;
  border-radius: 6px;
  height: 35px;
  padding-left: 10px;
  margin-bottom: 6px;
  border: solid 1px;
  border-color: #5D5E62;
  font-family: Roboto Condensed, sans-serif;
}

.iti {
  width: 100%;
}
.iti__dropdown-content {
  border-radius: 6px;
  padding: 4px;
}

.iti-0__dropdown-content {
  font-family: Roboto Condensed, sans-serif;
  border-radius: 6px;
  padding: 4px;
}

.iti-input.iti__tel-input {
  margin-bottom: 8px;
}

.iti input.iti__tel-input,
.iti input.iti__tel-input[type=text],
.iti input.iti__tel-input[type=tel] {
  position: relative;
  z-index: 0;
  margin-bottom: 8px !important;
}

/* /assets/fonts.css */
/* Шрифт Roboto Condensed (основной текст) лежит на нашем сервере, а не у Google: браузер посетителя
 * никуда не отправляет его адрес. Шрифт переменный — один файл на набор символов даёт и обычное (400),
 * и жирное (700) начертание. Лицензия SIL Open Font License. Скачан с fonts.gstatic.com (v31). */
/* cyrillic */
@font-face {
  font-family: 'Roboto Condensed';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("/v/b96fbbb3e9/assets/fonts/roboto-condensed-cyrillic.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* latin */
@font-face {
  font-family: 'Roboto Condensed';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("/v/718ced55c5/assets/fonts/roboto-condensed-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Roboto Condensed';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("/v/2683aec232/assets/fonts/roboto-condensed-cyrillic-ext.woff2") format("woff2");
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* latin-ext */
@font-face {
  font-family: 'Roboto Condensed';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("/v/a0116a788a/assets/fonts/roboto-condensed-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* /assets/pa/common.css */
/* Общие части сайта своей вёрсткой без Webflow (site/_includes/pa/*.njk): подвал, баннер, подписка,
 * партнёры, «Почему этот тур особенный». Здесь общее для них — цвета, ширина страницы, заголовок
 * раздела и салатовая кнопка; стили каждой части — site/assets/pa/<часть>.css. Классы — с приставкой
 * pa-, чтобы не пересекаться с CSS Webflow, который другие части страниц пока подключают.
 * Значения — те же, что были у Webflow: внешне страницы не изменились (scripts/compare-pages.mjs). */
:root {
  --pa-dark: #27282b;
  --pa-dark-hover: #5d5e62;
  --pa-light: #fff;
  --pa-grey: #f0f0f0;
  --pa-accent: #e1f641;
  --pa-accent-hover: #d4eb26;
  --pa-radius: 6px;
  --pa-font-head: Bebasneue, Arial, sans-serif;
  --pa-font-text: "Roboto Condensed", sans-serif;
}

/* Ширина содержимого и поля по краям — как .container Webflow. */
.pa-container { box-sizing: border-box; display: flex; flex-direction: column; margin: 0 auto; padding: 0 32px; }
@media (min-width: 1440px) { .pa-container { max-width: 1440px; padding: 0 50px; } }
@media (max-width: 991px) { .pa-container { padding: 0 24px; overflow: hidden; } }
@media (max-width: 767px) { .pa-container { padding: 0 16px; } }

/* Заголовок раздела. */
.pa-title { margin: 0; font-family: var(--pa-font-head); font-size: 72px; font-weight: 700; line-height: 105%; }
@media (max-width: 991px) { .pa-title { font-size: 48px; } }

/* Салатовая кнопка-ссылка со стрелкой, которая выезжает при наведении. */
.pa-accent-button {
  box-sizing: border-box; display: flex; justify-content: center; align-items: center; width: 100%; height: 50px; padding: 8px 12px;
  border-radius: var(--pa-radius); background-color: var(--pa-accent); color: var(--pa-dark);
  font-family: var(--pa-font-text); font-size: 16px; line-height: 130%; text-decoration: none; transition: background-color .2s;
}
.pa-accent-button:hover { background-color: var(--pa-accent-hover); }
.pa-button-mark { display: flex; width: 0; height: 16px; padding-left: 6px; overflow: hidden; transition: all .2s cubic-bezier(.645, .045, .355, 1); }
.pa-button-mark svg { width: 12px; }
.pa-accent-button:hover .pa-button-mark, .pa-accent-button:focus-visible .pa-button-mark { width: 18px; }
@media (prefers-reduced-motion: reduce) { .pa-accent-button, .pa-button-mark { transition: none; } }

/* /assets/pa/advantages.css */
/* «Почему этот тур особенный» (site/_includes/pa/advantages.njk): четыре карточки со значком над вырезом,
 * за ними на компьютере — длинная линия-маршрут. На страницах туров на планшете карточки встают сеткой по
 * две, на главной и в «О нас» (.pa-advantages--site) — переносятся строками. Значения — как у Webflow. */
.pa-advantages { position: relative; margin-top: 120px; }
.pa-advantages-wrapper { display: flex; flex-direction: column; gap: 40px; height: 360px; }
.pa-advantages-title { text-align: center; }
.pa-advantages-row { display: flex; justify-content: space-between; align-items: flex-start; gap: 24px; margin: 0; padding: 0; list-style: none; }
.pa-advantages-card { display: flex; justify-content: flex-start; align-items: flex-start; gap: 23px; margin: 0; }
.pa-advantages--site .pa-advantages-card { display: block; }
.pa-advantages-item { height: 247px; }
.pa-advantages-icon { display: flex; justify-content: center; align-items: flex-start; width: 100%; margin-bottom: -15px; }
.pa-advantages-icon-img { display: inline-block; max-width: 100%; vertical-align: middle; border: 0; }
/* Верх карточки: два скруглённых угла и между ними вырез под значок. */
.pa-advantages-top { display: flex; justify-content: space-between; align-items: center; height: 26px; }
.pa-advantages-corner { width: 100%; height: 26px; background-color: var(--pa-grey); }
.pa-advantages-corner--left { border-top-left-radius: var(--pa-radius); }
.pa-advantages-corner--right { border-top-right-radius: var(--pa-radius); }
.pa-advantages-notch { width: 70px; min-width: 70px; min-height: 26px; color: var(--pa-grey); }
.pa-advantages-content {
  box-sizing: border-box; display: flex; flex-direction: column; justify-content: space-between; align-items: center;
  min-width: 220px; max-width: 317px; min-height: 195px; padding: 22px 16px 16px;
  border-radius: 0 0 var(--pa-radius) var(--pa-radius); background-color: var(--pa-grey);
}
.pa-advantages-name { margin: 0; font-family: var(--pa-font-head); font-size: 32px; font-weight: 700; line-height: 115%; text-align: center; }
.pa-advantages-text { margin: 0; font-family: var(--pa-font-text); font-size: 16px; line-height: 130%; text-align: center; }
.pa-advantages-line {
  position: absolute; inset: 0 0 auto; z-index: -1; display: flex; justify-content: center; align-items: flex-start;
  margin: -327px auto 0; overflow: hidden;
}
.pa-advantages-line-img { display: inline-block; max-width: 100%; min-width: 2314px; vertical-align: middle; border: 0; }
@media (min-width: 1440px) {
  .pa-advantages-item { min-width: 286px; max-width: 317px; height: 248px; }
  .pa-advantages-content { padding: 24px; }
  .pa-advantages-line { margin-top: -368px; }
  .pa-advantages-line-img { min-width: 2520px; }
}
@media (max-width: 991px) {
  .pa-advantages { margin-top: 80px; }
  .pa-advantages-wrapper { gap: 32px; height: auto; }
  .pa-advantages-row { display: grid; grid-template-rows: auto auto; grid-template-columns: 1fr 1fr; grid-auto-columns: 1fr; gap: 16px; }
  .pa-advantages--site .pa-advantages-row { display: flex; flex-wrap: wrap; gap: 20px; }
  .pa-advantages--site .pa-advantages-card { flex: 1; }
  .pa-advantages-item { flex: 1; min-width: 290px; max-width: 452px; height: 246px; }
  .pa-advantages-content { min-width: 320px; max-width: 452px; padding: 24px; }
  .pa-advantages-head { max-width: 320px; }
  .pa-advantages-line { display: none; }
}
@media (max-width: 767px) {
  .pa-advantages { margin-top: 120px; }
  .pa-advantages-wrapper { width: 100%; }
  .pa-advantages-row { grid-template-columns: 1fr; }
  .pa-advantages--site .pa-advantages-row { flex-direction: column; }
  .pa-advantages-card { width: 100%; }
  .pa-advantages-item, .pa-advantages-content { width: 100%; min-width: 0; max-width: none; }
  .pa-advantages-text-wrap { max-width: 320px; }
}
@media (max-width: 479px) {
  .pa-advantages { margin-top: 90px; }
}

/* /assets/pa/banner.css */
/* Баннер «telegram-канал о путешествиях» (site/_includes/pa/banner.njk): фото во всю ширину, текст и
 * кнопка «Подписаться» внизу слева. Значения — те же, что были у Webflow. */
.pa-banner { margin-top: 180px; }
.pa-banner-wrapper {
  box-sizing: border-box; display: flex; flex-direction: column; justify-content: flex-end; align-items: flex-start; gap: 48px;
  height: 540px; padding: 28px; border-radius: var(--pa-radius);
  background: url("/v/534c4af67b/assets/cdn.prod.website-files.com/67e3d4a57de60de33068b63c/67ee304593e0d1ee4c7aefc7_banner.webp") 50% 100% / cover;
}
.pa-banner-texts { display: flex; flex-direction: column; justify-content: flex-start; align-items: flex-start; gap: 6px; width: 893px; }
.pa-banner-title, .pa-banner-text { color: var(--pa-accent); }
.pa-banner-lead { width: 572px; }
.pa-banner-text { margin: 0; font-family: var(--pa-font-text); font-size: 22px; line-height: 130%; }
.pa-banner-action { width: 359px; }
@media (max-width: 991px) {
  .pa-banner { margin-top: 100px; }
  .pa-banner-wrapper { gap: 40px; height: 400px; padding: 16px; background-position: 50% 0; background-repeat: no-repeat; }
  .pa-banner-texts { width: auto; }
  .pa-banner-text { font-size: 18px; }
  .pa-banner-action { width: 100%; }
}
@media (max-width: 767px) {
  .pa-banner-wrapper { height: 635px; }
  .pa-banner-lead { width: auto; }
}
@media (max-width: 479px) {
  .pa-banner-wrapper { background-position: 50% 100%; }
  .pa-banner-head { max-width: 271px; }
}

/* /assets/pa/subscribe.css */
/* Подписка на рассылку (site/_includes/pa/subscribe.njk): тёмная карточка с формой и фото с логотипом.
 * Значения — те же, что были у Webflow. */
.pa-subscribe { margin-top: 70px; }
.pa-subscribe-wrap { display: flex; justify-content: flex-start; align-items: center; gap: 24px; }
.pa-subscribe-card {
  box-sizing: border-box; display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start;
  width: 544px; height: 553px; margin: 0; padding: 24px; border-radius: var(--pa-radius); background-color: var(--pa-dark);
}
.pa-subscribe-title { color: var(--pa-accent); }

/* Поле почты и кнопка-стрелка — в одной строке, галочка согласия — под ними. */
.pa-subscribe-fields { display: flex; flex-wrap: wrap; width: 100%; margin: 0; }
.pa-subscribe-email {
  box-sizing: border-box; display: block; flex: 1 1 0; width: auto; min-width: 0; height: 61px; margin: 0 0 8px; padding: 20px 0;
  border: 0; border-bottom: 1px solid var(--pa-accent); border-radius: 0; background-color: transparent; color: var(--pa-accent);
  font-family: var(--pa-font-text); font-size: 22px; line-height: 130%; vertical-align: middle;
}
.pa-subscribe-email:focus { outline: 0; }
.pa-subscribe-email::placeholder { color: #e1f64180; }
.pa-subscribe-submit {
  box-sizing: border-box; display: inline-block; height: 61px; margin: 0; padding: 9px 15px; border: 0; border-bottom: 1px solid var(--pa-accent);
  border-radius: 0; color: var(--pa-light); font-family: var(--pa-font-text); font-size: 16px; line-height: 20px; appearance: button; cursor: pointer;
  background: transparent url("/v/b0b78558d0/assets/cdn.prod.website-files.com/67e3d4a57de60de33068b63c/67e5550e6e9228850c50c5ba_action-icons.svg") 100% / 20px 20px no-repeat;
}
.pa-subscribe-submit:hover { background-image: url("/v/eb4a73d1ad/assets/cdn.prod.website-files.com/67e3d4a57de60de33068b63c/67e64241e7ba47623f452fd9_action-icons-hover.svg"); }

/* Согласие: квадратик и мелкий текст со ссылкой; квадратик — плавающий, как было у Webflow. */
.pa-subscribe-consent {
  display: block; flex: 0 0 100%; width: 100%; margin: 12px 0 5px; padding-left: 20px; box-sizing: border-box;
  font-family: var(--pa-font-text); font-size: 16px; font-weight: 400; line-height: 20px; cursor: pointer;
}
.pa-subscribe-checkbox {
  box-sizing: border-box; float: left; width: 12px; height: 12px; margin: 4px 0 0 -20px; padding: 0;
  border: 1px solid var(--pa-accent); border-radius: 2px; background-color: transparent; appearance: none; cursor: pointer;
}
.pa-subscribe-checkbox:checked {
  border-color: #3898ec;
  background: #3898ec url("/v/83f5fbb274/assets/cdn.prod.website-files.com/67e3d4a57de60de33068b63c/686cde71535ac6bbdb5478c1_action-icons1.svg") 50% / cover no-repeat;
}
.pa-subscribe-checkbox:focus-visible { outline: 0; box-shadow: 0 0 3px 1px #3898ec; }
.pa-subscribe-consent-text { display: inline-block; color: var(--pa-accent); font-size: 12px; }
.pa-subscribe-muted { opacity: .5; }
.pa-subscribe-consent a { color: var(--pa-accent); }

/* Ответ после отправки (показывает site-enhancements.js). */
.pa-subscribe-done { display: none; box-sizing: border-box; padding: 20px; background-color: #ddd; text-align: center; }
.pa-subscribe-fail { display: none; box-sizing: border-box; margin-top: 10px; padding: 10px; background-color: #ffdede; }

.pa-subscribe-pic {
  display: flex; justify-content: center; align-items: center; width: 100%; height: 553px; border-radius: var(--pa-radius);
  background: url("/v/714c4830f0/assets/cdn.prod.website-files.com/67e3d4a57de60de33068b63c/67e555fea8dfa98e5e6cf47f_imagesub.webp") 50% / cover no-repeat;
}
.pa-subscribe-logo { width: 175px; height: 234px; color: var(--pa-accent); }

@media (max-width: 991px) {
  .pa-subscribe { margin-top: 80px; }
  .pa-subscribe-wrap { flex: 1; align-items: stretch; gap: 20px; }
  .pa-subscribe-card { width: auto; min-width: 328px; max-width: 544px; height: 100%; }
  .pa-subscribe-pic { height: auto; min-height: 380px; }
  .pa-subscribe-logo { width: 138px; height: 172px; }
}
@media (max-width: 767px) {
  .pa-subscribe-wrap { flex-wrap: wrap; width: auto; }
  .pa-subscribe-form { width: 100%; min-width: 280px; }
  .pa-subscribe-card { min-width: 0; max-width: none; }
  .pa-subscribe-pic { min-width: 240px; max-width: none; height: 332px; min-height: 0; }
}
@media (max-width: 479px) {
  .pa-subscribe-form { min-width: 240px; }
}

/* /assets/pa/partners.css */
/* «Наши партнеры» (site/_includes/pa/partners.njk): серые карточки с логотипами, при наведении — в
 * цвете. Значения — те же, что были у Webflow. */
.pa-partners { padding-top: 190px; }
.pa-partners-wrapper { display: flex; flex-direction: column; gap: 32px; }
.pa-partners-title { text-align: center; }
.pa-partners-cards { display: flex; justify-content: center; align-items: flex-start; gap: 24px; }
.pa-partners-card {
  box-sizing: border-box; display: flex; justify-content: center; align-items: center; width: 431px; max-width: 100%; height: 294px;
  border-radius: var(--pa-radius); background-color: var(--pa-grey); filter: grayscale(); transition: filter .2s;
}
.pa-partners-card:hover, .pa-partners-card:focus-visible { filter: none; }
.pa-partners-logo { display: inline-block; max-width: 100%; vertical-align: middle; border: 0; }
@media (max-width: 991px) {
  .pa-partners { padding-top: 80px; }
  .pa-partners-cards { gap: 16px; }
  .pa-partners-card { width: 100%; height: 240px; padding-top: 16px; padding-bottom: 16px; }
  .pa-partners-logo { flex: 0 auto; align-self: stretch; }
}
@media (max-width: 767px) {
  .pa-partners-cards { flex-direction: column; }
  .pa-partners-logo { object-fit: cover; }
}
@media (max-width: 479px) {
  .pa-partners-card { padding: 16px 33px; }
}
@media (prefers-reduced-motion: reduce) { .pa-partners-card { transition: none; } }

/* /assets/pa/footer.css */
/* Подвал (site/_includes/pa/footer.njk) и плашка согласия на cookie. Значения — те же, что были у
 * Webflow. На компьютере — реквизиты слева и три колонки ссылок; на планшете и телефоне колонки
 * встают сеткой, а год, «Наверх» и «Разработка сайта» уходят в нижнюю строку (.pa-footer-bottom). */
.pa-footer { margin-top: 180px; background-color: var(--pa-grey); color: var(--pa-dark); font-family: var(--pa-font-text); font-size: 16px; line-height: 20px; }
.pa-footer-wrap { display: flex; justify-content: space-between; align-items: flex-start; gap: 40px; padding-top: 40px; }
.pa-footer-col, .pa-footer-column { display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start; height: 332px; }
.pa-footer-org { display: flex; flex-direction: column; justify-content: flex-start; align-items: flex-start; gap: 16px; min-width: 180px; max-width: 317px; }
.pa-footer-org-content { display: flex; flex-direction: column; gap: 8px; font-style: normal; }
.pa-footer-text { margin: 0; font-family: var(--pa-font-text); font-size: 16px; line-height: 130%; }
.pa-footer-small { font-size: 12px; }
.pa-footer-label { opacity: .4; }
.pa-footer-muted { opacity: .5; white-space: normal; }
.pa-footer-nav { display: flex; gap: 24px; }
.pa-footer-column--meta { display: none; }
.pa-footer-menu { display: flex; flex-direction: column; justify-content: flex-start; align-items: flex-start; gap: 12px; min-width: 180px; max-width: 203px; }
.pa-footer-links { display: flex; flex-direction: column; justify-content: flex-start; align-items: flex-start; gap: 8px; }
.pa-footer-link { color: var(--pa-dark); line-height: 130%; text-decoration: none; }
.pa-footer-link:hover { color: var(--pa-dark-hover); }
.pa-footer-aside { color: var(--pa-dark); font-family: var(--pa-font-text); font-weight: 400; }
.pa-footer-up { margin-left: auto; }
/* Сноска про Meta: на компьютере — под колонкой «Соцсети», не раздвигая её. */
.pa-footer-meta { position: absolute; width: 170px; margin-top: 114px; }
.pa-footer-meta-text { margin: 0; font-family: var(--pa-font-text); font-size: 12px; line-height: 130%; opacity: .4; }
.pa-footer-bottom, .pa-footer-bottom-side { display: none; }
.pa-footer-logo { width: 100%; max-height: 170px; margin: 18px auto 0; overflow: hidden; }
.pa-footer-logo-svg { display: block; width: 100%; }
@media (min-width: 1440px) {
  .pa-footer-link { transition: all .2s; }
}
@media (max-width: 991px) {
  .pa-footer-desktop { display: none; }
  .pa-footer-wrap { flex-direction: column; }
  .pa-footer-org { min-width: 0; max-width: none; }
  .pa-footer-col { height: auto; }
  .pa-footer-column { gap: 8px; height: auto; }
  .pa-footer-menu { width: auto; min-width: 216px; max-width: 293px; }
  .pa-footer-nav {
    display: grid; grid-template-rows: auto auto; grid-template-columns: 1fr 1fr; grid-auto-columns: 1fr; justify-content: space-between;
    align-items: flex-start; gap: 40px; width: 100%;
  }
  .pa-footer-meta { position: static; width: 100%; margin-top: 8px; white-space: nowrap; }
  .pa-footer-meta--side { display: flex; }
  .pa-footer-meta-text { white-space: normal; }
  .pa-footer-bottom { display: flex; justify-content: space-between; align-items: flex-start; width: 100%; margin-top: 24px; }
  .pa-footer-bottom-side { display: flex; flex-direction: column; gap: 8px; }
}
@media (max-width: 767px) {
  .pa-footer-meta--side { display: none; }
  .pa-footer-column--meta { display: flex; justify-content: flex-end; align-items: flex-start; min-width: 200px; max-width: 200px; height: 112px; }
  .pa-footer-menu { min-width: 200px; max-width: 216px; }
  .pa-footer-nav { justify-content: flex-start; }
}
@media (max-width: 479px) {
  .pa-footer-meta { width: auto; }
  .pa-footer-column--meta { min-width: 90px; max-width: none; height: auto; }
  .pa-footer-menu { width: 100%; min-width: 90px; }
  .pa-footer-nav { justify-content: space-between; }
  .pa-footer-bottom { gap: 8px; height: 100%; min-height: 100%; }
  .pa-footer-bottom-side--end { flex: 1; justify-content: space-between; align-items: flex-end; height: 100%; min-height: 100%; }
}
@media (prefers-reduced-motion: reduce) { .pa-footer-link { transition: none; } }

/* Плашка согласия на cookie внизу экрана: видна, пока посетитель не нажал «ОК» (assets/pa/footer.js). */
.pa-cookie {
  position: fixed; inset: auto 0 0; z-index: 999; box-sizing: border-box; display: flex; justify-content: space-between; align-items: center;
  gap: 16px; width: 40%; margin: 0 auto 20px; padding: 20px; border-radius: 12px; background-color: #eef0f4; box-shadow: 0 2px 10px #00000014;
  color: var(--pa-dark); font-family: var(--pa-font-text); font-size: 16px; line-height: 20px;
}
.pa-cookie[hidden] { display: none; }
.pa-cookie-text { margin: 0; font-family: var(--pa-font-text); font-size: 14px; line-height: 120%; }
.pa-cookie-button {
  box-sizing: border-box; display: flex; justify-content: center; align-items: center; width: 100px; margin: 0; padding: 10px 0; border: 0;
  border-radius: 12px; background-color: var(--pa-accent); color: var(--pa-dark); font-family: var(--pa-font-text); font-size: 14px;
  font-weight: 400; line-height: 140%; text-transform: none; appearance: none; cursor: pointer;
}
@media (max-width: 991px) {
  .pa-cookie { right: auto; justify-content: flex-start; width: 100%; margin-bottom: 0; margin-right: 0; }
  .pa-cookie-button { width: 200px; }
}

/* /assets/ribbon.css */
/* Лента карточек на обычной прокрутке браузера (assets/ribbon.js) — общая для сайта: «Что вас ждёт» и
 * «Проживание» на странице тура, «Отзывы» и фото в отзыве. .pa-ribbon — окно с прокруткой вбок без видимой
 * полосы, в нём дорожка .pa-ribbon-track; .pa-ribbon-button — круглая стрелка. Размеры карточек и
 * промежутки задаёт раздел.
 * .pa-ribbon--bleed — лента до краёв экрана с обеих сторон, а карточки встают по полю содержимого: окно
 * стоит в блоке содержимого, отцентрованном на странице (.tp-container, контейнер отзывов), и выходит из
 * него до краёв экрана, а поле окна возвращает карточки к полю содержимого. Лишнее за краями экрана
 * обрезает раздел (overflow: hidden) — так было у Webflow: Swiper без своих стилей ничего не обрезал. */
.pa-ribbon {
  position: relative; overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain;
  scrollbar-width: none; cursor: grab; -webkit-user-select: none; user-select: none;
}
.pa-ribbon::-webkit-scrollbar { display: none; }
.pa-ribbon-dragging { cursor: grabbing; }
.pa-ribbon-track { display: flex; margin: 0; padding: 0; list-style: none; }
.pa-ribbon-track > * { flex: none; margin: 0; }
.pa-ribbon img { -webkit-user-drag: none; }
.pa-ribbon--bleed { margin-inline: calc(50% - 50vw); padding-inline: calc(50vw - 50%); }
.pa-ribbon--bleed > .pa-ribbon-track { width: max-content; }
/* Бесконечная лента вначале: копии слева не видны, поле пустое (ribbon.js снимает класс, когда лента сдвинулась). */
.pa-ribbon-fresh [data-ribbon-before] { visibility: hidden; }

/* Круглая стрелка: светлый акцент, тёмная стрелка; «вперёд» — та же стрелка, повёрнутая. */
.pa-ribbon-button {
  box-sizing: border-box; display: flex; justify-content: center; align-items: center; width: 58px; height: 58px; padding: 9px;
  border: 0; border-radius: 100px; background-color: #e1f641; color: #27282b; cursor: pointer;
  transition: background-color .2s;
}
.pa-ribbon-button:hover { background-color: #d4eb26; }
.pa-ribbon-button svg { width: 24px; height: 24px; }
.pa-ribbon-button-next svg { transform: rotate(180deg); }
@media (prefers-reduced-motion: reduce) { .pa-ribbon-button { transition: none; } }

/* /assets/reviews.css */
/* Блок «Отзывы» (site/_includes/reviews.njk) — общий для главной, «О нас» и страниц туров: своя вёрстка без
 * классов Webflow, всё нужное блоку — здесь (лента и круглые стрелки — assets/ribbon.css). Размеры, отступы и
 * цвета — те же, что были у Webflow: внешне блок не изменился (scripts/compare-pages.mjs). */
.pa-reviews {
  margin-top: 180px; overflow: hidden;
  color: #27282b; font-family: "Roboto Condensed", sans-serif; font-size: 16px; line-height: 20px;
}
.pa-reviews *, .pa-reviews *::before, .pa-reviews *::after { box-sizing: border-box; }

/* Ширина содержимого: до 1280 px (с 1440 px экрана — до 1440), поля 32 px, на планшете 24, на телефоне 16. */
.pa-reviews-container {
  display: flex; flex-direction: column; gap: 40px;
  width: 100%; max-width: 1280px; margin: 0 auto; padding: 0 32px;
}
.pa-reviews-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 24px; }
.pa-reviews-head h2 { margin: 0; font-family: Bebasneue, Arial, sans-serif; font-size: 72px; font-weight: 700; line-height: 105%; }
.pa-reviews-nav { display: flex; gap: 12px; }

/* Кнопка «Оставить отзыв» справа от заголовка и стрелок (reviewsWrite — страницы отзывов): тёмная, стрелка
 * выезжает при наведении; до 767 px кнопки нет — как было у Webflow. */
.pa-reviews-title { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; }
.pa-reviews-title .pa-reviews-head { width: 100%; }
.pa-reviews-write-wrap { width: 205px; padding-bottom: 18px; }
.pa-reviews-write {
  display: flex; justify-content: center; align-items: center; width: 100%; height: 50px; padding: 8px 12px;
  border: 0; border-radius: 6px; background-color: #27282b; color: #e1f641;
  font: inherit; font-size: 16px; line-height: 130%; cursor: pointer; transition: background-color .2s;
}
.pa-reviews-write:hover { background-color: #1c1d1f; }
.pa-reviews-write-mark { display: flex; width: 0; height: 16px; padding-left: 6px; overflow: hidden; transition: all .2s cubic-bezier(.645, .045, .355, 1); }
.pa-reviews-write-mark svg { flex: none; width: 12px; }
.pa-reviews-write:hover .pa-reviews-write-mark, .pa-reviews-write:focus-visible .pa-reviews-write-mark { width: 18px; }
/* На телефоне кнопка «Оставить отзыв» — под заголовком во всю ширину. */
@media (max-width: 767px) {
  .pa-reviews-title { flex-direction: column; align-items: stretch; gap: 16px; }
  .pa-reviews-write-wrap { width: 100%; padding-bottom: 0; }
}
@media (prefers-reduced-motion: reduce) { .pa-reviews-write, .pa-reviews-write-mark { transition: none; } }

/* Лента карточек: до краёв экрана, карточка встаёт по полю содержимого; все карточки — по высоте самой высокой. */
.pa-reviews-list { gap: 24px; font-size: 16px; line-height: 20px; } /* у списков и абзацев Webflow свои размеры */
.pa-reviews-card {
  display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start;
  width: 504px; min-height: 469px; padding: 16px; border-radius: 6px; background-color: #f0f0f0;
}
.pa-reviews-top { align-self: stretch; }
.pa-reviews-user { display: flex; gap: 12px; margin-bottom: 16px; }
.pa-reviews-avatar {
  flex: none; width: 58px; height: 58px; border-radius: 58px;
  background: url("/v/9e608f28fc/assets/cdn.prod.website-files.com/67e3d4a57de60de33068b63c/67f78345d6b5da87c7982771_avatar.svg") 50% / cover;
}
.pa-reviews-name { margin: 0; font-family: Bebasneue, Arial, sans-serif; font-size: 32px; font-weight: 700; line-height: 115%; }
.pa-reviews-date { margin: 0; font-size: 16px; line-height: 130%; opacity: .5; }

/* Оценка: закрашенные звёзды — pa-reviews-star--on (шаблон), остальные серые. */
.pa-reviews-star { width: 24px; height: 24px; overflow: hidden; color: #e3e3e3; }
.pa-reviews-star--on { color: #ffc300; }

/* Текст отзыва: 11 строк (с фото — 6), остальное — по «Читать полностью» (assets/reviews.js). */
.pa-reviews-body { display: flex; flex-direction: column; justify-content: flex-start; align-items: flex-start; gap: 4px; margin-top: 16px; }
.pa-reviews-text {
  display: -webkit-box; margin: 0; overflow: hidden; font-size: 16px; line-height: 130%;
  -webkit-box-orient: vertical; -webkit-line-clamp: 11; line-clamp: 11;
}
.pa-reviews-text--photos { -webkit-line-clamp: 6; line-clamp: 6; }
.pa-reviews-text--open { -webkit-line-clamp: unset; line-clamp: none; }
.pa-reviews-more {
  display: block; margin: 0; padding: 0; border: 0; background: none; color: inherit;
  font: inherit; line-height: 20px; text-align: left; opacity: .5; cursor: pointer;
}
.pa-reviews-more[hidden] { display: none; }

/* Фото к отзыву — своя лента внутри карточки; у края она передаёт прокрутку ленте отзывов. */
.pa-reviews-gallery { margin-top: 16px; overscroll-behavior-x: auto; }
.pa-reviews-photos { gap: 8px; }
.pa-reviews-photo-link { display: block; }
.pa-reviews-photo { display: block; width: 88px; height: 88px; border-radius: 6px; object-fit: cover; }

.pa-reviews-yandex {
  display: inline-flex; align-self: flex-start; align-items: center; gap: 4px; margin-top: 32px; padding: 6px 12px;
  border-radius: 6px; background-color: #e3e3e3; color: #27282b; text-decoration: none;
}
.pa-reviews-yandex svg { display: block; width: 18px; height: 18px; color: #fc401d; }
.pa-reviews-yandex span { line-height: 130%; }

@media (min-width: 1440px) {
  .pa-reviews-container { max-width: 1440px; padding: 0 50px; }
}
@media (max-width: 991px) {
  .pa-reviews { margin-top: 80px; }
  .pa-reviews-container { max-width: none; gap: 32px; padding: 0 24px; overflow: hidden; }
  .pa-reviews-head h2 { font-size: 48px; }
  .pa-reviews-nav { display: none; }
  .pa-reviews-list { gap: 16px; }
  .pa-reviews-card { width: 320px; }
}
@media (max-width: 767px) {
  .pa-reviews { margin-top: 140px; }
  .pa-reviews-container { padding: 0 16px; }
  .pa-reviews-card { width: 284px; }
}
@media (max-width: 479px) {
  .pa-reviews-card { width: 304px; }
}

/* Окно «Оставьте свой отзыв» поверх затемнённой страницы (открывает assets/reviews.js). */
.pa-review-popup { position: fixed; inset: 0; z-index: 99; display: flex; justify-content: center; align-items: center; }
.pa-review-popup[hidden] { display: none; }
.pa-review-popup:focus { outline: 0; }
html.pa-review-popup-open body { overflow: hidden; }
.pa-review-popup-overlay { position: absolute; inset: 0; background-color: rgba(0, 0, 0, .5); }
.pa-review-popup-close {
  position: absolute; top: 24px; right: 24px; z-index: 100; width: 40px; height: 40px; padding: 0;
  border: 0; background: none; color: #fafafa; cursor: pointer;
}
.pa-review-popup-close svg { display: block; width: 40px; height: 40px; }
.pa-review-popup-box {
  position: absolute; z-index: 1; width: 464px; margin: auto; padding: 32px;
  border-radius: 6px; background-color: #fafafa;
}
.pa-review-popup-title { margin: 0; font-family: Bebasneue, Arial, sans-serif; font-size: 32px; font-weight: 700; line-height: 115%; }
.pa-review-form-head { display: flex; flex-direction: column; gap: 8px; }

/* Звёзды оценки: справа налево, чтобы «эта и все левее» закрашивались через ~ без скрипта. */
.pa-review-rating { align-self: flex-start; height: 32px; margin-bottom: 20px; direction: rtl; }
.pa-review-rating-input { position: absolute; width: 1px; height: 1px; margin: 0; opacity: 0; pointer-events: none; }
.pa-review-rating-star {
  display: inline-block; width: 32px; height: 32px; margin-bottom: 5px; cursor: pointer;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23cccccc'%3E%3Cpath d='M12.0023 17.2698L16.1523 19.7798C16.9123 20.2398 17.8423 19.5598 17.6423 18.6998L16.5423 13.9798L20.2123 10.7998C20.8823 10.2198 20.5223 9.11977 19.6423 9.04977L14.8123 8.63977L12.9223 4.17977C12.5823 3.36977 11.4223 3.36977 11.0823 4.17977L9.19227 8.62977L4.36227 9.03977C3.48227 9.10977 3.12227 10.2098 3.79227 10.7898L7.46227 13.9698L6.36227 18.6898C6.16227 19.5498 7.09227 20.2298 7.85227 19.7698L12.0023 17.2698Z'/%3E%3C/svg%3E") 0 0 / contain no-repeat;
}
.pa-review-rating-input:checked ~ .pa-review-rating-star,
.pa-review-rating-star:hover,
.pa-review-rating-star:hover ~ .pa-review-rating-star {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23FFD700'%3E%3Cpath d='M12.0023 17.2698L16.1523 19.7798C16.9123 20.2398 17.8423 19.5598 17.6423 18.6998L16.5423 13.9798L20.2123 10.7998C20.8823 10.2198 20.5223 9.11977 19.6423 9.04977L14.8123 8.63977L12.9223 4.17977C12.5823 3.36977 11.4223 3.36977 11.0823 4.17977L9.19227 8.62977L4.36227 9.03977C3.48227 9.10977 3.12227 10.2098 3.79227 10.7898L7.46227 13.9698L6.36227 18.6898C6.16227 19.5498 7.09227 20.2298 7.85227 19.7698L12.0023 17.2698Z'/%3E%3C/svg%3E");
}
.pa-review-rating-input:focus-visible + .pa-review-rating-star { outline: 2px solid #27282b; outline-offset: 2px; }

.pa-review-field {
  display: block; width: 100%; height: 61px; margin: 0 0 8px; padding: 20px 0;
  border: 0; border-bottom: 1px solid #27282b; border-radius: 0; background-color: transparent;
  color: #27282b; font: inherit; line-height: 130%; vertical-align: middle;
}
.pa-review-field:focus { border-bottom-color: #5d5e62; outline: 0; }
.pa-review-field::placeholder { color: #999; }
.pa-review-field--text { height: auto; min-height: 120px; margin-bottom: 0; color: #333; }
.pa-review-field--text:focus-visible { border-bottom-color: #e1f641; color: #27282b; }
.pa-review-field--text::placeholder { color: #27282b80; }
.pa-review-submit {
  display: block; width: 100%; height: 48px; margin: 20px 0 12px; padding: 8px 12px;
  border: 0; border-radius: 6px; background-color: #27282b; color: #e1f641;
  font: inherit; line-height: 130%; cursor: pointer; transition: background-color .2s; -webkit-appearance: button; appearance: button;
}
.pa-review-submit:hover { background-color: #1c1d1f; }

/* Галочка согласия: настоящий флажок невидим, рисуем свой квадрат. */
.pa-review-consent { display: block; margin: 24px 0 5px; padding-left: 20px; }
.pa-review-consent-input { position: absolute; z-index: -1; opacity: 0; }
.pa-review-consent-box {
  float: left; width: 12px; height: 12px; margin: 4px 0 0 -20px;
  border: 1px solid #1c1d1f; border-radius: 2px; line-height: normal;
}
.pa-review-consent-input:checked + .pa-review-consent-box {
  background: #3898ec url("/v/83f5fbb274/assets/cdn.prod.website-files.com/67e3d4a57de60de33068b63c/686cde71535ac6bbdb5478c1_action-icons1.svg") 50% / cover no-repeat;
}
.pa-review-consent-input:focus-visible + .pa-review-consent-box { box-shadow: 0 0 3px 1px #3898ec; }
.pa-review-consent-text { display: inline-block; color: #1c1d1f; font-size: 12px; font-weight: 400; cursor: pointer; }
.pa-review-consent-muted { opacity: .5; }
.pa-review-consent-link { color: #1c1d1f; }

/* «Спасибо» и «не удалось» — показывает site-enhancements.js вместо формы. */
.pa-review-done { display: none; }
.pa-review-done p { margin: 0; font-size: 16px; line-height: 130%; }
.pa-review-fail { display: none; margin-top: 10px; padding: 10px; background-color: #ffdede; }

@media (max-width: 479px) {
  .pa-review-popup-box { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .pa-review-submit { transition: none; }
}
