/* AroundCA 2.0. Две темы, как на старом сайте: дневная (светлая) и ночная (тёмная).
   Фирменный бирюзовый AroundCA + «вкрапления» узбекской майолики: лазурит, шафран, гранат, орнамент.
   Все цвета — только через переменные; пары «текст/фон» проверяет тест контраста (test/contrast.test.js). */
:root { --girih: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 56 56'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.4'%3E%3Cpath d='M28 8l5.5 14.5L48 28l-14.5 5.5L28 48l-5.5-14.5L8 28l14.5-5.5z'/%3E%3Crect x='17' y='17' width='22' height='22' transform='rotate(45 28 28)'/%3E%3Ccircle cx='28' cy='28' r='4'/%3E%3Cpath d='M0 0l8 8M56 0l-8 8M0 56l8-8M56 56l-8-8'/%3E%3C/g%3E%3C/svg%3E"); --band: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='8' viewBox='0 0 40 8'%3E%3Crect width='40' height='8' fill='%231d4f91'/%3E%3Cpath d='M0 4L4 0L8 4L4 8ZM20 4L24 0L28 4L24 8Z' fill='%2322aee6'/%3E%3Ccircle cx='14' cy='4' r='2' fill='%23f2a24e'/%3E%3Ccircle cx='34' cy='4' r='2' fill='%23f2a24e'/%3E%3Cpath d='M2.5 4L4 2.5L5.5 4L4 5.5ZM22.5 4L24 2.5L25.5 4L24 5.5Z' fill='%23fff'/%3E%3C/svg%3E"); }
:root, [data-theme=light] {
  --bg: #ffffff; --surface: #ffffff; --soft: #f2f7fa; --ink: #0b1a2e; --muted: #4c5d70; --line: #dbe4ec;
  --accent: #0b6d84; --on-accent: #ffffff; --accent-2: #22aee6; --accent-soft: #e6f5fb; --link: #0a6378;
  --ok: #0d6e43; --ok-bg: #e8f6ee; --no: #8f4500; --no-bg: #fff3e3; --note-bg: #fff4dc; --note-ink: #7a4a00;
  --warm: #f2a24e; --on-warm: #2a1600; --warm-soft: #fff3e6; --lapis: #1d4f91; --heart: #c0392b; --demo-bg: #9a3412; --demo-ink: #ffffff;
  --header-bg: rgba(255, 255, 255, .94); --orn: #22aee6; --orn-o: .13;
  --hero: linear-gradient(135deg, #e6f5fb 0%, #f4fbfe 55%, #fff3e6 100%);
  --t-classic: #e8effa; --t-nature: #e6f5ec; --t-food: #fff1e2; --t-celebrate: #fdebee; --t-short: #e6f5fb; --t-neighbors: #f0ecfb;
  --radius: 16px; --shadow: 0 8px 28px rgba(11, 26, 46, .08); --sel: #bfe6f5;
  color-scheme: light;
}
[data-theme=dark] {
  --bg: #0b1220; --surface: #101826; --soft: #16233a; --ink: #f4f8ff; --muted: #a9b8d0; --line: rgba(152, 173, 209, .22);
  --accent: #22aee6; --on-accent: #04121c; --accent-2: #22aee6; --accent-soft: rgba(34, 174, 230, .16); --link: #6fd0f5;
  --ok: #4fd6a0; --ok-bg: rgba(58, 210, 159, .12); --no: #f5b76a; --no-bg: rgba(246, 191, 90, .12); --note-bg: rgba(246, 191, 90, .14); --note-ink: #f6cf86;
  --warm: #f2a24e; --on-warm: #2a1600; --warm-soft: rgba(242, 162, 78, .14); --lapis: #6c9be0; --heart: #ff7a6b; --demo-bg: #f5b76a; --demo-ink: #2a1600;
  --header-bg: rgba(11, 18, 32, .94); --orn: #22aee6; --orn-o: .10;
  --hero: radial-gradient(120% 90% at 0% 0%, #12345a 0%, #0d1a2e 55%, #0b1220 100%);
  --t-classic: rgba(108, 155, 224, .16); --t-nature: rgba(79, 214, 160, .13); --t-food: rgba(242, 162, 78, .15);
  --t-celebrate: rgba(255, 122, 107, .14); --t-short: rgba(34, 174, 230, .15); --t-neighbors: rgba(170, 140, 240, .15);
  --shadow: 0 10px 30px rgba(0, 0, 0, .35); --sel: rgba(34, 174, 230, .35);
  color-scheme: dark;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
/* Движение (по Emil Kowalski): сильный ease-out для появления, ease-in-out для перемещения, «шторка» iOS для панели. */
:root { --ease-out: cubic-bezier(.23, 1, .32, 1); --ease-io: cubic-bezier(.77, 0, .175, 1); --ease-drawer: cubic-bezier(.32, .72, 0, 1); }
html { -webkit-text-size-adjust: 100%; accent-color: var(--accent); }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
::selection { background: var(--sel); color: var(--ink); }
body { margin: 0; background: var(--bg); color: var(--ink); font: 16px/1.6 Manrope, "Avenir Next", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }
h1, h2 { font-family: Lora, "Iowan Old Style", "Palatino Linotype", Georgia, serif; font-weight: 600; }
a { color: inherit; }
img { max-width: 100%; display: block; }
h1 { font-size: clamp(28px, 4vw, 42px); line-height: 1.15; letter-spacing: -.02em; margin: 0 0 12px; }
h2 { font-size: clamp(22px, 3vw, 30px); letter-spacing: -.01em; margin: 0 0 8px; }
h3, .as-h3 { font-size: 18px; margin: 0 0 6px; }
.as-h3 { font-family: inherit; font-weight: 700; letter-spacing: normal; line-height: 1.3; }
.wrap { max-width: 1200px; margin: 0 auto; padding: 0 16px; }
.narrow { max-width: 760px; }
.sect { padding: 40px 16px; }
.muted { color: var(--muted); }
.small { font-size: 13px; }
.sub { color: var(--muted); margin: 0 0 22px; max-width: 700px; }

.preview-bar { background: var(--note-bg); color: var(--note-ink); font-size: 13px; text-align: center; padding: 6px 16px; }
.top { position: sticky; top: 0; z-index: 20; background: var(--header-bg); backdrop-filter: blur(8px); border-bottom: 1px solid var(--line); }
.top-in { display: flex; align-items: center; gap: 24px; min-height: 64px; flex-wrap: wrap; }
.logo { display: inline-flex; text-decoration: none; }
.logo img { height: 44px; width: auto; }
.logo.small img { height: 52px; }
.logo-d, [data-theme=dark] .logo-l { display: none; }
[data-theme=dark] .logo-d { display: block; }
.theme-tg { background: none; border: 0; color: var(--ink); cursor: pointer; font-size: 18px; border-radius: 10px; }
.theme-tg:hover { background: var(--soft); }
.i-moon, [data-theme=dark] .i-sun { display: none; }
[data-theme=dark] .i-moon { display: inline; }
.nav { display: flex; gap: 4px; flex-wrap: wrap; }
/* Шапка в одну строку: избранное, тема и язык всегда вместе справа; длинное меню (fr, de, it…) сжимается,
   а не переносит переключатель языка на вторую строку. На средних экранах меню — второй строкой. */
@media (min-width: 861px) {
  .top-in { flex-wrap: nowrap; gap: 16px; }
  .nav { flex: 1 1 auto; min-width: 0; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .nav::-webkit-scrollbar { display: none; }
  .nav a { white-space: nowrap; }
  .search { flex: 0 1 220px; min-width: 120px; }
}
@media (min-width: 861px) and (max-width: 1240px) {
  .top-in { flex-wrap: wrap; row-gap: 0; }
  .nav { order: 3; flex-basis: 100%; padding-bottom: 6px; }
  .search { flex: 1 1 220px; max-width: 420px; }
}
@media (min-width: 861px) {
  .top.nav2 .top-in { flex-wrap: wrap; row-gap: 0; }
  .top.nav2 .nav { order: 3; flex-basis: 100%; padding-bottom: 6px; }
  .top.nav2 .search { flex: 1 1 220px; max-width: 420px; }
}
.tools { display: flex; align-items: center; gap: 4px; flex-shrink: 0; margin-left: auto; }
.tools .langs { margin-left: 0; }
.nav a { text-decoration: none; padding: 8px 12px; border-radius: 10px; color: var(--muted); font-weight: 500; position: relative; }
.nav a:hover, .nav a.on { background: var(--soft); color: var(--ink); }
.cnt { background: var(--warm); color: var(--on-warm); font-weight: 700; border-radius: 99px; font-size: 11px; padding: 1px 6px; margin-left: 4px; }
.langs { margin-left: auto; display: flex; gap: 2px; }
.lang { padding: 6px 10px; border-radius: 8px; text-decoration: none; font-size: 14px; color: var(--muted); }
.lang.on { background: var(--soft); color: var(--ink); font-weight: 600; }

.btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; border: 0; cursor: pointer; text-decoration: none;
  background: var(--accent); color: var(--on-accent); font: inherit; font-weight: 600; padding: 10px 18px; border-radius: 12px; }
.btn { transition: transform 120ms var(--ease-out), filter 150ms ease; }
.btn:hover { filter: brightness(1.08); }
.btn:active { transform: scale(.97); }
.btn.ghost { background: var(--surface); color: var(--ink); border: 1.5px solid var(--line); }
.btn.big { padding: 14px 24px; font-size: 17px; }

.hero { background: var(--hero); position: relative; overflow: hidden; }
.hero::before { content: ""; position: absolute; inset: 0; background: var(--orn); opacity: var(--orn-o); pointer-events: none;
  -webkit-mask: var(--girih) 0 0 / 56px 56px repeat; mask: var(--girih) 0 0 / 56px 56px repeat; }
.hero-in { position: relative; }
.hero-in { display: grid; grid-template-columns: 1.05fr 1fr; gap: 40px; padding: 48px 16px; align-items: start; }
.hero p { font-size: 18px; color: var(--muted); max-width: 560px; }
.hero-btns { display: flex; gap: 10px; flex-wrap: wrap; }
.trust { list-style: none; padding: 0; margin: 18px 0 0; display: grid; gap: 6px; color: var(--ok); font-size: 15px; }

/* Подбор тура */
.finder { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); padding: 22px; }
.q { border: 0; margin: 0 0 18px; padding: 0; }
.q legend { font-weight: 700; font-size: 18px; margin-bottom: 10px; }
.qn { color: var(--muted); font-weight: 500; font-size: 14px; margin-right: 6px; }
.opts { display: flex; flex-wrap: wrap; gap: 8px; }
.opt input { position: absolute; opacity: 0; pointer-events: none; }
.opt span { display: inline-block; padding: 10px 14px; border: 1.5px solid var(--line); border-radius: 12px; cursor: pointer; background: var(--surface);
  transition: border-color 150ms ease, background-color 150ms ease, transform 120ms var(--ease-out); }
.opt:active span { transform: scale(.97); }
.opt input:checked + span { border-color: var(--accent); background: var(--accent-soft); font-weight: 600; }
.opt input:focus-visible + span { outline: 2px solid var(--accent-2); outline-offset: 2px; }
.finder-nav { display: flex; gap: 10px; justify-content: space-between; }
.finder.stepped .q { display: none; }
.finder.stepped .q.cur { display: block; }
.change { margin-top: 28px; }
.change summary { cursor: pointer; color: var(--link); font-weight: 600; margin-bottom: 14px; }

/* Карточки туров */
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 20px; }
.card { border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; display: flex; flex-direction: column; background: var(--surface); }
/* Подъём карточки — только там, где есть настоящий курсор (на телефоне «залипал» бы после касания). */
@media (hover: hover) and (pointer: fine) {
  .card { transition: transform 200ms var(--ease-out), box-shadow 200ms var(--ease-out); }
  .card:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
}
.card-img { position: relative; aspect-ratio: 16 / 10; background: var(--soft); display: block; }
.card-img img, .card-img .ph { width: 100%; height: 100%; object-fit: cover; }
.pick { position: static; background: var(--warm); color: var(--on-warm); font-weight: 700; font-size: 13px; padding: 4px 10px; border-radius: 99px; box-shadow: var(--shadow); }
.card-body { padding: 16px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.card-body :is(h2, h3) a { text-decoration: none; }
.one { margin: 0; color: var(--muted); }
.chips { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.chips li { background: var(--soft); border-radius: 99px; padding: 3px 10px; font-size: 13px; }
.why { list-style: none; padding: 0; margin: 0; color: var(--ok); font-size: 14px; display: grid; gap: 2px; }
.card-foot { margin-top: auto; display: flex; flex-direction: column; gap: 10px; }
.price b { font-size: 22px; }

.themes { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; }
.theme { text-decoration: none; padding: 20px; border-radius: var(--radius); background: var(--soft); position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 4px; }
.theme b { font-size: 18px; }
.theme span { color: var(--muted); font-size: 14px; }
.theme:hover { background: var(--accent-soft); }
.tabs { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 22px; }
.tabs a { text-decoration: none; padding: 8px 14px; border-radius: 99px; border: 1.5px solid var(--line); font-size: 14px; }
.tabs a.on { border-color: var(--accent); background: var(--accent-soft); font-weight: 600; }
.tabs span { color: var(--muted); }

/* Страница тура */
.crumbs { margin: 0 0 12px; font-size: 14px; }
.crumbs a { color: var(--link); }
.tour-top { display: grid; grid-template-columns: 1.4fr 1fr; gap: 32px; align-items: start; }
.gallery { display: grid; grid-template-columns: 2fr 1fr; gap: 8px; border-radius: var(--radius); overflow: hidden; }
.gallery img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4 / 3; }
.gallery img:first-child { grid-row: span 2; aspect-ratio: auto; }
.buy { position: sticky; top: 84px; display: flex; flex-direction: column; gap: 10px; }
.buy h1 { font-size: 30px; }
.pick-badge { align-self: flex-start; background: var(--warm); color: var(--on-warm); font-weight: 700; margin: 0; padding: 4px 12px; border-radius: 99px; font-size: 14px; }
.buy-btns { display: flex; flex-wrap: wrap; gap: 8px; }
.fit { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin: 36px 0; }
.fit > div { border-radius: var(--radius); padding: 18px 20px; }
.fit-yes { background: var(--ok-bg); }
.fit-no { background: var(--no-bg); }
.fit .ilist { list-style: none; padding: 0; margin: 0; display: grid; gap: 6px; }
.fit .ilist li { display: grid; grid-template-columns: 20px 1fr; gap: 8px; align-items: start; }
.fit .ilist .ic { margin-top: .3em; }
.fit-yes .ic { color: var(--ok); }
.fit-no .ic { color: var(--no); }
.desc .wp { max-width: 860px; }
.desc .wp img { border-radius: 12px; }
.desc .wp table { border-collapse: collapse; width: 100%; }
.desc .wp td, .desc .wp th { border: 1px solid var(--line); padding: 6px 8px; }

/* Заявка */
.custom { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; background: var(--soft); border-radius: var(--radius); padding: 28px; }
.req { display: grid; gap: 12px; }
.req label { display: grid; gap: 4px; font-weight: 600; font-size: 14px; }
.req input, .req textarea { font: inherit; padding: 10px 12px; border-radius: 10px; border: 1.5px solid var(--line); background: var(--surface); color: var(--ink); }
.req .ok { color: var(--ok); font-weight: 600; }
.note { background: var(--note-bg); color: var(--note-ink); padding: 12px 16px; border-radius: 12px; }

/* Сравнение */
.cmp { width: 100%; border-collapse: collapse; }
.cmp th, .cmp td { text-align: left; vertical-align: top; padding: 10px; border-bottom: 1px solid var(--line); }
.cmp img { width: 100%; max-width: 220px; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 10px; }
.cmp-wrap { overflow-x: auto; }

.foot { background: var(--soft); margin-top: 40px; }
.foot-in { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 24px; padding: 32px 16px; }
.foot-links, .foot-contacts { display: grid; gap: 6px; }
.foot a { text-decoration: none; }

@media (max-width: 860px) {
  .hero-in, .tour-top, .fit, .custom, .foot-in { grid-template-columns: 1fr; }
  .buy { position: static; }
  .nav { order: 3; width: 100%; overflow-x: auto; flex-wrap: nowrap; }
  .nav a { white-space: nowrap; }
}
/* Лупа в шапке — только на телефоне */
.search-tg { display: none; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 10px; color: var(--ink); background: none; border: 0; cursor: pointer; }
.search-tg:hover, .top.s-open .search-tg { background: var(--soft); }
.search-tg svg { width: 20px; height: 20px; }

/* Страницы и статьи со старого сайта */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.wp-article .wp { max-width: 1100px; margin: 0 auto; }
.wp img { height: auto; }
.wp .aca-h1-size { font-size: clamp(2.2rem, 5vw, 3.8rem); }
.posts { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 20px; }
.post { display: flex; flex-direction: column; gap: 10px; text-decoration: none; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.post img, .post .ph { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; background: var(--soft); }
.post > div { padding: 0 16px 16px; }
.post.no-img > div { padding-top: 16px; } /* новость без обложки — без пустого места под фото */
.post :is(h2, h3) { margin: 4px 0; }
/* Шрифты и цвета, на которые ссылаются стили старого сайта, — в новой гамме. */
body .wp { --font-display: Lora, "Iowan Old Style", "Palatino Linotype", Georgia, serif; --font-body: Manrope, "Avenir Next", system-ui, sans-serif; font-family: var(--font-body); }
.wp h1, .wp h2, .wp h3, .wp h4 { font-family: var(--font-display); }

/* Поиск в шапке */
.search { position: relative; flex: 1; max-width: 340px; }
.search input { width: 100%; border: 1.5px solid var(--line); border-radius: 12px; padding: 9px 14px; font: inherit; font-size: 14px; background: var(--soft); color: var(--ink); }
/* Подсказка в поле поиска — цвет «muted» темы (контраст AA в обеих темах), а не серый браузера. */
.search input::placeholder { color: var(--muted); opacity: 1; }
.search input:focus { outline: none; border-color: var(--accent); background: var(--surface); }
.suggest { position: absolute; top: calc(100% + 6px); left: 0; width: min(440px, 92vw); background: var(--surface); border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow); padding: 8px; z-index: 30; max-height: 70vh; overflow: auto; }
.suggest h4 { margin: 8px 10px 4px; font-size: 12px; text-transform: uppercase; letter-spacing: .5px; color: var(--muted); }
.suggest a { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 10px; text-decoration: none; }
.suggest a:hover, .suggest a.on { background: var(--soft); }
.suggest img, .suggest .ph { width: 48px; height: 36px; object-fit: cover; border-radius: 6px; background: var(--soft); flex: none; }
.suggest .s-name { font-size: 14px; line-height: 1.3; }
.suggest .s-price { margin-left: auto; font-weight: 700; font-size: 13px; white-space: nowrap; }
.s-empty { padding: 8px 10px; margin: 0; }
.tool { text-decoration: none; font-size: 20px; position: relative; padding: 4px 8px; }

/* Страница тура: меню разделов, вопросы, «похожие и лучше», липкая панель */
.tabs-sticky { position: sticky; top: 64px; z-index: 10; background: var(--bg); border-bottom: 1px solid var(--line); display: flex; gap: 4px; overflow-x: auto; margin: 28px 0 0; }
.tabs-sticky a { text-decoration: none; padding: 12px 14px; color: var(--muted); white-space: nowrap; border-bottom: 2px solid transparent; }
.tabs-sticky a.on { color: var(--ink); border-color: var(--accent); font-weight: 600; }
/* margin-block, а не margin: иначе блок внутри .wrap теряет центрирование (страница города). */
.faq { margin-block: 36px; }
.faq > * { max-width: 860px; }
.faq details { border: 1px solid var(--line); border-radius: 12px; padding: 12px 16px; margin-bottom: 8px; }
.faq summary { cursor: pointer; font-weight: 600; }
.faq details p { margin: 8px 0 0; color: var(--muted); }
.cmp.vs { margin-bottom: 24px; }
.cmp.vs .cur { background: var(--accent-soft); }
.fav { min-width: 44px; font-size: 18px; }
.fav.on { color: var(--heart); }
.buybar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 25; background: var(--surface); border-top: 1px solid var(--line); box-shadow: var(--shadow); }
.buybar-in { display: flex; align-items: center; gap: 16px; padding: 10px 16px; }
.buybar-name { font-weight: 600; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.buybar-price b { font-size: 18px; }

/* Каталог с фильтрами */
.catalog { display: grid; grid-template-columns: 240px 1fr; gap: 28px; align-items: start; }
.facets { position: sticky; top: 84px; display: grid; gap: 18px; }
.fbox { position: sticky; top: 84px; }
.fbox > summary { display: none; }
.facet h3 { font-size: 14px; text-transform: uppercase; letter-spacing: .4px; color: var(--muted); margin: 0 0 6px; }
.hint { cursor: help; color: var(--accent); }
.fv { display: flex; justify-content: space-between; text-decoration: none; padding: 6px 10px; border-radius: 8px; font-size: 15px; }
.fv:hover { background: var(--soft); }
.fv.on { background: var(--accent-soft); font-weight: 600; }
.fv span { color: var(--muted); }
.card.mini .card-body { padding: 12px; }
.mt { margin-top: 28px; }

@media (max-width: 860px) {
  .catalog { grid-template-columns: 1fr; }
  .facets { position: static; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
  /* Телефон: строка «логотип + лупа, избранное, тема, язык», под ней меню одной листаемой строкой.
     Поиск раскрывается по лупе (без JS лупа — ссылка на страницу поиска). */
  .top-in { gap: 0 8px; min-height: 0; padding-top: 6px; }
  .logo img { height: 38px; }
  .search-tg { display: inline-flex; }
  .search { display: none; order: 4; max-width: none; flex-basis: 100%; padding-bottom: 10px; }
  .top.s-open .search { display: block; }
  .nav, .tabs { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; scroll-snap-type: x proximity; overscroll-behavior-x: contain;
    -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 36px), transparent); mask-image: linear-gradient(to right, #000 calc(100% - 36px), transparent); }
  .nav::-webkit-scrollbar, .tabs::-webkit-scrollbar { display: none; }
  .nav { margin: 0 -16px; padding: 2px 32px 6px 12px; flex-basis: calc(100% + 32px); width: auto; }
  .nav a { padding: 8px 10px; scroll-snap-align: start; }
  .tabs { margin-inline: -16px; padding: 2px 40px 4px 16px; scroll-padding-inline: 16px; }
  .tabs a { white-space: nowrap; flex: none; scroll-snap-align: start; }
  /* Главная: города — лентой (следующая карточка выглядывает), «Как поехать» — в две колонки */
  .city-tiles.strip { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 72%; overflow-x: auto; scroll-snap-type: x mandatory;
    margin-inline: -16px; padding: 0 16px 6px; scroll-padding-inline: 16px; scrollbar-width: none; overscroll-behavior-x: contain; }
  .city-tiles.strip::-webkit-scrollbar { display: none; }
  .city-tiles.strip > * { scroll-snap-align: start; }
  .city-tiles.strip span span { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  .tabs-sticky { top: 0; }
  /* Телефон: шапка не липнет (иначе занимает пятую часть экрана), липнет только меню разделов тура */
  .top { position: relative; } /* не static: подсказки поиска должны быть поверх карточек и полос */
  .gallery { grid-template-columns: repeat(3, 1fr); }
  .gallery img { height: auto; }
  .gallery img:first-child { grid-row: auto; grid-column: 1 / -1; aspect-ratio: 4 / 3; }
  .buybar-name { display: none; }
  /* Фильтры каталога — под кнопкой, туры видны сразу */
  .fbox { position: static; }
  /* iPhone увеличивает страницу при вводе, если шрифт поля меньше 16px */
  input, textarea, select, .search input { font-size: 16px; }
  .fbox > summary { display: inline-flex; list-style: none; cursor: pointer; margin-bottom: 12px; }
  .fbox > summary::-webkit-details-marker { display: none; }
  .fbox > summary::before { content: '⚙ '; white-space: pre; }
  .buybar-in { justify-content: space-between; }
}

/* «Дополните поездку» и связки в подборе */
.addons { margin-top: 36px; }
.addons h3 { font-size: 15px; margin: 22px 0 10px; color: var(--muted); text-transform: uppercase; letter-spacing: .4px; }
.addon-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 10px; }
.addon { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border: 1.5px solid var(--line); border-radius: 14px; cursor: pointer; background: var(--surface); }
.addon:has(input:checked) { border-color: var(--accent); background: var(--soft); }
.addon input { width: 20px; height: 20px; flex: none; accent-color: var(--accent); }
.addon img, .addon .ph { width: 64px; height: 48px; object-fit: cover; border-radius: 8px; flex: none; background: var(--soft); }
.addon-txt { display: grid; gap: 2px; line-height: 1.3; }
.addon-txt a { font-weight: 600; text-decoration: none; }
.addon-txt .muted { font-size: 14px; }
.addon-sum { margin: 0; padding: 10px 12px; border-radius: 12px; background: var(--soft); font-size: 14px; }
.plus { margin: 4px 0 0; padding: 10px 12px; border-radius: 12px; background: var(--soft); font-size: 14px; line-height: 1.4; }
.plus a { font-weight: 600; }

/* Вкрапления: майоликовая лента, орнамент у заголовков, цветные темы */
.tile-band { height: 6px; background: var(--band) 0 0 / 30px 6px repeat-x; }
.sect > h2::after, .faq > h2::after, .addons > h2::after, .desc > h2::after { content: ""; display: block; width: 60px; height: 6px; margin-top: 10px; border-radius: 3px; background: var(--band) 0 0 / 30px 6px repeat-x; }
.theme::after { content: ""; position: absolute; right: -14px; bottom: -14px; width: 84px; height: 84px; background: var(--orn); opacity: .2;
  -webkit-mask: var(--girih) center / 84px 84px no-repeat; mask: var(--girih) center / 84px 84px no-repeat; }
.theme b, .theme span { position: relative; }
.th-classic { background: var(--t-classic); } .th-nature { background: var(--t-nature); } .th-food { background: var(--t-food); }
.th-celebrate { background: var(--t-celebrate); } .th-short { background: var(--t-short); } .th-neighbors { background: var(--t-neighbors); }
.theme:hover { filter: saturate(1.3); }
.foot { position: relative; overflow: hidden; }
.foot::before { content: ""; position: absolute; inset: 0; background: var(--orn); opacity: calc(var(--orn-o) * .6); pointer-events: none;
  -webkit-mask: var(--girih) 0 0 / 56px 56px repeat; mask: var(--girih) 0 0 / 56px 56px repeat; }
.foot-in { position: relative; }
a:focus-visible, button:focus-visible, input:focus-visible, summary:focus-visible { outline: 2px solid var(--accent-2); outline-offset: 2px; }

/* Цвета темы под отдельными именами — для старых текстов: их стили задают свои --ink, --muted, --link
   и иначе подменили бы наши. Значение вычисляется на <html> и наследуется уже готовым цветом. */
:root, [data-theme=light], [data-theme=dark] { --x-ink: var(--ink); --x-muted: var(--muted); --x-link: var(--link); --x-soft: var(--soft); --x-line: var(--line); }
/* Старые статьи и программы туров: цвета, вписанные прямо в текст (таблицы, кнопки), — в цвета темы */
.wp table th, .wp table td { color: var(--x-ink) !important; border-color: var(--x-line) !important; }
.wp table th, .wp table tr[style*="background"] { background-color: var(--x-soft) !important; }
.wp table td { background-color: transparent !important; }
.wp table td a, .wp table th a { color: var(--x-link) !important; }
main .wp .aca .aca-table thead th, main .wp .aca-table thead th { background: var(--accent) !important; color: var(--on-accent) !important; }
.wp .aca-story__cta a { color: #04121c !important; background: #22aee6 !important; }

/* Истории и подборки старого сайта: свои цвета вписаны прямо в текст и рассчитаны только на тёмный фон —
   переводим их в обе темы. Черновые заглушки «📷 Фото: …» клиенту не показываем. */
.wp .aca-story, .wp .aca-story-head, .wp .aca-tm {
  --ink: #0b1a2e; --muted: #3b4a5b; --accent: #085566; --card: #f2f7fa; --cardSoft: #f6fafc; --line: #dbe4ec; --soon: #eef3f7; }
[data-theme=dark] .wp .aca-story, [data-theme=dark] .wp .aca-story-head, [data-theme=dark] .wp .aca-tm {
  --ink: #f4f8ff; --muted: #b9c6dc; --accent: #22aee6; --card: rgba(7, 14, 25, .64); --cardSoft: rgba(7, 14, 25, .38); --line: rgba(255, 255, 255, .08); --soon: rgba(255, 255, 255, .05); }
.wp .aca-story__photo-slot, .wp .aca-story-head__photo-slot { display: none; }
.wp details, .wp summary, .wp .faq-content { color: var(--x-ink) !important; }
.wp [style*="color: #666"], .wp [style*="color:#666"], .wp [style*="color: #777"], .wp [style*="color:#777"],
.wp [style*="color: #888"], .wp [style*="color:#888"], .wp [style*="color: #999"], .wp [style*="color:#999"] { color: var(--x-muted) !important; }
.wp [style*="color: #333"], .wp [style*="color:#333"], .wp [style*="color: #222"], .wp [style*="color:#222"] { color: var(--x-ink) !important; }
/* Внутри старых текстов фон часто чуть тонирован — приглушённый текст и ссылки берём на тон темнее */
:root:not([data-theme=dark]) main .wp { --x-muted: #3b4a5b; --x-link: #085566; }
.wp a:not([class]), .wp a.ext { color: var(--x-link); }
.wp a strong, .wp a b { color: inherit !important; }
main .wp, main .wp .aca { --t: var(--x-link); --td: var(--x-link); }
:root:not([data-theme=dark]) .wp .aca-sub { color: var(--x-muted) !important; }
.wp figcaption, .wp .wp-element-caption { color: var(--x-muted) !important; }
:root:not([data-theme=dark]) .wp .b2b-subtitle { color: #3b4a5b !important; }
[data-theme=dark] .wp .b2b-subtitle { color: var(--x-muted) !important; }
.wp .b2b-card-title { color: var(--x-ink) !important; }
/* Шапка программы тура: белый текст на бирюзовом — градиент на тон темнее, плашки читаются в обеих темах */
main .wp .aca-hero { background: linear-gradient(135deg, #0b6d84 0%, #08495a 100%) !important; }
main .wp .aca-hero, main .wp .aca-hero * { color: #fff !important; }
main .wp .aca-chip--accent { color: #0b6d84 !important; }
main .wp .aca-note, main .wp .aca-notes li { color: var(--x-muted) !important; }
/* Кнопки старого редактора WordPress — в цветах темы */
main .wp .wp-block-button:not(.is-style-outline) .wp-block-button__link { background: var(--accent) !important; color: var(--on-accent) !important; }
main .wp .is-style-outline .wp-block-button__link { background: transparent !important; color: var(--x-link) !important; border-color: currentColor !important; }
main .wp .aca .aca-cat, main .wp .aca .aca-cat__desc, main .wp .aca-cat, main .wp .aca-cat__desc { color: inherit !important; }
.wp [style*="#7a8794"], .wp [style*="#54636f"], .wp [style*="#5b6b7a"] { color: var(--x-muted) !important; }
main .wp .aca-table thead th.aca-col-top, main .wp .aca-table thead th.aca-col-top * { color: #fff !important; }

/* Статьи рядом с турами, страницы городов */
.reads { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; }
.read { display: flex; gap: 12px; align-items: flex-start; padding: 10px; border: 1px solid var(--line); border-radius: 14px; text-decoration: none; background: var(--surface); }
.read:hover { border-color: var(--accent); }
.read img, .read .ph { width: 84px; height: 64px; object-fit: cover; border-radius: 10px; flex: none; background: var(--soft); }
.read > span { display: grid; gap: 4px; line-height: 1.35; }
.read b { font-size: 15px; }
.read .muted { font-size: 14px; }
.city-line { margin: 0; font-size: 15px; }
.city-line a { color: var(--link); font-weight: 600; }
.more-line { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.city-hero .hero-in { align-items: center; }
.city-img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius); box-shadow: var(--shadow); }
.city-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; }
.city-tile { position: relative; display: grid; text-decoration: none; border-radius: var(--radius); overflow: hidden; background: var(--surface); border: 1px solid var(--line); }
.city-tile img, .city-tile .ph { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: var(--soft); }
.city-tile > span { display: grid; gap: 4px; padding: 12px 14px 14px; }
.city-tile b { font-family: Lora, Georgia, serif; font-size: 20px; }
.city-tile span span { color: var(--muted); font-size: 14px; line-height: 1.4; }
.city-tile:hover { border-color: var(--accent); }

.crumbs .sep { color: var(--muted); margin: 0 4px; }
.crumbs span:last-child:not(.sep) { color: var(--muted); }
.post-meta { margin: -4px 0 6px; font-size: 14px; }
/* «Источники» внизу своих статей и новостей (src/posts.js): ссылки — в новой вкладке. */
.post-sources { max-width: 68ch; margin-top: 28px; padding-top: 16px; border-top: 1px solid var(--line); font-size: 15px; }
.post-sources h2 { font-size: 18px; margin: 0 0 8px; }
.post-sources ol { margin: 0; padding-left: 1.4em; }
.post-sources li { margin: 4px 0; overflow-wrap: anywhere; }
.post-sources a { color: var(--link); }

.coll-chips { margin: 4px 0 24px; }

/* Первый экран: заголовок и подзаголовок над фото; ниже — фото Регистана (уже, по центру) с анкетой подбора внутри */
.hero-main { max-width: 1012px; padding: 32px 16px 28px; }
.hero-head { margin-bottom: 20px; }
.hero .hero-head h1 { margin-bottom: 10px; }
.hero-head { margin-bottom: 16px; }
/* Подзаголовок — на фото, на тёмном небе; под ним мягкое затемнение для читаемости */
.hero-visual { justify-content: space-between; }
.hero-visual::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(6, 12, 26, .7) 0%, rgba(6, 12, 26, 0) 45%); pointer-events: none; }
.hero .hero-lead { position: relative; z-index: 1; margin: 0 auto; padding: 30px 30px 0; max-width: 760px; text-align: center; font-size: 24px; line-height: 1.45; font-weight: 500; color: #fff; text-shadow: 0 1px 14px rgba(0, 0, 0, .5); }
.hero-visual { position: relative; display: flex; flex-direction: column; justify-content: space-between; min-height: 460px; border-radius: 24px; overflow: hidden; box-shadow: var(--shadow); background: #0b1220; }
.hero-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 60%; }
.hero-visual .finder { position: relative; z-index: 1; margin: 16px; padding: 16px 18px; border: 0;
  background: color-mix(in srgb, var(--surface) 97%, transparent); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); box-shadow: 0 10px 30px rgba(0, 0, 0, .25); }
.hero-visual .finder .q legend { font-size: 17px; margin-bottom: 8px; }
.hero-visual .finder .q { margin-bottom: 10px; }
.hero-visual .opts { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 8px; }
.hero-visual .opt { display: flex; }
.hero-visual .opt span { flex: 1; text-align: center; padding: 10px 12px; font-size: 15px; }
/* Полоса гарантий — одна на сайте, узкой строкой под шапкой на всех страницах (как у Smarton). */
.trust-strip { border-bottom: 1px solid var(--line); background: var(--soft); }
.trust-strip .trust { display: flex; justify-content: space-between; gap: 24px; margin: 0; padding: 7px 0; font-size: 13px; font-weight: 600; white-space: nowrap; }
/* Длинные языки (de) на 1100–1300 px: полоса прокручивается внутри себя, а не растягивает страницу вбок. */
.trust-strip .trust { overflow-x: auto; scrollbar-width: none; }
@media (max-width: 1100px) {
  /* Узкий экран: одна строка с прокруткой вбок (страница вбок не прокручивается), край затухает. */
  .trust-strip .trust { justify-content: flex-start; overflow-x: auto; scrollbar-width: none; overscroll-behavior-x: contain;
    margin-inline: -16px; padding-inline: 16px 40px; scroll-padding-inline: 16px; scroll-snap-type: x proximity;
    -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 36px), transparent); mask-image: linear-gradient(to right, #000 calc(100% - 36px), transparent); }
  .trust-strip .trust::-webkit-scrollbar { display: none; }
  .trust-strip .trust li { scroll-snap-align: start; }
}
/* Заголовок раздела со ссылкой справа («Все 28 туров →») */
.sect-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.more-link { color: var(--link); font-weight: 600; text-decoration: none; white-space: nowrap; }
.more-link:hover { text-decoration: underline; }
@media (max-width: 860px) {
  .hero-main { padding-top: 20px; }
  .hero .hero-lead { font-size: 18px; padding: 18px 16px 0; }
  .hero-visual { min-height: 600px; border-radius: 18px; }
  .hero-photo { top: auto; bottom: 0; height: 125%; object-position: 42% 100%; }
  .hero-visual .finder { margin: 10px; }
}

/* Карточки туров в ряду — одной высоты и по одной линии: фото фиксированной рамки,
   под название 2 строки, факты — одна строка, смысл — 2 строки (длиннее — многоточие); цена и «Сравнить» — внизу в одну строку. */
.card-img { overflow: hidden; }
.card-img img, .card-img .ph { position: absolute; inset: 0; }
.card-body :is(h2, h3) { line-height: 1.3; min-height: 2.6em; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.card.mini :is(h2, h3) { min-height: 0; }

/* Ветка для компаний */
.mice-points { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); font-size: 16px; }
.mf-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.req select { font: inherit; padding: 10px 12px; border-radius: 10px; border: 1.5px solid var(--line); background: var(--surface); color: var(--ink); }
@media (max-width: 520px) { .mf-row { grid-template-columns: 1fr; } }

/* Таблицы в программах туров на телефоне: были шириной 640px с прокруткой вбок — значения уходили за экран.
   Две колонки (название — значение) становятся списком; три и больше — ужимаются по ширине, текст переносится. */
@media (max-width: 640px) {
  .wp table { min-width: 0 !important; width: 100% !important; }
  .wp table th, .wp table td { white-space: normal !important; overflow-wrap: anywhere; font-size: 14px; padding: 8px 10px !important; }
  .wp table:not(:has(tr > :nth-child(3))),
  .wp table:not(:has(tr > :nth-child(3))) :is(thead, tbody, tr, th, td) { display: block; width: 100% !important; }
  .wp table:not(:has(tr > :nth-child(3))) tr { border-bottom: 1px solid var(--x-line); padding: 6px 0; }
  .wp table:not(:has(tr > :nth-child(3))) :is(th, td) { border: 0 !important; padding: 2px 12px !important; text-align: left !important; }
  .wp table:not(:has(tr > :nth-child(3))) tbody tr > :first-child, .wp table:not(:has(tr > :nth-child(3))) > tr > :first-child { font-weight: 700; color: var(--x-muted) !important; font-size: 13px; }
}

/* Отметки на фото карточки: «Горящий тур» и «Выбор AroundCA» */
.badges { position: absolute; left: 12px; top: 12px; z-index: 1; display: flex; flex-wrap: wrap; gap: 6px; }
.hot { background: #c2410c; color: #fff; font-weight: 700; font-size: 13px; padding: 4px 10px; border-radius: 99px; box-shadow: var(--shadow); }
.hot-badge { align-self: flex-start; margin: 0; background: #c2410c; color: #fff; font-weight: 700; font-size: 14px; padding: 5px 12px; border-radius: 12px; }

/* Поле-ловушка для спам-ботов — людям не видно */
.hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }

/* Плитки «Как поехать» — выбор формата до туров (без цен) */
.way-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.way { display: grid; gap: 6px; grid-template-rows: auto 1fr auto; align-content: stretch; padding: 18px; border-radius: var(--radius); background: var(--soft); border: 1px solid var(--line); text-decoration: none; position: relative; overflow: hidden; }
.way:hover { border-color: var(--accent); }
.way b { font-size: 17px; }
.way span { color: var(--muted); font-size: 14px; line-height: 1.4; }
.way em { font-style: normal; color: var(--link); font-weight: 600; font-size: 14px; margin-top: 4px; }

/* Языки (8): кнопка «🌐 EN» в шапке и компактный список; без JS — <details>. Цвета — только токены тем. */
.lang-menu { position: relative; }
.lang-menu > summary { list-style: none; display: inline-flex; align-items: center; gap: 6px; cursor: pointer; padding: 7px 10px; border-radius: 10px;
  color: var(--ink); font-size: 14px; font-weight: 600; border: 1.5px solid var(--line); background: var(--surface); }
.lang-menu > summary::-webkit-details-marker { display: none; }
.lang-menu > summary:hover, .lang-menu[open] > summary { background: var(--soft); }
.lang-menu > summary:focus-visible, .lang-list a:focus-visible, .lang-bar button:focus-visible { outline: 2px solid var(--link); outline-offset: 2px; }
.lang-list { position: absolute; right: 0; top: calc(100% + 6px); z-index: 40; margin: 0; padding: 6px; list-style: none; min-width: 168px;
  background: var(--surface); border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow); }
.lang-list a { display: block; padding: 8px 12px; border-radius: 8px; text-decoration: none; color: var(--ink); font-size: 15px; white-space: nowrap; }
.lang-list a:hover { background: var(--soft); }
.lang-list a.on { background: var(--accent-soft); font-weight: 700; }
.foot-langs { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 6px 16px; align-items: baseline; border-top: 1px solid var(--line); padding-top: 16px; font-size: 14px; }
.foot-langs a { color: var(--link); }
.foot-langs a[aria-current] { color: var(--ink); font-weight: 700; }
/* Подсказка «Эта страница есть на вашем языке» — рисуется скриптом, кэш страницы не меняется. */
.lang-bar { background: var(--accent-soft); color: var(--ink); border-bottom: 1px solid var(--line); font-size: 14px; }
.lang-bar .wrap { display: flex; align-items: center; gap: 12px; padding-top: 8px; padding-bottom: 8px; flex-wrap: wrap; }
.lang-bar a { color: var(--link); font-weight: 700; }
.lang-bar button { margin-left: auto; background: none; border: 0; color: var(--ink); font-size: 20px; line-height: 1; cursor: pointer; padding: 2px 8px; border-radius: 8px; }
.lang-bar button:hover { background: var(--soft); }

/* Китайский и японский: у Lora и Manrope нет иероглифов — свои системные шрифты сразу за латиницей. */
:lang(zh) body, body:lang(zh) { font-family: Manrope, "Avenir Next", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", "Source Han Sans SC", "Noto Sans CJK SC", system-ui, sans-serif; }
:lang(ja) body, body:lang(ja) { font-family: Manrope, "Avenir Next", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic UI", "Yu Gothic", Meiryo, "Noto Sans JP", "Noto Sans CJK JP", system-ui, sans-serif; }
:lang(zh) h1, :lang(zh) h2, :lang(zh) .city-tile b, :lang(zh) .wp h1, :lang(zh) .wp h2, :lang(zh) .wp h3, :lang(zh) .wp h4 {
  font-family: Lora, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", "Noto Sans CJK SC", sans-serif; letter-spacing: 0; }
:lang(ja) h1, :lang(ja) h2, :lang(ja) .city-tile b, :lang(ja) .wp h1, :lang(ja) .wp h2, :lang(ja) .wp h3, :lang(ja) .wp h4 {
  font-family: Lora, "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic UI", "Yu Gothic", Meiryo, "Noto Sans JP", "Noto Sans CJK JP", sans-serif; letter-spacing: 0; }
:lang(zh) body .wp { --font-body: Manrope, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", sans-serif; --font-display: Lora, "PingFang SC", "Microsoft YaHei", "Noto Sans SC", sans-serif; }
:lang(ja) body .wp { --font-body: Manrope, "Hiragino Kaku Gothic ProN", "Yu Gothic UI", "Yu Gothic", Meiryo, "Noto Sans JP", sans-serif; --font-display: Lora, "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, "Noto Sans JP", sans-serif; }
:lang(zh) .wp *, :lang(ja) .wp * { font-style: normal; } /* курсив у иероглифов — искусственный наклон, читается хуже */
:lang(zh), :lang(ja) { line-break: strict; }

/* Фото с width/height в разметке (src/img.js): где высоту задаёт aspect-ratio, атрибут не должен её перебивать. */
.post img, .city-tile img, .city-img { height: auto; }

/* Экспертность: мнение эксперта, цифры, календарь (src/expert-views.js). Цвета — только пары, проверяемые test/contrast.test.js. */
.expert, .numbers, .incl { margin: 36px 0; }
.expert-head, .numbers-head { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.expert-head h2, .numbers-head h2 { margin: 0; }
.author { display: flex; gap: 12px; align-items: center; max-width: 520px; flex-wrap: wrap; }
.author > div { display: grid; gap: 2px; }
.author-img, .author-ph { flex: none; width: 56px; height: 56px; border-radius: 50%; overflow: hidden; background: var(--soft); display: grid; place-items: center; font-weight: 700; color: var(--ink); }
.author-img img { width: 56px; height: 56px; object-fit: cover; height: 56px; }
.author-ok { color: var(--ok); font-weight: 600; font-size: 14px; }
.author-q { flex-basis: 100%; margin: 4px 0 0; padding-left: 12px; border-left: 3px solid var(--warm); color: var(--ink); font-style: italic; }
.small { font-size: 14px; }
.xcols { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.xcols.three { grid-template-columns: repeat(3, 1fr); }
.xcol { border-radius: var(--radius); padding: 18px 20px; background: var(--soft); color: var(--ink); }
.xcol h3 { margin: 0 0 8px; font-size: 16px; text-transform: uppercase; letter-spacing: .4px; }
.xcol.xpro { background: var(--ok-bg); }
.xcol.xcon { background: var(--no-bg); }
.xcol.xnote { background: var(--note-bg); }
.xcol p { margin: 6px 0 0; }
.xlist { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.xlist li { display: grid; grid-template-columns: 22px 1fr; gap: 8px; }
.xlist .mk { font-weight: 700; }
.xlist.pro .mk { color: var(--ok); }
.xlist.con .mk { color: var(--no); }
.xcol ul:not(.xlist) { margin: 0; padding-left: 20px; display: grid; gap: 4px; }
.how summary { cursor: pointer; color: var(--link); font-size: 14px; }
.how p { margin: 8px 0 0; max-width: 560px; color: var(--ink); background: var(--soft); padding: 10px 14px; border-radius: 12px; font-size: 14px; }
.stats { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 12px; margin: 0 0 14px; }
.stat { background: var(--soft); border-radius: var(--radius); padding: 14px 16px; }
.stat dt { color: var(--muted); font-size: 14px; }
.stat dd { margin: 4px 0 0; font-weight: 700; font-size: 20px; color: var(--ink); }
.stat-note { margin: 0 0 14px; color: var(--ink); }
.months { margin-top: 14px; }
.months-v { font-weight: 700; font-size: 20px; }
.typical { margin-top: 18px; }
.typical h3 { margin: 0 0 6px; }
/* Строка фактов карточки: «7 дней · Ташкент, Самарканд, Бухара +1 · группа» — одной строкой; города ужимаются первыми. */
.facts { list-style: none; display: flex; flex-wrap: nowrap; min-width: 0; margin: 0; padding: 0; font-size: 13px; font-weight: 600; color: var(--ink); line-height: 1.5; white-space: nowrap; }
.facts li { flex: none; }
.facts li:nth-child(2) { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.facts li + li::before { content: '·'; margin: 0 6px; color: var(--muted); }
.perk { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.45; min-height: 2.9em; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.card.mini .facts, .card.mini .perk { display: none; }
/* Вся карточка — ссылка на тур (через заголовок); «Сравнить» и ссылки внутри — поверх неё. */
.card { position: relative; }
.card-link::after { content: ''; position: absolute; inset: 0; z-index: 1; }
.card-link:focus-visible { outline: none; }
.card:has(.card-link:focus-visible) { outline: 2px solid var(--accent); outline-offset: 2px; }
.card :is(button, .plus a) { position: relative; z-index: 2; }
.card-body { padding: 14px 16px 16px; gap: 6px; }
.card-foot { flex-direction: row; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; padding-top: 6px; }
.card-foot { flex-wrap: nowrap; }
.card-foot .price { min-width: 0; flex: 1 1 auto; line-height: 1.25; }
.card-foot .price .muted:last-child { display: block; }
.card-foot .price b { font-size: 20px; }
.card-foot .price .muted { font-size: 13px; }
.card-foot .btn { flex: none; }
.btn.sm { padding: 8px 14px; font-size: 14px; min-height: 40px; }
/* Каталог и подборки на широком экране — три карточки в ряд, фото ниже: два ряда помещаются на экран. */
@media (min-width: 1100px) {
  .catalog .grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
  .card-img { aspect-ratio: 16 / 9; }
}
/* календарь месяцев */
.cal-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; padding-bottom: 6px; }
.cal { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(12, minmax(88px, 1fr)); gap: 8px; min-width: 1100px; }
.cal-m { border-radius: 12px; padding: 10px; display: grid; gap: 4px; align-content: start; color: var(--ink); font-size: 13px; }
.cal-m.r-great { background: var(--ok-bg); }
.cal-m.r-good { background: var(--note-bg); }
.cal-m.r-hard { background: var(--no-bg); }
.cal-m.r-quiet { background: var(--surface); box-shadow: inset 0 0 0 1px var(--line); }
.cal-m .cm { font-size: 14px; }
.cal-m .ct { font-size: 22px; font-weight: 700; }
.cal-m .cr { font-weight: 700; }
.r-great .cr { color: var(--ok); }
.r-good .cr { color: var(--note-ink); }
.r-hard .cr { color: var(--no); }
.r-quiet .cr { color: var(--ink); }
.cal-m .cw, .cal-m .cn { color: var(--ink); }
.cal-m .ch { font-weight: 600; }
.cal-hol { margin: 14px 0 0; padding-left: 20px; columns: 2; }
.cal-src { margin: 12px 0 0; }
@media (max-width: 760px) {
  .xcols, .xcols.three { grid-template-columns: 1fr; }
  .cal { grid-template-columns: repeat(12, 124px); min-width: 0; width: max-content; }
  .cal-hol { columns: 1; }
}

/* Подвал как на старом сайте: ссылки в две колонки, соцсети текстом, строка «Copyright … · Наверх».
   На телефоне — без горизонтальной прокрутки: длинные слова и @имена переносятся. */
.foot-in { grid-template-columns: 1.3fr 2fr 1fr; }
.foot-in > * { min-width: 0; }
.foot-links { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 20px; align-content: start; }
.foot-links a { overflow-wrap: break-word; }
.foot-social span, .foot-contacts > * { overflow-wrap: anywhere; }
.foot-social { display: flex; flex-wrap: wrap; gap: 2px 12px; font-size: 14px; margin: 0; }
.foot-social b { width: 100%; }
.foot-langs { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 4px 14px; align-items: baseline; }
.foot-bottom { grid-column: 1 / -1; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 16px;
  border-top: 1px solid var(--line); padding-top: 14px; font-size: 14px; }
.foot-bottom span { color: var(--muted); }
@media (max-width: 860px) { .foot-in { grid-template-columns: 1fr; } }
/* На телефоне ссылки подвала — строками по ширине слов: длинные названия не рвутся посреди слова. */
@media (max-width: 600px) { .foot-links { display: flex; flex-wrap: wrap; gap: 8px 20px; } }

/* Юридические документы (оферта, политика): текст дословно из PDF. */
.legal-pdf { margin: 0 0 20px; }
.legal-doc { overflow-wrap: anywhere; }
.legal-head { text-align: center; margin-bottom: 28px; }
.legal-head p { margin: 2px 0; }
.legal-head h1 { margin: 8px 0 6px; }
.legal-org { font-weight: 700; font-size: 20px; }
.legal-sub, .legal-ed { color: var(--muted); }
.legal-doc h2 { font-size: 20px; margin: 30px 0 8px; }
.legal-doc h3 { font-size: 17px; margin: 22px 0 6px; }
.legal-note, .legal-box { background: var(--soft); border-left: 4px solid var(--accent); padding: 10px 14px; border-radius: 8px; }
.legal-box { border-left: 0; }
.legal-caps { font-weight: 600; }
.legal-small { font-size: 14px; color: var(--muted); }
.legal-scroll { overflow-x: auto; }
.legal-table, .legal-req { width: 100%; border-collapse: collapse; margin: 12px 0 18px; }
.legal-table :is(th, td), .legal-req :is(th, td) { text-align: left; vertical-align: top; padding: 8px 10px; border: 1px solid var(--line); }
.legal-table thead th, .legal-req th { background: var(--soft); }
.legal-end { text-align: center; color: var(--muted); border-top: 1px solid var(--line); margin-top: 30px; padding-top: 14px; font-size: 14px; }
.consent a { color: var(--link); }

/* Счёт на оплату по ссылке (/pay/<токен>/) и демо-шлюз. */
.inv h1 { margin-bottom: 16px; }
.inv-facts { display: grid; gap: 0; margin: 0 0 22px; background: var(--soft); border-radius: var(--radius); padding: 6px 20px; }
.inv-facts div { display: grid; grid-template-columns: minmax(120px, 34%) 1fr; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.inv-facts div:last-child { border-bottom: 0; }
.inv-facts dt { color: var(--muted); }
.inv-facts dd { margin: 0; color: var(--ink); font-weight: 600; overflow-wrap: anywhere; }
.inv-no { font-variant-numeric: tabular-nums; letter-spacing: .02em; }
.inv-sum dd { font-size: 24px; font-weight: 800; }
.inv-st { border-radius: 12px; padding: 14px 18px; margin: 0 0 18px; color: var(--ink); }
.inv-st b { display: block; font-size: 18px; }
.inv-st p { margin: 4px 0 0; }
.inv-st.ok { background: var(--ok-bg); } .inv-st.ok b { color: var(--ok); }
.inv-st.no { background: var(--no-bg); } .inv-st.no b { color: var(--no); }
.inv-st.wait { background: var(--note-bg); } .inv-st.wait b { color: var(--note-ink); }
.inv-pay { display: grid; gap: 14px; justify-items: start; }
.inv-agree { display: flex; gap: 10px; align-items: flex-start; font-size: 16px; cursor: pointer; }
.inv-agree input { width: 20px; height: 20px; margin: 3px 0 0; flex: none; accent-color: var(--accent); }
.inv-agree a { color: var(--link); }
.inv-err { margin: 0; background: var(--no-bg); color: var(--no); border-radius: 10px; padding: 10px 14px; font-weight: 600; }
.inv-small { font-size: 14px; margin: 0; }
.inv-pay .btn { max-width: 100%; white-space: normal; }
.demo-bar { display: grid; gap: 4px; background: var(--demo-bg); color: var(--demo-ink); border-radius: var(--radius); padding: 18px 22px; margin: 0 0 22px; }
.demo-bar b { font-size: 26px; font-weight: 800; letter-spacing: .02em; }
.demo-btns { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 18px; }
@media (max-width: 520px) {
  .inv-facts div { grid-template-columns: 1fr; gap: 2px; }
  .demo-btns .btn { flex: 1 1 100%; }
  .demo-bar b { font-size: 22px; }
}

/* Страница поиска: поле с кнопкой (сюда ведёт лупа на телефоне без JS) */
.search-page { display: flex; gap: 8px; max-width: 560px; margin: 0 0 24px; }
.search-page input { flex: 1; min-width: 0; border: 1.5px solid var(--line); border-radius: 12px; padding: 10px 14px; font: inherit; background: var(--surface); color: var(--ink); }
.search-page input::placeholder { color: var(--muted); opacity: 1; }
.search-page input:focus { outline: none; border-color: var(--accent); }
/* Одна карточка в ряд — выравнивать по соседям не нужно, пустые строки под коротким названием не держим. */
@media (max-width: 640px) { .card-body :is(h2, h3), .perk { min-height: 0; } }
@media (max-width: 860px) {
  /* «Как поехать» на телефоне — две колонки: формат выбирается, не пролистываясь */
  .way-tiles { grid-template-columns: 1fr 1fr; gap: 8px; }
  .way { padding: 12px 12px 14px; gap: 4px; }
  .way b { font-size: 15px; line-height: 1.3; }
  .way span { font-size: 13px; line-height: 1.35; }
  .way em { margin-top: 2px; }
  .sub { margin-bottom: 16px; }
  .tabs.coll-chips { margin-inline: -16px; }
}
@media (max-width: 640px) {
  /* Телефон: секции плотнее (между блоками всё ещё больше, чем внутри), фото городов в ленте — 3:2 */
  .sect { padding-block: 28px; }
  .city-tiles.strip img, .city-tiles.strip .ph { aspect-ratio: 3 / 2; }
}

/* Страница тура, этап (б): одна фотография — на всю колонку 16:9; две — рядом, без пустой клетки. */
.gallery:has(> img:only-child) { grid-template-columns: 1fr; }
.gallery > img:only-child { grid-row: auto; aspect-ratio: 16 / 9; height: auto; }
.gallery:has(> img:nth-child(2):last-child) > img { grid-row: auto; aspect-ratio: 4 / 3; }
.gallery:has(> img:nth-child(2):last-child) > img + img { aspect-ratio: auto; height: 100%; }
/* «Цифры AroundCA»: одна-две плитки растягиваются, дыр в сетке нет */
.stats { grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); }
.incl > h2 { margin: 0 0 14px; }
/* Программа со старого сайта — под раскрывашкой (на телефоне свёрнута скриптом; без JS открыта) */
.prog { max-width: 860px; }
.prog > summary { cursor: pointer; display: inline-flex; align-items: center; gap: 8px; font-weight: 600; color: var(--link); padding: 8px 0; margin-bottom: 8px; }
.prog > summary::marker { color: var(--link); }
.faq details p a { color: var(--link); font-weight: 600; }
@media (max-width: 640px) {
  /* Кнопки покупки: «Оставить заявку» — во всю ширину, ниже «Спросить · Сравнить · ♡» */
  .buy-btns { display: grid; grid-template-columns: 1fr 1fr 44px; gap: 8px; margin: 0; }
  .buy-btns > :first-child { grid-column: 1 / -1; }
  .buy-btns .btn { min-height: 44px; padding-inline: 10px; white-space: normal; text-align: center; line-height: 1.2; }
  .buy-btns .fav { padding: 0; width: 44px; }
}

/* Результаты подбора: «Изменить ответы» рядом с заголовком, выбранные ответы — чипами над карточками */
.res-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; }
.res-head h1 { margin: 0; }
.res-head .change { margin: 0; }
.res-head .change[open] { flex-basis: 100%; order: 3; }
.res-head .change > summary { list-style: none; margin: 0; color: var(--ink); }
.res-head .change > summary::-webkit-details-marker { display: none; }
.res-head .change[open] > summary { margin-bottom: 14px; }
.res-head + .sub { margin-top: 10px; }
.answers { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin: 0 0 20px; }
.answers-t { font-size: 14px; color: var(--muted); font-weight: 600; }
.answers ul { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; }
.ans { display: inline-flex; align-items: center; gap: 8px; min-height: 36px; padding: 6px 12px 6px 14px; border-radius: 99px; border: 1.5px solid var(--line);
  background: var(--surface); color: var(--ink); text-decoration: none; font-size: 14px; font-weight: 600; }
.ans:hover { border-color: var(--accent); }
.ans-x { flex: none; color: var(--muted); }
.ans:hover .ans-x { color: var(--ink); }
/* Программа тура: у старого контейнера .wp — высота «на весь экран» и свой градиент (так был оформлен <body>
   старого сайта); под короткой программой оставалась пустая цветная простыня. Здесь — фон страницы, высота по тексту. */
#programme .wp { min-height: 0; background: none; padding-top: 4px; }

/* ===== Этап (в): движение, статьи, решения из Smarton, мелочи ===== */

/* Значки — единый набор inline-SVG (src/icons.js), цвет от текста. */
.ic { flex: none; width: 1em; height: 1em; vertical-align: -.125em; }
.trust li { display: flex; gap: 8px; align-items: flex-start; }
.trust li .ic { margin-top: .28em; }
.trust-strip .trust li { align-items: center; gap: 6px; }
.trust-strip .trust li .ic { margin: 0; }
.why li { display: flex; gap: 6px; align-items: flex-start; }
.why li .ic { margin-top: .25em; }
.hot, .hot-badge { display: inline-flex; align-items: center; gap: 5px; }
.xlist .mk { display: inline-flex; padding-top: .25em; }
.author-ok { display: inline-flex; align-items: center; gap: 5px; }
.h-ic { color: #c2410c; }
[data-theme=dark] .h-ic { color: var(--warm); }

/* Числа, которые сравнивают глазами: цены, температуры календаря, счётчики. */
.price, .s-price, .buybar-price, .cal-m .ct, .stat dd, .months-v, .cnt, .tabs span, .fv span, .cmp td { font-variant-numeric: tabular-nums; }
h1, h2 { text-wrap: balance; }
.req input, .req textarea, .search input, .search-page input { caret-color: var(--accent); }

/* Подбор: следующий вопрос появляется (уход — без анимации); первый показ — без анимации (класс anim ставит app.js). */
@keyframes q-in { from { opacity: 0; transform: translateY(8px); } }
.finder.stepped.anim .q.cur { animation: q-in 200ms var(--ease-out); }

/* Подсказки поиска и меню языков: появляются от своей кнопки, уходят сразу. */
@keyframes pop-in { from { opacity: 0; transform: translateY(-4px) scale(.98); } }
.suggest { transform-origin: top left; }
.suggest:not([hidden]) { animation: pop-in 150ms var(--ease-out); }
.lang-list { transform-origin: top right; }
.lang-menu[open] > .lang-list { animation: pop-in 150ms var(--ease-out); }

/* Нижняя панель покупки: выезжает снизу (240ms, «шторка»), уходит быстрее (180ms). */
.buybar[data-ready] { transform: translateY(100%); visibility: hidden; transition: transform 180ms var(--ease-out), visibility 0s linear 180ms; }
.buybar[data-ready].show { transform: none; visibility: visible; transition: transform 240ms var(--ease-drawer), visibility 0s; }

/* «Избранное» и «Сравнить»: короткий отклик; счётчик в шапке — при изменении. */
@keyframes pop { from { transform: scale(.9); } }
@keyframes bump { from { transform: scale(1.15); } }
.pop { animation: pop 160ms var(--ease-out); }
.cnt { display: inline-block; }
.cnt.bump { animation: bump 200ms var(--ease-out); }

/* Маркер ▶ у вопросов и раскрывашек — поворачивается на 90°. */
.faq summary, .prog > summary { list-style: none; }
.faq summary::-webkit-details-marker, .prog > summary::-webkit-details-marker { display: none; }
.faq summary::before, .prog > summary::before { content: ""; display: inline-block; width: 0; height: 0; margin-right: 10px; vertical-align: .12em;
  border-left: 7px solid currentColor; border-block: 5px solid transparent; transition: transform 150ms var(--ease-out); }
.faq details[open] > summary::before, .prog[open] > summary::before { transform: rotate(90deg); }
.faq summary::before { color: var(--accent); }

/* Первый экран главной — один авторский момент: фото проявляется из лёгкого размытия (только без «уменьшить движение»). */
@media (prefers-reduced-motion: no-preference) {
  .hero-photo.reveal { filter: blur(8px); transform: scale(1.02); }
  .hero-photo.reveal.in { filter: none; transform: none; transition: filter 400ms var(--ease-out), transform 400ms var(--ease-out); }
}

/* Аккордеон старых программ: вместо max-height (рывок на длинном тексте) — grid-template-rows 0fr → 1fr. */
.wp .aroundca-tour-accordion__panel { display: grid; grid-template-rows: 0fr; max-height: none; transition: grid-template-rows 220ms var(--ease-out); }
.wp .aroundca-tour-accordion__item.is-open .aroundca-tour-accordion__panel { grid-template-rows: 1fr; max-height: none; }
.wp .aroundca-tour-accordion__panel-inner { overflow: hidden; min-height: 0; }

/* «Уменьшить движение»: никаких сдвигов и масштабов — остаётся только прозрачность. */
@media (prefers-reduced-motion: reduce) {
  @keyframes q-in { from { opacity: 0; } }
  @keyframes pop-in { from { opacity: 0; } }
  @keyframes pop { from { opacity: .6; } }
  @keyframes bump { from { opacity: .6; } }
  .btn:active, .opt:active span, .card:hover, .qq:active { transform: none; }
  .btn, .opt span, .card, .qq { transition-property: opacity, filter, border-color, background-color, box-shadow; }
  .buybar[data-ready] { transform: none; opacity: 0; transition: opacity 180ms ease, visibility 0s linear 180ms; }
  .buybar[data-ready].show { transform: none; opacity: 1; transition: opacity 200ms ease, visibility 0s; }
  .faq summary::before, .prog > summary::before, .wp .aroundca-tour-accordion__panel { transition: none; }
}

/* Подвал на всю высоту окна: под коротким содержимым (404) нет пустоты под подвалом. */
body { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; }
body > main { flex: 1 0 auto; }

/* Статья: колонка текста 68 знаков, фон — фон страницы (не голубая панель старого сайта), H2 ступенью ниже H1. */
main .wp-article.is-post { max-width: calc(68ch + 32px); }
main .wp-article.is-post .wp { max-width: 68ch; margin-inline: 0; background: none; min-height: 0; padding-top: 4px; }
.wp-article.is-post > :is(.crumbs, .author, .post-meta, .city-line) { max-width: 68ch; }
.wp-article.is-post .wp h2:not(.aca-h1-size) { font-size: clamp(24px, 2.2vw, 30px); line-height: 1.25; margin: 1.6em 0 .5em; }
.wp-article.is-post .wp .aca-h1-size { font-size: clamp(28px, 3.4vw, 40px); line-height: 1.15; }
.wp-article.is-post .author { margin-bottom: 4px; }

/* Главная: «Горящий тур» — строкой-плашкой (без второй карточки). */
.hot-line { padding-block: 8px 0; }
.hot-strip { display: flex; align-items: center; gap: 10px; padding: 14px 18px; border-radius: 14px; background: var(--warm-soft); border: 1px solid var(--line);
  color: var(--ink); text-decoration: none; transition: border-color 150ms ease; }
.hot-strip:hover { border-color: var(--warm); }
.hot-strip b { white-space: nowrap; }
.hot-strip span { min-width: 0; }
.hot-ic { width: 22px; height: 22px; color: #c2410c; }
[data-theme=dark] .hot-ic { color: var(--warm); }
.hot-go { margin-left: auto; width: 20px; height: 20px; color: var(--link); }
@media (max-width: 640px) { .hot-strip { flex-wrap: wrap; row-gap: 2px; } .hot-strip span { flex-basis: calc(100% - 64px); } }

/* «Похожие и лучше»: таблица без цен; подписи колонок — над названием тура. */
.cmp.vs { margin-bottom: 8px; min-width: 560px; }
.cmp.vs thead th { vertical-align: bottom; }
.cmp.vs .vs-k { display: block; font-size: 13px; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; margin-bottom: 4px; }
.cmp.vs .cur .vs-k { color: var(--ink); }
.cmp.vs thead a, .cmp.vs thead b { font-weight: 700; line-height: 1.3; display: block; }
.cmp.vs thead a { color: var(--link); }
.cmp.vs tbody th { color: var(--muted); font-weight: 600; font-size: 14px; white-space: nowrap; }
#similar .more-line { margin-top: 8px; }

/* Готовые вопросы над формой тура (кнопки ставит app.js; без JS — просто подсказка). */
.qqs { display: grid; gap: 8px; }
.qqs-t { font-weight: 600; font-size: 14px; }
.qqs ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.qqs li { font-size: 14px; color: var(--ink); }
.qqs li:not(:has(button)) { padding: 6px 12px; border-radius: 99px; background: var(--surface); border: 1.5px dashed var(--line); }
.qq { font: inherit; font-size: 14px; color: var(--ink); background: var(--surface); border: 1.5px solid var(--line); border-radius: 99px; padding: 7px 14px; cursor: pointer;
  transition: border-color 150ms ease, transform 120ms var(--ease-out); }
.qq:hover { border-color: var(--accent); }
.qq:active { transform: scale(.97); }

/* Подвал: «Есть вопрос?» во всю ширину над колонками; колонок теперь две. */
.foot-in { grid-template-columns: 1.3fr 2fr; }
.foot-ask { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px;
  padding: 16px 20px; border-radius: var(--radius); background: var(--surface); border: 1px solid var(--line); }
.foot-ask p { margin: 0; }
.foot-ask b { font-size: 18px; margin-right: 8px; }
.foot-ask-links { display: flex; flex-wrap: wrap; gap: 8px; }
.foot-ask .btn { text-decoration: none; }
@media (max-width: 860px) { .foot-in { grid-template-columns: 1fr; } }

/* 404: поиск и три раздела. */
.nf .search-page { margin-top: 8px; }
.nf-links { display: flex; flex-wrap: wrap; gap: 8px 24px; margin: 0 0 24px; }
.nf-links a { color: var(--link); font-weight: 600; }
@media (prefers-reduced-motion: reduce) { .qq:active { transform: none; } }
/* Подвал сразу под майоликовой лентой — без белой полосы между ними. */
.tile-band + .foot { margin-top: 0; }
body > main { padding-bottom: 40px; }

/* «Сочетается с турами» на странице продления — компактный список: название · дни · формат · цена (решение владельца 07.10). */
.combo-list { list-style: none; padding: 0; margin: 12px 0 0; display: grid; gap: 0; max-width: 860px; }
.combo-list li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 16px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.combo-list a { font-weight: 600; }
.combo-list .muted { font-variant-numeric: tabular-nums; }

/* Страница MICE — лендинг для компаний (content/mice.json): первый экран с гарантиями, форматы плиткой
   «один крупный + четыре», шаги полосой, таблицы квестов и направлений (на телефоне — карточками строк). */
.mice-hero-in { position: relative; display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 32px 48px; align-items: center; padding: 48px 16px 44px; }
.mice-hero h1 { font-size: clamp(30px, 4.2vw, 46px); text-wrap: balance; }
.hero .mice-lead { font-size: 19px; color: var(--muted); max-width: 58ch; margin: 0 0 22px; }
.mice-hero .hero-btns { margin: 0; max-width: none; }
.mice-proof { list-style: none; margin: 0; padding: 8px 22px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.mice-proof li { display: flex; gap: 12px; align-items: flex-start; padding: 14px 0; font-weight: 600; line-height: 1.4; }
.mice-proof li + li { border-top: 1px solid var(--line); }
.mice-proof .ic { flex: none; width: 22px; height: 22px; color: var(--ok); margin-top: 1px; }
/* Один авторский момент: гарантии на первом экране проявляются по очереди (только CSS, без «уменьшить движение»). */
@media (prefers-reduced-motion: no-preference) {
  @keyframes mice-in { from { opacity: 0; transform: translateY(6px); } }
  .mice-proof li { animation: mice-in 420ms var(--ease-out) both; }
  .mice-proof li:nth-child(2) { animation-delay: 60ms; }
  .mice-proof li:nth-child(3) { animation-delay: 120ms; }
  .mice-proof li:nth-child(4) { animation-delay: 180ms; }
}

.mice-bento { display: grid; grid-template-columns: minmax(0, 1.25fr) repeat(2, minmax(0, 1fr)); grid-auto-rows: auto; gap: 14px; }
.mice-tile { display: flex; flex-direction: column; border-radius: var(--radius); background: var(--soft); border: 1px solid var(--line); overflow: hidden; transition: border-color 150ms ease; }
.mice-tile > div { padding: 18px 20px 20px; }
.mice-tile h3 { font-size: 18px; margin-bottom: 6px; }
.mice-tile p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.5; }
.mice-tile.lead { grid-row: span 2; background: var(--accent-soft); }
.mice-tile.lead img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; flex: 1 1 auto; min-height: 0; }
.mice-tile.lead h3 { font-family: Lora, "Iowan Old Style", "Palatino Linotype", Georgia, serif; font-size: 24px; font-weight: 600; }
.mice-tile.lead p { color: var(--ink); font-size: 16px; }
@media (hover: hover) and (pointer: fine) { .mice-tile:hover { border-color: var(--accent); } }

.mice-h3 { font-size: 20px; margin: 36px 0 14px; }
.mice-moments { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px 24px; margin: 0; }
.mice-moments > div { border-top: 1px solid var(--line); padding-top: 10px; }
.mice-moments dt { font-weight: 700; margin-bottom: 2px; }
.mice-moments dd { margin: 0; color: var(--muted); font-size: 14.5px; line-height: 1.5; }

.mice-steps { list-style: none; counter-reset: st; margin: 6px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 24px; }
.mice-steps li { counter-increment: st; position: relative; display: grid; gap: 4px; align-content: start; padding-top: 52px; }
.mice-steps li::before { content: counter(st); position: absolute; top: 0; left: 0; z-index: 1; width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center;
  background: var(--accent); color: var(--on-accent); font-weight: 700; font-variant-numeric: tabular-nums; }
.mice-steps li:not(:last-child)::after { content: ""; position: absolute; top: 18px; left: 46px; right: -16px; height: 2px; background: var(--line); }
.mice-steps b { font-size: 17px; }
.mice-steps span { color: var(--muted); font-size: 15px; line-height: 1.5; }

.mice-table { width: 100%; border-collapse: collapse; font-size: 15px; }
.mice-table :is(th, td) { text-align: left; vertical-align: top; padding: 12px 14px; border-bottom: 1px solid var(--line); }
.mice-table thead th { font-size: 13px; font-weight: 700; color: var(--muted); border-bottom: 2px solid var(--line); white-space: nowrap; }
.mice-table tbody th { font-weight: 700; }
.mice-table.quests tbody th { width: 46%; }
.mice-table.quests tbody th b { display: block; font-size: 17px; margin-bottom: 4px; }
.mice-table.quests tbody th .muted { display: block; font-weight: 400; font-size: 14.5px; line-height: 1.5; }
.mice-table td { font-variant-numeric: tabular-nums; }
.mice-incl { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 40px; margin-top: 28px; }
.mice-incl h3 { font-size: 17px; margin-bottom: 4px; }
.mice-incl .trust { margin-top: 8px; color: var(--ink); gap: 8px; }
.mice-incl .trust .ic { color: var(--ok); flex: none; margin-top: 4px; }
.mice-incl .trust li { display: flex; gap: 8px; }
.mice-extra { margin: 8px 0 0; padding-left: 20px; color: var(--muted); display: grid; gap: 8px; }

.mice-agency p { margin: 0; padding: 14px 18px; border-radius: 14px; background: var(--soft); border: 1px solid var(--line); }
.mice-agency a { color: var(--link); font-weight: 600; white-space: nowrap; }

@media (max-width: 960px) {
  .mice-moments { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mice-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
  .mice-steps li::after { display: none; }
}
@media (max-width: 860px) {
  .mice-hero-in { grid-template-columns: 1fr; padding: 28px 16px 28px; gap: 22px; }
  .hero .mice-lead { font-size: 17px; margin-bottom: 18px; }
  .mice-bento { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mice-tile.lead { grid-column: 1 / -1; grid-row: auto; }
  .mice-tile.lead img { aspect-ratio: 21 / 9; }
}
@media (max-width: 720px) {
  .mice-table, .mice-table tbody, .mice-table tr, .mice-table :is(th, td) { display: block; width: auto !important; }
  .mice-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .mice-table tr { border: 1px solid var(--line); border-radius: 14px; padding: 6px 0; margin-bottom: 10px; background: var(--surface); }
  .mice-table :is(th, td) { border: 0; padding: 6px 16px; }
  .mice-table td::before { content: attr(data-label); display: block; font-size: 12.5px; font-weight: 700; color: var(--muted); }
  .mice-table.places tbody th { font-size: 17px; }
  .mice-incl { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .mice-bento, .mice-moments, .mice-steps { grid-template-columns: 1fr; }
  .mice-steps li { padding: 0 0 0 52px; min-height: 38px; }
  .mice-hero .hero-btns .btn { flex: 1 1 100%; }
}
#mice-programs .grid { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.mice-tile.lead img { height: auto; }
@media (max-width: 720px) {
  /* Телефон: подписи ячеек — в строку («Длительность: 2–2,5 часа»), а не отдельной строкой. */
  .mice-table td::before { display: inline; content: attr(data-label) ": "; font-size: 13.5px; }
  .mice-table :is(th, td) { padding: 3px 16px; }
  .mice-table tr { padding: 10px 0; }
  /* Готовые программы — лентой с прокруткой вбок, как города на телефоне. */
  #mice-programs .grid { grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: 82%; overflow-x: auto; scroll-snap-type: x mandatory;
    gap: 12px; margin-inline: -16px; padding: 0 16px 8px; scroll-padding-inline: 16px; scrollbar-width: none; }
  #mice-programs .grid::-webkit-scrollbar { display: none; }
  #mice-programs .card { scroll-snap-align: start; }
}

/* Страница «Для агентств» (content/b2b.json): первый экран, шаги, плитки и факты — классы MICE выше; здесь —
   условия партнёра (сетка с галочками), четыре направления (крупное + три в столбец) и документы. */
.b2b-terms { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px 32px; margin: 6px 0 0; }
.b2b-terms > div { border-top: 1px solid var(--line); padding-top: 12px; }
.b2b-terms dt { display: flex; gap: 10px; align-items: flex-start; font-weight: 700; font-size: 17px; margin-bottom: 4px; }
.b2b-terms dt .ic { flex: none; width: 20px; height: 20px; color: var(--ok); margin-top: 2px; }
.b2b-terms dd { margin: 0 0 0 30px; color: var(--muted); font-size: 15px; line-height: 1.5; }
.b2b-bento { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.b2b-bento .mice-tile.lead { grid-column: 1 / -1; grid-row: auto; flex-direction: row; align-items: stretch; }
.b2b-bento .mice-tile.lead img { width: 42%; flex: none; aspect-ratio: auto; max-height: 240px; }
.b2b-bento .mice-tile.lead > div { align-self: center; padding: 22px 26px; }
.b2b-go { display: flex; flex-wrap: wrap; gap: 4px 18px; margin: 10px 0 0 !important; }
.b2b-go a { color: var(--link); font-weight: 600; font-size: 15px; }
.b2b-docs { margin-top: 30px; padding: 16px 22px 18px; border-radius: 14px; background: var(--soft); border: 1px solid var(--line); }
.b2b-docs h3 { font-size: 18px; margin-bottom: 10px; }
.b2b-doclist { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 24px; }
.b2b-doclist li { display: grid; gap: 2px; align-content: start; line-height: 1.45; }
.b2b-doclist b { font-size: 16px; }
.b2b-doclist span { color: var(--muted); font-size: 15px; line-height: 1.5; }
.b2b-note { margin: 14px 0 0; color: var(--muted); font-size: 15px; max-width: 70ch; }
.b2b-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 960px) {
  .b2b-terms { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
  .b2b-bento, .b2b-facts { grid-template-columns: 1fr; }
  .b2b-bento .mice-tile.lead { flex-direction: column; }
  .b2b-bento .mice-tile.lead img { width: 100%; aspect-ratio: 21 / 9; max-height: none; }
  .b2b-bento .mice-tile.lead > div { padding: 18px 20px 20px; }
}
@media (max-width: 560px) {
  .b2b-terms, .b2b-doclist { grid-template-columns: 1fr; }
  .b2b-terms { gap: 12px; }
  .b2b-terms dd { font-size: 14.5px; }
  .b2b-doclist { gap: 6px; }
  .b2b-doclist li { display: block; }
  .b2b-doclist span::before { content: " — "; }
  /* Телефон: фото у «Туров по Центральной Азии» не нужно — страница короче. */
  .b2b-bento .mice-tile.lead img { display: none; }
}

/* Лендинги вместо «простыней» (src/landing.js, content/{how-we-work,about,contact,offers}.json): первый экран, шаги,
   условия и галочки — классы MICE/B2B выше; здесь — шесть шагов в три колонки, история, основатель, команда,
   вакансии, контакты с реквизитами и строки туров «Специальных предложений». */
.lp-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px 24px; }
.lp-steps li:nth-child(3n)::after { display: none; }
.lp-steps3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.lp-more { color: var(--link); font-weight: 600; font-size: 15px; margin-top: 2px; }
.lp-terms { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 980px; }
.lp-docs { margin-top: 22px !important; }
.lp-checks { list-style: none; margin: 6px 0 0; padding: 0; display: grid; gap: 10px; max-width: 760px; }
.lp-checks li { display: flex; gap: 10px; align-items: flex-start; line-height: 1.5; }
.lp-checks .ic { flex: none; width: 20px; height: 20px; color: var(--ok); margin-top: 2px; }
.lp-hero-img { width: 100%; height: auto; aspect-ratio: 800 / 524; object-fit: cover; border-radius: var(--radius); box-shadow: var(--shadow); }
.lp-story { padding-top: 36px; padding-bottom: 4px; }
.lp-story p { max-width: 68ch; margin: 0 0 14px; font-size: 17px; line-height: 1.7; }
.lp-founder { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 20px 40px; align-items: center; padding: 32px; border-radius: var(--radius); background: var(--soft); border: 1px solid var(--line); }
.lp-founder-ph { width: 220px; height: 220px; border-radius: 50%; object-fit: cover; }
.lp-founder p { max-width: 68ch; line-height: 1.65; }
.lp-quote { margin: 14px 0 16px; padding: 0; font-family: Lora, "Iowan Old Style", "Palatino Linotype", Georgia, serif; font-size: clamp(19px, 2.2vw, 23px); line-height: 1.45; }
.lp-quote p { margin: 0; }
.lp-quote p::before { content: open-quote; }
.lp-quote p::after { content: close-quote; }
:lang(fr) .lp-quote p::before { content: "«\a0"; }
:lang(fr) .lp-quote p::after { content: "\a0»"; }
.lp-mail { display: flex; align-items: center; gap: 8px; margin: 10px 0 0; font-weight: 600; }
.lp-mail .ic { flex: none; width: 18px; height: 18px; color: var(--muted); }
.lp-mail a, .lp-person a, .lp-careers a:not(.btn), .lp-contacts a { color: var(--link); text-underline-offset: 3px; }
.lp-team { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.lp-person { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 16px; align-items: start; }
.lp-person-ph { width: 88px; height: 88px; border-radius: 50%; object-fit: cover; }
.lp-person h3 { margin: 4px 0 0; }
.lp-person p { margin: 0 0 8px; color: var(--muted); font-size: 15px; line-height: 1.55; }
.lp-person .lp-role { color: var(--ink); font-weight: 600; font-size: 14px; margin-bottom: 8px; }
.lp-person .lp-mail { font-size: 15px; }
.lp-careers { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 16px 48px; padding-top: 24px; border-top: 1px solid var(--line); }
.lp-careers p { max-width: 62ch; line-height: 1.6; }
.lp-careers .btn .ic { width: 18px; height: 18px; }
.lp-who { font-weight: 700; margin: 4px 0 8px; }
.lp-careers .lp-checks { margin-bottom: 14px; }
.lp-contacts { display: grid; gap: 0; margin: 4px 0 0; max-width: 560px; }
.lp-contacts > div { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 4px 16px; padding: 14px 0; border-top: 1px solid var(--line); }
.lp-contacts dt { display: flex; gap: 10px; align-items: center; font-weight: 600; color: var(--muted); font-size: 15px; }
.lp-contacts dt .ic { flex: none; width: 20px; height: 20px; color: var(--accent); }
.lp-contacts dd { margin: 0; line-height: 1.5; }
.lp-contacts .lp-big { font-size: 19px; font-weight: 700; font-variant-numeric: tabular-nums; }
.lp-org { align-self: start; padding: 22px 24px; border-radius: var(--radius); background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow); }
.lp-org h2 { font-size: 22px; margin-bottom: 12px; }
.lp-org dl { margin: 0; display: grid; gap: 10px; }
.lp-org dt { font-size: 13px; font-weight: 700; color: var(--muted); }
.lp-org dd { margin: 0; font-weight: 600; font-variant-numeric: tabular-nums; }
.lp-org .lp-mail { margin-top: 16px; font-size: 15px; }
.lp-contact .mice-hero-in { align-items: start; }
.lp-offers { list-style: none; margin: 4px 0 0; padding: 0; max-width: 980px; }
.lp-offers li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 24px; align-items: baseline; padding: 14px 0; border-bottom: 1px solid var(--line); }
.lp-offers li:first-child { border-top: 1px solid var(--line); }
.lp-offers a { font-weight: 700; font-size: 17px; color: var(--ink); text-underline-offset: 3px; }
.lp-offers .muted { display: block; font-size: 15px; line-height: 1.5; margin-top: 2px; }
.lp-meta { margin: 0; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 2px 16px; font-size: 15px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.lp-meta span { color: var(--muted); }
.lp-meta .lp-price { color: var(--ink); font-weight: 700; }
@media (hover: hover) and (pointer: fine) { .lp-offers a:hover { color: var(--link); } }
@media (max-width: 960px) {
  .lp-steps, .lp-steps3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lp-team { grid-template-columns: 1fr; max-width: 720px; }
}
@media (max-width: 860px) {
  .lp-founder { grid-template-columns: 1fr; padding: 22px; }
  .lp-founder-ph { width: 160px; height: 160px; }
  .lp-careers { grid-template-columns: 1fr; }
  .lp-hero-img { aspect-ratio: 21 / 9; }
}
@media (max-width: 560px) {
  .lp-steps, .lp-steps3, .lp-terms { grid-template-columns: 1fr; }
  .lp-contacts > div { grid-template-columns: 1fr; padding: 12px 0; }
  .lp-offers li { grid-template-columns: 1fr; }
  .lp-meta { justify-content: flex-start; white-space: normal; }
  .lp-person { grid-template-columns: 64px minmax(0, 1fr); gap: 14px; }
  .lp-person-ph { width: 64px; height: 64px; }
  .lp-story p { font-size: 16px; }
  /* Телефон: фото в первом экране «О компании» не нужно — сразу текст. */
  .lp-hero-img { display: none; }
}

/* Плашка сравнения: появляется, когда в сравнении 2+ тура (вместо пункта меню, решение владельца 07.10). */
.cmp-bar { position: fixed; right: 16px; bottom: 16px; z-index: 30; display: inline-flex; align-items: center; gap: 6px; padding: 12px 18px;
  border-radius: 999px; background: var(--ink); color: var(--bg); font-weight: 600; text-decoration: none; box-shadow: 0 8px 24px rgb(0 0 0 / .18);
  animation: cmp-in 200ms var(--ease-out, ease-out); }
.cmp-bar[hidden] { display: none; }
.cmp-bar .cnt { margin-left: 0; }
@keyframes cmp-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@media (max-width: 860px) { .cmp-bar { bottom: 84px; right: 12px; } }
@media (prefers-reduced-motion: reduce) { .cmp-bar { animation: none; } }

/* Хаб каталога /tours/ без выбора: подбор + «все туры» сверху, дальше — плитки выбора; карточек и цен нет. */
.hub-lead { max-width: 720px; }
.hub-start { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 16px; align-items: stretch; margin-top: 8px; }
.hub-find { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); padding: 20px 22px; }
.hub-find h2 { margin: 0 0 6px; font-size: 22px; }
.hub-find .sub { font-size: 15px; margin: 0 0 12px; }
.hub-find .finder { background: none; border: 0; box-shadow: none; padding: 0; }
.hub-find .q { margin-bottom: 10px; }
.hub-find .q legend { font-size: 17px; margin-bottom: 8px; }
.hub-find .opts { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 8px; }
.hub-find .opt { display: flex; }
.hub-find .opt span { flex: 1; text-align: center; padding: 10px 12px; font-size: 15px; }
.hub-cards { display: grid; gap: 12px; grid-auto-rows: 1fr; }
.hub-card { position: relative; display: grid; gap: 6px; align-content: center; padding: 18px 48px 18px 20px; border-radius: var(--radius); background: var(--soft);
  border: 1px solid var(--line); text-decoration: none; color: var(--ink); }
.hub-card b { font-size: 18px; line-height: 1.3; color: var(--link); }
.hub-card span { color: var(--muted); font-size: 14px; line-height: 1.4; }
.hub-card .hub-go { position: absolute; right: 18px; top: 50%; translate: 0 -50%; width: 20px; height: 20px; color: var(--link); transition: translate 160ms var(--ease-out); }
.hub-card:hover { border-color: var(--accent); }
.hub-card:hover .hub-go { translate: 3px -50%; }
.city-tile em { font-style: normal; color: var(--link); font-weight: 600; font-size: 14px; }
.coll-tile img, .coll-tile .ph { aspect-ratio: 16 / 9; }
.coll-tile b { font-size: 18px; line-height: 1.3; }
.len-tiles .way { align-content: space-between; min-height: 92px; }
.hub-all { text-align: center; }
@media (max-width: 860px) {
  .hub-start { grid-template-columns: 1fr; }
  .hub-cards { grid-auto-rows: auto; }
  .hub-find { padding: 16px; }
  .len-tiles .way { min-height: 0; }
  .hub-all .btn { width: 100%; justify-content: center; text-align: center; }
}
.city-tiles + .city-line { margin-top: 14px; }
@media (max-width: 600px) {
  /* Хаб на телефоне: подборки и города — по две плитки в ряд, без длинной ленты фото. */
  .coll-tiles, .hub-cities { grid-template-columns: 1fr 1fr; gap: 10px; }
  .coll-tiles .city-tile > span, .hub-cities .city-tile > span { padding: 10px 10px 12px; }
  .coll-tile b, .hub-cities .city-tile b { font-size: 15px; }
  .hub-cities .city-tile img, .hub-cities .city-tile .ph { aspect-ratio: 16 / 9; }
}

/* Фото в статьях из открытых источников (src/photos.js): подпись с автором и лицензией. */
.wp figure.photo, .is-post .wp figure { margin: 28px 0; }
.is-post .wp figure img { display: block; width: 100%; height: auto; border-radius: 12px; }
.is-post .wp figcaption { margin-top: 8px; font-size: 14px; color: var(--x-muted); }
.is-post .wp figcaption .credit { display: block; font-size: 12px; margin-top: 2px; }
.post-photos ul { margin: 0; padding-left: 1.2em; }
.post-photos li { margin: 4px 0; overflow-wrap: anywhere; }
.is-post .wp figure img { max-height: 70vh; object-fit: cover; }

/* Подбор тура: плитки с фото («Что хотите», «Темп») и со значками («С кем едете») — только на странице подбора. */
.opts.pics, .opts.icons { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
.opts.pics .opt, .opts.icons .opt { display: flex; }
.opts.pics .opt span, .opts.icons .opt span { flex: 1; display: flex; flex-direction: column; padding: 0; overflow: hidden; border-radius: 14px; }
.opts.pics .opt img { display: block; width: 100%; aspect-ratio: 4 / 3; height: auto; object-fit: cover;
  transition: transform 300ms var(--ease-out); }
.opts.pics .opt:hover img { transform: scale(1.04); }
.opts.pics .opt b, .opts.icons .opt b { display: block; padding: 10px 12px; font-weight: 600; line-height: 1.25; }
.opts.icons .opt span { align-items: center; justify-content: center; text-align: center; padding: 16px 10px 6px; }
.opts.icons .opt .ic { font-size: 30px; color: var(--accent); }
.opts.icons .opt b { padding: 8px 4px 8px; }
.opts.pics .opt input:checked + span, .opts.icons .opt input:checked + span { border-color: var(--accent); box-shadow: 0 0 0 2px var(--accent); }
@media (prefers-reduced-motion: reduce) { .opts.pics .opt img { transition: none; } .opts.pics .opt:hover img { transform: none; } }
.opts.icons .opt .ic { width: 30px; height: 30px; }
@media (min-width: 700px) { .opts.icons, .opts.pics:has(> .opt:nth-child(5)) { grid-template-columns: repeat(5, 1fr); } }
/* Соцсети в подвале — значками; зона нажатия 40×40 */
.social-row { display: flex; gap: 6px; margin-top: 6px; flex-wrap: wrap; }
.foot-social .social { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 10px;
  color: var(--x-ink, var(--ink)); background: var(--soft); transition: background-color 150ms ease, color 150ms ease, transform 120ms var(--ease-out); }
.foot-social .social:hover { background: var(--accent); color: #fff; }
.foot-social .social:active { transform: scale(.94); }
.foot-social .social:focus-visible { outline: 2px solid var(--accent-2); outline-offset: 2px; }
/* Тур по теме внутри статьи */
.post-tour { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin: 28px 0; padding: 14px 18px;
  border-left: 3px solid var(--accent); background: var(--soft); border-radius: 0 12px 12px 0; }
.post-tour-t { width: 100%; font-size: 13px; text-transform: uppercase; letter-spacing: .04em; color: var(--x-muted); }
.post-tour a { font-weight: 700; color: var(--x-link); }

/* Travel Moments (src/moments.js) */
.tm-nav { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.tm-nav a { padding: 8px 16px; border: 1.5px solid var(--line); border-radius: 99px; font-weight: 600; color: var(--x-ink, var(--ink)); background: var(--surface); }
.tm-nav a:hover { border-color: var(--accent); }
.tm-help { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; padding: 20px 24px;
  border: 1px solid var(--line); border-left: 4px solid var(--accent); border-radius: var(--radius); background: var(--surface); }
.tm-help h2 { font-size: 20px; margin: 0 0 4px; }
.tm-help p { margin: 0; }
.tm-help-btns { display: flex; gap: 8px; flex-wrap: wrap; }
.tm-city { scroll-margin-top: 90px; }
.tm-moment { margin-top: 22px; }
.tm-moment h3 { font-size: 17px; margin: 0 0 6px; color: var(--x-muted); font-weight: 600; }
.tm-list { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--line); }
.tm-row { display: grid; grid-template-columns: 1fr auto; gap: 8px 24px; padding: 14px 0; border-bottom: 1px solid var(--line); scroll-margin-top: 90px; }
.tm-row h4 { margin: 0 0 4px; font-size: 16px; }
.tm-row p { margin: 0; }
.tm-side { text-align: right; display: flex; flex-direction: column; align-items: flex-end; gap: 6px; max-width: 320px; }
.tm-price { font-variant-numeric: tabular-nums; }
.tm-row:target { background: var(--accent-soft); }
@media (max-width: 640px) { .tm-row { grid-template-columns: 1fr; } .tm-side { text-align: left; align-items: flex-start; max-width: none; } }
.tm-city-link a { display: inline-block; padding: 14px 18px; border-radius: 12px; background: var(--soft); font-weight: 600; color: var(--x-link); }
/* Подбор — одинаковые плитки с фото на главной (поверх фото), в каталоге и на странице подбора */
.hero-visual .opts.pics, .hub-find .opts.pics { display: grid; gap: 8px; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); }
.hero-visual .opts.pics .opt span, .hub-find .opts.pics .opt span { padding: 0; text-align: left; font-size: 15px; }
.hero-visual .opts.pics .opt b, .hub-find .opts.pics .opt b { padding: 8px 10px; font-size: 14px; }
@media (min-width: 700px) { .hero-visual .opts.pics:has(> .opt:nth-child(5)), .hub-find .opts.pics:has(> .opt:nth-child(5)) { grid-template-columns: repeat(5, 1fr); } }
/* Бюджет в подборе — плитки с крупным знаком $ */
.opts.glyphs { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); }
.opts.glyphs .opt { display: flex; }
.opts.glyphs .opt span { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 16px 10px 10px; border-radius: 14px; }
.opts.glyphs .glyph { font-style: normal; font-size: 26px; font-weight: 800; letter-spacing: .04em; color: var(--accent); line-height: 1; padding: 0; border: 0; background: none; }
.opts.glyphs .opt b { padding-top: 8px; font-weight: 600; }
.opts.glyphs .opt input:checked + span { border-color: var(--accent); box-shadow: 0 0 0 2px var(--accent); }
.hero-visual .opts.glyphs .opt span, .hub-find .opts.glyphs .opt span { padding: 14px 8px 8px; }
@media (min-width: 700px) { .opts.glyphs { grid-template-columns: repeat(4, 1fr); } }
/* Плитки подбора тянутся на всю ширину при любом числе вариантов (2–5) */
.opts.pics, .opts.glyphs, .hero-visual .opts.pics, .hub-find .opts.pics { grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); }
.opts.pics:has(> .opt:nth-child(2):last-child) .opt img { aspect-ratio: 16 / 9; }
/* Сроки в подборе — ряд «дней», формат — значок */
.days-viz { display: flex; flex-wrap: wrap; justify-content: center; gap: 3px; max-width: 92px; min-height: 30px; align-content: center; font-style: normal; }
.days-viz s { width: 9px; height: 9px; border-radius: 2px; background: var(--accent); text-decoration: none; }
.days-viz em { font-style: normal; font-weight: 800; color: var(--accent); line-height: 9px; font-size: 14px; }
.opts.glyphs .opt .ic { width: 30px; height: 30px; color: var(--accent); }
/* «Когда едете» — сезоны */
.opts.seasons { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); margin-bottom: 10px; }
.season { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 12px 10px; border: 1.5px solid var(--line); border-radius: 14px; background: var(--surface); }
.season > .ic { width: 28px; height: 28px; color: var(--accent); }
.season > b { font-weight: 700; }
.season-m { display: flex; flex-direction: column; gap: 6px; width: 100%; }
.season-m .opt { display: flex; }
.season-m .opt span { flex: 1; text-align: center; padding: 7px 8px; font-size: 14px; }
.hero-visual .opts.seasons, .hub-find .opts.seasons { grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); }
@media (min-width: 700px) { .opts.seasons { grid-template-columns: repeat(4, 1fr); } }
.pay-free .form-err { color: var(--err, #b42318); font-weight: 600; margin: 0; }

/* MICE: фото у форматов, карточки «что запоминают», квестов и направлений */
.mice-tile img { display: block; width: 100%; height: 100%; max-height: 220px; object-fit: cover; border-radius: 12px 12px 0 0; }
.mice-tile.lead img { max-height: none; }
.mice-cards { list-style: none; padding: 0; margin: 14px 0 0; display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); }
.mice-cards.wide { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.mice-cards > li { display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; background: var(--surface); }
.mice-cards > li > img { display: block; width: 100%; aspect-ratio: 4 / 3; height: auto; object-fit: cover; }
.mice-cards > li > div { padding: 12px 14px 14px; display: flex; flex-direction: column; gap: 6px; }
.mice-cards h4 { margin: 0; font-size: 17px; }
.mice-cards p { margin: 0; color: var(--x-muted); font-size: 15px; }
.mice-meta { display: grid; gap: 4px; margin: 6px 0 0; font-size: 14px; }
.mice-meta div { display: flex; gap: 8px; }
.mice-meta dt { color: var(--x-muted); min-width: 0; }
.mice-meta dt::after { content: ':'; }
.mice-meta dd { margin: 0; font-weight: 600; }
.mice-cards h3 { margin: 0; font-size: 17px; }
/* «Как хотите путешествовать?» — 6 плиток ровными рядами: 6 в ряд, 3 + 3, 2 + 2 + 2 */
.way-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 640px) { .way-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .way-tiles { grid-template-columns: repeat(6, minmax(0, 1fr)); } }

/* Travel Moments: шапка города и фото у впечатлений */
.tm-banner { display: block; width: 100%; height: auto; aspect-ratio: 3 / 1; object-fit: cover; border-radius: 14px; margin: 6px 0 4px; }
.tm-row.has-pic { grid-template-columns: 160px 1fr auto; align-items: start; }
.tm-row.has-pic > img { width: 160px; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 10px; }
@media (max-width: 640px) { .tm-banner { aspect-ratio: 2 / 1; } .tm-row.has-pic { grid-template-columns: 1fr; } .tm-row.has-pic > img { width: 100%; aspect-ratio: 16 / 9; } }

/* Пояснения к терминам в программах туров (как подсказки у Coolblue) */
.gl { position: relative; display: inline; }
.gl-t { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: help; text-decoration: underline dotted var(--accent); text-underline-offset: 3px; }
.gl-t::after { content: "i"; display: inline-grid; place-items: center; width: 15px; height: 15px; margin-left: 3px; border-radius: 50%; font: 700 10px/1 system-ui, sans-serif; font-style: normal; color: #fff; background: var(--accent); vertical-align: 2px; }
.gl-t[aria-expanded="true"] { text-decoration-style: solid; }
.gl-pop { position: fixed; z-index: 60; top: 0; left: 0; width: min(320px, calc(100vw - 24px)); padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px;
  background: var(--surface); color: var(--x-ink, var(--ink)); box-shadow: 0 10px 30px rgba(0, 0, 0, .15); font-size: 15px; line-height: 1.45; font-weight: 400; text-align: left; white-space: normal; }
.gl-pop[hidden] { display: none; }
.gl-pop a { display: inline-block; margin-top: 4px; font-weight: 600; }
/* В программах со старого сайта (.wp, legacy.css) любая кнопка — градиентная плашка; термин должен остаться текстом. */
.wp .gl button.gl-t, .wp .gl button.gl-t:hover, .wp .gl button.gl-t:focus, .wp .gl button.gl-t:active {
  display: inline; width: auto; min-width: 0; height: auto; min-height: 0; margin: 0; padding: 0; border: 0; border-radius: 0;
  background: none; box-shadow: none; transform: none; color: inherit; font: inherit; line-height: inherit; letter-spacing: inherit;
  text-transform: none; text-decoration: underline dotted var(--accent); text-underline-offset: 3px; cursor: help; white-space: normal; }
.wp .gl button.gl-t::before { content: none; display: none; }
.wp .gl button.gl-t::after { content: "i"; display: inline-grid; place-items: center; position: static; width: 15px; height: 15px; margin: 0 0 0 3px; padding: 0; border: 0;
  border-radius: 50%; font: 700 10px/1 system-ui, sans-serif; color: #fff; background: var(--accent); vertical-align: 2px; transform: none; opacity: 1; }
.wp .gl-pop { color: var(--x-ink, var(--ink)); font-size: 15px; line-height: 1.45; }

/* «Контакты»: быстрые каналы в первом экране, карточки «Офис» и «Данные организации», документы, шаги */
.ct-quick { background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 22px 24px; box-shadow: var(--shadow); align-self: start; }
.ct-quick h2 { font-size: 22px; margin: 0 0 4px; }
.ct-quick > p { margin: 0 0 14px; color: var(--x-muted); }
.ct-btns { display: flex; flex-wrap: wrap; gap: 10px; }
.ct-btns .btn { display: inline-flex; align-items: center; gap: 8px; }
.ct-btns svg { width: 20px; height: 20px; flex: none; }
.ct-wa { background: #1f8f4e; border-color: #1f8f4e; color: #fff; }
.ct-wa:hover { background: #18773f; border-color: #18773f; }
.ct-mini { margin-top: 10px; }
.ct-mini > div { grid-template-columns: 120px minmax(0, 1fr); }
.ct-now { display: flex; align-items: center; gap: 8px; margin: 12px 0 0; font-weight: 600; }
.ct-now .ic { width: 18px; height: 18px; color: var(--accent); flex: none; }
.ct-now .ct-dot { width: 9px; height: 9px; border-radius: 50%; background: #9ca3af; flex: none; }
.ct-now.is-open .ct-dot { background: #16a34a; box-shadow: 0 0 0 4px rgb(22 163 74 / .15); }
.ct-grid { display: grid; gap: 20px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); align-items: start; }
.ct-card { border: 1px solid var(--line); border-radius: 18px; padding: 22px 24px; background: var(--surface); }
.ct-card h2 { margin: 0 0 6px; font-size: 22px; }
.ct-card h3 { margin: 20px 0 10px; font-size: 17px; }
.ct-card .lp-contacts { max-width: none; }
.ct-card .lp-contacts > div { grid-template-columns: 150px minmax(0, 1fr); }
.ct-social { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; }
.ct-social a { display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; border: 1.5px solid var(--line); color: var(--x-ink, var(--ink)); }
.ct-social a:hover { border-color: var(--accent); color: var(--accent); }
.ct-org { display: grid; gap: 0; margin: 0; }
.ct-org > div { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 4px 16px; padding: 10px 0; border-top: 1px solid var(--line); }
.ct-org dt { color: var(--x-muted); font-weight: 600; }
.ct-org dd { margin: 0; font-weight: 600; }
.ct-docs { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; }
.ct-docs li { display: flex; gap: 12px; align-items: flex-start; }
.ct-docs .ic { flex: none; width: 22px; height: 22px; color: var(--accent); margin-top: 2px; }
.ct-docs a { font-weight: 600; color: var(--link); }
.ct-docs .muted { display: block; font-size: 14px; }
.ct-steps b { display: block; }
@media (max-width: 640px) { .ct-card .lp-contacts > div, .ct-mini > div, .ct-org > div { grid-template-columns: 1fr; } .ct-btns .btn { flex: 1 1 100%; justify-content: center; } }
.ct-grid .lp-org { box-shadow: none; border-radius: 18px; }
.ct-grid .lp-org h3 { margin: 20px 0 10px; font-size: 17px; }
.ct-grid .lp-org .ct-org dt { font-size: 15px; }
@media (min-width: 1000px) { .ct-steps { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.gallery-credit { grid-column: 1 / -1; margin: -6px 0 0; font-size: 12px; color: var(--x-muted); }
.gallery-credit a { color: inherit; }

/* «А знаете ли вы…» — факты о городах, строки как параметры товара у Coolblue (src/facts.js) */
.dyk-grid { display: grid; gap: 14px 28px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.dyk h3 { margin: 4px 0 6px; font-size: 17px; }
.dyk-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.dyk-list li { padding: 10px 0; border-bottom: 1px solid var(--line); }
.dyk .gl-t { text-align: left; line-height: 1.4; }
.dyk.in-tour { margin: 28px 0; }
.dyk.in-tour > h2 { margin-bottom: 10px; }
/* «Контакты»: адрес, карты и «открыто сейчас» — в первом экране слева; кнопки мессенджеров одной ширины в ряд */
.ct-where { margin-top: 22px; display: grid; gap: 12px; max-width: 520px; }
.ct-addr { display: flex; gap: 10px; margin: 0; font-size: 17px; line-height: 1.5; }
.ct-addr .ic { flex: none; width: 22px; height: 22px; color: var(--accent); margin-top: 2px; }
.ct-addr a { color: var(--link); }
.ct-where .ct-now { margin: 0; padding: 10px 14px; border-radius: 12px; background: var(--surface); border: 1px solid var(--line); width: fit-content; }
.ct-btns { display: grid; grid-template-columns: 1fr 1fr; }
.ct-btns .btn { justify-content: center; }
@media (max-width: 640px) { .ct-btns { grid-template-columns: 1fr; } }

/* Юзабилити (08.10): длинные варианты в выпадающих списках не раздвигают страницу; на телефоне — пальцу удобно */
.custom > *, .req, .req label, .mf-row > * { min-width: 0; }
.req select { width: 100%; max-width: 100%; text-overflow: ellipsis; }
.chips li { font-size: 14px; }
@media (max-width: 760px) {
  .foot-links a, .foot-contacts a { display: inline-block; padding: 9px 0; }
  .foot-links, .foot-contacts { gap: 0; }
  .faq summary, details.aca-faq__item > summary { padding-top: 12px; padding-bottom: 12px; }
  .foot-langs a { display: inline-block; padding: 8px 2px; }
}

/* Путеводитель по городу: о городе + история, что посмотреть с картой, районы и еда, советы (src/views.js cityGuide) */
.cg-about-grid { display: grid; gap: 28px; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); align-items: start; }
.cg-about-grid p { font-size: 17px; line-height: 1.65; }
.cg-history { background: var(--surface); border: 1px solid var(--line); border-radius: 16px; padding: 18px 20px; }
.cg-history h3 { margin: 0 0 10px; font-size: 18px; }
.cg-history ol { list-style: none; margin: 0; padding: 0; border-left: 2px solid var(--accent); }
.cg-history li { position: relative; padding: 0 0 12px 16px; display: grid; gap: 2px; }
.cg-history li::before { content: ""; position: absolute; left: -7px; top: 5px; width: 12px; height: 12px; border-radius: 50%; background: var(--accent); }
.cg-history b { font-variant-numeric: tabular-nums; }
.cg-map { height: 420px; border-radius: 16px; overflow: hidden; border: 1px solid var(--line); background: var(--soft); margin: 6px 0 4px; display: grid; place-items: center; }
.cg-map.leaflet-container { display: block; }
.cg-map-ph { color: var(--x-muted); }
.cg-map-credit { font-size: 12px; color: var(--x-muted); margin: 0 0 16px; }
.cg-sights { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); }
.cg-sights > li { border: 1px solid var(--line); border-radius: 16px; overflow: hidden; background: var(--surface); display: flex; flex-direction: column; scroll-margin-top: 100px; }
.cg-sights > li.is-hl { outline: 3px solid var(--accent); }
.cg-sights > li > img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; height: auto; display: block; }
.cg-sights > li > div { padding: 14px 16px 16px; display: grid; gap: 6px; }
.cg-sights h3 { margin: 0; font-size: 18px; display: flex; gap: 8px; align-items: center; }
.cg-num { flex: none; display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--accent); color: #fff; font-size: 13px; font-weight: 700; }
.cg-sights p { margin: 0; }
.cg-acts { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin-top: 4px; }
.cg-two { display: grid; gap: 28px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); }
.cg-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.cg-list li { padding: 10px 0; border-bottom: 1px solid var(--line); }
.cg-tips { display: grid; gap: 28px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); }
.cg-pin { width: 28px; height: 28px; border-radius: 50%; background: #0e7490; color: #fff; font: 700 13px/24px system-ui, sans-serif; text-align: center; border: 2px solid #fff; box-shadow: 0 2px 6px rgba(0, 0, 0, .35); }
@media (max-width: 760px) { .cg-about-grid { grid-template-columns: 1fr; } .cg-map { height: 320px; } }
/* «А вы знали?» внутри статьи — карточка в колонке текста */
.dyk.in-post { margin: 28px 0; padding: 18px 20px 8px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); }
.dyk.in-post .dyk-t { margin: 0 0 6px; font-family: var(--font-head, inherit); font-size: 20px; font-weight: 700; }
.dyk.in-post .dyk-grid { grid-template-columns: 1fr; gap: 6px; }
.dyk.in-post h3 { font-size: 15px; color: var(--x-muted); margin: 8px 0 4px; }
.dyk.in-post .dyk-list li:last-child { border-bottom: 0; }
/* Факт «А вы знали?» в тексте — та же подсказка, что у терминов, с заголовком факта */
.gl-pop .gl-dyk { display: block; font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: var(--accent); margin-bottom: 2px; }
.gl-t-fact::after { content: "★"; font-size: 9px; }
.wp .gl button.gl-t-fact::after { content: "★"; font-size: 9px; }

/* Шапка 08.10 (решения Smarton): кнопка «Туры» с мегаменю, кнопка подбора, служебные ссылки справа в полосе
   гарантий, на телефоне — нижняя панель. Главная: «С чего начать», «Мы на месте», подвал в две колонки. */
.mega { position: static; }
.mega-btn { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 4px; padding: 8px 14px; border-radius: 10px; font-weight: 700; color: var(--ink); user-select: none; white-space: nowrap; }
.mega-btn::-webkit-details-marker { display: none; }
.mega-btn:hover, .mega-btn.on, .mega[open] .mega-btn { background: var(--soft); }
.mega-btn .ic { transition: transform 150ms var(--ease-out); }
.mega[open] .mega-btn .ic { transform: rotate(180deg); }
.mega-panel { position: absolute; left: 0; right: 0; top: 100%; background: var(--surface); border-bottom: 1px solid var(--line); box-shadow: 0 18px 40px rgba(0, 0, 0, .14); max-height: calc(100dvh - 90px); overflow-y: auto; overscroll-behavior: contain; }
.mega-in { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px 28px; padding-top: 20px; padding-bottom: 20px; }
.mega-col h3 { font-size: 13px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); margin: 0 0 8px; }
.mega-col ul { list-style: none; margin: 0 0 8px; padding: 0; }
.mega-col li a { display: flex; justify-content: space-between; gap: 8px; padding: 6px 8px; margin: 0 -8px; border-radius: 8px; text-decoration: none; color: var(--ink); }
.mega-col li a:hover { background: var(--soft); }
.mega-col em { font-style: normal; color: var(--muted); font-size: 13px; }
.mega-col .more-link { font-size: 14px; white-space: normal; }
.mega-foot { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 10px; align-items: center; border-top: 1px solid var(--line); padding-top: 14px; }
.mega-svc { display: none; }
.hdr-cta { white-space: nowrap; margin-right: 6px; padding: 8px 14px; }
.ts-in { display: flex; align-items: center; gap: 16px; }
.ts-in .trust { flex: 1 1 auto; min-width: 0; justify-content: flex-start; gap: 20px; }
.nav.svc { flex: none; gap: 2px; flex-wrap: nowrap; overflow: visible; }
.nav.svc a { padding: 4px 8px; font-size: 13px; white-space: nowrap; }
.tabbar { display: none; }
.foot-cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 32px; }
.foot-cols > div { display: grid; gap: 6px; align-content: start; }
.foot-cols b { margin-bottom: 4px; }
.via-city { margin: 18px 0 0; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.chip { display: inline-block; padding: 6px 12px; border: 1.5px solid var(--line); border-radius: 99px; text-decoration: none; color: var(--ink); font-weight: 600; font-size: 14px; background: var(--surface); }
.chip:hover { border-color: var(--accent); }
.local { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 28px; background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 24px; }
.local h2 { margin-top: 0; }
.local-btns { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.local-facts { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; align-content: start; }
.local-facts li { display: flex; gap: 10px; }
.local-facts .ic { font-size: 20px; color: var(--accent); flex: none; margin-top: 2px; }
.local-facts b { display: block; font-size: 13px; color: var(--muted); font-weight: 600; }
@media (max-width: 1100px) {
  .nav.svc { display: none; }
  .mega-svc { display: flex; flex-wrap: wrap; gap: 4px 16px; flex-basis: 100%; padding-top: 6px; }
  .mega-svc a { color: var(--link); text-decoration: none; font-weight: 600; }
  .mega-in { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
  .hdr-cta { display: none; }
  .mega-btn { padding: 8px 10px; }
  .mega-panel { max-height: calc(100dvh - 150px); }
  .local { grid-template-columns: 1fr; padding: 18px; }
}
@media (max-width: 760px) {
  .tabbar { display: grid; grid-template-columns: repeat(5, 1fr); position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; background: var(--header-bg); backdrop-filter: blur(8px);
    border-top: 1px solid var(--line); padding: 4px 0 calc(4px + env(safe-area-inset-bottom)); }
  .tabbar a { display: grid; justify-items: center; gap: 2px; text-decoration: none; color: var(--muted); font-size: 11px; font-weight: 600; padding: 4px 2px; position: relative; min-width: 0; }
  .tabbar a span { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .tabbar a .ic { font-size: 22px; }
  .tabbar a[aria-current] { color: var(--accent); }
  .tabbar .cnt { position: absolute; top: 0; left: 55%; }
  body { padding-bottom: calc(64px + env(safe-area-inset-bottom)); }
  .cmp-bar { bottom: calc(76px + env(safe-area-inset-bottom)); }
  .tools .tool[href] { display: none; }
  .foot-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
}
@media (max-width: 520px) { .mega-in { grid-template-columns: 1fr; } }
@media (max-width: 760px) {
  /* Телефон: логотип, «Туры» и инструменты — в одну строку */
  .top-in { flex-wrap: wrap; column-gap: 4px; }
  .logo img { height: 32px; }
  .tools { gap: 0; }
  .tools .lang, .tools .langs > * { padding-inline: 8px; }
}
@media (max-width: 760px) { .mega-btn { padding: 6px 6px 6px 8px; gap: 2px; } .top-in { column-gap: 2px; } }
@media (max-width: 400px) { .theme-tg { display: none; } }
/* Пункты разделов снова в шапке (08.10): рядом с «Туры», на телефоне — листаемой строкой под логотипом */
.top-in > .nav { gap: 2px; }
@media (min-width: 861px) { .top-in > .nav { flex: 1 1 auto; } }
@media (min-width: 861px) {
  .top-in > .nav a { padding: 8px 10px; }
  .top:not(.nav2) .search { flex: 0 1 130px; min-width: 100px; }
  .top:not(.nav2) .top-in { column-gap: 12px; }
}
