/* ═══════════════════════════════════════════
   ВЕРШИНА — Pure CSS / No Frameworks
   ═══════════════════════════════════════════ */

/* Шрифты self-hosted (без CDN) подключены <link> в layout.php head (без render-blocking @import) */

/* ——— Reset ——— */
*, *::before, *::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  border-radius: 0 !important;
}

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: var(--ff-body);
  font-size: var(--fs-base);
  line-height: 1.6;
  background-color: var(--c-bg);
  color: var(--c-text);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: none; cursor: pointer; }
ul, ol { list-style: none; }

:where(a, button, input, textarea, select):focus-visible {
  outline: 2px solid var(--c-accent);
  outline-offset: 3px;
}

/* ——— Tokens ——— */
:root {
  --c-bg: #0e0e0e;
  --c-text: #e8e4df;
  --c-accent: #c4a060;
  --c-muted: rgba(232,228,223,0.5);
  --c-dim: rgba(232,228,223,0.35);
  --c-ghost: rgba(232,228,223,0.2);
  --c-line: rgba(255,255,255,0.08);
  --c-line-m: rgba(255,255,255,0.12);
  --c-surface: #151515;

  --ff-body: 'Unbounded', sans-serif;
  --ff-mono: 'PT Mono', monospace;

  --fs-base: clamp(14px,1.5vw,16px);
  --fs-xs: clamp(9px,1vw,10px);
  --fs-sm: clamp(12px,1.2vw,13px);
  --fs-md: clamp(13px,1.4vw,15px);
  --fs-lg: clamp(18px,2.5vw,22px);
  --fs-xl: clamp(24px,3.2vw,28px);
  --fs-2xl: clamp(28px,3.4vw,36px);
  --fs-hero: clamp(36px,4.0vw,52px);

  --cmax: 1200px;
  --cpx: clamp(16px,4vw,32px);
  --spy: clamp(64px,10vw,96px);
  --tr: 0.15s ease;
}

/* ——— Layout ——— */
.container {
  max-width: var(--cmax);
  margin: 0 auto;
  padding-left: var(--cpx);
  padding-right: var(--cpx);
}

.section {
  position: relative;
  z-index: 1;
  padding-top: var(--spy);
  padding-bottom: var(--spy);
}

.section-line {
  height: 1px;
  background: var(--c-line);
  max-width: var(--cmax);
  margin: 0 auto;
  position: relative;
  z-index: 1;
}

/* ——— Background image ——— */
body::before {
  content: '';
  position: fixed; inset: 0;
  background-image: url('img/bg-78892.webp');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  pointer-events: none; z-index: 0;
}
body::after {
  content: '';
  position: fixed; inset: 0;
  background: rgba(14, 14, 14, 0.393);
  pointer-events: none; z-index: 0;
}

/* ——— Utility classes ——— */
.mono { font-family: var(--ff-mono); }

.coord-label {
  font-family: var(--ff-mono);
  font-size: var(--fs-xs);
  letter-spacing: 0.06em;
  color: var(--c-dim);
  text-transform: uppercase;
}
.tour-main .coord-label,
.tours-header .coord-label,
.tour-main .tour-price-label { color: rgba(232,228,223,0.7); font-weight: 600; }

/* ═══════════ HEADER ═══════════ */
.site-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 100;
  background: rgba(14, 14, 14, 0.582);
  border-bottom: 1px solid var(--c-line);
  height: 64px;
}

.header-inner {
  max-width: var(--cmax);
  margin: 0 auto;
  padding: 0 var(--cpx);
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
}

.logo-link { display: flex; align-items: center; }

.site-logo {
  height: 36px;
  width: auto;
  display: block;
}

.desktop-nav {
  display: flex;
  align-items: center;
  gap: clamp(20px,3vw,36px);
}

.desktop-nav a {
  font-family: var(--ff-body);
  font-size: var(--fs-xs);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--c-muted);
  transition: color var(--tr);
}
.desktop-nav a:hover { color: var(--c-text); }
.desktop-nav .nav-phone { color: var(--c-accent); }

.burger-btn {
  display: none;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  color: var(--c-text);
}

.mobile-menu {
  display: none;
  position: fixed;
  inset: 64px 0 0 0;
  background: var(--c-bg);
  z-index: 99;
  padding: 32px var(--cpx);
  overflow-y: auto;
}
.mobile-menu.is-open { display: block; }

.mobile-menu-list {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.mobile-menu-list a {
  min-height: 44px;
  display: flex;
  align-items: center;
  font-size: var(--fs-md);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.mobile-menu-divider { height: 1px; background: var(--c-line); margin-top: 16px; }

.mobile-menu-phone {
  font-family: var(--ff-mono);
  font-size: var(--fs-sm);
  color: var(--c-accent);
  margin-top: 20px;
  display: block;
}

@media (max-width: 768px) {
  .desktop-nav { display: none; }
  .burger-btn { display: block; }
}

/* ═══════════ HERO (базовый слой для hv2) ═══════════ */
.hero {
  position: relative;
  z-index: 1;
}

/* ═══════════ TOURS ═══════════ */
.tours-header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 48px;
}
.tours-header h2 {
  font-size: var(--fs-2xl);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: -0.02em;
}

.tour-main {
  border: 1px solid var(--c-line-m);
  margin-bottom: 40px;
  position: relative;
}

.tour-badge {
  position: absolute;
  top: 0; left: 0;
  background: var(--c-accent);
  color: var(--c-bg);
  font-family: var(--ff-mono);
  font-size: 10px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  padding: 4px 16px;
  z-index: 2;
}

.tour-main-inner {
  display: flex;
  flex-direction: column;
  align-items: stretch;
}

/* Обёртка под фото: на десктопе растягивается по высоте текстовой колонки */
.tour-main-visual {
  width: 100%;
  flex-shrink: 0;
}

.tour-main-img {
  width: 100%;
  height: 280px;
  object-fit: cover;
  display: block;
}

.tour-main-body {
  padding: 24px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  flex: 1 1 auto;
  min-width: 0;
  background: rgb(26 25 23 / 43%);
}

.tour-main-title {
  font-size: var(--fs-xl);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: -0.02em;
  margin-bottom: 8px;
}

.tour-date {
  font-family: var(--ff-mono);
  font-size: var(--fs-xs);
  color: var(--c-dim);
  margin-bottom: 16px;
}

.tour-desc {
  font-size: var(--fs-md);
  color: var(--c-muted);
  line-height: 1.7;
  margin-bottom: 24px;
}

.tour-params {
  display: flex;
  flex-wrap: wrap;
  border-top: 1px solid var(--c-line);
  padding-top: 12px;
  margin-bottom: 24px;
}
.tour-params span {
  font-family: var(--ff-mono);
  font-size: 10px;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: rgba(232,228,223,0.75);
  font-weight: 600;
  padding: 4px 10px 4px 0;
  border-right: 1px solid var(--c-line);
  margin-right: 10px;
  white-space: nowrap;
}
.tour-params span:last-child { border-right: none; margin-right: 0; }

.tour-prices { display: flex; gap: 32px; margin-bottom: 24px; }
.tour-price-label { display: block; margin-bottom: 4px; }
.tour-price-value { font-size: var(--fs-lg); font-weight: 900; }
.tour-price-value--accent { color: var(--c-accent); }

.btn-tour {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  border: 1px solid var(--c-accent);
  color: var(--c-accent);
  font-weight: 700;
  font-size: var(--fs-xs);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 12px 28px;
  transition: all var(--tr);
}
.btn-tour:hover { background: var(--c-accent); color: var(--c-bg); }

.tours-all-cta { text-align: center; margin-top: 48px; }

@media (min-width: 769px) {
  .tour-main-inner {
    flex-direction: row;
    align-items: stretch;
  }

  .tour-main-visual {
    flex: 0 0 60%;
    max-width: 60%;
    min-width: 0;
    min-height: 320px;
    position: relative;
    overflow: hidden;
    align-self: stretch;
  }

  .tour-main-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .tour-main-body {
    flex: 1 1 40%;
    width: 40%;
    max-width: 40%;
    padding: 40px;
  }
}

/* ═══════════ BLOG FEATURED — big cover + one-per-category list ═══════════ */
.blog-feat { padding-top: var(--spy); padding-bottom: var(--spy); }

.bf-head {
  display: flex;
  align-items: baseline;
  gap: 16px;
  padding-bottom: clamp(14px, 1.6vw, 20px);
  margin-bottom: clamp(20px, 2.4vw, 32px);
  border-bottom: 1px solid var(--c-line-m);
}
.bf-h2 {
  font-size: var(--fs-2xl);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: -0.02em;
  line-height: 1;
}

.bf-wrap {
  display: grid;
  grid-template-columns: 1fr 400px;
  gap: clamp(20px, 2.6vw, 40px);
  align-items: start;
}

/* Big featured cover */
.bf-hero {
  position: relative;
  display: block;
  aspect-ratio: 3/2;
  overflow: hidden;
  border: 1px solid var(--c-line-m);
  text-decoration: none;
}
.bf-hero-media { position: absolute; inset: 0; }
.bf-hero-media img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 0.7s ease;
}
.bf-hero:hover .bf-hero-media img { transform: scale(1.04); }
.bf-hero::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(14,14,14,0.94) 0%, rgba(14,14,14,0.55) 42%, rgba(14,14,14,0) 78%);
}
.bf-hero-body {
  position: absolute; left: 0; right: 0; bottom: 0;
  z-index: 1;
  padding: clamp(20px, 2.4vw, 34px);
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.bf-hero-cat {
  font-family: var(--ff-mono);
  font-size: var(--fs-xs);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--c-accent);
}
.bf-hero-title {
  font-size: clamp(22px, 2.4vw, 34px);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: -0.01em;
  line-height: 1.08;
  color: #fff;
  text-wrap: balance;
  max-width: 22ch;
}
.bf-hero-lead {
  font-size: var(--fs-sm);
  line-height: 1.6;
  color: rgba(232,228,223,0.72);
  max-width: 52ch;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.bf-hero-meta {
  font-family: var(--ff-mono);
  font-size: var(--fs-xs);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--c-accent);
  transition: opacity var(--tr);
}
.bf-hero:hover .bf-hero-meta { opacity: 0.7; }

/* Right list — one per category */
.bf-list {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.bf-row {
  display: grid;
  grid-template-columns: 104px 1fr;
  gap: 16px;
  align-items: center;
  padding: 16px 0;
  border-bottom: 1px solid var(--c-line);
  text-decoration: none;
}
.bf-row:first-child { padding-top: 0; }
.bf-row-media {
  aspect-ratio: 4/3;
  overflow: hidden;
  background: #111;
  border: 1px solid var(--c-line);
}
.bf-row-media img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}
.bf-row:hover .bf-row-media img { transform: scale(1.07); }
.bf-row-body { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.bf-row-cat {
  font-family: var(--ff-mono);
  font-size: var(--fs-xs);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--c-accent);
}
.bf-row-title {
  font-size: clamp(13px, 0.95vw, 15px);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: -0.01em;
  line-height: 1.25;
  color: var(--c-muted);
  transition: color var(--tr);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.bf-row:hover .bf-row-title { color: var(--c-text); }

.bf-cta {
  margin-top: clamp(18px, 2vw, 26px);
  align-self: flex-start;
}

@media (max-width: 900px) {
  .bf-wrap { grid-template-columns: 1fr; gap: clamp(18px, 4vw, 28px); }
  .bf-hero { aspect-ratio: 16/10; }
}
@media (max-width: 480px) {
  .bf-hero { aspect-ratio: 4/3; }
  .bf-row { grid-template-columns: 84px 1fr; gap: 12px; }
}


/* ═══════════ GUIDE ═══════════ */
.guide-layout { display: flex; flex-direction: column; gap: 40px; }

.guide-portrait-wrap { position: relative; }
.guide-portrait { width: 100%; height: 400px; object-fit: cover; object-position: center top; }
.guide-portrait-coord {
  position: absolute;
  bottom: 0; left: 0;
  background: rgba(14,14,14,0.9);
  padding: 6px 16px;
}

.guide-name {
  font-size: var(--fs-xl);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: -0.01em;
  margin-bottom: 4px;
}

.guide-role {
  font-family: var(--ff-mono);
  font-size: var(--fs-xs);
  color: var(--c-accent);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 24px;
}

.guide-bio {
  font-size: var(--fs-md);
  color: var(--c-muted);
  line-height: 1.7;
  margin-bottom: 16px;
}

.guide-stats {
  display: flex;
  flex-wrap: wrap;
  border-top: 1px solid var(--c-line);
  border-bottom: 1px solid var(--c-line);
  margin-bottom: 32px;
}
.guide-stats span {
  font-family: var(--ff-mono);
  font-size: var(--fs-xs);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--c-muted);
  padding: 8px 14px;
  border-right: 1px solid var(--c-line);
  white-space: nowrap;
}
.guide-stats span:last-child { border-right: none; }

.guide-photos { display: flex; gap: 12px; }
.guide-photo-wrap { position: relative; overflow: hidden; }
.guide-photo-wrap:nth-child(1) { flex: 2; }
.guide-photo-wrap:nth-child(2) { flex: 1.3; }
.guide-photo-wrap:nth-child(3) { flex: 1; }

.guide-photo { width: 100%; height: 200px; object-fit: cover; }
.guide-photo-label {
  position: absolute;
  bottom: 6px; left: 8px;
  background: rgba(14,14,14,0.8);
  padding: 2px 8px;
}

@media (min-width: 769px) {
  .guide-layout { flex-direction: row; align-items: flex-start; }
  .guide-portrait-wrap { flex: 0 0 38%; }
  .guide-portrait { height: 520px; }
  .guide-content { flex: 1; }
}

@media (max-width: 768px) {
  .guide-layout { gap: 28px; }
  .guide-portrait { height: min(420px, 115vw); }
  .guide-stats { gap: 0; }
  .guide-stats span { flex: 1 1 50%; border-bottom: 1px solid var(--c-line); }
  .guide-photo-wrap:nth-child(3) { display: none; }
}

@media (max-width: 480px) {
  :root {
    --fs-hero: 31px;
    --fs-2xl: 27px;
  }

  .container {
    padding-left: 16px;
    padding-right: 16px;
  }

  .section {
    padding-top: 56px;
    padding-bottom: 56px;
  }
}

/* ═══════════ REVIEWS — карусель ═══════════ */
/* Мобила: 1 карточка на экран; от 769px: 3 карточки, листание тем же треком */
.reviews-carousel {
  position: relative;
  --reviews-gap: clamp(10px, 1.5vw, 18px);
}

.reviews-carousel__viewport {
  overflow: hidden;
  width: 100%;
}

.reviews-carousel__track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 100%;
  gap: var(--reviews-gap);
  width: 100%;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
  outline: none;
}

.reviews-carousel__track::-webkit-scrollbar { display: none; }

.reviews-carousel__track:focus-visible {
  box-shadow: 0 0 0 2px var(--c-bg), 0 0 0 4px var(--c-accent);
}

.review.review--slide {
  scroll-snap-align: start;
  scroll-snap-stop: always;
  box-sizing: border-box;
  padding: 28px 24px 28px 28px;
  border-left: 2px solid var(--c-accent);
  background: rgb(26 25 23 / 43%);
  min-height: 320px;
  display: flex;
  flex-direction: column;
}

.review-qm { color: rgba(196,160,96,0.35); margin-bottom: 16px; display: block; flex-shrink: 0; }

.review-text {
  font-size: var(--fs-md);
  color: var(--c-muted);
  line-height: 1.7;
  margin-bottom: 24px;
  flex: 1;
  min-height: 0;
}

.review-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px 12px;
  margin-top: auto;
  flex-shrink: 0;
}

.review-author { font-weight: 700; font-size: var(--fs-md); }
.review-source {
  font-family: var(--ff-mono);
  font-size: var(--fs-xs);
  color: var(--c-dim);
}

.reviews-carousel__controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  margin-top: 28px;
}

.reviews-carousel__arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid var(--c-line);
  background: transparent;
  color: var(--c-muted);
  cursor: pointer;
  transition: color var(--tr), border-color var(--tr), background var(--tr);
}

.reviews-carousel__arrow:hover {
  color: var(--c-accent);
  border-color: var(--c-accent);
  background: rgba(196, 160, 96, 0.06);
}

.reviews-carousel__arrow:disabled {
  opacity: 0.35;
  cursor: not-allowed;
  pointer-events: none;
}

.reviews-carousel__dots {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px;
  row-gap: 8px;
  max-width: min(100%, 320px);
}

.reviews-carousel__dot {
  width: 8px;
  height: 8px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: var(--c-line-m);
  cursor: pointer;
  transition: background var(--tr), transform var(--tr);
}

.reviews-carousel__dot:hover {
  background: var(--c-muted);
}

.reviews-carousel__dot.is-active {
  background: var(--c-accent);
  transform: scale(1.15);
}

@media (min-width: 769px) {
  .reviews-carousel__track {
    grid-auto-columns: calc((100% - 2 * var(--reviews-gap)) / 3);
  }

  .review.review--slide {
    min-height: 280px;
  }
}

/* ═══════════ FOOTER ═══════════ */
.site-footer {
  position: relative;
  z-index: 1;
  padding-top: var(--spy);
  padding-bottom: var(--spy);
}

.footer-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 40px;
  margin-bottom: 48px;
}

.footer-col-title { display: block; margin-bottom: 16px; }

.footer-desc {
  font-size: var(--fs-md);
  color: var(--c-dim);
  line-height: 1.7;
  margin-bottom: 16px;
}

.footer-contact {
  font-family: var(--ff-mono);
  font-size: var(--fs-xs);
  color: var(--c-dim);
}
.footer-contact p { margin-bottom: 8px; }
.footer-contact a { color: var(--c-accent); transition: color var(--tr); }
.footer-contact a:hover { color: var(--c-text); }

.footer-nav { display: flex; flex-direction: column; gap: 12px; }
.footer-nav a {
  min-height: 36px;
  display: flex;
  align-items: center;
  font-size: var(--fs-md);
  color: var(--c-muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  transition: color var(--tr);
}
.footer-nav a:hover { color: var(--c-text); }

.footer-messengers { display: flex; flex-direction: column; gap: 12px; }
.footer-messengers a {
  min-height: 36px;
  display: flex;
  align-items: center;
  font-size: var(--fs-md);
  color: var(--c-muted);
  transition: color var(--tr);
}
.footer-messengers a:hover { color: var(--c-text); }

.footer-geo {
  font-family: var(--ff-mono);
  font-size: var(--fs-xs);
  color: var(--c-dim);
  line-height: 2;
}

.footer-legal {
  border-top: 1px solid var(--c-line);
  padding-top: 24px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.footer-legal span {
  font-family: var(--ff-mono);
  font-size: 10px;
  color: var(--c-ghost);
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

@media (min-width: 769px) {
  .footer-grid { grid-template-columns: 2fr 1fr 1fr 1.2fr; }
  .footer-legal { flex-direction: row; justify-content: space-between; align-items: center; }
}

/* ═══════════ FOOTER V2 ═══════════ */
.site-footer-v2 {
  position: relative;
  z-index: 1;
  padding-top: 56px;
}

/* Основная сетка: 3 колонки */
.fv2-body {
  display: grid;
  grid-template-columns: 1fr;
  gap: 40px;
  padding-bottom: 48px;
}

@media (min-width: 769px) {
  .fv2-body { grid-template-columns: 1.8fr 1fr 0.8fr; gap: 0; }
}

.fv2-col { display: flex; flex-direction: column; gap: 14px; }

/* Колонка 1 — бренд */
.fv2-col--brand { justify-content: flex-start; }
.fv2-logo { display: inline-flex; }

.fv2-entity {
  font-family: var(--ff-mono);
  font-size: 10px;
  color: var(--c-ghost);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  line-height: 1.6;
  margin: 0;
}

/* Колонка 2 — навигация */
.fv2-col--nav { gap: 20px; }

.fv2-nav {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.fv2-nav a {
  min-height: 36px;
  display: flex;
  align-items: center;
  font-size: var(--fs-sm);
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--c-muted);
  transition: color var(--tr);
}
.fv2-nav a:hover { color: var(--c-text); }

.fv2-policy {
  font-family: var(--ff-mono);
  font-size: var(--fs-xs);
  color: var(--c-ghost);
  letter-spacing: 0.04em;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color var(--tr);
}
.fv2-policy:hover { color: var(--c-muted); }

/* Колонка 3 — контакты + соцсети */
.fv2-col--contacts { gap: 12px; }

.fv2-contact-row {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 36px;
  font-family: var(--ff-mono);
  font-size: var(--fs-sm);
  color: var(--c-accent);
  transition: color var(--tr);
}
.fv2-contact-row svg { flex-shrink: 0; color: var(--c-muted); }
.fv2-contact-row:hover { color: var(--c-text); }

.fv2-socials {
  display: flex;
  gap: 10px;
  margin-top: 4px;
}
.fv2-socials a { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; opacity: 0.8; transition: opacity var(--tr); }
.fv2-socials a:hover { opacity: 1; }
.fv2-socials img { width: 36px; height: 36px; }

/* Нижняя полоса */
.fv2-bottom {
  border-top: 1px solid var(--c-line);
  padding: 18px 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.fv2-copy {
  font-family: var(--ff-mono);
  font-size: 10px;
  color: var(--c-ghost);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

/* ═══════════ GALLERY VARIANT A — КИНОЛЕНТА-ЗУМА ═══════════ */
.gv-a-section { padding-bottom: 40px; }

.gv-a-track-wrap {
  position: relative;
  margin-top: 0px;
  padding-bottom: 0px;
}

.gv-a-track {
  display: flex;
  gap: 6px;
  align-items: flex-end;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  /* padding-right большой — чтобы последний кадр полностью влезал при раскрытии */
  padding: 0 var(--cpx) 0 var(--cpx);
  max-width: 100%;
  margin: 0 auto;
}
.gv-a-track::-webkit-scrollbar { display: none; }

/* Спейсер после последнего кадра — даём место для раскрытия */
.gv-a-track::after {
  content: '';
  flex-shrink: 0;
  width: 340px;
  pointer-events: none;
}

.gv-a-frame {
  position: relative;
  flex-shrink: 0;
  width: 360px;
  height: 280px;
  overflow: hidden;
  cursor: pointer;
  scroll-snap-align: start;
  transition: width 0.55s cubic-bezier(0.77,0,0.18,1), filter 0.4s ease;
  filter: grayscale(0.6) brightness(0.75);
}
.gv-a-frame--tall { height: 360px; }
.gv-a-frame--wide { width: 260px; }

.gv-a-frame:hover,
.gv-a-frame.is-active {
  width: 520px;
  filter: grayscale(0) brightness(1);
}
.gv-a-frame--wide:hover,
.gv-a-frame--wide.is-active { width: 620px; }

.gv-a-frame img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transform-origin: center;
  transition: transform 0.6s cubic-bezier(0.23,1,0.32,1);
  pointer-events: none;
}
.gv-a-frame:hover img,
.gv-a-frame.is-active img { transform: scale(1.05); }

.gv-a-overlay {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  padding: 40px 20px 16px;
  background: linear-gradient(to top, rgba(0,0,0,0.85) 0%, transparent 100%);
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  opacity: 0;
  transition: opacity 0.3s ease;
}
.gv-a-frame:hover .gv-a-overlay,
.gv-a-frame.is-active .gv-a-overlay { opacity: 1; }

.gv-a-num {
  font-family: var(--ff-mono);
  font-size: 10px;
  color: var(--c-accent);
  letter-spacing: 0.1em;
}
.gv-a-label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--c-text);
}

.gv-a-scrub-bar {
  max-width: 100%;
  margin: 16px auto 0;
  padding: 0 var(--cpx);
  height: 2px;
  background: var(--c-line);
  position: relative;
}
.gv-a-scrub-fill {
  position: absolute;
  left: 0; top: 0; bottom: 0;
  background: var(--c-accent);
  width: 0%;
  transition: width 0.1s linear;
}

/* ═══════════ END GALLERY VARIANTS ═══════════ */

/* ——— Hide on mobile / desktop helpers ——— */
.hide-mobile { display: none; }
@media (min-width: 769px) {
  .hide-mobile { display: initial; }
  .hide-desktop { display: none; }
}

/* ═══════════ TOURS: подзаголовок + бейджи ═══════════ */
.tours-sub {
  font-size: var(--fs-sm);
  color: var(--c-muted);
  line-height: 1.65;
  max-width: 520px;
  margin-top: 12px;
}
.tour-main--alt { margin-bottom: 40px; }
.tour-badge--alt { background: var(--c-surface); color: var(--c-accent); border: 1px solid rgba(196,160,96,0.35); }
.tour-badge--hard { background: #1a1008; color: #e8984a; border: 1px solid rgba(232,152,74,0.35); }

/* ═══════════ HERO V2 — Fullscreen Cover ═══════════ */
.hv2 {
  position: relative;
  width: 100%;
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  padding: 0;
  overflow: hidden;
}
.hv2-bg-wrap {
  position: absolute;
  inset: 0;
}
.hv2-bg {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
.hv2-veil {
  position: absolute; inset: 0;
  background: linear-gradient(
    160deg,
    rgba(14,14,14,0.15) 0%,
    rgba(14,14,14,0.6) 40%,
    rgba(14,14,14,0.82) 65%,
    rgba(14,14,14,0.94) 100%
  );
}
.hv2-container {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  box-sizing: border-box;
  width: 100%;
  max-width: var(--cmax);
  margin-left: auto;
  margin-right: auto;
  flex: 1 1 auto;
  min-width: 0;
  min-height: 100vh;
  min-height: 100dvh;
  /* Симметричные отступы + место под фиксированный хедер — кластер контента по центру экрана */
  padding-top: calc(64px + 40px);
  padding-bottom: calc(64px + 40px);
  gap: 40px;
}
.hv2-top {
  width: 100%;
  min-width: 0;
}
.hv2-coord { color: rgba(232,228,223,0.85); font-weight: 600; text-shadow: 0 1px 6px rgba(0,0,0,0.7); }
.hv2-cta {
  display: inline-block;
  background: var(--c-accent);
  color: var(--c-bg);
  font-weight: 700;
  font-size: var(--fs-xs);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  padding: 14px 28px;
  transition: background var(--tr);
  white-space: nowrap;
}
.hv2-cta:hover { background: var(--c-text); }
.hv2-bottom .hv2-cta {
  align-self: flex-start;
}
.hv2-bottom {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 32px;
  width: 100%;
  min-width: 0;
}
.hv2-exp-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  border: 1px solid rgba(255,255,255,0.1);
  align-self: flex-start;
}
.hv2-exp-bar span {
  font-family: var(--ff-mono);
  font-size: var(--fs-xs);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(232,228,223,0.9);
  font-weight: 600;
  text-shadow: 0 1px 6px rgba(0,0,0,0.7);
  padding: 7px 14px;
  border-right: 1px solid rgba(255,255,255,0.08);
  white-space: nowrap;
}
.hv2-exp-bar span:last-child { border-right: none; }
.hv2-title {
  max-width: 640px;
  min-width: 0;
  font-size: clamp(28px, 5.5vw, 58px);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: -0.03em;
  line-height: 0.9;
  color: var(--c-text);
}
.hv2-accent { color: var(--c-accent); }
.hv2-sub {
  font-size: var(--fs-md);
  color: rgba(232,228,223,0.65);
  max-width: 640px;
  line-height: 1.65;
}
@media (max-width: 600px) {
  .hv2-title { font-size: clamp(24px,9vw,44px); }
  .hv2-exp-bar { display: none; }
}

/* ===== Статья-поездка (.tr-*) — перенесено из инлайна, чтобы переживать редактор ===== */
.tr-body{--gold:#c4a060;}
.tr-lead{font-size:1.15em;line-height:1.7;color:var(--c-text);border-left:3px solid var(--gold);padding-left:20px;margin:0 0 2em;}
.tr-fig{margin:1.6em 0;text-align:center;}
.tr-fig a{display:block;line-height:0;}
/* .tr-body .tr-fig — специфичность выше, чем у .post-content img в blog_post.php, иначе фото растягивается */
.tr-body .tr-fig img{width:100%;max-width:720px;height:auto;display:block;margin:0 auto;border:1px solid var(--c-line-m);cursor:zoom-in;background:#111;}
.tr-body .tr-fig figcaption{font-family:var(--ff-mono);font-size:12.5px;letter-spacing:0.02em;color:rgba(232,228,223,0.6);margin:12px auto 0;max-width:920px;text-transform:none;line-height:1.5;text-align:center;}
.tr-figs2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:1.6em 0;align-items:start;}
.tr-figs2 .tr-fig{margin:0;}
.tr-figs2 .tr-fig img{width:100%;}
@media(max-width:700px){.tr-figs2{grid-template-columns:1fr;}.tr-lead{padding-left:16px;}}
.tr-map{margin:2.2em 0;}
.tr-map-svg{width:100%;height:auto;display:block;border:1px solid var(--c-line-m);background:#121212;border-radius:6px;}
.tr-map-cap{font-family:var(--ff-mono);font-size:12.5px;color:rgba(232,228,223,0.6);margin-top:12px;line-height:1.5;}
.tr-facts{list-style:none;padding:0;margin:1.5em 0;border-top:1px solid var(--c-line-m);}
.tr-facts li{padding:12px 0;border-bottom:1px solid var(--c-line);display:flex;gap:14px;}
.tr-facts b{font-family:var(--ff-mono);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:0.08em;color:var(--gold);flex:0 0 132px;padding-top:2px;}
.tr-outro{margin-top:2em;padding:22px 24px;border:1px solid var(--gold);background:rgba(196,160,96,0.06);color:var(--c-text);}
@media(max-width:560px){.tr-facts li{display:block;}.tr-facts b{display:block;margin-bottom:4px;}}
.tr-lb{position:fixed;inset:0;z-index:9999;background:rgba(8,8,8,0.94);display:none;align-items:center;justify-content:center;cursor:zoom-out;padding:20px;}
.tr-lb.open{display:flex;}
.tr-lb img{max-width:94vw;max-height:92vh;width:auto;height:auto;border:1px solid rgba(255,255,255,0.14);box-shadow:0 12px 60px rgba(0,0,0,0.6);}
.tr-lb-close{position:fixed;top:14px;right:22px;color:#e8e4df;font:28px/1 var(--ff-mono,monospace);cursor:pointer;opacity:0.85;z-index:10000;}
.tr-lb-close:hover{opacity:1;}

/* ═══════════ TELEGRAM CTA (blog → канал) ═══════════ */
.tg-cta {
  display: flex;
  align-items: center;
  gap: clamp(14px, 2vw, 22px);
  margin: clamp(30px, 4vw, 46px) 0;
  padding: clamp(16px, 2.2vw, 26px) clamp(18px, 2.4vw, 28px);
  border: 1px solid var(--c-line-m);
  background: linear-gradient(100deg, rgba(32,146,239,0.10), rgba(18,18,18,0.45) 60%);
  text-decoration: none;
  transition: border-color var(--tr), transform var(--tr);
}
.tg-cta:hover { border-color: var(--c-accent); transform: translateY(-2px); }
.tg-cta:focus-visible { outline: 1px solid var(--c-accent); outline-offset: 2px; }
.tg-cta-icon img { width: clamp(44px, 6vw, 56px); height: auto; display: block; }
.tg-cta-body { display: flex; flex-direction: column; gap: 5px; flex: 1; min-width: 0; }
.tg-cta-title {
  font-size: clamp(16px, 1.5vw, 20px);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: -0.01em;
  line-height: 1.2;
  color: var(--c-text);
}
.tg-cta-sub { font-size: var(--fs-sm); line-height: 1.5; color: var(--c-muted); }
.tg-cta-btn {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 12px 22px;
  background: var(--c-accent);
  color: var(--c-bg);
  font-family: var(--ff-mono);
  font-size: var(--fs-xs);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: nowrap;
  transition: background var(--tr);
}
.tg-cta:hover .tg-cta-btn { background: var(--c-text); }
@media (max-width: 600px) {
  .tg-cta { flex-wrap: wrap; }
  .tg-cta-body { flex-basis: calc(100% - 60px); }
  .tg-cta-btn { width: 100%; justify-content: center; margin-top: 4px; }
}
