/* ==========================================================================
   НОВАЯ Я — женский клуб
   Тёмный люкс: палитра логотипа, поданная сдержанно.
   ========================================================================== */

/* --- 1. Токены ----------------------------------------------------------- */
:root{
  /* Цвет — прямо из логотипа */
  --ink:            #0B0A0C;
  --ink-raised:     #141216;
  --ink-elevated:   #1C1920;
  --cream:          #F5F1EC;
  --muted:          rgba(245,241,236,.58);
  --faint:          rgba(245,241,236,.34);
  --magenta:        #EC008C;
  --magenta-deep:   #A3005F;
  --magenta-soft:   rgba(236,0,140,.14);
  --magenta-glow:   rgba(236,0,140,.38);
  --yellow:         #FFE500;
  --line:           rgba(245,241,236,.11);
  --line-strong:    rgba(245,241,236,.2);

  /* Шрифт */
  --display: 'Cormorant Garamond', 'Times New Roman', serif;
  --body:    'Golos Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;

  /* Ритм */
  --wrap:        1240px;
  --wrap-narrow: 720px;
  --gutter:      clamp(1.25rem, 5vw, 3.5rem);
  --section-y:   clamp(4.5rem, 11vh, 8.5rem);
  --radius:      2px;      /* почти прямой угол — так дороже */
  --radius-lg:   4px;

  /* Движение */
  --ease:      cubic-bezier(.22,.61,.36,1);
  --ease-out:  cubic-bezier(.16,1,.3,1);
  --dur:       .55s;
}

/* --- 2. Сброс ------------------------------------------------------------ */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; overflow-x:clip; }
body{
  margin:0;
  background:var(--ink);
  color:var(--cream);
  font-family:var(--body);
  font-size:clamp(1rem,.96rem + .2vw,1.075rem);
  line-height:1.75;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
img,svg,video{ display:block; max-width:100%; }
img{ height:auto; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }
input,textarea,select{ font:inherit; color:inherit; }
h1,h2,h3,h4,p,figure,blockquote{ margin:0; }
ul,ol{ margin:0; padding:0; list-style:none; }
/* Атрибут hidden должен побеждать любой display из наших правил:
   иначе незаполненный контакт остаётся видимым и ведёт в никуда. */
[hidden]{ display:none !important; }
:focus-visible{ outline:2px solid var(--yellow); outline-offset:3px; border-radius:1px; }
::selection{ background:var(--magenta); color:#fff; }

/* --- 3. Типографика ------------------------------------------------------ */
.display{
  font-family:var(--display);
  font-weight:300;
  line-height:.92;
  letter-spacing:-.015em;
}
.h1{ font-family:var(--display); font-weight:300; font-size:clamp(2.6rem,1.6rem + 4.4vw,5.2rem); line-height:1.02; letter-spacing:-.015em; }
.h2{ font-family:var(--display); font-weight:300; font-size:clamp(2rem,1.4rem + 2.8vw,3.6rem); line-height:1.08; letter-spacing:-.01em; }
.h3{ font-family:var(--display); font-weight:400; font-size:clamp(1.35rem,1.15rem + .85vw,1.9rem); line-height:1.2; }
.h4{ font-family:var(--body);  font-weight:600; font-size:1.0625rem; line-height:1.4; letter-spacing:-.005em; }

.lead{ font-size:clamp(1.1rem,1rem + .5vw,1.35rem); line-height:1.7; color:var(--cream); font-weight:400; }
.muted{ color:var(--muted); }
.faint{ color:var(--faint); }

/* Эйбрау — метка над заголовком */
.eyebrow{
  font-size:.7rem; font-weight:600; text-transform:uppercase;
  letter-spacing:.2em; color:var(--magenta);
  display:flex; align-items:center; gap:.75rem;
}
.eyebrow::after{ content:''; flex:1; height:1px; background:var(--line); max-width:5rem; }
.eyebrow--center{ justify-content:center; }
.eyebrow--center::before{ content:''; flex:1; height:1px; background:var(--line); max-width:5rem; }

/* Сигнатура №2: жёлтая «Я» — одна вспышка на экран */
.spark{ color:var(--yellow); font-style:normal; }
/* Сигнатура: курсив дисплея для эмоциональных строк */
.em{ font-style:italic; color:var(--cream); }

/* --- 4. Каркас ----------------------------------------------------------- */
.wrap{ width:min(100% - var(--gutter)*2, var(--wrap)); margin-inline:auto; }
.wrap-narrow{ width:min(100% - var(--gutter)*2, var(--wrap-narrow)); margin-inline:auto; }
.section{ padding-block:var(--section-y); position:relative; }
.section--tight{ padding-block:clamp(3rem,7vh,5rem); }
.center{ text-align:center; }

/* Сигнатура №1: главы. Нумерация несёт смысл — слоган про «новую главу». */
.chapter{ display:flex; align-items:baseline; gap:1.1rem; margin-bottom:1.5rem; }
.chapter__num{
  font-family:var(--display); font-size:clamp(2.4rem,2rem + 2vw,4rem);
  font-weight:300; line-height:1; color:transparent;
  -webkit-text-stroke:1px var(--line-strong);
  flex:none;
}
.chapter__label{
  font-size:.7rem; font-weight:600; text-transform:uppercase;
  letter-spacing:.2em; color:var(--magenta);
}
.chapter--center{ justify-content:center; }

/* Разделительная линия с ромбом */
.rule{ height:1px; background:var(--line); border:0; margin:0; }
.rule--brand{
  height:1px; border:0; margin:0;
  background:linear-gradient(90deg,transparent,var(--magenta),transparent);
  opacity:.55;
}

/* --- 5. Кнопки ----------------------------------------------------------- */
.btn{
  --btn-bg:var(--magenta);
  display:inline-flex; align-items:center; justify-content:center; gap:.6rem;
  padding:1.02rem 2.1rem; border-radius:var(--radius);
  font-size:.82rem; font-weight:600; letter-spacing:.11em; text-transform:uppercase;
  background:var(--btn-bg); color:#fff; position:relative; overflow:hidden;
  transition:transform .4s var(--ease-out), box-shadow .4s var(--ease-out);
  will-change:transform;
}
.btn::after{ /* блик, уезжающий по кнопке */
  content:''; position:absolute; inset:0;
  background:linear-gradient(110deg,transparent 20%,rgba(255,255,255,.28) 50%,transparent 80%);
  transform:translateX(-120%); transition:transform .75s var(--ease-out);
}
.btn:hover{ transform:translateY(-2px); box-shadow:0 14px 38px -12px var(--magenta-glow); }
.btn:hover::after{ transform:translateX(120%); }
.btn:active{ transform:translateY(0); }

.btn--ghost{
  background:transparent; color:var(--cream);
  box-shadow:inset 0 0 0 1px var(--line-strong);
}
.btn--ghost:hover{ box-shadow:inset 0 0 0 1px var(--magenta); color:#fff; }
.btn--yellow{ background:var(--yellow); color:var(--ink); }
.btn--yellow:hover{ box-shadow:0 14px 38px -12px rgba(255,229,0,.4); }
.btn--sm{ padding:.72rem 1.4rem; font-size:.72rem; }
.btn--block{ width:100%; }

/* Текстовая ссылка со стрелкой */
.link{
  display:inline-flex; align-items:center; gap:.55rem;
  font-size:.78rem; font-weight:600; letter-spacing:.11em; text-transform:uppercase;
  color:var(--cream); padding-bottom:.3rem; position:relative;
}
.link::before{
  content:''; position:absolute; left:0; bottom:0; height:1px; width:100%;
  background:var(--line-strong);
}
.link::after{
  content:''; position:absolute; left:0; bottom:0; height:1px; width:100%;
  background:var(--magenta); transform:scaleX(0); transform-origin:left;
  transition:transform .45s var(--ease-out);
}
.link:hover::after{ transform:scaleX(1); }
.link svg{ transition:transform .4s var(--ease-out); }
.link:hover svg{ transform:translateX(4px); }

/* --- 6. Шапка ------------------------------------------------------------ */
.progress{
  position:fixed; top:0; left:0; height:2px; width:100%; z-index:120;
  background:linear-gradient(90deg,var(--magenta),var(--yellow));
  transform:scaleX(0); transform-origin:left;
}
.topbar{
  position:fixed; top:0; left:0; right:0; z-index:100;
  padding-block:1.15rem;
  transition:background .45s var(--ease), padding .45s var(--ease), box-shadow .45s var(--ease);
}
.topbar--solid{
  background:rgba(11,10,12,.82);
  -webkit-backdrop-filter:blur(18px) saturate(1.4);
  backdrop-filter:blur(18px) saturate(1.4);
  padding-block:.7rem;
  box-shadow:0 1px 0 var(--line);
}
.topbar__in{ display:flex; align-items:center; justify-content:space-between; gap:1.5rem; }

/* Начертание в шапке. Плотный круглый бейдж нечитаем в размере меню —
   поэтому здесь текстовый знак, а сам бейдж живёт крупно в герое и подвале. */
.mark{ display:flex; align-items:baseline; gap:.42rem; flex:none; }
.mark__word{
  font-family:var(--display); font-size:1.5rem; font-weight:600;
  letter-spacing:.02em; line-height:1; text-transform:uppercase;
}
.mark__ya{
  font-family:var(--display); font-size:1.5rem; font-weight:600; line-height:1;
  color:var(--yellow); text-transform:uppercase;
}
.mark__sub{
  display:block; font-family:var(--body); font-size:.53rem; font-weight:600;
  letter-spacing:.26em; text-transform:uppercase; color:var(--muted);
  margin-top:.28rem;
}

.nav{ display:flex; align-items:center; gap:2rem; }
.nav__list{ display:flex; align-items:center; gap:1.75rem; }
.nav__link{
  font-size:.78rem; font-weight:500; letter-spacing:.05em;
  color:var(--muted); position:relative; padding-block:.35rem;
  transition:color .35s var(--ease);
}
.nav__link::after{
  content:''; position:absolute; left:0; bottom:0; height:1px; width:100%;
  background:var(--magenta); transform:scaleX(0); transform-origin:right;
  transition:transform .4s var(--ease-out);
}
.nav__link:hover, .nav__link[aria-current="page"]{ color:var(--cream); }
.nav__link:hover::after, .nav__link[aria-current="page"]::after{ transform:scaleX(1); transform-origin:left; }

.topbar__actions{ display:flex; align-items:center; gap:1rem; }

/* Переключатель языка */
.lang{ display:flex; align-items:center; gap:.3rem; font-size:.72rem; font-weight:600; letter-spacing:.08em; }
.lang__btn{
  padding:.3rem .45rem; color:var(--faint); text-transform:uppercase;
  transition:color .3s var(--ease);
}
.lang__btn:hover{ color:var(--cream); }
.lang__btn[aria-pressed="true"]{ color:var(--yellow); }
.lang__sep{ color:var(--line-strong); }

/* Бургер */
.burger{ display:none; width:44px; height:44px; position:relative; flex:none; margin-right:-10px; }
.burger span{
  position:absolute; left:11px; width:22px; height:1.5px; background:var(--cream);
  transition:transform .45s var(--ease-out), opacity .25s var(--ease);
}
.burger span:nth-child(1){ top:17px; }
.burger span:nth-child(2){ top:23px; }
.burger span:nth-child(3){ top:29px; }
.burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

/* Мобильное меню — полноэкранное, ничего не спрятано под hover */
.menu{
  position:fixed; inset:0; z-index:99; background:var(--ink);
  display:flex; flex-direction:column; justify-content:center;
  padding:6rem var(--gutter) 3rem;
  opacity:0; visibility:hidden; transition:opacity .45s var(--ease), visibility .45s;
}
.menu[data-open="true"]{ opacity:1; visibility:visible; }
.menu__list{ display:flex; flex-direction:column; gap:.35rem; }
.menu__link{
  font-family:var(--display); font-size:clamp(2rem,9vw,3rem); font-weight:300;
  line-height:1.25; display:block; padding-block:.2rem;
  opacity:0; transform:translateY(18px);
}
.menu[data-open="true"] .menu__link{
  opacity:1; transform:none;
  transition:opacity .5s var(--ease-out), transform .5s var(--ease-out);
  transition-delay:calc(.08s * var(--i,0) + .12s);
}
.menu__link .num{
  font-family:var(--body); font-size:.62rem; font-weight:600; letter-spacing:.2em;
  color:var(--magenta); vertical-align:super; margin-right:.6rem;
}
.menu__foot{ margin-top:3rem; padding-top:2rem; border-top:1px solid var(--line); }

/* --- 7. Изображения: три слоя -------------------------------------------- */
/* Слот всегда несёт брендовый градиент. Даже пока фото грузится — виден бренд,
   а не белый прямоугольник. Реальное фото включается копированием файла. */
.ph{
  position:relative; overflow:hidden; background:var(--ink-raised);
  background-image:
    radial-gradient(120% 90% at 15% 0%, rgba(236,0,140,.3), transparent 60%),
    linear-gradient(150deg, #1a1620 0%, #0e0d10 55%, #17111a 100%);
}
.ph::after{ /* подпись, видна только если оба слоя фото недоступны */
  content:attr(data-label); position:absolute; inset:auto 0 0 0; padding:1rem 1.15rem;
  font-family:var(--display); font-size:1.1rem; color:var(--faint);
  opacity:0; transition:opacity .4s var(--ease);
}
.ph--empty::after{ opacity:1; }
.ph img{
  width:100%; height:100%; object-fit:cover; position:relative; z-index:1;
  transition:transform 1.1s var(--ease-out);
}
.ph--empty img{ display:none; }
.ph--ratio-4x3{ aspect-ratio:4/3; }
.ph--ratio-3x2{ aspect-ratio:3/2; }
.ph--ratio-1x1{ aspect-ratio:1/1; }
.ph--ratio-4x5{ aspect-ratio:4/5; }
.ph--ratio-3x4{ aspect-ratio:3/4; }
.ph--ratio-16x9{ aspect-ratio:16/9; }

/* Ken-burns при наведении на карточку */
.ph--zoom img{ transition:transform 1.3s var(--ease-out); }
.card:hover .ph--zoom img,
.trip:hover .ph--zoom img{ transform:scale(1.06); }

/* --- 8. Карточки --------------------------------------------------------- */
.grid{ display:grid; gap:clamp(1rem,2.4vw,1.75rem); }
.grid--2{ grid-template-columns:repeat(2,1fr); }
.grid--3{ grid-template-columns:repeat(3,1fr); }
.grid--4{ grid-template-columns:repeat(4,1fr); }

.card{
  position:relative; padding:2.1rem 1.9rem 2.3rem;
  background:var(--ink-raised); border-radius:var(--radius);
  box-shadow:inset 0 0 0 1px var(--line);
  transition:transform .5s var(--ease-out), box-shadow .5s var(--ease-out), background .5s var(--ease);
  overflow:hidden; height:100%;
}
.card::before{ /* магента-кромка сверху, проявляется при наведении */
  content:''; position:absolute; top:0; left:0; right:0; height:1px;
  background:linear-gradient(90deg,transparent,var(--magenta),transparent);
  transform:scaleX(0); transition:transform .55s var(--ease-out);
}
.card:hover{
  transform:translateY(-5px);
  background:var(--ink-elevated);
  box-shadow:inset 0 0 0 1px var(--line-strong), 0 24px 48px -28px rgba(0,0,0,.9);
}
.card:hover::before{ transform:scaleX(1); }
.card__icon{
  width:34px; height:34px; margin-bottom:1.4rem; color:var(--magenta);
  transition:transform .5s var(--ease-out), color .4s var(--ease);
}
.card:hover .card__icon{ transform:translateY(-3px) scale(1.06); }
.card__title{ margin-bottom:.7rem; }
.card__text{ color:var(--muted); font-size:.965rem; line-height:1.7; }
.card__num{
  position:absolute; top:1.5rem; right:1.7rem;
  font-family:var(--display); font-size:2.6rem; font-weight:300; line-height:1;
  color:transparent; -webkit-text-stroke:1px var(--line);
  transition:-webkit-text-stroke-color .5s var(--ease);
}
.card:hover .card__num{ -webkit-text-stroke-color:var(--magenta-glow); }

/* --- 9. Герой ------------------------------------------------------------ */
.hero{
  position:relative; min-height:100svh; display:flex; align-items:center;
  padding-block:8rem 4rem; overflow:hidden;
}
.hero__bg{ position:absolute; inset:0; z-index:0; }
.hero__bg img{ width:100%; height:100%; object-fit:cover; opacity:.32; }
.hero__veil{ /* читаемость текста поверх фото */
  position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(180deg, rgba(11,10,12,.86) 0%, rgba(11,10,12,.62) 45%, var(--ink) 100%),
    radial-gradient(90% 70% at 78% 22%, rgba(236,0,140,.2), transparent 62%);
}
/* Магента-свечение за курсором — только там, где есть настоящий hover */
.hero__glow{ position:absolute; inset:0; z-index:1; pointer-events:none; opacity:0; }
@media (hover:hover) and (pointer:fine){
  .hero__glow{
    opacity:1;
    background:radial-gradient(340px circle at var(--mx,50%) var(--my,50%), var(--magenta-soft), transparent 70%);
    transition:background .18s linear;
  }
}
.hero__in{ position:relative; z-index:2; }
.hero__grid{ display:grid; grid-template-columns:1.35fr .65fr; gap:3rem; align-items:center; }

.hero__title{
  font-family:var(--display); font-weight:300;
  font-size:clamp(3.1rem,1.4rem + 8.4vw,8.5rem);
  line-height:.9; letter-spacing:-.022em; margin-block:1.6rem 1.9rem;
}
.hero__title .line{ display:block; overflow:hidden;
  padding-block:.08em .14em; margin-block:-.08em -.14em; }
.hero__title .line > span{ display:block; }
.hero__sub{ max-width:34ch; color:var(--muted); font-size:clamp(1.05rem,.98rem + .42vw,1.28rem); line-height:1.68; }
.hero__cta{ display:flex; flex-wrap:wrap; gap:.9rem; margin-top:2.4rem; }

/* Сигнатура №3: печать клуба */
.seal{ position:relative; width:min(100%,320px); margin-inline:auto; aspect-ratio:1; }
/* Логотип — квадратный JPEG без прозрачности. Обрезаем круг здесь, чтобы
   вокруг печати не проступал тёмный квадрат, и светим через box-shadow:
   он, в отличие от drop-shadow, повторяет скруглённую форму. */
.seal__badge{
  width:100%; height:100%; object-fit:cover;
  border-radius:50%;
  box-shadow:0 24px 60px -12px rgba(236,0,140,.45);
}
/* Кольцо с надписью нужно только запасному знаку: в настоящем логотипе
   «Поддержка · Вдохновение · Развитие» уже написано по нижнему краю,
   и второй раз по кругу — это лишнее. */
.seal__ring{ position:absolute; inset:-14%; animation:spin 44s linear infinite; }
.seal__ring{ display:none; }
/* Кольцо с надписью и текстовый знак нужны только тогда, когда файл
   логотипа недоступен. При обычной загрузке их не видно. */
.seal[data-fallback="true"] .seal__ring{ display:block; }
.seal[data-fallback="true"] .seal__fallback{ display:flex; }
.seal__ring text{
  font-family:var(--body); font-size:7.2px; font-weight:600;
  letter-spacing:.34em; text-transform:uppercase; fill:var(--faint);
}
/* Запасное начертание — на случай, если файл логотипа недоступен */
.seal__fallback{
  position:absolute; inset:8%; display:none; flex-direction:column;
  align-items:center; justify-content:center; text-align:center;
  border-radius:50%; background:var(--ink-raised);
  box-shadow:inset 0 0 0 1px var(--line-strong), 0 24px 60px -20px rgba(236,0,140,.4);
}
.seal__fallback .w{ font-family:var(--display); font-size:2.3rem; font-weight:600; line-height:.95; text-transform:uppercase; }
.seal__fallback .y{ font-family:var(--display); font-size:3.4rem; font-weight:600; line-height:.9; color:var(--yellow); }
.seal__fallback .t{ font-size:.5rem; font-weight:600; letter-spacing:.24em; text-transform:uppercase; color:var(--muted); margin-top:.5rem; }

.scroll-hint{
  position:absolute; left:50%; bottom:2rem; z-index:2; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:.7rem;
  font-size:.6rem; font-weight:600; letter-spacing:.24em; text-transform:uppercase; color:var(--faint);
}
.scroll-hint__line{ width:1px; height:44px; background:linear-gradient(var(--magenta),transparent); }

/* --- 10. Полосы значений ------------------------------------------------- */
.marquee{ overflow:hidden; border-block:1px solid var(--line); padding-block:1.15rem; }
.marquee__track{ display:flex; gap:3.5rem; width:max-content; animation:marquee 42s linear infinite; }
.marquee__item{
  display:flex; align-items:center; gap:3.5rem;
  font-family:var(--display); font-size:1.5rem; font-weight:300; color:var(--muted); white-space:nowrap;
}
.marquee__item::after{ content:'◆'; font-size:.4rem; color:var(--magenta); font-family:var(--body); }
.marquee:hover .marquee__track{ animation-play-state:paused; }

/* --- 11. Неделя в клубе (интерактив) ------------------------------------- */
.week{ display:grid; grid-template-columns:minmax(200px,282px) 1fr; gap:clamp(1.5rem,4vw,3.5rem); align-items:start; }
.week__days{ display:flex; flex-direction:column; gap:1px; background:var(--line); border-block:1px solid var(--line); }
.week__day{
  display:flex; align-items:center; gap:.9rem; width:100%; text-align:left;
  padding:1.05rem 1.1rem; background:var(--ink); color:var(--muted);
  font-size:.86rem; font-weight:500; position:relative;
  transition:background .4s var(--ease), color .4s var(--ease), padding-left .4s var(--ease-out);
}
.week__day::before{
  content:''; position:absolute; left:0; top:0; bottom:0; width:2px;
  background:var(--magenta); transform:scaleY(0); transition:transform .4s var(--ease-out);
}
.week__day:hover{ background:var(--ink-raised); color:var(--cream); }
.week__day[aria-selected="true"]{ background:var(--ink-raised); color:var(--cream); padding-left:1.5rem; }
.week__day[aria-selected="true"]::before{ transform:scaleY(1); }
.week__day .dot{ width:5px; height:5px; border-radius:50%; background:var(--line-strong); flex:none; transition:background .4s var(--ease); }
.week__day[aria-selected="true"] .dot{ background:var(--yellow); }

.week__panel{ min-height:260px; position:relative; }
.week__pane{ display:none; }
.week__pane[data-active="true"]{ display:block; animation:paneIn .55s var(--ease-out) both; }
.week__pane .num{
  font-family:var(--display); font-size:clamp(3rem,7vw,5rem); font-weight:300; line-height:1;
  color:transparent; -webkit-text-stroke:1px var(--line-strong); display:block; margin-bottom:.5rem;
}
.week__pane .tags{ display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1.6rem; }

.tag{
  font-size:.68rem; font-weight:500; letter-spacing:.06em;
  padding:.42rem .82rem; border-radius:100px; color:var(--muted);
  box-shadow:inset 0 0 0 1px var(--line);
}
.tag--brand{ color:var(--magenta); box-shadow:inset 0 0 0 1px rgba(236,0,140,.4); }

/* --- 12. Поездки --------------------------------------------------------- */
.trip{
  display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);
  gap:clamp(1.5rem,4vw,3.5rem); align-items:start;
  padding-block:clamp(2.5rem,6vw,4.5rem); border-top:1px solid var(--line);
}
/* У поездки с подробной программой текстовая колонка намного выше фото.
   Прижимаем фото к верху и делаем липким — оно сопровождает чтение,
   вместо того чтобы висеть по центру пустой колонки. */
.trip__media{ position:sticky; top:90px; }
.trip:last-child{ border-bottom:1px solid var(--line); }
.trip--flip .trip__media{ order:2; }
.trip__meta{ display:flex; flex-wrap:wrap; gap:.6rem; margin-bottom:1.4rem; }
.trip__price{
  font-family:var(--display); font-size:clamp(1.9rem,1.5rem + 1.6vw,2.9rem);
  font-weight:300; line-height:1; color:var(--cream);
}
.trip__price small{ font-family:var(--body); font-size:.72rem; font-weight:500; letter-spacing:.09em; text-transform:uppercase; color:var(--faint); display:block; margin-top:.5rem; }
.trip__inc{ display:grid; gap:.6rem; margin:1.7rem 0; }
.trip__inc li{ display:flex; gap:.75rem; font-size:.93rem; color:var(--muted); line-height:1.55; }
.trip__inc svg{ flex:none; width:15px; height:15px; margin-top:.42rem; color:var(--magenta); }
.trip__foot{ display:flex; flex-wrap:wrap; align-items:center; gap:1.4rem; margin-top:1.9rem; }

/* Программа по дням */
.days{ margin-top:1.7rem; border-top:1px solid var(--line); }
.days__row{ display:grid; grid-template-columns:auto 1fr; gap:1.1rem; padding-block:.85rem; border-bottom:1px solid var(--line); }
.days__n{ font-size:.68rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--magenta); padding-top:.22rem; }
.days__t{ font-size:.93rem; color:var(--muted); line-height:1.6; }

.badge{
  display:inline-flex; align-items:center; gap:.42rem;
  font-size:.63rem; font-weight:600; letter-spacing:.15em; text-transform:uppercase;
  padding:.4rem .78rem; border-radius:100px;
}
.badge--open{ color:var(--yellow); box-shadow:inset 0 0 0 1px rgba(255,229,0,.34); }
.badge--soon{ color:var(--magenta); box-shadow:inset 0 0 0 1px rgba(236,0,140,.4); }
.badge--past{ color:var(--faint); box-shadow:inset 0 0 0 1px var(--line); }

/* --- 13. События --------------------------------------------------------- */
.filters{ display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:2.6rem; }
.filter{
  font-size:.74rem; font-weight:500; letter-spacing:.06em;
  padding:.55rem 1.1rem; border-radius:100px; color:var(--muted);
  box-shadow:inset 0 0 0 1px var(--line); transition:all .35s var(--ease);
}
.filter:hover{ color:var(--cream); box-shadow:inset 0 0 0 1px var(--line-strong); }
.filter[aria-pressed="true"]{ color:var(--ink); background:var(--cream); box-shadow:none; }

.event{
  display:grid; grid-template-columns:auto 1fr auto; gap:clamp(1rem,3vw,2.4rem);
  align-items:center; padding-block:1.7rem; border-bottom:1px solid var(--line);
  transition:background .4s var(--ease), padding-inline .4s var(--ease-out);
}
.event:hover{ background:var(--ink-raised); padding-inline:1.1rem; }
.event__date{ text-align:center; min-width:66px; }
.event__d{ font-family:var(--display); font-size:2.4rem; font-weight:300; line-height:1; display:block; }
.event__m{ font-size:.63rem; font-weight:600; letter-spacing:.17em; text-transform:uppercase; color:var(--magenta); }
.event__where{ display:flex; flex-wrap:wrap; gap:.5rem 1.1rem; margin-top:.5rem; font-size:.83rem; color:var(--faint); }
.event__where span{ display:flex; align-items:center; gap:.42rem; }
.event__go{ flex:none; }
.event[hidden]{ display:none; }

/* --- 14. Галерея --------------------------------------------------------- */
.gallery{ columns:3; column-gap:clamp(.6rem,1.4vw,1rem); }
.gallery__item{ break-inside:avoid; margin-bottom:clamp(.6rem,1.4vw,1rem); position:relative; cursor:zoom-in; display:block; width:100%; padding:0; }
.gallery__item .ph{ border-radius:var(--radius); }
.gallery__item::after{
  content:''; position:absolute; inset:0; z-index:2; border-radius:var(--radius);
  background:linear-gradient(180deg,transparent 55%,rgba(11,10,12,.75));
  opacity:0; transition:opacity .45s var(--ease);
}
.gallery__item:hover::after{ opacity:1; }
.gallery__cap{
  position:absolute; left:1rem; right:1rem; bottom:.9rem; z-index:3; text-align:left;
  font-size:.8rem; color:var(--cream); opacity:0; transform:translateY(6px);
  transition:opacity .45s var(--ease), transform .45s var(--ease-out);
}
.gallery__item:hover .gallery__cap{ opacity:1; transform:none; }

.lightbox{
  position:fixed; inset:0; z-index:200; background:rgba(6,5,7,.96);
  display:flex; align-items:center; justify-content:center; padding:clamp(1rem,5vw,4rem);
  opacity:0; visibility:hidden; transition:opacity .4s var(--ease), visibility .4s;
}
.lightbox[data-open="true"]{ opacity:1; visibility:visible; }
.lightbox img{ max-width:100%; max-height:80vh; object-fit:contain; border-radius:var(--radius); }
.lightbox__cap{ position:absolute; left:0; right:0; bottom:clamp(1rem,4vw,2.4rem); text-align:center; color:var(--muted); font-size:.88rem; padding-inline:1rem; }
.lightbox__x, .lightbox__nav{
  position:absolute; width:52px; height:52px; display:flex; align-items:center; justify-content:center;
  color:var(--cream); border-radius:50%; transition:background .3s var(--ease);
}
.lightbox__x{ top:clamp(1rem,3vw,2rem); right:clamp(1rem,3vw,2rem); }
.lightbox__nav{ top:50%; transform:translateY(-50%); }
.lightbox__nav--prev{ left:clamp(.5rem,2vw,2rem); }
.lightbox__nav--next{ right:clamp(.5rem,2vw,2rem); }
.lightbox__x:hover, .lightbox__nav:hover{ background:rgba(245,241,236,.1); }

/* --- 15. Отзывы ---------------------------------------------------------- */
.review{
  padding:2.3rem 2rem; background:var(--ink-raised); border-radius:var(--radius);
  box-shadow:inset 0 0 0 1px var(--line); height:100%;
  display:flex; flex-direction:column; gap:1.5rem;
  transition:transform .5s var(--ease-out), box-shadow .5s var(--ease-out);
}
.review:hover{ transform:translateY(-4px); box-shadow:inset 0 0 0 1px var(--line-strong); }
.review__quote{ font-family:var(--display); font-size:1.22rem; font-style:italic; line-height:1.55; color:var(--cream); flex:1; }
.review__mark{ font-family:var(--display); font-size:3.4rem; line-height:.6; color:var(--magenta); opacity:.5; }
.review__who{ display:flex; align-items:center; gap:.95rem; }
.review__ph{ width:48px; height:48px; border-radius:50%; flex:none; }
.review__name{ font-size:.9rem; font-weight:600; }
.review__from{ font-size:.78rem; color:var(--faint); }

/* --- 16. FAQ ------------------------------------------------------------- */
.faq__item{ border-bottom:1px solid var(--line); }
.faq__q{
  display:flex; align-items:center; justify-content:space-between; gap:1.5rem;
  width:100%; text-align:left; padding:1.5rem 0;
  font-family:var(--display); font-size:clamp(1.15rem,1rem + .55vw,1.5rem); font-weight:400;
  transition:color .35s var(--ease);
}
.faq__q:hover{ color:var(--magenta); }
.faq__sign{ position:relative; width:16px; height:16px; flex:none; }
.faq__sign::before, .faq__sign::after{
  content:''; position:absolute; background:var(--magenta); transition:transform .45s var(--ease-out);
}
.faq__sign::before{ top:7.5px; left:0; width:16px; height:1.5px; }
.faq__sign::after{ left:7.5px; top:0; width:1.5px; height:16px; }
.faq__q[aria-expanded="true"] .faq__sign::after{ transform:scaleY(0); }
.faq__a{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .5s var(--ease-out); }
.faq__q[aria-expanded="true"] + .faq__a{ grid-template-rows:1fr; }
.faq__a > div{ overflow:hidden; }
.faq__a p{ color:var(--muted); padding-bottom:1.6rem; max-width:62ch; }

/* --- 17. Партнёры -------------------------------------------------------- */
.partner{
  display:flex; align-items:center; justify-content:center; text-align:center;
  min-height:118px; padding:1.5rem 1.2rem; background:var(--ink-raised);
  border-radius:var(--radius); box-shadow:inset 0 0 0 1px var(--line);
  font-family:var(--display); font-size:1.15rem; color:var(--muted);
  transition:all .45s var(--ease-out);
}
.partner:hover{ color:var(--cream); box-shadow:inset 0 0 0 1px var(--magenta); transform:translateY(-3px); }
.partner small{ display:block; font-family:var(--body); font-size:.63rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--faint); margin-top:.4rem; }

/* --- 18. Формы ----------------------------------------------------------- */
.form{ display:grid; gap:1.15rem; }
.form__row{ display:grid; grid-template-columns:1fr 1fr; gap:1.15rem; }
.field label{
  display:block; font-size:.68rem; font-weight:600; letter-spacing:.15em;
  text-transform:uppercase; color:var(--faint); margin-bottom:.55rem;
}
.field input, .field textarea, .field select{
  width:100%; padding:.95rem 1.05rem; background:var(--ink-raised);
  border:0; box-shadow:inset 0 0 0 1px var(--line); border-radius:var(--radius);
  font-size:.96rem; transition:box-shadow .35s var(--ease), background .35s var(--ease);
}
.field input::placeholder, .field textarea::placeholder{ color:var(--faint); }
.field input:focus, .field textarea:focus, .field select:focus{
  outline:none; background:var(--ink-elevated); box-shadow:inset 0 0 0 1px var(--magenta);
}
.field textarea{ resize:vertical; min-height:124px; }
.form__note{ font-size:.8rem; color:var(--faint); line-height:1.6; }
.form__status{ font-size:.9rem; padding:.9rem 1.1rem; border-radius:var(--radius); display:none; }
.form__status[data-state="ok"]{ display:block; color:var(--yellow); box-shadow:inset 0 0 0 1px rgba(255,229,0,.3); }
.form__status[data-state="err"]{ display:block; color:var(--magenta); box-shadow:inset 0 0 0 1px rgba(236,0,140,.4); }

/* --- 19. Финальный призыв ------------------------------------------------ */
.cta{ position:relative; overflow:hidden; text-align:center; padding-block:clamp(5rem,13vh,9rem); }
.cta::before{
  content:''; position:absolute; inset:0;
  background:radial-gradient(70% 100% at 50% 100%, rgba(236,0,140,.24), transparent 68%);
}
.cta__in{ position:relative; z-index:1; }

/* --- 20. Подвал ---------------------------------------------------------- */
.footer{ border-top:1px solid var(--line); padding-block:clamp(3rem,7vh,5rem) 2rem; }
.footer__top{ display:grid; grid-template-columns:1.3fr 1fr 1fr 1.2fr; gap:2.5rem; }
.footer__h{ font-size:.68rem; font-weight:600; letter-spacing:.17em; text-transform:uppercase; color:var(--faint); margin-bottom:1.1rem; }
.footer__list{ display:grid; gap:.68rem; }
.footer__list a{ font-size:.9rem; color:var(--muted); transition:color .3s var(--ease); }
.footer__list a:hover{ color:var(--cream); }
.footer__bottom{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1rem;
  margin-top:3.5rem; padding-top:1.8rem; border-top:1px solid var(--line);
  font-size:.78rem; color:var(--faint);
}
.social{ display:flex; gap:.6rem; }
.social a{
  width:40px; height:40px; display:flex; align-items:center; justify-content:center;
  border-radius:50%; color:var(--muted); box-shadow:inset 0 0 0 1px var(--line);
  transition:all .4s var(--ease-out);
}
.social a:hover{ color:#fff; background:var(--magenta); box-shadow:none; transform:translateY(-2px); }
.social svg{ width:17px; height:17px; }

/* Плавающая кнопка связи на мобильном.
   Прячется, когда форма заявки уже на экране — иначе она закрывает
   собой те самые поля, которые предлагает заполнить. */
.fab{
  position:fixed; right:.85rem; bottom:.85rem; z-index:90; display:none;
  align-items:center; gap:.6rem; padding:.8rem 1.15rem; border-radius:100px;
  background:var(--magenta); color:#fff; font-size:.72rem; font-weight:600;
  letter-spacing:.07em; text-transform:uppercase; white-space:nowrap;
  box-shadow:0 12px 34px -10px var(--magenta-glow);
  transition:opacity .35s var(--ease), transform .35s var(--ease-out);
}
.fab[data-hide="true"]{ opacity:0; transform:translateY(12px); pointer-events:none; }

/* --- 21. Адаптив --------------------------------------------------------- */
@media (max-width:1080px){
  .footer__top{ grid-template-columns:1fr 1fr; gap:2rem; }
}
@media (max-width:960px){
  .nav__list{ display:none; }
  .burger{ display:block; }
  /* Роль главной кнопки на мобильном берут меню и плавающая кнопка внизу */
  .topbar__actions > .btn{ display:none; }
  .topbar__in{ gap:.75rem; }
  .hero__grid{ grid-template-columns:1fr; gap:2.5rem; }
  .seal{ width:min(70%,240px); }
  .grid--4{ grid-template-columns:repeat(2,1fr); }
  .grid--3{ grid-template-columns:repeat(2,1fr); }
  .trip{ grid-template-columns:1fr; }
  .trip__media{ position:static; }
  .trip--flip .trip__media{ order:0; }
  .week{ grid-template-columns:1fr; }
  .week__days{ flex-direction:row; overflow-x:auto; border-inline:0; scrollbar-width:none; }
  .week__days::-webkit-scrollbar{ display:none; }
  .week__day{ flex:none; padding:.85rem 1.1rem; }
  .week__day[aria-selected="true"]{ padding-left:1.1rem; }
  .week__day::before{ top:auto; bottom:0; left:0; right:0; width:auto; height:2px; transform:scaleX(0); }
  .week__day[aria-selected="true"]::before{ transform:scaleX(1); }
  .gallery{ columns:2; }
  .fab{ display:flex; }
}
@media (max-width:640px){
  .grid--2, .grid--3, .grid--4{ grid-template-columns:1fr; }
  .form__row{ grid-template-columns:1fr; }
  .footer__top{ grid-template-columns:1fr; }
  .event{ grid-template-columns:auto 1fr; row-gap:1.1rem; }
  .event__go{ grid-column:1/-1; }
  .hero{ min-height:auto; padding-block:7rem 3.5rem; }
  .scroll-hint{ display:none; }
  .gallery{ columns:1; }
  .marquee__item{ font-size:1.2rem; gap:2rem; }
  .marquee__track{ gap:2rem; }
}
@media (max-width:380px){
  .mark__word,.mark__ya{ font-size:1.28rem; }
  .fab{ font-size:.66rem; padding:.72rem .95rem; }
}

/* --- 22. Печать ---------------------------------------------------------- */
@media print{
  .topbar,.progress,.fab,.menu,.scroll-hint,.lightbox{ display:none !important; }
  body{ background:#fff; color:#000; }
}
