:root{
  --vv-radius: 28px;
  --vv-text: #0c1a2a;
  --vv-white: #ffffff;
  --vv-glass: rgba(255,255,255,.60);
  --vv-border: rgba(255,255,255,.55);
  --vv-shadow: 0 18px 50px rgba(0,0,0,.18);
}

*{box-sizing:border-box}

body{
  margin:0;
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  color:var(--vv-text);
  background:#0b0f14;
overflow-x: hidden !important;
}

/* ===== Header ===== */
.vv-header{
  position:fixed;
  top:22px;left:0;right:0;
  z-index:2000;
}

.vv-header__inner{
  width:min(1240px, calc(100% - 40px));
  margin:0 auto;
  background:var(--vv-glass);
  border:1px solid var(--vv-border);
  border-radius:999px;
  backdrop-filter:blur(10px);
  box-shadow:var(--vv-shadow);
  height:64px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 26px;
  pointer-events:auto;
}

.vv-nav{flex:1;display:flex;align-items:center;}
.vv-nav--left{justify-content:flex-start}
.vv-nav--right{justify-content:flex-end}

.vv-menu{
  list-style:none;
  display:flex;
  gap:46px;
  padding:0;
  margin:0;
  align-items:center;
}

.vv-menu a{
  text-decoration:none;
  color:#2B3F58;
  font-weight:600;
  letter-spacing:.02em;
  font-size:14px;
  text-transform:uppercase;
  font-family:'Montserrat', sans-serif;
}
.vv-menu a:hover{color:rgba(12,26,42,1)}

.vv-brand{flex:0 0 auto;display:flex;align-items:center;justify-content:center;}
.vv-brand__link{display:flex;align-items:center;gap:10px;text-decoration:none;}
.vv-logo svg{height:26px;width:auto;display:block;}
.custom-logo{height:37px;width:auto;display:block;}
.custom-logo-link{display:inline-flex;}

/* ===== Hero ===== */
.vv-hero-home{height:100vh;min-height:720px;position:relative;}
.vv-hero__slider{height:100%}
.vv-hero__slide{height:100%;position:relative;overflow:hidden;}
.vv-hero__media{position:absolute;inset:0;}
.vv-hero__img{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.03);}
.vv-hero__img--fallback{background:linear-gradient(120deg,#2a3b52,#0d1520)}
.vv-hero__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.03);}

.vv-hero__overlay{
  position:absolute;inset:0;
  background:
    radial-gradient(60% 60% at 25% 70%, rgba(0,0,0,.45), rgba(0,0,0,.05) 55%),
    linear-gradient(180deg, rgba(0,0,0,.18), rgba(0,0,0,.10) 40%, rgba(0,0,0,.30));
  pointer-events:none;
}

.vv-hero__content{
  position:absolute;
  left:0;right:0;bottom:0;
  z-index:2;
  width:min(1240px, calc(100% - 40px));
  margin:0 auto;
  padding:0 0 86px;
}

.vv-hero__title{
  margin:0;
  color:#fff;
  font-size:48px;
  font-weight:700;
  letter-spacing:-.02em;
  text-shadow:0 8px 40px rgba(0,0,0,.45);
  font-family:'Geologica', sans-serif;
}

.vv-hero__subtitle{
  margin:12px 0 0 0;
  color:rgba(255,255,255,.86);
  font-size:16px;
  max-width:560px;
  text-shadow:0 8px 40px rgba(0,0,0,.35);
  font-family:'Montserrat', sans-serif;
  font-weight:500;
}

.vv-hero__actions{
  margin-top:22px;
  display:flex;
  gap:14px;
  align-items:center;
  flex-wrap:wrap;
}

.vv-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:44px;
  padding:12px 34px;
  border-radius:999px;
  text-decoration:none;
  font-weight:500;
  font-size:16px;
  letter-spacing:.01em;
  transition:transform .15s ease, background .15s ease, border-color .15s ease;
  will-change:transform;
  font-family:'Montserrat', sans-serif;
}
.vv-btn:hover{transform:translateY(-1px)}
.vv-btn--primary{background:#fff;color:#0c1a2a;border:1px solid rgba(255,255,255,.7);}
.vv-btn--ghost{background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.35);backdrop-filter:blur(8px);}

.vv-hero__pagination{
  position:absolute !important;
  right:42px !important;
  bottom:48px !important;
  left:auto !important;
  width:auto !important;
  z-index:5;
}

.swiper-pagination-bullet{
  width:8px;height:8px;
  opacity:.55;
  background:#fff;
  margin:0 6px !important;
}
.swiper-pagination-bullet-active{opacity:1;}

.vv-chat{
  position:absolute;
  right:42px;
  bottom:92px;
  width:52px;height:52px;
  border-radius:999px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.28);
  backdrop-filter:blur(10px);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:6;
  text-decoration:none;
}
.vv-chat__icon{font-size:20px;filter:drop-shadow(0 8px 18px rgba(0,0,0,.25));}

/* ===== Dropdown "Еще" ===== */
.vv-menu .menu-item{position:relative;}
.vv-menu .menu-item-has-children > a{
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.vv-menu .menu-item-has-children > a:after{
  content:"▾";
  font-size:12px;
  opacity:.7;
  transform:translateY(-1px);
}

.vv-menu .sub-menu{
  position:absolute;
  top:100%;
  margin-top:10px;
  right:0;
  min-width:220px;
  list-style:none;
  margin:0;
  padding:10px;
  border-radius:16px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(255,255,255,.6);
  box-shadow:0 18px 50px rgba(0,0,0,.18);
  backdrop-filter:blur(10px);
  display:none;
}
.vv-menu .sub-menu li{margin:0;padding:0;}
.vv-menu .sub-menu a{
  display:block;
  padding:10px 12px;
  border-radius:12px;
  font-weight:600;
  font-size:13px;
  text-transform:none;
  letter-spacing:.01em;
}
.vv-menu .sub-menu a:hover{background:rgba(12,26,42,.08);}
.vv-menu .menu-item-has-children.is-open > .sub-menu{display:block;}

/* ===== Block 2: Formats ===== */
.vv-formats{
  --vv-bg:#F4EFE9;
  background-color:var(--vv-bg);
  background-image:var(--vv-pattern);
  
  background-position:center top;
  background-size:100% auto;
  padding:78px 0 86px;
}

.vv-container{
  width:min(1240px, calc(100% - 40px));
  margin:0 auto;
}

.vv-formats__title{
  margin:0 0 26px 0;
  text-align:center;
  font-size:clamp(22px, 2.2vw, 34px);
  font-weight:800;
  letter-spacing:-0.01em;
  color:#323334;
	font-weight:700;
  font-family:'Geologica', sans-serif;
}

.vv-formats__grid{
  display:grid;
  grid-template-columns:1fr;
  gap:18px;
}

.vv-card{
  border-radius:26px;
  overflow:hidden;
  min-height:255px;
}

.vv-card--img img{
  width:100%;
  max-width:632px;
  min-width:632px;
  height:100%;
  max-height:600px;
  min-height:600px;
  object-fit:cover;
  display:block;
}

.vv-card--text{
  background:#2F4358;
  padding:60px 40px;
  display:flex;
  flex-direction:column;
}

.vv-card__badge{
  display:inline-flex;
  width:fit-content;
  padding:4px 10px;
  border-radius:999px;
  background:none;
  border:1px solid #fff;
  color:#fff;
  font-size:16px;
  font-weight:600;
  letter-spacing:.06em;
  font-family:'Montserrat', sans-serif;
}

.vv-card__h{
  margin:14px 0 10px 0;
  color:#fff;
  font-size:32px;
  line-height:1.15;
  font-weight:700;
  font-family:'Montserrat', sans-serif;
}

.vv-card__p{
  margin:0;
  color:rgba(255,255,255,.75);
  font-size:16px;
  line-height:1.45;
  max-width:520px;
  font-weight:500;
  font-family:'Montserrat', sans-serif;
}

.vv-card__btn{
  margin-top:auto;
  align-self:flex-start;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:12px 34px;
  border-radius:24px;
  background:#fff;
  color:#2B3F58;
  text-decoration:none;
  font-weight:500;
  font-size:16px;
  box-shadow:0 10px 26px rgba(0,0,0,.20);
  font-family:'Geologica', sans-serif;
}

/* ===== Block 3: Collection (CLEAN, without duplicates) ===== */
.vv-collection{
  margin-top:34px;
}

.vv-collection__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin:10px 0 18px;
}

.vv-collection__title{
  margin:0;
  color:#1a2a3a;
  font-size:clamp(20px, 2.1vw, 28px);
  font-weight:800;
  letter-spacing:-0.01em;
}

.vv-collection__sub{
  margin:6px 0 0 0;
  color:rgba(26,42,58,.7);
  font-size:13px;
}

.vv-collection__all{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:36px;
  padding:0 14px;
  border-radius:999px;
  background:#2F4358;
  color:#fff;
  text-decoration:none;
  font-weight:700;
  font-size:12px;
  box-shadow:0 10px 26px rgba(0,0,0,.12);
  white-space:nowrap;
}

/* MAIN = Swiper */
.vv-collection__main.swiper{
  width:100%;
  height:250px;
  position:relative;
  overflow:hidden;
}
.vv-collection__main.swiper .swiper-wrapper{height:100%;}
.vv-collection__main.swiper .swiper-slide{height:100%;}

.vv-collection__card{
  position:relative;
  display:block;
  width:100%;
  height:100%;
  border-radius:26px;
  overflow:hidden;
  text-decoration:none;
  background:#0d1520;
}

.vv-collection__card img{
  width:100%;
  height:100%;
	max-height: 500px;
  object-fit:cover;
  display:block;
  transform:scale(1.01);
}

/* tag overlay */
.vv-collection__tag{
  position:absolute;
  left:18px;
  bottom:18px;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(0,0,0,.35);
  border:1px solid rgba(255,255,255,.22);
  color:#fff;
  font-size:11px;
  font-weight:800;
  letter-spacing:.06em;
  backdrop-filter:blur(6px);
  z-index:5;
}

/* SIDE = background + crossfade layers */
.vv-collection__side{
  position:relative;
  height:250px;
  background:#2a3b52;
}

.vv-collection__side .vv-side-layer{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  opacity:0;
  transition:opacity 650ms ease; /* = SPEED in JS */
  will-change:opacity;
}

.vv-collection__side .vv-side-layer.is-active{
  opacity:1;
}

/* arrows */
.vv-collection__nav{
  position:absolute;
  left:8px;
  bottom:-48px;
  display:flex;
  gap:10px;
}

.vv-collection__btn{
  width:34px;
  height:34px;
  border-radius:999px;
  border:1px solid rgba(47,67,88,.25);
  background:rgba(255,255,255,.55);
  backdrop-filter:blur(8px);
  cursor:pointer;
  font-size:18px;
  line-height:1;
  color:#2F4358;
}

/* ===== Responsive ===== */
@media (max-width:980px){
  .vv-collection__layout{grid-template-columns:1fr;}
  .vv-collection__nav{position:static;margin-top:14px;}
  .vv-collection__main.swiper{height:220px;}
  .vv-collection__side{height:220px;}
}

/* ===== Small screens ===== */
@media (max-width:860px){
  .vv-header__inner{height:58px;padding:0 16px;}
  .vv-menu{gap:14px}
  .vv-menu a{font-size:12px}
  .vv-hero__content{
    width:min(1240px, calc(100% - 40px));
    margin:0 auto;
    padding:0 0 86px;
  }
  .vv-formats{padding:56px 0 60px;}
  .vv-formats__grid{grid-template-columns:1fr;}
  .vv-card{min-height:240px;}
}


/* контейнер секции */
.vv-collection__layout{
  position: relative;
}

/* стрелки теперь отдельно */
.vv-collection__nav{
  margin-top: 12px;
  display:flex;
  gap:10px;
}

/* сам слайдер */
.vv-collection__slider.swiper{
  width:100%;
  overflow:hidden;
}

/* ВАЖНО: фиксируем геометрию: всегда 2 слайда в видимой области */
.vv-collection__slider .swiper-slide{
  height:500px;
  width: calc((100% - 18px) * 0.65); /* большая */
}

/* следующий “маленький” — через scale, а не через width (иначе ломается snap) */
.vv-collection__slider .swiper-slide-next{
  transform: scale(1);
  transform-origin: left center;
}

/* базово */
.vv-collection__slider .swiper-slide{
  transition: transform 650ms ease;
}

/* маленький — шире не делаем, только визуально уменьшаем */
.vv-collection__slider .swiper-slide:not(.swiper-slide-active){
  opacity: 1;
}

/* карточка */
.vv-collection__card{
  width:100%;
  height:100%;
  border-radius:26px;
  overflow:hidden;
  display:block;
}

/* адаптив */
@media (max-width:980px){
  .vv-collection__slider .swiper-slide{height:220px;width:86%;}
  .vv-collection__slider .swiper-slide-next{transform: scale(1);}
}

.vv-collection__nav{
  position: absolute;
  left: 20px;
  bottom: 20px;
  display: flex;
  gap: 10px;
  z-index: 20;
}

.vv-collection__btn{
  width: 36px;
  height: 36px;
  border-radius: 999px;
  border: 1px solid #323334;
  background: rgba(255,255,255,.0);
  backdrop-filter: blur(8px);
  cursor: pointer;
  font-size: 18px;
  line-height: 1;
  color: #2F4358;
  display: flex;
  align-items: center;
  justify-content: center;
}

.vv-collection__nav{
  position: static !important;
  left: auto !important;
  right: auto !important;
  top: auto !important;
  bottom: auto !important;

  display:flex;
  gap:10px;
  margin-top:14px;
  z-index:auto !important;
}

/* если где-то было absolute у кнопок */
.vv-collection__btn{
  position: static !important;
}




.vv-steps{
  position:relative;
  padding:72px 0 86px;
  background:#F4EFE9;
  overflow:hidden;
	min-height:850px;
	border-radius: 34px 34px 0px 0px;
	display: flex;
	align-items: flex-end;
	--vv-steps-bg-color: #F4EFE9;
}

.vv-steps{

  --vv-steps-bg-color: #F4EFE9;

  position: relative;
  background: var(--vv-steps-bg-color); /* чтобы не было чёрного */
  border-radius: var(--vv-steps-radius);
  overflow: hidden; /* КЛЮЧЕВО: обрезает фон и убирает чёрные углы */
}
.vv-steps:before{
  content:"";
  position:absolute;
  inset:0;
  background-image:var(--vv-steps-bg);
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  z-index:0;
	border-radius: 30px 30px 0px 0px;
}
.vv-steps:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(244,239,233,0) 0%, rgba(244,239,233,.85) 65%, rgba(244,239,233,1) 100%);
  z-index:1;
	
}
.vv-steps .vv-container{position:relative;z-index:2;}

.vv-steps__title{
  margin:0 0 20px 0;
  font-size: 32px;
  font-weight:700;
  letter-spacing:-0.01em;
  color:#1a2a3a;
  font-family:'Geologica',sans-serif;
}

.vv-steps__sliderwrap{position:relative;}
.vv-steps__slider.swiper{overflow:visible;}

.vv-step{
  background:rgba(255,255,255,.86);
  border:1px solid rgba(255,255,255,.65);
  border-radius:24px;
  padding:22px 22px 20px;
  min-height:300px;
  box-shadow:0 18px 50px rgba(0,0,0,.10);
  backdrop-filter:blur(10px);
	min-width:500px;
}

.vv-step__num{
  font-family:'Callheart',cursive;
  font-size:62px;
  line-height:1;
  color:#BAAE9E;
  margin:0 0 10px 0;
}

.vv-step__h{
  margin:0 0 8px 0;
  font-size:24px;
  font-weight:800;
  color:#1a2a3a;
  font-family:'Montserrat',sans-serif;
}

.vv-step__p{
  margin:0;
  font-size:13px;
  line-height:1.55;
  color:rgba(26,42,58,.72);
  font-family:'Montserrat',sans-serif;
  font-weight:500;
}

.vv-steps__pagination{margin-top:14px;text-align:center;}

.vv-steps__nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:38px;height:38px;
  border-radius:999px;
  border:1px solid rgba(47,67,88,.25);
  background:rgba(255,255,255,.70);
  backdrop-filter:blur(10px);
  cursor:pointer;
  font-size:18px;
  color:#2F4358;
  display:flex;align-items:center;justify-content:center;
  z-index:5;
}
.vv-steps__prev{left:0;}
.vv-steps__next{right:0;}

@media(max-width:980px){
  .vv-steps{padding:56px 0 70px;}
  .vv-steps__sliderwrap{padding:0 44px;}
}
@media(max-width:560px){
  .vv-steps__sliderwrap{padding:0;}
  .vv-steps__nav{display:none;}
}


/* ===== FIX vv-steps (no overlap + correct rounded top + no black) ===== */

.vv-steps{
  background:#F4EFE9;              /* чтобы в скруглениях не было черного */
  overflow:hidden;                 /* КЛЮЧЕВО: клипает фон и убирает черные углы */
}

/* синхронизируем скругление у псевдоэлементов */
.vv-steps:before,
.vv-steps:after{
  border-radius:30px 30px 0 0;
}

/* ТВОЙ overlay норм, но оставим как есть (можно чуть прозрачнее, если фон блеклый) */
.vv-steps:after{
  background:linear-gradient(
    180deg,
    rgba(244,239,233,.08) 0%,
    rgba(244,239,233,.85) 65%,
    rgba(244,239,233,1) 100%
  );
}

/* Swiper НЕ должен быть overflow:visible, иначе визуально залезает на соседей */
.vv-steps__slider.swiper{
  overflow:hidden !important;
}

/* Дай Swiper самому считать ширину, не фиксируй min-width у карточек */
.vv-step{
  min-width:0 !important;          /* УБИРАЕТ наезд */
  width:100%;
  box-sizing:border-box;
}

/* Слайды тоже без фиксированной ширины */
.vv-steps__slider .swiper-slide{
  min-width:0;
  height:auto;
}

/* Обертка: добавь боковые отступы, чтобы стрелки не резали карточки */
.vv-steps__sliderwrap{
  padding:0 54px;
  position:relative;
}

/* Если ты хочешь "как на макете" визуально шире — увеличиваем контейнер именно в этом блоке */
.vv-steps .vv-container{
  width:min(1440px, calc(100% - 40px));
}

/* Стрелки, чтобы не уезжали */
.vv-steps__prev{ left:10px; }
.vv-steps__next{ right:10px; }

/* ===== vv-steps: fixed min card 500px + peek next slide + no black in rounded ===== */

.vv-steps{
  background:#F4EFE9;               /* чтобы в скруглении не было черного */
  overflow:hidden;                  /* клипаем фон и верхний радиус */
}

/* чтобы фон и overlay тоже повторяли радиус */
.vv-steps:before,
.vv-steps:after{
  border-radius:30px 30px 0 0;
}

/* Свайп-карусель: видна часть следующего */
.vv-steps__sliderwrap{
  position:relative;
  padding:0 54px;                   /* место под стрелки, если они есть */
}

/* ВАЖНО: для “кусок 3-го” нужно visible */
.vv-steps__slider.swiper{
  overflow:visible !important;
}

/* Swiper будет auto, поэтому ширину задаём СЛАЙДУ */
.vv-steps__slider .swiper-slide{
  width: 500px;                     /* минимум как ты хочешь */
  max-width: 560px;                 /* можно убрать, если не надо */
  height:auto;
  min-width:0;
}

/* сама карточка на всю ширину слайда */
.vv-step{
  width:100%;
  min-width:500px;                  /* сохраняем твой минимум */
  box-sizing:border-box;
}

/* Чуть приятнее расстояние */
.vv-steps__slider .swiper-wrapper{
  align-items:stretch;
}

/* Адаптив: на мобилке показываем 1 карточку и чуть следующий край */
@media(max-width:560px){
  .vv-steps__sliderwrap{ padding:0 18px; }
  .vv-steps__slider .swiper-slide{
    width: 86vw;                     /* чтобы был “кусочек” следующей */
    max-width:none;
  }
  .vv-step{ min-width:0; }           /* на мобиле не держим 500px */
}

/* ===== unified pattern background across blocks ===== */
.vv-pattern-wrap{
  position:relative;
}

/* узор одним полотном */
.vv-pattern-wrap:before{
  content:"";
  position:absolute;
  inset:0;
  background-image:var(--vv-pattern);
  background-repeat:repeat-y;
  background-position:center top;
  background-size:100% auto;
  pointer-events:none;
  z-index:0;
}

/* контент поверх узора */
.vv-pattern-wrap > *{
  position:relative;
  z-index:1;
}

/* убираем узор из formats, раз он теперь на wrapper */
.vv-formats{
  background-image:none !important;
  background-color:transparent !important;
}


/* ===== Footer (VIAVERSE) ===== */
.vv-footer{
  position:relative;
  min-height:700px;
  padding:156px 0 36px;
  overflow:hidden;
}

.vv-footer:before{
  content:"";
  position:absolute; inset:0;
  background-image:var(--vv-footer-bg);
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  z-index:0;
}

.vv-footer:after{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(
    180deg,
    rgba(43, 63, 88, .25) 0%,
    rgba(43, 63, 88, .25) 25%,
    rgba(43, 63, 88, .80) 80%,
    rgba(43, 63, 88, .80) 100%
  );
  z-index:1;
}

.vv-footer .vv-container{ position:relative; z-index:2; }

.vv-footer__topbar{
  position:absolute;
  top:22px; left:0; right:0;
  z-index:3;
  pointer-events:none;
}
.vv-footer__phone{
  position:absolute;
  right:34px; top:0;
  color:rgba(255,255,255,.75);
  text-decoration:none;
  font-weight:400;
  font-size:16px;
  pointer-events:auto;
  font-family:'Montserrat',sans-serif;
}

.vv-footer__social{
  position:absolute;
  left:0px;
  top:80%;
  transform:translateY(-50%);
  display:flex;
  flex-direction:column;
  gap:12px;
  z-index:3;
}
.vv-footer__soc{
  width:48px; height:48px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.10);
  backdrop-filter:blur(10px);
  display:flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
}
.vv-footer__soc img{ width:24px; height:24px; display:block; opacity:.95; }

.vv-footer__inner{
  display:grid;
  grid-template-columns: 1fr;
  gap:18px;
  padding-top:26px;
}

.vv-footer__brand{
  display:flex;
  align-items:flex-start;
  gap:22px;
}
.vv-footer__logo{
  width:200px;
  height:auto;
  display:block;
  filter:drop-shadow(0 18px 40px rgba(0,0,0,.35));
}
.vv-footer__title{
  margin:0;
  color:#fff;
  font-size:48px;
  line-height:1.05;
  letter-spacing:-.02em;
  font-family:'Geologica',sans-serif;
  text-shadow:0 12px 40px rgba(0,0,0,.45);
	font-weight:700;
}
.vv-footer__sub{
  margin:10px 0 0 0;
  max-width:620px;
  color:rgba(255,255,255,.82);
  font-size:16px;
  line-height:1.45;
  font-family:'Montserrat',sans-serif;
  font-weight:600;
}

/* Form layout */
.vv-footer__form{ margin-top:14px; max-width:860px; }

.vv-footer__row{ margin-top:10px; }
.vv-footer__row--3{
  display:grid;
  grid-template-columns: 1fr 1.1fr 1fr;
  gap:12px;
}

.vv-field{ position:relative; }

.vv-input, .vv-textarea{
  width:100%;
  border:1px solid rgba(255,255,255,.25);
  background:rgba(255,255,255,.12);
  color:#fff;
  border-radius:10px;
  padding:12px 14px;
  outline:none;
  font-family:'Montserrat',sans-serif;
  font-size:13px;
  backdrop-filter:blur(10px);
}
.vv-input::placeholder, .vv-textarea::placeholder{ color:rgba(255,255,255,.55); }

.vv-textarea{
  min-height:110px;
  resize:none;
}

/* phone picker */
.vv-phone{ display:flex; gap:10px; align-items:center; }
.vv-phone__country{
  height:42px;
  padding:0 10px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.25);
  background:rgba(255,255,255,.12);
  color:#fff;
  display:flex;
  align-items:center;
  gap:8px;
  cursor:pointer;
  backdrop-filter:blur(10px);
  white-space:nowrap;
}
.vv-phone__flag{ font-size:16px; }
.vv-phone__code{ font-weight:700; font-family:'Montserrat',sans-serif; font-size:13px; }
.vv-phone__chev{ opacity:.75; font-size:12px; transform:translateY(-1px); }

.vv-phone__input{ flex:1; }

.vv-phone__menu{
  position:absolute;
  top:48px; left:0;
  width:260px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.25);
  background:rgba(20,26,34,.92);
  backdrop-filter:blur(12px);
  box-shadow:0 18px 50px rgba(0,0,0,.35);
  overflow:hidden;
  z-index:50;
}
.vv-phone__item{
  width:100%;
  text-align:left;
  padding:10px 12px;
  background:transparent;
  color:#fff;
  border:0;
  cursor:pointer;
  font-family:'Montserrat',sans-serif;
  font-size:13px;
}
.vv-phone__item:hover{ background:rgba(255,255,255,.08); }

/* checkbox */
.vv-check{
  margin-top:10px;
  display:flex;
  align-items:flex-start;
  gap:10px;
  color:rgba(255,255,255,.78);
  font-family:'Montserrat',sans-serif;
  font-size:12px;
}
.vv-check__in{ margin-top:2px; }

/* submit */
.vv-footer__submit{
  margin-top:12px;
  height:42px;
  padding:0 18px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.50);
  background:rgba(255,255,255,.92);
  color:#0c1a2a;
  font-weight:700;
  font-family:'Montserrat',sans-serif;
  cursor:pointer;
  box-shadow:0 18px 50px rgba(0,0,0,.25);
}

/* bottom row */
.vv-footer__bottom{
  margin-top:14px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  color:rgba(255,255,255,.65);
  font-family:'Montserrat',sans-serif;
  font-size:12px;
}
.vv-footer__mail{
  position: absolute;
    color: rgba(255, 255, 255, .70);
    text-decoration: none;
    z-index: 10;
    right: 34px;
}
.vv-footer__mail:hover{ color:#fff; }

.vv-footer__copy{
  margin-top:60px;
  font-size:13px;
  color:rgba(255,255,255,.7);
  font-family:'Montserrat',sans-serif;
}

@media(max-width:980px){
  .vv-footer__title{ font-size:34px; }
  .vv-footer__row--3{ grid-template-columns:1fr; }
  .vv-footer__social{ display:none; }
  .vv-footer__phone{ right:18px; }
  .vv-footer__brand{ flex-direction:column; }
}

.vv-footer__grid{
  display:grid;
  grid-template-columns: 1fr 3fr 1fr;
  gap: 50px;
  align-items: start;
}

@media (max-width: 980px){
  .vv-footer__grid{
    grid-template-columns:1fr;
  }
	
	.vv-footer {
		padding: 56px 0 36px;
	}
}

/* =========================
   MOBILE HEADER (burger)
   ========================= */

/* кнопка бургера (добавим через HTML или псевдо — ниже дам JS вариант) */
.vv-burger{
  width:42px;height:42px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.55);
  background:rgba(255,255,255,.45);
  backdrop-filter:blur(10px);
  display:none;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  padding:0;
}
.vv-burger span{
  width:18px;height:2px;
  background:#2B3F58;
  display:block;
  position:relative;
}
.vv-burger span:before,
.vv-burger span:after{
  content:"";
  position:absolute;left:0;
  width:18px;height:2px;
  background:#2B3F58;
}
.vv-burger span:before{top:-6px}
.vv-burger span:after{top:6px}

/* offcanvas */
.vv-mnav{
  position:fixed;
  inset:0;
  z-index:3000;
  display:none;
}
.vv-mnav.is-open{display:block;}
.vv-mnav__backdrop{
  position:absolute;inset:0;
  background:rgba(0,0,0,.45);
}
.vv-mnav__panel{
  position:absolute;
  top:14px; left:14px; right:14px;
  border-radius:24px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(255,255,255,.65);
  box-shadow:0 24px 70px rgba(0,0,0,.25);
  backdrop-filter:blur(12px);
  overflow:hidden;
}
.vv-mnav__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:16px 16px 10px;
}
.vv-mnav__close{
  width:42px;height:42px;
  border-radius:999px;
  border:1px solid rgba(12,26,42,.12);
  background:rgba(255,255,255,.8);
  cursor:pointer;
  font-size:20px;
  color:#2B3F58;
}
.vv-mnav__list{
  list-style:none;
  padding:10px 16px 18px;
  margin:0;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.vv-mnav__list a{
  display:block;
  padding:14px 14px;
  border-radius:14px;
  background:rgba(12,26,42,.04);
  color:#2B3F58;
  font-family:'Montserrat',sans-serif;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.02em;
  font-size:13px;
  text-decoration:none;
}
.vv-mnav__list a:active{transform:scale(.99)}

/* мобилка хедера */
@media (max-width: 860px){
  .vv-header{top:14px;}
  .vv-header__inner{
    width:calc(100% - 24px);
    height:56px;
    padding:0 12px;
  }

  /* скрываем обычные меню */
  .vv-nav--left,
  .vv-nav--right{display:none;}

  /* бренд + бургер в одну линию */
  .vv-brand{justify-content:flex-start;}
  .custom-logo{height:32px;}

  .vv-burger{display:inline-flex;}
}

/* =========================
   MOBILE HERO
   ========================= */
@media (max-width: 860px){
  .vv-hero{
    min-height:620px;
    height:92vh;
  }

  .vv-hero__content{
    width:calc(100% - 24px);
    padding:0 0 64px;
  }

  .vv-hero__title{
    font-size:32px;
    line-height:1.05;
  }

  .vv-hero__subtitle{
    font-size:14px;
    max-width:100%;
  }

  .vv-hero__actions{
    gap:10px;
  }

  .vv-btn{
    height:42px;
    padding:12px 18px;
    font-size:14px;
    width:auto;
  }

  /* пагинация ниже и по центру */
  .vv-hero__pagination{
    right:auto !important;
    left:50% !important;
    transform:translateX(-50%);
    bottom:18px !important;
  }

  /* чат уменьшаем и поднимаем */
  .vv-chat{
    right:16px;
    bottom:58px;
    width:46px;height:46px;
  }
}

/* очень маленькие */
@media (max-width: 420px){
  .vv-hero__title{font-size:28px;}
  .vv-btn{width:100%;justify-content:center;}
}

/* =========================
   MOBILE FORMATS
   ========================= */
@media (max-width: 860px){
  .vv-formats{
    padding:46px 0 56px;
  }

  .vv-container{
    width:calc(100% - 24px);
  }

  .vv-formats__title{
    text-align:left;
    margin:0 0 18px 0;
    font-size:24px;
  }

  .vv-formats__grid{
    grid-template-columns:1fr;
    gap:14px;
  }

  .vv-card{
    border-radius:22px;
    min-height:auto;
  }

  /* картинка без фиксированных размеров */
  .vv-card--img img{
    max-width:100% !important;
    min-width:0 !important;
    max-height:none !important;
    min-height:0 !important;
    height:260px !important;
    width:100% !important;
    object-fit:cover;
  }

  .vv-card--text{
    padding:22px 18px;
  }

  .vv-card__badge{
    font-size:13px;
    padding:4px 10px;
  }

  .vv-card__h{
    font-size:22px;
    margin:10px 0 8px;
  }

  .vv-card__p{
    font-size:13px;
    max-width:100%;
  }

  .vv-card__btn{
    margin-top:16px;
    padding:12px 18px;
    border-radius:999px;
    font-size:14px;
  }
}

/* микроэкраны */
@media (max-width: 420px){
  .vv-card--img img{height:220px !important;}
}


/* ===== FIX: sub-menu "Еще" (mobile tap only) ===== */

/* базово: скрыто */
.vv-menu .sub-menu{
  display:none;
}

/* показываем только когда есть .is-open */
.vv-menu .menu-item-has-children.is-open > .sub-menu{
  display:block;
}

/* на мобиле убираем любые hover-открытия и фиксируем позиционирование */
@media (max-width: 860px){
  .vv-menu .menu-item-has-children:hover > .sub-menu{
    display:none !important;
  }

  .vv-menu .sub-menu{
    position:static !important;
    width:100%;
    min-width:0;
    margin-top:10px;
    padding:10px;
    border-radius:16px;
  }

  /* чтобы ссылка "Еще" выглядела как кнопка */
  .vv-menu .menu-item-has-children > a{
    width:100%;
    justify-content:space-between;
  }
}


/* HARD FIX: submenu всегда скрыто, пока нет .is-open */
.vv-menu .menu-item-has-children > .sub-menu{
  display:none !important;
}
.vv-menu .menu-item-has-children.is-open > .sub-menu{
  display:block !important;
}

/* MOBILE OFFCANVAS: sub-menu hide/show */
.vv-mnav__list .menu-item-has-children > .sub-menu{
  display:none;
  list-style:none;
  margin:8px 0 0 0;
  padding:0 0 0 10px;
}

.vv-mnav__list .menu-item-has-children.is-open > .sub-menu{
  display:block;
}

/* ссылки внутри подменю */
.vv-mnav__list .sub-menu a{
  background:transparent;
  border:1px solid rgba(12,26,42,.08);
  font-weight:700;
  text-transform:none;
}

/* mobile offcanvas submenu */
.vv-mnav__list .sub-menu{
  display:none;
  list-style:none;
  margin:8px 0 0 0;
  padding:0 0 0 10px;
}
.vv-mnav__list .menu-item-has-children.is-open > .sub-menu{
  display:block;
}

.vv-mnav__list .menu-item-has-children > a{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
}
.vv-mnav__list .menu-item-has-children > a:after{
  content:"▾";
  opacity:.7;
  font-size:12px;
}

/* =========================
   COLLECTION: прижать карусель вправо (как на макете)
   ========================= */

/* 1) Блок коллекции оставляем внутри контейнера для заголовка */
.vv-collection{
  overflow:hidden; /* чтобы не появлялся горизонтальный скролл */
}

/* 2) Слайдер делаем "вылетом" вправо до края экрана */
.vv-collection__slider.swiper{
  width: calc(50vw + (1240px / 2));
  margin-left: auto;   /* прижимаем блок вправо */
  margin-right: 0;
  overflow: visible;   /* чтобы следующий слайд был виден */
}

/* 3) Чтобы слайды не прилипали к краю — небольшой внутренний паддинг справа */
.vv-collection__slider .swiper-wrapper{
  padding-right: 34px;
}

/* 4) На узких экранах подстраиваем под контейнер и сохраняем прижим вправо */
@media (max-width: 1240px){
  .vv-collection__slider.swiper{
    width: calc(50vw + (100% - 40px)/2);
  }
}

@media (max-width: 980px){
  .vv-collection__slider.swiper{
    width: 100%;
    margin-left: 0;
    overflow:hidden; /* на мобилке без вылета обычно стабильнее */
  }
  .vv-collection__slider .swiper-wrapper{
    padding-right: 0;
  }
}

/* =========================
   COLLECTION: прижать вправо на ПК (full-bleed вправо)
   Работает даже если слайдер внутри .vv-container
   ========================= */

/* важно: родителю не запрещать выход */
.vv-collection,
.vv-collection__layout{
  position:relative;
  width:100%;
  max-width:none;
  margin-right: calc((100vw - 100%) / -2);
	overflow:visible;
}

/* правый "вылет" до края экрана */
@media (min-width: 981px){
  .vv-collection__slider.swiper{
    /* расширяем элемент вправо до края viewport */
    width: calc(100% + (50vw - 50%));
    margin-right: calc(50% - 50vw); /* уводим правый край в 0 */
    margin-left: 0;
    overflow: visible; /* чтобы было видно следующий слайд */
  }

  /* чуть воздуха справа, чтобы не прилипало к краю */
  .vv-collection__slider.swiper .swiper-wrapper{
    padding-right: 34px;
  }
}

/* мобилка — как было */
@media (max-width: 980px){
  .vv-collection__slider.swiper{
    width: 100%;
    margin-right: 0;
    overflow: hidden;
  }
  .vv-collection__slider.swiper .swiper-wrapper{
    padding-right: 0;
  }
}



/* ==============================
   TOURS ARCHIVE (grid like mockup)
   ============================== */

body{
  background-color:#F4EFE9;
  background-image:url('../img/vector-block2.svg');
  background-repeat:no-repeat;
  background-position:center top;
  background-size:cover;
}

/* секция */
.vv-tours-archive{padding:64px 0 70px}
.vv-tours-archive__container{width:min(1200px,calc(100% - 40px));margin:70px auto;}
.vv-tours-archive__h1{
  margin:0;
  text-align:center;
  font-family:'Montserrat',sans-serif;
  font-weight:800;
  font-size:clamp(34px,4vw,52px);
  color:#2f2f2f;
}
.vv-tours-archive__sub{
  margin:12px auto 22px;
  max-width:900px;
  text-align:center;
  font-family:'Montserrat',sans-serif;
  font-weight:500;
  font-size:14px;
  line-height:1.55;
  color:#545454;
  opacity:.9;
}

/* табы */
.vv-tours-archive__tabs{
  display:flex;
  gap:10px;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;
  margin:0 0 48px;
}

.vv-chip{
  height:44px;
  padding:18px 24px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;

  background:rgba(0,0,0,.06);
  border:1px solid rgba(0,0,0,.07);

  color:#2f2f2f;
  font-family:'Montserrat',sans-serif;
  font-weight:500;
  font-size:16px;
  line-height:1;

  transition:background .15s ease, color .15s ease, border-color .15s ease;
	text-decoration: none !important;
}

.vv-chip:hover{background:rgba(0,0,0,.085)}

.vv-chip.is-active{
  background:#2B3F58;
  border-color:#203246;
  color:#fff;
}

.vv-chip--icon{
  width:40px;
  padding:0;
  border-radius:999px;
  position:relative;
}

.vv-chip--icon span{
  display:block;
  width:16px;height:2px;
  background:currentColor;
  border-radius:99px;
  margin:3px auto;
  opacity:.75;
}

/* сетка */
.vv-tours-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:16px;
}

@media (max-width:980px){
  .vv-tours-grid{grid-template-columns:repeat(2, minmax(0,1fr))}
}
@media (max-width:620px){
  .vv-tours-grid{grid-template-columns:1fr}
}

/* сама карточка */
.vv-tcard{
  position:relative;
  border-radius:24px;
  overflow:hidden;
  background:#c9c9c9;
  background-size:cover;
  background-position:center;

  aspect-ratio: 1 / 1;   /* как в макете */
  min-height: 0;


  transform:translateZ(0);
}

/* верхняя плашка */
.vv-tcard__top{
  position:absolute;
  left:14px; right:14px; top:14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  z-index:3;
}

.vv-tcard__tag{
  display:inline-flex;
  align-items:center;
  padding:6px 10px;
  border-radius:999px;

  font-family:'Montserrat',sans-serif;
  font-weight:700;
  font-size:11px;
  line-height:1;

  color:#fff;
  background:rgba(0,0,0,.40);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}

/* маленький квадратик 28x28 справа сверху */
.vv-tcard__icon{
  width:34px;
  height:34px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
}

.vv-tcard__icon img{
  width:40px;
  height:40px;
  object-fit:contain;
	border-radius:50%;
}



/* нижняя стеклянная плашка (вместо градиента) */
.vv-tcard__bottom{
  position:absolute;
  left:0px;
  right:0px;
  bottom:0px;
	
	position:absolute;
  left:0; right:0; bottom:0;

  background:#2B3F58;
  border-radius:0 0 22px 22px;

  overflow:hidden; /* важно */

  padding:20px;


  color:#fff;
  z-index:2;
}

.vv-tcard__bottom::before{
  content:"";
  position:absolute;
  inset:0;



  opacity:.08; /* <-- регулируй прозрачность тут */

  pointer-events:none;
}

.vv-tcard__date{
  font-family:'Montserrat',sans-serif;
  font-weight:600;
  font-size:12px;
  opacity:.92;
  margin-bottom:8px;
}

.vv-tcard__title{
  font-family:'Montserrat',sans-serif;
  font-weight:800;
  font-size:20px;
  line-height:1.12;
  margin:0 0 8px;
}

.vv-tcard__desc{
  font-family:'Montserrat',sans-serif;
  font-weight:500;
  font-size:13px;
  line-height:1.35;
  opacity:.92;
  max-width:92%;
}

/* sold out — как маленькая метка, если нужно */
.vv-tcard__sold{
  margin-top:10px;
  display:inline-flex;
  align-items:center;
  padding:6px 10px;
  border-radius:999px;
  font-family:'Montserrat',sans-serif;
  font-weight:700;
  font-size:11px;
  line-height:1;
  color:#fff;
  background:rgba(0,0,0,.25);
}

/* на мелких экранах пусть будет чуть “выше” карточка */
@media (max-width:620px){
  .vv-tcard{aspect-ratio: 4 / 5;}
}

body{
overflow-x: hidden;
}


/* =========================================
   ABOUT PAGE — HERO
========================================= */

.vv-hero{
  position: relative;
  width: 100%;
  min-height: 560px;
	max-height:650px;
  height: 100svh;
  display: grid;
  place-items: center;
  overflow: hidden;
}

/* Фон через CSS переменную */
.vv-hero__bg{
  position: absolute;
  inset: 0;
  background-image: var(--vv-hero-bg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transform: scale(1.02);
  will-change: transform;
}

/* Затемнение + мягкая глубина */
.vv-hero__veil{
  position: absolute;
  inset: 0;
  background:
    radial-gradient(1200px 700px at 25% 70%, rgba(255,255,255,.06), rgba(255,255,255,0) 60%),
    linear-gradient(180deg,
      rgba(8,14,25,.65) 0%,
      rgba(8,14,25,.35) 45%,
      rgba(8,14,25,.65) 100%
    );
}

/* Контент */
.vv-hero__inner{
  position: relative;
  z-index: 2;
  text-align: center;
  padding: 120px 20px 90px;
  max-width: 1100px;
  margin: 0 auto;
}

.vv-hero__title-about{
  margin: 0;
  color: #ffffff;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.08;
  text-wrap: balance;
  font-size: clamp(34px, 4.5vw, 48px);
	font-family:'Geologica',sans-serif;
  text-shadow: 0 12px 40px rgba(0,0,0,.45);
}

/* =========================================
   КНОПКА
========================================= */

.vv-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  padding: 12px 34px;
  font-weight: 500;
  font-size: 16px;
  border: 1px solid rgba(255,255,255,.55);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: all .2s ease;
  user-select: none;
  text-decoration: none;
	font-family:'Montserrat',sans-serif;
}

.vv-btn--ghost{
  color: rgba(255,255,255,.95);
  background: rgba(255,255,255,.12);
}

.vv-btn--ghost:hover{
  background: rgba(255,255,255,.18);
  border-color: rgba(255,255,255,.75);
  transform: translateY(-2px);
}

.vv-btn--ghost:active{
  transform: translateY(0);
  opacity: .9;
}

.vv-hero__cta{
  margin-top: 26px;
}

/* =========================================
   КНОПКА ЧАТА (ссылка)
========================================= */

.vv-chatfab{
  position: absolute;
  right: 34px;
  bottom: 34px;
  z-index: 3;

  width: 56px;
  height: 56px;
  border-radius: 50%;

  border: 1px solid rgba(255,255,255,.35);
  background: rgba(255,255,255,.14);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);

  display: grid;
  place-items: center;

  box-shadow: 0 14px 40px rgba(0,0,0,.25);

  transition: all .2s ease;
  text-decoration: none;
}

.vv-chatfab:hover{
  background: rgba(255,255,255,.20);
  border-color: rgba(255,255,255,.55);
  transform: translateY(-2px);
}

/* Иконка внутри */
.vv-chatfab__icon{
  width: 22px;
  height: 22px;
  display: block;
  opacity: .95;
  background: no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M7.5 18.5 4 20V6.5C4 5.39543 4.89543 4.5 6 4.5H18C19.1046 4.5 20 5.39543 20 6.5V16.5C20 17.6046 19.1046 18.5 18 18.5H7.5Z' stroke='white' stroke-width='1.8' stroke-linejoin='round'/%3E%3Cpath d='M8 9H16' stroke='white' stroke-width='1.8' stroke-linecap='round'/%3E%3Cpath d='M8 12.5H14' stroke='white' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");
}

/* =========================================
   АДАПТИВ
========================================= */

@media (max-width: 768px){

  .vv-hero{
    min-height: 520px;
  }

  .vv-hero__inner{
    padding: 110px 20px 80px;
  }

  .vv-chatfab{
    right: 18px;
    bottom: 18px;
  }

}


/* =========================================
   ABOUT BLOCK (Кто мы / Философия)
========================================= */

.vv-about{
  position: relative;
  padding: 120px 0;
  background-color:#F4EFE9;
  background-image:url('../img/vector-block2.svg');
  background-repeat:no-repeat;
  background-position:center top;
  background-size:cover;
  overflow: hidden;
}

/* декоративные дуги фона */
.vv-about::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(900px 600px at 15% 20%, rgba(0,0,0,.04), transparent 70%),
    radial-gradient(1000px 700px at 80% 70%, rgba(0,0,0,.03), transparent 70%);
  pointer-events:none;
}

.vv-about .container{
  position: relative;
  z-index: 2;
  width: min(1200px, calc(100% - 40px));
  margin: 0 auto;
  padding: 0 20px;
}

.vv-about__row{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
  margin-bottom: 120px;
}

.vv-about__row:last-child{
  margin-bottom: 0;
}

.vv-about__row--reverse{
  grid-template-columns: 1fr 1fr;
}

.vv-about__col--text{
  max-width: 630px;
}

.vv-about__title{
  font-size: 32px;
  font-weight: 700;
  margin-bottom: 28px;
  color: #2c2c2c;
	font-family:'Geologica', sans-serif;
}

.vv-about__col--text p{
  margin-bottom: 20px;
  line-height: 1.6;
  color: #4b4b4b;
  font-size: 18px;
  font-family:'Montserrat', sans-serif;
  font-weight:400;
}

.vv-about__col--image img{
  width: 100%;
	max-height:550px;
  border-radius: 28px;
  display: block;
  box-shadow: 0 30px 60px rgba(0,0,0,.12);
}

/* Адаптив */
@media (max-width: 992px){

  .vv-about{
    padding: 80px 0;
  }

  .vv-about__row{
    grid-template-columns: 1fr;
    gap: 40px;
    margin-bottom: 80px;
  }

  .vv-about__col--text{
    max-width: 100%;
  }

}


/* =========================================
   APPROACH SLIDER — left aligned to container, right to screen edge
========================================= */

.vv-approach{
  position: relative;
  padding: 90px 0 110px;
  background: #F4EFE9;
  overflow: hidden; /* фоновые дуги можно держать тут */
}

.vv-approach::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(900px 600px at 10% 30%, rgba(0,0,0,.035), transparent 72%),
    radial-gradient(1100px 700px at 85% 80%, rgba(0,0,0,.03), transparent 70%);
  pointer-events:none;
}

.vv-approach .container{
  position: relative;
  z-index: 2;
}

.vv-approach__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 20px;
  margin-bottom: 26px;
	max-width:1200px;
	
}

.vv-approach__title{
  margin:0;
  font-size: 34px;
  font-weight: 700;
  color:#2c2c2c;
}

.vv-approach__pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 10px 18px;
  border-radius: 999px;
  background:#2b3b4c;
  color:#fff;
  text-decoration:none;
  font-size: 13px;
  font-weight: 600;
  box-shadow: 0 14px 30px rgba(0,0,0,.12);
  transition: transform .2s ease, opacity .2s ease;
}
.vv-approach__pill:hover{ transform: translateY(-1px); }
.vv-approach__pill:active{ transform: translateY(0); opacity:.9; }

/* --- ВОТ ГЛАВНОЕ --- */
/* Track тянется на всю ширину, но стартует по линии контейнера */
.vv-approach__track{
  position: relative;
  z-index: 2;

  width: 100%;

  /* слева по линии контейнера */
  padding-left: max(20px, calc((100vw - 1200px) / 2));

  /* справа чуть “воздуха”, чтобы кнопка и обрез третьего слайда выглядели как в макете */
  padding-right: 20px;

  overflow: visible;
}

.vv-approach__slider{
  position: relative;
  overflow: visible;
}

/* Swiper */
.vv-approach .swiper{
  overflow: visible;
}
.vv-approach .swiper-slide{
  height: auto;
}

/* Карточка */
.vv-card{
  position: relative;
  display:block;
  border-radius: 28px;
  overflow:hidden;
  height: 420px;
  text-decoration:none;
  box-shadow: 0 26px 60px rgba(0,0,0,.14);
  transform: translateZ(0);
}

.vv-card__media{ position:absolute; inset:0; }
.vv-card__media img{
  width:100%;
  height:100%;
  object-fit: cover;
  display:block;
  transform: scale(1.02);
}

.vv-card__overlay{
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg,
      rgba(0,0,0,0) 0%,
      rgba(0,0,0,.12) 45%,
      rgba(0,0,0,.65) 100%
    );
}

.vv-card__content{
  position:absolute;
  left: 26px;
  right: 26px;
  bottom: 22px;
  z-index:2;
  color:#fff;
}

.vv-card__title{
  margin:0 0 10px;
  font-size: 22px;
  font-weight: 800;
  line-height: 1.15;
  text-shadow: 0 10px 30px rgba(0,0,0,.35);
}

.vv-card__text{
  margin:0;
  font-size: 13.5px;
  line-height: 1.55;
  color: rgba(255,255,255,.88);
  text-shadow: 0 10px 30px rgba(0,0,0,.35);
}

/* Навигация снизу слева */
.vv-approach__nav{
  margin-top: 22px;
  display:flex;
  gap: 12px;
}

/* ВАЖНО: навигация тоже должна начинаться по контейнеру
   она уже внутри track, поэтому всё ок */

.vv-navbtn{
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 1px solid rgba(0,0,0,.35);
  background: transparent;
  cursor:pointer;
  display:grid;
  place-items:center;
  transition: transform .2s ease, background .2s ease, border-color .2s ease, opacity .2s ease;
}

.vv-navbtn:hover{
  transform: translateY(-1px);
  background: rgba(0,0,0,.04);
  border-color: rgba(0,0,0,.55);
}

.vv-navbtn:active{
  transform: translateY(0);
  opacity:.9;
}

.vv-navbtn::before{
  content:"";
  width: 14px;
  height: 14px;
  display:block;
  background: no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M15 19L8 12L15 5' stroke='%231a1a1a' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.vv-navbtn--next::before{
  transform: rotate(180deg);
}

/* Адаптив */
@media (max-width: 1200px){
  /* контейнер у тебя max 1200, но на меньших — формула сама ок */
}

@media (max-width: 992px){
  .vv-approach{ padding: 70px 0 90px; }
  .vv-approach__title{ font-size: 28px; }
  .vv-card{ height: 380px; }
}

@media (max-width: 600px){
  .vv-approach__head{
    flex-direction: column;
    align-items: flex-start;
  }
  .vv-card{ height: 340px; border-radius: 22px; }

  /* на мобиле лучше сделать обычный padding 20 */
  .vv-approach__track{
    padding-left: 20px;
  }
}


/* =========================================
   HERO — Для компаний
========================================= */

.vv-hero--company .vv-hero__veil{
  background:
    radial-gradient(1200px 700px at 40% 60%, rgba(255,255,255,.06), transparent 60%),
    linear-gradient(
      180deg,
      rgba(10,18,30,.60) 0%,
      rgba(10,18,30,.35) 45%,
      rgba(10,18,30,.65) 100%
    );
}

.vv-hero--company .vv-hero__title{
  max-width: 980px;
}

/* =========================================
   DK BLOCK 2 (grid #1-#6)
========================================= */

@font-face{
  font-family: "Callheart";
  src: url("../fonts/Callheart.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

.vv-dk2{
  position: relative;
  padding: 90px 0 110px;
  background-color:#F4EFE9;
  background-image:url('../img/vector-block2.svg');
  background-repeat:no-repeat;
  background-position:center top;
  background-size:cover;
  overflow: hidden;
}

/* мягкие дуги как на макете */
.vv-dk2::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(900px 650px at 10% 25%, rgba(0,0,0,.04), transparent 72%),
    radial-gradient(1100px 750px at 85% 70%, rgba(0,0,0,.03), transparent 70%);
  pointer-events:none;
}

.vv-dk2 .container{
  position: relative;
  z-index: 2;
}

.vv-dk2__lead{
  max-width: 860px;
  margin: 0 0 44px 0; /* или просто margin-bottom: 44px; */
  font-size: 24px;
  line-height: 1.7;
  color: #323334;
  font-family:'Montserrat', sans-serif;
  font-weight:400;
}

.vv-dk2__lead{
  max-width: 860px;
  margin-bottom: 84px;
}

.container {
  margin: 0 auto;
  width: 1200px;
}

.vv-dk2__title{
  margin: 0 0 38px;
  text-align: center;
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.12;
  font-size: clamp(26px, 3.1vw, 40px);
  color: #2c2c2c;
}

.vv-dk2__grid{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 22px;
}

/* карточки */
.vv-dk2__card{
  position: relative;
  border-radius: 26px;
  overflow: hidden;
  min-height: 260px;
	max-height:430px;
}

/* тёмные */
.vv-dk2__card--dark{
  background: #2b3b4c;
  box-shadow: 0 22px 60px rgba(0,0,0,.12);
  padding: 26px;
  display:flex;
  align-items:center;
}

.vv-dk2__text{
  margin: 0;
  color: rgba(255,255,255,.78);
  font-size: 16px;
  line-height: 1.55;
  max-width: 260px;
}

/* с картинкой */
.vv-dk2__card--image img{
  width:100%;
  height:100%;
  object-fit: cover;
  display:block;
}

/* цифра */
.vv-dk2__num{
  position:absolute;
  top: 18px;
  right: 20px;
  font-family: "Callheart", cursive;
  font-size: 34px;
  line-height: 1;
  color: rgba(255,255,255,.92);
  
  text-shadow: 0 16px 34px rgba(0,0,0,.28);
}

/* на картинках цифры тоже белые */
.vv-dk2__card--image .vv-dk2__num{
  color: rgba(255,255,255,.92);
}

/* сама сетка */
.vv-dk2__grid{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}

/* адаптив */
@media (max-width: 992px){
  .vv-dk2{ padding: 70px 20px 90px; }
  .vv-dk2__grid{ grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 560px){
  .vv-dk2__grid{ grid-template-columns: repeat(1, 1fr); }
  .vv-dk2__card{ min-height: 240px; }
}

/* Ограничиваем ширину карточек */
.vv-dk2__gridWrap{
  max-width: 1200px; /* уже чем container */
  margin: 0 auto;
}

/* =========================================
   DK BLOCK 3 — FORMATS SLIDER
   (right edge, narrower slides, +1 slide)
========================================= */

.vv-formats{
  position: relative;
  padding: 80px 0 110px;
  background: #F4EFE9;
  overflow: hidden;
}

.vv-formats::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(900px 650px at 10% 25%, rgba(0,0,0,.035), transparent 72%),
    radial-gradient(1100px 750px at 85% 70%, rgba(0,0,0,.03), transparent 70%);
  pointer-events:none;
}

/* Track — как в прошлой карусели: слева по контейнеру, справа до края */
.vv-formats__track{
  position: relative;
  z-index: 2;
  width: 100%;
  padding-left: max(20px, calc((100vw - 1200px) / 2));
  padding-right: 20px; /* чтобы pill не липла к краю */
  overflow: visible;
}

.vv-formats__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 20px;
  margin-bottom: 26px;
	max-width:1200px;
}

.vv-formats__title{
  margin-bottom:30px;
  font-size: 34px;
  font-weight: 700;
  color:#2c2c2c;
}

.vv-formats__pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 10px 18px;
  border-radius: 999px;
  background:#2b3b4c;
  color:#fff;
  text-decoration:none;
  font-size: 13px;
  font-weight: 600;
  box-shadow: 0 14px 30px rgba(0,0,0,.12);
  transition: transform .2s ease, opacity .2s ease;
}
.vv-formats__pill:hover{ transform: translateY(-1px); }
.vv-formats__pill:active{ transform: translateY(0); opacity:.9; }

.vv-formats__slider{ position: relative; overflow: visible; }

.vv-formats .swiper{ overflow: visible; }
.vv-formats .swiper-slide{ height: auto; }

/* Карточки форматов — уже, чем "Наш подход" */
.vv-fcard{
  position: relative;
  display:block;
  border-radius: 24px;
  overflow:hidden;
  height: 520px;
  text-decoration:none;
  box-shadow: 0 24px 56px rgba(0,0,0,.14);
}

.vv-fcard__media{ position:absolute; inset:0; }
.vv-fcard__media img{
  width:100%;
  height:100%;
  object-fit: cover;
  display:block;
  transform: scale(1.02);
}

.vv-fcard__overlay{
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg,
      rgba(0,0,0,0) 0%,
      rgba(0,0,0,.10) 40%,
      rgba(0,0,0,.68) 100%
    );
}

.vv-fcard__content{
  position:absolute;
  left: 0px;
  right: 0px;
  bottom: 0px;
  z-index:2;
  color:#fff;
	backdrop-filter:blur(5px);
	border-bottom-left-radius: 24px;
	border-bottom-right-radius: 24px;
	padding:24px;
	min-height:200px;
}

.vv-fcard__title{
  margin:0 0 10px;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.15;
  text-shadow: 0 10px 30px rgba(0,0,0,.35);
	font-family:'Montserrat', sans-serif;
}

.vv-fcard__text{
  margin:0;
  font-size: 14px;
  line-height: 1.55;
  color: rgba(255,255,255,.86);
  text-shadow: 0 10px 30px rgba(0,0,0,.35);
	font-family:'Montserrat', sans-serif;
	font-weight: 400;
}

/* Навигация слева снизу */
.vv-formats__nav{
  margin-top: 18px;
  display:flex;
  gap: 12px;
}

/* Адаптив */
@media (max-width: 992px){
  .vv-formats{ padding: 70px 0 90px; }
  .vv-formats__title{ font-size: 28px; }
  .vv-fcard{ height: 330px; }
}

@media (max-width: 600px){
  .vv-formats__head{
    flex-direction: column;
    align-items: flex-start;
  }
  .vv-formats__track{
    padding-left: 20px;
    padding-right: 20px;
  }
  .vv-fcard{ height: 310px; }
}


/* =========================
   INDIVIDUAL PAGE
   ========================= */

.vv-ind-hero{
  position: relative;
  width: 100%;
  height: 100vh;
  min-height: 560px;
  max-height: 740px;
  overflow: hidden;
}

.vv-ind-hero__media{
  position:absolute; inset:0;
  background-image: var(--vv-ind-hero);
  background-size: cover;
  background-position: center;
  background-repeat:no-repeat;
  transform: scale(1.02);
}

.vv-ind-hero__overlay{
  position:absolute; inset:0;
  background: linear-gradient(90deg, rgba(0,0,0,.42) 0%, rgba(0,0,0,.20) 55%, rgba(0,0,0,.10) 100%);
}

.vv-ind-hero__content{
  position: relative;
  z-index: 2;
  height: 100%;
  display:flex;
  align-items:center;
}

.vv-ind-hero__content {
  width: min(1200px, calc(100% - 40px));
  margin: 0 auto;
  display:flex;
  justify-content: center;
    flex-direction: column;
    align-items: flex-end;
}

.vv-ind-hero__contentInner{
  max-width: 560px; /* примерно как на макете */
  text-align:left;
}

.vv-ind-hero__title{
  margin:0 0 18px;
  color:#fff;
  font-weight: 700;
  letter-spacing:-0.02em;
  line-height:1.06;
  font-size: clamp(30px, 4.2vw, 48px);
  text-shadow: 0 16px 40px rgba(0,0,0,.35);
	font-family:'Geologica', sans-serif;
	padding-right: 20px;
}

.vv-ind-hero__actions{
  display:flex;
  gap: 14px;
  flex-wrap: wrap;
}

.vv-ind-intro{
  
  padding: 0 0 24px;
}


.vv-ind-intro__text{
  max-width: 860px;
  margin: 0 0 44px 0; /* или просто margin-bottom: 44px; */
  font-size: 24px;
  line-height: 1.7;
  color: #323334;
  font-family:'Montserrat', sans-serif;
  font-weight:400;
}

.vv-ind-intro__text{
  max-width: 860px;
  margin-bottom: 84px;
}

.vv-ind-intro__title{
  margin: 0;
  text-align:center;
  font-weight: 700;
  letter-spacing:-0.02em;
  line-height: 1.15;
  color:#2c2c2c;
  font-size: clamp(22px, 3vw, 32px);
	font-family:'Geologica', sans-serif;
	
}

.vv-ind-slider{
  
  padding: 28px 0 92px;
}

.vv-ind-slider__wrap{ position: relative; }

.vv-ind-card{
  display:grid;
  grid-template-columns: 1.22fr .95fr;
  gap: 22px;
  align-items: stretch;
}

.vv-ind-card__media{
  position: relative;
  border-radius: 24px;
  overflow: hidden;
  height: 360px;
  box-shadow: 0 24px 56px rgba(0,0,0,.14);
}

.vv-ind-card__media img{
  width:100%;
  height:100%;
  object-fit: cover;
  display:block;
  transform: scale(1.02);
}

.vv-ind-card__panel{
  border-radius: 24px;
  background:#2b3b4c;
  padding: 45px;
  color:#fff;
  box-shadow: 0 24px 56px rgba(0,0,0,.14);
  display:flex;
  flex-direction: column;
  justify-content: space-between;
}

.vv-ind-card__title{
  margin: 0 0 10px;
  font-size: 32px;
  font-weight: 700;
  letter-spacing:-0.02em;
  line-height:1.15;
	font-family:'Montserrat', sans-serif;
}

.vv-ind-card__text{
  margin: 0 0 18px;
  color: rgba(255,255,255,.78);
  font-size: 16px;
  line-height: 1.6;
	font-weight: 500;
	font-family:'Montserrat', sans-serif;
}

/* dots (как на скрине — снизу внутри картинки) */
.vv-ind-card__dots{
  position:absolute;
  left: 0;
  right: 0;
  bottom: 12px;
  text-align:center;
  z-index: 2;
}
.vv-ind-card__dots .swiper-pagination-bullet{
  width: 6px; height: 6px;
  opacity: .5;
  background: rgba(255,255,255,.85);
}
.vv-ind-card__dots .swiper-pagination-bullet-active{
  opacity: 1;
}

/* стрелки снизу слева */
.vv-ind-slider__nav{
  margin-top: 16px;
  display:flex;
  gap: 12px;
}

/* белая кнопка на тёмном фоне */
.vv-btn--white{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 10px 18px;
  border-radius: 999px;
  background:#fff;
  color:#2b3b4c;
  text-decoration:none;
  font-size: 13px;
  font-weight: 700;
	max-width: 215px;
}

/* адаптив */
@media (max-width: 992px){
  .vv-ind-card{
    grid-template-columns: 1fr;
  }
  .vv-ind-card__media{ height: 320px; }
}

/* ====== Slider must be inside 1200px container ====== */
.vv-ind-slider .container{
  width: min(1200px, calc(100% - 40px));
  margin: 0 auto;
}

/* Карточка-сетка как на макете */
.vv-ind-card{
  display:grid;
  grid-template-columns: 1.25fr 0.95fr;
  gap: 22px;
  align-items: stretch;
}

/* ВАЖНО: разрешаем картинке "уходить" под правую панель */
.vv-ind-card__media{
  position: relative;
  border-radius: 26px;
  overflow: hidden;
  height: 590px;
  box-shadow: 0 24px 56px rgba(0,0,0,.14);

  /* вот оно: картинка залезает под карточку */
  margin-right: -64px;     /* регулируй: -40..-90 */
  z-index: 1;
}

/* Правая панель всегда сверху */
.vv-ind-card__panel{
  position: relative;
  z-index: 2;
}

/* Чтобы визуально было как в макете — чуть больше радиус и тень */
.vv-ind-card__panel{
  border-radius: 26px;
  box-shadow: 0 24px 56px rgba(0,0,0,.14);
}

/* Дотсы остаются внизу картинки */
.vv-ind-card__dots{
  position:absolute;
  left: 0;
  right: 0;
  bottom: 12px;
  text-align:center;
  z-index: 2;
}

/* Мобилка: убираем налезание */
@media (max-width: 992px){
  .vv-ind-card{
    grid-template-columns: 1fr;
  }
  .vv-ind-card__media{
    margin-right: 0;
    height: 320px;
	  margin-bottom: -64px;
  }
	
	.vv-ind-hero__content {
    align-items: flex-start;
}
}

/* Блок текста над "Хайлайты поездки" */
.vv-tourlead{
     /* ширина текста как в примере, подстрой */
  margin: 0 0 46px;       /* НЕ auto — чтобы блок был по левому краю */
  color: #323334;
  font-family: 'Montserrat', sans-serif;
  font-weight: 400;
  font-size: 24px;        /* подстрой под макет */
  line-height: 1.65;
}

/* Чтобы WP не делал лишних отступов */
.vv-tourlead > *:first-child{ margin-top: 0; }
.vv-tourlead > *:last-child{ margin-bottom: 0; }

/* Абзацы */
.vv-tourlead p{
  margin: 0 0 16px;
}

/* Если вдруг попадаются списки/цитаты */
.vv-tourlead ul,
.vv-tourlead ol{ margin: 0 0 16px 20px; }
.vv-tourlead blockquote{ margin: 18px 0; padding-left: 18px; border-left: 3px solid rgba(50,51,52,.18); }



/* =========================
   EXPERTS PAGE (responsive, single block)
   ========================= */

/* container (если уже есть — можно удалить) */
.container{
  width: min(1200px, calc(100% - 40px));
  margin: 0 auto;
}

/* page bg */
.vv-experts-page{ 
  background-color:#F4EFE9;
  background-image:url('../img/vector-block2.svg');
  background-repeat:no-repeat;
  background-position:center top;
  background-size:cover;
}

/* hero */
.vv-experts-hero{
  padding: 140px 0 34px;
  text-align:center;
}
.vv-experts-hero__title{
  margin:0;
  font-size: clamp(34px, 4.2vw, 48px);
  line-height: 1.05;
  font-weight: 700;
  color:#323334;
  font-family:'Geologica', sans-serif;
}
.vv-experts-hero__text{
  margin: 14px auto 0;
  max-width: 860px;
  font-size: 20px;
  line-height: 1.55;
  color: #323334;
  font-family:'Montserrat', sans-serif;
  font-weight: 400;
}

/* section */
.vv-experts{
  padding: 26px 0 80px;
}

/* grid */
.vv-experts__grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

/* card */
.vv-expert__card{
  position: relative;
  display:block;
  border-radius: 22px;
  overflow:hidden;
  min-height: 500px;
  background:#c9c9c9;
  box-shadow: 0 18px 50px rgba(0,0,0,.10);
}

.vv-expert__media{
  position:absolute; inset:0;
  background-size: cover;
  background-position: top;
  transform: scale(1);
  transition: transform .6s ease;
}

/* bottom bar */
.vv-expert__bar{
  position:absolute;
  left: 0; right: 0; bottom: 0;
  padding: 20px;
  border-bottom-left-radius: 24px;
  border-bottom-right-radius: 24px;
  background: rgba(0,0,0,.32);
  backdrop-filter: blur(10px);
  color:#fff;
  transition: opacity .25s ease, transform .25s ease;
}
.vv-expert__name{
  font-weight: 700;
  font-size: 20px;
  line-height: 1.15;
  font-family:'Montserrat', sans-serif;
}
.vv-expert__spec{
  margin-top: 4px;
  font-size: 16px;
  opacity: .9;
  font-family:'Montserrat', sans-serif;
  font-weight: 500;
}

/* hover overlay (blue) */
.vv-expert__hover{
  position:absolute;
  left: 0; right: 0; bottom: 0;
  padding: 20px;
  border-bottom-left-radius: 24px;
  border-bottom-right-radius: 24px;
  background: rgba(43,63,88,.86);
  backdrop-filter: blur(5px);
  color:#fff;

  opacity: 0;
  transform: translateY(10px);
  pointer-events: none;
  transition: opacity .25s ease, transform .25s ease;
  text-align:center;
}

.vv-expert__hover::before{
  content: "";
  position: absolute;
  inset: 0;

  background-image: url('../img/vector-block2.svg');
  background-repeat: no-repeat;
  background-position: center top;
  background-size: cover;

  opacity: 0.12;
  pointer-events: none;
  z-index: 0;
}

.vv-expert__hover > *{
  position: relative;
  z-index: 1;
}

.vv-expert__bio{
  font-size: 16px;
  line-height: 1.4;
  opacity: .92;
  width: 100%;
  text-align:center;
  font-family:'Montserrat', sans-serif;
  font-weight: 500;
}

.vv-expert__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-top: 12px;
  height: 34px;
  padding: 0 14px;
  border-radius: 999px;
  background: rgba(255,255,255);
  border: 1px solid rgba(255,255,255,.35);
  font-size: 12px;
  font-weight: 500;
  font-family:'Montserrat', sans-serif;
  color:#2B3F58;
}

/* hover behavior (desktop) */
.vv-expert__card:hover .vv-expert__media{ transform: scale(1.05); }
.vv-expert__card:hover .vv-expert__bar{
  opacity: 0;
  transform: translateY(6px);
}
.vv-expert__card:hover .vv-expert__hover{
  opacity: 1;
  transform: translateY(0);
}

/* =========================
   RESPONSIVE
   ========================= */

/* <= 1200 */
@media (max-width: 1200px){
  .vv-experts-hero{ padding: 120px 0 28px; }
  .vv-experts__grid{ gap: 16px; }
  .vv-expert__card{ min-height: 420px; }
}

/* <= 992 */
@media (max-width: 992px){
  .vv-experts-hero{ padding: 110px 0 22px; }
  .vv-experts-hero__title{ font-size: clamp(28px, 5vw, 40px); }
  .vv-experts-hero__text{ font-size: 18px; max-width: 720px; }

  .vv-experts__grid{ grid-template-columns: repeat(2, 1fr); gap: 16px; }

  .vv-expert__card{ min-height: 360px; }

  .vv-expert__name{ font-size: 18px; }
  .vv-expert__spec{ font-size: 14px; }
  .vv-expert__bio{ font-size: 14px; }
}

/* <= 768 */
@media (max-width: 768px){
  .vv-experts-page{
    background-size: 140%;
    background-position: center top;
  }
}

/* <= 640 */
@media (max-width: 640px){
  .vv-experts-hero{ padding: 95px 0 18px; }
  .vv-experts-hero__title{ font-size: 26px; line-height: 1.1; }
  .vv-experts-hero__text{ font-size: 15px; line-height: 1.5; }

  .vv-experts__grid{ grid-template-columns: 1fr; gap: 14px; }

  .vv-expert__card{ min-height: 400px; border-radius: 18px; }

  .vv-expert__bar,
  .vv-expert__hover{
    padding: 16px;
    border-bottom-left-radius: 18px;
    border-bottom-right-radius: 18px;
  }

  .vv-expert__name{ font-size: 16px; }
  .vv-expert__spec{ font-size: 13px; }
  .vv-expert__bio{ font-size: 13px; }
}

/* touch devices: no hover → show blue overlay by default */
@media (hover: none){
  .vv-expert__bar{ opacity: 0; }
  .vv-expert__hover{
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
  }
}


/* =========================
   GALLERY PAGE
   ========================= */
.vv-gallery-page{
  background:#F4EFE9;
}

/* HERO */
.vv-gallery-hero{
  position:relative;
  min-height: 650px;
  padding: 140px 0 56px;
  overflow:hidden;
}
.vv-gallery-hero__media{
  position:absolute; inset:0;
  background-image: var(--vv-hero-bg);
  background-size: cover;
  background-position: center;
  transform: scale(1.02);
}
.vv-gallery-hero__overlay{
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(0,0,0,.40), rgba(0,0,0,.25));
}
.vv-gallery-hero__inner{
  position:relative;
  text-align:center;
  max-width: 980px;
}
.vv-gallery-hero__title{
  margin:0;
  color:#fff;
  font-family: Geologica, sans-serif;
  font-weight: 700;
  font-size: clamp(34px, 4.4vw, 48px);
  line-height:1.05;
	font-family:'Geologica', sans-serif;
	
}
.vv-gallery-hero__text{
  margin: 12px auto 0;
  color: rgba(255,255,255,.90);
  font-family: Montserrat, sans-serif;
  font-weight: 500;
  font-size: 16px;
  line-height: 1.55;
  max-width: 720px;
}

/* GRID SECTION */
.vv-gallery-gridwrap{
  padding: 56px 0 84px;
  background-color:#F4EFE9;
  background-image:url('../img/vector-block2.svg');
  background-repeat:no-repeat;
  background-position:center top;
  background-size:cover;
  position:relative;
}

/* сетка как на макете: 3 колонки, “широкая” и “высокая” плитки */
.vv-gallery-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  grid-auto-flow: dense;
}

.vv-gitem{
  display:block;
  border-radius: 22px;
  overflow:hidden;
  background:#c9c9c9;
  box-shadow: 0 18px 50px rgba(0,0,0,.10);
  position:relative;
  transform: translateZ(0);
}
.vv-gitem img{
  width:100%;
  height:100%;
  object-fit: cover;
  display:block;
  transform: scale(1);
  transition: transform .6s ease;
}

/* размеры плиток */
.vv-gitem--normal{ aspect-ratio: 3 / 3; }
.vv-gitem--wide{
  grid-column: span 2;
  aspect-ratio: 16 / 9;
}
.vv-gitem--tall{
  grid-row: span 2;
  aspect-ratio: 3 / 4;
}

/* hover */
.vv-gitem:hover img{ transform: scale(1.05); }

/* ADAPTIVE */
@media (max-width: 980px){
  .vv-gallery-hero{ padding: 120px 0 44px; min-height: 440px; }
  .vv-gallery-grid{ grid-template-columns: repeat(2, 1fr); }
  .vv-gitem--wide{ grid-column: span 2; }
}
@media (max-width: 620px){
  .vv-gallery-hero{ padding: 110px 0 34px; min-height: 380px; }
  .vv-gallery-grid{ grid-template-columns: 1fr; gap: 14px; }
  .vv-gitem--wide{ grid-column: auto; }
  .vv-gitem--tall{ grid-row: auto; }
  .vv-gitem--normal,
  .vv-gitem--wide,
  .vv-gitem--tall{ aspect-ratio: 3 / 3; }
}


/* =========================
   LIGHTBOX
   ========================= */
.vv-lightbox{
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
}
.vv-lightbox.is-open{
  display: block;
}

.vv-lightbox__backdrop{
  position:absolute; inset:0;
  background: rgba(0,0,0,.72);
  backdrop-filter: blur(6px);
}

.vv-lightbox__dialog{
  position:absolute;
  inset: 0;
  display:grid;
  place-items:center;
  padding: 24px;
}

.vv-lightbox__img{
  max-width: min(1100px, calc(100vw - 64px));
  max-height: min(760px, calc(100vh - 96px));
  width: auto;
  height: auto;
  border-radius: 18px;
  box-shadow: 0 22px 80px rgba(0,0,0,.45);
  background:#111;
}

.vv-lightbox__close{
  position:absolute;
  top: 18px;
  right: 18px;
  width: 44px;
  height: 44px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.25);
  background: rgba(255,255,255,.10);
  color:#fff;
  font-size: 26px;
  line-height: 1;
  cursor: pointer;
  display:grid;
  place-items:center;
}

.vv-lightbox__nav{
  position:absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 46px;
  height: 46px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.25);
  background: rgba(255,255,255,.10);
  cursor:pointer;
  display:grid;
  place-items:center;
}
.vv-lightbox__nav--prev{ left: 18px; }
.vv-lightbox__nav--next{ right: 18px; }

.vv-lightbox__nav::before{
  content:"";
  width: 10px;
  height: 10px;
  border-right: 2px solid rgba(255,255,255,.9);
  border-bottom: 2px solid rgba(255,255,255,.9);
  transform: rotate(135deg);
}
.vv-lightbox__nav--next::before{
  transform: rotate(-45deg);
}

@media (max-width: 620px){
  .vv-lightbox__dialog{ padding: 14px; }
  .vv-lightbox__img{
    max-width: calc(100vw - 28px);
    max-height: calc(100vh - 90px);
    border-radius: 14px;
  }
  .vv-lightbox__nav--prev{ left: 10px; }
  .vv-lightbox__nav--next{ right: 10px; }
  .vv-lightbox__close{ top: 10px; right: 10px; }
}


/* =========================
   CONTACTS PAGE
   ========================= */
.vv-contacts-page{
  background-color:#F4EFE9;
  position: relative;
  overflow:hidden;
}
.vv-contacts-page::before{
  content:"";
  position:absolute; inset:0;
  background-image: var(--vv-pattern);
  background-repeat:no-repeat;
  background-position:center top;
  background-size:cover;
  opacity:.55; /* прозрачность узора */
  pointer-events:none;
}

.vv-contacts-hero{
  position: relative;
  padding: 140px 0 90px;
  text-align:center;
}
.vv-contacts-hero .container{ position: relative; z-index:1; }

.vv-contacts-hero__title{
  margin:0;
  font-family:'Geologica', sans-serif;
  font-weight:700;
  font-size: clamp(34px, 4.4vw, 48px);
  line-height:1.05;
  color:#323334;
}
.vv-contacts-hero__subtitle{
  margin: 14px auto 0;
  max-width: 760px;
  font-family:'Geologica', sans-serif;
  font-weight:500;
  font-size: 17px;
  line-height:1.55;
  color:#323334;
  opacity:.9;
}
.vv-contacts-hero__label{
  margin: 20px auto 0;
  font-family:'Geologica', sans-serif;
  font-weight:500;
  font-size: 20px;
  color:#323334;
}

.vv-contacts-grid{
  margin: 26px auto 0;
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
  max-width: 1040px;
}

.vv-contact-card{
  background:#fff;
  border-radius: 22px;
  padding: 18px 16px 16px;
  box-shadow: 0 18px 50px rgba(0,0,0,.08);
}

.vv-contact-card__icon{
  width: 44px;
  height: 44px;
  border-radius: 999px;
  margin: 0 auto 10px;
  display:grid;
  place-items:center;
  color:#323334;
  border: 1px solid rgba(0,0,0,.10);
  background: rgba(255,255,255,.75);
  backdrop-filter: blur(8px);
}

.vv-contact-card__name{
  font-family:'Geologica', sans-serif;
  font-weight:400;
  color:#323334;
  font-size: 20px;
  margin-bottom: 12px;
}

.vv-contact-card__pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height: 42px;
  padding: 0 16px;
  border-radius: 999px;
  background: rgba(244,239,233,.95);
  border: 1px solid rgba(0,0,0,.06);
  color:#5B6759;
  font-family:'Geologica', sans-serif;
  font-weight:400;
  font-size: 20px;
  text-decoration:none;
  white-space: nowrap;
}
.vv-contact-card__pill.is-disabled{
  opacity:.55;
  pointer-events:none;
}

.vv-contact-address{
  margin: 18px auto 0;
  max-width: 1040px;
  background:#fff;
  border-radius: 22px;
  padding: 18px 18px;
  display:flex;
  align-items:center;
  gap: 12px;
  box-shadow: 0 18px 50px rgba(0,0,0,.08);
	flex-direction: column;
}
.vv-contact-address__icon{
  width: 44px;
  height: 44px;
  border-radius: 999px;
  display:grid;
  place-items:center;
  border: 1px solid rgba(0,0,0,.10);
  color:#323334;
  background: rgba(255,255,255,.75);
  backdrop-filter: blur(8px);
}
.vv-contact-address__text{
  flex:1;
  text-align:center;
  font-family:'Geologica', sans-serif;
  font-weight:400;
  font-size: 20px;
  color:#323334;
  opacity:.92;
}

.vv-contacts-map{
  margin: 18px auto 0;
  max-width: 1040px;
  border-radius: 22px;
  overflow:hidden;
  box-shadow: 0 18px 50px rgba(0,0,0,.08);
}
.vv-contacts-map iframe{
  width:100%;
  height: 360px;
  border:0;
  display:block;
}

.vv-contacts-extra{
  margin: 26px auto 0;
  max-width: 1040px;
  text-align:left;
}

/* Responsive */
@media (max-width: 980px){
  .vv-contacts-grid{ grid-template-columns: repeat(2, 1fr); max-width: 760px; }
  .vv-contact-address{ max-width: 760px; }
  .vv-contacts-map{ max-width: 760px; }
}
@media (max-width: 620px){
  .vv-contacts-hero{ padding: 118px 0 70px; }
  .vv-contacts-grid{ grid-template-columns: 1fr; gap: 14px; max-width: 520px; }
  .vv-contact-address{ max-width: 520px; padding: 16px; }
  .vv-contact-address__text{ text-align:center; }
}


/* =========================
   FORMATS: scroll reveal
   ========================= */

.vv-formats__grid{
  display:grid;
  gap:24px;
}

/* одна строка = 2 колонки */
.vv-format-row{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:24px;
  align-items:stretch;
}

/* базовое состояние до появления */
.vv-format-row .vv-card{
  opacity:0;
  transform:translate3d(0, 18px, 0);
  filter: blur(2px);
  transition:
    opacity .7s ease,
    transform .7s ease,
    filter .7s ease;
  will-change: transform, opacity, filter;
}

/* направление: справа / слева (по строке) */
.vv-format-row[data-dir="right"] .vv-card{
  transform: translate3d(60px, 18px, 0);
}
.vv-format-row[data-dir="left"] .vv-card{
  transform: translate3d(-60px, 18px, 0);
}

/* когда строка в зоне видимости */
.vv-format-row.is-inview .vv-card{
  opacity:1;
  transform:translate3d(0, 0, 0);
  filter: blur(0);
}

/* чуть “каскадом”, чтобы выглядело дороже */
.vv-format-row.is-inview .vv-card--img{ transition-delay: .15s; }
.vv-format-row.is-inview .vv-card--text{ transition-delay: .24s; }

/* адаптив: в одну колонку */
@media (max-width: 900px){
  .vv-format-row{
    grid-template-columns: 1fr;
  }
  .vv-format-row[data-dir="right"] .vv-card,
  .vv-format-row[data-dir="left"] .vv-card{
    transform: translate3d(0, 18px, 0);
  }
}

/* уважение к prefers-reduced-motion */
@media (prefers-reduced-motion: reduce){
  .vv-format-row .vv-card{
    transition:none !important;
    transform:none !important;
    filter:none !important;
    opacity:1 !important;
  }
}


/* =========================
   TOURS CARD: hover overlay
   ========================= */

.vv-tcard{
  position:relative;
  overflow:hidden;
  border-radius:24px; /* если у тебя другое — подстрой */
  background-size:cover;
  background-position:center;
}

/* ссылка на всю карточку (кроме оверлея/кнопки) */
.vv-tcard__link{
  position:absolute;
  inset:0;
  z-index:1;
}

/* чтобы контент был выше фоновой ссылки */
.vv-tcard__top,
.vv-tcard__bottom{
  z-index:2;
}

/* Оверлей */
.vv-tcard__hover{
  position:absolute;
  left:0px;
  right:0px;
  bottom:0px;
  z-index:3;

  border-radius:0 0 22px 22px;
  padding:18px 18px 16px;

  background: rgba(18, 32, 45, .62);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);

  opacity:0;
  transform: translate3d(0, 14px, 0);
  transition: opacity .35s ease, transform .35s ease;
  pointer-events:none;
}

.vv-tcard__hover-inner{
  display:flex;
  flex-direction:column;
  gap:14px;
}

.vv-tcard__hover-text{
  color:#fff;
  font-size:16px;
  line-height:1.35;
  opacity:.95;
}

/* Кнопка */
.vv-tcard__hover-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:44px;
  padding:0 18px;

  border-radius:999px;
  background:#fff;
  color:#1a2a3a;
  font-weight:600;
  text-decoration:none;

  pointer-events:auto; /* важно: кликабельна */
}

.vv-tcard__hover-btn:hover{
  filter: brightness(.96);
}

.vv-tcard__hover-btn.is-disabled{
  background: rgba(255,255,255,.18);
  color: rgba(255,255,255,.85);
  pointer-events:none;
}

/* Появление по hover + по focus (клавиатура) */
.vv-tcard:hover .vv-tcard__hover,
.vv-tcard:focus-within .vv-tcard__hover{
  opacity:1;
  transform: translate3d(0, 0, 0);
  pointer-events:auto;
}

/* soldout: можно показывать, но без клика */
.vv-tcard.is-soldout .vv-tcard__hover-btn{
  pointer-events:none;
}

.vv-tcard:hover .vv-tcard__bottom,
.vv-tcard:focus-within .vv-tcard__bottom{
  opacity:0;
  transform: translate3d(0, 10px, 0);
  transition: opacity .25s ease, transform .25s ease;
}


/* =========================
   ABOUT: scroll reveal
   ========================= */

.vv-about [data-vv-reveal]{
  opacity:0;
  transform: translate3d(0, 18px, 0);
  filter: blur(2px);
  transition:
    opacity .75s ease,
    transform .75s ease,
    filter .75s ease;
  will-change: transform, opacity, filter;
}

.vv-about [data-vv-reveal="left"]{
  transform: translate3d(-60px, 18px, 0);
}

.vv-about [data-vv-reveal="right"]{
  transform: translate3d(60px, 18px, 0);
}

.vv-about [data-vv-reveal].is-inview{
  opacity:1;
  transform: translate3d(0, 0, 0);
  filter: blur(0);
}

/* лёгкая “каскадность” внутри строки: текст чуть раньше, картинка чуть позже */
.vv-about__row .vv-about__col--text.is-inview{ transition-delay: .04s; }
.vv-about__row .vv-about__col--image.is-inview{ transition-delay: .12s; }

/* мобилка: без бокового выезда, только fade + снизу вверх */
@media (max-width: 900px){
  .vv-about [data-vv-reveal="left"],
  .vv-about [data-vv-reveal="right"]{
    transform: translate3d(0, 18px, 0);
  }
}

/* уважение к reduced motion */
@media (prefers-reduced-motion: reduce){
  .vv-about [data-vv-reveal]{
    opacity:1 !important;
    transform:none !important;
    filter:none !important;
    transition:none !important;
  }
}