/* ==========================================================================
 * А-тур — стили сайта поверх платформенного theme.css.
 * Токены переопределены под фирменную палитру (синий, солнечный жёлтый,
 * коралловый акцент), шрифт Nunito подключён локально (assets/fonts).
 * ========================================================================== */

@font-face { font-family: "Nunito Variable"; font-style: normal; font-display: swap; font-weight: 200 1000;
  src: url(/assets/fonts/nunito-cyrillic-ext-wght-normal.woff2) format("woff2-variations");
  unicode-range: U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F; }
@font-face { font-family: "Nunito Variable"; font-style: normal; font-display: swap; font-weight: 200 1000;
  src: url(/assets/fonts/nunito-cyrillic-wght-normal.woff2) format("woff2-variations");
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family: "Nunito Variable"; font-style: normal; font-display: swap; font-weight: 200 1000;
  src: url(/assets/fonts/nunito-latin-ext-wght-normal.woff2) format("woff2-variations");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "Nunito Variable"; font-style: normal; font-display: swap; font-weight: 200 1000;
  src: url(/assets/fonts/nunito-latin-wght-normal.woff2) format("woff2-variations");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

:root {
  color-scheme: light;
  --font-sans: "Nunito Variable", "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-display: var(--font-sans);
  --brand: #3559ff;  --brand-2: #5b80ff;  --accent: #f95a04;
  --grad: linear-gradient(135deg, #3559ff, #5b80ff);
  --bg: #fffdf8;  --surface: #ffffff;  --surface-2: #f6f7fb;
  --text: #1f2352;  --muted: #6a6f97;  --border: #dcdeea;
  --ring: rgba(53, 89, 255, .35);
  --container: 1280px;
  /* Расширенная палитра А-тур */
  --brand-50: #eef3ff; --brand-100: #dbe5ff; --brand-200: #bccdff; --brand-300: #8facff; --brand-600: #1f3ff0; --brand-700: #1a31c7;
  --sun: #ffd93d; --sun-100: #fff4b8; --sun-200: #ffe97a; --sun-400: #ffc812; --sun-600: #cc8f00;
  --coral: #f95a04; --coral-100: #ffe1d1; --coral-600: #d84800; --coral-700: #b03a00;
  --mint: #16b862; --mint-50: #edfdf3; --mint-100: #d3fae1; --mint-300: #6fe6a2; --mint-700: #0f7540;
  --berry: #f0338a; --berry-100: #ffe0ef; --berry-300: #ff93c4; --berry-600: #d11a6f;
  --ink-900: #14163a; --ink-800: #1f2352; --ink-700: #33386b; --ink-600: #4a4f7d; --ink-500: #6a6f97; --ink-400: #8f93b3; --ink-300: #b8bbd1; --ink-200: #dcdeea; --ink-100: #eef0f6; --ink-50: #f6f7fb;
  --sand: #fbf7ef;
  --shadow-card: 0 4px 16px -6px rgba(20, 22, 58, .12), 0 1px 3px rgba(20, 22, 58, .06);
  --shadow-soft: 0 10px 30px -12px rgba(20, 22, 58, .18);
  --shadow-pop: 0 20px 45px -15px rgba(53, 89, 255, .35);
  --r-xl: 1rem; --r-2xl: 1.25rem; --r-3xl: 1.75rem; --r-4xl: 2.25rem;
  --header-h: 72px;
  /* Токены, которые переопределяют строгий стиль и тёмная тема (блок в конце файла).
     В ярком стиле значения совпадают с прежними захардкоженными. */
  --card: #fff; --glass: rgba(255, 255, 255, .9);
  --r-pill: 999px; --r-round: 999px; --r-md: .75rem; --r-sm: .5rem;
  --danger: var(--coral); --danger-text: var(--coral-600); --danger-bg: var(--coral-100); --danger-fg: var(--coral-700);
}

html { scroll-behavior: smooth; -webkit-tap-highlight-color: transparent; }
body { background: var(--bg); color: var(--ink-800); font-feature-settings: "ss01", "cv11"; font-size: 1rem; line-height: 1.55; display: flex; flex-direction: column; min-height: 100vh; }
.site-main { flex: 1; }
h1, h2, h3, h4 { color: var(--ink-900); font-weight: 800; letter-spacing: -.01em; text-wrap: balance; }
h2 { font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2rem); }
h3 { font-size: 1.125rem; }
a { color: var(--brand-700); text-decoration: none; }
a:hover { text-decoration: none; }
::selection { background: var(--sun-200); color: var(--ink-900); }
:focus-visible { outline: none; box-shadow: 0 0 0 4px rgba(143, 172, 255, .6); border-radius: 8px; }
img { display: block; }
button { font: inherit; color: inherit; }
b, strong { font-weight: 800; }

/* --- Утилиты ------------------------------------------------------------ */
.container-site { width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: 1rem; }
@media (min-width: 640px) { .container-site { padding-inline: 1.5rem; } }
@media (min-width: 1024px) { .container-site { padding-inline: 2rem; } }
.section-pad { padding-block: 3rem; }
.section-sand { background: var(--sand); }
.muted { color: var(--ink-500); }
.muted-light { color: var(--ink-400); }
.text-sm { font-size: .9rem; }
.center { text-align: center; justify-content: center; }
.mt-2 { margin-top: .5rem; } .mt-4 { margin-top: 1rem; } .mt-5 { margin-top: 1.25rem; } .mt-6 { margin-top: 1.5rem; } .mt-8 { margin-top: 2rem; }
.mt-10 { margin-top: 2.5rem; } .mt-12 { margin-top: 3rem; } .mt-14 { margin-top: 3.5rem; }
.mb-4 { margin-bottom: 1rem; } .mb-5 { margin-bottom: 1.25rem; } .mb-6 { margin-bottom: 1.5rem; }
.stack-2 > * + * { margin-top: .5rem; } .stack-3 > * + * { margin-top: .75rem; } .stack-4 > * + * { margin-top: 1rem; } .stack-10 > * + * { margin-top: 2.5rem; }
.cluster { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.grid-2 { display: grid; gap: 1rem; }
.grid-3 { display: grid; gap: .75rem; }
@media (min-width: 640px) { .grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .span-2 { grid-column: span 2; } }
.link-strong { font-weight: 800; color: var(--brand-600); }
.link-strong:hover { text-decoration: underline; }
.link-mint { display: inline-flex; align-items: center; gap: .5rem; margin-top: 1rem; font-size: .9rem; font-weight: 800; color: var(--mint-700); }
.link-mint:hover { text-decoration: underline; }
.plain-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.ic { width: 1rem; height: 1rem; flex: none; display: inline-block; vertical-align: -.15em; }
.ic-sm { width: .9rem; height: .9rem; } .ic-xs { width: .8rem; height: .8rem; }
.ic.fill { fill: currentColor; }
.ic.coral { color: var(--coral); } .ic.mint { color: var(--mint); } .ic.brand { color: var(--brand); } .ic.berry { color: var(--berry); } .ic.sun { color: var(--sun-400); }
.blob { pointer-events: none; position: absolute; border-radius: var(--r-round); filter: blur(48px); }
.stretched::after { content: ""; position: absolute; inset: 0; }
.hp { position: absolute; left: -9999px; top: 0; width: 0; height: 0; overflow: hidden; }

/* --- Панели и карточки ---------------------------------------------------- */
.panel { background: var(--card); border: 0; border-radius: var(--r-3xl); box-shadow: var(--shadow-card); padding: 1.25rem; }
.panel-lg { padding: 1.5rem; }
@media (min-width: 640px) { .panel-lg { padding: 2rem; } }
.panel-label { display: flex; align-items: center; gap: .5rem; margin-bottom: .75rem; font-size: .8rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--ink-500); }
.empty-card { background: var(--card); border-radius: var(--r-3xl); box-shadow: var(--shadow-card); padding: 2.5rem; text-align: center; color: var(--ink-600); }
.empty-icon { width: 4rem; height: 4rem; margin: 0 auto .75rem; border-radius: var(--r-round); background: var(--sun-100); font-size: 2.25rem; line-height: 4rem; }

/* --- Кнопки ---------------------------------------------------------------- */
.btn-primary, .btn-accent, .btn-sun, .btn-outline, .btn-ghost, .btn-white {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  padding: .75rem 1.25rem; border-radius: var(--r-pill); border: 0; cursor: pointer;
  font-size: .9rem; font-weight: 800; line-height: 1.25; text-decoration: none; white-space: nowrap;
  transition: transform .2s, background-color .2s, box-shadow .2s, border-color .2s;
}
.btn-primary { background: var(--brand); color: #fff; box-shadow: var(--shadow-pop); }
.btn-primary:hover { background: var(--brand-600); transform: translateY(-2px); }
.btn-accent { background: var(--coral); color: #fff; }
.btn-accent:hover { background: var(--coral-600); transform: translateY(-2px); }
.btn-sun { background: var(--sun); color: var(--ink-900); }
.btn-sun:hover { background: var(--sun-400); transform: translateY(-2px); }
.btn-outline { background: var(--card); color: var(--brand-700); border: 2px solid var(--brand-200); padding: calc(.75rem - 2px) calc(1.25rem - 2px); }
.btn-outline:hover { border-color: var(--brand-300); background: var(--brand-50); }
.btn-ghost { background: transparent; color: var(--brand-700); }
.btn-ghost:hover { background: var(--brand-50); }
.btn-white { background: #fff; color: var(--brand-700); }
.btn-white:hover { background: var(--brand-50); }
.btn-primary:active, .btn-accent:active, .btn-sun:active { transform: scale(.98); }
.btn-primary[disabled], .btn-accent[disabled], .btn-sun[disabled] { opacity: .6; pointer-events: none; }
.btn-block { width: 100%; }
.btn-sm { padding: .5rem .9rem; font-size: .75rem; }
.btn-xs { padding: .45rem .8rem; font-size: .75rem; }
.btn-outline.btn-sm { padding: calc(.5rem - 2px) calc(.9rem - 2px); }
.btn-outline.btn-xs { padding: calc(.45rem - 2px) calc(.8rem - 2px); }
.btn-print { color: var(--ink-500); font-size: .75rem; }

/* --- Плашки ------------------------------------------------------------------- */
.chip { display: inline-flex; align-items: center; gap: .25rem; padding: .25rem .75rem; border-radius: var(--r-pill); font-size: .75rem; font-weight: 800; line-height: 1.25rem; text-transform: none; letter-spacing: 0; }
.chip-sun { background: var(--sun-100); color: var(--sun-600); }
.chip-brand { background: var(--brand-50); color: var(--brand-700); }
.chip-mint { background: var(--mint-100); color: var(--mint-700); }
.chip-coral { background: var(--coral-100); color: var(--coral-700); }
.chip-berry { background: var(--berry-100); color: var(--berry-600); }
.chip-ink { background: var(--ink-100); color: var(--ink-700); }
.chip-white { background: var(--card); color: var(--ink-700); box-shadow: var(--shadow-card); }
a.chip-white:hover { background: var(--brand-50); color: var(--brand-700); }
.chips-row { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.5rem; }
.stars { display: inline-flex; gap: 1px; color: var(--ink-200); }
.stars .ic.on { color: var(--sun-400); fill: var(--sun-400); }

/* --- Заголовки секций ------------------------------------------------------ */
.section-head { margin-bottom: 1.5rem; }
@media (min-width: 640px) { .section-head { margin-bottom: 2rem; } }
.section-head.no-gap { margin-bottom: 0; }
.section-title { font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2.25rem); font-weight: 800; color: var(--ink-900); margin: 0; }
.section-title .accent { color: var(--brand); }
.section-title-sm { font-size: 1.5rem; }
.section-sub { margin: .5rem 0 0; max-width: 42rem; color: var(--ink-500); font-size: 1.05rem; }
.section-row { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; }

/* --- Верхняя полоска и шапка ------------------------------------------------ */
.topbar { display: none; background: linear-gradient(90deg, var(--brand-50), #fff 55%, var(--sun-100)); border-bottom: 1px solid var(--ink-100); color: var(--ink-800); }
@media (min-width: 1024px) { .topbar { display: block; } }
.topbar-in { display: flex; align-items: center; justify-content: space-between; gap: 1rem; height: 2.75rem; }
.topbar-tag { display: inline-flex; align-items: center; gap: .4rem; font-size: .8rem; font-weight: 800; letter-spacing: .01em; color: var(--brand-700); }
.topbar-tag .ic { color: var(--sun-600); }
.topbar-nav { display: flex; align-items: center; gap: .25rem; }
.topbar-nav a { position: relative; display: inline-flex; align-items: center; padding: .35rem .85rem; border-radius: var(--r-pill); font-size: .875rem; font-weight: 800; color: var(--ink-800); transition: background-color .15s, color .15s; }
.topbar-nav a:hover { background: var(--card); color: var(--brand-700); box-shadow: var(--shadow-card); }
.topbar-nav a.is-active { background: var(--brand); color: #fff; box-shadow: 0 6px 16px -6px rgba(53, 89, 255, .8); }
.site-header { position: sticky; top: 0; z-index: 40; background: var(--glass); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); box-shadow: 0 1px 0 0 rgba(20, 22, 58, .06); }
.header-in { display: flex; align-items: center; gap: .25rem; height: var(--header-h); }
@media (min-width: 640px) { .header-in { height: 80px; } }
.logo { display: inline-flex; flex: none; align-items: center; }
.logo img { height: 2rem; width: auto; object-fit: contain; }
@media (min-width: 640px) and (max-width: 1023px) { .logo img { height: 2.25rem; } }
/* На 1024–1279 меню, кнопка и кружок звонка занимают всю ширину — логотип чуть меньше, отступы у́же. */
@media (min-width: 1024px) and (max-width: 1279px) { .logo img { height: 1.75rem; } .header-request { padding-inline: 1rem; } }
@media (min-width: 1280px) { .logo img { height: 2.25rem; } }
/* Меню прижато вправо, к кнопке заявки; свободное место остаётся между логотипом и меню. */
.main-nav { display: none; flex: 1; align-items: center; justify-content: flex-end; gap: 0; }
@media (min-width: 1024px) { .main-nav { display: flex; } }
@media (min-width: 1280px) { .main-nav { margin-right: .5rem; } }
.nav-item { position: relative; }
.nav-item > a { display: inline-flex; align-items: center; gap: .2rem; padding: .5rem .3rem; border-radius: var(--r-pill); font-size: 13px; font-weight: 800; color: var(--ink-800); white-space: nowrap; }
@media (min-width: 1280px) { .nav-item > a { padding: .5rem .65rem; font-size: .875rem; } }
.nav-item > a:hover, .nav-item:focus-within > a { background: var(--brand-50); color: var(--brand-700); }
.nav-caret { color: var(--ink-400); transition: transform .2s; }
.nav-item:hover .nav-caret, .nav-item:focus-within .nav-caret { transform: rotate(180deg); }
.dropdown { position: absolute; left: 0; top: 100%; z-index: 50; padding-top: .5rem; visibility: hidden; opacity: 0; transition: opacity .15s, visibility .15s; }
.nav-item:hover .dropdown, .nav-item:focus-within .dropdown { visibility: visible; opacity: 1; }
.dropdown ul { list-style: none; margin: 0; padding: .5rem; min-width: 16rem; background: var(--card); border-radius: var(--r-2xl); box-shadow: var(--shadow-soft); border: 1px solid var(--ink-100); }
.dropdown a { display: block; padding: .5rem .75rem; border-radius: var(--r-md); font-size: .875rem; font-weight: 600; color: var(--ink-700); }
.dropdown a:hover { background: var(--brand-50); color: var(--brand-700); }
.header-actions { display: flex; align-items: center; gap: .5rem; margin-left: auto; }
.icon-btn { display: inline-flex; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; border-radius: var(--r-pill); border: 0; background: var(--brand-50); color: var(--brand-700); cursor: pointer; }
.icon-btn:hover { background: var(--brand-100); }
.icon-btn .ic { width: 1.25rem; height: 1.25rem; }
/* Мобильный вид (пока показан бургер): круглая кнопка звонка рядом с бургером. */
.icon-btn-call { background: var(--coral); color: #fff; }
@media (min-width: 1024px) { .icon-btn-call { display: none; } }
/* Справа от кнопки заявки — кружок с трубкой без цифр: ссылка tel:, номер в подсказке. */
.header-phone { display: none; align-items: center; justify-content: center; flex: none; width: 2.5rem; height: 2.5rem; border-radius: var(--r-round); background: var(--brand-50); color: var(--brand); transition: background-color .15s, color .15s; }
@media (min-width: 1024px) { .header-phone { display: inline-flex; } }
.header-phone .ic { width: 1.15rem; height: 1.15rem; }
.header-phone:hover { background: var(--brand); color: #fff; }
.header-request { display: none; }
@media (min-width: 768px) { .header-request { display: inline-flex; } }
.burger { display: inline-flex; }
@media (min-width: 1024px) { .burger { display: none; } }

/* Мобильное меню */
.mobile-menu { position: fixed; inset: 0; z-index: 50; display: flex; }
.mobile-backdrop { position: absolute; inset: 0; border: 0; background: rgba(20, 22, 58, .5); backdrop-filter: blur(2px); cursor: pointer; }
.mobile-drawer { position: relative; margin-left: auto; display: flex; flex-direction: column; width: 88%; max-width: 24rem; height: 100%; overflow-y: auto; background: var(--card); box-shadow: var(--shadow-soft); animation: pop .3s cubic-bezier(.2, .9, .3, 1.4); }
.mobile-head { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.25rem; border-bottom: 1px solid var(--ink-100); font-size: 1.125rem; font-weight: 800; color: var(--ink-900); }
.mobile-nav { flex: 1; padding: .75rem; }
.mobile-nav ul { list-style: none; margin: 0; padding: 0; }
.mobile-row { display: flex; align-items: center; }
.mobile-row > a { flex: 1; padding: .75rem; border-radius: var(--r-md); font-size: 1rem; font-weight: 800; color: var(--ink-900); }
.mobile-row > a:hover { background: var(--brand-50); }
.mobile-expand { padding: .75rem; border: 0; background: none; border-radius: var(--r-md); color: var(--ink-500); cursor: pointer; }
.mobile-expand .ic { width: 1.25rem; height: 1.25rem; transition: transform .2s; }
.mobile-expand[aria-expanded="true"] .ic { transform: rotate(180deg); }
.mobile-sub { margin: 0 0 .5rem .75rem !important; padding-left: .75rem !important; border-left: 2px solid var(--brand-100); }
.mobile-sub a { display: block; padding: .5rem .75rem; border-radius: var(--r-sm); font-size: .875rem; font-weight: 600; color: var(--ink-700); }
.mobile-pages { margin-top: 1rem !important; padding-top: 1rem !important; border-top: 1px solid var(--ink-100); display: grid; grid-template-columns: 1fr 1fr; gap: .25rem; }
.mobile-pages a { display: block; padding: .5rem .75rem; border-radius: var(--r-sm); font-size: .875rem; font-weight: 600; color: var(--ink-600); }
.mobile-pages a:hover, .mobile-sub a:hover { background: var(--brand-50); }
.mobile-foot { padding: 1rem; border-top: 1px solid var(--ink-100); }
body.menu-open { overflow: hidden; }

/* --- Герой ---------------------------------------------------------------------- */
.hero { position: relative; overflow: hidden; background-image: radial-gradient(rgba(53, 89, 255, .12) 1px, transparent 1px); background-size: 22px 22px; }
.blob-h1 { left: -6rem; top: 2.5rem; width: 18rem; height: 18rem; background: rgba(255, 233, 122, .7); }
.blob-h2 { right: -4rem; top: 10rem; width: 20rem; height: 20rem; background: rgba(255, 224, 239, .8); }
.blob-h3 { bottom: 0; left: 33%; width: 16rem; height: 16rem; background: var(--mint-100); }
.hero-grid { position: relative; display: grid; gap: 2.5rem; align-items: center; padding-block: 2.5rem; }
@media (min-width: 1024px) { .hero-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); padding-block: 4rem; } }
.hero-badge { display: inline-flex; align-items: center; gap: .5rem; margin-bottom: 1rem; padding: .375rem 1rem; border-radius: var(--r-pill); background: var(--card); box-shadow: var(--shadow-card); font-size: .75rem; font-weight: 800; color: var(--brand-700); }
.hero-h1 { font-size: clamp(2.25rem, 1.5rem + 3vw, 3.6rem); line-height: 1.05; font-weight: 900; margin: 0; }
.hero-h1 .hl { position: relative; display: inline-block; color: var(--brand); }
.hl-line { position: absolute; left: 0; bottom: -.25rem; width: 100%; height: .75rem; color: var(--sun-400); }
.hero-lead { margin: 1.25rem 0 0; max-width: 36rem; font-size: 1.125rem; color: var(--ink-600); }
.hero-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.5rem; }
.hero-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; max-width: 32rem; margin: 2rem 0 0; }
.hero-stats dt { font-size: 1.5rem; font-weight: 900; color: var(--ink-900); }
@media (min-width: 640px) { .hero-stats dt { font-size: 1.875rem; } }
.hero-stats dd { margin: 0; font-size: .75rem; font-weight: 600; color: var(--ink-500); }
@media (min-width: 640px) { .hero-stats dd { font-size: .875rem; } }
.hero-slider { position: relative; overflow: hidden; border-radius: var(--r-4xl); box-shadow: var(--shadow-soft); aspect-ratio: 4 / 3; background: var(--brand-50); isolation: isolate; }
@media (min-width: 1024px) { .hero-slider { aspect-ratio: 5 / 4; } }
.hero-slide { position: absolute; inset: 0; display: block; opacity: 0; transform: scale(1.06); transition: opacity .9s ease, transform 7s linear; will-change: opacity, transform; }
.hero-slide.is-active { opacity: 1; transform: scale(1); z-index: 1; }
.hero-slide img, .hit-card img { width: 100%; height: 100%; object-fit: cover; }
.hit-card img { transition: transform .7s; }
.hit-card:hover img { transform: scale(1.05); }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(to top, rgba(20, 22, 58, .55), transparent 55%); }
.hero-caption { position: absolute; left: 1rem; top: 1rem; max-width: 70%; padding: .4rem .85rem; border-radius: var(--r-pill); background: rgba(255, 255, 255, .92); font-size: .8rem; font-weight: 800; color: var(--ink-900); box-shadow: var(--shadow-card); }
.slider-nav { position: absolute; top: 50%; z-index: 3; transform: translateY(-50%); display: inline-flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; border: 0; border-radius: var(--r-pill); background: rgba(255, 255, 255, .9); color: var(--ink-800); box-shadow: var(--shadow-card); cursor: pointer; opacity: 0; transition: opacity .2s, background-color .2s; }
.slider-prev { left: .75rem; } .slider-next { right: .75rem; }
.hero-slider:hover .slider-nav, .hero-slider:focus-within .slider-nav { opacity: 1; }
.slider-nav:hover { background: #fff; }
.slider-nav .ic { width: 1.25rem; height: 1.25rem; }
.slider-dots { position: absolute; right: 1rem; bottom: 1.25rem; z-index: 3; display: flex; gap: .25rem; }
@media (max-width: 639px) { .slider-dots { right: .75rem; bottom: auto; top: .75rem; } .hero-caption { display: none; } }
.slider-dot { position: relative; width: 1.25rem; height: 1.5rem; padding: 0; border: 0; background: transparent; cursor: pointer; }
.slider-dot::before { content: ""; position: absolute; left: 50%; top: 50%; width: .6rem; height: .6rem; transform: translate(-50%, -50%); border-radius: var(--r-round); background: rgba(255, 255, 255, .55); transition: width .3s, background-color .3s; }
.slider-dot.is-on { width: 2.2rem; }
.slider-dot.is-on::before { width: 1.6rem; background: #fff; }
@media (pointer: coarse) { .slider-nav { opacity: 1; } }
.hero { padding-bottom: 3.5rem; }
/* Большой призыв вместо формы подбора: с наездом на низ героя. */
.choose-wrap { position: relative; z-index: 2; margin-top: -3.5rem; }
.choose-cta { display: flex; flex-wrap: wrap; align-items: center; gap: 1.25rem 2rem; padding: 1.5rem 1.5rem 1.5rem 1.75rem; border-radius: var(--r-4xl); background: linear-gradient(120deg, var(--brand-600), var(--brand) 55%, var(--brand-2)); color: #fff; box-shadow: var(--shadow-pop); text-decoration: none; transition: transform .2s, box-shadow .2s; }
@media (min-width: 768px) { .choose-cta { padding: 2rem 2.25rem; } }
.choose-cta:hover { transform: translateY(-3px); box-shadow: 0 28px 55px -18px rgba(53, 89, 255, .55); }
.choose-text { flex: 1 1 24rem; display: grid; gap: .5rem; }
.choose-kicker { display: inline-flex; align-items: center; gap: .4rem; font-size: .85rem; font-weight: 800; color: rgba(255, 255, 255, .85); }
.choose-title { font-size: clamp(1.5rem, 1.1rem + 1.8vw, 2.4rem); line-height: 1.1; font-weight: 900; letter-spacing: -.01em; color: #fff; }
.choose-sub { font-size: 1rem; color: rgba(255, 255, 255, .85); max-width: 40rem; }
.choose-btn { display: inline-flex; align-items: center; justify-content: center; gap: .6rem; padding: 1.1rem 2rem; border-radius: var(--r-pill); background: var(--sun); color: var(--ink-900); font-size: 1.15rem; font-weight: 900; white-space: nowrap; box-shadow: 0 12px 30px -10px rgba(0, 0, 0, .35); transition: transform .2s, background-color .2s; }
.choose-btn .ic { width: 1.25rem; height: 1.25rem; }
.choose-cta:hover .choose-btn { background: var(--sun-400); transform: translateX(4px); }
@media (max-width: 639px) { .choose-btn { width: 100%; } }
.promo-wrap { margin-top: 2rem; }
.promo-banner { position: relative; display: block; overflow: hidden; border-radius: var(--r-3xl); box-shadow: var(--shadow-soft); background: var(--brand-50); }
.promo-banner img { width: 100%; height: auto; display: block; transition: transform .7s; }
@media (max-width: 639px) { .promo-banner img { aspect-ratio: 16 / 7; object-fit: cover; object-position: left center; } }
.promo-banner:hover img { transform: scale(1.02); }
.promo-more { position: absolute; right: 1rem; bottom: 1rem; display: inline-flex; align-items: center; gap: .4rem; padding: .55rem 1rem; border-radius: var(--r-pill); background: rgba(255, 255, 255, .95); box-shadow: var(--shadow-card); font-size: .85rem; font-weight: 800; color: var(--brand-700); }
@media (max-width: 639px) { .promo-more { right: .5rem; bottom: .5rem; padding: .4rem .75rem; font-size: .75rem; } }
.promo-caption { margin: .75rem 0 0; font-size: .9rem; color: var(--ink-700); }
@keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
@keyframes pop { 0% { transform: scale(.96); opacity: 0; } 100% { transform: scale(1); opacity: 1; } }

/* --- Хиты продаж ----------------------------------------------------------------- */
.hits-grid { display: grid; gap: 1.25rem; }
@media (min-width: 640px) { .hits-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .hits-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.hit-card { position: relative; display: block; overflow: hidden; border-radius: var(--r-3xl); box-shadow: var(--shadow-card); aspect-ratio: 3 / 2; }
.hit-shade { position: absolute; inset: 0; background: linear-gradient(to top, rgba(20, 22, 58, .75), rgba(20, 22, 58, .1) 60%, transparent); }
.hit-badge { position: absolute; left: 1rem; top: 1rem; display: inline-flex; align-items: center; gap: .25rem; padding: .25rem .75rem; border-radius: var(--r-pill); background: var(--coral); font-size: .75rem; font-weight: 800; color: #fff; }
.hit-title { position: absolute; left: 1rem; right: 1rem; bottom: 1rem; font-size: 1.125rem; font-weight: 800; line-height: 1.35; color: #fff; }

/* --- Карточка тура ------------------------------------------------------------------ */
.tour-grid { display: grid; gap: 1.25rem; }
@media (min-width: 640px) { .tour-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1280px) { .tour-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .tour-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } .tour-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.tour-card { position: relative; display: flex; flex-direction: column; height: 100%; overflow: hidden; background: var(--card); border-radius: var(--r-3xl); box-shadow: var(--shadow-card); transition: transform .2s, box-shadow .2s; }
.tour-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-soft); }
.tour-card-img { position: relative; display: block; overflow: hidden; background: var(--brand-50); aspect-ratio: 4 / 3; }
.tour-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.tour-card:hover .tour-card-img img { transform: scale(1.05); }
.tour-card-badges { position: absolute; left: .75rem; top: .75rem; display: flex; flex-wrap: wrap; gap: .375rem; }
.tour-card-body { display: flex; flex: 1; flex-direction: column; padding: 1rem; }
@media (min-width: 640px) { .tour-card-body { padding: 1.25rem; } }
.tour-card-title { margin: 0; font-size: 1.125rem; font-weight: 800; line-height: 1.35; }
.tour-card-title a { color: var(--ink-900); }
.tour-card-title a:hover { color: var(--brand-700); }
.tour-card-addr { display: flex; align-items: flex-start; gap: .25rem; margin: .375rem 0 0; font-size: .75rem; font-weight: 600; color: var(--ink-500); }
.tour-card-addr span { overflow: hidden; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; }
.tour-card-short { margin: .5rem 0 0; font-size: .875rem; color: var(--ink-600); overflow: hidden; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
.tour-card-tags { display: flex; flex-wrap: wrap; gap: .375rem; margin-top: .75rem; }
.tour-card-foot { display: flex; align-items: flex-end; justify-content: space-between; gap: .75rem; margin-top: auto; padding-top: 1rem; }
.tour-card-foot .btn-xs { position: relative; z-index: 2; }
.price-label { font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: var(--ink-400); }
.price { font-size: 1.125rem; font-weight: 800; color: var(--brand-700); }
.price-muted { color: var(--ink-600); }

/* --- Карточка новости --------------------------------------------------------------- */
.post-grid { display: grid; gap: 1.25rem; }
@media (min-width: 640px) { .post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .post-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .post-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.post-card { position: relative; display: flex; flex-direction: column; height: 100%; overflow: hidden; background: var(--card); border-radius: var(--r-3xl); box-shadow: var(--shadow-card); transition: transform .2s, box-shadow .2s; }
.post-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-soft); }
.post-card-img { display: block; overflow: hidden; background: var(--brand-50); aspect-ratio: 16 / 10; }
.post-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.post-card:hover .post-card-img img { transform: scale(1.05); }
.post-card-body { display: flex; flex: 1; flex-direction: column; padding: 1.25rem; }
.post-date { display: inline-flex; align-items: center; gap: .25rem; font-size: .75rem; font-weight: 800; color: var(--ink-400); }
.post-date-lg { font-size: .875rem; color: var(--ink-500); }
.post-card-title { margin: .5rem 0 0; font-size: 1.125rem; font-weight: 800; line-height: 1.35; }
.post-card-title a { color: var(--ink-900); }
.post-card-title a:hover { color: var(--brand-700); }
.post-card-excerpt { margin: .5rem 0 0; font-size: .875rem; color: var(--ink-600); overflow: hidden; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
.post-more { margin-top: auto; padding-top: 1rem; font-size: .875rem; font-weight: 800; color: var(--brand-600); }
.post-cover { margin-top: 1.25rem; overflow: hidden; border-radius: var(--r-3xl); box-shadow: var(--shadow-card); aspect-ratio: 16 / 9; }
.post-cover img { width: 100%; height: 100%; object-fit: cover; }

/* --- CTA-баннер, «о нас», партнёры, заявка --------------------------------------------- */
.cta-wrap { padding-block: 1.5rem; }
.cta { position: relative; overflow: hidden; padding: 2rem; border-radius: var(--r-4xl); color: #fff; background: linear-gradient(90deg, var(--brand-600), var(--brand), var(--brand-2)); box-shadow: var(--shadow-pop); }
@media (min-width: 640px) { .cta { padding: 2.5rem; } }
.blob-cta1 { right: -2.5rem; top: -4rem; width: 14rem; height: 14rem; background: rgba(255, 217, 61, .4); }
.blob-cta2 { left: 25%; bottom: -5rem; width: 14rem; height: 14rem; background: rgba(255, 147, 196, .3); }
.cta-grid { position: relative; display: grid; gap: 1.5rem; align-items: center; }
@media (min-width: 768px) { .cta-grid { grid-template-columns: 2fr 1fr; } }
.cta-kicker { display: inline-flex; align-items: center; gap: .5rem; margin-bottom: .5rem; padding: .25rem .75rem; border-radius: var(--r-pill); background: rgba(255, 255, 255, .15); font-size: .75rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.cta h2 { margin: 0; color: #fff; font-size: 1.5rem; font-weight: 900; }
@media (min-width: 640px) { .cta h2 { font-size: 1.875rem; } }
.cta p { margin: .5rem 0 0; max-width: 36rem; color: rgba(255, 255, 255, .85); }
.cta-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
@media (min-width: 768px) { .cta-actions { justify-content: flex-end; } }
.features-grid { display: grid; gap: 1rem; }
@media (min-width: 640px) { .features-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .features-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.feature { display: flex; align-items: center; gap: 1rem; }
.feature p { margin: 0; font-weight: 700; color: var(--ink-800); }
.feature-icon { flex: none; width: 4rem; height: 4rem; overflow: hidden; border-radius: var(--r-2xl); background: var(--brand-50); display: flex; align-items: center; justify-content: center; }
.feature-icon img { width: 100%; height: 100%; object-fit: contain; padding: .25rem; }
.feature-icon.emoji { background: var(--sun-100); font-size: 1.875rem; }
.partners-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
@media (min-width: 640px) { .partners-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .partners-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.partner-card { display: flex; align-items: center; justify-content: center; height: 7rem; padding: 1rem; filter: grayscale(1); transition: filter .2s; }
.partner-card:hover { filter: none; }
.partner-card img { max-height: 100%; width: auto; max-width: 100%; object-fit: contain; }
.request-section { padding-bottom: 1rem; }
.request-panel { display: grid; gap: 2rem; padding: 1.5rem; }
@media (min-width: 640px) { .request-panel { padding: 2.5rem; } }
@media (min-width: 1024px) { .request-panel { grid-template-columns: 5fr 7fr; } }
.checks { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; font-size: .875rem; color: var(--ink-600); }

/* --- Отзывы --------------------------------------------------------------------------- */
.reviews-grid { display: grid; gap: 1.5rem; }
@media (min-width: 1024px) { .reviews-grid { grid-template-columns: 4fr 8fr; } }
.reviews-side { display: grid; gap: 1rem; align-content: start; }
.platform-row { display: flex; align-items: center; gap: .75rem; padding: .75rem; border-radius: var(--r-2xl); background: var(--ink-50); color: inherit; }
.platform-row:hover { background: var(--brand-50); }
.platform-logo { flex: none; width: 2.25rem; height: 2.25rem; overflow: hidden; border-radius: .5rem; background: #fff; }
.platform-logo img { width: 100%; height: 100%; object-fit: contain; padding: .25rem; }
.platform-body { flex: 1; display: flex; flex-direction: column; }
.platform-name { font-size: .875rem; font-weight: 800; color: var(--ink-900); }
.platform-rating { font-size: 1.25rem; font-weight: 900; color: var(--ink-900); }
.platform-rating .muted { font-size: .875rem; color: var(--ink-400); }
.review-details summary { cursor: pointer; list-style: none; font-size: 1rem; font-weight: 800; color: var(--brand-700); }
.review-details summary::-webkit-details-marker { display: none; }
.reviews-cards { display: grid; gap: 1rem; }
@media (min-width: 640px) { .reviews-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.review-card { display: flex; flex-direction: column; }
.review-head { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.review-author { font-weight: 800; color: var(--ink-900); }
.review-text { flex: 1; margin: .5rem 0 0; font-size: .875rem; color: var(--ink-700); }
.review-foot { display: flex; align-items: center; justify-content: space-between; margin-top: .75rem; font-size: .75rem; color: var(--ink-400); }
.review-foot a { display: inline-flex; align-items: center; gap: .25rem; font-weight: 800; color: var(--brand-600); }
.reviews-compact .reviews-grid { gap: 1.25rem; }
.stars-pick { display: flex; gap: .25rem; }
.star-btn { padding: .125rem; border: 0; background: none; border-radius: .375rem; color: var(--ink-200); cursor: pointer; }
.star-btn .ic { width: 2rem; height: 2rem; }
.star-btn.on { color: var(--sun-400); }
.star-btn.on .ic { fill: var(--sun-400); }

/* --- Карта -------------------------------------------------------------------------------- */
.map-grid { display: grid; gap: 1.25rem; }
@media (min-width: 1024px) { .map-grid { grid-template-columns: 4fr 8fr; } }
.map-row { display: flex; gap: .75rem; }
.map-row > .ic { margin-top: .125rem; width: 1.25rem; height: 1.25rem; }
.map-row .ic.map-pin { color: var(--coral); } .map-row .ic.phone { color: var(--brand); } .map-row .ic.mail { color: var(--mint); } .map-row .ic.clock { color: var(--sun-600); }
.map-label { font-size: .75rem; font-weight: 800; text-transform: uppercase; color: var(--ink-400); }
.map-value, .map-value a { font-weight: 700; color: var(--ink-900); }
.map-value a:hover { color: var(--brand-700); }
.map-frame { min-height: 20rem; overflow: hidden; border-radius: var(--r-3xl); box-shadow: var(--shadow-card); }
@media (min-width: 1024px) { .map-frame { min-height: 24rem; } }
.map-frame iframe { display: block; width: 100%; height: 100%; min-height: 20rem; border: 0; }

/* --- Внутренние страницы --------------------------------------------------------------- */
.page-top { padding-block: 1.5rem; }
@media (min-width: 640px) { .page-top { padding-block: 2rem; } }
.page-h1 { font-size: clamp(1.9rem, 1.4rem + 2vw, 3rem); font-weight: 900; line-height: 1.1; margin: 0; }
.page-lead { margin: .75rem 0 0; max-width: 48rem; font-size: 1.125rem; color: var(--ink-600); }
.page-lead.center { margin-inline: auto; }
.page-cols, .page-wide, .page-narrow { margin-top: 2rem; }
.page-cols { display: grid; gap: 2rem; }
@media (min-width: 1024px) { .page-cols { grid-template-columns: 8fr 4fr; } .page-narrow { max-width: 56rem; } }
.page-cols .page-main { min-width: 0; }
.page-aside { align-self: start; }
@media (min-width: 1024px) { .page-aside { position: sticky; top: 6rem; } }
.crumbs { margin-bottom: 1.25rem; font-size: .875rem; color: var(--ink-500); }
.crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: .375rem; }
.crumbs li { display: flex; align-items: center; gap: .375rem; }
.crumbs a { display: inline-flex; align-items: center; gap: .25rem; font-weight: 600; color: var(--ink-600); }
.crumbs a:hover { color: var(--brand-600); }
.crumbs span[aria-current] { font-weight: 600; color: var(--ink-800); max-width: 60vw; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.crumb-sep { color: var(--ink-300); }
.help-card { position: relative; overflow: hidden; background: var(--card); border-radius: var(--r-3xl); box-shadow: var(--shadow-card); padding: 1.5rem; }
.blob-sun { right: -2rem; top: -2rem; width: 7rem; height: 7rem; background: rgba(255, 233, 122, .7); }
.blob-sun-sm { right: -2.5rem; top: -2.5rem; width: 10rem; height: 10rem; background: rgba(255, 233, 122, .6); }
.help-in { position: relative; }
.help-title { font-size: 1.25rem; font-weight: 800; color: var(--ink-900); }
.help-in p { margin: .5rem 0 0; font-size: .875rem; color: var(--ink-600); }
.help-phone { display: flex; align-items: center; gap: .5rem; margin-top: 1rem; font-size: 1.5rem; font-weight: 900; color: var(--ink-900); }
.help-phone:hover { color: var(--brand-700); }
.help-phone .ic { width: 1.25rem; height: 1.25rem; }
.help-hours { margin-top: .25rem; font-size: .75rem; color: var(--ink-500); }
.help-actions { display: flex; flex-direction: column; gap: .5rem; margin-top: 1rem; }
.list-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: 1rem; }
.list-head-end { justify-content: flex-end; }
.list-count { font-size: .875rem; font-weight: 800; color: var(--ink-600); }
.list-count b { color: var(--ink-900); }
.list-count .muted { margin-left: .5rem; font-weight: 600; }
.sort-form { display: inline-flex; align-items: center; gap: .5rem; }
.sort-label { display: inline-flex; align-items: center; gap: .5rem; font-size: .875rem; font-weight: 600; color: var(--ink-600); }
.sort-label > span { display: none; }
@media (min-width: 640px) { .sort-label > span { display: inline; } }
html.js .sort-submit { display: none; }
.select-sm { width: auto !important; padding: .5rem 2.25rem .5rem .85rem !important; font-size: .875rem !important; }
.pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .5rem; margin-top: 2.5rem; }
.pg-btn { min-width: 2.75rem; height: 2.75rem; padding-inline: .75rem; }
.pg-gap { padding-inline: .25rem; color: var(--ink-400); }
.center-block { padding-block: 4rem; text-align: center; }
.big-emoji { width: 7rem; height: 7rem; margin: 0 auto 1.5rem; border-radius: var(--r-round); font-size: 3.75rem; line-height: 7rem; }
.big-emoji.sun { background: var(--sun-100); } .big-emoji.mint { background: var(--mint-100); }
.h2-icon { display: flex; align-items: center; gap: .5rem; font-size: 1.25rem; }
.req-list { margin: 1rem 0 0; font-size: .875rem; }
.req-list > div { display: grid; gap: .25rem; padding: .625rem 0; border-bottom: 1px solid var(--ink-100); }
@media (min-width: 640px) { .req-list > div { grid-template-columns: 2fr 3fr; } }
.req-list dt { font-weight: 700; color: var(--ink-500); }
.req-list dd { margin: 0; font-weight: 600; color: var(--ink-900); }
.contacts-grid { margin-top: 1.5rem; }
.perk { display: flex; gap: 1rem; }
.perk-icon { flex: none; display: flex; align-items: center; justify-content: center; width: 3rem; height: 3rem; border-radius: var(--r-2xl); background: var(--brand-50); color: var(--brand-600); }
.perk-icon .ic { width: 1.5rem; height: 1.5rem; }
.perk-title { font-weight: 800; color: var(--ink-900); }
.perk p { margin: .25rem 0 0; font-size: .875rem; }
.emoji-lg { font-size: 1.875rem; }
.search-form { display: flex; flex-direction: column; gap: .75rem; padding: 1rem; }
@media (min-width: 640px) { .search-form { flex-direction: row; } .search-form .btn-primary { width: auto; } }
.pay-head { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin-bottom: 1.5rem; }
.pay-cards { display: flex; gap: .5rem; }
.pay-cards img { height: 1.75rem; width: auto; padding: .125rem; border-radius: .25rem; background: #fff; box-shadow: 0 0 0 1px var(--ink-100); }

/* --- Каталог: фильтры слева, список справа -------------------------------------------------- */
.catalog { display: grid; gap: 1.25rem; margin-top: 1.5rem; }
@media (min-width: 1024px) { .catalog { grid-template-columns: 300px minmax(0, 1fr); gap: 2rem; margin-top: 2rem; align-items: start; } }
.catalog-side { display: none; }
.catalog-side.is-open { display: grid; gap: 1rem; }
@media (min-width: 1024px) { .catalog-side { display: grid; gap: 1rem; align-self: start; } .catalog-side-toggle { display: none; } }
.catalog-side-toggle { justify-self: start; }
.catalog-main { min-width: 0; }
.side-filters { display: grid; grid-template-columns: minmax(0, 1fr); gap: .75rem; padding: 1.25rem; }
.side-title { display: flex; align-items: center; gap: .5rem; font-size: 1.05rem; font-weight: 800; color: var(--ink-900); }
.side-title .ic { width: 1.25rem; height: 1.25rem; }
.side-reset { margin-left: auto; font-size: .75rem; font-weight: 700; color: var(--ink-400); }
.side-reset:hover { color: var(--coral-700); text-decoration: underline; }
.side-field { display: block; min-width: 0; }
.side-field .label { margin-bottom: .3rem; font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; color: var(--ink-500); }
.side-submit { margin-top: .25rem; }
html.js .side-submit { display: none; }
.side-q { position: relative; }
.suggest { position: absolute; left: 0; right: 0; top: calc(100% + .375rem); z-index: 30; padding: .5rem; border-radius: var(--r-2xl); background: var(--card); box-shadow: var(--shadow-soft); border: 1px solid var(--ink-100); animation: pop .2s cubic-bezier(.2, .9, .3, 1.2); }
.suggest a { display: flex; align-items: center; gap: .6rem; padding: .5rem .65rem; border-radius: var(--r-md); font-size: .875rem; font-weight: 600; color: var(--ink-800); }
.suggest a:hover, .suggest a.is-active { background: var(--brand-50); color: var(--brand-700); }
.suggest a img { width: 2.75rem; height: 2rem; flex: none; border-radius: var(--r-sm); object-fit: cover; background: var(--brand-50); }
.suggest a span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.suggest .suggest-all { justify-content: center; margin-top: .25rem; border-top: 1px solid var(--ink-100); border-radius: 0; padding-top: .6rem; color: var(--brand-600); font-weight: 800; }
.suggest .suggest-empty { padding: .6rem .65rem; font-size: .875rem; color: var(--ink-500); }
.side-hints { padding: 1rem 1.25rem; border-radius: var(--r-3xl); background: var(--sand); }
.side-hints .panel-label { margin-bottom: .6rem; }
.chip-hint { gap: .4rem; padding: .3rem .4rem .3rem .75rem; background: var(--card); color: var(--ink-700); box-shadow: var(--shadow-card); transition: background-color .15s, color .15s, transform .15s; }
.chip-hint b { display: inline-flex; align-items: center; justify-content: center; min-width: 1.4rem; height: 1.4rem; padding-inline: .35rem; border-radius: var(--r-pill); background: var(--brand-50); font-size: .7rem; color: var(--brand-700); }
.chip-hint:hover { background: var(--brand-50); color: var(--brand-700); transform: translateY(-1px); }
.chip-hint.is-on { background: var(--brand); color: #fff; }
.chip-hint.is-on b { background: rgba(255, 255, 255, .25); color: #fff; }
.list-tools { display: flex; align-items: center; gap: .75rem; }
.view-toggle { display: none; padding: .2rem; border-radius: var(--r-pill); background: var(--ink-100); }
@media (min-width: 640px) { .view-toggle { display: inline-flex; } }
.view-btn { display: inline-flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; border: 0; border-radius: var(--r-pill); background: transparent; color: var(--ink-500); cursor: pointer; transition: background-color .15s, color .15s; }
.view-btn .ic { width: 1.05rem; height: 1.05rem; }
.view-btn:hover { color: var(--ink-900); }
.view-btn.is-on { background: var(--card); color: var(--brand-700); box-shadow: var(--shadow-card); }
.catalog-results { position: relative; transition: opacity .2s; }
.catalog-results.is-loading { opacity: .45; pointer-events: none; }
.catalog-results.is-loading::after { content: ""; position: absolute; left: 50%; top: 6rem; width: 2.5rem; height: 2.5rem; margin-left: -1.25rem; border-radius: var(--r-round); border: 4px solid var(--brand-100); border-top-color: var(--brand); animation: spin .8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.catalog-results.view-rows .tour-grid { grid-template-columns: 1fr; }
@media (min-width: 640px) {
  .catalog-results.view-rows .tour-card { flex-direction: row; }
  .catalog-results.view-rows .tour-card-img { flex: 0 0 38%; max-width: 20rem; aspect-ratio: auto; min-height: 13rem; }
  .catalog-results.view-rows .tour-card-body { padding: 1.25rem 1.5rem; }
  .catalog-results.view-rows .tour-card-short { -webkit-line-clamp: 2; }
}

/* --- Выпадающий список (замена системного select) ------------------------------------------- */
html.js select.select.dd-native { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.dd { position: relative; min-width: 0; }
.dd-btn { display: flex; align-items: center; gap: .5rem; width: 100%; max-width: 100%; min-width: 0; padding: .75rem 2.5rem .75rem 1rem; border: 2px solid var(--ink-200); border-radius: var(--r-2xl); background: var(--card); font: inherit; font-size: 1rem; text-align: left; color: var(--ink-900); cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.dd-btn::after { content: ""; position: absolute; right: .95rem; top: 50%; width: 20px; height: 20px; margin-top: -10px; background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%234a4f7d' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>") center / 20px no-repeat; transition: transform .2s; }
.dd.is-open .dd-btn::after { transform: rotate(180deg); }
.dd-btn:hover { border-color: var(--brand-200); }
.dd.is-open .dd-btn, .dd-btn:focus-visible { outline: none; border-color: var(--brand-300); box-shadow: 0 0 0 4px var(--brand-100); }
.dd-value { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dd-value.is-empty { color: var(--ink-500); }
.dd-btn .dd-count { flex: none; padding: .1rem .5rem; border-radius: var(--r-pill); background: var(--brand-50); font-size: .75rem; font-weight: 800; color: var(--brand-700); }
.dd-list { position: absolute; left: 0; right: 0; top: calc(100% + .375rem); z-index: 35; max-height: 17rem; overflow-y: auto; margin: 0; padding: .4rem; list-style: none; border-radius: var(--r-2xl); background: var(--card); border: 1px solid var(--ink-100); box-shadow: var(--shadow-soft); animation: pop .18s cubic-bezier(.2, .9, .3, 1.2); scrollbar-width: thin; }
.dd-group { padding: .5rem .75rem .2rem; font-size: .7rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: var(--ink-400); }
.dd-item { display: flex; align-items: center; gap: .5rem; padding: .55rem .75rem; border-radius: var(--r-md); font-size: .95rem; font-weight: 600; color: var(--ink-800); cursor: pointer; }
.dd-item:hover, .dd-item.is-active { background: var(--brand-50); color: var(--brand-700); }
.dd-item[aria-selected="true"] { font-weight: 800; color: var(--brand-700); }
.dd-item[aria-selected="true"]::before { content: "✓"; font-weight: 900; color: var(--brand); }
.dd-item .dd-count { margin-left: auto; padding: .1rem .5rem; border-radius: var(--r-pill); background: var(--ink-100); font-size: .72rem; font-weight: 800; color: var(--ink-600); }
.dd-item.is-zero { color: var(--ink-400); }
.dd-item.is-zero .dd-count { background: transparent; color: var(--ink-300); }
.dd-sm .dd-btn { padding: .5rem 2.25rem .5rem .85rem; font-size: .875rem; }
.sort-form .dd { min-width: 11rem; }

/* --- Карточка тура (страница) -------------------------------------------------------------- */
.tour-badges { margin-bottom: .75rem; }
.tour-h1 { line-height: 1.12; }
.tour-meta { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin-top: .75rem; font-size: .875rem; font-weight: 600; color: var(--ink-600); }
.tour-meta span, .tour-meta a { display: inline-flex; align-items: center; gap: .375rem; }
.tour-meta a { color: var(--brand-600); }
.tour-meta a:hover { text-decoration: underline; }
.tour-grid-page { display: grid; gap: 2rem; margin-top: 1.5rem; }
@media (min-width: 1024px) { .tour-grid-page { grid-template-columns: 8fr 4fr; } }
.tour-main { min-width: 0; }
.tour-aside { display: none; }
@media (min-width: 1024px) { .tour-aside { display: block; } .tour-booking-mobile { display: none; } }
.tour-booking-mobile { margin-top: 2rem; }
.tour-short { margin: 1.5rem 0 0; font-size: 1.125rem; line-height: 1.6; color: var(--ink-700); }
.tour-contacts-line { margin-top: 2.5rem; text-align: center; font-size: .75rem; color: var(--ink-400); }
.gallery-main { position: relative; overflow: hidden; border-radius: var(--r-3xl); background: var(--brand-50); box-shadow: var(--shadow-card); aspect-ratio: 3 / 2; }
.gallery-open { display: block; width: 100%; height: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; }
.gallery-open img { width: 100%; height: 100%; object-fit: cover; }
.gallery-nav { position: absolute; top: 50%; transform: translateY(-50%); display: inline-flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; border: 0; border-radius: var(--r-pill); background: rgba(255, 255, 255, .9); color: var(--ink-800); box-shadow: var(--shadow-card); cursor: pointer; }
.gallery-nav:hover { background: #fff; }
.gallery-nav .ic { width: 1.25rem; height: 1.25rem; }
.gallery-prev { left: .75rem; } .gallery-next { right: .75rem; }
.gallery-counter { position: absolute; right: .75rem; bottom: .75rem; display: inline-flex; align-items: center; gap: .25rem; padding: .25rem .75rem; border-radius: var(--r-pill); background: rgba(20, 22, 58, .7); font-size: .75rem; font-weight: 800; color: #fff; }
.gallery-thumbs { display: flex; gap: .5rem; margin-top: .75rem; overflow-x: auto; padding-bottom: .25rem; scrollbar-width: none; }
.gallery-thumbs::-webkit-scrollbar { display: none; }
.gallery-thumb { flex: none; width: 6rem; height: 4rem; overflow: hidden; padding: 0; border: 0; border-radius: var(--r-md); background: var(--ink-100); box-shadow: 0 0 0 2px transparent; cursor: pointer; transition: box-shadow .15s; }
.gallery-thumb:hover { box-shadow: 0 0 0 2px var(--brand-200); }
.gallery-thumb.on { box-shadow: 0 0 0 2px var(--brand); }
.gallery-thumb img { width: 100%; height: 100%; object-fit: cover; }
.lightbox { position: fixed; inset: 0; width: 100vw; height: 100vh; max-width: none; max-height: none; margin: 0; padding: 1rem; border: 0; background: rgba(20, 22, 58, .95); }
.lightbox::backdrop { background: transparent; }
.lightbox img { width: 100%; height: 100%; object-fit: contain; }
.lightbox-close { position: absolute; right: 1rem; top: 1rem; z-index: 2; padding: .5rem; border: 0; border-radius: var(--r-pill); background: rgba(255, 255, 255, .1); color: #fff; cursor: pointer; }
.lightbox-close:hover { background: rgba(255, 255, 255, .2); }
.lightbox-close .ic { width: 1.5rem; height: 1.5rem; }
.lightbox .gallery-nav { background: rgba(255, 255, 255, .1); color: #fff; width: 3rem; height: 3rem; }
.lightbox .gallery-nav:hover { background: rgba(255, 255, 255, .2); }
.lightbox .gallery-prev { left: .5rem; } .lightbox .gallery-next { right: .5rem; }
.lightbox-counter { position: absolute; left: 50%; bottom: .75rem; transform: translateX(-50%); padding: .25rem .75rem; border-radius: var(--r-pill); background: rgba(255, 255, 255, .1); font-size: .875rem; font-weight: 800; color: #fff; }
.booking { position: sticky; top: 6rem; padding: 1.25rem; }
@media (min-width: 640px) { .booking { padding: 1.5rem; } }
.booking-select { margin-bottom: 1rem; }
.booking-select[hidden] { display: none; } /* одна смена: список остаётся только для скрипта */
.booking-shift { margin-bottom: 1rem; padding: .75rem 1rem; border-radius: var(--r-2xl); background: var(--ink-50); }
.booking-shift-name { font-weight: 800; color: var(--ink-900); }
.booking-shift-meta { margin-top: .2rem; font-size: .875rem; font-weight: 600; color: var(--ink-600); }
.booking-shift-dates { margin: -.5rem 0 1rem; }
.booking-note-fixed { margin-top: .35rem; font-weight: 600; color: var(--ink-700); }
.booking-avail { display: inline-block; margin-left: .4rem; padding: .1rem .55rem; border-radius: var(--r-pill); font-size: .72rem; font-weight: 800; vertical-align: middle; }
.booking-avail.is-few { background: var(--sun-100); color: var(--sun-600); }
.booking-avail.is-sold_out { background: var(--danger-bg); color: var(--danger-fg); }
.dd-item.is-disabled { color: var(--ink-400); cursor: not-allowed; }
.dd-item.is-disabled:hover { background: transparent; color: var(--ink-400); }
.booking-price-box { margin-bottom: 1rem; padding: .75rem 1rem; border-radius: var(--r-2xl); background: var(--brand-50); }
.booking-price { font-size: 1.875rem; font-weight: 900; color: var(--brand-700); }
.booking-note { margin-top: .25rem; font-size: .75rem; color: var(--ink-500); }
.booking-hint { margin: 1rem 0 0; text-align: center; font-size: .75rem; color: var(--ink-400); }
.booking-summary { margin-bottom: 1rem; padding: .75rem 1rem; border-radius: var(--r-2xl); background: var(--brand-50); font-size: .875rem; }
.booking-summary-title { font-weight: 800; color: var(--ink-900); }
.booking-summary-shift { color: var(--ink-600); }
.booking-summary-price { margin-top: .25rem; font-size: 1.125rem; font-weight: 800; color: var(--brand-700); }
.booking-summary-price:empty, .booking-summary-shift:empty { display: none; }
.tabs { margin-top: 2rem; }
.tab-list { display: flex; gap: .5rem; overflow-x: auto; padding-bottom: .5rem; margin-inline: -1rem; padding-inline: 1rem; scrollbar-width: none; }
.tab-list::-webkit-scrollbar { display: none; }
@media (min-width: 640px) { .tab-list { flex-wrap: wrap; margin-inline: 0; padding-inline: 0; } }
.tab-btn { flex: none; padding: .625rem 1rem; border: 0; border-radius: var(--r-pill); background: var(--card); box-shadow: var(--shadow-card); font-size: .875rem; font-weight: 800; color: var(--ink-700); white-space: nowrap; cursor: pointer; transition: background-color .15s; }
.tab-btn:hover { background: var(--brand-50); }
.tab-btn.on { background: var(--brand); color: #fff; box-shadow: var(--shadow-pop); }
.tab-panel { margin-top: 1rem; }
.docs-list { list-style: none; margin: 1.5rem 0 0; padding: 0; display: grid; gap: .5rem; }
@media (min-width: 640px) { .docs-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.docs-list a { display: flex; align-items: center; gap: .5rem; padding: .75rem 1rem; border-radius: var(--r-2xl); background: var(--brand-50); font-size: .875rem; font-weight: 800; color: var(--brand-700); overflow-wrap: anywhere; }
.docs-list a:hover { background: var(--brand-100); }

/* --- Страница-лендинг тура ------------------------------------------------------------------ */
.landing-top { padding-bottom: 1rem; }
.facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin-top: 1.5rem; }
@media (min-width: 1024px) { .facts { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.fact { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: .75rem; align-items: center; padding: .9rem 1rem; border-radius: var(--r-2xl); background: var(--card); box-shadow: var(--shadow-card); }
.fact-ic { grid-row: 1 / 3; display: inline-flex; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; border-radius: var(--r-round); }
.fact-ic .ic { width: 1.3rem; height: 1.3rem; }
.fact-brand { background: var(--brand-50); color: var(--brand-700); } .fact-berry { background: var(--berry-100); color: var(--berry-600); } .fact-mint { background: var(--mint-100); color: var(--mint-700); } .fact-sun { background: var(--sun-100); color: var(--sun-600); }
.fact b { font-size: 1.15rem; line-height: 1.15; color: var(--ink-900); }
.fact span:last-child { font-size: .78rem; font-weight: 600; color: var(--ink-500); }
.subnav { position: sticky; top: var(--header-h); z-index: 30; background: rgba(255, 253, 248, .92); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border-bottom: 1px solid var(--ink-100); }
@media (min-width: 640px) { .subnav { top: 80px; } }
.subnav-in { display: flex; align-items: center; gap: .25rem; overflow-x: auto; padding-block: .5rem; scrollbar-width: none; }
.subnav-in::-webkit-scrollbar { display: none; }
.subnav-in a { flex: none; padding: .45rem .85rem; border-radius: var(--r-pill); font-size: .875rem; font-weight: 800; color: var(--ink-700); white-space: nowrap; transition: background-color .15s, color .15s; }
.subnav-in a:hover { background: var(--brand-50); color: var(--brand-700); }
.subnav-in a.is-on { background: var(--brand); color: #fff; }
.subnav-cta { margin-left: auto; flex: none; }
@media (max-width: 639px) { .subnav-cta { display: none; } }
.landing-grid { margin-top: 1.5rem; }
.landing-section { scroll-margin-top: 9rem; margin-bottom: 2.5rem; }
.landing-h2 { margin: 0 0 1rem; font-size: clamp(1.4rem, 1.1rem + 1.2vw, 1.9rem); }
.days-box { margin-top: 1.25rem; border-radius: var(--r-3xl); background: var(--card); box-shadow: var(--shadow-card); overflow: hidden; }
.days-tabs { display: flex; gap: .35rem; padding: .75rem; overflow-x: auto; background: var(--brand-50); scrollbar-width: none; }
.days-tabs::-webkit-scrollbar { display: none; }
.day-tab { flex: none; display: inline-flex; align-items: center; gap: .5rem; padding: .45rem .9rem .45rem .45rem; border: 0; border-radius: var(--r-pill); background: var(--card); box-shadow: var(--shadow-card); font-size: .875rem; font-weight: 800; color: var(--ink-700); cursor: pointer; transition: background-color .15s, color .15s; }
.day-num { display: inline-flex; align-items: center; justify-content: center; width: 1.75rem; height: 1.75rem; border-radius: var(--r-round); background: var(--brand-50); font-weight: 900; color: var(--brand-700); }
.day-tab.is-on { background: var(--brand); color: #fff; }
.day-tab.is-on .day-num { background: rgba(255, 255, 255, .25); color: #fff; }
.day-all { flex: none; margin-left: auto; padding: .45rem .9rem; border: 2px solid var(--brand-200); border-radius: var(--r-pill); background: var(--card); font-size: .8rem; font-weight: 800; color: var(--brand-700); cursor: pointer; }
.day-all[aria-pressed="true"] { background: var(--sun); border-color: var(--sun); color: var(--ink-900); }
.days-panels { padding: 1.25rem 1.5rem 1rem; }
.day-panel + .day-panel { margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px dashed var(--ink-200); }
.day-title { margin: 0 0 .75rem; font-size: 1.1rem; }
.days-box:not(.show-all) .day-title { display: none; }
.timeline { list-style: none; margin: 0; padding: 0; }
.tl { position: relative; display: flex; align-items: flex-start; gap: .9rem; padding: .45rem 0 .45rem 0; }
.tl::before { content: ""; position: absolute; left: .9rem; top: 1.9rem; bottom: -.45rem; border-left: 2px dotted var(--ink-200); }
.tl:last-child::before { display: none; }
.tl-dot { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 1.8rem; height: 1.8rem; border-radius: var(--r-round); background: var(--ink-100); }
.tl-dot .ic { width: 1rem; height: 1rem; color: #fff; }
.tl-hl .tl-dot { background: var(--sun); box-shadow: 0 0 0 4px var(--sun-100); }
.tl-hl .tl-dot .ic { color: var(--ink-900); }
.tl-text { padding-top: .2rem; font-size: 1rem; color: var(--ink-600); }
.tl-hl .tl-text { font-weight: 800; color: var(--ink-900); }
.stops { margin-top: 1.25rem; padding: 1rem 1.25rem; border-radius: var(--r-3xl); background: var(--sand); }
.doc-btn { margin-top: 1.25rem; }
.stay-card { padding: 1.25rem 1.5rem; border-radius: var(--r-3xl); background: var(--card); box-shadow: var(--shadow-card); }
.stay-card .rich ul { list-style: none; padding: 0; }
.stay-card .rich li { position: relative; padding-left: 1.75rem; margin: .4rem 0; }
.stay-card .rich li::before { content: "✓"; position: absolute; left: 0; top: 0; font-weight: 900; color: var(--mint); }
.ticket-card { position: relative; overflow: hidden; padding: 1.5rem; border-radius: var(--r-3xl); color: #fff; background: linear-gradient(120deg, var(--brand-700), var(--brand) 60%, var(--brand-2)); box-shadow: var(--shadow-pop); }
.ticket-card .rich { color: rgba(255, 255, 255, .9); }
.ticket-card .ticket-kicker { margin: 0; font-size: .75rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: rgba(255, 255, 255, .75); }
.ticket-card .ticket-route { margin: .25rem 0 0; font-size: 1.5rem; font-weight: 900; color: #fff; }
.ticket-card .ticket-price { display: inline-block; margin: .75rem 0 1rem; padding: .4rem 1rem; border-radius: var(--r-pill); background: var(--sun); font-size: 1.1rem; font-weight: 900; color: var(--ink-900); }
.ticket-card .rich b { color: #fff; }
.ticket-card .rich ul { list-style: none; padding: 0; margin: .5rem 0 0; display: grid; gap: .35rem; }
@media (min-width: 640px) { .ticket-card .rich ul { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ticket-card .rich li { position: relative; padding-left: 1.6rem; margin: 0; }
.ticket-card .rich li::before { content: "✓"; position: absolute; left: 0; font-weight: 900; color: var(--sun); }
.budget { margin-top: 1rem; }
.budget-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; }
.stepper { display: inline-flex; align-items: center; gap: .25rem; padding: .2rem; border-radius: var(--r-pill); background: var(--ink-100); }
.step-btn { width: 2.5rem; height: 2.5rem; border: 0; border-radius: var(--r-pill); background: var(--card); box-shadow: var(--shadow-card); font-size: 1.25rem; font-weight: 900; color: var(--brand-700); cursor: pointer; }
.step-btn:hover { background: var(--brand-50); }
.step-value { min-width: 2.5rem; text-align: center; font-size: 1.1rem; font-weight: 900; color: var(--ink-900); }
.budget-total { margin-top: .75rem; font-size: 1.05rem; color: var(--ink-700); }
.budget-total b { font-size: 1.75rem; font-weight: 900; color: var(--brand-700); }
.budget-note { margin: .75rem 0 0; font-size: .85rem; color: var(--ink-500); }
.checklist-box { padding: 1.25rem 1.5rem; border-radius: var(--r-3xl); background: var(--card); box-shadow: var(--shadow-card); }
.checklist-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .75rem; font-size: .9rem; font-weight: 700; color: var(--ink-600); }
.checklist-head b { padding: .25rem .75rem; border-radius: var(--r-pill); background: var(--brand-50); color: var(--brand-700); }
.checklist-box.is-done .checklist-head b { background: var(--mint-100); color: var(--mint-700); }
.checklist { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.check-item { display: flex; align-items: flex-start; gap: .75rem; padding: .75rem 1rem; border-radius: var(--r-2xl); background: var(--ink-50); cursor: pointer; transition: background-color .15s; }
.check-item:hover { background: var(--brand-50); }
.check-item input { position: absolute; opacity: 0; width: 0; height: 0; }
.check-box { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 1.5rem; height: 1.5rem; margin-top: .1rem; border: 2px solid var(--ink-300); border-radius: var(--r-sm); background: var(--card); color: transparent; transition: background-color .15s, border-color .15s; }
.check-box .ic { width: 1rem; height: 1rem; }
.check-item input:checked + .check-box { background: var(--mint); border-color: var(--mint); color: #fff; }
.check-item input:checked ~ span:last-child { color: var(--ink-500); text-decoration: line-through; }
.check-item input:focus-visible + .check-box { box-shadow: 0 0 0 4px var(--brand-100); }
.landing-photos { margin-bottom: 2rem; }
.photo-strip-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem; margin-bottom: .6rem; }
.photo-strip-head .panel-label { margin: 0; }
.photo-strip { display: flex; gap: .6rem; overflow-x: auto; padding-bottom: .5rem; scroll-snap-type: x proximity; scrollbar-width: thin; overscroll-behavior-x: contain; }
.photo-strip .photo-cell { flex: none; width: 14rem; scroll-snap-align: start; }
@media (max-width: 639px) { .photo-strip { margin-inline: -1rem; padding-inline: 1rem; scroll-padding-inline: 1rem; scrollbar-width: none; } .photo-strip::-webkit-scrollbar { display: none; } .photo-strip .photo-cell { width: 11rem; } }
.photo-cell { position: relative; padding: 0; border: 0; overflow: hidden; border-radius: var(--r-2xl); background: var(--brand-50); aspect-ratio: 4 / 3; cursor: zoom-in; box-shadow: var(--shadow-card); }
.photo-cell img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.photo-cell:hover img { transform: scale(1.05); }
/* Пиктограмма «на весь экран» в углу каждого фото */
.photo-zoom { position: absolute; right: .5rem; bottom: .5rem; display: inline-flex; align-items: center; justify-content: center; width: 1.9rem; height: 1.9rem; border-radius: var(--r-round); background: rgba(20, 22, 58, .55); color: #fff; opacity: .85; transition: opacity .15s, background-color .15s; pointer-events: none; }
.photo-zoom .ic { width: 1rem; height: 1rem; }
.photo-cell:hover .photo-zoom { opacity: 1; background: rgba(20, 22, 58, .8); }
.lightbox-full { position: absolute; right: 4rem; top: 1rem; z-index: 2; padding: .5rem; border: 0; border-radius: var(--r-pill); background: rgba(255, 255, 255, .1); color: #fff; cursor: pointer; }
.lightbox-full:hover { background: rgba(255, 255, 255, .2); }
.lightbox-full .ic { width: 1.5rem; height: 1.5rem; }
.page-tour-landing .tour-booking-mobile { margin-top: 1.5rem; }

/* --- Контент из редактора --------------------------------------------------------------- */
.rich { color: var(--ink-700); line-height: 1.7; overflow-wrap: anywhere; }
.rich > :first-child { margin-top: 0; }
.rich h2, .rich h3, .rich h4 { margin: 1.5em 0 .5em; color: var(--ink-900); }
.rich h2 { font-size: 1.5rem; } .rich h3 { font-size: 1.25rem; } .rich h4 { font-size: 1.05rem; }
.rich p { margin: 0 0 1em; }
.rich ul, .rich ol { margin: 0 0 1em; padding-left: 1.5em; }
.rich li { margin: .25em 0; }
.rich a { color: var(--brand-600); font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
.rich img { max-width: 100%; height: auto; border-radius: var(--r-2xl); margin: 1em 0; }
.rich table { width: 100%; border-collapse: collapse; margin: 1em 0; font-size: .9rem; }
.rich th, .rich td { padding: .5rem .75rem; border: 1px solid var(--ink-200); text-align: left; vertical-align: top; }
.rich th { background: var(--ink-50); font-weight: 800; }
.rich blockquote { margin: 1em 0; padding: .75rem 1.25rem; border-left: 4px solid var(--brand-200); background: var(--brand-50); border-radius: 0 var(--r-xl) var(--r-xl) 0; }
.rich iframe { max-width: 100%; border-radius: var(--r-2xl); }
.rich hr { border: 0; border-top: 1px solid var(--ink-200); margin: 1.5em 0; }
.text-sm .rich { font-size: .9rem; }

/* --- Формы ---------------------------------------------------------------------------------- */
.lead-form, .pay-form { position: relative; display: grid; gap: 1rem; }
.field { position: relative; }
.label { display: block; margin-bottom: .375rem; font-size: .875rem; font-weight: 700; color: var(--ink-700); }
.input { display: block; width: 100%; padding: .75rem 1rem; border: 2px solid var(--ink-200); border-radius: var(--r-2xl); background: var(--card); font: inherit; font-size: 1rem; color: var(--ink-900); transition: border-color .15s, box-shadow .15s; }
.input::placeholder { color: var(--ink-400); }
.input:focus { outline: none; border-color: var(--brand-300); box-shadow: 0 0 0 4px var(--brand-100); }
.input[aria-invalid="true"] { border-color: var(--danger) !important; }
.textarea { min-height: 7rem; resize: vertical; }
.textarea.short { min-height: 6rem; }
.select { appearance: none; -webkit-appearance: none; padding-right: 2.5rem; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%234a4f7d' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>"); background-size: 20px; background-position: right .9rem center; background-repeat: no-repeat; }
.hint { margin: .25rem 0 0; font-size: .75rem; color: var(--ink-400); }
.field-error { margin: .25rem 0 0; font-size: .875rem; font-weight: 600; color: var(--danger-text); }
.consent { display: flex; align-items: flex-start; gap: .75rem; font-size: .875rem; color: var(--ink-600); cursor: pointer; }
.consent input { margin-top: .125rem; width: 1.25rem; height: 1.25rem; flex: none; accent-color: var(--brand); }
.consent a { font-weight: 800; color: var(--brand-600); text-decoration: underline; text-underline-offset: 2px; }
.form-message { padding: .75rem 1rem; border-radius: var(--r-2xl); font-size: .875rem; font-weight: 700; }
.form-message.is-ok { background: var(--mint-100); color: var(--mint-700); }
.form-message.is-error { background: var(--danger-bg); color: var(--danger-fg); }
.form-success { padding: 1.5rem; border-radius: var(--r-3xl); background: var(--mint-50); text-align: center; }
.form-success .mark { width: 3.5rem; height: 3.5rem; margin: 0 auto .75rem; border-radius: var(--r-round); background: #33d17a; color: #fff; font-size: 1.875rem; line-height: 3.5rem; }
.form-success p { margin: 0; font-weight: 700; color: var(--mint-700); }
.lead-form .btn-primary, .lead-form .btn-accent, .lead-form .btn-sun, .pay-form .btn-accent { justify-self: start; }
@media (max-width: 639px) { .lead-form .btn-primary, .lead-form .btn-accent, .lead-form .btn-sun, .pay-form .btn-accent { width: 100%; } }
.sg-field-error { display: none; }

/* --- Модальные окна ------------------------------------------------------------------------ */
.modal { width: calc(100% - 1.5rem); max-width: 32rem; margin: auto; padding: 0; border: 0; border-radius: var(--r-3xl); background: var(--card); box-shadow: var(--shadow-soft); }
.modal-lg { max-width: 48rem; }
.modal::backdrop { background: rgba(20, 22, 58, .5); backdrop-filter: blur(4px); }
.modal[open] { animation: pop .35s cubic-bezier(.2, .9, .3, 1.4); }
.modal-in { position: relative; padding: 1.5rem; }
@media (min-width: 640px) { .modal-in { padding: 2rem; } }
.modal-close { position: absolute; right: 1rem; top: 1rem; padding: .5rem; border: 0; border-radius: var(--r-pill); background: none; color: var(--ink-400); cursor: pointer; }
.modal-close:hover { background: var(--ink-100); color: var(--ink-800); }
.modal-close .ic { width: 1.25rem; height: 1.25rem; }
.modal-title { margin: 0 2.5rem 1rem 0; font-size: 1.5rem; font-weight: 800; color: var(--ink-900); }
body.modal-open { overflow: hidden; }

/* --- Подвал ------------------------------------------------------------------------------------ */
.site-footer { margin-top: 4rem; padding: 0; border: 0; background: var(--ink-900); color: var(--ink-200); }
.footer-grid { display: grid; gap: 2.5rem; padding-block: 3rem; }
@media (min-width: 768px) { .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .footer-grid { grid-template-columns: 4fr 2fr 2fr 4fr; } }
.footer-col > * + * { margin-top: 0; }
.footer-logo-wrap { display: inline-block; padding: .5rem; border-radius: var(--r-2xl); background: #fff; }
.footer-logo-wrap img { height: 2.5rem; width: auto; }
.footer-about { margin: 1rem 0 0; max-width: 24rem; font-size: .875rem; line-height: 1.6; color: var(--ink-300); }
.footer-reestr { display: inline-flex; align-items: center; gap: .5rem; margin-top: 1rem; padding: .5rem .75rem; border-radius: var(--r-2xl); background: var(--ink-800); font-size: .75rem; font-weight: 700; color: var(--mint-300); }
.footer-reestr:hover { background: var(--ink-700); }
.footer-socials-row { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin-top: 1.25rem; }
.footer-socials-row > span { font-size: .875rem; font-weight: 700; color: #fff; }
.social-btn { display: inline-flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; border-radius: var(--r-pill); background: var(--ink-800); color: #fff; }
.social-btn:hover { background: var(--brand); }
.social-btn .ic { width: 1.25rem; height: 1.25rem; }
.footer-title { margin: 0 0 .75rem; font-size: .875rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: #fff; }
.footer-title-gap { margin-top: 1.5rem; }
.footer-links { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; font-size: .875rem; }
.footer-links a { color: var(--ink-200); }
.footer-links a:hover { color: #fff; }
.footer-contacts { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; font-size: .875rem; }
.footer-contacts a { display: inline-flex; align-items: center; gap: .5rem; color: var(--ink-200); }
.footer-contacts a:hover, .footer-phone-main:hover, .footer-phone-sub:hover { color: var(--sun) !important; }
.footer-contacts .ic { color: var(--sun); }
.footer-phone-main { font-size: 1.125rem; font-weight: 800; color: #fff !important; }
.footer-phone-sub { font-weight: 700; color: #fff !important; }
.footer-addr { display: flex; align-items: flex-start; gap: .5rem; }
.footer-addr .ic { margin-top: .125rem; }
.footer-bottom { border-top: 1px solid var(--ink-800); margin: 0; padding: 0; }
.footer-bottom-in { display: flex; flex-direction: column; gap: .5rem; padding-block: 1.25rem; font-size: .75rem; color: var(--ink-400); }
@media (min-width: 640px) { .footer-bottom-in { flex-direction: row; align-items: center; justify-content: space-between; } }
.footer-legal { display: flex; gap: 1rem; }
.footer-legal a { color: var(--ink-400); }
.footer-legal a:hover { color: #fff; }

/* --- Cookie ------------------------------------------------------------------------------------ */
.cookie-banner { position: fixed; left: 1rem; bottom: 1rem; z-index: 45; display: flex; align-items: center; gap: .65rem; max-width: 26rem; padding: .6rem .6rem .6rem .9rem; border-radius: var(--r-pill); background: rgba(255, 255, 255, .96); box-shadow: var(--shadow-soft); border: 1px solid var(--ink-100); backdrop-filter: blur(8px); animation: rise .5s cubic-bezier(.2, .9, .3, 1.2); }
@media (max-width: 639px) { .cookie-banner { right: 1rem; max-width: none; border-radius: var(--r-2xl); } }
.cookie-banner .cookie-ic { flex: none; width: 1.35rem; height: 1.35rem; color: var(--sun-600); }
.cookie-banner p { margin: 0; font-size: .8rem; line-height: 1.35; color: var(--ink-700); }
.cookie-banner a { font-weight: 800; color: var(--brand-600); }
.cookie-banner a:hover { text-decoration: underline; }
.cookie-banner .btn-xs { flex: none; min-height: 2.4rem; padding-inline: 1rem; }
@keyframes rise { 0% { transform: translateY(1rem); opacity: 0; } 100% { transform: translateY(0); opacity: 1; } }

/* --- Печать ------------------------------------------------------------------------------------ */
@media print {
  .topbar, .site-header, .site-footer, .cookie-banner, .modal, .tour-aside, .tour-booking-mobile, .help-card, .btn-print, .gallery-thumbs, .gallery-nav, .tab-list, .sg-demo-banner { display: none !important; }
  .tab-panel[hidden] { display: block !important; }
  .tour-grid-page { display: block; }
  body { background: #fff; }
}
@media (prefers-reduced-motion: reduce) { .hero-slide { transition: opacity .3s; transform: none; } .dd-list, .modal[open], .mobile-drawer { animation: none; } }

/* ==========================================================================
 * Строгий стиль (html[data-style="simple"]) и тёмная тема (html[data-theme="dark"]).
 * Переключатель в шапке пишет cookie at_style / at_theme, сервер по ним ставит
 * атрибуты на <html> (at_look в inc/init.php), поэтому страница приходит сразу
 * в нужном виде, без мигания. Тёмная тема есть только у строгого стиля.
 * Идея строгого стиля: один акцентный цвет и нейтральная серая шкала, радиус
 * 8 px, рамки вместо теней, без градиентов и «подпрыгиваний», шрифт Inter
 * (диапазон 400–700: всё, что в ярком стиле было 800–900, здесь 700).
 * ========================================================================== */
@font-face { font-family: "Inter Variable"; font-style: normal; font-display: swap; font-weight: 400 700;
  src: url(/assets/fonts/inter-cyrillic-ext-wght-normal.woff2) format("woff2-variations");
  unicode-range: U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F; }
@font-face { font-family: "Inter Variable"; font-style: normal; font-display: swap; font-weight: 400 700;
  src: url(/assets/fonts/inter-cyrillic-wght-normal.woff2) format("woff2-variations");
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family: "Inter Variable"; font-style: normal; font-display: swap; font-weight: 400 700;
  src: url(/assets/fonts/inter-latin-ext-wght-normal.woff2) format("woff2-variations");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "Inter Variable"; font-style: normal; font-display: swap; font-weight: 400 700;
  src: url(/assets/fonts/inter-latin-wght-normal.woff2) format("woff2-variations");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

/* Переключатель оформления: в верхней полоске (≥1024) и в мобильном меню */
.look-switch { display: inline-flex; align-items: center; gap: .4rem; }
.look-seg { display: inline-flex; padding: .15rem; border-radius: var(--r-pill); background: var(--ink-100); }
.look-btn { padding: .3rem .7rem; border: 0; border-radius: var(--r-pill); background: transparent; font-size: .75rem; font-weight: 700; line-height: 1.2; color: var(--ink-600); white-space: nowrap; cursor: pointer; transition: background-color .15s, color .15s; }
.look-btn:hover { color: var(--ink-900); }
.look-btn[aria-pressed="true"] { background: var(--seg-on, var(--card)); color: var(--ink-900); box-shadow: var(--shadow-card); }
.look-theme { display: inline-flex; align-items: center; justify-content: center; width: 2rem; height: 2rem; border: 0; border-radius: var(--r-pill); background: var(--ink-100); color: var(--ink-700); cursor: pointer; transition: background-color .15s, color .15s; }
.look-theme:hover { background: var(--ink-200); color: var(--ink-900); }
.look-theme .ic { width: 1rem; height: 1rem; }
.look-theme .ic-sun { display: none; }
html[data-theme="dark"] .look-theme .ic-moon { display: none; }
html[data-theme="dark"] .look-theme .ic-sun { display: block; }
.topbar-right { display: flex; align-items: center; gap: 1rem; }
.topbar .look-switch { padding-left: 1rem; border-left: 1px solid var(--ink-200); }
.mobile-look { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: .75rem; font-size: .875rem; font-weight: 700; color: var(--ink-700); }
.logo-dark { display: none; }
html[data-theme="dark"] .logo-light { display: none; }
html[data-theme="dark"] .logo-dark { display: block; }

/* --- Строгий стиль ------------------------------------------------------------------------- */
html[data-style="simple"] {
  --font-sans: "Inter Variable", "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;
  --brand: #2b59d9; --brand-2: #2b59d9; --accent: #2b59d9; --grad: #2b59d9;
  --brand-50: #eef2fc; --brand-100: #dbe4f9; --brand-200: #bccdf2; --brand-300: #8fabe9; --brand-600: #2149bd; --brand-700: #1b3c9c;
  --bg: #fff; --surface: #fff; --surface-2: #f4f5f7; --card: #fff; --glass: rgba(255, 255, 255, .88); --seg-on: #fff;
  --text: #16181d; --muted: #5f6573; --border: #d8dbe2; --ring: rgba(43, 89, 217, .3);
  --ink-900: #16181d; --ink-800: #23262e; --ink-700: #3a3e48; --ink-600: #545966; --ink-500: #6f7482; --ink-400: #8b909c; --ink-300: #b3b7c1; --ink-200: #d8dbe2; --ink-100: #e9ebef; --ink-50: #f4f5f7;
  --sand: #f4f5f7;
  /* Цветная палитра яркого стиля сведена к серому и акценту; жёлтый остаётся только у звёзд рейтинга */
  --sun: #fff; --sun-100: #e9ebef; --sun-200: #dbe4f9; --sun-400: #d99a06; --sun-600: #545966;
  --coral: #2b59d9; --coral-100: #e9ebef; --coral-600: #2149bd; --coral-700: #3a3e48;
  --mint: #1f9d5a; --mint-50: #ecf8f1; --mint-100: #d6f0e1; --mint-300: #8fd9b0; --mint-700: #17784a;
  --berry: #2b59d9; --berry-100: #e9ebef; --berry-300: #8fabe9; --berry-600: #3a3e48;
  --danger: #d5473f; --danger-text: #c23c34; --danger-bg: #fbe9e8; --danger-fg: #a5302a;
  --shadow-card: 0 0 0 1px var(--ink-100);
  --shadow-soft: 0 0 0 1px var(--ink-100), 0 12px 32px -16px rgba(16, 18, 24, .25);
  --shadow-pop: none;
  --r-xl: .5rem; --r-2xl: .625rem; --r-3xl: .75rem; --r-4xl: .875rem;
  --r-pill: .5rem; --r-md: .375rem; --r-sm: .25rem;
  font-synthesis: none;
}
html[data-style="simple"] body { font-feature-settings: normal; line-height: 1.6; }
html[data-style="simple"] :is(h1, h2, h3, h4) { font-weight: 700; letter-spacing: -.015em; }
html[data-style="simple"] :is(b, strong) { font-weight: 600; }
html[data-style="simple"] :is(.hero-h1, .page-h1, .choose-title, .section-title, .cta h2, .hero-stats dt, .platform-rating, .help-phone, .booking-price, .budget-total b, .ticket-route) { font-weight: 700; letter-spacing: -.02em; }
html[data-style="simple"] .hero-h1 { font-size: clamp(2.1rem, 1.4rem + 2.6vw, 3.2rem); line-height: 1.08; }
html[data-style="simple"] :is(.btn-primary, .btn-accent, .btn-sun, .btn-outline, .btn-ghost, .btn-white, .chip, .topbar-nav a, .nav-item > a, .dropdown a, .mobile-row > a, .mobile-sub a, .mobile-pages a, .tab-btn, .day-tab, .day-all, .subnav-in a, .link-strong, .link-mint, .post-more, .price, .price-label, .panel-label, .list-count, .list-count b, .side-title, .side-reset, .label, .hero-badge, .hero-caption, .promo-more, .cta-kicker, .choose-kicker, .choose-btn, .hit-badge, .hit-title, .post-date, .tour-card-addr, .crumbs a, .crumbs span[aria-current], .review-foot a, .review-author, .review-details summary, .checklist-head b, .dd-count, .dd-item[aria-selected="true"], .day-num, .step-btn, .step-value, .footer-title, .footer-phone-main, .footer-phone-sub, .footer-reestr, .footer-socials-row > span, .form-message, .form-success p, .map-label, .map-value, .map-value a, .docs-list a, .suggest .suggest-all, .chip-hint, .tour-meta, .booking-summary-title, .booking-summary-price, .platform-name, .perk-title, .feature p, .fact b, .tl-hl .tl-text, .req-list dd, .cookie-banner a, .mobile-head, .tour-card-title, .post-card-title, .help-title, .modal-title, .topbar-tag, .gallery-counter, .lightbox-counter, .ticket-price, .ticket-kicker, .pg-btn, .look-btn, .mobile-look) { font-weight: 600; }
/* Без декоративных пятен, точечной сетки, волны под словом и наезда камеры в слайдере */
html[data-style="simple"] :is(.blob, .hl-line) { display: none; }
html[data-style="simple"] .hero { background-image: none; }
html[data-style="simple"] .hero-slide { transform: none; transition: opacity .5s ease; }
html[data-style="simple"] ::selection { background: var(--brand-100); color: var(--ink-900); }
/* Верхняя полоска и шапка: плоские, с тонкой линией */
html[data-style="simple"] .topbar { background: var(--surface); border-bottom-color: var(--ink-100); }
html[data-style="simple"] .topbar-tag { color: var(--ink-600); }
html[data-style="simple"] .topbar-tag .ic { color: var(--brand); }
html[data-style="simple"] .topbar-nav a { font-weight: 500; color: var(--ink-600); }
html[data-style="simple"] .topbar-nav a:hover { background: var(--ink-50); color: var(--ink-900); box-shadow: none; }
html[data-style="simple"] .topbar-nav a.is-active { background: var(--brand-50); color: var(--brand-700); box-shadow: none; }
html[data-style="simple"] .site-header { box-shadow: 0 1px 0 0 var(--ink-100); }
html[data-style="simple"] .nav-item > a { font-weight: 500; }
html[data-style="simple"] .nav-item > a:hover, html[data-style="simple"] .nav-item:focus-within > a { background: var(--ink-50); color: var(--ink-900); }
html[data-style="simple"] .dropdown a { font-weight: 500; }
html[data-style="simple"] :is(.dropdown a, .mobile-row > a, .mobile-sub a, .mobile-pages a, .suggest a, .dd-item):hover { background: var(--ink-50); color: var(--ink-900); }
html[data-style="simple"] .icon-btn { background: var(--ink-50); color: var(--ink-800); box-shadow: 0 0 0 1px var(--ink-100); }
html[data-style="simple"] .icon-btn:hover { background: var(--ink-100); }
html[data-style="simple"] .icon-btn-call { background: var(--brand); color: #fff; box-shadow: none; }
html[data-style="simple"] .header-phone { background: var(--ink-50); color: var(--ink-800); box-shadow: 0 0 0 1px var(--ink-100); }
html[data-style="simple"] .header-phone:hover { background: var(--brand); color: #fff; box-shadow: none; }
/* Кнопки: без теней и подпрыгивания; «акцентная» — чёрная, «солнечная» — серая */
html[data-style="simple"] :is(.btn-primary, .btn-accent, .btn-sun, .btn-outline, .btn-ghost, .btn-white, .choose-btn, .choose-cta, .tab-btn.on) { box-shadow: none; }
html[data-style="simple"] :is(.btn-primary, .btn-accent, .btn-sun, .choose-cta):hover { transform: none; }
html[data-style="simple"] .btn-accent { background: var(--ink-900); color: var(--bg); }
html[data-style="simple"] .btn-accent:hover { background: var(--ink-700); }
html[data-style="simple"] .btn-sun { background: var(--ink-100); color: var(--ink-900); }
html[data-style="simple"] .btn-sun:hover { background: var(--ink-200); }
html[data-style="simple"] .cta .btn-sun { background: #fff; color: #16181d; }
html[data-style="simple"] .lead-form .btn-sun { background: var(--brand); color: #fff; }
html[data-style="simple"] .lead-form .btn-sun:hover { background: var(--brand-600); }
html[data-style="simple"] .btn-outline { border: 1px solid var(--ink-200); color: var(--ink-900); padding: calc(.75rem - 1px) calc(1.25rem - 1px); }
html[data-style="simple"] .btn-outline.btn-sm { padding: calc(.5rem - 1px) calc(.9rem - 1px); }
html[data-style="simple"] .btn-outline.btn-xs { padding: calc(.45rem - 1px) calc(.8rem - 1px); }
html[data-style="simple"] .btn-outline:hover { border-color: var(--ink-300); background: var(--ink-50); }
html[data-style="simple"] .btn-ghost { color: var(--ink-800); }
html[data-style="simple"] .btn-ghost:hover { background: var(--ink-50); }
html[data-style="simple"] .btn-white { color: #16181d; }
html[data-style="simple"] .btn-white:hover { background: #eef0f4; }
/* Герой, призыв, баннеры: плоский акцентный цвет */
html[data-style="simple"] .hero-badge { color: var(--ink-700); }
html[data-style="simple"] .choose-cta { background: var(--brand); }
html[data-style="simple"] .choose-cta:hover { background: var(--brand-600); box-shadow: none; }
html[data-style="simple"] .choose-btn { background: #fff; color: #16181d; }
html[data-style="simple"] .choose-cta:hover .choose-btn { background: #fff; transform: none; }
html[data-style="simple"] :is(.cta, .ticket-card) { background: var(--brand); }
html[data-style="simple"] :is(.hero-slider, .promo-banner, .map-frame) { box-shadow: 0 0 0 1px var(--ink-100); }
/* Карточки: рамка вместо тени, без подъёма и наезда картинки */
html[data-style="simple"] :is(.tour-card, .post-card):hover { transform: none; box-shadow: 0 0 0 1px var(--ink-300); }
html[data-style="simple"] :is(.tour-card:hover .tour-card-img img, .post-card:hover .post-card-img img, .hit-card:hover img, .photo-cell:hover img, .promo-banner:hover img, .chip-hint:hover) { transform: none; }
html[data-style="simple"] .hit-card { box-shadow: none; }
html[data-style="simple"] .partner-card { filter: grayscale(1) opacity(.75); }
html[data-style="simple"] .partner-card:hover { filter: none; }
/* Поля и выпадающие списки: рамка 1 px */
html[data-style="simple"] .input { border-width: 1px; border-color: var(--ink-200); padding: calc(.75rem + 1px) calc(1rem + 1px); }
html[data-style="simple"] .select { padding-right: 2.5rem; }
html[data-style="simple"] .select-sm { padding: calc(.5rem + 1px) 2.25rem calc(.5rem + 1px) calc(.85rem + 1px) !important; }
html[data-style="simple"] .dd-btn { border-width: 1px; border-color: var(--ink-200); padding: calc(.75rem + 1px) 2.5rem calc(.75rem + 1px) calc(1rem + 1px); }
html[data-style="simple"] .dd-sm .dd-btn { padding: calc(.5rem + 1px) 2.25rem calc(.5rem + 1px) calc(.85rem + 1px); }
html[data-style="simple"] .dd-btn:hover { border-color: var(--ink-300); }
html[data-style="simple"] :is(.input:focus, .dd.is-open .dd-btn, .dd-btn:focus-visible) { border-color: var(--brand); box-shadow: 0 0 0 3px var(--brand-100); }
html[data-style="simple"] .check-box { border-color: var(--ink-300); }
/* Плашки, табы, дни, шаги */
html[data-style="simple"] :is(.chip-sun, .chip-coral, .chip-berry, .chip-ink) { background: var(--ink-100); color: var(--ink-700); }
html[data-style="simple"] :is(.tab-btn, .day-tab, .chip-hint, .step-btn, .view-btn.is-on) { box-shadow: 0 0 0 1px var(--ink-200); }
html[data-style="simple"] :is(.tab-btn.on, .day-tab.is-on, .chip-hint.is-on) { box-shadow: none; }
html[data-style="simple"] :is(.step-btn, .view-btn.is-on) { color: var(--ink-900); }
html[data-style="simple"] .day-all { border-width: 1px; border-color: var(--ink-200); padding: calc(.45rem + 1px) calc(.9rem + 1px); color: var(--ink-800); }
html[data-style="simple"] .day-all[aria-pressed="true"] { background: var(--brand); border-color: var(--brand); color: #fff; }
html[data-style="simple"] .days-tabs { background: var(--surface-2); }
html[data-style="simple"] .tl-dot .ic { color: var(--ink-500); }
html[data-style="simple"] .tl-hl .tl-dot { background: var(--brand-50); box-shadow: 0 0 0 4px var(--brand-100); }
html[data-style="simple"] .tl-hl .tl-dot .ic { color: var(--brand-700); }
html[data-style="simple"] .subnav { background: var(--glass); }
html[data-style="simple"] .subnav-in a { font-weight: 500; }
html[data-style="simple"] .subnav-in a.is-on { font-weight: 600; }
html[data-style="simple"] :is(.side-hints, .stops) { background: var(--surface-2); }
/* Всплывающие слои: без пружинящей анимации */
@keyframes fade-in { from { opacity: 0; } to { opacity: 1; } }
html[data-style="simple"] :is(.modal[open], .mobile-drawer, .dd-list, .suggest, .cookie-banner) { animation: fade-in .15s ease; }
/* Подвал: светлый, отделён линией */
html[data-style="simple"] .site-footer { background: var(--surface-2); color: var(--ink-700); border-top: 1px solid var(--ink-100); }
html[data-style="simple"] :is(.footer-title, .footer-socials-row > span) { color: var(--ink-900); }
html[data-style="simple"] :is(.footer-phone-main, .footer-phone-sub) { color: var(--ink-900) !important; }
html[data-style="simple"] :is(.footer-about, .footer-links a, .footer-contacts a, .footer-legal a, .footer-bottom-in) { color: var(--ink-600); }
html[data-style="simple"] :is(.footer-links a, .footer-legal a):hover { color: var(--ink-900); }
html[data-style="simple"] :is(.footer-contacts a, .footer-phone-main, .footer-phone-sub):hover { color: var(--brand) !important; }
html[data-style="simple"] .footer-contacts .ic { color: var(--brand); }
html[data-style="simple"] .footer-reestr { background: var(--card); color: var(--mint-700); box-shadow: 0 0 0 1px var(--ink-100); }
html[data-style="simple"] .footer-reestr:hover { background: var(--card); box-shadow: 0 0 0 1px var(--ink-300); }
html[data-style="simple"] .social-btn { background: var(--card); color: var(--ink-800); box-shadow: 0 0 0 1px var(--ink-100); }
html[data-style="simple"] .social-btn:hover { background: var(--brand); color: #fff; box-shadow: none; }
html[data-style="simple"] .footer-bottom { border-top-color: var(--ink-100); }
html[data-style="simple"] .footer-logo-wrap { box-shadow: 0 0 0 1px var(--ink-100); }
html[data-style="simple"] .cookie-banner { background: var(--card); border-color: var(--ink-100); }

/* --- Тёмная тема (только для строгого стиля) --------------------------------------------- */
html[data-theme="dark"] {
  color-scheme: dark;
  --bg: #0f1116; --surface: #151821; --surface-2: #1a1e28; --card: #171b25; --glass: rgba(15, 17, 22, .86); --seg-on: #363c4d;
  --text: #e8eaf0; --muted: #9aa0b0; --border: #2f3544; --ring: rgba(122, 156, 255, .4);
  --ink-900: #f1f2f6; --ink-800: #e3e6ee; --ink-700: #c9cdd8; --ink-600: #aab0bf; --ink-500: #8a91a3; --ink-400: #6b7284; --ink-300: #4e5468; --ink-200: #363c4d; --ink-100: #262b38; --ink-50: #1c202b;
  --sand: #1a1e28;
  --brand: #5b7ff0; --brand-2: #5b7ff0; --accent: #5b7ff0; --grad: #5b7ff0;
  --brand-50: #1b2340; --brand-100: #222d57; --brand-200: #2e3d78; --brand-300: #4256a6; --brand-600: #6d8ef6; --brand-700: #a3b8ff;
  --sun-100: #262b38; --sun-200: #222d57; --sun-400: #e0a915; --sun-600: #aab0bf;
  --coral: #5b7ff0; --coral-100: #262b38; --coral-600: #6d8ef6; --coral-700: #c9cdd8;
  --mint: #34b878; --mint-50: #13271c; --mint-100: #183a28; --mint-300: #7fd9a8; --mint-700: #8fe3b6;
  --berry: #5b7ff0; --berry-100: #262b38; --berry-300: #4256a6; --berry-600: #c9cdd8;
  --danger: #e0625a; --danger-text: #f08a83; --danger-bg: #3a1f1e; --danger-fg: #f5a9a4;
  --shadow-card: 0 0 0 1px var(--ink-100);
  --shadow-soft: 0 0 0 1px var(--ink-200), 0 16px 40px -16px rgba(0, 0, 0, .7);
}
html[data-theme="dark"] .dd-btn::after, html[data-theme="dark"] .select { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23aab0bf' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>"); }
html[data-theme="dark"] .mobile-backdrop { background: rgba(0, 0, 0, .6); }
html[data-theme="dark"] .modal::backdrop { background: rgba(0, 0, 0, .65); }
html[data-theme="dark"] .partner-card { background: #fff; border-radius: var(--r-2xl); filter: grayscale(1) opacity(.85); }
html[data-theme="dark"] .partner-card:hover { filter: none; }
html[data-theme="dark"] .map-frame iframe { filter: invert(.92) hue-rotate(180deg) contrast(.9); }
/* Элементы поверх фотографий остаются белыми — текст на них должен быть тёмным и в тёмной теме */
html[data-theme="dark"] :is(.hero-caption, .ticket-price, .slider-nav, .gallery-main .gallery-nav) { color: #16181d; }
html[data-theme="dark"] .promo-more { color: #1b3c9c; }
