/* ================================================
   МОЙ ОРЁЛ И РЕШКА — style.css
   СОДЕРЖАНИЕ:
   1.  Переменные
   2.  Сброс
   3.  Контейнер
   4.  Навбар
   5.  Бургер
   6.  Fullscreen меню
   7.  Фото-ленты (hero strips)
   8.  Hero
   9.  Scroll Reveal
   10. Хелперы
   11. Посты + сайдбар
   12. Форма заявки
   13. Галерея Telegram
   14. Подвал
   15. Медиазапросы
================================================ */


/* ================================================
   1. ПЕРЕМЕННЫЕ — меняйте здесь весь дизайн
================================================ */
:root {
  --bg:          #ffffff;
  --bg-alt:      #f7f4f0;
  --text:        #1c1c1c;
  --text-mid:    #555;
  --text-light:  #999;
  --accent:      #b5884a;
  --accent-pale: #f5ede0;
  --border:      #e8e4de;

  --menu-hover:  #b5884a;

  --font-h: 'Playfair Display', Georgia, serif;
  --font-b: 'DM Sans', sans-serif;

  --nav-h:   64px;
  --nav-top: 20px;
  --max-w:   1120px;
  --ease:    cubic-bezier(.25, .46, .45, .94);
}


/* ================================================
   2. СБРОС
================================================ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; overflow-x: clip; }
body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-b);
  font-size: 16px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}
a { text-decoration: none; color: inherit; }
img { display: block; max-width: 100%; height: auto; }
ul { list-style: none; }
button { cursor: pointer; border: none; background: none; font-family: inherit; }
input, textarea { font-family: inherit; }


/* ================================================
   3. КОНТЕЙНЕР
================================================ */
.container {
  width: 100%;
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 48px;
}


/* ================================================
   4. НАВБАР
================================================ */
.navbar {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  max-width: none;
  transform: none;
  z-index: 400;
  transition: opacity .3s var(--ease), visibility .3s;
}

body.menu-open .navbar {
  opacity: 0;
  visibility: hidden;
}

.navbar__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: var(--nav-h);
  padding: 0 40px;
  background: #ffffff;
  border-bottom: 1px solid var(--border);
  transition: box-shadow .3s;
}

.navbar.scrolled .navbar__inner {
  box-shadow: 0 2px 16px rgba(0, 0, 0, 0.08);
}

.navbar__logo {
  display: flex;
  align-items: center;
  color: var(--text);
  flex-shrink: 0;
  transition: opacity .2s;
}
.navbar__logo--text {
  flex-direction: column;
  gap: 0;
  line-height: 1;
  text-decoration: none;
}

.logo-travel {
  font-family: var(--font-h);
  font-size: 9px;
  font-weight: 400;
  letter-spacing: 0.45em;
  color: var(--text);
  text-align: center;
  font-style: normal;
}

.logo-natali {
  font-family: var(--font-h);
  font-size: 22px;
  font-weight: 400;
  letter-spacing: 0.18em;
  color: var(--text);
  text-align: center;
  font-style: normal;
}

.navbar__logo:hover { opacity: .7; }

.navbar__right {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

.navbar__divider {
  width: 1px;
  height: 22px;
  background: var(--border);
  margin: 0 18px;
}

.navbar__nav {
  display: flex;
  align-items: center;
  gap: 22px;
}

.nav-link {
  font-size: .8rem;
  font-weight: 500;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--text-mid);
  white-space: nowrap;
  position: relative;
  transition: color .2s;
}
.nav-link::after {
  content: '';
  position: absolute;
  bottom: -3px; left: 0; right: 0;
  height: 1px;
  background: var(--accent);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .25s var(--ease);
}
.nav-link:hover { color: var(--text); }
.nav-link:hover::after { transform: scaleX(1); }

.nav-cta {
  display: inline-block;
  padding: 8px 20px;
  background: var(--accent);
  color: #fff;
  font-size: .78rem;
  font-weight: 500;
  letter-spacing: .06em;
  text-transform: uppercase;
  border-radius: 100px;
  white-space: nowrap;
  transition: opacity .2s, transform .2s;
}
.nav-cta:hover { opacity: .85; transform: translateY(-1px); }

.social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  color: var(--text-mid);
  flex-shrink: 0;
  transition: color .2s, transform .2s;
}
.social-link svg { width: 22px; height: 22px; display: block; }
.social-link:hover { color: var(--accent); transform: translateY(-2px); }


/* ================================================
   5. БУРГЕР
================================================ */
.burger {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-end;
  gap: 5px;
  width: 36px;
  height: 36px;
  flex-shrink: 0;
  position: relative;
  z-index: 500;
}
.burger span {
  display: block;
  height: 2px;
  background: var(--text);
  border-radius: 2px;
  transition: opacity .25s var(--ease), transform .25s var(--ease);
}
.burger span:nth-child(1) { width: 22px; }
.burger span:nth-child(2) { width: 16px; }
.burger span:nth-child(3) { width: 10px; }

.burger.is-open span { opacity: 0; }


/* ================================================
   6. FULLSCREEN МЕНЮ
================================================ */
.fs-menu {
  position: fixed;
  inset: 0;
  z-index: 300;
  background: var(--bg);
  padding: 48px;
  overflow-y: auto;

  opacity: 0;
  visibility: hidden;
  transition: opacity .4s var(--ease), visibility .4s;

  display: grid;
  grid-template-columns: 1fr 1.4fr;
  grid-template-rows: auto 1fr;
}

.fs-menu.is-open {
  opacity: 1;
  visibility: visible;
}

.fs-menu__close {
  grid-column: 2;
  grid-row: 1;
  justify-self: end;
  width: 48px;
  height: 48px;
  border: 1px solid var(--border);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text);
  align-self: start;
  transition: border-color .2s, color .2s, transform .3s;
  z-index: 501;
}
.fs-menu__close svg { width: 18px; height: 18px; }
.fs-menu__close:hover { border-color: var(--accent); color: var(--accent); transform: rotate(90deg); }

.fs-menu__left {
  grid-column: 1;
  grid-row: 2;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding-bottom: 16px;
  gap: 20px;
}

.fs-menu__contact-title {
  font-size: .7rem;
  font-weight: 500;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--text-light);
}

.fs-menu__contact-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.fs-menu__contact-list li {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: .9rem;
  color: var(--text-mid);
}
.fs-menu__contact-list svg {
  width: 18px;
  height: 18px;
  color: var(--accent);
  flex-shrink: 0;
}

.fs-menu__socials {
  display: flex;
  gap: 10px;
}
.fs-menu__social {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: 1px solid var(--border);
  border-radius: 50%;
  color: var(--text-mid);
  transition: border-color .2s, color .2s;
}
.fs-menu__social svg { width: 20px; height: 20px; display: block; }
.fs-menu__social:hover { border-color: var(--accent); color: var(--accent); }

.fs-menu__nav {
  grid-column: 2;
  grid-row: 1 / 3;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-left: 48px;
  border-left: 1px solid var(--border);
  gap: 0;
}

.fs-menu__link {
  font-family: var(--font-h);
  font-weight: 400;
  font-size: clamp(2rem, 5vw, 4.5rem);
  color: var(--text);
  line-height: 1.25;
  padding: 8px 0;

  opacity: 0;
  transform: translateY(20px);
  transition: opacity .4s var(--ease), transform .4s var(--ease), color .2s;
}

.fs-menu__link:hover { color: var(--menu-hover); }

.fs-menu.is-open .fs-menu__link:nth-child(1) { opacity: 1; transform: none; transition-delay: .05s; }
.fs-menu.is-open .fs-menu__link:nth-child(2) { opacity: 1; transform: none; transition-delay: .10s; }
.fs-menu.is-open .fs-menu__link:nth-child(3) { opacity: 1; transform: none; transition-delay: .15s; }
.fs-menu.is-open .fs-menu__link:nth-child(4) { opacity: 1; transform: none; transition-delay: .20s; }
.fs-menu.is-open .fs-menu__link:nth-child(5) { opacity: 1; transform: none; transition-delay: .25s; }
.fs-menu.is-open .fs-menu__link:nth-child(6) { opacity: 1; transform: none; transition-delay: .30s; }


/* ================================================
   7. ФОТО-ЛЕНТЫ
================================================ */
.photo-strip {
  overflow: hidden;
  width: 100%;
  padding: 6px 0;
}

.photo-strip__track {
  display: flex;
  gap: 12px;
  width: max-content;
}

.photo-strip--left  .photo-strip__track { animation: stripLeft  70s linear infinite; }
.photo-strip--right .photo-strip__track { animation: stripRight 70s linear infinite; }
.photo-strip--slow  .photo-strip__track { animation-duration: 85s; }

@keyframes stripLeft  { from { transform: translateX(0);    } to { transform: translateX(-50%); } }
@keyframes stripRight { from { transform: translateX(-50%); } to { transform: translateX(0);    } }

.photo-strip--left:hover  .photo-strip__track,
.photo-strip--right:hover .photo-strip__track { animation-play-state: paused; }

.photo-strip__item {
  flex-shrink: 0;
  width: 280px;
  height: 190px;
  border-radius: 10px;
  overflow: hidden;
  cursor: pointer;
}
.photo-strip__item img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .5s var(--ease), filter .5s var(--ease);
}
.photo-strip__item:hover img {
  transform: scale(1.07);
  filter: brightness(1.12);
}


/* ================================================
   8. HERO
================================================ */
.hero {
  padding-top: calc(var(--nav-h) + 6px);
}

.hero__strips {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-bottom: 12px;
}

/* Фото в лентах — кликабельны, ведут к блоку путешествий */
.photo-strip__item--link {
  display: block;
  cursor: pointer;
}
.photo-strip__item--link img {
  transition: transform .5s var(--ease), filter .5s var(--ease), brightness .3s;
}
.photo-strip__item--link:hover img {
  transform: scale(1.07);
  filter: brightness(1.12);
}


/* ================================================
   БЛОК «ПУТЕШЕСТВИЯ» — карусель со сдвигом
================================================ */
.all-travels {
  padding: calc(var(--nav-h) + 40px) 0 36px;   /* отступ сверху под фиксированный навбар */
  background: var(--bg);
  overflow: hidden;             /* скрывает карточки за краем при прокрутке */
}

.all-travels__header {
  margin-bottom: 36px;
}

/* Карусель строго внутри container — не выходит за края */
.travels-carousel {
  padding: 0 48px;
  position: relative;
}

/* Трек */
.travels-carousel__track {
  display: flex;
  gap: 20px;
  transition: transform 0.6s cubic-bezier(.4, 0, .2, 1);
  will-change: transform;
}

/* Карточка — JS задаёт ширину через style.width, flex только как fallback */
.travel-card {
  flex: 0 0 auto;
  min-width: 0;
}

/* Фото карточки — уменьшаем соотношение сторон, меньше высота */
.travel-card__img {
  display: block;
  aspect-ratio: 4/4;      /* квадратнее = меньше высота при той же ширине */
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 14px;
}

.travel-card__img img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .5s var(--ease);
}

.travel-card:hover .travel-card__img img { transform: scale(1.06); }

.travel-card__meta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  margin-bottom: 6px;
}

.travel-card__date { font-size: .78rem; color: var(--text-light); }
.travel-card__sep  { display: none; }

.travel-card__cat {
  font-size: .68rem;
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--accent);
  transition: opacity .2s;
}
.travel-card__cat:hover { opacity: .7; }

.travel-card__title {
  font-family: var(--font-h);
  font-weight: 500;
  font-size: 1.25rem;
  line-height: 1.2;
  margin-top: 12px;
  text-align: center;
  letter-spacing: .01em;
}
.travel-card__title a { transition: color .2s; }
.travel-card__title a:hover { color: var(--accent); }

@media (max-width: 767px) {
  .travel-card__title { font-size: 1rem; margin-top: 8px; }
}
@media (max-width: 374px) {
  .travel-card__title { font-size: .9rem; }
}

/* Адаптив padding карусели */
@media (max-width: 1199px) {
  .travels-carousel { padding: 0 32px; }
  .all-travels { padding: calc(var(--nav-h) + 32px) 0 60px; }
}
@media (max-width: 767px) {
  .travels-carousel { padding: 0 16px; }
  .all-travels { padding: calc(var(--nav-h) + 24px) 0 52px; }
  .travel-card__title { font-size: .8rem; }
  .travel-card__date, .travel-card__sep, .travel-card__cat { font-size: .62rem; }
  .travel-card__img { margin-bottom: 10px; }
  .travel-card__soon--confirmed { font-size: .58rem; padding: 4px 10px; margin-top: 6px; }
}
@media (max-width: 374px) {
  .travels-carousel { padding: 0 12px; }
  .travel-card__title { font-size: .75rem; }
}

/* Точки-пагинация */
.travels-dots {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 28px;
}
.travels-dot {
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--border);
  border: none;
  padding: 0;
  cursor: pointer;
  transition: background .25s, transform .25s;
}
.travels-dot.is-active {
  background: var(--accent);
  transform: scale(1.3);
}


/* ================================================
   КНОПКА «ВВЕРХ»
================================================ */
.scroll-top {
  position: fixed;
  bottom: 32px;
  right: 32px;
  z-index: 350;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--bg);
  border: 1px solid var(--border);
  color: var(--text-mid);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 16px rgba(0,0,0,.08);
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px);
  transition: opacity .3s var(--ease), visibility .3s, transform .3s var(--ease),
              border-color .2s, color .2s, box-shadow .2s;
}
.scroll-top svg { width: 18px; height: 18px; display: block; }
.scroll-top:hover {
  border-color: var(--accent);
  color: var(--accent);
  box-shadow: 0 6px 20px rgba(181,136,74,.2);
}
.scroll-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
@media (max-width: 767px) {
  .scroll-top { bottom: 20px; right: 20px; width: 40px; height: 40px; }
}






/* ================================================
   9. SCROLL REVEAL
================================================ */
[data-reveal] {
  opacity: 0;
  will-change: opacity, transform;
  transition: opacity .7s var(--ease), transform .7s var(--ease);
}
[data-reveal="up"]    { transform: translateY(32px); }
[data-reveal="left"]  { transform: translateY(24px); }  /* было translateX(-32px) — вызывало горизонтальное переполнение страницы на мобильных */
[data-reveal="right"] { transform: translateY(24px); }  /* было translateX(32px) — вызывало горизонтальное переполнение страницы на мобильных */
[data-reveal].revealed { opacity: 1; transform: translate(0, 0); }

[data-reveal][data-delay="1"] { transition-delay: .1s; }
[data-reveal][data-delay="2"] { transition-delay: .2s; }
[data-reveal][data-delay="3"] { transition-delay: .3s; }
[data-reveal][data-delay="4"] { transition-delay: .4s; }
[data-reveal][data-delay="5"] { transition-delay: .5s; }


/* ================================================
   10. ХЕЛПЕРЫ
================================================ */
.section-tag {
  font-size: .7rem;
  font-weight: 500;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 6px;
}
.section-title {
  font-family: var(--font-h);
  font-weight: 400;
  font-size: clamp(1.8rem, 3.5vw, 2.8rem);
  line-height: 1.2;
}
.section-title a {
  color: inherit;
  transition: color .2s;
}
.section-title a:hover { color: var(--accent); }
.cats-list li { border-bottom: 1px solid var(--border); }
.cats-list li a {
  display: flex;
  justify-content: space-between;
  padding: 11px 0;
  font-size: .88rem;
  color: var(--text-mid);
  transition: color .2s;
}
.cats-list li a:hover { color: var(--accent); }
.cats-list li a span { font-size: .78rem; color: var(--text-light); }


/* ================================================
   11. ПОСТЫ + САЙДБАР
================================================ */
.posts-sidebar {
  padding: 20px 0 40px;   /* отступы сокращены вдвое */
}

.posts-sidebar__inner {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 80px;
  align-items: start;
}

.sidebar {
  position: sticky;
  top: calc(var(--nav-h) + 56px);
  align-self: start;
}

.posts-list__header {
  margin-bottom: 40px;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--border);
}

.post-row {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 24px;
  padding: 28px 0;
  border-bottom: 1px solid var(--border);
  align-items: start;
}

.post-row__img {
  display: block;
  aspect-ratio: 4/3;
  border-radius: 6px;
  overflow: hidden;
  flex-shrink: 0;
}
.post-row__img img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .5s var(--ease);
}
.post-row:hover .post-row__img img { transform: scale(1.04); }

/* Видео в публикации — пропорции 16:9, не обрезаем кадр */
.post-row__img--video {
  aspect-ratio: 4/5;
  background: #000;
}
.post-row__img--video video {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  cursor: pointer;
}

.post-row__meta {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}
.post-row__date { font-size: .76rem; color: var(--text-light); }
.post-row__sep  { color: var(--text-light); font-size: .76rem; }
.post-row__cat  {
  font-size: .7rem;
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--accent);
  transition: opacity .2s;
}
.post-row__cat:hover { opacity: .7; }

.post-row__title {
  font-family: var(--font-h);
  font-weight: 400;
  font-size: 1.25rem;
  line-height: 1.35;
  margin-bottom: 10px;
}
.post-row__title a { transition: color .2s; }
.post-row__title a:hover { color: var(--accent); }

.post-row__excerpt {
  font-size: .88rem;
  color: var(--text-mid);
  line-height: 1.75;
}

.post-row__more {
  display: inline-block;
  margin-top: 10px;
  font-size: .8rem;
  font-weight: 500;
  color: var(--accent);
  transition: opacity .2s;
}
.post-row__more:hover { opacity: .7; }

.sidebar__section-title {
  font-family: var(--font-h);
  font-weight: 400;
  font-size: 1.6rem;
  margin-bottom: 20px;
}

.sidebar__about {
  margin-bottom: 40px;
  padding-bottom: 40px;
  border-bottom: 1px solid var(--border);
}
.sidebar__avatar {
  width: 100%;
  aspect-ratio: 1;
  border-radius: 50%;
  overflow: hidden;
  margin-bottom: 16px;
  max-width: 180px;
}
.sidebar__avatar img { width: 100%; height: 100%; object-fit: cover; }
.sidebar__name {
  font-family: var(--font-h);
  font-size: 1.2rem;
  font-weight: 500;
  margin-bottom: 10px;
}
.sidebar__bio {
  font-size: .88rem;
  color: var(--text-mid);
  line-height: 1.75;
  margin-bottom: 16px;
}
.sidebar__socials { display: flex; gap: 8px; }

.sidebar__follow { padding-top: 0; }


/* ================================================
   12. ФОРМА ЗАЯВКИ
================================================ */
.booking-section {
  background: var(--bg-alt);
  padding: 48px 0;   /* отступы сокращены вдвое */
}

.booking-header {
  text-align: center;
  margin-bottom: 56px;
}
.booking-header .section-tag { margin-bottom: 10px; }
.booking-title {
  font-family: var(--font-h);
  font-weight: 400;
  font-size: clamp(2.2rem, 4vw, 3.5rem);
  line-height: 1.15;
  margin-bottom: 16px;
}
.booking-title em { font-style: italic; color: var(--accent); }
.booking-sub {
  font-size: 1rem;
  color: var(--text-mid);
  max-width: 480px;
  margin: 0 auto;
  line-height: 1.8;
}

.booking-form {
  max-width: 800px;
  margin: 0 auto;
}

.booking-form__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-bottom: 20px;
}

.form-group {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.form-group label {
  font-size: .76rem;
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--text-light);
}
.form-group input {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 14px 18px;
  color: var(--text);
  font-size: .95rem;
  outline: none;
  transition: border-color .2s, box-shadow .2s;
}
.form-group input::placeholder { color: #bbb; }
.form-group input:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(181, 136, 74, .12);
}

.booking-form__footer {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  margin-top: 12px;
}

.form-submit {
  padding: 15px 56px;
  background: var(--text);
  color: #fff;
  font-size: .85rem;
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
  border-radius: 100px;
  transition: background .2s, transform .2s;
}
.form-submit:hover { background: var(--accent); transform: translateY(-2px); }

.form-note { font-size: .78rem; color: var(--text-light); }
.form-success {
  display: none;
  color: #3aaa6e;
  font-size: .88rem;
  padding: 12px 24px;
  background: rgba(58, 170, 110, .08);
  border-radius: 8px;
}
.form-success.show { display: block; }


/* ================================================
   13. ГАЛЕРЕЯ TELEGRAM
================================================ */
.tg-gallery {
  padding: 40px 0;   /* отступы сокращены вдвое */
  background: var(--bg);
}

.tg-gallery__grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 12px;
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 48px;
}

.tg-gallery__item {
  position: relative;
  aspect-ratio: 1;
  border-radius: 12px;
  overflow: hidden;
  display: block;
}

.tg-gallery__item img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .5s var(--ease);
}

.tg-gallery__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .4s;
}

.tg-gallery__icon {
  width: 36px;
  height: 36px;
  opacity: 0;
  transform: scale(0.7);
  transition: opacity .3s, transform .3s;
}

.tg-gallery__item:hover img { transform: scale(1.08); }
.tg-gallery__item:hover .tg-gallery__overlay { background: rgba(0, 0, 0, 0.45); }
.tg-gallery__item:hover .tg-gallery__icon { opacity: 1; transform: scale(1); }

/* Кнопка под галереей */
.tg-gallery__cta {
  display: flex;
  justify-content: center;
  margin-top: 36px;
}

/* ✦ Кнопка Telegram — стандартное поведение сайта:
   просто смена фона на акцентный коричневый при ховере,
   без выезда стрелки или разделения на части */
.tg-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 15px 32px;
  background: var(--text);
  color: #fff;
  border-radius: 100px;
  text-decoration: none;
  font-size: .78rem;
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
  transition: background .2s, transform .2s;
}

.tg-btn__icon {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  color: #fff;
}

.tg-btn:hover {
  background: var(--accent);
  transform: translateY(-2px);
}


/* Мобильная кнопка поиска */
.nav-search--mobile,
.navbar__divider--mobile { display: none; }
@media (min-width: 815px) {
  .nav-search--mobile { display: none !important; }
}
@media (max-width: 814px) {
  .nav-search--mobile {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border: 1px solid var(--border);
    border-radius: 50%;
    background: none;
    color: var(--text-mid);
  }
  .nav-search--mobile svg { width: 18px; height: 18px; display: block; }
}


.nav-search {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid var(--border);
  color: var(--text-mid);
  flex-shrink: 0;
  transition: border-color .2s, color .2s, transform .2s;
}
.nav-search svg { width: 18px; height: 18px; display: block; }
.nav-search:hover { border-color: var(--accent); color: var(--accent); transform: scale(1.08); }


/* ================================================
   ПОИСКОВЫЙ ОВЕРЛЕЙ
================================================ */
.search-overlay {
  position: fixed;
  inset: 0;
  z-index: 600;
  background: rgba(255,255,255,0.97);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 80px 24px 40px;
  opacity: 0;
  visibility: hidden;
  transition: opacity .35s var(--ease), visibility .35s;
}
.search-overlay.is-open {
  opacity: 1;
  visibility: visible;
}
.search-overlay__inner {
  width: 100%;
  max-width: 680px;
}
.search-overlay__close {
  position: absolute;
  top: 28px;
  right: 36px;
  width: 44px;
  height: 44px;
  border: 1px solid var(--border);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text);
  transition: border-color .2s, color .2s, transform .3s;
}
.search-overlay__close svg { width: 18px; height: 18px; }
.search-overlay__close:hover { border-color: var(--accent); color: var(--accent); transform: rotate(90deg); }

.search-overlay__label {
  font-size: .7rem;
  font-weight: 500;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 24px;
}
.search-overlay__field {
  display: flex;
  align-items: center;
  gap: 16px;
  border-bottom: 2px solid var(--text);
  padding-bottom: 12px;
  margin-bottom: 32px;
}
.search-overlay__field svg { width: 24px; height: 24px; color: var(--text-light); flex-shrink: 0; }
.search-overlay__field input {
  flex: 1;
  border: none;
  outline: none;
  background: none;
  font-family: var(--font-h);
  font-size: clamp(1.4rem, 3vw, 2.2rem);
  font-weight: 400;
  color: var(--text);
}
.search-overlay__field input::placeholder { color: var(--border); }

.search-overlay__results {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.search-result-item {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px 0;
  border-bottom: 1px solid var(--border);
  text-decoration: none;
  color: var(--text);
  transition: color .2s;
  cursor: pointer;
}
.search-result-item:hover { color: var(--accent); }
.search-result-item__cat {
  font-size: .68rem;
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--accent);
  width: 90px;
  flex-shrink: 0;
}
.search-result-item__title {
  font-family: var(--font-h);
  font-size: 1.05rem;
}
.search-no-results {
  color: var(--text-light);
  font-size: .9rem;
  padding: 16px 0;
}


/* ================================================
   РАСПИСАНИЕ ТУРОВ 2026
================================================ */
.schedule-section {
  padding: 24px 0 48px;   /* отступы сокращены вдвое */
  background: var(--bg);
}
.schedule-header {
  margin-bottom: 56px;
}
.schedule-header .section-title em {
  font-style: italic;
  color: var(--accent);
}

.schedule-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px;
}

.schedule-card {
  background: var(--bg-alt);
  border-radius: 16px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform .3s var(--ease), box-shadow .3s;
}
.schedule-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(0,0,0,.08);
}

.schedule-card__img {
  position: relative;
  aspect-ratio: 16/10;
  overflow: hidden;
}
.schedule-card__img img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .5s var(--ease);
}
.schedule-card:hover .schedule-card__img img { transform: scale(1.05); }

.schedule-card__badge {
  position: absolute;
  bottom: 12px;
  left: 12px;
  background: rgba(255,255,255,0.92);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-radius: 100px;
  padding: 5px 14px;
  font-size: .72rem;
  font-weight: 500;
  color: var(--text);
  display: flex;
  align-items: center;
  gap: 6px;
}

.schedule-card__body {
  padding: 22px 24px 24px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  flex: 1;
}

.schedule-card__title {
  font-family: var(--font-h);
  font-weight: 400;
  font-size: 1.5rem;
  line-height: 1.2;
}

.schedule-card__meta {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
}
/* Колонка для нескольких дат заезда внутри одной карточки расписания */
.schedule-card__dates {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.schedule-card__meta span {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: .82rem;
  color: var(--text-mid);
}
.schedule-card__meta svg { width: 15px; height: 15px; flex-shrink: 0; color: var(--text-light); }

.schedule-card__btn {
  display: block;
  text-align: center;
  padding: 12px 24px;
  border: 1px solid var(--border);
  border-radius: 100px;
  font-size: .78rem;
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--text);
  transition: background .2s, border-color .2s, color .2s;
  margin-top: auto;
}
.schedule-card__btn:hover {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}

@media (max-width: 1199px) {
  .schedule-grid { grid-template-columns: repeat(2, 1fr); gap: 20px; }
}
@media (max-width: 599px) {
  .schedule-grid { grid-template-columns: 1fr; }
  .schedule-section { padding: 64px 0; }
}


/* ================================================
   14. ПОДВАЛ
================================================ */
.footer { border-top: 1px solid var(--border); padding: 26px 0; }
.footer__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.footer__socials { display: flex; gap: 12px; }
.footer__copy { font-size: .8rem; color: var(--text-light); }


/* ================================================
   15. МЕДИАЗАПРОСЫ
================================================ */

@media (max-width: 814px) {
  .navbar__nav,
  .navbar__divider:not(.navbar__divider--mobile) { display: none; }
  .navbar__divider--mobile { display: block; }

  .fs-menu {
    grid-template-columns: 1fr;
    grid-template-rows: auto 1fr auto;
    padding: 32px 28px;
  }
  .fs-menu__close {
    grid-column: 1; grid-row: 1;
    justify-self: end;
    margin-bottom: 28px;
  }
  .fs-menu__nav {
    grid-column: 1; grid-row: 2;
    border-left: none;
    padding-left: 0;
    justify-content: flex-start;
  }
  .fs-menu__link {
    font-size: clamp(1.8rem, 8vw, 3rem);
    padding: 10px 0;
    border-bottom: 1px solid var(--border);
  }
  .fs-menu__link:first-child { border-top: 1px solid var(--border); }
  .fs-menu__left {
    grid-column: 1; grid-row: 3;
    justify-content: flex-start;
    padding-top: 32px;
    padding-bottom: 0;
  }
}

@media (max-width: 1199px) {
  :root { --nav-h: 60px; }
  .navbar__inner { padding: 0 22px; }
  .container { padding-left: 32px; padding-right: 32px; }
  .posts-sidebar__inner { grid-template-columns: 1fr 260px; gap: 48px; }
  .tg-gallery__grid { padding: 0 32px; }
  .photo-strip__item { width: 220px; height: 150px; }
  .booking-form__row { gap: 16px; }
}

@media (max-width: 767px) {
  :root { --nav-h: 54px; }
  .navbar__inner { padding: 0 18px; }
  .container { padding-left: 20px; padding-right: 20px; }

  .posts-sidebar__inner { grid-template-columns: 1fr; gap: 48px; }
  .post-row { grid-template-columns: 140px 1fr; gap: 16px; }
  .sidebar { position: static; }

  .booking-form__row { grid-template-columns: 1fr; }

  .tg-gallery__grid { grid-template-columns: repeat(3, 1fr); padding: 0 20px; }

  .photo-strip__item { width: 160px; height: 110px; }
}

@media (max-width: 389px) {
  .photo-strip__item { width: 130px; height: 90px; }
  .post-row { grid-template-columns: 1fr; }
  .post-row__img { aspect-ratio: 16/9; width: 100%; }
  .tg-gallery__grid { grid-template-columns: repeat(2, 1fr); }
}

/* ================================================
   БЛОК КНИГИ
================================================ */
.book-section {
  padding: 96px 0;
  border-top: 1px dashed var(--border);
  background: var(--bg);
}

.book-section__inner {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 72px;
  align-items: center;
}

/* Обложка */
.book-section__cover {
  position: relative;
}
.book-section__cover img {
  width: 100%;
  border-radius: 6px;
  box-shadow: 8px 16px 48px rgba(0,0,0,.18), 2px 4px 12px rgba(0,0,0,.1);
  display: block;
  /* Пока нет реального файла — показываем заглушку */
  background: #e8ddd0;
  min-height: 360px;
  object-fit: cover;
}

/* Текстовый блок */
.book-section__title {
  font-family: var(--font-h);
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  font-weight: 400;
  line-height: 1.2;
  margin: 12px 0 8px;
  color: var(--text-dark);
}

.book-section__author {
  font-size: .8rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 24px;
}

.book-section__desc {
  font-size: 1rem;
  line-height: 1.8;
  color: var(--text-mid);
  margin-bottom: 36px;
  max-width: 520px;
}

.book-section__shops-label {
  display: block;
  font-size: .72rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--text-light);
  margin-bottom: 14px;
}

.book-section__shops-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.book-shop-btn {
  display: inline-block;
  padding: 10px 22px;
  border: 1px solid var(--border);
  border-radius: 100px;
  font-size: .8rem;
  font-weight: 500;
  color: var(--text-dark);
  transition: border-color .2s, color .2s, background .2s;
  text-decoration: none;
}
.book-shop-btn:hover {
  border-color: var(--accent);
  color: #fff;
  background: var(--accent);
}

/* Адаптив */
@media (max-width: 767px) {
  .book-section__inner {
    grid-template-columns: 1fr;
    gap: 36px;
  }
  .book-section__cover {
    max-width: 220px;
    margin: 0 auto;
  }
  .book-section { padding: 64px 0; }
  .book-section__body { text-align: center; }
  .book-section__shops-list { justify-content: center; }
}

/* Бейдж «Скоро» на карточках путешествий */
.travel-card__img {
  position: relative;
}
.travel-card__soon {
  position: absolute;
  top: 10px;
  right: 10px;
  background: rgba(40,32,24,.78);
  color: #fff;
  font-size: .65rem;
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: 5px 12px;
  border-radius: 100px;
  backdrop-filter: blur(2px);
  z-index: 2;
}

/* Бейдж подтверждённого тура с датой — акцентный, отличается от нейтрального "Скоро" у заглушек */
.travel-card__soon--confirmed {
  position: static;
  display: table;
  margin: 10px auto 0;
  background: linear-gradient(135deg, #c99a5b, #a06a2e);
  box-shadow: 0 3px 14px rgba(181,136,74,.5);
  letter-spacing: .05em;
  text-align: center;
}

/* Заглушенные карточки (ещё нет страницы) */
.travel-card__img--disabled {
  cursor: default;
}
.travel-card__img--disabled img {
  filter: grayscale(.15);
  opacity: .85;
}
.travel-card__title--disabled {
  color: var(--text-light);
  cursor: default;
}
