/* ============================================================
   AZURE — премиальные авторские туры
   Палитра «Ледяная лазурь» · Instrument Serif + Playfair / Onest
   ============================================================ */

:root{
  /* — Ледяная лазурь — */
  --bg:            #F4F8FC;
  --bg-deep:       #E8F0F9;
  --surface:       #FFFFFF;
  --ink:           #0B1B33;   /* глубокий сине-чёрный */
  --ink-2:         #3D5675;
  --ink-3:         #7C93AE;
  --line:          rgba(11,27,51,.10);
  --accent:        #2563EB;
  --accent-deep:   #1D4ED8;
  --accent-soft:   #DBEAFE;
  --sky:           #7DB8F0;

  /* — стекло — */
  --glass:         rgba(255,255,255,.62);
  --glass-strong:  rgba(255,255,255,.82);
  --glass-dark:    rgba(255,255,255,.16);
  --glass-line:    rgba(255,255,255,.55);
  --blur:          saturate(180%) blur(22px);

  /* — тени — */
  --sh-sm: 0 2px 8px rgba(11,27,51,.06);
  --sh-md: 0 10px 30px -8px rgba(11,27,51,.14);
  --sh-lg: 0 30px 70px -20px rgba(11,27,51,.30);
  --sh-xl: 0 50px 120px -30px rgba(11,27,51,.42);

  /* — типографика — */
  --display: 'Instrument Serif','Playfair Display',Georgia,serif;
  --sans:    'Onest','Helvetica Neue',Arial,sans-serif;

  --r-sm: 12px;  --r-md: 20px;  --r-lg: 28px;  --r-xl: 40px;  --r-pill: 999px;
  --pad:  clamp(20px, 4vw, 64px);
  --wrap: 1240px;
  --ease: cubic-bezier(.22,1,.36,1);
}

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0 }

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

body{
  font-family:var(--sans);
  background:var(--bg);
  color:var(--ink);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

[hidden]{ display:none !important }

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

::selection{ background:var(--accent); color:#fff }

/* — служебное — */
.u-wrap{ width:min(var(--wrap), 100% - var(--pad)*2); margin-inline:auto }
.u-serif{ font-family:var(--display); font-style:italic; font-weight:400 }
.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;
}

/* ============================================================
   Появление при скролле
   ============================================================ */
[data-reveal]{
  opacity:0;
  transform:translateY(28px);
  transition:opacity .9s var(--ease), transform .9s var(--ease);
  transition-delay:var(--d, 0ms);
}
[data-reveal].is-in{ opacity:1; transform:none }

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto }
  *,*::before,*::after{
    animation-duration:.01ms !important; animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
  [data-reveal]{ opacity:1; transform:none }
}

/* ============================================================
   ШАПКА
   ============================================================ */
.hdr{
  position:fixed; inset:0 0 auto 0; z-index:60;
  display:flex; align-items:center; justify-content:space-between; gap:24px;
  padding:22px var(--pad);
  transition:padding .5s var(--ease), background .5s var(--ease),
             box-shadow .5s var(--ease), backdrop-filter .5s var(--ease);
}
.hdr.is-stuck{
  padding:12px var(--pad);
  background:var(--glass-strong);
  -webkit-backdrop-filter:var(--blur); backdrop-filter:var(--blur);
  box-shadow:0 1px 0 var(--line), var(--sh-sm);
}

.brand{ display:flex; align-items:center; gap:11px; flex-shrink:0 }
.brand__mark{
  width:34px; height:34px; border-radius:11px; display:grid; place-items:center;
  background:linear-gradient(150deg, var(--accent) 0%, #60A5FA 100%);
  box-shadow:0 6px 16px -4px rgba(37,99,235,.55);
}
.brand__mark svg{ width:18px; height:18px }
.brand__name{
  font-size:19px; font-weight:600; letter-spacing:.22em; text-transform:uppercase;
}
.hdr .brand__name, .hdr .nav__link, .hdr .hdr__tool{ color:#fff; text-shadow:0 1px 12px rgba(11,27,51,.35) }
.hdr .nav__dot{ background:rgba(255,255,255,.55) }
.hdr.is-stuck .nav__dot{ background:var(--ink-3) }
.hdr.is-stuck .brand__name,
.hdr.is-stuck .nav__link,
.hdr.is-stuck .hdr__tool{ color:var(--ink); text-shadow:none }

.nav{ display:flex; align-items:center; gap:6px }
.nav__link{
  position:relative; padding:9px 15px; border-radius:var(--r-pill);
  font-size:14.5px; font-weight:500; opacity:.86;
  transition:opacity .3s, background .3s;
}
.nav__link:hover{ opacity:1; background:var(--glass-dark) }
.hdr.is-stuck .nav__link:hover{ background:var(--accent-soft) }
.nav__dot{
  width:3px; height:3px; border-radius:50%; flex-shrink:0;
  transition:background .5s var(--ease);
}

.hdr__side{ display:flex; align-items:center; gap:10px; flex-shrink:0 }
.hdr__tool{
  display:flex; align-items:center; gap:6px;
  height:38px; padding:0 13px; border-radius:var(--r-pill);
  border:1px solid var(--glass-line); font-size:13.5px; font-weight:500;
  transition:background .3s, border-color .3s;
}
.hdr__tool:hover{ background:var(--glass-dark) }
.hdr.is-stuck .hdr__tool{ border-color:var(--line) }
.hdr.is-stuck .hdr__tool:hover{ background:var(--accent-soft) }
.hdr__tool svg{ width:15px; height:15px }
.hdr__fav{ position:relative }
.hdr__fav.has-items svg{ fill:currentColor; opacity:.9 }
.hdr__fav-n{
  position:absolute; top:-5px; right:-5px; min-width:18px; height:18px; padding:0 5px;
  border-radius:var(--r-pill); background:var(--accent); color:#fff;
  font-size:11px; font-weight:700; line-height:18px; text-align:center;
  box-shadow:0 2px 8px rgba(37,99,235,.5);
}

/* переключатель языка */
.lang{ display:flex; align-items:center; gap:2px; padding:3px }
.lang button{
  padding:5px 9px; border-radius:var(--r-pill); font-size:12.5px; font-weight:600;
  letter-spacing:.05em; opacity:.6; transition:.3s;
}
.lang button.is-on{ background:var(--accent); color:#fff; opacity:1 }

/* CTA-кнопка в шапке */
.hdr__cta{
  height:38px; padding:0 18px; border-radius:var(--r-pill);
  background:var(--accent); color:#fff !important; font-size:13.5px; font-weight:600;
  display:flex; align-items:center; text-shadow:none !important;
  box-shadow:0 8px 22px -8px rgba(37,99,235,.8);
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), background .3s;
}
.hdr__cta:hover{ transform:translateY(-2px); background:var(--accent-deep);
  box-shadow:0 14px 30px -8px rgba(37,99,235,.9) }

.burger{
  display:none; width:42px; height:42px; border-radius:50%; place-items:center;
  border:1px solid var(--glass-line); background:var(--glass-dark);
  -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px);
  transition:background .3s, border-color .3s;
}
.hdr.is-stuck .burger{ border-color:var(--line); background:transparent }

/* при открытом меню шапка переходит на тёмный текст — подложка светлая */
.hdr.is-menu .brand__name,
.hdr.is-menu .nav__link,
.hdr.is-menu .hdr__tool,
.hdr.is-menu .burger{ color:var(--ink); text-shadow:none }
.hdr.is-menu .hdr__tool,
.hdr.is-menu .burger{ border-color:var(--line); background:transparent }
.burger__box{ position:relative; display:block; width:18px; height:12px }
.burger__box i{
  position:absolute; left:0; width:100%; height:1.6px; border-radius:2px;
  background:currentColor;
  transition:transform .4s var(--ease), opacity .25s var(--ease), width .4s var(--ease);
}
.burger__box i:nth-child(1){ top:0 }
.burger__box i:nth-child(2){ top:5.2px; width:70% }
.burger__box i:nth-child(3){ top:10.4px }
.burger[aria-expanded="true"] .burger__box i:nth-child(1){ transform:translateY(5.2px) rotate(45deg) }
.burger[aria-expanded="true"] .burger__box i:nth-child(2){ opacity:0; width:0 }
.burger[aria-expanded="true"] .burger__box i:nth-child(3){ transform:translateY(-5.2px) rotate(-45deg) }

/* ============================================================
   МОБИЛЬНОЕ МЕНЮ
   ============================================================ */
.mnav{
  position:fixed; inset:0; z-index:58;
  display:flex; flex-direction:column; justify-content:center; gap:34px;
  padding:110px var(--pad) 48px;
  background:rgba(244,248,252,.86);
  -webkit-backdrop-filter:saturate(180%) blur(28px); backdrop-filter:saturate(180%) blur(28px);
  opacity:0; visibility:hidden; transform:translateY(-12px);
  transition:opacity .45s var(--ease), transform .45s var(--ease), visibility .45s;
}
.mnav.is-open{ opacity:1; visibility:visible; transform:none }
body.is-locked{ overflow:hidden }

.mnav__list{ display:flex; flex-direction:column }
.mnav__list a{
  display:flex; align-items:baseline; justify-content:space-between; gap:16px;
  padding:16px 0; border-bottom:1px solid var(--line);
  font-family:var(--display); font-size:clamp(30px,9vw,44px); line-height:1.1;
  opacity:0; transform:translateY(14px);
  transition:opacity .5s var(--ease), transform .5s var(--ease), color .3s;
}
.mnav.is-open .mnav__list a{ opacity:1; transform:none }
.mnav.is-open .mnav__list a:nth-child(1){ transition-delay:.08s }
.mnav.is-open .mnav__list a:nth-child(2){ transition-delay:.14s }
.mnav.is-open .mnav__list a:nth-child(3){ transition-delay:.20s }
.mnav.is-open .mnav__list a:nth-child(4){ transition-delay:.26s }
.mnav__list a:active{ color:var(--accent) }
.mnav__list i{
  font-family:var(--sans); font-style:normal; font-size:12px; font-weight:600;
  letter-spacing:.1em; color:var(--ink-3); flex-shrink:0;
}

.mnav__foot{
  display:flex; flex-direction:column; gap:14px;
  opacity:0; transform:translateY(14px);
  transition:opacity .5s var(--ease) .3s, transform .5s var(--ease) .3s;
}
.mnav.is-open .mnav__foot{ opacity:1; transform:none }
.mnav__cta{
  display:flex; align-items:center; justify-content:center;
  height:54px; border-radius:var(--r-pill);
  background:var(--accent); color:#fff; font-size:16px; font-weight:600;
  box-shadow:0 14px 32px -12px rgba(37,99,235,.9);
}
.mnav__tel{ font-size:20px; font-weight:600; letter-spacing:-.01em }
.mnav__mail{ font-size:15px; color:var(--ink-2) }

/* ============================================================
   HERO — фото на весь экран + стекло
   ============================================================ */
.hero{
  position:relative; height:100svh; min-height:640px;
  display:flex; flex-direction:column; justify-content:center;
  padding:126px var(--pad) 300px;
  overflow:hidden; isolation:isolate;
}

/* слой фото + параллакс */
.hero__media{ position:absolute; inset:-8% 0 -8% 0; z-index:-2; will-change:transform }
.hero__slide{
  position:absolute; inset:0; opacity:0;
  background-size:cover; background-position:center;
  transform:scale(1.08);
  transition:opacity 1.6s var(--ease), transform 8s linear;
}
.hero__slide.is-on{ opacity:1; transform:scale(1) }

/* затемнение под текст */
.hero__media::after{
  content:''; position:absolute; inset:0;
  background:
    radial-gradient(72% 52% at 50% 40%, rgba(11,27,51,.46) 0%, transparent 78%),
    linear-gradient(180deg, rgba(11,27,51,.55) 0%, rgba(11,27,51,.22) 34%,
                            rgba(11,27,51,.34) 66%, rgba(11,27,51,.66) 100%);
}

/* мягкий переход к фону страницы */
.hero::after{
  content:''; position:absolute; left:0; right:0; bottom:0; height:190px; z-index:-1;
  background:linear-gradient(180deg, transparent, var(--bg) 88%);
  pointer-events:none;
}

/* — плавающая боковая панель (как в Orizon) — */
.rail{
  position:fixed; left:14px; top:50%; transform:translateY(-50%);
  z-index:55; display:none; flex-direction:column; gap:10px;
  padding:10px; border-radius:var(--r-pill);
  background:var(--glass); border:1px solid var(--glass-line);
  -webkit-backdrop-filter:var(--blur); backdrop-filter:var(--blur);
  box-shadow:var(--sh-md);
}
.rail__btn{
  width:42px; height:42px; border-radius:50%; display:grid; place-items:center;
  color:var(--ink-2); transition:.35s var(--ease);
}
.rail__btn svg{ width:18px; height:18px }
.rail__btn:hover{ background:#fff; color:var(--accent); transform:scale(1.08) }
.rail__btn.is-on{ background:var(--accent); color:#fff; box-shadow:0 8px 20px -6px rgba(37,99,235,.7) }
.rail__sep{ height:1px; background:var(--line); margin:2px 6px }

/* — контент hero — */
.hero__inner{ position:relative; width:min(var(--wrap),100%); margin-inline:auto; text-align:center }

.hero__eyebrow{
  display:inline-flex; align-items:center; gap:10px; margin-bottom:26px;
  padding:7px 8px 7px 7px; border-radius:var(--r-pill);
  background:var(--glass-dark); border:1px solid var(--glass-line);
  -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px);
  color:#fff; font-size:13.5px; font-weight:500;
}
.hero__eyebrow b{ font-weight:600 }
.faces{ display:flex }
.faces span{
  width:26px; height:26px; border-radius:50%; border:2px solid rgba(255,255,255,.9);
  margin-left:-9px; background-size:cover; background-position:center;
}
.faces span:first-child{ margin-left:0 }
.hero__eyebrow em{ font-style:normal; padding-right:8px }

/* заголовок */
.hero__title{
  font-family:var(--display); font-weight:400; font-style:normal;
  font-size:clamp(50px, 8.6vw, 132px);
  line-height:.92; letter-spacing:-.02em; color:#fff;
  text-shadow:0 6px 60px rgba(11,27,51,.35);
}
.hero__title .ln{
  display:block; overflow:hidden;
  /* без запаса снизу overflow срезает хвосты у «у», «р», «д» */
  padding-bottom:.14em; margin-bottom:-.14em;
}
.hero__title .w{
  display:inline-block; transform:translateY(105%);
  animation:riseIn 1.15s var(--ease) forwards; animation-delay:var(--d,0ms);
}
@keyframes riseIn{ to{ transform:translateY(0) } }
.hero__title i{ font-style:italic; color:#DCEAFB }

.hero__sub{
  max-width:560px; margin:22px auto 0; color:rgba(255,255,255,.9);
  font-size:clamp(15px,1.35vw,17.5px); line-height:1.65;
  text-shadow:0 2px 20px rgba(11,27,51,.4);
}

/* ============================================================
   Стеклянная форма поиска тура
   ============================================================ */
.search-wrap{ position:relative; z-index:5; width:min(1080px,100%); margin:38px auto 0 }

.search{
  position:relative; z-index:5;
  width:100%;
  display:flex; align-items:center; gap:4px;
  padding:8px; border-radius:var(--r-pill);
  background:var(--glass); border:1px solid var(--glass-line);
  -webkit-backdrop-filter:var(--blur); backdrop-filter:var(--blur);
  box-shadow:var(--sh-lg), inset 0 1px 0 rgba(255,255,255,.6);
}
.field{
  position:relative; flex:1; min-width:0;
  padding:11px 20px; border-radius:var(--r-pill); text-align:left;
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  transition:background .3s;
}
.field:hover{ background:rgba(255,255,255,.5) }
.field.is-open{ background:#fff; box-shadow:var(--sh-sm) }
.field + .field::before{
  content:''; position:absolute; left:0; top:22%; height:56%; width:1px; background:var(--line);
}
.field:hover::before,.field.is-open::before{ opacity:0 }
.field > span:first-child{ min-width:0; flex:1 }
.field__lbl{ display:block; font-size:11.5px; font-weight:500; color:var(--ink-3);
  letter-spacing:.04em; text-transform:uppercase }
.field__val{ display:block; font-size:15px; font-weight:600; color:var(--ink);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
.field__chev{ width:16px; height:16px; color:var(--ink-3); flex-shrink:0; transition:transform .35s var(--ease) }
.field.is-open .field__chev{ transform:rotate(180deg) }

/* выпадающий список */
.drop{
  position:absolute; top:calc(100% + 12px); left:0; min-width:100%; width:max-content;
  max-width:340px; padding:8px; border-radius:var(--r-md); background:#fff;
  border:1px solid var(--line); box-shadow:var(--sh-lg); z-index:20;
  opacity:0; visibility:hidden; transform:translateY(-8px) scale(.97);
  transform-origin:top left; transition:.35s var(--ease);
  max-height:290px; overflow-y:auto;
}
.field.is-open .drop{ opacity:1; visibility:visible; transform:none }
/* если снизу не хватает места — раскрываем вверх */
.drop--up{ top:auto; bottom:calc(100% + 12px); transform-origin:bottom left;
  transform:translateY(8px) scale(.97) }
.drop button{
  display:flex; align-items:center; gap:10px; width:100%; text-align:left;
  padding:10px 13px; border-radius:var(--r-sm); font-size:14.5px; transition:background .2s;
}
.drop button:hover{ background:var(--bg) }
.drop button.is-sel{ background:var(--accent-soft); color:var(--accent-deep); font-weight:600 }
.drop button small{ margin-left:auto; color:var(--ink-3); font-size:12.5px }

.search__go{
  flex-shrink:0; display:flex; align-items:center; gap:9px;
  height:52px; padding:0 27px; border-radius:var(--r-pill);
  background:var(--accent); color:#fff; font-size:15px; font-weight:600;
  box-shadow:0 12px 30px -10px rgba(37,99,235,.9);
  transition:transform .35s var(--ease), background .3s, box-shadow .35s var(--ease);
}
.search__go:hover{ transform:translateY(-2px) scale(1.02); background:var(--accent-deep) }
.search__go svg{ width:17px; height:17px }

/* результат поиска — отдельной строкой под формой, кнопка не растягивается */
.search-hint{
  /* вне потока — появление не сдвигает заголовок под шапку */
  position:absolute; top:calc(100% + 14px); left:0; right:0;
  display:flex; align-items:center; justify-content:center; gap:10px;
  padding:0 8px;
  opacity:0; transform:translateY(-6px);
  transition:opacity .45s var(--ease), transform .45s var(--ease);
  pointer-events:none;
}
.search-hint.is-on{ opacity:1; transform:none; pointer-events:auto }
.search-hint__pill{
  display:inline-flex; align-items:center; gap:10px; max-width:100%;
  padding:9px 9px 9px 16px; border-radius:var(--r-pill);
  background:var(--glass-strong); border:1px solid var(--glass-line);
  -webkit-backdrop-filter:var(--blur); backdrop-filter:var(--blur);
  box-shadow:var(--sh-md); font-size:13.5px; color:var(--ink-2);
}
.search-hint__n{ font-weight:600; color:var(--ink); white-space:nowrap }
.search-hint__q{
  min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  color:var(--ink-3);
}
.search-hint__go{
  flex-shrink:0; height:32px; padding:0 15px; border-radius:var(--r-pill);
  background:var(--accent); color:#fff; font-size:13px; font-weight:600;
  display:inline-flex; align-items:center; transition:background .3s;
}
.search-hint__go:hover{ background:var(--accent-deep) }

/* ============================================================
   Плавающие карточки поверх hero
   ============================================================ */
.hero__floats{
  position:absolute; left:0; right:0; bottom:0; z-index:4;
  width:min(1440px,100% - var(--pad)*2); margin-inline:auto;
  display:flex; align-items:flex-end; justify-content:space-between; gap:20px;
  padding-bottom:44px; pointer-events:none;
}
.hero__floats > *{ pointer-events:auto }

/* карточка «10K+ путешественников» */
a.chip-stat:hover, a.card-tour:hover{ box-shadow:var(--sh-xl) }
a.chip-stat:hover .arw, a.card-tour:hover .arw{ background:var(--accent); color:#fff; transform:rotate(45deg) }

.chip-stat{
  display:flex; align-items:center; gap:16px; color:inherit;
  padding:14px 14px 14px 22px; border-radius:var(--r-lg);
  background:var(--glass-strong); border:1px solid var(--glass-line);
  -webkit-backdrop-filter:var(--blur); backdrop-filter:var(--blur);
  box-shadow:var(--sh-lg);
  animation:floaty 7s ease-in-out infinite;
}
.chip-stat__num{ display:block; font-family:var(--display); font-size:40px; line-height:1; letter-spacing:-.01em }
.chip-stat__cap{ display:block; font-size:12.5px; color:var(--ink-3); margin-top:3px }
.chip-stat__pics{ display:flex }
.chip-stat__pics span{
  width:38px; height:38px; border-radius:12px; margin-left:-12px;
  border:2px solid #fff; background-size:cover; background-position:center;
  box-shadow:var(--sh-sm);
}
.chip-stat__pics span:first-child{ margin-left:0 }

@keyframes floaty{
  0%,100%{ transform:translateY(0) }
  50%    { transform:translateY(-11px) }
}

/* карточка тура справа — горизонтальная полоса */
.card-tour{
  display:flex; align-items:center; gap:16px; color:inherit;
  width:min(470px, 46vw); padding:14px 18px 14px 14px;
  border-radius:var(--r-lg);
  background:var(--glass-strong); border:1px solid var(--glass-line);
  -webkit-backdrop-filter:var(--blur); backdrop-filter:var(--blur);
  box-shadow:var(--sh-lg);
  animation:floaty 8.5s ease-in-out infinite .8s;
}
.card-tour__pic{
  width:86px; height:86px; flex-shrink:0; border-radius:var(--r-md);
  background-size:cover; background-position:center; box-shadow:var(--sh-sm);
}
.card-tour__body{ flex:1; min-width:0; display:block }
.card-tour__head{ display:flex; align-items:center; gap:10px }
.card-tour__name{ display:block }
.card-tour__name{
  font-family:var(--display); font-size:22px; line-height:1.15; letter-spacing:-.01em;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.card-tour__rate{
  display:flex; align-items:center; gap:3px; flex-shrink:0;
  font-size:13px; font-weight:600;
}
.card-tour__rate svg{ width:13px; height:13px; color:#F5A524 }
.card-tour__geo{
  display:flex; align-items:center; gap:5px; margin-top:4px;
  font-size:12.5px; color:var(--ink-3);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.card-tour__geo svg{ width:12px; height:12px; flex-shrink:0 }
.card-tour__facts{ display:flex; flex-wrap:wrap; gap:5px; margin-top:9px; list-style:none }
.card-tour__facts > span{
  padding:4px 9px; border-radius:var(--r-pill);
  background:rgba(11,27,51,.055); font-size:11.5px; color:var(--ink-2);
  white-space:nowrap;
}
.card-tour__side{
  display:flex; flex-direction:column; align-items:flex-end; gap:10px;
  flex-shrink:0; padding-left:16px; border-left:1px solid var(--line);
}
.card-tour__price{ display:block; text-align:right }
.card-tour__price b{ font-size:20px; font-weight:600; letter-spacing:-.01em }
.card-tour__price small{ display:block; font-size:11px; color:var(--ink-3) }

/* круглая кнопка-стрелка */
.arw{
  width:42px; height:42px; border-radius:50%; flex-shrink:0;
  display:grid; place-items:center; background:var(--ink); color:#fff;
  transition:transform .4s var(--ease), background .3s;
}
.arw svg{ width:16px; height:16px; transition:transform .4s var(--ease) }
.arw:hover{ background:var(--accent); transform:rotate(45deg) }
.arw--light{ background:#fff; color:var(--ink); box-shadow:var(--sh-sm) }
.arw--light:hover{ background:var(--accent); color:#fff }

/* индикатор скролла */
.scroll-cue{
  display:none;
  position:absolute; left:50%; bottom:34px; transform:translateX(-50%); z-index:4;
  display:flex; flex-direction:column; align-items:center; gap:9px;
  color:rgba(255,255,255,.8); font-size:11px; letter-spacing:.18em; text-transform:uppercase;
}
.scroll-cue i{
  width:1px; height:42px; background:linear-gradient(180deg,rgba(255,255,255,.75),transparent);
  animation:cue 2.2s ease-in-out infinite;
}
@keyframes cue{ 0%,100%{ transform:scaleY(.35); transform-origin:top } 50%{ transform:scaleY(1); transform-origin:top } }

/* точки-переключатели фото hero */
.hero__dots{
  position:absolute; right:var(--pad); top:50%; transform:translateY(-50%); z-index:5;
  display:flex; flex-direction:column; gap:11px;
}
.hero__dots button{
  width:7px; height:7px; border-radius:50%; background:rgba(255,255,255,.45);
  transition:.4s var(--ease);
}
.hero__dots button.is-on{ background:#fff; height:26px; border-radius:var(--r-pill) }

/* ============================================================
   Общие элементы секций
   ============================================================ */
.sec{ padding:clamp(80px,9vw,140px) 0; position:relative }

.sec__head{
  display:flex; align-items:flex-end; justify-content:space-between;
  gap:40px; margin-bottom:clamp(34px,4vw,58px);
}
.tag{
  display:inline-flex; align-items:center; gap:8px; margin-bottom:18px;
  padding:6px 14px 6px 10px; border-radius:var(--r-pill);
  background:var(--accent-soft); color:var(--accent-deep);
  font-size:12.5px; font-weight:600; letter-spacing:.03em;
}
.tag i{ width:5px; height:5px; border-radius:50%; background:currentColor }

.sec__title{
  font-family:var(--display); font-weight:400;
  font-size:clamp(36px,5.2vw,74px); line-height:1.02; letter-spacing:-.02em;
}
.sec__title i{ font-style:italic; color:var(--accent) }
.sec__lead{ max-width:400px; color:var(--ink-2); font-size:15.5px; line-height:1.65 }

.btn-ghost{
  display:inline-flex; align-items:center; gap:10px; flex-shrink:0;
  height:48px; padding:0 10px 0 22px; border-radius:var(--r-pill);
  border:1px solid var(--line); font-size:14.5px; font-weight:500;
  transition:border-color .3s, background .3s;
}
.btn-ghost:hover{ border-color:transparent; background:#fff; box-shadow:var(--sh-md) }
.btn-ghost .arw{ width:34px; height:34px }
.btn-ghost .arw svg{ width:13px; height:13px }

/* ============================================================
   НАПРАВЛЕНИЯ — «битая» сетка
   ============================================================ */
.dest{
  display:grid; gap:16px;
  grid-template-columns:repeat(4,1fr);
  grid-auto-rows:190px;
}
.dest__it{
  position:relative; overflow:hidden; border-radius:var(--r-lg);
  box-shadow:var(--sh-md); isolation:isolate;
  transition:transform .6s var(--ease), box-shadow .6s var(--ease);
}
.dest__it:hover{ transform:translateY(-6px); box-shadow:var(--sh-lg) }

/* раскладка: 1-й крупный слева, 4-й высокий справа */
.dest__it:nth-child(1){ grid-column:1 / 3; grid-row:1 / 3 }   /* Санторини — крупный */
.dest__it:nth-child(2){ grid-column:3;     grid-row:1 }
.dest__it:nth-child(3){ grid-column:4;     grid-row:1 }
.dest__it:nth-child(4){ grid-column:3;     grid-row:2 / 4 }   /* Альпы — вертикальный */
.dest__it:nth-child(5){ grid-column:1 / 3; grid-row:3 }
.dest__it:nth-child(6){ grid-column:4;     grid-row:2 / 4 }   /* Марракеш — вертикальный */

.dest__img{
  position:absolute; inset:0; background-size:cover; background-position:center;
  transform:scale(1.02); transition:transform 1.1s var(--ease); z-index:-2;
}
.dest__it:hover .dest__img{ transform:scale(1.09) }
.dest__it::after{
  content:''; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(180deg, rgba(11,27,51,.05) 30%, rgba(11,27,51,.72) 100%);
  transition:opacity .6s;
}
.dest__body{
  position:absolute; inset:auto 0 0 0; padding:20px;
  display:flex; align-items:flex-end; justify-content:space-between; gap:14px; color:#fff;
}
/* без этого длинное название выдавливает плашку с ценой за границу карточки */
.dest__body > span:first-child{ min-width:0 }
.dest__name{
  font-family:var(--display); font-size:clamp(21px,2.1vw,32px); line-height:1.1;
  /* никаких anywhere/hyphens — иначе слова рвутся по букве («Мальдив-ы») */
  overflow-wrap:normal; word-break:normal; hyphens:none;
}
.dest__meta{ display:flex; align-items:center; flex-wrap:wrap; gap:4px 9px; margin-top:6px;
  font-size:12.5px; color:rgba(255,255,255,.82) }
.dest__meta i{ width:3px; height:3px; border-radius:50%; background:currentColor; opacity:.6 }
.dest__price{
  padding:7px 13px; border-radius:var(--r-pill); flex-shrink:0;
  background:var(--glass-dark); border:1px solid var(--glass-line);
  -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
  font-size:13.5px; font-weight:600; white-space:nowrap;
}
.dest__it:hover .dest__price{ background:var(--accent); border-color:transparent }

/* кнопка «показать ещё» — только на телефоне */
.dest-more{
  display:none; margin:18px auto 0;
  align-items:center; justify-content:center; gap:10px;
  width:100%; height:52px; border-radius:var(--r-pill);
  border:1px solid var(--line); background:#fff;
  font-size:15px; font-weight:600; color:var(--ink);
  box-shadow:var(--sh-sm); transition:.35s var(--ease);
}
.dest-more:active{ background:var(--bg) }
.dest-more svg{ width:16px; height:16px; color:var(--ink-3);
  transition:transform .4s var(--ease) }

/* ============================================================
   ПОДБОРКИ ТУРОВ — фильтры + карусель
   ============================================================ */
.filters{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:34px }
.filters button{
  display:inline-flex; align-items:center; gap:8px;
  height:44px; padding:0 20px; border-radius:var(--r-pill);
  border:1px solid var(--line); background:#fff;
  font-size:14.5px; font-weight:500; color:var(--ink-2);
  transition:.35s var(--ease);
}
.filters button svg{ width:16px; height:16px; opacity:.65 }
.filters button:hover{ color:var(--ink); box-shadow:var(--sh-sm); transform:translateY(-2px) }
.filters button.is-on{
  background:var(--ink); border-color:transparent; color:#fff;
  box-shadow:0 12px 26px -10px rgba(11,27,51,.6);
}
.filters button.is-on svg{ opacity:1 }
.filters__count{ margin-left:auto; font-size:13.5px; color:var(--ink-3) }

.rail-wrap{ position:relative }
.track{
  display:flex; align-items:stretch; gap:20px; overflow-x:auto; scroll-snap-type:x mandatory;
  scrollbar-width:none;
  /* внутренние отступы дают тени место, внешние минусы съедают лишний воздух */
  /* горизонтальные отступы = поля контейнера, чтобы карточки шли по одной линии с сеткой */
  padding:26px max(var(--pad), calc((100vw - var(--wrap)) / 2)) 58px;
  margin:-26px 0 -36px;
  scroll-padding-left:max(var(--pad), calc((100vw - var(--wrap)) / 2));
}
.track::-webkit-scrollbar{ display:none }

.tour{
  position:relative;
  flex:0 0 clamp(260px, 25vw, 330px); scroll-snap-align:start;
  background:#fff; border-radius:var(--r-lg); overflow:hidden;
  border:1px solid var(--line); box-shadow:var(--sh-sm);
  transition:transform .5s var(--ease), box-shadow .5s var(--ease), opacity .45s;
  display:flex; flex-direction:column;
}
.tour:hover{ transform:translateY(-8px); box-shadow:var(--sh-lg) }
.tour__pic{ position:relative; aspect-ratio:4/3; overflow:hidden }
.tour__pic > div{
  position:absolute; inset:0; background-size:cover; background-position:center;
  transition:transform 1s var(--ease);
}
.tour:hover .tour__pic > div{ transform:scale(1.07) }
.tour__badge{
  position:absolute; top:13px; left:13px; padding:6px 12px; border-radius:var(--r-pill);
  background:var(--glass-strong); -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px);
  font-size:12px; font-weight:600;
}
.tour__fav{
  position:absolute; top:11px; right:11px; width:34px; height:34px; border-radius:50%;
  display:grid; place-items:center; background:var(--glass-strong);
  -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px);
  color:var(--ink-2); transition:.3s;
}
.tour__fav svg{ width:16px; height:16px }
.tour__fav:hover,.tour__fav.is-on{ background:var(--accent); color:#fff }
.tour__body{ padding:18px 19px 19px; flex:1; display:flex; flex-direction:column }
.tour__row{ display:flex; align-items:center; justify-content:space-between; gap:12px }
.tour__name{ font-size:17.5px; font-weight:600; letter-spacing:-.01em }
.tour__rate{ display:flex; align-items:center; gap:4px; font-size:13.5px; font-weight:600; flex-shrink:0 }
.tour__rate svg{ width:14px; height:14px; color:#F5A524 }
.tour__geo{ font-size:13px; color:var(--ink-3); margin-top:4px }
.tour__tags{ display:flex; flex-wrap:wrap; gap:6px; margin:14px 0 17px }
.tour__tags span{
  padding:5px 11px; border-radius:var(--r-pill); background:var(--bg);
  font-size:12px; color:var(--ink-2);
}
.tour__foot{
  display:flex; align-items:flex-end; justify-content:space-between;
  margin-top:auto; padding-top:15px; border-top:1px solid var(--line);
}
.tour__price b{ font-size:20px; font-weight:600; letter-spacing:-.01em }
.tour__price small{ display:block; font-size:11.5px; color:var(--ink-3); margin-top:1px }
.tour__foot .arw{ width:38px; height:38px }
.tour__foot .arw svg{ width:14px; height:14px }

.rail-nav{ display:flex; gap:9px }
.rail-nav button{
  width:44px; height:44px; border-radius:50%; display:grid; place-items:center;
  border:1px solid var(--line); background:#fff; color:var(--ink);
  transition:.35s var(--ease);
}
.rail-nav button svg{ width:16px; height:16px }
.rail-nav button:hover:not(:disabled){ background:var(--ink); color:#fff; border-color:transparent }
.rail-nav button:disabled{ opacity:.3; cursor:default }

/* ============================================================
   ПОЧЕМУ МЫ — цифры + преимущества
   ============================================================ */
.why{ position:relative }
.why::before{
  content:''; position:absolute; inset:0;
  background:
    radial-gradient(60% 70% at 15% 20%, rgba(37,99,235,.09), transparent 65%),
    radial-gradient(50% 60% at 88% 75%, rgba(125,184,240,.16), transparent 65%);
  pointer-events:none;
}
.why > *{ position:relative }

.stats{
  display:grid; grid-template-columns:repeat(4,1fr); gap:16px;
  margin-bottom:22px;
}
.stat{
  padding:26px 24px 24px; border-radius:var(--r-lg);
  background:var(--surface); border:1px solid var(--line);
  box-shadow:var(--sh-sm);
  transition:transform .5s var(--ease), box-shadow .5s var(--ease);
}
.stat:hover{ transform:translateY(-5px); box-shadow:var(--sh-md) }
.stat__ico{
  width:38px; height:38px; border-radius:12px; display:grid; place-items:center;
  background:var(--accent-soft); color:var(--accent-deep); margin-bottom:20px;
}
.stat__ico svg{ width:18px; height:18px }
.stat__num{
  font-family:var(--display); font-size:clamp(38px,4vw,54px); line-height:1;
  letter-spacing:-.02em; display:flex; align-items:baseline; gap:2px;
}
.stat__cap{ margin-top:9px; font-size:13.5px; color:var(--ink-2) }

.feats{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px }
.feat{
  display:flex; gap:18px; padding:26px 24px;
  border-radius:var(--r-lg); background:var(--surface);
  border:1px solid var(--line); box-shadow:var(--sh-sm);
  transition:transform .5s var(--ease), box-shadow .5s var(--ease);
}
.feat:hover{ transform:translateY(-5px); box-shadow:var(--sh-md) }
.feat__n{
  font-family:var(--display); font-size:20px; color:var(--accent);
  flex-shrink:0; padding-top:2px;
}
.feat h3{ font-size:17px; font-weight:600; letter-spacing:-.01em; margin-bottom:8px }
.feat p{ font-size:14px; line-height:1.65; color:var(--ink-2) }

/* ============================================================
   КОНТАКТЫ — форма заявки
   ============================================================ */
.contact{ padding:0 0 clamp(70px,8vw,110px) }
.contact__box{
  position:relative; overflow:hidden; border-radius:var(--r-xl);
  display:grid; grid-template-columns:1fr 1fr; gap:0;
  box-shadow:var(--sh-lg); isolation:isolate;
}
.contact__pic{
  position:absolute; inset:0; z-index:-2;
  background-size:cover; background-position:center;
}
.contact__box::after{
  content:''; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(100deg, rgba(11,27,51,.82) 0%, rgba(11,27,51,.58) 46%,
                                     rgba(11,27,51,.30) 100%);
}
.contact__left{ padding:clamp(34px,4vw,56px); color:#fff; align-self:center }
.contact__left .tag{ background:var(--glass-dark); color:#fff; border:1px solid var(--glass-line) }
.contact__title{
  font-family:var(--display); font-weight:400;
  font-size:clamp(32px,3.6vw,52px); line-height:1.05; letter-spacing:-.02em;
}
.contact__title i{ font-style:italic; color:#BFDBFE }
.contact__lead{ margin-top:16px; max-width:340px; font-size:15px; line-height:1.65;
  color:rgba(255,255,255,.82) }
.contact__links{ display:flex; flex-direction:column; gap:10px; margin-top:28px }
.contact__links a{
  display:inline-flex; align-items:center; gap:11px; width:fit-content;
  font-size:15.5px; font-weight:500; transition:opacity .3s, transform .3s var(--ease);
}
.contact__links a:hover{ opacity:.75; transform:translateX(3px) }
.contact__links svg{ width:16px; height:16px; opacity:.6; flex-shrink:0 }

/* карточка формы */
.contact__form{
  margin:clamp(18px,2vw,26px); padding:clamp(24px,2.6vw,34px);
  border-radius:var(--r-lg); background:var(--glass-strong);
  border:1px solid var(--glass-line);
  -webkit-backdrop-filter:var(--blur); backdrop-filter:var(--blur);
  box-shadow:var(--sh-md);
}
.contact__form h3{ font-size:19px; font-weight:600; letter-spacing:-.01em }
.contact__form > p{ margin-top:6px; font-size:13.5px; color:var(--ink-3) }
.f-grid{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:22px }
.f-row{ display:flex; flex-direction:column; gap:6px }
.f-row--wide{ grid-column:1 / -1 }
.f-row label{ font-size:11.5px; font-weight:600; letter-spacing:.05em;
  text-transform:uppercase; color:var(--ink-3) }
.f-row input, .f-row select, .f-row textarea{
  width:100%; padding:12px 14px; border-radius:var(--r-sm);
  border:1px solid var(--line); background:#fff; color:var(--ink);
  font:inherit; font-size:14.5px; transition:border-color .3s, box-shadow .3s;
}
.f-row textarea{ resize:vertical; min-height:78px }
.f-row select{ appearance:none; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237C93AE' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 12px center; background-size:16px;
  padding-right:36px;
}
.f-row input:focus, .f-row select:focus, .f-row textarea:focus{
  outline:none; border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft);
}
.f-row input:user-invalid{ border-color:#DC2626 }
.f-send{
  display:flex; align-items:center; justify-content:center; gap:9px;
  width:100%; height:50px; margin-top:18px; border-radius:var(--r-pill);
  background:var(--accent); color:#fff; font-size:15px; font-weight:600;
  box-shadow:0 12px 30px -10px rgba(37,99,235,.85);
  transition:transform .35s var(--ease), background .3s;
}
.f-send:hover{ transform:translateY(-2px); background:var(--accent-deep) }
.f-send svg{ width:16px; height:16px }
.f-note{ margin-top:12px; font-size:11.5px; line-height:1.5; color:var(--ink-3); text-align:center }

/* состояние «отправлено» */
.f-done{
  display:none; flex-direction:column; align-items:center; text-align:center;
  padding:26px 10px;
}
.contact__form.is-sent .f-grid,
.contact__form.is-sent .f-send,
.contact__form.is-sent .f-note,
.contact__form.is-sent > p{ display:none }
.contact__form.is-sent{ display:flex; flex-direction:column; justify-content:center }
.contact__form.is-sent .f-done{ display:flex }
.f-done__ico{
  width:52px; height:52px; border-radius:50%; display:grid; place-items:center;
  background:var(--accent-soft); color:var(--accent-deep); margin-bottom:16px;
}
.f-done__ico svg{ width:24px; height:24px }
.f-done h4{ font-family:var(--display); font-size:24px; font-weight:400 }
.f-done p{ margin-top:8px; font-size:14px; color:var(--ink-2); max-width:280px }

@media (max-width:980px){
  .contact__box{ grid-template-columns:1fr }
  .contact__lead{ max-width:none }
}
@media (max-width:560px){
  .f-grid{ grid-template-columns:1fr }
}

/* ============================================================
   ФУТЕР
   ============================================================ */
.foot{
  margin-top:40px; padding:clamp(48px,6vw,80px) 0 0;
  border-top:1px solid var(--line);
}
.foot__top{
  display:flex; align-items:flex-start; justify-content:space-between;
  gap:48px; flex-wrap:wrap; padding-bottom:52px;
}
.foot__pitch{ max-width:400px }
.foot__pitch .brand{ margin-bottom:20px }
.foot__pitch p{ color:var(--ink-2); font-size:14.5px; line-height:1.7 }
.foot__addr{ margin-top:16px; font-size:13.5px !important; color:var(--ink-3) !important }
.foot__lic{ margin-top:4px; font-size:12.5px !important; color:var(--ink-3) !important }
.foot__col > div a{ display:block; padding:5px 0; font-size:14.5px; color:var(--ink-2);
  transition:color .3s, transform .3s var(--ease) }
.foot__col > div a:hover{ color:var(--accent); transform:translateX(3px) }
.foot__cols{ display:flex; gap:clamp(36px,6vw,88px); flex-wrap:wrap }
.foot__col h4{
  font-size:11.5px; font-weight:600; letter-spacing:.11em; text-transform:uppercase;
  color:var(--ink-3); margin-bottom:16px;
}
.foot__col a{ display:block; padding:5px 0; font-size:14.5px; color:var(--ink-2);
  transition:color .3s, transform .3s var(--ease) }
.foot__col a:hover{ color:var(--accent); transform:translateX(3px) }
.foot__bot{
  display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;
  padding:22px 0 30px; border-top:1px solid var(--line);
  font-size:13px; color:var(--ink-3);
}
.foot__soc{ display:flex; gap:8px }
.foot__soc a{
  width:36px; height:36px; border-radius:50%; display:grid; place-items:center;
  border:1px solid var(--line); color:var(--ink-2); transition:.35s var(--ease);
}
.foot__soc svg{ width:15px; height:15px }
.foot__soc a:hover{ background:var(--ink); color:#fff; border-color:transparent; transform:translateY(-2px) }

/* панель показываем только когда для неё есть поле слева */
@media (min-width:1440px){
  .rail{ display:flex }
}

@media (max-height:760px){
  .hero__floats{ display:none }
  .hero{ padding-bottom:120px }
}

/* ============================================================
   АДАПТИВ
   ============================================================ */
@media (max-width:1180px){
  .nav{ display:none }
  .burger{ display:grid }
  .stats{ grid-template-columns:repeat(2,1fr) }
  .feats{ grid-template-columns:1fr }
  .hero__floats{ padding-bottom:34px }
  .chip-stat{ display:none }
}
@media (max-width:900px){
  .hero{ height:auto; min-height:100svh; padding:136px var(--pad) 76px }
  .search-hint{ position:static; margin-top:14px }
  .search-hint__pill{ flex-wrap:wrap; justify-content:center }
  .hero__title{ font-size:clamp(44px, 11vw, 84px) }
  .hero__sub{ font-size:15px }
  .dest{ grid-template-columns:repeat(2,1fr); grid-auto-rows:170px }
  .dest__it:nth-child(n){ grid-column:auto; grid-row:auto }
  .dest__it:nth-child(1){ grid-column:1 / 3; grid-row:1 / 3 }
  .dest__it:nth-child(6){ grid-column:1 / 3 }
  .sec__head{ flex-direction:column; align-items:flex-start; gap:24px }
  .search{ flex-direction:column; align-items:stretch; border-radius:var(--r-lg); gap:2px }
  .field{ border-radius:var(--r-md) }
  .field + .field::before{ left:20px; right:20px; top:0; height:1px; width:auto }
  .drop{ max-width:100% }
  .search__go{ justify-content:center; margin-top:6px }
  .card-tour{ width:100% }
  .hero__floats{ justify-content:center }
  .hero__dots{ display:none }
  .scroll-cue{ display:none }
}
@media (max-width:620px){
  .dest{ grid-template-columns:1fr; grid-auto-rows:210px }
  .dest__it:nth-child(n){ grid-column:span 1; grid-row:span 1 }
  .dest-more{ display:flex }
  .dest.is-clipped .dest__it:nth-child(n+4){ display:none }
  .dest__body{ flex-direction:column; align-items:flex-start; gap:10px }
  .dest__price{ order:-1 }
  .stats{ grid-template-columns:1fr }
  .hero__eyebrow{ font-size:12.5px }
  .hero__floats{ display:none }
  .hdr__cta{ display:none }
  .hdr__tool:not(.lang){ display:none }
  .lang{ height:34px }
  .lang button{ padding:4px 8px; font-size:12px }
  .brand__name{ font-size:17px; letter-spacing:.18em }
  .foot__top{ gap:34px }
}

/* ============================================================
   ВНУТРЕННИЕ СТРАНИЦЫ — общее
   ============================================================ */
.page{ padding-top:96px }

.page-head{ padding:clamp(34px,4vw,56px) 0 clamp(30px,3.5vw,46px); position:relative }
.page-head::before{
  content:''; position:absolute; inset:-96px 0 0 0; z-index:-1;
  background:radial-gradient(70% 100% at 20% 0%, rgba(37,99,235,.09), transparent 70%),
             radial-gradient(60% 90% at 92% 10%, rgba(125,184,240,.16), transparent 70%);
  pointer-events:none;
}
.crumbs{ display:flex; align-items:center; gap:9px; font-size:13px; color:var(--ink-3); margin-bottom:20px }
.crumbs a{ transition:color .3s }
.crumbs a:hover{ color:var(--accent) }
.crumbs--light{ color:rgba(255,255,255,.7) }
.crumbs--light a:hover{ color:#fff }

.page-title{
  font-family:var(--display); font-weight:400;
  font-size:clamp(38px,5.6vw,78px); line-height:1.02; letter-spacing:-.02em;
}
.page-title i{ font-style:italic; color:var(--accent) }
.page-lead{ margin-top:18px; max-width:520px; font-size:16px; line-height:1.65; color:var(--ink-2) }

/* плашка «ваш запрос» из поиска на главной */
.applied{
  display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-top:26px;
  padding:12px 14px; border-radius:var(--r-pill); width:fit-content; max-width:100%;
  background:#fff; border:1px solid var(--line); box-shadow:var(--sh-sm);
}
.applied__lbl{ font-size:12px; font-weight:600; letter-spacing:.05em;
  text-transform:uppercase; color:var(--ink-3); padding-left:6px }
.applied__chip{ padding:6px 13px; border-radius:var(--r-pill);
  background:var(--accent-soft); color:var(--accent-deep); font-size:13.5px; font-weight:600 }
.applied__clear{ padding:6px 12px; font-size:13px; color:var(--ink-3); transition:color .3s }
.applied__clear:hover{ color:var(--accent) }

/* сетки */
.grid-tours{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px }
.grid-tours .tour{ flex:none; width:auto }
.grid-posts{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px }

/* ============================================================
   КАТАЛОГ
   ============================================================ */
.catalog{ display:grid; grid-template-columns:250px 1fr; gap:38px; align-items:start }

.filt{ position:sticky; top:96px; display:flex; flex-direction:column; gap:26px }
.filt__head, .filt__apply{ display:none }
.filt__grp h4{
  font-size:11.5px; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
  color:var(--ink-3); margin-bottom:12px;
}
.filt__opts{ display:flex; flex-direction:column; gap:2px }
.filt__o{
  display:flex; align-items:center; gap:10px; width:100%; text-align:left;
  padding:9px 12px; border-radius:var(--r-sm); font-size:14.5px; color:var(--ink-2);
  transition:background .25s, color .25s;
}
.filt__o i{
  width:15px; height:15px; border-radius:5px; border:1.5px solid var(--line);
  flex-shrink:0; transition:.25s var(--ease); position:relative;
}
.filt__o:hover{ background:var(--bg) }
.filt__o.is-on{ color:var(--ink); font-weight:600 }
.filt__o.is-on i{ background:var(--accent); border-color:var(--accent) }
.filt__o.is-on i::after{
  content:''; position:absolute; inset:0; margin:auto; width:5px; height:8px;
  border:solid #fff; border-width:0 2px 2px 0; transform:translateY(-1px) rotate(45deg);
}
.filt__reset{
  align-self:flex-start; padding:10px 16px; border-radius:var(--r-pill);
  border:1px solid var(--line); font-size:13.5px; color:var(--ink-2); transition:.3s;
}
.filt__reset:hover{ background:#fff; box-shadow:var(--sh-sm); color:var(--ink) }

.catalog__bar{
  display:flex; align-items:center; gap:16px; flex-wrap:wrap;
  padding-bottom:20px; margin-bottom:24px; border-bottom:1px solid var(--line);
}
.catalog__count{ font-size:14.5px; color:var(--ink-3) }
.catalog__count b{ color:var(--ink); font-size:16px }
.catalog__sort{ margin-left:auto; display:flex; align-items:center; gap:9px;
  font-size:13.5px; color:var(--ink-3) }
.catalog__sort select{
  appearance:none; padding:9px 34px 9px 14px; border-radius:var(--r-pill);
  border:1px solid var(--line); background:#fff; font:inherit; font-size:14px;
  color:var(--ink); cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237C93AE' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 12px center; background-size:15px;
}
.catalog__filt-btn{ display:none }
.catalog__empty{
  padding:48px 24px; text-align:center; color:var(--ink-2); font-size:15.5px;
  line-height:1.65; background:#fff; border:1px solid var(--line); border-radius:var(--r-lg);
}

/* ============================================================
   СТРАНИЦА ТУРА
   ============================================================ */
.tour-page{ padding-top:0 }
.tour-hero{
  position:relative; display:flex; align-items:flex-end;
  min-height:min(62svh, 560px); padding:150px 0 clamp(34px,4vw,54px);
  overflow:hidden; isolation:isolate; color:#fff;
}
.tour-hero__pic{ position:absolute; inset:0; z-index:-2; background-size:cover; background-position:center }
.tour-hero::after{
  content:''; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(180deg, rgba(11,27,51,.66) 0%, rgba(11,27,51,.24) 42%, rgba(11,27,51,.78) 100%);
}
.tour-hero__badge{
  display:inline-block; margin-bottom:16px; padding:7px 15px; border-radius:var(--r-pill);
  background:var(--glass-dark); border:1px solid var(--glass-line);
  -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px);
  font-size:12.5px; font-weight:600;
}
.tour-hero__title{
  font-family:var(--display); font-weight:400;
  font-size:clamp(38px,6vw,86px); line-height:1; letter-spacing:-.02em;
  text-shadow:0 4px 40px rgba(11,27,51,.35);
}
.tour-hero__geo{ margin-top:14px; font-size:16px; color:rgba(255,255,255,.85) }
.tour-hero__facts{ display:flex; flex-wrap:wrap; gap:8px; margin-top:24px; list-style:none }
.tour-hero__facts li{
  padding:8px 15px; border-radius:var(--r-pill);
  background:var(--glass-dark); border:1px solid var(--glass-line);
  -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px);
  font-size:13.5px;
}

.tour-grid{ display:grid; grid-template-columns:1fr 344px; gap:52px; align-items:start }
.tour-lead{ font-size:clamp(17px,1.7vw,20px); line-height:1.6; color:var(--ink-2) }
.tour-h2{
  font-family:var(--display); font-weight:400; font-size:clamp(26px,3vw,38px);
  letter-spacing:-.01em; margin:clamp(38px,4vw,56px) 0 22px;
}

.plan{ list-style:none; counter-reset:day }
.plan__it{
  display:flex; gap:22px; padding:18px 0; border-top:1px solid var(--line);
}
.plan__it:last-child{ border-bottom:1px solid var(--line) }
.plan__n{
  flex-shrink:0; width:78px; padding-top:2px;
  font-size:12px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--accent);
}
.plan__txt{ font-size:15.5px; line-height:1.6; color:var(--ink-2) }

.incl{ display:grid; grid-template-columns:1fr 1fr; gap:14px 34px }
.incl ul{ list-style:none; display:flex; flex-direction:column; gap:11px }
.incl li{ display:flex; align-items:flex-start; gap:11px; font-size:14.5px; line-height:1.5 }
.incl svg{ width:16px; height:16px; flex-shrink:0; margin-top:3px }
.incl__yes li{ color:var(--ink-2) }
.incl__yes svg{ color:var(--accent) }
.incl__no li{ color:var(--ink-3) }
.incl__no svg{ color:var(--ink-3); opacity:.7 }

.book{ position:sticky; top:96px }
.book__card{
  padding:26px; border-radius:var(--r-lg); background:#fff;
  border:1px solid var(--line); box-shadow:var(--sh-md);
}
.book__price b{ font-family:var(--display); font-size:44px; line-height:1; letter-spacing:-.01em }
.book__price small{ display:block; margin-top:5px; font-size:13px; color:var(--ink-3) }
.book__meta{ list-style:none; margin:22px 0; display:flex; flex-direction:column; gap:11px }
.book__meta li{ display:flex; align-items:center; justify-content:space-between; gap:14px;
  padding-bottom:11px; border-bottom:1px solid var(--line); font-size:14px }
.book__meta li:last-child{ border-bottom:0; padding-bottom:0 }
.book__meta span{ color:var(--ink-3) }
.book__wx{
  display:flex; align-items:center; gap:12px; margin-bottom:20px;
  padding:13px 15px; border-radius:var(--r-md); background:var(--bg);
}
.book__wx-ico{ font-size:26px; line-height:1 }
.book__wx b{ font-size:17px; font-weight:600 }
.book__wx small{ display:block; font-size:12.5px; color:var(--ink-3) }
.book__go{
  /* width:100% обязателен: <button> не тянется на всю ширину сам, в отличие от <a> */
  display:flex; align-items:center; justify-content:center; width:100%; height:52px;
  border-radius:var(--r-pill); background:var(--accent); color:#fff;
  font-size:15.5px; font-weight:600; box-shadow:0 12px 30px -10px rgba(37,99,235,.85);
  transition:transform .35s var(--ease), background .3s;
}
.book__go:hover{ transform:translateY(-2px); background:var(--accent-deep) }
.book__ask{
  display:flex; align-items:center; justify-content:center; width:100%; height:48px; margin-top:10px;
  border-radius:var(--r-pill); border:1px solid var(--line);
  font-size:14.5px; font-weight:500; transition:.3s;
}
.book__ask:hover{ background:var(--bg) }
.book__note{ margin-top:14px; font-size:12px; line-height:1.5; color:var(--ink-3); text-align:center }

/* ============================================================
   ЖУРНАЛ
   ============================================================ */
.bl-cats{ display:flex; flex-wrap:wrap; gap:8px; margin-top:28px }
.bl-cat{
  padding:10px 19px; border-radius:var(--r-pill); border:1px solid var(--line);
  background:#fff; font-size:14px; font-weight:500; color:var(--ink-2); transition:.3s var(--ease);
}
.bl-cat:hover{ transform:translateY(-2px); box-shadow:var(--sh-sm); color:var(--ink) }
.bl-cat.is-on{ background:var(--ink); border-color:transparent; color:#fff }

.post{
  display:flex; flex-direction:column; background:#fff; border-radius:var(--r-lg);
  overflow:hidden; border:1px solid var(--line); box-shadow:var(--sh-sm);
  transition:transform .5s var(--ease), box-shadow .5s var(--ease);
}
.post:hover{ transform:translateY(-6px); box-shadow:var(--sh-lg) }
.post__pic{ display:block; position:relative; aspect-ratio:16/10; overflow:hidden }
.post__pic > div{ position:absolute; inset:0; background-size:cover; background-position:center;
  transition:transform 1s var(--ease) }
.post:hover .post__pic > div{ transform:scale(1.06) }
.post__body{ padding:22px 22px 24px; display:flex; flex-direction:column; flex:1 }
.post__meta{ display:flex; align-items:center; flex-wrap:wrap; gap:9px; font-size:12.5px; color:var(--ink-3) }
.post__meta i{ width:3px; height:3px; border-radius:50%; background:currentColor; opacity:.5 }
.post__cat{ padding:4px 11px; border-radius:var(--r-pill);
  background:var(--accent-soft); color:var(--accent-deep); font-weight:600 }
.post__title{ margin-top:14px; font-family:var(--display); font-weight:400;
  font-size:24px; line-height:1.18; letter-spacing:-.01em }
.post__title a{ transition:color .3s }
.post__title a:hover{ color:var(--accent) }
.post__excerpt{ margin-top:11px; font-size:14.5px; line-height:1.6; color:var(--ink-2) }
.post__more{ display:inline-flex; align-items:center; gap:8px; margin-top:auto; padding-top:20px;
  font-size:14px; font-weight:600; color:var(--accent) }
.post__more svg{ width:14px; height:14px; transition:transform .4s var(--ease) }
.post:hover .post__more svg{ transform:translate(3px,-3px) }

/* первая статья — во всю ширину */
.post--big{ grid-column:1 / -1; flex-direction:row }
.post--big .post__pic{ flex:0 0 52%; aspect-ratio:auto }
.post--big .post__body{ padding:clamp(26px,3vw,44px); justify-content:center }
.post--big .post__title{ font-size:clamp(28px,3.2vw,40px) }
.post--big .post__excerpt{ font-size:16px; max-width:460px }
.post--big .post__more{ margin-top:24px; padding-top:0 }

/* ============================================================
   СТАТЬЯ
   ============================================================ */
.article{ padding-bottom:clamp(40px,5vw,70px) }
.article__head{ padding:clamp(30px,3.5vw,50px) 0 clamp(26px,3vw,40px) }
.article__meta{ display:flex; align-items:center; flex-wrap:wrap; gap:9px;
  font-size:13px; color:var(--ink-3); margin-bottom:20px }
.article__meta i{ width:3px; height:3px; border-radius:50%; background:currentColor; opacity:.5 }
.article__title{
  font-family:var(--display); font-weight:400; max-width:900px;
  font-size:clamp(34px,5vw,68px); line-height:1.04; letter-spacing:-.02em;
}
.article__excerpt{ margin-top:20px; max-width:640px; font-size:clamp(17px,1.7vw,20px);
  line-height:1.6; color:var(--ink-2) }
.article__pic{
  width:min(var(--wrap), 100% - var(--pad)*2); margin:0 auto;
  aspect-ratio:21/9; border-radius:var(--r-xl); background-size:cover; background-position:center;
  box-shadow:var(--sh-lg);
}
.article__text{ max-width:720px; margin-top:clamp(34px,4vw,56px) }
.article__text p{ font-size:17px; line-height:1.75; color:var(--ink-2) }
.article__text p + p{ margin-top:20px }
.article__text p:first-child::first-letter{
  float:left; font-family:var(--display); font-size:64px; line-height:.82;
  padding:6px 12px 0 0; color:var(--accent);
}
.article__foot{ margin-top:clamp(34px,4vw,52px) }

/* ============================================================
   АДАПТИВ ВНУТРЕННИХ СТРАНИЦ
   ============================================================ */
@media (max-width:1100px){
  .tour-grid{ grid-template-columns:1fr; gap:34px }
  .book{ position:static }
  .book__card{ display:grid; grid-template-columns:1fr 1fr; gap:0 26px; align-items:center }
  .book__meta{ margin:0 }
  .book__go, .book__ask, .book__note, .book__wx{ grid-column:1 / -1 }
  .book__wx{ margin:20px 0 0 }
  .book__go{ margin-top:16px }
}
@media (max-width:980px){
  .grid-tours, .grid-posts{ grid-template-columns:repeat(2,1fr) }
  .post--big{ flex-direction:column }
  .post--big .post__pic{ flex:none; aspect-ratio:16/9 }
  .catalog{ grid-template-columns:1fr }
  .catalog__filt-btn{
    display:inline-flex; align-items:center; height:42px; padding:0 18px;
    border-radius:var(--r-pill); border:1px solid var(--line); background:#fff;
    font-size:14px; font-weight:600;
  }
  .filt{
    position:fixed; inset:0; z-index:70; overflow-y:auto;
    padding:88px var(--pad) 40px; gap:30px;
    background:var(--bg); transform:translateY(100%);
    transition:transform .45s var(--ease);
  }
  .filt.is-open{ transform:none }
  .filt__reset{ align-self:stretch; text-align:center }
  .filt{ padding:20px var(--pad) 110px }
  .filt__head{
    display:flex; align-items:center; justify-content:space-between;
    position:sticky; top:0; z-index:2; margin:0 calc(var(--pad) * -1);
    padding:14px var(--pad) 16px; background:var(--bg);
  }
  .filt__head h3{ font-size:19px; font-weight:600 }
  .filt__close{
    width:40px; height:40px; border-radius:50%; display:grid; place-items:center;
    border:1px solid var(--line); background:#fff;
  }
  .filt__close svg{ width:17px; height:17px }
  .filt__apply{
    display:flex; align-items:center; justify-content:center;
    position:fixed; left:var(--pad); right:var(--pad); bottom:20px; height:54px;
    border-radius:var(--r-pill); background:var(--accent); color:#fff;
    font-size:15.5px; font-weight:600;
    box-shadow:0 14px 32px -12px rgba(37,99,235,.9);
  }
}
@media (max-width:620px){
  .grid-tours, .grid-posts{ grid-template-columns:1fr }
  .incl{ grid-template-columns:1fr }
  .book__card{ grid-template-columns:1fr }
  .article__pic{ aspect-ratio:4/3; border-radius:var(--r-lg) }
  .article__text p:first-child::first-letter{ font-size:50px }
  .plan__it{ flex-direction:column; gap:6px }
  .plan__n{ width:auto }
  .catalog__sort{ margin-left:0; width:100% }
  .catalog__sort select{ flex:1 }
}

/* ============================================================
   ПЛАВНЫЙ ПЕРЕХОД МЕЖДУ СТРАНИЦАМИ
   ============================================================ */
/* современные браузеры делают кросс-страничный переход сами */
@view-transition{ navigation: auto }

::view-transition-old(root){ animation:vtOut .28s var(--ease) both }
::view-transition-new(root){ animation:vtIn  .42s var(--ease) both }
@keyframes vtOut{ to{ opacity:0; transform:translateY(-8px) } }
@keyframes vtIn { from{ opacity:0; transform:translateY(10px) } }

/* запасной вариант там, где View Transitions нет.
   Намеренно без animation-fill-mode: если кадр не отрисуется
   (фоновая вкладка, экономия батареи), страница просто видна сразу. */
/* ВАЖНО: только opacity. transform на body делает его containing block
   для position:fixed — модалки и шапка уезжают вниз на всю высоту документа. */
@keyframes pageIn{ from{ opacity:0 } to{ opacity:1 } }
body{
  animation:pageIn .38s var(--ease);
  transition:opacity .28s var(--ease);
}
html.is-leaving body{ opacity:0 }

@media (prefers-reduced-motion:reduce){
  body{ animation:none }
  .modal__veil, .modal__box{ animation:none }
  html.is-leaving body{ opacity:1 }
}

/* ============================================================
   МОДАЛЬНЫЕ ОКНА
   ============================================================ */
.modal{
  position:fixed; inset:0; z-index:90;
  display:flex; align-items:center; justify-content:center;
  padding:var(--pad);
}
/* появление — анимацией без fill-mode: если кадр не отрисуется,
   окно всё равно останется видимым, а не пустым */
@keyframes veilIn { from{ opacity:0 } to{ opacity:1 } }
@keyframes modalIn{ from{ opacity:0; transform:translateY(18px) scale(.97) }
                    to  { opacity:1; transform:none } }

.modal__veil{
  position:absolute; inset:0; background:rgba(11,27,51,.42);
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  animation:veilIn .3s var(--ease); transition:opacity .28s var(--ease);
}
.modal__box{
  position:relative; width:min(520px, 100%); max-height:88svh; overflow-y:auto;
  padding:clamp(26px,3vw,40px); border-radius:var(--r-xl);
  background:#fff; box-shadow:var(--sh-xl);
  animation:modalIn .34s var(--ease);
  transition:opacity .28s var(--ease), transform .28s var(--ease);
}
/* закрытие */
.modal.is-closing .modal__veil{ opacity:0 }
.modal.is-closing .modal__box{ opacity:0; transform:translateY(14px) scale(.98) }
.modal__box--wide{ width:min(620px, 100%) }

.modal__x{
  position:absolute; top:16px; right:16px; width:38px; height:38px; border-radius:50%;
  display:grid; place-items:center; color:var(--ink-3);
  border:1px solid var(--line); background:#fff; transition:.3s var(--ease);
}
.modal__x svg{ width:16px; height:16px }
.modal__x:hover{ background:var(--ink); color:#fff; border-color:transparent; transform:rotate(90deg) }

.modal__title{
  font-family:var(--display); font-weight:400; font-size:clamp(26px,3vw,34px);
  line-height:1.1; letter-spacing:-.01em; padding-right:44px;
}
.modal__lead{ margin-top:10px; font-size:14.5px; line-height:1.6; color:var(--ink-2) }

/* модалка поиска */
.sm-grid{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:24px }
.sm-quick{ margin-top:20px; text-align:center; font-size:13px; color:var(--ink-3) }
.sm-all{
  display:flex; align-items:center; justify-content:center; height:46px; margin-top:10px;
  border-radius:var(--r-pill); border:1px solid var(--line);
  font-size:14.5px; font-weight:500; transition:.3s;
}
.sm-all:hover{ background:var(--bg) }

/* модалка брони */
.bk-tour{
  display:flex; align-items:center; gap:14px; margin-top:22px;
  padding:14px; border-radius:var(--r-md); background:var(--bg);
}
.bk-tour__pic{ width:64px; height:64px; flex-shrink:0; border-radius:var(--r-sm);
  background-size:cover; background-position:center }
.bk-tour__name{ display:block; font-family:var(--display); font-size:20px; line-height:1.15 }
.bk-tour__geo{ display:block; margin-top:3px; font-size:12.5px; color:var(--ink-3) }
.bk-tour__price{ margin-left:auto; text-align:right; flex-shrink:0 }
.bk-tour__price b{ display:block; font-size:19px; font-weight:600 }
.bk-tour__price small{ display:block; font-size:11px; color:var(--ink-3) }

.bk-grid{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:20px }
.bk-total{
  display:flex; align-items:center; justify-content:space-between; gap:14px;
  margin-top:20px; padding:16px 18px; border-radius:var(--r-md);
  background:var(--accent-soft); color:var(--accent-deep);
}
.bk-total span{ font-size:13.5px; font-weight:600 }
.bk-total b{ font-family:var(--display); font-size:28px; line-height:1 }

/* отчёт после отправки */
.bk-sent{ display:none; flex-direction:column; align-items:center; text-align:center; padding:12px 0 }
.modal.is-sent .bk-form{ display:none }
.modal.is-sent .bk-sent{ display:flex }
.bk-sent__ico{
  width:56px; height:56px; border-radius:50%; display:grid; place-items:center;
  background:var(--accent-soft); color:var(--accent-deep); margin-bottom:18px;
}
.bk-sent__ico svg{ width:26px; height:26px }
.bk-sent h4{ font-family:var(--display); font-size:26px; font-weight:400 }
.bk-sent p{ margin-top:9px; font-size:14.5px; line-height:1.6; color:var(--ink-2); max-width:340px }
.bk-payload{
  width:100%; margin-top:22px; padding:16px; border-radius:var(--r-md);
  background:var(--bg); text-align:left;
}
.bk-payload h5{
  font-size:11px; font-weight:600; letter-spacing:.09em; text-transform:uppercase;
  color:var(--ink-3); margin-bottom:12px;
}
.bk-payload dl{ display:grid; grid-template-columns:auto 1fr; gap:7px 16px; font-size:13px }
.bk-payload dt{ color:var(--ink-3) }
.bk-payload dd{ font-weight:600; text-align:right }

@media (max-width:560px){
  .sm-grid, .bk-grid{ grid-template-columns:1fr }
  .modal{ align-items:flex-end; padding:0 }
  @keyframes modalIn{ from{ opacity:0; transform:translateY(100%) } to{ opacity:1; transform:none } }
  .modal__box{ width:100%; max-height:92svh; border-radius:var(--r-xl) var(--r-xl) 0 0 }
  .modal.is-closing .modal__box{ transform:translateY(100%) }
}

/* ============================================================
   СКЕЛЕТОНЫ ЗАГРУЗКИ
   ============================================================ */
@keyframes shimmer{ to{ background-position:200% 0 } }
.sk{
  background:linear-gradient(100deg, var(--bg-deep) 30%, #fff 50%, var(--bg-deep) 70%);
  background-size:200% 100%; animation:shimmer 1.3s linear infinite;
  border-radius:var(--r-sm);
}
.sk-card{
  border-radius:var(--r-lg); overflow:hidden; background:#fff;
  border:1px solid var(--line); box-shadow:var(--sh-sm);
}
.sk-card__pic{ aspect-ratio:4/3 }
.sk-card__body{ padding:18px 19px 19px }
.sk-line{ height:13px; margin-bottom:10px }
.sk-line--title{ height:19px; width:70%; margin-bottom:14px }
.sk-line--short{ width:45% }
.sk-row{ display:flex; gap:7px; margin:16px 0 }
.sk-chip{ height:24px; width:74px; border-radius:var(--r-pill) }
.sk-foot{ display:flex; align-items:center; justify-content:space-between;
  margin-top:17px; padding-top:15px; border-top:1px solid var(--line) }
.sk-price{ height:22px; width:88px }
.sk-arw{ width:38px; height:38px; border-radius:50% }

/* ============================================================
   ИЗБРАННОЕ
   ============================================================ */
.fav-empty{
  display:flex; flex-direction:column; align-items:center; text-align:center;
  padding:clamp(48px,7vw,90px) 24px;
  background:#fff; border:1px solid var(--line); border-radius:var(--r-xl);
}
.fav-empty__ico{
  width:66px; height:66px; border-radius:50%; display:grid; place-items:center;
  background:var(--accent-soft); color:var(--accent); margin-bottom:22px;
}
.fav-empty__ico svg{ width:30px; height:30px }
.fav-empty h2{ font-family:var(--display); font-weight:400; font-size:clamp(26px,3vw,34px) }
.fav-empty p{ margin-top:12px; max-width:400px; font-size:15px; line-height:1.65; color:var(--ink-2) }
.fav-empty .hdr__cta{ margin-top:26px; height:50px; padding:0 26px; font-size:15px }

.fav-bar{ display:flex; align-items:center; gap:16px; flex-wrap:wrap;
  padding-bottom:20px; margin-bottom:24px; border-bottom:1px solid var(--line) }
.fav-clear{ margin-left:auto; padding:9px 16px; border-radius:var(--r-pill);
  border:1px solid var(--line); font-size:13.5px; color:var(--ink-2); transition:.3s }
.fav-clear:hover{ background:#fff; box-shadow:var(--sh-sm); color:var(--ink) }

/* сердечко в активном состоянии */
.tour__fav.is-on{ background:var(--accent); color:#fff }
.tour__fav.is-on svg{ fill:currentColor }

/* ============================================================
   ОТЗЫВЫ
   ============================================================ */
.revs{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px }
.rev{
  padding:26px 24px; border-radius:var(--r-lg); background:#fff;
  border:1px solid var(--line); box-shadow:var(--sh-sm);
  transition:transform .5s var(--ease), box-shadow .5s var(--ease);
}
.rev:hover{ transform:translateY(-5px); box-shadow:var(--sh-md) }
.rev__stars{ display:flex; gap:2px; color:#F5A524; margin-bottom:16px }
.rev__stars svg{ width:15px; height:15px }
.rev__txt{ font-size:15px; line-height:1.65; color:var(--ink-2) }
.rev__who{ display:flex; align-items:center; gap:12px; margin-top:20px;
  padding-top:18px; border-top:1px solid var(--line) }
.rev__ava{ width:42px; height:42px; border-radius:50%; flex-shrink:0;
  background-size:cover; background-position:center; background-color:var(--bg-deep) }
.rev__name{ font-size:14.5px; font-weight:600 }
.rev__meta{ font-size:12.5px; color:var(--ink-3); margin-top:2px }
@media (max-width:980px){ .revs{ grid-template-columns:1fr } }

/* ============================================================
   ПРАКТИЧЕСКАЯ ИНФОРМАЦИЯ ПО СТРАНЕ (Warnely)
   ============================================================ */
.facts__grid{ display:grid; grid-template-columns:1.15fr 1fr; gap:22px; align-items:start }

.safety{
  padding:28px 26px; border-radius:var(--r-lg); background:#fff;
  border:1px solid var(--line); box-shadow:var(--sh-sm);
}
.safety__top{ display:flex; align-items:center; gap:14px }
.safety__flag{ font-size:38px; line-height:1 }
.safety__country{ display:block; font-family:var(--display); font-size:26px; line-height:1.1 }
.safety__tier{
  display:inline-block; margin-top:7px; padding:5px 12px; border-radius:var(--r-pill);
  font-size:12.5px; font-weight:600;
}
.safety__tier--ok  { background:#DCFCE7; color:#166534 }
.safety__tier--mid { background:#FEF3C7; color:#92400E }
.safety__tier--high{ background:#FEE2E2; color:#991B1B }

.safety__score{ margin-left:auto; text-align:right; flex-shrink:0 }
.safety__score b{ font-family:var(--display); font-size:42px; line-height:1; letter-spacing:-.02em }
.safety__score small{ display:block; font-size:11.5px; color:var(--ink-3); margin-top:2px }
.safety__score--ok b  { color:#16A34A }
.safety__score--mid b { color:#D97706 }
.safety__score--high b{ color:#DC2626 }

.safety__txt{ margin-top:18px; font-size:14.5px; line-height:1.6; color:var(--ink-2) }

.safety__bar{
  position:relative; height:7px; margin-top:20px; border-radius:var(--r-pill);
  background:linear-gradient(90deg,#DCFCE7,#FEF3C7 55%,#FEE2E2);
  overflow:visible;
}
.safety__bar i{
  position:absolute; top:50%; left:0; height:15px; width:3px; border-radius:2px;
  transform:translate(-50%,-50%); background:var(--ink);
  box-shadow:0 0 0 3px #fff;
}
.safety__bar i.safety__bar--ok  { background:#16A34A }
.safety__bar i.safety__bar--mid { background:#D97706 }
.safety__bar i.safety__bar--high{ background:#DC2626 }
.safety__scale{
  display:flex; justify-content:space-between; margin-top:9px;
  font-size:11.5px; color:var(--ink-3);
}
.safety__link{
  display:inline-flex; align-items:center; gap:8px; margin-top:20px;
  font-size:13.5px; font-weight:600; color:var(--accent); transition:gap .3s var(--ease);
}
.safety__link svg{ width:13px; height:13px }
.safety__link:hover{ gap:12px }

.facts__list{ list-style:none; display:flex; flex-direction:column; gap:2px }
.facts__list li{
  display:flex; align-items:center; gap:14px;
  padding:15px 18px; border-radius:var(--r-md); background:#fff;
  border:1px solid var(--line);
  transition:transform .35s var(--ease), box-shadow .35s var(--ease);
}
.facts__list li:hover{ transform:translateX(3px); box-shadow:var(--sh-sm) }
.facts__ico{ font-size:20px; line-height:1; flex-shrink:0 }
.facts__k{ display:block; font-size:12px; color:var(--ink-3) }
.facts__v{ display:block; font-size:14.5px; font-weight:600; margin-top:2px }

.facts__src{ margin-top:22px; font-size:12px; line-height:1.6; color:var(--ink-3) }
.facts__src a{ color:var(--ink-2); text-decoration:underline; text-underline-offset:2px }
.facts__src a:hover{ color:var(--accent) }

@media (max-width:900px){
  .facts__grid{ grid-template-columns:1fr }
}
@media (max-width:520px){
  .safety__top{ flex-wrap:wrap }
  .safety__score{ margin-left:0; width:100%; text-align:left; display:flex;
    align-items:baseline; gap:8px; margin-top:6px }
  .safety__score small{ margin-top:0 }
}

/* ============================================================
   ПЕРЕЛЁТ (Travelpayouts)
   ============================================================ */
.fly__from{
  display:flex; align-items:center; gap:11px; flex-shrink:0;
  font-size:13.5px; color:var(--ink-3);
}
.fly__from select{
  appearance:none; padding:11px 36px 11px 16px; border-radius:var(--r-pill);
  border:1px solid var(--line); background:#fff; font:inherit; font-size:14.5px;
  font-weight:600; color:var(--ink); cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237C93AE' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 13px center; background-size:15px;
}

.fly__demo{
  display:flex; align-items:center; gap:10px; margin-bottom:18px;
  padding:12px 16px; border-radius:var(--r-md);
  background:#FEF3C7; color:#92400E; font-size:13.5px; line-height:1.5;
}
.fly__demo::before{ content:'⚠️'; flex-shrink:0 }

.fly__list{ display:flex; flex-direction:column; gap:10px }

.fly__it{
  display:grid; grid-template-columns:auto auto 1fr auto auto; align-items:center; gap:22px;
  padding:18px 22px; border-radius:var(--r-lg); background:#fff;
  border:1px solid var(--line); box-shadow:var(--sh-sm);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .3s;
}
.fly__it:hover{ transform:translateY(-3px); box-shadow:var(--sh-md); border-color:transparent }
.fly__it.is-best{ border-color:var(--accent-soft); background:linear-gradient(180deg,#fff,var(--bg)) }

.fly__route{ display:flex; align-items:center; gap:10px; flex-shrink:0 }
.fly__route b{ font-family:var(--display); font-size:24px; letter-spacing:.02em }
.fly__route svg{ width:17px; height:17px; color:var(--ink-3) }

.fly__airline{ display:block; font-size:14.5px; font-weight:600 }
.fly__meta{ display:block; margin-top:3px; font-size:12.5px; color:var(--ink-3) }

.fly__price{ text-align:right; flex-shrink:0 }
.fly__price b{ font-size:23px; font-weight:600; letter-spacing:-.01em }
.fly__price small{ display:block; font-size:11.5px; color:var(--ink-3); margin-top:1px }

.fly__go{
  display:inline-flex; align-items:center; gap:8px; flex-shrink:0;
  padding:11px 19px; border-radius:var(--r-pill);
  background:var(--accent); color:#fff; font-size:13.5px; font-weight:600;
  transition:background .3s, gap .3s var(--ease);
}
.fly__go svg{ width:13px; height:13px }
.fly__it:hover .fly__go{ background:var(--accent-deep); gap:11px }

.fly__note{ margin-top:18px; font-size:12px; line-height:1.6; color:var(--ink-3) }

/* возврат к трём самым дешёвым после выбора даты */
.fly__reset{
  align-self:flex-start; margin-top:2px; padding:11px 20px;
  border-radius:var(--r-pill); border:1px solid var(--line); background:#fff;
  font-size:13.5px; font-weight:500; color:var(--ink-2);
  transition:.3s var(--ease);
}
.fly__reset:hover{ color:var(--ink); box-shadow:var(--sh-sm); transform:translateY(-2px) }
.fly__empty{
  display:flex; flex-direction:column; align-items:center; gap:0;
  padding:34px 24px; text-align:center; color:var(--ink-3); font-size:14.5px;
  background:#fff; border:1px solid var(--line); border-radius:var(--r-lg);
}

/* скелетон, пока грузятся цены */
.fly__sk{ display:flex; flex-direction:column; gap:10px }
.fly__sk .sk{ height:74px; border-radius:var(--r-lg) }

@media (max-width:820px){
  .fly__it{ grid-template-columns:auto auto 1fr; gap:14px 16px }
  .fly__price{ text-align:left }
  .fly__go{ grid-column:1 / -1; justify-content:center }
}
@media (max-width:520px){
  .fly__it{ grid-template-columns:auto 1fr; gap:12px 14px }
  .fly__route{ grid-column:1 / -1 }
  .fly__route{ justify-content:flex-start }
  .fly__from{ width:100% }
  .fly__from select{ flex:1 }
}

/* ── логотип авиакомпании (CDN Travelpayouts) ── */
.fly__logo{
  display:grid; place-items:center; width:46px; height:30px; flex-shrink:0;
  border-radius:7px; background:var(--bg); overflow:hidden;
}
.fly__logo img{ width:40px; height:20px; object-fit:contain }
.fly__code{ font-size:12px; font-weight:700; color:var(--ink-2); letter-spacing:.04em }

/* ── календарь цен ── */
.fly__cal{ margin-top:26px }
.fly__cal-top{
  display:flex; align-items:center; justify-content:space-between;
  gap:16px; flex-wrap:wrap; margin-bottom:12px;
}
.fly__cal-h{
  font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
  color:var(--ink-3);
}
.fly__nav{ display:flex; align-items:center; gap:4px }
.fly__nav button{
  width:32px; height:32px; border-radius:50%; display:grid; place-items:center;
  border:1px solid var(--line); background:#fff; color:var(--ink);
  transition:.3s var(--ease);
}
.fly__nav button svg{ width:13px; height:13px }
.fly__nav button:hover:not(:disabled){ background:var(--ink); color:#fff; border-color:transparent }
.fly__nav button:disabled{ opacity:.3; cursor:default }
.fly__month{
  min-width:150px; text-align:center; font-size:14.5px; font-weight:600;
  text-transform:capitalize;
}

/* сетка компактная и ограничена по ширине — иначе занимает пол-экрана */
.fly__grid{
  display:grid; grid-template-columns:repeat(7,1fr); gap:4px;
  max-width:560px; transition:opacity .2s;
}
.fly__grid.is-loading{ opacity:.45; pointer-events:none }

.fly__wd{
  padding-bottom:2px; text-align:center;
  font-size:10px; font-weight:600; letter-spacing:.05em; text-transform:uppercase;
  color:var(--ink-3);
}

.fly__cell{
  position:relative; display:flex; flex-direction:column; align-items:center;
  justify-content:center; gap:0; min-height:46px; padding:5px 2px;
  border-radius:10px; border:1px solid transparent;
  background:transparent; color:var(--ink-2); font:inherit;
}
.fly__cell.is-empty{ border:0 }
.fly__cell.is-past{ opacity:.25 }
.fly__num{ font-size:12.5px; font-weight:500; line-height:1.2 }
.fly__cost{ font-size:10px; font-weight:700; color:var(--accent-deep); line-height:1.3 }

/* любой будущий день можно выбрать, даже без известной цены */
.fly__cell.is-open{
  cursor:pointer; background:#fff; border-color:var(--line);
  transition:transform .2s var(--ease), box-shadow .2s var(--ease), border-color .2s;
}
.fly__cell.is-open:hover{ transform:translateY(-1px); box-shadow:var(--sh-sm); border-color:var(--ink-3) }
.fly__cell.is-open:not(.has-price) .fly__num{ color:var(--ink-3) }

.fly__tag{
  margin-top:1px; padding:1px 5px; border-radius:var(--r-pill);
  background:#fff; color:var(--accent-deep);
  font-size:8px; font-weight:700; letter-spacing:.03em; text-transform:uppercase;
  line-height:1.5; max-width:100%; overflow:hidden;
}
.fly__tag--cheap{ background:var(--accent); color:#fff }
.fly__cell.is-cheap{ border-color:var(--accent-soft) }

/* туда и обратно — обе выбирает человек */
.fly__cell.is-dep, .fly__cell.is-ret{
  background:var(--accent); border-color:var(--accent); color:#fff;
  box-shadow:0 6px 16px -6px rgba(37,99,235,.8);
}
.fly__cell.is-dep .fly__cost, .fly__cell.is-ret .fly__cost{ color:#fff }
.fly__cell.is-span{ background:var(--accent-soft); border-color:transparent; color:var(--accent-deep) }
.fly__cell.is-span .fly__cost{ color:var(--accent-deep) }

.fly__legend{ margin-top:14px; max-width:560px; font-size:12.5px; line-height:1.55; color:var(--ink-2) }

/* карточка с неточным совпадением дат */
.fly__it.is-near{ border-color:#FDE68A; background:linear-gradient(180deg,#fff,#FFFBEB) }

/* ── строка перелёта в карточке брони ── */
.book__fly{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  margin-bottom:18px; padding:12px 15px; border-radius:var(--r-md);
  background:var(--accent-soft); color:var(--accent-deep);
  font-size:13px;
}
.book__fly b{ font-size:15px; font-weight:600; white-space:nowrap }

@media (max-width:560px){
  .fly__grid{ gap:3px; max-width:none }
  .fly__cell{ min-height:44px; padding:4px 1px; border-radius:8px }
  .fly__num{ font-size:12px }
  .fly__cost{ font-size:9px }
  .fly__tag{ font-size:7px; padding:1px 4px }
  .fly__month{ min-width:0; flex:1; font-size:14px }
  .fly__nav{ width:100% }
}

/* ── панель управления в блоке перелёта ── */
.fly__ctrl{
  display:flex; align-items:center; gap:12px; flex-wrap:wrap; flex-shrink:0;
}

/* переключатель «туда-обратно / в одну сторону» */
.fly__seg{
  display:flex; gap:2px; padding:3px; border-radius:var(--r-pill);
  background:var(--bg-deep); border:1px solid var(--line);
}
.fly__seg button{
  padding:9px 16px; border-radius:var(--r-pill);
  font-size:13.5px; font-weight:500; color:var(--ink-2);
  transition:background .3s var(--ease), color .3s, box-shadow .3s;
  white-space:nowrap;
}
.fly__seg button:hover{ color:var(--ink) }
.fly__seg button.is-on{ background:#fff; color:var(--ink); font-weight:600; box-shadow:var(--sh-sm) }

/* пустое место логотипа для перелётов в одну сторону */
.fly__logo--none{ background:transparent }

@media (max-width:900px){
  .fly__ctrl{ width:100% }
  .fly__seg{ flex:1 }
  .fly__seg button{ flex:1; text-align:center }
  .fly__from{ flex:1 }
  .fly__from select{ flex:1; width:100% }
}
@media (max-width:560px){
  .fly__ctrl{ flex-direction:column; align-items:stretch }
  .fly__from{ justify-content:space-between }
}
