/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS and IE text size adjust after device orientation change,
 *    without disabling user zoom.
 */
html {
  font-family: var(--font-family);
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
}
/**
 * Remove default margin.
 */
body {
  margin: 0;
}

/* Единая анимация меню (бургер, дропдаун десктоп, дропдаун в бургере) */
:root {
  /* Поверхности / границы (календарь, тултипы, формы) */
  --bg-white: #ffffff;
  --border-color: #dddddd;
  --form-dropdown-radius: 5px;
  --form-dropdown-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
  --form-dropdown-border: 1px solid var(--border-color);
  --form-dropdown-padding: 12px 14px;
  /* Общий «скин» подсказок (.itour-tip-skin) */
  --itour-tip-text: #333333;
  --itour-tip-padding: 2px 8px;
  --itour-tip-font-size: 14px;
  --itour-tip-line-height: 1.4;
  --font-family: "Montserrat", "Montserrat Fallback", "Segoe UI", Arial, sans-serif;
  --itour-tip-font-family: var(--font-family);
  --itour-tip-max-width: 350px;
  --itour-tip-radius: 5px;
  --cadet-blue: #49939c;
  --white-smoke: whitesmoke;
  --dark-grey: #a09d9d;
  --silver: silver;
  --white-smoke-2: #ededed;
  --color: #2a3d51;
  --transparent: transparent;
  --firebrick: #af1414;
  --menu-anim-duration: 0.35s;
  --menu-anim-easing: ease-out;
}

/* HTML5 display definitions
   ========================================================================== */
/**
 * Correct `block` display not defined for any HTML5 element in IE 8/9.
 * Correct `block` display not defined for `details` or `summary` in IE 10/11
 * and Firefox.
 * Correct `block` display not defined for `main` in IE 11.
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block;
}
/**
 * 1. Correct `inline-block` display not defined in IE 8/9.
 * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
 */
audio,
canvas,
progress,
video {
  display: inline-block;
  /* 1 */
  vertical-align: baseline;
  /* 2 */
}
/**
 * Prevent modern browsers from displaying `audio` without controls.
 * Remove excess height in iOS 5 devices.
 */
audio:not([controls]) {
  display: none;
  height: 0;
}
/**
 * Address `[hidden]` styling not present in IE 8/9/10.
 * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.
 */
[hidden],
template {
  display: none;
}
/* Links
   ========================================================================== */
/**
 * Remove the gray background color from active links in IE 10.
 */
a {
  background-color: transparent;
}
/**
 * Improve readability of focused elements when they are also in an
 * active/hover state.
 */
a:active,
a:hover {
  outline: 0;
}
/* Text-level semantics
   ========================================================================== */
/**
 * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
 */
abbr[title] {
  border-bottom: 1px dotted;
}
/**
 * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
 */
b,
strong {
  font-weight: bold;
}
/**
 * Address styling not present in Safari and Chrome.
 */
dfn {
  font-style: italic;
}
/**
 * Address styling not present in IE 8/9.
 */
mark {
  background: #ff0;
  color: #000;
}
/**
 * Address inconsistent and variable font size in all browsers.
 */
small {
  font-size: 80%;
}
/**
 * Prevent `sub` and `sup` affecting `line-height` in all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sup {
  top: -0.5em;
}
sub {
  bottom: -0.25em;
}
/* Embedded content
   ========================================================================== */
/**
 * Remove border when inside `a` element in IE 8/9/10.
 */
img {
  border: 0;
}
/**
 * Correct overflow not hidden in IE 9/10/11.
 */
svg:not(:root) {
  overflow: hidden;
}
/* Grouping content
   ========================================================================== */
/**
 * Address margin not present in IE 8/9 and Safari.
 */
figure {
  margin: 1em 40px;
}
/**
 * Address differences between Firefox and other browsers.
 */
hr {
  box-sizing: content-box;
  height: 0;
}
/**
 * Contain overflow in all browsers.
 */
pre {
  overflow: auto;
}
/**
 * Address odd `em`-unit font size rendering in all browsers.
 */
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}
/* Forms
   ========================================================================== */
/**
 * Known limitation: by default, Chrome and Safari on OS X allow very limited
 * styling of `select`, unless a `border` property is set.
 */
/**
 * 1. Correct color not being inherited.
 *    Known issue: affects color of disabled elements.
 * 2. Correct font properties not being inherited.
 * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
 */
button,
input,
optgroup,
select,
textarea {
  color: inherit;
  /* 1 */
  font: inherit;
  /* 2 */
  margin: 0;
  /* 3 */
}
/**
 * Address `overflow` set to `hidden` in IE 8/9/10/11.
 */
button {
  overflow: visible;
}
/**
 * Address inconsistent `text-transform` inheritance for `button` and `select`.
 * All other form control elements do not inherit `text-transform` values.
 * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
 * Correct `select` style inheritance in Firefox.
 */
button,
select {
  text-transform: none;
}
/**
 * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
 *    and `video` controls.
 * 2. Correct inability to style clickable `input` types in iOS.
 * 3. Improve usability and consistency of cursor style between image-type
 *    `input` and others.
 * 4. Проект: убран input[type="submit"] — ниже специфичность, стили кнопок через .button
 */
button,
html input[type="button"],
input[type="reset"] {
  -webkit-appearance: button;
  appearance: button;
  /* 2 */
  cursor: pointer;
  /* 3 */
}
/**
 * Re-set default cursor for disabled elements.
 */
button[disabled],
html input[disabled] {
  cursor: default;
}
/**
 * Remove inner padding and border in Firefox 4+.
 */
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}
/**
 * Address Firefox 4+ setting `line-height` on `input` using `!important` in
 * the UA stylesheet.
 */
input {
  line-height: normal;
}
/**
 * It's recommended that you don't attempt to style these elements.
 * Firefox's implementation doesn't respect box-sizing, padding, or width.
 *
 * 1. Address box sizing set to `content-box` in IE 8/9/10.
 * 2. Remove excess padding in IE 8/9/10.
 */
input[type='checkbox'],
input[type='radio'] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */
}
/**
 * Fix the cursor style for Chrome's increment/decrement buttons. For certain
 * `font-size` values of the `input`, it causes the cursor style of the
 * decrement button to change from `default` to `text`.
 */
input[type='number']::-webkit-inner-spin-button,
input[type='number']::-webkit-outer-spin-button {
  height: auto;
}
/**
 * 1. Проект: вместо textfield — none, единообразие полей на iOS
 * 2. Проект: убрано box-sizing: content-box (как в normalize >= 4.0.0)
 */
input[type='search'] {
  -webkit-appearance: none;
  appearance: none;
  /* 1 */
}
/**
 * Remove inner padding and search cancel button in Safari and Chrome on OS X.
 * Safari (but not Chrome) clips the cancel button when the search input has
 * padding (and `textfield` appearance).
 */
input[type='search']::-webkit-search-cancel-button,
input[type='search']::-webkit-search-decoration {
  -webkit-appearance: none;
}
/**
 * Define consistent border, margin, and padding.
 */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}
/**
 * 1. Correct `color` not being inherited in IE 8/9/10/11.
 * 2. Remove padding so people aren't caught out if they zero out fieldsets.
 */
legend {
  border: 0;
  /* 1 */
  padding: 0;
  /* 2 */
}
/**
 * Remove default vertical scrollbar in IE 8/9/10/11.
 */
textarea {
  overflow: auto;
}
/**
 * Don't inherit the `font-weight` (applied by a rule above).
 * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
 */
optgroup {
  font-weight: bold;
}
/* Tables
   ========================================================================== */
/**
 * Remove most spacing between table cells.
 */
table {
  border-collapse: collapse;
  border-spacing: 0;
}
td,
th {
  padding: 0;
}
@font-face {
  font-family: 'icons';
  src: url("data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg8SBiUAAAC8AAAAYGNtYXDpP+a4AAABHAAAAFxnYXNwAAAAEAAAAXgAAAAIZ2x5ZmhS2XEAAAGAAAADHGhlYWQTFw3HAAAEnAAAADZoaGVhCXYFgQAABNQAAAAkaG10eCe4A1oAAAT4AAAAMGxvY2EDtALGAAAFKAAAABptYXhwABAAPgAABUQAAAAgbmFtZSoCsMsAAAVkAAABznBvc3QAAwAAAAAHNAAAACAAAwP4AZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADpAwPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAQAAAAAwACAACAAQAAQAg5gPpA//9//8AAAAAACDmAOkA//3//wAB/+MaBBcIAAMAAQAAAAAAAAAAAAAAAAABAAH//wAPAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAEBIAAAAyADgAAFAAAJAQcJARcDIP5AQAGA/oBAAcABwED+gP6AQAABAOAAAALgA4AABQAAEwEXCQEH4AHAQP6AAYBAAcABwED+gP6AQAAAAwDAAOADQALAAA8AHwAvAAABISIGHQEUFjMhMjY9ATQmByEiBh0BFBYzITI2PQE0JgchIgYdARQWMyEyNj0BNCYDIP3ADRMTDQJADRMTDf3ADRMTDQJADRMTDf3ADRMTDQJADRMTAsATDSANExMNIA0TwBMNIA0TEw0gDRPAEw0gDRMTDSANEwAAAAABAJ0AtAOBApUABQAACQIHCQEDJP7r/upcAXEBcgKU/usBFVz+fAGEAAAAAAL//f+9BAMDwwAEAAkAABcBJwEXAwE3AQdpA5ps/GZsbAOabPxmbEMDmmz8ZmwDmvxmbAOabAAAAgAA/8AEAAPAAB0AOwAABSInLgEnJjU0Nz4BNzYzMTIXHgEXFhUUBw4BBwYjNTI3PgE3NjU0Jy4BJyYjMSIHDgEHBhUUFx4BFxYzAgBqXV6LKCgoKIteXWpqXV6LKCgoKIteXWpVSktvICEhIG9LSlVVSktvICEhIG9LSlVAKCiLXl1qal1eiygoKCiLXl1qal1eiygoZiEgb0tKVVVKS28gISEgb0tKVVVKS28gIQABAAABwAIAA8AAEgAAEzQ3PgE3NjMxFSIHDgEHBhUxIwAoKIteXWpVSktvICFmAcBqXV6LKChmISBvS0pVAAAAAgAA/8AFtgPAADIAOgAAARYXHgEXFhUUBw4BBwYHIxUhIicuAScmNTQ3PgE3NjMxOAExNDc+ATc2MzIXHgEXFhcVATMJATMVMzUEjD83NlAXFxYXTjU1PQL8kz01Nk8XFxcXTzY1PSIjd1BQWlJJSXInJw3+mdv+2/7c25MCUQYcHFg5OUA/ODlXHBwIAhcXTzY1PTw1Nk8XF1tQUHcjIhwcYUNDTgL+3QFt/pOTkwABAAAAAQAAmM7nP18PPPUACwQAAAAAANciZKUAAAAA1yJkpf/9/70FtgPDAAAACAACAAAAAAAAAAEAAAPA/8AAAAW3//3//QW2AAEAAAAAAAAAAAAAAAAAAAAMBAAAAAAAAAAAAAAAAgAAAAQAASAEAADgBAAAwAQAAJ0EAP/9BAAAAAQAAAAFtwAAAAAAAAAKABQAHgAyAEYAjACiAL4BFgE2AY4AAAABAAAADAA8AAMAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAADgCuAAEAAAAAAAEADQAAAAEAAAAAAAIABwCWAAEAAAAAAAMADQBIAAEAAAAAAAQADQCrAAEAAAAAAAUACwAnAAEAAAAAAAYADQBvAAEAAAAAAAoAGgDSAAMAAQQJAAEAGgANAAMAAQQJAAIADgCdAAMAAQQJAAMAGgBVAAMAAQQJAAQAGgC4AAMAAQQJAAUAFgAyAAMAAQQJAAYAGgB8AAMAAQQJAAoANADsd2ViZmxvdy1pY29ucwB3AGUAYgBmAGwAbwB3AC0AaQBjAG8AbgBzVmVyc2lvbiAxLjAAVgBlAHIAcwBpAG8AbgAgADEALgAwd2ViZmxvdy1pY29ucwB3AGUAYgBmAGwAbwB3AC0AaQBjAG8AbgBzd2ViZmxvdy1pY29ucwB3AGUAYgBmAGwAbwB3AC0AaQBjAG8AbgBzUmVndWxhcgBSAGUAZwB1AGwAYQByd2ViZmxvdy1pY29ucwB3AGUAYgBmAGwAbwB3AC0AaQBjAG8AbgBzRm9udCBnZW5lcmF0ZWQgYnkgSWNvTW9vbi4ARgBvAG4AdAAgAGcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAASQBjAG8ATQBvAG8AbgAuAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==")   format('truetype');
  font-weight: normal;
  font-style: normal;
}
[class^="icon-"],
[class*=" icon-"] {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'icons' !important;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
.icon-slider-right:before {
  content: "\e600";
}
.icon-slider-left:before {
  content: "\e601";
}
.icon-nav-menu:before {
  content: "\e602";
}
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.icon-arrow-down:before,
.icon-dropdown-toggle:before {
  content: "\e603";
}
* {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
html {
  height: 100%;
}
img {
  max-width: 100%;
  vertical-align: middle;
  display: inline-block;
}
html.touch-device * {
  background-attachment: scroll !important;
}
.inline-block {
  max-width: 100%;
  display: inline-block;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: bold;
  margin-bottom: 10px;
}
p {
  margin-top: 0;
  margin-bottom: 10px;
}
blockquote {
  margin: 0 0 10px 0;
  padding: 10px 20px;
  border-left: 5px solid #E2E2E2;
  font-size: 18px;
  line-height: 22px;
}
figure {
  margin: 0;
  margin-bottom: 10px;
}
figcaption {
  margin-top: 5px;
  text-align: center;
}
ul,
ol {
  margin-top: 0px;
  margin-bottom: 10px;
  padding-left: 40px;
}
.list-unstyled {
  padding-left: 0;
  list-style: none;
}

.sr-sprite {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
}

.container {
  margin-left: auto;
  margin-right: auto;
  max-width: 940px;
}
.container:before {
  position: relative;
}
.container:after {
  content: " ";
  display: table;
  grid-column-start: 1;
  grid-row-start: 1;
  grid-column-end: 2;
  grid-row-end: 2;
  clear: both;
}
@media screen and (max-width: 991px) {
  .container {
    max-width: 728px;
  }
}
@media screen and (max-width: 479px) {
  .container {
    max-width: none;
  }
}
.dropdown {
  display: inline-block;
  position: relative;
  text-align: left;
  margin-left: auto;
  margin-right: auto;
  z-index: 900;
}
.dropdown-toggle,
.dropdown-link {
  position: relative;
  vertical-align: top;
  text-decoration: none;
  color: #222222;
  padding: 20px;
  text-align: left;
  margin-left: auto;
  margin-right: auto;
  white-space: nowrap;
}
.dropdown-toggle {
  user-select: none;
  display: inline-block;
  cursor: pointer;
  padding-right: 40px;
}
.dropdown-toggle:focus {
  outline: 0;
}
.icon-dropdown-toggle {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  margin-right: 20px;
  width: 1em;
  height: 1em;
}
.dropdown-list {
  position: absolute;
  background: #dddddd;
  display: none;
  min-width: 100%;
}
.dropdown-list.is-open {
  display: block;
}
.dropdown-link {
  padding: 10px 20px;
  display: block;
  color: #222222;
}
.dropdown-link.is-current {
  color: #0082f3;
}
.dropdown-link:focus {
  outline: 0;
}
.nav {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  position: relative;
  background: #dddddd;
  z-index: 1000;
}
.nav:before {
  content: " ";
  display: table;
  grid-column-start: 1;
  grid-row-start: 1;
  grid-column-end: 2;
  grid-row-end: 2;
}
.nav:after {
  content: " ";
  display: table;
  grid-column-start: 1;
  grid-row-start: 1;
  grid-column-end: 2;
  grid-row-end: 2;
  clear: both;
}
.nav-brand {
  position: relative;
  float: left;
  text-decoration: none;
  color: #333333;
}
.nav-link {
  position: relative;
  display: inline-block;
  vertical-align: top;
  text-decoration: none;
  color: #222222;
  padding: 20px;
  text-align: left;
  margin-left: auto;
  margin-right: auto;
}
.nav-link.is-current {
  color: #0082f3;
}
.nav-menu {
  position: relative;
  float: right;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0;
  padding-left: 0;
  display: flex;
}
.nav-link-open {
  display: block;
  position: relative;
}
.nav-button {
  position: relative;
  z-index: 10;
  float: right;
  padding: 18px;
  font-size: 24px;
  display: none;
  cursor: pointer;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  user-select: none;
}
.nav-button:focus {
  outline: 0;
}
/* Открытая кнопка навбара (бургер на узких экранах стилизуется в @media 991px) */
.nav-button.is-open {
  background-color: #C8C8C8;
  color: white;
}
.nav[data-collapse='all'] .nav-menu {
  display: none;
}
.nav[data-collapse='all'] .nav-button {
  display: block;
}

/* На десктопе (≥992px) меню всегда видно */
@media screen and (min-width: 992px) {
  .nav[data-collapse='medium'] .nav-menu-wrapper {
    display: flex !important;
    max-height: none;
    overflow: visible;
    opacity: 1;
    visibility: visible;
    position: static;
    pointer-events: auto;
  }
}

@media screen and (max-width: 991px) {
  .nav .nav-menu {
    display: block !important;
    height: auto !important;
  }

  /* Обёртка меню в бургере: как на десктопе — вся панель сжимается/разжимается (scaleY 0↔1) */
  .nav[data-collapse='medium'] .nav-menu-wrapper {
    display: flex !important;
    flex-direction: column;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    padding: 0 0;
    border-radius: 4px;
    background-color: #fffffff7;
    mix-blend-mode: normal;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
    z-index: 999;
    align-items: center !important;
    justify-content: flex-start !important;
    overflow: visible;
    transform: scaleY(0);
    transform-origin: top;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: transform var(--menu-anim-duration) var(--menu-anim-easing),
                opacity var(--menu-anim-duration) var(--menu-anim-easing),
                visibility 0s linear var(--menu-anim-duration);
  }
  /* Открытое: панель разжата (scaleY(1)), как дропдаун на десктопе */
  .nav .nav-menu-wrapper[data-nav-menu-open] {
    padding: 10px 0;
    transform: scaleY(1);
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    overflow: visible;
    transition: transform var(--menu-anim-duration) var(--menu-anim-easing),
                opacity var(--menu-anim-duration) var(--menu-anim-easing),
                visibility 0s;
  }
  .nav[data-collapse='medium'] .nav-button {
    display: block;
  }
  /* Текст внутри панели не анимируем отдельно — двигается вместе с панелью (scaleY на обёртке) */
  .nav[data-collapse='medium'] .nav-menu-wrapper .nav-menu.list-unstyled,
  .nav .nav-menu-wrapper[data-nav-menu-open] .nav-menu.list-unstyled {
    transform: none;
    opacity: 1;
  }
  /* Внутренний список при открытом бургере: на всю ширину, колонка, пункты по центру */
  [data-nav-menu-open] > .nav-menu.list-unstyled,
  [data-nav-menu-open] .nav-menu.list-unstyled {
    width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-start !important;
    text-align: center !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  [data-nav-menu-open] .nav-menu > li {
    width: 100%;
    display: flex;
    justify-content: center;
  }
  /* Обёртка дропдауна «Экскурсии» на всю ширину (перебиваем .nav-dropdown margin и 767px align-items) */
  [data-nav-menu-open] .nav-menu > li > .nav-dropdown {
    position: relative;
    width: 100%;
    margin-left: 0;
    margin-right: 0;
  }
  /* Тоггл и ссылки по центру; перебиваем .dropdown-toggle { display: inline-block } */
  [data-nav-menu-open] .nav-menu > li > .nav-dropdown .nav-dropdown-toggle,
  [data-nav-menu-open] .nav-menu > li > .nav-dropdown .dropdown-toggle,
  [data-nav-menu-open] .nav-menu > li > a.link-block-button-menu {
    width: 100%;
    display: flex !important;
    justify-content: center;
    align-items: center;
  }
  /* «Экскурсии» в дропдауне по центру (убираем flex:1, центрируем текст) */
  [data-nav-menu-open] .nav-menu > li > .nav-dropdown .button-wrapper-menu .text-block-menu {
    flex: 0 1 auto;
    text-align: center;
  }
  /* Список экскурсий в бургере: закрыт — не занимает места; открыт по клику — разворачивается */
  [data-nav-menu-open] .nav-dropdown-list-2.shadow-three.mobile-shadow-hide {
    display: block !important;
    position: relative !important;
    top: auto;
    left: auto;
    right: auto;
    margin-top: 0;
    padding: 0 15px;
    max-height: 0;           /* закрыт — нулевая высота, нет пустого блока между Экскурсии и О компании */
    min-height: 0;
    overflow: hidden;
    transform: scaleY(0);
    transform-origin: top;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    box-shadow: none;
    background: transparent;
    transition: transform var(--menu-anim-duration) var(--menu-anim-easing),
                opacity var(--menu-anim-duration) var(--menu-anim-easing),
                visibility 0s linear var(--menu-anim-duration),
                max-height var(--menu-anim-duration) var(--menu-anim-easing);
  }
  [data-nav-menu-open] .nav-dropdown-list-2.shadow-three.mobile-shadow-hide.is-open {
    position: relative !important; /* в потоке — фон .nav-menu-wrapper тянется на всю высоту; бьётся с правилами ≤767px */
    display: block !important;
    padding: 0 15px;
    /* числовое значение нужно, чтобы при закрытии (повторный клик) анимация max-height проигрывалась (none → 0 не анимируется) */
    max-height: 2000px;
    overflow: visible;
    transform: scaleY(1);
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition: transform var(--menu-anim-duration) var(--menu-anim-easing),
                opacity var(--menu-anim-duration) var(--menu-anim-easing),
                visibility 0s,
                max-height var(--menu-anim-duration) var(--menu-anim-easing);
  }
  /* Контент внутри без своей анимации — масштабируется вместе с контейнером (как на десктопе) */
  [data-nav-menu-open] .nav-dropdown-list-2.shadow-three.mobile-shadow-hide .grid-dropdown-menu {
    display: grid !important;
    transform: none;
    opacity: 1;
  }
  /* На узких экранах пункты меню (Экскурсии, О компании, Контакты) — тёмные на светлом фоне */
  .text-block-menu {
    color: #333 !important;
  }
  [data-nav-menu-open] .heading-h3 {
    color: #333;
  }
  [data-nav-menu-open] .menu-text {
    color: #333;
  }
  [data-nav-menu-open] .link-menu-name-excursion {
    color: #333;
  }
}

@media screen and (max-width: 767px) {
  .nav-brand {
    padding-left: 10px;
  }
}

/* Базовые стили сетки для всех .grid-* (вместо отдельного класса .layout-grid) */
.grid-dropdown-menu,
.grid-tabs-menu,
.grid-footer,
.grid-page-404,
.grid-excursion,
.grid-price,
.grid-excursion-description,
.grid-same-tours,
.grid-step-box,
.grid-which-itour {
  display: grid;
  grid-row-gap: 16px;
  grid-column-gap: 16px;
  grid-template-rows: auto auto;
  grid-template-columns: 1fr 1fr;
  grid-auto-columns: 1fr;
}

body {
  opacity: .99;
  color: #333;
  background-color: #f5f5f5;
  font-family: var(--font-family);
  font-size: 15px;
  line-height: 140%;
}

h1 {
  letter-spacing: 4px;
  text-transform: uppercase;
  margin-top: 20px;
  margin-bottom: 10px;
  font-size: 24px;
  font-weight: 500;
  line-height: 140%;
}

h2 {
  text-transform: uppercase;
  margin-top: 20px;
  margin-bottom: 10px;
  font-size: 32px;
  font-weight: 500;
  line-height: 36px;
}

h3 {
  letter-spacing: 2px;
  margin-top: 20px;
  margin-bottom: 10px;
  font-size: 20px;
  font-weight: 700;
  line-height: 140%;
}

h4 {
  margin-top: 10px;
  margin-bottom: 10px;
  font-size: 18px;
  font-weight: bold;
  line-height: 24px;
}

a {
  justify-content: flex-start;
  text-decoration: underline;
}

img {
  display: inline-block;
}

.top-10-label {
  background-color: var(--cadet-blue);
  color: #fff;
  text-align: center;
  border-radius: 2px;
  flex: 0 auto;
  align-items: center;
  margin-top: auto;
  margin-bottom: auto;
  padding-left: 7px;
  padding-right: 7px;
  display: flex;
}

.text-puteshestvui {
  color: #fff;
  text-align: center;
  text-transform: uppercase;
  font-size: 28px;
  font-weight: 500;
  line-height: 183%;
}

.top-sub-menu {
  --top-sub-menu-icon-size: 20px;
  --top-sub-menu-icon-gap: 5px;
  border-bottom: 1px solid #aaa;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding-top: 12px;
  padding-bottom: 10px;
  display: flex;
}

.top-sub-menu__items {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 0;
}

.top-sub-menu__item {
  display: flex;
  align-items: center;
}

.top-sub-menu__item--divider {
  border-left: 1px solid #fff;
  margin-left: 10px;
  padding-left: 10px;
}

.top-sub-menu__icon {
  flex: 0 0 var(--top-sub-menu-icon-size);
  width: var(--top-sub-menu-icon-size);
  height: var(--top-sub-menu-icon-size);
  margin-right: var(--top-sub-menu-icon-gap);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
}

.top-sub-menu__icon--mail {
  padding-top: 2px;
}

.top-sub-menu__icon-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.top-sub-menu__body {
  min-width: 0;
}

.top-sub-menu__text {
  color: #fff;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.2;
  white-space: nowrap;
}

.menu-section {
  height: 40vw;
  position: relative;
}

/* Герой главной: картинка в index.php (LCP), не в background — раньше обнаружение URL только после main.css */
.menu-section-hero-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 50%;
  z-index: 0;
  pointer-events: none;
}

.nav-button-wrapper {
  padding-bottom: 0;
}

.menu-parent {
  cursor: pointer;
  flex-direction: column;
  justify-content: center;
  width: 50px;
  height: 50px;
  display: flex;
  overflow: hidden;
}

.menu-bar {
  background-color: #fff;
  width: 100%;
  height: 2px;
  margin-bottom: 6px;
  transition: transform 0.25s ease, opacity 0.2s ease;
}

.menu-bar:last-child {
  margin-bottom: 0;
}

/* Анимация бургера: три полоски → крестик */
.menu-button.is-open .menu-bar:nth-child(1) {
  transform: translateY(8px) rotate(45deg);
}
.menu-button.is-open .menu-bar:nth-child(2) {
  opacity: 0;
}
.menu-button.is-open .menu-bar:nth-child(3) {
  transform: translateY(-8px) rotate(-45deg);
}

/* Подчёркивание при наведении — псевдоэлемент, без лишнего div в разметке */
.wrapper-menu-name-excursion::after {
  content: '';
  display: block;
  flex-basis: 100%;
  height: 2px;
  background-color: var(--cadet-blue);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.25s ease;
}

.text-span-interesno {
  font-size: 32px;
}

/* .button-primary: плавная заливка фона при наведении (transition), без ::before */
/* Высота как у кнопок меню (.button-wrapper-menu): одинаковый вертикальный padding */
button.button-primary {
  font: inherit;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}

.button-primary {
  border: 2px solid var(--cadet-blue);
  color: #fff;
  letter-spacing: 1px;
  text-transform: uppercase;
  white-space: nowrap;
  background-color: transparent;
  border-radius: 3px;
  padding: 4px 10px;
  font-weight: 500;
  text-decoration: none;
  transition: background-color 0.4s ease, color 0.4s ease;
  line-height: 1.4;
  box-sizing: border-box;
}

.button-primary:hover {
  background-color: var(--cadet-blue);
  color: #fff;
}

/* Кнопка «перейти в каталог» на странице 404 */
.button-primary.order {
  z-index: 2;
  color: var(--cadet-blue);
  margin-top: 10px;
  padding-left: 15px;
  padding-right: 15px;
  font-weight: 500;
}

.button-primary.order:hover {
  color: #f8f8f8;
}

/* Кнопка «Закрыть» в шапке модалки */
.modal-window-header [data-itour-modal-close] {
  border-width: 1px;
  padding: 2px 10px;
  font-size: 12px;
}

/* Единый стиль кнопок: «Заказать экскурсию», «Написать отзыв», «скачать бланк», «перейти в каталог» */
.main-button {
  border: 2px solid var(--cadet-blue);
  color: var(--cadet-blue);
  letter-spacing: 1px;
  text-transform: uppercase;
  white-space: nowrap;
  background-color: transparent;
  border-radius: 3px;
  padding: 4px 10px;
  font-weight: 500;
  text-decoration: none;
  transition: background-color 0.4s ease, color 0.4s ease;
  line-height: 1.4;
  box-sizing: border-box;
  font-size: 14px;
  display: inline-block;
}
.main-button:hover {
  background-color: var(--cadet-blue);
  color: #fff;
}
.main-button--disabled,
.main-button--disabled:hover {
  border-color: #b8c5c8;
  color: #9aa3a6;
  background-color: #f3f5f6;
  cursor: not-allowed;
  pointer-events: none;
}

.link-menu-name-excursion {
  flex: 1;
  font-family: inherit;
  text-decoration: none;
  color: #333;
}
.link-menu-name-excursion:link,
.link-menu-name-excursion:visited {
  text-decoration: none;
  color: #333;
}

/* Ховер пунктов в раскрывающемся меню «Экскурсии»: цвет названия + линия слева направо под названием */
.link-menu-name-excursion:hover .menu-text {
  color: var(--cadet-blue);
}

.wrapper-menu-name-excursion:hover::after {
  transform: scaleX(1);
}

.link-menu-name-excursion .menu-text {
  transition: color 0.25s ease;
}

.grid-dropdown-menu {
  grid-column-gap: 20px;
  grid-row-gap: 30px;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  padding-left: 15px;
  padding-right: 15px;
  padding-top: 25px;
  padding-bottom: 25px;
}

/* Списки выпадающего меню: сброс маркеров; padding не трогаем у .menu-categories-list (боковые отступы от .grid-dropdown-menu) */
.menu-categories-list {
  list-style: none;
  margin: 0;
}

.menu-excursion-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.navbar-brand {
  text-decoration: none;
}
.navbar-brand:link,
.navbar-brand:visited {
  text-decoration: none;
  color: inherit;
}
.navbar-brand.is-current {
  display: flex;
}

/* Чтобы дроп «Экскурсии» тянулся на всю ширину, контекст позиционирования — .nav-box, не .nav-menu */
.nav-box .nav-menu {
  position: static;
}

.nav-menu-wrapper {
  position: static;
}

.nav-menu-wrapper.nav-mibail-absolun {
  justify-content: flex-end;
  align-items: center;
  display: flex;
}

.container-regular {
  width: 100%;
  min-height: 30px;
  margin-left: auto;
  margin-right: auto;
  padding-top: 12px;
}

.heading-h3 {
  text-transform: uppercase;
  margin-top: 0;
  margin-bottom: 0;
  font-size: 14px;
  font-weight: 600;
  transition: all .4s;
}

.text-sub-menu {
  display: flex;
}

.text-sub-menu.mail {
  border-left: 1px solid #fff;
  justify-content: flex-start;
  align-items: center;
  padding-left: 10px;
}

.menu-box {
  flex: 1;
  justify-content: flex-end;
  align-items: center;
  margin-right: 3px;
  display: flex;
}

.wrapper-menu-name-excursion {
  margin-top: 5px;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 2px;
  display: flex;
  flex-wrap: wrap;
}

.menu-text-top-label {
  white-space: nowrap;
  font-family: inherit;
  font-size: 10px;
  font-weight: 500;
  color: #fff;
}

.menu-heading-wrapper {
  margin: 0;
  border-bottom: 1px solid #5d5959;
  padding-bottom: 5px;
  margin-bottom: 10px;
}

.gradient-menu {
  z-index: 1;
  height: 130%;
  position: absolute;
  inset: 0% 0% auto;
  vertical-align: top;
}

.main-block {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 3%;
  padding-right: 3%;
}

/* На страницах экскурсий на мобильных убираем правый "зазор" у основного блока,
   чтобы текст и прайс были ближе к правому краю экрана */
@media screen and (max-width: 767px) {
  body.page-excursion .main-block.excursion {
    padding-right: 3%;
  }
}

/* Страница 404 — только меню, без фоновой картинки */
body.page-404 .menu-section {
  background-image: none;
  height: auto;
  min-height: 0;
}

/* Страница 404 — две колонки: 404 слева, текст справа */
.section-404 {
  justify-content: center;
  align-items: center;
  min-height: 80vh;
  display: flex;
}
.main-block._404 {
  justify-content: center;
  align-items: center;
  min-height: 80vh;
  margin-top: 60px;
  display: flex;
}
.grid-page-404 {
  grid-template-rows: auto;
  width: 100%;
}
.wrapper-grid-page-404 {
  flex-direction: column;
  justify-content: center;
  align-items: center;
  display: flex;
}
.wrapper-grid-page-404.right {
  flex-direction: column;
  align-items: flex-start;
}
.box-text-404 {
  display: block;
}
.text-block.page-404 {
  color: var(--silver);
  text-align: center;
  font-family: var(--font-family);
  font-size: 160px;
  font-weight: 500;
  line-height: 140%;
}
.heading-h1._404 {
  font-weight: 600;
}
.paragraf.top-margin {
  margin-top: 1em;
}

.paragraf.bottom-margin {
  margin-bottom: 20px;
}

.wrapper-content-slide-menu {
  background-color: #f1f1f100;
  flex-wrap: wrap;
  flex: 0 auto;
  justify-content: center;
  align-items: center;
  width: 100%;
  display: flex;
  position: relative;
  bottom: -45px;
}

.menu-text {
  color: #696969;
  text-transform: uppercase;
  padding-right: 5px;
  font-size: 12px;
  font-weight: 500;
}

.navbar-wrapper {
  justify-content: space-between;
  align-items: center;
  display: flex;
}

.navbar-container {
  z-index: 5;
  overflow: visible;
  background-color: #dbd8d800;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}

/* Слой над фоном секции (пирс), под маской и меню. z-index: 1 < mask 3 < nav 99 */
.slide-block {
  z-index: 1;
  -webkit-backdrop-filter: blur(5px);
  backdrop-filter: blur(5px);
  background-color: #4380ab73;
  justify-content: flex-start;
  align-items: center;
  width: 30%;
  display: flex;
  position: absolute;
  inset: 0% auto 0% 0%;
  box-shadow: 12px 0 9px -6px #0003;
}

.image-tabs {
  border-radius: 4px;
}

/* Карточки в табах каталога: картинка и блок на всю ячейку сетки */
.grid-tabs-menu .grid-wrapper-excursion {
  width: 100%;
  min-width: 0;
}
.grid-tabs-menu .grid-main-page-box-wrapper {
  width: 100%;
}
.grid-tabs-menu .image-tabs {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  max-width: 100%;
}
.grid-tabs-menu .image-tabs-placeholder {
  display: block;
  width: 100%;
  min-height: 200px;
  background-color: #e0e0e0;
  border-radius: 4px;
}
.grid-tabs-menu .grid-main-page-box-wrapper .link-tabs-excursion {
  position: relative;
  overflow: hidden;
  width: 100%;
  display: block;
}

/* Единый вид на index и страницах экскурсий: и для div, и для p */
.paragraf {
  margin-top: 0;
  margin-bottom: 10px;
  color: #333;
  font-size: inherit;
  line-height: 140%;
}

.paragraf.no-margin {
  margin-bottom: 0;
}

.paragraf.no-margin.white {
  color: #fff;
}

.paragraf.no-margin.text-color {
  color: #fff;
  font-weight: 500;
}

.paragraf.no-margin.center {
  text-align: center;
}

.gradient-tabs-main-page {
  background-image: linear-gradient(0deg, #000000b3, #00000054 40%, #0003 56%, #0000);
  border-radius: 4px;
  transition: opacity 0.4s ease;
  display: block;
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.link-tabs-excursion:hover .gradient-tabs-main-page {
  opacity: .5;
}

.grid-main-page-box-wrapper {
  border-radius: 4px;
  justify-content: center;
  align-items: center;
  transition: all .4s;
  position: relative;
}

.grid-main-page-box-wrapper:hover {
  box-shadow: 0 1px 5px 1px #0003;
}

.heading-h1 {
  color: #838383;
  text-align: center;
  font-style: normal;
}

.grid-tabs-menu {
  grid-column-gap: 40px;
  grid-row-gap: 35px;
  grid-template-rows: auto auto;
  grid-template-columns: 1fr 1fr;
  grid-auto-columns: 1fr;
  padding: 0 0 20px;
  display: grid;
}

/* В табах главной: пробелы между PHP-тегами не создают пустые ячейки сетки */
.tabs-home-page .grid-tabs-menu {
  font-size: 0;
  line-height: 0;
}
.tabs-home-page .grid-tabs-menu .grid-wrapper-excursion {
  font-size: 15px;
  line-height: 140%;
}

.line-hover-tabs {
  background-color: var(--cadet-blue);
  width: 50px;
  height: 3px;
  transition: width 0.3s ease;
}

.link-tabs-excursion:hover .line-hover-tabs {
  width: 100px;
}

.main-section {
  z-index: 1;
  padding-top: 30px;
  padding-bottom: 30px;
  display: block;
  position: relative;
}

.main-section.background {
  background-color: #fff;
  padding-bottom: 10px;
}

.tabs-name-of-excursion {
  padding-bottom: 20px;
  padding-left: 20px;
  padding-right: 20px;
  position: absolute;
  inset: auto 0 0;
}

.heading-h2 {
  color: #838383;
  text-align: center;
  letter-spacing: 4px;
  margin-top: 30px;
  font-size: 24px;
  line-height: 140%;
}

.heading-h2 .span {
  text-transform: lowercase;
}

.text-block-tabs-img {
  color: #fff;
  text-transform: uppercase;
  padding-bottom: 7px;
  font-size: 18px;
  font-weight: 400;
  position: static;
  inset: auto 0% 15% 6%;
}

.grid-which-itour {
  grid-column-gap: 50px;
  grid-row-gap: 30px;
  margin: 0;
  padding-left: 0;
  padding-top: 20px;
  list-style: none;
}

.wrapper-grid-why {
  justify-content: flex-start;
  align-items: flex-start;
  display: flex;
}

.icon-grid-why {
  min-width: 40px;
  position: relative;
}

.wrapper-text-grid-why {
  padding-left: 35px;
}

.html-embed-2 {
  color: var(--dark-grey);
  transition: all .4s;
  position: absolute;
  inset: 0%;
}

.block-tabs-name-excursion {
  z-index: 0;
  display: block;
}

.html-embed-3 {
  color: #fff;
  padding-right: 5px;
}

.html-embed-3.mail {
  padding-top: 4px;
  padding-right: 10px;
}

.footer .container {
  background-color: #3b4858;
  border-top-left-radius: 8px;
  border-bottom-left-radius: 8px;
  justify-content: space-between;
  align-items: stretch;
  width: 95%;
  max-width: none;
  margin-left: auto;
  margin-right: auto;
  display: flex;
  position: absolute;
  top: -49%;
  bottom: auto;
  right: -15.1458px;
  transform: skew(12deg);
}

.footer-copyright {
  text-align: left;
  font-size: 12px;
  font-weight: 500;
  line-height: 16px;
  display: flex;
}

.footer-wrapper {
  align-items: center;
  width: 100%;
  display: flex;
  transform: skew(-12deg);
}

.footer-left {
  justify-content: center;
  align-items: center;
  display: flex;
}

.footer-right {
  width: 100%;
  padding-top: 15px;
  padding-bottom: 15px;
  padding-right: 3%;
}

.grid-footer {
  display: grid;
  grid-row-gap: 16px;
  grid-column-gap: 16px;
  grid-template-rows: auto;
  grid-template-columns: minmax(auto, auto) minmax(auto, auto);
  justify-items: start;
  border-bottom: 1px solid var(--silver);
  padding-bottom: 10px;
}

.wrapper-grid-footer {
  justify-content: center;
  align-items: center;
  display: flex;
}

.wrapper-grid-footer.right {
  justify-content: center;
}

.html-embed-4 {
  color: #fff;
}
.html-embed-4 path {
  fill-rule: evenodd;
  clip-rule: evenodd;
}

.link-footer-social {
  margin-right: 12px;
}

.text-footer-menu {
  color: #fff;
  font-size: 14px;
  transition: all .4s;
}

.text-footer-menu:hover {
  color: var(--silver);
}

.menu-footer {
  text-transform: uppercase;
  margin-top: 10px;
  margin-right: 20px;
  display: inline-block;
}

.link-block-catalog {
  text-decoration: none;
}

.footer .menu-footer a.link-block-catalog {
  text-decoration: none;
  color: #fff;
}

.footer .menu-footer a.link-block-catalog:hover {
  color: var(--silver);
}

/* Высота как у .button-primary (4px padding + 2px border = 6px с каждой стороны): 6px вертикальный padding */
.button-wrapper-menu {
  flex: 1;
  justify-content: center;
  align-items: center;
  padding: 0 7px;
  display: flex;
  position: relative;
  overflow: hidden;
  line-height: 1.4;
  box-sizing: border-box;
}

.text-block-menu {
  flex: 1;
  color: #fff;
  letter-spacing: 1px;
  text-transform: uppercase;
  white-space: nowrap;
  font-weight: 500;
  position: relative;
  line-height: 1.4;
}

/* От центра по вертикали на всю длину. Без transition по умолчанию — при загрузке нет «схлопывания» */
.button-playground-menu {
  z-index: -1;
  background-color: var(--cadet-blue);
  border-radius: 3px;
  position: absolute;
  inset: 0%;
  transform: scaleY(0);
  transform-origin: 50% 50%;
}

.link-block-button-menu:hover .button-playground-menu,
.button-wrapper-menu:hover .button-playground-menu,
.nav-dropdown-toggle:hover .button-playground-menu {
  transform: scaleY(1);
  transition: transform 0.4s ease;
}

.link-block-button-menu {
  margin-right: 5px;
  text-decoration: none;
}

.footer-background {
  background-color: var(--white-smoke-2);
  flex: 1;
  justify-content: flex-start;
  align-items: flex-end;
  height: 100px;
  padding-bottom: 10px;
  padding-left: 3%;
  display: flex;
  position: relative;
  overflow: visible;
}

.footer {
  background-color: #f5f5f5;
  justify-content: center;
  align-items: flex-end;
  height: 180px;
  display: flex;
  overflow: hidden;
}

/* Страница одной экскурсии (шаблон kwai-river и др.): белый фон футера и тень */
body.page-excursion .footer {
  background-color: #fff;
}
body.page-excursion .footer .footer-background {
  box-shadow: 0 -4px 10px 4px var(--white-smoke-2);
}

/* Мобильный вид страниц экскурсий: режем любые горизонтальные «утечки» ширины,
   чтобы после зума/поворота не появлялась прокрутка и пустое пространство справа */
@media screen and (max-width: 767px) {
  html,
  body.page-excursion {
    overflow-x: hidden;
  }
  body.page-excursion {
    max-width: 100vw;
  }
}

.footer .footer-background {
  flex: 1;
  width: 100%;
}

.footer .footer-copyright {
  color: #666;
}

.body {
  background-color: #f5f5f5;
  overflow: auto;
}

.text-block-submenu {
  color: #fff;
  font-size: 15px;
}

.link-sub-menu {
  color: #fff;
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  transition: all .555s;
}

.link-sub-menu:hover {
  color: silver;
}

.nav-box {
  z-index: 99;
  background-image: linear-gradient(#284b4f 19%, #192f32a1 65%, #0000);
  margin-left: auto;
  margin-right: auto;
  padding-bottom: 50px;
  padding-left: 3%;
  padding-right: 3%;
  position: absolute;
  inset: 0% 0% auto;
  overflow: visible;
}

.logo {
  color: #e2e0e0;
  letter-spacing: 1px;
  white-space: nowrap;
  margin-right: 10px;
  font-size: 25px;
  font-weight: 500;
  display: flex;
}

.logo.footer-logo {
  margin-left: 20px;
  margin-right: 20px;
}

.html-embed-excursion {
  color: var(--cadet-blue);
  place-content: flex-end center;
  align-items: center;
  width: 200%;
  margin-left: -260px;
  display: flex;
}

/* Растягиваем SVG на ширину «широкого» контейнера (200% вьюпорта) — иначе маска остаётся визуально узкой */
.html-embed-excursion .svgmask {
  width: 100%;
  height: auto;
  display: block;
  flex-shrink: 0;
}

.mask-wrapper-excursion {
  z-index: 3;
  justify-content: center;
  align-items: center;
  display: flex;
  position: absolute;
  inset: auto 0 -2px;
  overflow: hidden;
}

.grid-wrapper-excursion {
  justify-content: center;
  align-items: center;
  display: flex;
  position: relative;
}

.nav-dropdown {
  margin-left: 5px;
  margin-right: 5px;
  position: static;
}

.nav-dropdown-toggle {
  letter-spacing: .25px;
  padding: 0;
  color: #fff;
  border: 0;
  background: transparent;
  font: inherit;
  appearance: none;
}

.nav-dropdown-toggle:focus-visible, .nav-dropdown-toggle[data-focus-visible] {
  outline-offset: 0px;
  color: #0050bd;
  border-radius: 5px;
  outline: 2px solid #0050bd;
}

.nav-dropdown-list-2 {
  background-color: #fff;
  border-radius: 12px;
}

/* На десктопе: та же анимация, что у бургера (scaleY + opacity, переменные --menu-anim-*) */
@media screen and (min-width: 992px) {
  .nav-dropdown-list-2.shadow-three.mobile-shadow-hide {
    display: block !important;
    position: absolute;
    inset: 100% 0% auto;
    margin-top: 10px;
    border-radius: 4px;
    opacity: 0;
    visibility: hidden;
    transform: scaleY(0);
    transform-origin: top;
    pointer-events: none;
    transition: transform var(--menu-anim-duration) var(--menu-anim-easing), opacity var(--menu-anim-duration) var(--menu-anim-easing), visibility 0s linear var(--menu-anim-duration);
  }
  .nav-dropdown-list-2.shadow-three.mobile-shadow-hide.is-open {
    display: block;
    opacity: 1;
    visibility: visible;
    transform: scaleY(1);
    pointer-events: auto;
    transition: transform var(--menu-anim-duration) var(--menu-anim-easing), opacity var(--menu-anim-duration) var(--menu-anim-easing), visibility 0s;
  }
}

/* Чтобы широкое меню не обрезалось предками */
.nav-menu,
.navbar-wrapper,
.container-regular {
  overflow: visible;
}

.list-item {
  list-style: none;
}

.wrapper_table_cell.border {
  border-left: 2px solid #c0c0c099;
  border-right: 2px solid #c0c0c099;
}

.table_row {
  border-bottom: 2px solid #c0c0c099;
}

.table_row.header {
  background-color: #3b4858;
  border: 1px solid #3b4858;
}

.table_row.no-button-border {
  border-bottom-style: none;
}

.table_body {
  border-bottom: 2px solid #c0c0c099;
  border-left: 2px solid #c0c0c099;
  border-right: 2px solid #c0c0c099;
}

.wrapper_table_header {
  flex-flow: column;
  justify-content: center;
  align-items: center;
}

.wrapper_table_header.ttpe-of-car {
  border-left: 2px solid silver;
  min-width: 150px;
  padding: 5px 10px;
}

.wrapper_table_header.way {
  min-width: 400px;
}

.table_component {
  margin-bottom: 20px;
}

.span-table {
  font-size: 14px;
  font-weight: 300;
}

.span-bolt {
  font-weight: 500;
}

.wrapper-body-table {
  border-top-left-radius: 4px;
  border-top-right-radius: 4px;
  margin-top: 20px;
  overflow: auto;
}

.a-1 {
  background-color: var(--cadet-blue);
  border-radius: 2px;
  width: 20px;
  height: 2px;
  position: absolute;
  inset: 11px 0% auto 150px;
  -webkit-transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
  transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
}

.a-1.meeting {
  left: 235px;
}

.a-1.airport {
  left: 240px;
}

.a-1.transfer {
  left: 155px;
}

.a-3 {
  background-color: var(--cadet-blue);
  border-radius: 2px;
  width: 7px;
  height: 2px;
  position: absolute;
  inset: auto -1px 2px auto;
  transform: rotate(45deg);
}

.a-2 {
  background-color: var(--cadet-blue);
  border-radius: 2px;
  width: 7px;
  height: 2px;
  position: absolute;
  inset: 2px -1px auto auto;
  transform: rotate(-45deg);
}

.link-transfer {
  color: #333;
  text-decoration: none;
}

.code-tel {
  margin-right: 10px;
}

@media screen and (min-width: 1920px) {
  .image-tabs {
    width: auto;
  }

  .grid-tabs-menu .image-tabs {
    width: 100%;
  }

  .menu-section .html-embed-excursion,
  .section-excursion .html-embed-excursion {
    margin-left: -79%;
    margin-right: -77%;
  }
}

@media screen and (max-width: 991px) {
  .text-puteshestvui {
    font-size: 26px;
  }

  .menu-section {
    height: 50vw;
  }

  body.page-404 .menu-section {
    height: auto;
  }

  .nav-button-wrapper {
    margin-left: 0;
  }

  .text-span-interesno {
    font-size: 30px;
  }

  .nav-menu {
    border-radius: 0 0 4px 4px;
    flex-wrap: wrap;
    justify-content: space-around;
    align-items: center;
    padding-left: 0;
    display: flex;
  }

  .grid-dropdown-menu {
    grid-template-columns: 1fr 1fr 1fr;
    padding-top: 5px;
  }

  .nav-menu-wrapper.nav-mibail-absolun {
    position: absolute;
  }

  .menu-button {
    border-radius: 4px;
    margin-left: 10px;
    padding: 5px;
  }

.menu-button.nav-button {
  border: 0;
  background: transparent;
  font: inherit;
  appearance: none;
}

  .menu-button.is-open {
    color: #fff;
    background-color: #516b80b3;
  }

  .gradient-menu {
    height: 110%;
    inset: 0% 0% auto;
  }

  .icon-mobile {
    color: #fff;
    border-radius: 4px;
    font-size: 32px;
  }

  .heading-h1 {
    font-size: 22px;
  }

  .grid-tabs-menu {
    grid-column-gap: 20px;
    grid-row-gap: 25px;
  }

  .text-block-tabs-img {
    padding-bottom: 4px;
    font-size: 16px;
  }

  .grid-footer {
    grid-template-columns: minmax(auto, auto) minmax(auto, auto);
  }

  .button-playground-menu {
    background-color: #0000;
  }

  .link-block-button-menu {
    padding-bottom: 0;
  }

  .logo {
    color: #e9e8e8;
  }

  .mask-wrapper-excursion {
    overflow: hidden;
  }

  .nav-dropdown-list-2.shadow-three.is-open {
    position: absolute;
  }

  .nav-dropdown-list-2.shadow-three.mobile-shadow-hide.is-open {
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    margin-top: 0;
  }

  .menu-parent {
    grid-column-gap: 6px;
    grid-row-gap: 6px;
    width: 35px;
    height: 35px;
  }

  .menu-bar {
    margin-bottom: 0;
  }

}

@media screen and (max-width: 767px) {
  .text-puteshestvui {
    font-size: 19px;
  }

  .menu-section {
    height: 60vw;
  }

  body.page-404 .menu-section {
    height: auto;
  }

  .text-span-interesno {
    font-size: 22px;
  }

  .nav-menu {
    flex-direction: column;
    place-content: center;
    margin-top: 10px;
  }

  .button-primary {
    font-size: 14px;
  }

  .grid-dropdown-menu {
    grid-template-columns: 1fr 1fr;
  }

  .navbar-brand {
    padding-left: 0;
  }

  .top-sub-menu__item--mail {
    display: none;
  }

  .menu-button {
    margin-bottom: 0;
  }

  .gradient-menu {
    height: 100%;
  }

  .icon-mobile {
    display: none;
  }

  .wrapper-content-slide-menu {
    position: absolute;
    bottom: 100px;
  }

  .slide-block {
    width: 35%;
    inset: 0% auto 0% 0%;
  }

  .paragraf {
    margin-bottom: 10px;
    font-size: 15px;
  }

  .heading-h1 {
    margin-bottom: 0;
    font-size: 20px;
  }

  .grid-tabs-menu {
    grid-template-columns: 1fr;
    margin-left: 0;
    margin-right: 0;
  }

  .main-section {
    padding-top: 0;
  }

  .tabs-name-of-excursion {
    display: inline-block;
  }

  .text-block-tabs-img {
    padding-bottom: 8px;
    font-size: 18px;
    display: block;
  }

  .grid-which-itour {
    grid-template-columns: 1fr;
  }

  .icon-grid-why {
    min-width: 7vw;
  }

  .block-tabs-name-excursion {
    display: inline-block;
  }

  .footer .container {
    background-color: #2a3d51;
    top: -73%;
  }

  .footer-wrapper {
    display: block;
  }

  .footer-left {
    padding-top: 10px;
    padding-bottom: 10px;
  }

  .footer-right {
    padding-top: 5px;
    padding-left: 30px;
  }

  .grid-footer {
    grid-template-columns: minmax(auto, auto) minmax(auto, auto);
    margin-right: 15px;
  }

  .text-footer-menu {
    font-size: 13px;
  }

  .text-block-menu {
    padding-bottom: 10px;
  }

  .footer {
    height: 195px;
  }

  .logo.footer-logo {
    padding-top: 4px;
    padding-bottom: 0;
  }

  .menu-section .html-embed-excursion,
  .section-excursion .html-embed-excursion {
    margin-left: -131px;
  }

  .menu-section .mask-wrapper-excursion,
  .section-excursion .mask-wrapper-excursion {
    inset: auto 0 -2px;
  }

  .section-404 {
    height: 90vh;
  }

  .nav-dropdown {
    flex-direction: column;
    align-items: center;
    display: flex;
  }

  .nav-dropdown-toggle {
    padding-top: 10px;
    padding-bottom: 0;
  }

  .nav-dropdown-list-2.shadow-three {
    box-shadow: 0 8px 50px #0000000d;
  }

  .nav-dropdown-list-2.shadow-three.is-open {
    position: relative;
  }

  .nav-dropdown-list-2.shadow-three.mobile-shadow-hide {
    box-shadow: none;
  }

  /* Только пока бургер закрыт: при открытом меню список в потоке (max-width 991px + [data-nav-menu-open]), иначе текст уезжает с белого фона */
  .navbar-container.nav:not(.is-open) .nav-dropdown-list-2.shadow-three.mobile-shadow-hide.is-open {
    display: flex;
    position: absolute;
    box-shadow: none;
  }

  .menu-parent {
    grid-column-gap: 5px;
    grid-row-gap: 5px;
    justify-content: center;
    width: 25px;
    height: 100%;
    padding-top: 0;
    padding-bottom: 0;
  }

  .menu-bar {
    margin-bottom: 0;
  }

  .main-block._404 {
    margin-top: 117px;
  }

  .grid-page-404 {
    grid-template-columns: 1fr;
  }

  .wrapper-grid-page-404.right {
    text-align: center;
    justify-content: center;
    align-items: flex-start;
  }

}

@media screen and (max-width: 479px) {
  .text-puteshestvui {
    font-size: 16px;
  }

  .top-sub-menu {
    padding-top: 5px;
    padding-bottom: 5px;
  }

  .menu-section {
    height: 80vw;
  }

  body.page-404 .menu-section {
    height: auto;
  }

  .nav-button-wrapper {
    width: auto;
  }

  .text-span-interesno {
    font-size: 17px;
  }

  .button-primary {
    padding: 2px 5px;
    font-size: 12px;
  }

  .button-primary.order {
    padding-left: 10px;
    padding-right: 10px;
  }

  .button-primary.white-color {
    border: 1px solid var(--white-smoke);
    padding: 3px 12px;
  }

  /* Как на 480–767px: две колонки — каталог не «лесенкой» в одну колонку и фон меню не обрывается визуально */
  .grid-dropdown-menu {
    grid-column-gap: 20px;
    grid-row-gap: 30px;
    grid-template-rows: auto auto;
    grid-template-columns: 1fr 1fr;
    grid-auto-columns: 1fr;
    display: grid;
  }

  .container-regular {
    padding-top: 5px;
  }

  .wrapper-menu-block {
    width: 100%;
  }

  .gradient-menu {
    background-image: repeating-linear-gradient(to top, #3b4858, #3b4858);
  }

  .icon-mobile {
    margin-top: 10px;
  }

  .slide-block {
    width: 43%;
  }

  .paragraf {
    margin-bottom: 10px;
    font-size: 15px;
  }

  .heading-h1 {
    font-size: 18px;
  }

  .main-section {
    padding-top: 0;
  }

  .section-404 {
    height: 60vh;
    min-height: 0;
  }

  .main-block._404 {
    margin-top: 10px;
  }

  .heading-h1._404 {
    font-size: 16px;
  }

  .text-block.page-404 {
    font-size: 117px;
  }

  .text-block-tabs-img {
    font-size: 15px;
  }

  .icon-grid-why {
    min-width: 10vw;
  }

  .wrapper-text-grid-why {
    padding-left: 20px;
  }

  .footer .container {
    width: 100%;
    top: -37%;
    right: -8%;
  }

  .footer-copyright {
    font-size: 12px;
  }

  .footer-left {
    padding-bottom: 0;
  }

  .footer-right {
    padding-top: 0;
  }

  .grid-footer {
    grid-template-columns: minmax(auto, auto);
    justify-items: start;
  }

  .link-footer-social, .menu-footer {
    display: none;
  }

  .footer {
    height: 159px;
  }

  .link-sub-menu {
    font-size: 12px;
  }


  .nav-box {
    background-color: var(--color);
    background-image: none;
    padding-bottom: 10px;
    position: relative;
  }

  .logo {
    white-space: normal;
    font-size: 15px;
  }

  .logo.footer-logo {
    font-size: 20px;
  }

  .menu-section .html-embed-excursion,
  .section-excursion .html-embed-excursion {
    margin-left: -59px;
  }

  .menu-section .mask-wrapper-excursion,
  .section-excursion .mask-wrapper-excursion {
    inset: auto 0 -2px;
  }

}

/* Сетка: ячейки по классам (без длинных node-id) */
.grid-which-itour .wrapper-grid-why {
  grid-area: span 1 / span 1 / span 1 / span 1;
}

.grid-footer .wrapper-grid-footer:first-child {
  grid-area: span 1 / span 1 / span 1 / span 1;
  align-self: auto;
}

.grid-footer .wrapper-grid-footer.right {
  grid-area: span 1 / span 1 / span 1 / span 1;
  place-self: auto end;
}

.grid-cell {
  grid-area: span 1 / span 1 / span 1 / span 1;
}

@media screen and (max-width: 479px) {
  .grid-footer .wrapper-grid-footer.right {
    justify-self: start;
  }
}

/* ========== Стили с главной страницы (перенесены из index.php) ========== */
.contact-links {
  display: inline-flex;
  align-items: center;
  font-size: 14px;
}
.contact-links a {
  text-decoration: none;
  color: #ffffff;
  font-weight: 400;
  transition: color 0.555s ease;
}
.contact-links a:hover {
  color: #c0c0c0 !important;
}
.contact-links a + a {
  margin-left: 4px;
}

/* Номер +66 64 184-57-67 не переносится (шапка, футер и любые другие tel:-ссылки с этим href) */
a[href="tel:+66641845767"] {
  white-space: nowrap;
}

::selection {
  background: rgba(47, 70, 97, 0.9);
  color: white;
}
::-moz-selection {
  background: rgba(47, 70, 97, 0.9);
}

::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
::-webkit-scrollbar-track {
  background: #f5f5f5;
}
::-webkit-scrollbar-thumb {
  background: rgba(54, 74, 90, 0.2);
  border-radius: 2px;
  transition: all 0.5s ease;
}
::-webkit-scrollbar-thumb:hover {
  background: rgba(54, 74, 90, 0.3);
}

.wrapper-body-table::-webkit-scrollbar {
  width: 8px;
  height: 6px;
}
.wrapper-body-table::-webkit-scrollbar-track {
  background: linear-gradient(0deg, rgba(245,245,245,0) 0%, rgba(245,245,245,0) 40%, rgba(168,168,168,1) 40%, rgba(168,168,168,1) 60%, rgba(245,245,245,0) 60%, rgba(245,245,245,0) 100%);
}
.wrapper-body-table::-webkit-scrollbar-thumb {
  background: #a8a8a8;
  border-radius: 0.4px;
  transition: all 400ms ease;
}

/* Анимация появления блока «Путешествуй интересно» */
.slide-block {
  animation: slideBlockIn 0.8s ease forwards;
}
@keyframes slideBlockIn {
  from {
    opacity: 0;
    transform: translateX(-40px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* ========== Страница экскурсии (Река Квай + Тайский экспресс) ========== */
/* Высота как у .menu-section на главной: 40vw → 50vw (991px) → 60vw (767px) → 80vw (479px) */
/* Не ставить overflow:hidden на секцию — обрежет выпадающий каталог «Экскурсии». Обрезка фона — в .box-menu-excursion */
.section-excursion {
  position: relative;
  /* Как .menu-section на главной: 40vw → далее 50/60/80vw в медиазапросах */
  height: 40vw;
  display: block;
  margin: 0;
  padding: 0;
}

/* Тот же масштаб маски, что на главной: глобальный .html-embed-excursion (200% + margin) + обрезка .mask-wrapper-excursion { overflow:hidden } */
.section-excursion .mask-wrapper-excursion {
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}

.name-of-excursion {
  z-index: 1;
  background-color: #2f2f2f99;
  border-right: 6px solid var(--cadet-blue);
  border-radius: 6px;
  margin-left: -30px;
  padding-left: 75px;
  padding-right: 20px;
  position: absolute;
  inset: auto auto 25% 0%;
  transform: skew(-12deg);
}
/* Фон секции экскурсии: картинка на всю секцию (inset: 0); после загрузки — плавное «отдаление» */
.box-menu-excursion {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
}

/* Герой экскурсии/контактов: <img> для раннего LCP (preload + fetchpriority), не background-image */
.box-menu-excursion-hero-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  z-index: 0;
  pointer-events: none;
  animation: excursion-bg-zoom 5s ease-out forwards;
}

@keyframes excursion-bg-zoom {
  from {
    transform: scale(1.12);
  }
  to {
    transform: scale(1);
  }
}
.main-block.excursion { flex-direction: column; display: flex; }
.left-wrapper-excursion { min-width: 0; }
.right-wrapper-excursion { min-width: 0; }
.wrapper-grid-excursion { min-width: 0; }

.grid-excursion {
  grid-column-gap: 60px;
  grid-template-rows: auto;
  grid-template-columns: minmax(auto, 70%) minmax(auto, 30%);
  margin-top: 20px;
}
.text-price-header {
  text-transform: uppercase;
  white-space: normal;
  margin-top: 0;
  margin-bottom: 5px;
  font-size: 16px;
  font-weight: 600;
}
h2.text-price-header {
  font-family: inherit;
  line-height: inherit;
  color: inherit;
}
.grid-price { grid-column-gap: 40px; grid-row-gap: 18px; grid-template-rows: auto; grid-template-columns: auto auto; justify-content: start; width: fit-content; max-width: 100%; }
.grid-price dt,
.grid-price dd { margin: 0; }
.text-price { padding-bottom: 5px; font-weight: 500; }
.text-price.right { color: var(--cadet-blue); text-align: left; white-space: nowrap; font-size: 22px; font-weight: 500; }
.right-wrapper-excursion .grid-price dd.itour-tier-price-dd { align-self: start; }
.right-wrapper-excursion .text-price.right.itour-tier-price-dd { white-space: normal; text-align: left; }
.itour-tier-price-main { display: block; }
.right-wrapper-excursion .grid-price dd.itour-tier-price-dd .itour-tier-price-note {
  display: block;
  margin-top: 4px;
  text-align: left;
  white-space: normal;
  font-size: 13px;
  font-weight: 400;
}
.itour-price-program { margin-bottom: 22px; }
.itour-price-program:last-child { margin-bottom: 0; }
.itour-price-program .grid-price { margin-top: 0; }
.itour-price-program-title {
  font-size: 15px;
  font-weight: 600;
  margin: 18px 0 6px;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  line-height: 1.35;
}
.itour-price-program-title:first-child { margin-top: 0; }
.itour-price-program-subtitle {
  font-size: 14px;
  color: #444;
  margin: 0 0 12px;
  font-weight: 500;
  line-height: 1.4;
}
.text-sp { color: #333; white-space: pre-wrap; font-size: 13px; font-weight: 400; }
.right-wrapper-excursion .text-price .text-sp { display: block; }
.right-wrapper-excursion .text-price .itour-tier-label-line { display: block; }

/* Страница «Контакты» */
.page-contacts .grid-excursion.contacts {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: start;
}
.page-contacts-list {
  list-style: none;
  padding: 0;
  margin: 0 0 8px;
}
.page-contacts-list li + li {
  margin-top: 6px;
}
.page-contacts .top-margin-contacts {
  margin-top: 28px;
}
.page-contacts .left-wrapper-excursion a:not(.text-span-phone-order) {
  color: var(--cadet-blue);
  text-decoration: none;
  font-weight: 500;
}
.page-contacts .left-wrapper-excursion a:not(.text-span-phone-order):hover {
  text-decoration: underline;
}
.page-contacts .itour-contact-form-wrap {
  margin-top: 8px;
}
.page-contacts .itour-contact-form .itour-order-form-grid {
  grid-template-columns: 1fr 1fr;
  margin-top: 12px;
}
.page-contacts .itour-contact-form .form-field--message-wide,
.page-contacts .itour-contact-form .itour-order-total {
  grid-column: 1 / -1;
}
.page-contacts .itour-contact-form .itour-order-total {
  padding-top: 0;
}
.page-contacts .itour-contact-form .itour-review-message {
  margin-top: 8px;
}

.text-price-note { text-align: right; padding-left: 0; margin: 0; font-size: 14px; line-height: 1.3; user-select: none; }
.itour-price-notice {
  display: none;
  align-items: flex-start;
  gap: 10px;
  text-align: left;
  padding: 0;
  margin: 0 0 16px;
  color: #b45309;
  font-size: 14px;
  line-height: 1.45;
  user-select: text;
}
.itour-price-notice:not([hidden]) {
  display: flex;
}
.itour-price-notice[hidden] {
  display: none !important;
}
.itour-price-notice__icon {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  margin-top: 1px;
  color: #b45309;
}
.itour-price-notice__icon svg {
  display: block;
  width: 100%;
  height: 100%;
}
.itour-price-notice__text {
  flex: 1;
  min-width: 0;
  white-space: pre-wrap;
}
#itour-currency-note { text-align: left; padding-left: 15px; margin-bottom: 0; font-size: 13px; }
/* Переключатель «баты / рубли» (страница экскурсии) */
.itour-currency-row {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: nowrap;
  gap: 10px 12px;
  margin-top: 12px;
  padding-left: 15px;
  font-size: 13px;
  white-space: nowrap;
}
.itour-currency-row .text-price-note { font-size: 13px; }
.text-span-bat { font-size: 22px; }
.dividing-line { background-color: var(--cadet-blue); width: 50px; height: 3px; margin-top: 0; margin-bottom: 10px; }
.dividing-line.modal { height: 2px; margin-bottom: 0; }

/* ===== Отзывы об экскурсиях ===== */
.itour-reviews-grid {
  display: grid;
  grid-template-columns: minmax(240px, 360px) 1fr;
  gap: 30px;
  align-items: start;
}
.itour-reviews-left .main-button { margin-top: 10px; }
.itour-reviews-summary {
  margin-top: 12px;
  margin-bottom: 0;
  font-size: 14px;
  color: #555;
  line-height: 1.45;
}
.itour-reviews-list {
  display: grid;
  gap: 14px;
}
.itour-reviews-empty {
  color: #777;
  font-size: 14px;
}
.itour-review-card {
  background: #fff;
  border-radius: 6px;
  padding: 14px 16px;
  box-shadow: 0 1px 4px rgba(0,0,0,0.06);
}
.itour-review-meta {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 6px;
  font-size: 13px;
  color: #777;
  margin-bottom: 8px;
}
.itour-review-name-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px 12px;
  width: 100%;
}
.itour-review-name {
  font-weight: 600;
  color: #333;
  font-size: 14px;
  min-width: 0;
  flex: 1 1 auto;
}
.itour-review-stars {
  display: inline-flex;
  flex-shrink: 0;
  gap: 2px;
  font-size: 16px;
  line-height: 1;
  letter-spacing: -2px;
  color: #d0d0d0;
}
.itour-review-star--on {
  color: #e6b800;
}
.itour-review-date { display: block; }
.itour-review-text { white-space: pre-wrap; color: #333; font-size: 14px; }
.itour-review-reply {
  margin-top: 12px;
  margin-left: 20px;
  padding: 10px 12px;
  border-radius: 4px;
  background: #f6f8fa;
  border-left: 3px solid var(--cadet-blue);
}
.itour-review-reply-label {
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: #666;
  margin-bottom: 6px;
}
.itour-review-reply-body {
  white-space: pre-wrap;
  color: #333;
  font-size: 14px;
  line-height: 1.45;
}
/* Превью (3 карточки): текст гостя — max 3 строки + затухание (font-size задан у .itour-review-text). Ответ компании скрыт в JS. */
.itour-review-card.itour-review-card--preview .itour-review-text.itour-review-text--snippet {
  line-height: 1.45;
  max-height: calc(1.45em * 3);
  min-height: 0;
  overflow: hidden;
  position: relative;
  word-break: break-word;
  box-sizing: border-box;
}
.itour-review-card.itour-review-card--preview .itour-review-text.itour-review-text--snippet.itour-review-text--faded::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1.45em;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0), #fff);
  pointer-events: none;
}
.itour-reviews-see-all {
  margin-top: 14px;
}
.itour-reviews-modal-list {
  display: grid;
  gap: 14px;
}
.itour-review-message {
  margin-top: 10px;
  font-size: 14px;
  min-height: 1.4em;
}
.itour-review-message--ok { color: #1a7f37; }
.itour-review-message--err { color: #c5221f; }

#itourReviewForm .itour-review-rating-picker {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  margin-top: 10px;
}

#itourReviewForm .itour-review-rating-field {
  position: relative;
  padding-top: 34px;
}

#itourReviewForm .itour-review-rating-field .form-label.form-label--static {
  position: absolute;
  top: 18px;
  margin-bottom: 0;
  line-height: 1;
  pointer-events: none;
}
/* Кнопки <button>: глобально color:inherit — задаём цвет с высокой специфичностью + fill для WebKit */
#itourReviewForm .itour-review-rating-picker button.itour-review-rating-btn {
  border: none;
  padding: 0 2px;
  margin: 0;
  background: transparent;
  cursor: pointer;
  line-height: 0;
  color: #b8b8b8;
  -webkit-text-fill-color: #b8b8b8;
  transition: color 0.15s ease, -webkit-text-fill-color 0.15s ease;
}

#itourReviewForm .itour-review-rating-picker button.itour-review-rating-btn svg {
  display: block;
  width: 20px;
  height: 20px;
  fill: currentColor;
}

#itourReviewForm .itour-review-rating-picker button.itour-review-rating-btn.is-on {
  color: #e6b800;
  -webkit-text-fill-color: #e6b800;
}
#itourReviewForm .itour-review-rating-picker button.itour-review-rating-btn:focus {
  outline: none;
}
#itourReviewForm .itour-review-rating-picker button.itour-review-rating-btn:focus-visible {
  outline: 2px solid var(--cadet-blue);
  outline-offset: 2px;
}

@media screen and (max-width: 767px) {
  .itour-reviews-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}

.grid-excursion-description {
  grid-column-gap: 60px;
  grid-template-rows: auto;
  grid-template-columns: 1fr 1fr;
  align-items: start;
  margin-top: 40px;
  padding-left: 10px;
}
.wrapper-dropdown { width: 100%; padding-bottom: 15px; display: flex; position: relative; }
.wrapper-dropdown .dropdown { width: 100%; margin-left: 50px; display: block; position: static; }
.wrapper-dropdown .dropdown-toggle {
  width: 100%;
  padding: 8px 10px 8px 0;
  border: 0;
  background: transparent;
  position: static;
  display: flex;
  align-items: flex-start;
}
/* Аккордеон экскурсии: видимость только через height+overflow (не display). Базовая .dropdown-list { display:none } не применяется из-за специфичности. */
.wrapper-dropdown .dropdown-list {
  border-bottom: 1px solid var(--dark-grey);
  background-color: transparent;
  display: block;
  position: static;
  overflow: hidden;
  height: 0;
  min-height: 0;
}
.wrapper-dropdown .dropdown-list.is-fully-open { overflow: visible; }
.text-block-drop-excursion { text-transform: uppercase; font-size: 16px; font-weight: 600; }
.wrapper-dropdown .text-block-drop-excursion.list { color: #333; text-transform: none; margin-top: 0; margin-bottom: 5px; padding-left: 0; }
.wrapper-dropdown .icon-drop {
  background-color: var(--cadet-blue);
  border-radius: 3px;
  justify-content: center;
  align-items: center;
  width: 30px;
  height: 30px;
  display: flex;
  position: absolute;
  inset: 8px auto auto 0%;
  transition: height 0.3s ease;
}
.wrapper-dropdown .dropdown.is-open .icon-drop {
  height: 36px;
}
.wrapper-dropdown .icon-drop::before,
.wrapper-dropdown .icon-drop::after {
  content: "";
  background-color: #fff;
  border-radius: 1px;
  position: absolute;
}
.wrapper-dropdown .icon-drop::before {
  width: 12px;
  height: 2px;
}
.wrapper-dropdown .icon-drop::after {
  width: 2px;
  height: 12px;
  transform-origin: center;
  transition: transform 0.3s ease;
}
.wrapper-dropdown .dropdown.is-open .icon-drop::after {
  transform: scaleY(0);
}
.wrapper-dropdown .program-day + .program-day {
  margin-top: 12px;
}
.wrapper-dropdown .program-day .list > li {
  margin-bottom: 10px;
  line-height: 140%;
}
.wrapper-dropdown .program-day .list > li:last-child {
  margin-bottom: 0;
}
.wrapper-dropdown .box-dropdown > .paragraf:last-child {
  margin-bottom: 0;
}
.wrapper-dropdown .box-dropdown { padding-top: 8px; padding-bottom: 8px; }
/* Блок «Как заказать экскурсию» */
.box-how {
  align-items: center;
  display: flex;
  margin: 0;
  font-size: inherit;
  font-weight: inherit;
  color: inherit;
  line-height: inherit;
}
.wrapper-animation-how {
  justify-content: flex-end;
  width: 90px;
  display: flex;
  position: relative;
}
.green-block-how {
  background-color: var(--cadet-blue);
  color: #f5f5f5;
  border-radius: 4px;
  justify-content: flex-end;
  width: 65px;
  padding-top: 5px;
  padding-bottom: 5px;
  padding-right: 10px;
  font-weight: 500;
  display: flex;
  transition: width 0.35s ease;
}
.box-how:hover .green-block-how {
  width: 80px;
}
.green-block-how.cancel {
  width: 90px;
}
.box-how:hover .green-block-how.cancel {
  width: 95px;
}
.wrapper-text-order-excursion {
  border-bottom: 1px solid var(--dark-grey);
  flex: 1;
  align-items: center;
  margin-bottom: -7px;
  margin-left: 5px;
  padding-bottom: 5px;
}
.box-contacts {
  margin-top: 10px;
  display: flex;
}
.icon-done {
  flex-shrink: 0;
  color: var(--cadet-blue);
  margin-top: -5px;
  margin-right: 10px;
}
.text-span-phone-order {
  white-space: nowrap;
  font-weight: 500;
}
a.text-span-phone-order {
  color: inherit;
  text-decoration: none;
}
a.text-span-phone-order:hover {
  text-decoration: underline;
}
.bbx-button {
  justify-content: center;
  align-items: center;
  margin-bottom: 20px;
  display: flex;
}
.grid-same-tours {
  grid-column-gap: 20px;
  grid-template-rows: auto;
  grid-template-columns: minmax(auto, 30%) minmax(auto, 70%);
}
.block-text-same {
  display: flex;
  flex-direction: column;
}

/* Заголовок блока «Похожие экскурсии» (страница и модалка) */
.left-block-same-tour .block-text-same .text-price-header,
.modal-wrapper-same-tours .block-text-same.modal .text-price-header {
  color: #333;
  line-height: 140%;
}
.left-block-same-tour .paragraf.no-margin {
  font-family: inherit;
  font-size: 15px;
  font-weight: 400;
  color: #333;
  line-height: 140%;
  margin-bottom: 0;
}

.left-block-same-tour { z-index: 2; width: auto; position: relative; }
.right-block-same-tour { width: auto; max-width: 100%; padding-bottom: 0; position: relative; min-width: 0; box-sizing: border-box; }
.grid-same-tours .image-tabs-placeholder {
  display: block;
  width: 100%;
  min-height: 200px;
  background-color: #9e9e9e;
  border-radius: 4px;
}
.grid-same-tours .image-tabs {
  border-radius: 4px;
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  min-height: 0;
  aspect-ratio: 600 / 338;
}
/* Базовые стили ссылки-карточки (табы на главной и карусель «Похожие экскурсии»; в карусели дополняется в slider-same-tours.css) */
.link-tabs-excursion { text-decoration: none; display: block; position: relative; }
.html-embed-modal-window {
  color: #898989;
  justify-content: center;
  align-items: center;
  display: flex;
}
.html-embed-modal-window:hover {
  color: var(--cadet-blue);
}

/* Кнопка сетки между стрелками — открывает модалку «Похожие» */
.link-same-tours {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
  color: inherit;
  cursor: pointer;
  font: inherit;
  appearance: none;
}
/* Позиция hover-тултипа; внешний вид — .itour-tip-skin */
.link-same-tours .pop-up-same-tours {
  position: absolute;
  left: 50%;
  bottom: calc(100% + 8px);
  transform: translateX(-50%);
  white-space: nowrap;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s, visibility 0.2s;
  pointer-events: none;
  z-index: 10050;
}
.link-same-tours:hover .pop-up-same-tours {
  opacity: 1;
  visibility: visible;
}

/* Полноэкранные модалки: общий оверлей (зазор от краёв, safe-area, скролл фона) */
.modal-overlay {
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  width: 100%;
  height: 100%;
  min-height: 100vh;
  min-height: 100dvh;
  position: fixed;
  inset: 0;
  overflow-x: hidden;
  overflow-y: auto;
  box-sizing: border-box;
  padding: max(20px, calc(env(safe-area-inset-top, 0px) + 12px)) max(16px, env(safe-area-inset-right, 0px)) max(24px, calc(env(safe-area-inset-bottom, 0px) + 12px)) max(16px, env(safe-area-inset-left, 0px));
}

/* Модалка «Похожие экскурсии» (иконка сетки в слайдере); открытие — класс .is-open на оверлее */
.modal-wrapper-same-tours {
  z-index: 999;
  -webkit-backdrop-filter: blur(5px);
  backdrop-filter: blur(5px);
  background-color: rgba(51, 51, 51, 0.8);
  display: none;
  opacity: 0;
  transition: opacity 0.2s ease;
}

.modal-wrapper-same-tours.is-open {
  display: flex;
  opacity: 1;
}

/* Окно модалки: единая ширина/высота для заказа, отзыва и «похожие экскурсии» */
.modal-wrapper-order-tour .modal-window,
.modal-wrapper-same-tours .modal-window {
  margin: auto;
  flex-shrink: 0;
  max-width: calc(100vw - 32px);
  width: 80%;
  border-radius: 4px;
  height: calc(100vh - 48px);
  height: calc(100dvh - 48px);
  max-height: calc(100dvh - 48px);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

/* Тело полноэкранных модалок: скролл только здесь (заказ, отзыв, похожие экскурсии) */
.modal-wrapper-order-tour .modal-window-body,
.modal-wrapper-same-tours .modal-window-body {
  flex: 1;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.modal-wrapper-same-tours .modal-window {
  background-color: #f5f5f5;
}

.modal-wrapper-same-tours .modal-window-body {
  padding: 20px;
}

.block-text-same.modal {
  flex-direction: column;
  display: flex;
}

.wrapper-box { margin-top: 20px; }
.grid-step-box {
  grid-column-gap: 20px;
  grid-row-gap: 16px;
  grid-template-rows: auto;
  grid-template-columns: 1fr 1fr 1fr;
  display: grid;
}
.wrapper-step { border-radius: 6px; flex-direction: column; justify-content: center; align-items: flex-start; width: 100%; height: 100%; display: flex; position: relative; }
.wrapper-step.second { align-items: flex-end; }
.skew-box {
  z-index: -1;
  background-color: #f2f2f2;
  border-radius: 6px;
  width: 40%;
  height: 100%;
  display: flex;
  position: absolute;
  inset: 0% 0% 0% auto;
  transform: skew(-12deg);
}
.skew-box.second { inset: 0% auto 0% 0%; }
.wrapper-step-box {
  z-index: 1;
  background-color: #f2f2f2;
  border-radius: 6px;
  flex: 1;
  justify-content: flex-start;
  align-items: flex-start;
  flex-direction: column;
  width: 90%;
  height: 100%;
  padding: 10px 20px;
  display: flex;
  text-align: left;
}
.wrapper-step-box.step-box--final { background-color: var(--cadet-blue); flex-direction: row; align-items: flex-start; width: 100%; padding: 20px; text-align: left; color: #fff; }

/* Шаг 1: текст слева, а кнопка "скачать бланк" по центру */
.wrapper-step-box .main-button {
  align-self: center;
}
.wrapper-step-box.step-box--final .paragraf.white { color: #fff; }

/* Иконки (SVG с fill="currentColor") в синем шаге делаем белыми */
.wrapper-step-box.step-box--final svg {
  color: #fff;
}

/* Отступ и защита от сжатия для иконки в финальном шаге */
.wrapper-step-box.step-box--final > svg {
  margin-right: 14px;
  flex-shrink: 0;
}
.foter-wite-background { background-color: #fff; justify-content: center; align-items: flex-end; height: 180px; display: flex; overflow: hidden; }
.footer-background-2 {
  box-shadow: 0 -4px 10px 4px var(--white-smoke-2);
  background-color: #ededed;
  flex: 1;
  justify-content: flex-start;
  align-items: flex-end;
  height: 100px;
  padding-bottom: 10px;
  padding-left: 3%;
  display: flex;
  position: relative;
  overflow: visible;
}
/* Модалка заказа экскурсии + отзыв; открытие — класс .is-open на оверлее */
.modal-wrapper-order-tour {
  z-index: 100;
  background-color: rgba(0,0,0,.5);
  display: none;
}

.modal-wrapper-order-tour.is-open {
  display: flex;
}

.modal-wrapper-order-tour .modal-window {
  background-color: var(--white-smoke);
  padding: 0;
  position: relative;
}

.modal-wrapper-order-tour .modal-window-body {
  padding: 20px 20px 25px;
}

/* Шапка модалок: один класс и один набор стилей для заказа, отзыва и «похожие» */
.modal-window .modal-window-header {
  position: static;
  inset: auto;
  flex-shrink: 0;
  z-index: 4;
  border-bottom: 1px solid var(--dark-grey);
  background-color: #eee;
  border-radius: 4px 4px 0 0;
  justify-content: space-between;
  align-items: center;
  padding: 12px 20px;
  display: flex;
}
.select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

/* Модалки «Заказать экскурсию» и «Отзыв»: класс .itour-modal-float-form на <form>; звёзды — #itourReviewForm ниже */
.itour-modal-float-form .itour-order-form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  grid-template-rows: auto;
  grid-column-gap: 24px;
  grid-row-gap: 4px;
  align-items: start;
  margin-top: 25px;
}

.itour-modal-float-form .form-field {
  position: relative;
  margin: 0;
  padding-bottom: 20px;
  min-width: 0;
}

.itour-modal-float-form .itour-order-total {
  display: flex;
  flex-direction: column;
  align-self: stretch;
  min-height: 100%;
  padding-top: 16px;
  font-size: 14px;
  line-height: 1.4;
  color: #666;
}

.itour-modal-float-form .itour-order-total-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 8px;
}

.itour-modal-float-form .itour-order-total-value {
  color: var(--cadet-blue);
  font-weight: 600;
}

.itour-modal-float-form .itour-order-total .itour-order-submit {
  margin-top: auto;
}

.itour-modal-float-form .form-field--phone {
  min-width: 0;
}

.itour-modal-float-form .form-field--full {
  grid-column: 1 / -1;
}

.itour-modal-float-form .form-field--message-wide {
  grid-column: span 2;
}

/* Как taxi.local: плавающий лейбл + нижняя линия */
.itour-modal-float-form .form-label {
  position: absolute;
  left: 10px;
  top: 18px;
  color: #666;
  font-size: 15px;
  line-height: 1;
  font-style: normal;
  font-weight: 500;
  pointer-events: none;
  user-select: none;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: calc(100% - 20px);
  transition: all 0.2s ease;
}

.itour-modal-float-form .form-label.label-raised {
  left: 0;
  top: calc(-0.7rem + 12px);
  font-size: 0.75rem;
  color: #666;
  max-width: 100%;
}

.itour-modal-float-form .form-label.form-label--static {
  position: static;
  left: auto;
  top: auto;
  display: block;
  margin-bottom: 6px;
  pointer-events: auto;
  font-size: 15px;
  max-width: none;
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
}

.itour-modal-float-form .form-input {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  border: none;
  border-bottom: 1px solid var(--color);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  padding: 16px 10px 4px 10px;
  line-height: 1;
  font-size: 1rem;
  font-family: inherit;
  color: #333;
  margin: 0;
  transition: border-color 0.3s ease;
}

.itour-modal-float-form .form-input.form-input--textarea {
  min-height: 100px;
  max-width: 100%;
  resize: vertical;
}

.itour-modal-float-form .form-input:focus {
  border-bottom-color: var(--cadet-blue);
  outline: none;
}

.itour-phone-field-wrapper {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  width: 100%;
}

.itour-phone-field-main {
  position: relative;
  flex: 1 1 auto;
  min-width: 0;
}

.itour-modal-float-form .form-input:-webkit-autofill,
.itour-modal-float-form .form-input:-webkit-autofill:hover,
.itour-modal-float-form .form-input:-webkit-autofill:focus,
.itour-modal-float-form .form-input:-webkit-autofill:active {
  -webkit-box-shadow: 0 0 0 30px transparent inset !important;
  -webkit-text-fill-color: #333 !important;
  background-color: transparent !important;
  transition: background-color 5000s ease-in-out 0s;
}

.itour-modal-float-form .form-input.label-lowered {
  caret-color: transparent !important;
  cursor: default !important;
}

.itour-modal-float-form .form-input.label-lowered:focus {
  caret-color: transparent !important;
}

.itour-modal-float-form .form-input:not(.label-lowered):focus {
  caret-color: auto;
  cursor: text;
}

.itour-modal-float-form .form-field:has(.form-label.label-raised) .form-input:not(.label-lowered) {
  caret-color: auto;
  cursor: text;
}

.itour-modal-float-form .itour-order-calendar-field .form-input {
  padding-right: 35px;
}

.itour-modal-float-form .itour-order-calendar-field .dropdown-arrow {
  position: absolute;
  right: 12px;
  top: 19px;
  width: 14px;
  height: 14px;
  pointer-events: none;
  z-index: 10;
  transition: transform 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color);
}

.itour-modal-float-form .itour-order-calendar-field .dropdown-arrow svg {
  width: 100%;
  height: 100%;
  display: block;
}

.itour-modal-float-form .itour-order-calendar-field.active .dropdown-arrow {
  transform: rotate(180deg);
}

.itour-modal-float-form .form-field--order-select {
  padding-bottom: 12px;
}

/* Модальные формы: без иконок менеджеров паролей (LastPass, Chrome и др.) */
.modal-wrapper-order-tour .itour-modal-float-form .form-input {
  background-image: none !important;
}

.modal-wrapper-order-tour .itour-modal-float-form .form-input::after {
  content: none !important;
}

.modal-wrapper-order-tour .itour-modal-float-form .form-field iframe,
.modal-wrapper-order-tour .itour-modal-float-form .form-field div[id*="lastpass"],
.modal-wrapper-order-tour .itour-modal-float-form .form-field div[class*="lastpass"],
.modal-wrapper-order-tour .itour-modal-float-form .form-field div[class*="__lpform"],
.modal-wrapper-order-tour .itour-modal-float-form .form-field span[id*="lastpass"],
.modal-wrapper-order-tour .itour-modal-float-form .form-field span[class*="lastpass"],
.modal-wrapper-order-tour .itour-modal-float-form .form-field span[class*="__lpform"],
.modal-wrapper-order-tour .itour-modal-float-form .form-field [data-lastpass-root],
.modal-wrapper-order-tour .itour-modal-float-form .form-field [data-lastpass-icon-root],
.modal-wrapper-order-tour .itour-modal-float-form .form-field [id*="__lpform"],
.modal-wrapper-order-tour .itour-modal-float-form .form-field [class*="__lpform"],
.modal-wrapper-order-tour .itour-modal-float-form .form-field [class*="lastpass-icon"],
.modal-wrapper-order-tour .itour-modal-float-form .form-field [class*="lastpass-wrapper"] {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  position: absolute !important;
  left: -9999px !important;
  width: 0 !important;
  height: 0 !important;
  pointer-events: none !important;
}

.modal-wrapper-order-tour .itour-modal-float-form input::-webkit-credentials-auto-fill-button,
.modal-wrapper-order-tour .itour-modal-float-form input::-webkit-strong-password-auto-fill-button {
  visibility: hidden !important;
  display: none !important;
  pointer-events: none !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
}

/* Единый визуал подсказок (форма, латиница, hover у «похожие») — токены :root */
.itour-tip-skin {
  box-sizing: border-box;
  max-width: min(var(--itour-tip-max-width), calc(100vw - 16px));
  padding: var(--itour-tip-padding);
  background: var(--bg-white);
  color: var(--itour-tip-text);
  font-size: var(--itour-tip-font-size);
  line-height: var(--itour-tip-line-height);
  font-family: var(--itour-tip-font-family);
  border: 1px solid var(--border-color);
  border-radius: var(--itour-tip-radius);
  box-shadow: var(--form-dropdown-shadow);
}

/* JS-тултипы: слой поверх карусели/календаря */
.itour-latin-ascii-tip {
  display: none;
  position: fixed;
  z-index: 10060;
  pointer-events: none;
}

.itour-latin-ascii-tip.is-visible {
  display: block;
}

.messengers-dropdown-wrapper {
  position: relative;
  flex: 0 0 auto;
  align-self: flex-end;
  margin-bottom: 0;
}

.itour-phone-field-wrapper .messengers-dropdown-trigger {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  width: 50px;
  height: 30px;
  padding: 0;
  border: 1px solid var(--color);
  border-radius: 4px;
  background: transparent;
  color: var(--color);
  cursor: pointer;
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
  flex-shrink: 0;
}

.itour-phone-field-wrapper .messengers-dropdown-trigger:hover,
.messengers-dropdown-wrapper.active .messengers-dropdown-trigger,
.messengers-dropdown-wrapper.open .messengers-dropdown-trigger {
  border-color: var(--cadet-blue);
}

.messengers-dropdown-icon {
  width: 12px;
  height: 12px;
  color: currentColor;
  flex-shrink: 0;
}

.messengers-dropdown-arrow {
  width: 12px;
  height: 12px;
  color: currentColor;
  transition: transform 0.2s ease;
  flex-shrink: 0;
}

.messengers-dropdown-wrapper.active .messengers-dropdown-arrow,
.messengers-dropdown-wrapper.open .messengers-dropdown-arrow {
  transform: rotate(180deg);
}

.messengers-dropdown-menu {
  position: fixed;
  min-width: 180px;
  background: var(--bg-white);
  border: var(--form-dropdown-border);
  border-radius: var(--form-dropdown-radius);
  box-shadow: var(--form-dropdown-shadow);
  overflow: hidden;
  opacity: 0;
  transform: translateY(-10px);
  transition: opacity 0.2s ease, transform 0.2s ease;
  z-index: 1050;
}

.messengers-dropdown-menu.show {
  opacity: 1;
  transform: translateY(0);
}

.messengers-dropdown-title {
  font-size: 13px;
  line-height: 1.4;
  color: #666;
  padding: 8px 12px 6px;
}

.messenger-option {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--border-color);
  color: var(--color);
  background: transparent;
}

.messenger-option:last-child {
  border-bottom: 0;
}

.messenger-option:hover {
  background: transparent;
}

.messenger-option input {
  -webkit-appearance: none;
  appearance: none;
  margin: 0;
  width: 14px;
  height: 14px;
  border: 1px solid var(--color);
  border-radius: 3px;
  background: transparent;
  cursor: pointer;
  position: relative;
  flex-shrink: 0;
  transition: border-color 0.2s ease, background-color 0.2s ease;
}

.messenger-option input::after {
  content: "";
  position: absolute;
  left: 3px;
  top: 0;
  width: 4px;
  height: 7px;
  border: solid var(--bg-white);
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
  opacity: 0;
}

.messenger-option input:checked {
  background: var(--cadet-blue);
  border-color: var(--cadet-blue);
}

.messenger-option input:checked::after {
  opacity: 1;
}

.messenger-option input:hover,
.messenger-option input:focus,
.messenger-option input:active {
  background-color: transparent;
  border-color: var(--color);
  outline: none;
}

.messenger-option input:checked:hover,
.messenger-option input:checked:focus,
.messenger-option input:checked:active {
  background: var(--cadet-blue);
  border-color: var(--cadet-blue);
}

.messenger-option label {
  cursor: pointer;
}

/* Дропдаун «Кол-во человек» в модалке заказа (паттерн taxi: total-pax-dropdown) */
.total-pax-dropdown {
  position: fixed;
  background: var(--bg-white);
  border: var(--form-dropdown-border);
  border-radius: var(--form-dropdown-radius);
  box-shadow: var(--form-dropdown-shadow);
  padding: var(--form-dropdown-padding);
  z-index: 1050;
  opacity: 0;
  transform: translateY(-10px);
  transition: opacity 0.2s ease, transform 0.2s ease;
  min-width: 280px;
  box-sizing: border-box;
  overflow-x: hidden;
}

.total-pax-dropdown.show {
  opacity: 1;
  transform: translateY(0);
}

.itour-order-people-single {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-width: 0;
}

.itour-order-people-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  flex: 1 1 auto;
  min-width: 0;
}

.itour-order-people-title {
  font-size: 14px;
  font-weight: 500;
  color: var(--color);
}

.itour-order-people-note {
  margin-top: 2px;
  font-size: 11px;
  line-height: 1.3;
  color: var(--text-color-secondary);
}

.itour-pax-counter-strip {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  overflow: hidden;
  min-width: 110px;
  height: 28px;
  background: #f8f9fa;
  border: 1px solid var(--border-color);
  border-radius: 4px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

.itour-pax-count {
  width: 38px;
  height: 26px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  font-size: 15px;
  font-weight: 400;
  color: #333;
}

.total-pax-dropdown .counter-btn {
  width: 36px;
  height: 28px;
  background: #fff;
  border: none;
  outline: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background-color 0.2s ease;
  user-select: none;
  padding: 0;
}

.total-pax-dropdown .counter-btn:hover {
  background: rgba(42, 61, 81, 0.06);
}

.total-pax-dropdown .counter-btn.minus {
  border-right: 1px solid var(--border-color);
}

.total-pax-dropdown .counter-btn.plus {
  border-left: 1px solid var(--border-color);
}

.total-pax-dropdown .calendar-actions {
  display: flex;
  gap: 8px;
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid var(--border-color);
}

.total-pax-dropdown .calendar-btn {
  flex: 1;
  padding: 4px 12px;
  border: 1px solid var(--cadet-blue);
  background: var(--bg-white);
  border-radius: 4px;
  cursor: pointer;
  font-size: 13px;
  font-weight: 400;
  color: var(--cadet-blue);
  transition: background-color 0.2s ease, border-color 0.2s ease;
}

.total-pax-dropdown .calendar-btn:hover {
  background: rgba(73, 147, 156, 0.08);
}

.total-pax-dropdown .itour-order-people-single + .itour-order-people-single {
  margin-top: 12px;
}

.itour-modal-float-form .itour-order-submit {
  grid-column: 1 / -1;
  margin-top: 4px;
  justify-self: start;
}

@media screen and (max-width: 767px) {
  .itour-modal-float-form .itour-order-form-grid {
    grid-template-columns: 1fr;
  }

  .itour-modal-float-form .form-field--message-wide {
    grid-column: auto;
  }

  .itour-phone-field-wrapper {
    gap: 8px;
  }
}

.heading-h1.name-excursion { color: #fff; margin-top: 15px; margin-bottom: 15px; font-size: 24px; transform: skew(12deg); }
.wrapper-dropdown .list { color: #333; margin-bottom: 0; padding-left: 30px; list-style-type: square; }
.wrapper-dropdown .list > li::marker {
  color: var(--cadet-blue);
}
.modal-wrapper-same-tours .grid-wrapper-excursion {
  justify-content: center;
  align-items: center;
  display: flex;
}
.image-tabs { width: 100%; object-fit: cover; }
img.image-tabs {
  height: auto;
  display: block;
  min-height: 0;
}
.image-tabs-placeholder,
.image-tabs:not(img) {
  min-height: 200px;
}
.image-tabs[style*="background:#c00"] { min-height: 200px; display: block; }

@media screen and (max-width: 991px) {
  .main-section .grid-excursion { grid-template-columns: minmax(auto, 100%); margin-top: 0; }
  .main-section .grid-excursion-description { grid-column-gap: 40px; grid-template-columns: minmax(200px, auto) minmax(200px, auto); }
  .section-excursion { height: 50vw; }
}
@media screen and (min-width: 768px) and (max-width: 991px) {
  .main-section .right-wrapper-excursion {
    display: grid;
    grid-template-columns: minmax(240px, max-content) 1fr;
    column-gap: 18px;
    row-gap: 0;
    align-items: start;
  }
  .main-section .right-wrapper-excursion .text-price-header,
  .main-section .right-wrapper-excursion .dividing-line {
    grid-column: 1 / -1;
  }
  .main-section .right-wrapper-excursion .grid-price {
    grid-column: 1;
    grid-row: 3;
  }
  .main-section .right-wrapper-excursion .itour-currency-side {
    grid-column: 2;
    grid-row: 3;
    display: flex;
    flex-direction: column;
    gap: 6px;
    align-self: end;
    margin-bottom: 20px;
    padding-left: 0;
  }
  .main-section .right-wrapper-excursion #itour-currency-note {
    padding-left: 0;
  }
  .main-section .right-wrapper-excursion .itour-currency-row {
    margin-top: 0;
    padding-left: 0;
  }
}
@media screen and (max-width: 767px) {
  .heading-h1.name-excursion { font-size: 17px; }
  .section-excursion { height: 60vw; }
  .name-of-excursion { padding-left: 47px; bottom: 25%; }
  .skew-box { transform: none; }
  /* Второй декоративный блок шага не нужен на планшетах и мобильных */
  .skew-box.second {
    display: none;
  }
  .wrapper-step-box {
    width: 100%;
  }
  .main-section .grid-excursion { grid-template-columns: 1fr; margin-top: 0; }
  .main-section .grid-excursion-description { grid-template-columns: 1fr; }
  .main-section .grid-same-tours { grid-template-rows: auto auto; grid-template-columns: minmax(auto, auto); }
  .main-section .grid-step-box { grid-template-columns: 1fr; }
  .main-section .block-text-same { flex-direction: column; }
  .main-section .left-block-same-tour { flex-direction: column; width: 100%; }
  .main-section .right-block-same-tour { padding-bottom: 30px; }
}

/* 480–767px: первый шаг — «Скачайте бланк-заявку» и кнопка в одну строку; ниже 480px — колонка */
@media screen and (min-width: 480px) and (max-width: 767px) {
  .wrapper-step:not(.second) > .wrapper-step-box {
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }
  .wrapper-step:not(.second) > .wrapper-step-box > .paragraf {
    margin-bottom: 0;
    flex: 1;
    min-width: 0;
  }
  .wrapper-step:not(.second) > .wrapper-step-box > .main-button {
    align-self: center;
    flex-shrink: 0;
  }
}

@media screen and (max-width: 479px) {
  .section-excursion { height: 80vw; }
  /* На узких экранах глобально .nav-box { position: relative } уводит шапку в поток;
     на герое экскурсии оставляем абсолютное позиционирование сверху — как до брейкпоинта, маска прижата к низу секции */
  body.page-excursion .section-excursion .nav-box {
    position: absolute;
    inset: 0 0 auto;
    left: 0;
    right: 0;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }
  .main-section .grid-price { grid-template-columns: auto auto; justify-content: start; width: fit-content; max-width: 100%; }
  .modal-wrapper-order-tour .modal-window,
  .modal-wrapper-same-tours .modal-window {
    width: 90%;
    padding-left: 5px;
    padding-right: 5px;
  }
}

/* Подсказки отелей (форма заказа в модалке); список может быть в document.body */
.hotel-autocomplete-dropdown {
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  margin-top: 2px;
  max-height: 220px;
  overflow-y: auto;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
  z-index: 10060;
  list-style: none;
  padding: 0;
  margin: 2px 0 0 0;
  display: none;
}

.hotel-autocomplete-dropdown.is-visible {
  display: block;
}

.hotel-autocomplete-dropdown li {
  padding: 8px 12px;
  cursor: pointer;
  color: #333;
  font-size: 15px;
  border-bottom: 1px solid #eee;
}

.hotel-autocomplete-dropdown li:last-child {
  border-bottom: none;
}

.hotel-autocomplete-dropdown li:hover,
.hotel-autocomplete-dropdown li:focus {
  background: #f5f5f5;
  outline: none;
}

/* ===== ПОИСК ЭКСКУРСИЙ (главная + /search) ===== */
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.catalog-search {
  width: 100%;
  max-width: none;
  margin: 0 0 24px;
  padding: 0;
}

.catalog-search--home {
  margin-bottom: 28px;
}

.catalog-search--home .catalog-search__form {
  flex-direction: column;
  align-items: stretch;
  gap: 12px;
}

.catalog-search--home .catalog-search__intro {
  flex: none;
  width: 100%;
}

.catalog-search--home .catalog-search__field {
  width: 100%;
  max-width: 280px;
  min-width: 0;
  margin-left: auto;
}

.catalog-search--page {
  margin-bottom: 20px;
}

.catalog-search__intro {
  flex: 1 1 0;
  min-width: 0;
  margin: 0;
  text-align: left;
}

.catalog-search__form {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 12px 20px;
}

.catalog-search__field {
  position: relative;
  flex: 0 0 auto;
  width: 25vw;
  max-width: 100%;
  min-width: 200px;
  align-self: flex-start;
}

.catalog-search__input {
  display: block;
  width: 100%;
  box-sizing: border-box;
  border: none;
  border-bottom: 1px solid var(--color, #2a3d51);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  padding: 2px 24px 2px 10px;
  line-height: 1.35;
  font-size: 15px;
  font-family: inherit;
  color: #333;
  margin: 0;
  transition: border-color 0.3s ease;
  appearance: none;
  -webkit-appearance: none;
}

.catalog-search__input::placeholder {
  color: #999;
  opacity: 1;
  font-style: italic;
  transition: opacity 0.2s ease;
}

.catalog-search__input:focus::placeholder {
  opacity: 0;
}

.catalog-search__input:focus {
  border-bottom-color: var(--cadet-blue, #49939c);
  outline: none;
}

.catalog-search__input::-webkit-search-cancel-button {
  -webkit-appearance: none;
  appearance: none;
}

.catalog-search__icon {
  position: absolute;
  top: 50%;
  right: 10px;
  width: 14px;
  height: 14px;
  padding: 0;
  margin: 0;
  border: none;
  background: transparent;
  color: var(--color, #2a3d51);
  cursor: pointer;
  line-height: 0;
  transform: translateY(-50%);
  transition: color 0.3s ease;
}

.catalog-search__icon svg {
  display: block;
  width: 100%;
  height: 100%;
}

.catalog-search__icon:hover,
.catalog-search__icon:focus-visible {
  color: var(--cadet-blue, #49939c);
  outline: none;
}

.catalog-search__field:focus-within .catalog-search__icon {
  color: var(--cadet-blue, #49939c);
}

.itour-search-suggest {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 4px);
  z-index: 10040;
  margin: 0;
  padding: 6px 0;
  list-style: none;
  background: #fff;
  border: 1px solid var(--border-color, #ddd);
  border-radius: var(--form-dropdown-radius, 4px);
  box-shadow: var(--form-dropdown-shadow, 0 4px 16px rgba(0, 0, 0, 0.12));
  max-height: 280px;
  overflow-y: auto;
}

.itour-search-suggest__item {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 10px 14px;
  cursor: pointer;
}

.itour-search-suggest__item:hover,
.itour-search-suggest__item.is-active {
  background: #f5f8f8;
}

.itour-search-suggest__title {
  font-size: 14px;
  line-height: 1.35;
  color: #333;
}

.itour-search-suggest__meta {
  font-size: 12px;
  line-height: 1.3;
  color: #777;
}

.page-search-block {
  padding-top: 24px;
}

.page-search__heading {
  margin-bottom: 20px;
}

.search-results__lead {
  margin-top: 8px;
}

.search-results__list {
  margin: 16px 0 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid #e8e8e8;
}

.search-results__item {
  border-bottom: 1px solid #e8e8e8;
}

.search-results__link {
  display: block;
  padding: 14px 4px;
  color: inherit;
  text-decoration: none;
}

.search-results__link:hover .search-results__title {
  color: var(--cadet-blue, #49939c);
}

.search-results__title {
  display: block;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.35;
  color: #333;
}

.search-results__meta {
  display: block;
  margin-top: 4px;
  font-size: 13px;
  color: var(--cadet-blue, #49939c);
}

.search-results__sub {
  display: block;
  margin-top: 2px;
  font-size: 13px;
  color: #777;
}

.search-results__back {
  margin-top: 24px;
}

@media screen and (max-width: 767px) {
  .catalog-search__form {
    flex-direction: column;
    gap: 12px;
  }

  .catalog-search__field {
    width: 100%;
    min-width: 0;
  }
}

/* Главная: full-screen hero + glass picker */
body.page-home-picker {
  overflow-x: hidden;
}

.home-hero-fullscreen {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100svh;
  min-height: 100dvh;
  padding: 20px 16px;
  overflow: hidden;
}

.home-hero-fullscreen__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 50%;
  z-index: 0;
  pointer-events: none;
}

.home-hero-fullscreen__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(8, 18, 28, 0.22);
  pointer-events: none;
}

.home-hero-fullscreen__content {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 700px;
  max-height: calc(100svh - 40px);
  max-height: calc(100dvh - 40px);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.home-hero-picker__panel {
  padding: clamp(28px, 5vw, 40px) clamp(22px, 4vw, 36px) clamp(24px, 4vw, 32px);
  border-radius: 20px;
  border: 1px solid rgba(255, 255, 255, 0.28);
  background: rgba(255, 255, 255, 0.14);
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.28);
  text-align: center;
}

body.page-home-picker .destination-picker-section {
  padding: 0;
}

body.page-home-picker .destination-picker__title {
  margin: 0 0 14px;
  text-align: center;
  font-size: clamp(24px, 4.5vw, 34px);
  line-height: 1.2;
  font-weight: 700;
  color: #fff;
}

body.page-home-picker .destination-picker__lead {
  max-width: 560px;
  margin: 0 auto 24px;
  text-align: center;
  color: rgba(255, 255, 255, 0.9);
  line-height: 1.55;
}

body.page-home-picker .destination-picker__step-title {
  margin: 0 0 14px;
  text-align: center;
  font-size: 18px;
  color: #fff;
}

body.page-home-picker .destination-picker__back {
  color: #fff;
  margin-bottom: 8px;
}

body.page-home-picker .destination-picker__grid--countries {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

body.page-home-picker .destination-picker__card--country,
body.page-home-picker .destination-picker__card--city {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 14px;
  min-height: 0;
  padding: 16px 18px;
  border: 0;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.12);
  text-align: left;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}

body.page-home-picker .destination-picker__card--country:hover,
body.page-home-picker .destination-picker__card--country:focus-visible,
body.page-home-picker .destination-picker__card--city:hover,
body.page-home-picker .destination-picker__card--city:focus-visible {
  border-color: transparent;
  box-shadow: 0 14px 32px rgba(0, 0, 0, 0.18);
  transform: translateY(-1px);
}

body.page-home-picker .destination-picker__card-icon {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: linear-gradient(135deg, #f6a623 0%, #e85d4c 100%);
  color: #fff;
}

body.page-home-picker .destination-picker__card-body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  min-width: 0;
}

body.page-home-picker .destination-picker__card-title {
  font-size: 17px;
  font-weight: 700;
  color: #222;
}

body.page-home-picker .destination-picker__card-meta {
  font-size: 14px;
  color: #777;
}

.home-hero-features {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px 10px;
  margin: 28px 0 0;
  padding: 0;
  list-style: none;
}

.home-hero-features__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  text-align: center;
}

.home-hero-features__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255, 255, 255, 0.95);
}

.home-hero-features__label {
  font-size: 11px;
  line-height: 1.35;
  color: rgba(255, 255, 255, 0.88);
}

@media screen and (max-width: 640px) {
  body.page-home-picker .destination-picker__grid--countries {
    grid-template-columns: 1fr;
  }

  .home-hero-features {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px 12px;
  }
}

@media screen and (min-width: 992px) {
  .home-hero-fullscreen__content {
    max-width: 720px;
  }
}

.destination-picker-section {
  padding-top: 8px;
}

.destination-picker__title {
  text-align: center;
}

.destination-picker__lead {
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.destination-picker__step-title {
  margin: 24px 0 16px;
  text-align: center;
  font-size: 20px;
}

.destination-picker__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.destination-picker__item {
  margin: 0;
}

.destination-picker__card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 8px;
  width: 100%;
  min-height: 120px;
  padding: 20px 22px;
  border: 1px solid #e2e2e2;
  border-radius: 12px;
  background: #fff;
  color: inherit;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.destination-picker__card:hover,
.destination-picker__card:focus-visible {
  border-color: var(--cadet-blue, #49939c);
  box-shadow: 0 8px 24px rgba(73, 147, 156, 0.12);
  outline: none;
}

.destination-picker__card-title {
  font-size: 18px;
  font-weight: 600;
  line-height: 1.3;
  color: #333;
}

.destination-picker__card-meta {
  font-size: 14px;
  line-height: 1.35;
  color: #777;
}

.destination-picker__back {
  margin-top: 8px;
  padding: 0;
  border: 0;
  background: none;
  color: var(--cadet-blue, #49939c);
  font: inherit;
  cursor: pointer;
}

.destination-picker__back:hover,
.destination-picker__back:focus-visible {
  text-decoration: underline;
  outline: none;
}

/* Hub-страница курорта */
.city-hub-breadcrumb {
  margin: 0 0 12px;
  font-size: 14px;
  line-height: 1.4;
  color: #777;
}

.city-hub-breadcrumb a {
  color: var(--cadet-blue, #49939c);
  text-decoration: none;
}

.city-hub-breadcrumb a:hover {
  text-decoration: underline;
}

@media screen and (max-width: 767px) {
  .city-hub-breadcrumb {
    margin-top: 35px;
  }
}

.menu-section--no-hero {
  min-height: 220px;
}

.menu-section--no-hero .slide-block.hero-banner {
  position: relative;
}

/* Переключатель курортов в верхней полоске шапки (над логотипом) */
.city-switcher {
  position: relative;
  flex: 0 0 auto;
  margin: 0;
}

.city-switcher__toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  list-style: none;
  cursor: pointer;
  padding: 4px 10px 4px 12px;
  border: 1px solid rgba(255, 255, 255, 0.55);
  border-radius: 4px;
  color: #fff;
  background-color: transparent;
  font-size: 13px;
  line-height: 1.2;
  user-select: none;
  transition: background-color 0.4s ease, color 0.4s ease, border-color 0.4s ease;
}

.city-switcher__toggle .dropdown-arrow {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
}

.city-switcher__toggle .dropdown-arrow svg {
  display: block;
  transition: transform 0.4s ease;
}

.city-switcher[open] .city-switcher__toggle .dropdown-arrow svg {
  transform: rotate(180deg);
}

.city-switcher__toggle::-webkit-details-marker {
  display: none;
}

.city-switcher[open] .city-switcher__toggle,
.city-switcher__toggle:hover {
  background-color: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.85);
}

.city-switcher__list {
  position: absolute;
  z-index: 30;
  top: calc(100% + 8px);
  left: 0;
  min-width: 180px;
  margin: 0;
  padding: 8px 0;
  list-style: none;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.14);
}

.city-switcher__list a {
  display: block;
  padding: 8px 16px;
  color: #333;
  text-decoration: none;
  font-size: 14px;
}

.city-switcher__list a:hover,
.city-switcher__list a[aria-current="page"] {
  background: #f3f8f9;
  color: var(--cadet-blue, #49939c);
}

