/* ============ ROOT ============ */
@font-face {
  font-family: 'Vezitsa';
  src: url('../fonts/vezitsa.ttf') format('truetype');
  font-display: swap;
  font-weight: 400;
}

:root {
  /* paper / light theme */
  --paper:        #efe3cc;
  --paper-warm:   #f4ead4;
  --paper-deep:   #e3d4b3;
  --paper-edge:   #d8c8a8;

  /* red — главный акцент (домен) */
  --red:          #a1191b;
  --red-deep:     #7a1216;
  --red-soft:     #b22a2a;

  /* gold / ochre */
  --gold:         #c9a24b;
  --gold-deep:    #a07d2a;

  /* sepia / ink */
  --ink:          #3e2a1e;
  --ink-soft:     #5b3a29;
  --ink-mute:     rgba(62,42,30,.62);
  --ink-line:     rgba(62,42,30,.18);
  --ink-line-2:   rgba(62,42,30,.32);

  /* on-red text */
  --cream:        #f4ead4;
  --cream-mute:   rgba(244,234,212,.7);

  /* legacy oliva-accent точечно */
  --olive:        #6f6a46;

  --font-display: 'Vezitsa', 'Times New Roman', serif;
  --font-body:    'Inter', system-ui, -apple-system, sans-serif;
  --font-hand:    'Caveat', cursive;

  --container: 1280px;
  --pad-x: clamp(20px, 4vw, 64px);
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.55;
  font-weight: 400;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

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

/* Бумажная зернистость поверх — текстура небелёного льна */
body::before {
  content: '';
  position: fixed; inset: 0;
  pointer-events: none;
  z-index: 1;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='320' height='320'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.35  0 0 0 0 0.25  0 0 0 0 0.15  0 0 0 0.15 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  opacity: .55;
  mix-blend-mode: multiply;
}

/* ============ TYPOGRAPHY ============ */
.font-display { font-family: var(--font-display); letter-spacing: .02em; }
.font-hand { font-family: var(--font-hand); }
h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 400;
  line-height: 1.0;
  letter-spacing: .015em;
  color: var(--ink);
}
.h-display {
  font-size: clamp(3.4rem, 12vw, 12rem);
  line-height: .88;
}
.h-section {
  font-size: clamp(2.4rem, 5.6vw, 5rem);
  line-height: .98;
}
.lede {
  font-size: clamp(1rem, 1.1vw, 1.12rem);
  color: var(--ink-mute);
  max-width: 56ch;
  line-height: 1.65;
}

/* eyebrow / step labels */
.eyebrow {
  font-family: var(--font-body);
  text-transform: uppercase;
  letter-spacing: .22em;
  font-size: .72rem;
  font-weight: 600;
  color: var(--red);
}
.step {
  display: inline-block;
  font-family: var(--font-body);
  text-transform: uppercase;
  letter-spacing: .18em;
  font-size: .68rem;
  font-weight: 600;
  color: var(--ink-soft);
  margin-bottom: 14px;
}
.step b { color: var(--red); font-weight: 700; }
.hand {
  font-family: var(--font-hand);
  color: var(--red);
  font-size: 1.6rem;
  line-height: 1;
}
.hand-note {
  font-family: var(--font-hand);
  font-size: 1.4rem;
  color: var(--red);
  display: inline-block;
  transform: rotate(-3deg);
}

::selection { background: var(--red); color: var(--paper); }

/* ============ LAYOUT ============ */
.container {
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--pad-x);
  position: relative;
  z-index: 2;
}
section { position: relative; z-index: 2; }

/* ============ COMMON DECOR ============ */

/* Восьмиконечная звезда (как славянская снежинка из «Кокошника») */
.star8 {
  display: inline-block;
  width: 30px; height: 30px;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'><path d='M20 1 L22 12 L31 6 L26 16 L39 18 L26 22 L31 32 L22 28 L20 39 L18 28 L9 32 L14 22 L1 18 L14 16 L9 6 L18 12 Z' fill='black'/><circle cx='20' cy='20' r='2.5' fill='black'/></svg>") center/contain no-repeat;
          mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'><path d='M20 1 L22 12 L31 6 L26 16 L39 18 L26 22 L31 32 L22 28 L20 39 L18 28 L9 32 L14 22 L1 18 L14 16 L9 6 L18 12 Z' fill='black'/><circle cx='20' cy='20' r='2.5' fill='black'/></svg>") center/contain no-repeat;
}

/* Жемчужина — каплями на карточках */
.pearl {
  position: absolute;
  width: 18px; height: 18px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #fff 0%, #f4e9d3 35%, #c9a880 70%, #8a6b48 100%);
  box-shadow:
    0 2px 4px rgba(62,42,30,.35),
    inset -2px -2px 4px rgba(180,140,100,.4),
    inset 2px 2px 3px rgba(255,255,255,.5);
  pointer-events: none;
  z-index: 5;
}
.pearl--sm { width: 12px; height: 12px; }
.pearl--lg { width: 24px; height: 24px; }

/* Скотч — наклеенная полоска */
.tape {
  position: absolute;
  width: 110px; height: 28px;
  background: linear-gradient(180deg,
    rgba(201,162,75,.25) 0%,
    rgba(201,162,75,.42) 50%,
    rgba(201,162,75,.25) 100%);
  border-left: 1px dashed rgba(201,162,75,.35);
  border-right: 1px dashed rgba(201,162,75,.35);
  box-shadow: 0 4px 10px rgba(62,42,30,.18);
  z-index: 4;
  pointer-events: none;
}
.tape--tl { top: -10px; left: -22px; transform: rotate(-32deg); }
.tape--tr { top: -10px; right: -22px; transform: rotate(32deg); }
.tape--bl { bottom: -10px; left: -22px; transform: rotate(32deg); }
.tape--br { bottom: -10px; right: -22px; transform: rotate(-32deg); }

/* Прищепка */
.clip {
  position: absolute;
  top: -28px; left: 50%;
  transform: translateX(-50%) rotate(-6deg);
  width: 18px; height: 38px;
  z-index: 5;
  filter: drop-shadow(0 4px 4px rgba(62,42,30,.35));
}
.clip::before, .clip::after {
  content: '';
  position: absolute;
  width: 8px; height: 36px;
  border-radius: 1px;
  background: linear-gradient(180deg, #c9a172 0%, #8a6a47 60%, #5b3a29 100%);
  top: 0;
}
.clip::before { left: 1px; }
.clip::after { right: 1px; }
.clip i {
  position: absolute;
  top: 8px; left: 50%;
  transform: translateX(-50%);
  width: 4px; height: 4px;
  border-radius: 50%;
  background: #5b3a29;
  z-index: 2;
  box-shadow: 0 12px 0 #5b3a29;
}

/* Узор-разделитель (как в "Русском коде") */
.ornament-row {
  display: flex; align-items: center; justify-content: center; gap: 16px;
  color: var(--red);
  margin: 18px 0;
}
.ornament-row::before, .ornament-row::after {
  content: '';
  flex: 1;
  max-width: 100px;
  height: 14px;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 14' preserveAspectRatio='none'><path d='M0 7 L20 7 M30 7 L40 7 M50 7 L70 7 M80 7 L90 7 M100 7 L120 7' stroke='black' stroke-width='1.2' fill='none'/><circle cx='25' cy='7' r='1.6' fill='black'/><circle cx='45' cy='7' r='1.6' fill='black'/><circle cx='75' cy='7' r='1.6' fill='black'/><circle cx='95' cy='7' r='1.6' fill='black'/><path d='M58 3 L62 7 L58 11 L54 7 Z' fill='black'/></svg>") center/contain no-repeat;
          mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 14' preserveAspectRatio='none'><path d='M0 7 L20 7 M30 7 L40 7 M50 7 L70 7 M80 7 L90 7 M100 7 L120 7' stroke='black' stroke-width='1.2' fill='none'/><circle cx='25' cy='7' r='1.6' fill='black'/><circle cx='45' cy='7' r='1.6' fill='black'/><circle cx='75' cy='7' r='1.6' fill='black'/><circle cx='95' cy='7' r='1.6' fill='black'/><path d='M58 3 L62 7 L58 11 L54 7 Z' fill='black'/></svg>") center/contain no-repeat;
}

/* Карандашные стрелки */
.pencil-arrow { display: inline-block; color: var(--red); }
.pencil-arrow svg { width: 70px; height: 26px; stroke: currentColor; stroke-width: 1.5; fill: none; }

/* Угловой декор: листья/колосья */
.corner {
  position: absolute;
  pointer-events: none;
  z-index: 2;
  opacity: .85;
}

/* ============ HEADER ============ */
.site-header {
  position: fixed; top: 0; left: 0; right: 0;
  z-index: 50;
  padding: 14px var(--pad-x);
  display: flex; align-items: center; justify-content: space-between;
  background: linear-gradient(to bottom, rgba(161,25,27,.92), rgba(161,25,27,0));
  transition: background .35s ease, padding .35s ease, backdrop-filter .35s;
  color: var(--cream);
}
.site-header.on-light {
  background: linear-gradient(to bottom, rgba(239,227,204,.96), rgba(239,227,204,0));
  color: var(--ink);
}
.site-header.scrolled {
  background: rgba(239,227,204,.94);
  backdrop-filter: blur(14px) saturate(1.1);
  -webkit-backdrop-filter: blur(14px) saturate(1.1);
  padding: 10px var(--pad-x);
  border-bottom: 1px solid var(--ink-line);
  color: var(--ink);
}
.brand {
  display: flex; align-items: center; gap: 12px;
  font-family: var(--font-display);
  font-size: 1.2rem;
  letter-spacing: .04em;
  line-height: 1;
  color: inherit;
}
.brand__mark {
  width: 40px; height: 40px;
  display: flex; align-items: center; justify-content: center;
  border: 1.5px solid currentColor;
  border-radius: 50%;
  font-family: var(--font-display);
  font-size: 1.1rem;
  flex-shrink: 0;
}
.brand__text { display: flex; flex-direction: column; gap: 4px; }
.brand__text small {
  font-family: var(--font-body);
  font-size: .62rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  opacity: .75;
}
.site-nav { display: flex; align-items: center; gap: clamp(14px, 2vw, 28px); }
.site-nav a {
  font-size: .76rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: inherit;
  opacity: .85;
  transition: opacity .25s, color .25s;
}
.site-nav a:hover { opacity: 1; }
.site-nav .phone {
  font-family: var(--font-display);
  font-size: 1.05rem;
  letter-spacing: .04em;
  opacity: 1;
  text-transform: none;
}
.menu-toggle {
  display: none;
  width: 38px; height: 38px;
  border: 1px solid currentColor; border-radius: 50%;
  position: relative;
  color: inherit;
}
.menu-toggle span {
  position: absolute; left: 9px; right: 9px; height: 1.5px;
  background: currentColor;
}
.menu-toggle span:nth-child(1) { top: 14px; }
.menu-toggle span:nth-child(2) { bottom: 14px; }
@media (max-width: 980px) {
  .menu-toggle { display: block; }
  .site-nav {
    position: fixed; inset: 0;
    background: var(--paper);
    color: var(--ink);
    flex-direction: column;
    justify-content: center;
    transform: translateX(100%);
    transition: transform .4s ease;
    gap: 28px;
  }
  .site-nav.open { transform: translateX(0); }
  .site-nav a { font-size: 1rem; }
  .site-nav .phone { font-size: 1.6rem; }
}

/* ============ HERO ============ */
.hero {
  position: relative;
  padding: clamp(110px, 16vh, 180px) var(--pad-x) 0;
  background: var(--red);
  color: var(--cream);
  overflow: hidden;
  isolation: isolate;
}
/* Узор-снежинки на красном фоне */
.hero::before {
  content: '';
  position: absolute; inset: 0;
  background-image:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'><g fill='%237a1216' opacity='0.7'><path d='M80 30 L83 50 L100 40 L94 58 L114 60 L94 64 L100 82 L83 72 L80 92 L77 72 L60 82 L66 64 L46 60 L66 58 L60 40 L77 50 Z'/><circle cx='80' cy='61' r='3.5'/></g><g fill='%237a1216' opacity='0.45'><path d='M30 130 L31.5 138 L38 134 L35 141 L43 142 L35 144 L38 151 L31.5 147 L30 156 L28.5 147 L22 151 L25 144 L17 142 L25 141 L22 134 L28.5 138 Z'/><path d='M130 130 L131.5 138 L138 134 L135 141 L143 142 L135 144 L138 151 L131.5 147 L130 156 L128.5 147 L122 151 L125 144 L117 142 L125 141 L122 134 L128.5 138 Z'/></g></svg>"),
    radial-gradient(ellipse at top, rgba(122,18,22,.4), transparent 70%);
  background-size: 220px 220px, 100% 100%;
  background-repeat: repeat, no-repeat;
  z-index: 0;
  opacity: .85;
}
.hero::after {
  /* лёгкая виньетка снизу для перехода к рваному краю */
  content: '';
  position: absolute; bottom: 0; left: 0; right: 0; height: 60px;
  background: linear-gradient(to bottom, transparent, rgba(122,18,22,.5));
  z-index: 1;
}
.hero__inner { position: relative; z-index: 2; max-width: 1180px; margin: 0 auto; }
.hero__top {
  display: flex; justify-content: space-between; align-items: flex-start;
  margin-bottom: clamp(40px, 8vh, 110px);
  gap: 20px;
  position: relative;
}
.hero__date {
  font-size: .72rem;
  letter-spacing: .25em;
  text-transform: uppercase;
  color: var(--cream-mute);
  border-top: 1px solid rgba(244,234,212,.35);
  padding-top: 12px;
  max-width: 220px;
  line-height: 1.6;
}
.hero__locale {
  text-align: right;
  font-size: .72rem;
  letter-spacing: .25em;
  text-transform: uppercase;
  color: var(--cream-mute);
  border-top: 1px solid rgba(244,234,212,.35);
  padding-top: 12px;
  max-width: 240px;
  line-height: 1.6;
}
.hero__locale strong { color: var(--cream); font-weight: 500; letter-spacing: .12em; }

/* Записка на прищепке в hero */
.hero__pinned {
  position: absolute;
  top: -6px; left: 28%;
  width: 180px;
  background: var(--paper-warm);
  color: var(--ink);
  padding: 16px 18px;
  font-family: var(--font-hand);
  font-size: 1.1rem;
  line-height: 1.25;
  transform: rotate(-3deg);
  box-shadow: 0 18px 30px rgba(62,42,30,.4);
  z-index: 4;
}
.hero__pinned ol {
  list-style: none; counter-reset: pinned;
  padding-left: 18px;
  font-size: 1rem;
}
.hero__pinned ol li {
  counter-increment: pinned;
  position: relative;
  padding: 2px 0;
}
.hero__pinned ol li::before {
  content: counter(pinned) ')';
  position: absolute; left: -18px;
  color: var(--red);
  font-weight: 600;
}
@media (max-width: 900px) { .hero__pinned { display: none; } }

.hero__title-wrap {
  text-align: center;
  position: relative;
}
.hero__title {
  font-family: var(--font-display);
  font-size: clamp(3.2rem, 13vw, 13rem);
  line-height: .86;
  letter-spacing: .005em;
  color: var(--cream);
  text-shadow: 0 4px 30px rgba(62,18,22,.4);
}
.hero__title .line { display: block; }
.hero__title .line--2 { letter-spacing: .04em; }
.hero__title-side {
  display: flex; justify-content: space-between;
  font-family: var(--font-hand);
  color: var(--cream);
  opacity: .9;
  font-size: clamp(1rem, 1.6vw, 1.6rem);
  margin: -6px auto 0;
  max-width: 88%;
  position: relative;
}
.hero__title-side span:first-child { transform: translate(-30px, -10px) rotate(-4deg); }
.hero__title-side span:last-child { transform: translate(30px, 12px) rotate(3deg); text-align: right; }

.hero__center-img {
  position: absolute;
  left: 50%; top: 50%;
  transform: translate(-50%, -42%);
  width: clamp(140px, 18vw, 240px);
  height: auto;
  z-index: 1;
  pointer-events: none;
}

/* Hero фото-блок (главное изображение под заголовком) */
.hero__photo {
  margin: 40px auto 0;
  max-width: 980px;
  position: relative;
  z-index: 2;
}
.hero__photo img {
  width: 100%;
  height: clamp(280px, 50vh, 480px);
  object-fit: cover;
  filter: brightness(.9) saturate(.9);
  position: relative;
  z-index: 2;
}
.hero__photo .tape { z-index: 5; }

.hero__lede {
  margin: 32px auto 0;
  max-width: 580px;
  text-align: center;
  color: var(--cream-mute);
  font-size: clamp(.95rem, 1.05vw, 1.08rem);
  line-height: 1.65;
}
.hero__actions {
  display: flex; gap: 18px; flex-wrap: wrap; justify-content: center;
  margin: 32px 0 110px;
}

/* ============ BUTTONS / TICKETS ============ */
.btn {
  display: inline-flex; align-items: center; gap: 12px;
  padding: 16px 30px;
  font-family: var(--font-body);
  font-size: .76rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .18em;
  transition: transform .25s ease, background .25s, color .25s;
  white-space: nowrap;
  position: relative;
}
.btn--ticket {
  background: var(--paper-warm);
  color: var(--red);
  padding-left: 38px; padding-right: 38px;
  -webkit-mask:
    radial-gradient(8px at 0 50%, transparent 98%, #000) left/100% 100%,
    radial-gradient(8px at 100% 50%, transparent 98%, #000) right/100% 100%;
  mask:
    radial-gradient(8px at 0 50%, transparent 98%, #000) left/100% 100%,
    radial-gradient(8px at 100% 50%, transparent 98%, #000) right/100% 100%;
  -webkit-mask-composite: source-in;
          mask-composite: intersect;
}
.btn--ticket::before, .btn--ticket::after {
  content: ''; position: absolute; top: 50%; transform: translateY(-50%);
  height: 70%;
  border-left: 1px dashed rgba(161,25,27,.4);
}
.btn--ticket::before { left: 22px; }
.btn--ticket::after { right: 22px; }
.btn--ticket:hover { background: var(--red); color: var(--paper); transform: translateY(-2px); }

.btn--ticket-dark {
  background: var(--red);
  color: var(--paper-warm);
  padding-left: 38px; padding-right: 38px;
  -webkit-mask:
    radial-gradient(8px at 0 50%, transparent 98%, #000) left/100% 100%,
    radial-gradient(8px at 100% 50%, transparent 98%, #000) right/100% 100%;
  mask:
    radial-gradient(8px at 0 50%, transparent 98%, #000) left/100% 100%,
    radial-gradient(8px at 100% 50%, transparent 98%, #000) right/100% 100%;
  -webkit-mask-composite: source-in;
          mask-composite: intersect;
}
.btn--ticket-dark::before, .btn--ticket-dark::after {
  content: ''; position: absolute; top: 50%; transform: translateY(-50%);
  height: 70%;
  border-left: 1px dashed rgba(244,234,212,.4);
}
.btn--ticket-dark::before { left: 22px; }
.btn--ticket-dark::after { right: 22px; }
.btn--ticket-dark:hover { background: var(--ink); transform: translateY(-2px); }

.btn--ghost-light {
  background: transparent;
  color: var(--cream);
  border: 1px solid rgba(244,234,212,.5);
  border-radius: 999px;
}
.btn--ghost-light:hover { border-color: var(--cream); }

.btn--ghost-dark {
  background: transparent;
  color: var(--ink);
  border: 1px solid var(--ink-line-2);
  border-radius: 999px;
}
.btn--ghost-dark:hover { border-color: var(--red); color: var(--red); }
.btn .arr { transition: transform .25s; }
.btn:hover .arr { transform: translateX(4px); }

/* ============ TORN EDGES — настоящий рваный край бумаги ============
   Реализация через SVG feTurbulence + feDisplacementMap.
   Цвет фона контейнера = цвет нижней секции, fill SVG = цвет верхней.
   Поверх ложится тонкая светлая каёмка — имитация «обнажённого волокна» бумаги. */
.torn {
  position: relative;
  display: block;
  width: 100%;
  height: 90px;
  margin: -2px 0;
  z-index: 3;
  pointer-events: none;
  overflow: hidden;
}
.torn svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
}
.torn--bg-paper      { background: var(--paper); }
.torn--bg-paper-warm { background: var(--paper-warm); }
.torn--bg-red        { background: var(--red); }

/* Тень над рваным краем (как от лежащего сверху листа) */
.torn--shadow::before {
  content: '';
  position: absolute;
  left: 0; right: 0; top: 0;
  height: 18px;
  background: linear-gradient(to bottom, rgba(62,42,30,.18), transparent);
  pointer-events: none;
  z-index: 1;
}

/* ============ SECTION HEAD ============ */
.section {
  padding: clamp(70px, 11vh, 130px) 0;
  position: relative;
  background: var(--paper);
  overflow: hidden;
}
.section--warm { background: var(--paper-warm); }
.section--red {
  background: var(--red);
  color: var(--cream);
}
.section--red .eyebrow { color: var(--gold); }
.section--red .h-section { color: var(--cream); }
.section--red .lede { color: var(--cream-mute); }

.section-head {
  display: flex; justify-content: space-between; align-items: flex-end;
  gap: 40px;
  margin-bottom: clamp(40px, 6vw, 80px);
}
.section-head .left { max-width: 720px; }
.section-head .left h2 { margin-top: 14px; }
.section-head .right {
  text-align: right;
  color: var(--ink-mute);
  font-size: .92rem;
  line-height: 1.6;
  max-width: 32ch;
}
.section--red .section-head .right { color: var(--cream-mute); }
@media (max-width: 760px) {
  .section-head { flex-direction: column; align-items: flex-start; }
  .section-head .right { text-align: left; }
}

/* ============ MANIFEST ============ */
.manifest {
  position: relative;
}
.manifest .ticker {
  display: flex; overflow: hidden; white-space: nowrap;
  font-family: var(--font-display);
  font-size: clamp(3rem, 7vw, 7rem);
  line-height: 1;
  color: var(--red);
  letter-spacing: .04em;
  margin: 20px 0 60px;
  user-select: none;
}
.ticker__track {
  display: flex; gap: 40px;
  animation: ticker 40s linear infinite;
  padding-right: 40px;
}
.ticker__track .sep { color: var(--gold-deep); font-size: .65em; align-self: center; }
@keyframes ticker { to { transform: translateX(-50%); } }

.manifest__grid {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: clamp(40px, 6vw, 100px);
  align-items: start;
  position: relative;
}
.manifest__lead h2 .mark {
  color: var(--red);
  background: linear-gradient(to bottom, transparent 60%, rgba(201,162,75,.35) 60%);
  padding: 0 6px;
}
.manifest__lead p {
  margin-top: 28px;
  color: var(--ink-soft);
  font-size: 1.05rem;
  max-width: 50ch;
  line-height: 1.7;
}
.manifest__lead .hand {
  display: inline-flex; align-items: center; gap: 14px;
  margin-top: 22px;
  font-size: 1.8rem;
  color: var(--red);
}
.manifest__lead .hand svg { width: 50px; height: 20px; }

.pillars { display: grid; gap: 4px; }
.pillar {
  display: grid;
  grid-template-columns: 70px 1fr;
  gap: 22px;
  padding: 22px 0;
  border-top: 1px solid var(--ink-line);
  position: relative;
}
.pillar:last-child { border-bottom: 1px solid var(--ink-line); }
.pillar__num {
  font-family: var(--font-display);
  font-size: 2.4rem;
  color: var(--red);
  line-height: 1;
}
.pillar h3 {
  font-family: var(--font-display);
  font-size: 1.4rem;
  color: var(--ink);
  margin-bottom: 8px;
  letter-spacing: .03em;
}
.pillar p { color: var(--ink-soft); font-size: .96rem; line-height: 1.6; }

.stats {
  margin-top: clamp(60px, 7vw, 90px);
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px;
  border-top: 1.5px solid var(--ink-line-2);
  padding-top: 36px;
}
.stat strong {
  display: block;
  font-family: var(--font-display);
  font-size: clamp(2.6rem, 4.6vw, 4.2rem);
  color: var(--red);
  line-height: 1;
}
.stat span {
  display: block; margin-top: 10px;
  font-size: .76rem; letter-spacing: .18em;
  text-transform: uppercase; color: var(--ink-mute);
  line-height: 1.4;
}
@media (max-width: 880px) {
  .manifest__grid { grid-template-columns: 1fr; }
  .stats { grid-template-columns: repeat(2,1fr); gap: 28px 20px; }
}

/* ============ SRUBY (как страницы альбома) ============ */
.sruby__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(36px, 4vw, 60px) clamp(28px, 3vw, 44px);
}
.srub-card {
  position: relative;
  background: var(--paper-warm);
  padding: 22px 22px 28px;
  box-shadow:
    0 4px 0 var(--paper-deep),
    0 24px 40px rgba(62,42,30,.18);
  transition: transform .35s ease;
}
.srub-card:nth-child(1) { transform: rotate(-1.2deg); }
.srub-card:nth-child(2) { transform: rotate(1deg) translateY(20px); }
.srub-card:nth-child(3) { transform: rotate(0.8deg); }
.srub-card:nth-child(4) { transform: rotate(-1deg) translateY(14px); }
.srub-card:hover { transform: rotate(0) translateY(-4px); }

.srub-card__media {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  margin-bottom: 22px;
}
.srub-card__media img {
  width: 100%; height: 100%; object-fit: cover;
  filter: sepia(.12) saturate(.95) brightness(.95);
  transition: transform 1s;
}
.srub-card:hover .srub-card__media img { transform: scale(1.05); }
.srub-card__stamp {
  position: absolute; top: 14px; right: 14px;
  background: var(--red);
  color: var(--paper-warm);
  font-family: var(--font-display);
  font-size: 1.05rem;
  padding: 6px 14px;
  letter-spacing: .04em;
  border: 1px dashed rgba(244,234,212,.6);
  box-shadow: 2px 2px 0 rgba(122,18,22,.5);
  z-index: 3;
}
.srub-card__stamp--soon { background: var(--ink-soft); }

.srub-card__step {
  display: block;
  font-family: var(--font-body);
  font-size: .68rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--red);
  font-weight: 700;
  margin-bottom: 10px;
}
.srub-card__title {
  font-family: var(--font-display);
  font-size: clamp(1.8rem, 2.6vw, 2.4rem);
  color: var(--ink);
  margin-bottom: 14px;
  line-height: .95;
}
.srub-card__desc {
  color: var(--ink-soft);
  font-size: .94rem;
  line-height: 1.6;
  margin-bottom: 22px;
}
.srub-card__row {
  display: flex; justify-content: space-between; align-items: center;
  gap: 16px;
  padding-top: 18px;
  border-top: 1px dashed var(--ink-line-2);
  flex-wrap: wrap;
}
.srub-card__price {
  display: flex; flex-direction: column;
}
.srub-card__price small {
  font-size: .65rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--ink-mute);
  margin-bottom: 4px;
}
.srub-card__price strong {
  font-family: var(--font-display);
  font-size: 1.45rem;
  color: var(--red);
}

.amenities {
  display: flex; flex-wrap: wrap; gap: 8px 16px;
  margin-bottom: 20px;
}
.amenities li {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: .72rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ink-soft);
}
.amenities svg { width: 14px; height: 14px; color: var(--red); }

/* Подпись от руки на карточке сруба */
.srub-card__note {
  position: absolute;
  bottom: -18px; right: -10px;
  font-family: var(--font-hand);
  color: var(--red);
  font-size: 1.4rem;
  transform: rotate(-6deg);
  background: var(--paper-warm);
  padding: 6px 14px;
  box-shadow: 0 6px 16px rgba(62,42,30,.2);
}

@media (max-width: 880px) {
  .sruby__grid { grid-template-columns: 1fr; }
  .srub-card:nth-child(n) { transform: none; }
}

/* ============ ADVANTAGES (стикеры) ============ */
.adv__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(20px, 2.5vw, 32px);
  margin-top: 30px;
}
.adv-card {
  background: var(--paper-warm);
  padding: 32px 26px 40px;
  position: relative;
  border: 1px solid var(--ink-line);
  box-shadow: 0 14px 30px rgba(62,42,30,.12);
  transition: transform .35s;
}
.adv-card:nth-child(odd) { transform: rotate(-1deg); }
.adv-card:nth-child(even) { transform: rotate(1.2deg) translateY(16px); }
.adv-card:hover { transform: rotate(0) translateY(-4px); }
.adv-card .star8 {
  color: var(--red);
  width: 32px; height: 32px;
  margin-bottom: 22px;
}
.adv-card__step {
  position: absolute;
  top: 18px; right: 22px;
  font-family: var(--font-body);
  font-size: .65rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--ink-mute);
}
.adv-card__step b { color: var(--red); font-weight: 700; }
.adv-card h3 {
  font-family: var(--font-display);
  font-size: 1.4rem;
  color: var(--ink);
  margin-bottom: 12px;
  line-height: 1.1;
}
.adv-card p { color: var(--ink-soft); font-size: .92rem; line-height: 1.6; }
@media (max-width: 980px) { .adv__grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 540px) { .adv__grid { grid-template-columns: 1fr; } }

/* ============ BANYA ============ */
.banya__layout {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: clamp(40px, 5vw, 90px);
  align-items: center;
}
.banya__media {
  position: relative;
  background: var(--paper-warm);
  padding: 20px 20px 70px;
  transform: rotate(-2deg);
  box-shadow: 0 24px 40px rgba(62,42,30,.25);
}
.banya__media img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  filter: sepia(.1) saturate(.95) brightness(.95);
}
.banya__media .caption {
  position: absolute;
  bottom: 14px; left: 0; right: 0;
  text-align: center;
  font-family: var(--font-hand);
  color: var(--ink-soft);
  font-size: 1.4rem;
}
.banya__copy h2 .red { color: var(--red); }
.banya__copy .hand-note { margin: 16px 0 26px; display: block; }
.banya__bullets { margin-top: 32px; display: grid; gap: 14px; }
.banya__bullets li {
  display: grid; grid-template-columns: 28px 1fr; gap: 14px;
  padding: 14px 0;
  border-top: 1px solid var(--ink-line);
  font-size: .98rem; color: var(--ink);
}
.banya__bullets li:last-child { border-bottom: 1px solid var(--ink-line); }
.banya__bullets li::before {
  content: '';
  width: 18px; height: 18px;
  margin-top: 3px;
  background: var(--red);
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'><path d='M20 1 L22 12 L31 6 L26 16 L39 18 L26 22 L31 32 L22 28 L20 39 L18 28 L9 32 L14 22 L1 18 L14 16 L9 6 L18 12 Z' fill='black'/></svg>") center/contain no-repeat;
          mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'><path d='M20 1 L22 12 L31 6 L26 16 L39 18 L26 22 L31 32 L22 28 L20 39 L18 28 L9 32 L14 22 L1 18 L14 16 L9 6 L18 12 Z' fill='black'/></svg>") center/contain no-repeat;
}
@media (max-width: 880px) { .banya__layout { grid-template-columns: 1fr; } }

/* ============ PLACES (фото на верёвке) ============ */
.places__rope {
  position: relative;
  padding-top: 50px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px;
}
.places__rope::before {
  content: '';
  position: absolute;
  top: 30px; left: -50px; right: -50px;
  height: 2px;
  background: linear-gradient(to right, transparent, var(--ink-soft) 5%, var(--ink-soft) 95%, transparent);
  transform: rotate(-.8deg);
  z-index: 1;
}
.place-photo {
  position: relative;
  background: var(--paper-warm);
  padding: 14px 14px 22px;
  box-shadow: 0 16px 28px rgba(62,42,30,.22);
  transition: transform .4s;
}
.place-photo:nth-child(1) { transform: rotate(-3deg) translateY(8px); }
.place-photo:nth-child(2) { transform: rotate(2deg) translateY(-4px); }
.place-photo:nth-child(3) { transform: rotate(-1.5deg) translateY(14px); }
.place-photo:nth-child(4) { transform: rotate(2.5deg) translateY(2px); }
.place-photo:hover { transform: rotate(0) translateY(-6px); z-index: 4; }
.place-photo__img {
  position: relative;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  margin-bottom: 12px;
}
.place-photo__img img {
  width: 100%; height: 100%; object-fit: cover;
  filter: sepia(.15) saturate(.9) brightness(.92);
}
.place-photo__step {
  display: block;
  font-family: var(--font-body);
  font-size: .65rem; letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--red);
  font-weight: 700;
  margin-bottom: 6px;
}
.place-photo h3 {
  font-family: var(--font-display);
  font-size: 1.15rem;
  color: var(--ink);
  line-height: 1.1;
}
.place-photo small {
  display: block; margin-top: 6px;
  font-family: var(--font-hand);
  color: var(--ink-soft);
  font-size: 1.05rem;
}
@media (max-width: 980px) { .places__rope { grid-template-columns: repeat(2,1fr); gap: 40px; } }
@media (max-width: 520px) { .places__rope { grid-template-columns: 1fr; } }

.places__more { text-align: center; margin-top: 70px; }

/* ============ GALLERY ============ */
.gallery__tabs {
  display: flex; gap: 8px; flex-wrap: wrap;
  margin: 30px 0 40px;
}
.gallery__tab {
  padding: 10px 22px;
  font-size: .72rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--ink-soft);
  border: 1px solid var(--ink-line-2);
  border-radius: 999px;
  background: transparent;
  transition: all .25s;
}
.gallery__tab:hover { color: var(--red); border-color: var(--red); }
.gallery__tab.active {
  background: var(--red);
  color: var(--paper);
  border-color: var(--red);
}
.gallery__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: 170px;
  gap: 14px;
}
.gallery__grid .g {
  overflow: hidden;
  position: relative;
  background: var(--paper-warm);
  padding: 6px;
  box-shadow: 0 12px 22px rgba(62,42,30,.18);
}
.gallery__grid .g:nth-child(odd) { transform: rotate(-.6deg); }
.gallery__grid .g:nth-child(even) { transform: rotate(.8deg); }
.gallery__grid .g img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .8s;
  filter: sepia(.08) saturate(.95);
}
.gallery__grid .g:hover img { transform: scale(1.04); }
.gallery__grid .g--wide { grid-column: span 2; }
.gallery__grid .g--tall { grid-row: span 2; }
.gallery__grid .g--big { grid-column: span 2; grid-row: span 2; }
@media (max-width: 880px) {
  .gallery__grid { grid-template-columns: repeat(2,1fr); }
  .gallery__grid .g--big { grid-column: span 2; }
}

/* ============ REVIEWS (как было — хорошо) ============ */
.reviews__rope {
  margin-top: 60px;
  padding-top: 50px;
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}
.reviews__rope::before {
  content: '';
  position: absolute;
  top: 0; left: -50px; right: -50px;
  height: 2px;
  background: linear-gradient(to right, transparent, var(--ink-soft) 5%, var(--ink-soft) 95%, transparent);
  transform: rotate(-1deg);
}
.polaroid {
  background: var(--paper-warm);
  padding: 16px 16px 22px;
  box-shadow: 0 18px 34px rgba(62,42,30,.22), 0 2px 6px rgba(62,42,30,.1);
  position: relative;
  transition: transform .35s ease;
}
.polaroid:nth-child(1) { transform: rotate(-3deg); }
.polaroid:nth-child(2) { transform: rotate(1.6deg) translateY(20px); }
.polaroid:nth-child(3) { transform: rotate(-1.4deg); }
.polaroid:hover { transform: rotate(0) translateY(-8px) scale(1.02); z-index: 4; }
.polaroid__photo {
  width: 100%;
  aspect-ratio: 1 / 1;
  background: var(--ink);
  margin-bottom: 16px;
  overflow: hidden;
}
.polaroid__photo img { width: 100%; height: 100%; object-fit: cover; filter: sepia(.25) saturate(.9); }
.polaroid__name {
  font-family: var(--font-hand);
  font-size: 1.8rem;
  color: var(--red);
  display: flex; justify-content: space-between; align-items: baseline;
}
.polaroid__name small {
  font-family: var(--font-body);
  font-size: .7rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ink-mute);
}
.polaroid p {
  font-size: .94rem;
  color: var(--ink-soft);
  line-height: 1.55;
  margin-top: 10px;
}
.reviews__src {
  margin-top: 60px;
  text-align: center;
  font-size: .8rem;
  color: var(--ink-mute);
  letter-spacing: .14em;
  text-transform: uppercase;
}
.reviews__src a { color: var(--red); border-bottom: 1px solid var(--red); }
@media (max-width: 880px) {
  .reviews__rope { grid-template-columns: 1fr; gap: 50px; }
  .polaroid:nth-child(n) { transform: rotate(-1deg); }
}

/* ============ FAQ (как записки на скотче) ============ */
.faq__layout {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: clamp(40px, 6vw, 100px);
  align-items: flex-start;
}
.faq__list { display: grid; gap: 18px; }
.faq__item {
  background: var(--paper-warm);
  padding: 22px 26px;
  box-shadow: 0 12px 22px rgba(62,42,30,.16);
  position: relative;
  transition: transform .25s;
}
.faq__item:nth-child(odd) { transform: rotate(-.6deg); }
.faq__item:nth-child(even) { transform: rotate(.7deg); }
.faq__item.open { transform: rotate(0) translateY(-2px); }
.faq__item .tape { z-index: 3; }
.faq__btn {
  width: 100%;
  text-align: left;
  padding: 4px 0;
  display: grid;
  grid-template-columns: 40px 1fr 24px;
  gap: 14px;
  align-items: center;
  font-family: var(--font-display);
  font-size: clamp(1.1rem, 1.5vw, 1.35rem);
  letter-spacing: .02em;
  color: var(--ink);
  line-height: 1.2;
}
.faq__btn:hover { color: var(--red); }
.faq__btn .n {
  color: var(--red);
  font-size: .85rem;
  letter-spacing: .15em;
  font-family: var(--font-body);
  font-weight: 700;
}
.faq__btn .icon {
  width: 22px; height: 22px;
  position: relative;
  justify-self: end;
}
.faq__btn .icon::before, .faq__btn .icon::after {
  content: ''; position: absolute;
  background: var(--red);
  top: 50%; left: 0; right: 0;
  height: 1.5px;
  transform: translateY(-50%);
  transition: transform .35s;
}
.faq__btn .icon::after { transform: translateY(-50%) rotate(90deg); }
.faq__item.open .faq__btn .icon::after { transform: translateY(-50%) rotate(0); }
.faq__panel {
  max-height: 0;
  overflow: hidden;
  transition: max-height .5s cubic-bezier(.2,.8,.2,1);
}
.faq__panel-inner {
  padding: 14px 0 6px 54px;
  color: var(--ink-soft);
  font-size: .96rem;
  line-height: 1.7;
  max-width: 60ch;
}
.faq__panel-inner strong { color: var(--red); font-weight: 600; }
@media (max-width: 880px) {
  .faq__layout { grid-template-columns: 1fr; }
  .faq__panel-inner { padding-left: 0; }
}

/* ============ CTA на красном с орнаментом-рамкой ============ */
.cta-band {
  background: var(--red);
  color: var(--cream);
  padding: clamp(80px, 12vw, 140px) var(--pad-x) 30px;
  position: relative;
  overflow: hidden;
  text-align: center;
}
/* Орнамент-рамка по краям (как в "Русском коде") */
.cta-band__border {
  position: absolute; top: 30px; bottom: 30px;
  width: 30px;
  background-color: var(--cream);
  opacity: .35;
  z-index: 2;
}
.cta-band__border--l { left: 18px; }
.cta-band__border--r { right: 18px; }
.cta-band__border {
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='120' viewBox='0 0 30 120'><g fill='black'><path d='M15 0 L18 8 L26 6 L20 14 L28 18 L20 22 L26 30 L18 28 L15 36 L12 28 L4 30 L10 22 L2 18 L10 14 L4 6 L12 8 Z'/><path d='M15 60 L18 68 L26 66 L20 74 L28 78 L20 82 L26 90 L18 88 L15 96 L12 88 L4 90 L10 82 L2 78 L10 74 L4 66 L12 68 Z'/></g></svg>") center top/30px 120px repeat-y;
          mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='120' viewBox='0 0 30 120'><g fill='black'><path d='M15 0 L18 8 L26 6 L20 14 L28 18 L20 22 L26 30 L18 28 L15 36 L12 28 L4 30 L10 22 L2 18 L10 14 L4 6 L12 8 Z'/><path d='M15 60 L18 68 L26 66 L20 74 L28 78 L20 82 L26 90 L18 88 L15 96 L12 88 L4 90 L10 82 L2 78 L10 74 L4 66 L12 68 Z'/></g></svg>") center top/30px 120px repeat-y;
}
@media (max-width: 700px) { .cta-band__border { display: none; } }
.cta-band__inner { position: relative; z-index: 3; max-width: 720px; margin: 0 auto; }
.cta-band .ornament-row { color: var(--cream); }
.cta-band .ornament-row::before, .cta-band .ornament-row::after { background-color: currentColor; opacity: .8; }
.cta-band h2 {
  color: var(--cream);
  margin: 10px 0 24px;
}
.cta-band .hand {
  color: var(--paper-warm);
  font-size: 2.4rem;
  margin: 18px 0 30px;
  display: block;
}
.cta-band p { color: var(--cream-mute); max-width: 56ch; margin: 0 auto 36px; }

/* ============ FOOTER (красный, в общей кумачовой зоне) ============ */
.footer {
  background:
    radial-gradient(ellipse at 50% 0%, rgba(122,18,22,.55), transparent 60%),
    var(--red);
  color: var(--cream);
  padding: 50px var(--pad-x) 30px;
  position: relative;
  overflow: hidden;
}
/* Тонкий орнамент-рамка по бокам, как в CTA */
.footer::before, .footer::after {
  content: '';
  position: absolute; top: 40px; bottom: 40px;
  width: 22px;
  background-color: var(--cream);
  opacity: .28;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='22' height='100' viewBox='0 0 22 100'><g fill='black'><path d='M11 0 L13 7 L20 6 L15 12 L22 16 L15 20 L20 28 L13 26 L11 33 L9 26 L2 28 L7 20 L0 16 L7 12 L2 6 L9 7 Z'/><path d='M11 50 L13 57 L20 56 L15 62 L22 66 L15 70 L20 78 L13 76 L11 83 L9 76 L2 78 L7 70 L0 66 L7 62 L2 56 L9 57 Z'/></g></svg>") center top/22px 100px repeat-y;
          mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='22' height='100' viewBox='0 0 22 100'><g fill='black'><path d='M11 0 L13 7 L20 6 L15 12 L22 16 L15 20 L20 28 L13 26 L11 33 L9 26 L2 28 L7 20 L0 16 L7 12 L2 6 L9 7 Z'/><path d='M11 50 L13 57 L20 56 L15 62 L22 66 L15 70 L20 78 L13 76 L11 83 L9 76 L2 78 L7 70 L0 66 L7 62 L2 56 L9 57 Z'/></g></svg>") center top/22px 100px repeat-y;
}
.footer::before { left: 14px; }
.footer::after  { right: 14px; }
@media (max-width: 700px) { .footer::before, .footer::after { display: none; } }

.footer__inner {
  max-width: var(--container);
  margin: 0 auto;
  padding-top: 30px;
  border-top: 1px solid rgba(244,234,212,.2);
}
.footer__grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1.2fr;
  gap: 50px;
  margin-bottom: 50px;
}
.footer__brand .logo-big {
  font-family: var(--font-display);
  font-size: 2.4rem;
  line-height: .95;
  color: var(--cream);
  letter-spacing: .03em;
}
.footer__brand .hand {
  color: var(--gold);
  margin-top: 12px;
  display: block;
  font-size: 1.4rem;
}
.footer__brand p {
  color: rgba(244,234,212,.72);
  font-size: .9rem;
  margin-top: 12px;
  max-width: 30ch;
  line-height: 1.6;
}
.footer__col h4 {
  font-family: var(--font-body);
  font-size: .7rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 22px;
  font-weight: 700;
}
.footer__col ul { display: grid; gap: 12px; }
.footer__col li {
  font-size: .92rem;
  color: rgba(244,234,212,.82);
  line-height: 1.5;
}
.footer__col a:hover { color: var(--gold); }
.footer__col .big {
  font-family: var(--font-display);
  font-size: 1.4rem;
  color: var(--cream);
  letter-spacing: .02em;
  display: block;
  margin-bottom: 6px;
}
.footer__bottom {
  border-top: 1px solid rgba(244,234,212,.16);
  padding-top: 22px;
  display: flex; justify-content: space-between; align-items: center;
  flex-wrap: wrap; gap: 14px;
  color: rgba(244,234,212,.6);
  font-size: .76rem;
  letter-spacing: .08em;
}
@media (max-width: 880px) { .footer__grid { grid-template-columns: 1fr 1fr; gap: 40px 30px; } }
@media (max-width: 540px) { .footer__grid { grid-template-columns: 1fr; } }

/* ============ REVEAL ============ */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity .9s cubic-bezier(.2,.8,.2,1), transform .9s cubic-bezier(.2,.8,.2,1); }
.reveal.in { opacity: 1; transform: none; }
.reveal[data-delay="1"] { transition-delay: .08s; }
.reveal[data-delay="2"] { transition-delay: .16s; }
.reveal[data-delay="3"] { transition-delay: .24s; }
.reveal[data-delay="4"] { transition-delay: .32s; }
.reveal[data-delay="5"] { transition-delay: .4s; }

/* (scroll hint удалён — мешал кнопкам hero) */

/* ============ HOTSPOT — плавающая кнопка сервиса ============ */
.hotspot {
  position: fixed;
  right: clamp(16px, 2.5vw, 32px);
  bottom: clamp(16px, 2.5vw, 32px);
  z-index: 60;
  font-family: var(--font-body);
}

/* Кнопка-кружок */
.hotspot__btn {
  position: relative;
  width: 72px; height: 72px;
  border-radius: 50%;
  background:
    radial-gradient(circle at 30% 25%, #c92a2c 0%, var(--red) 55%, var(--red-deep) 100%);
  color: var(--cream);
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  box-shadow:
    0 10px 26px rgba(122,18,22,.42),
    0 0 0 2px var(--red),
    0 0 0 4px var(--gold),
    inset 0 1px 2px rgba(255,255,255,.18);
  transition: transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .3s;
  animation: hotspot-pulse 3s ease-in-out infinite;
}
@keyframes hotspot-pulse {
  0%, 100% { box-shadow: 0 10px 26px rgba(122,18,22,.42), 0 0 0 2px var(--red), 0 0 0 4px var(--gold), 0 0 0 4px rgba(201,162,75,.45); }
  50%      { box-shadow: 0 10px 26px rgba(122,18,22,.42), 0 0 0 2px var(--red), 0 0 0 4px var(--gold), 0 0 0 14px rgba(201,162,75,0); }
}
.hotspot__btn:hover {
  transform: scale(1.06) rotate(-4deg);
}
.hotspot__btn:active { transform: scale(.96); }

/* Орнамент-восьмиконечник внутри кнопки */
.hotspot__star {
  position: absolute;
  inset: 0;
  background-color: var(--gold);
  opacity: .22;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 72 72'><path fill='black' d='M36 4 L39 22 L55 12 L46 28 L66 32 L46 36 L55 52 L39 42 L36 60 L33 42 L17 52 L26 36 L6 32 L26 28 L17 12 L33 22 Z'/></svg>") center/contain no-repeat;
          mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 72 72'><path fill='black' d='M36 4 L39 22 L55 12 L46 28 L66 32 L46 36 L55 52 L39 42 L36 60 L33 42 L17 52 L26 36 L6 32 L26 28 L17 12 L33 22 Z'/></svg>") center/contain no-repeat;
}

/* Иконка ложки-вилки */
.hotspot__icon {
  position: relative;
  z-index: 2;
  width: 30px; height: 30px;
  color: var(--cream);
  transition: transform .35s;
}
.hotspot__icon svg { width: 100%; height: 100%; stroke: currentColor; fill: none; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.hotspot.open .hotspot__icon { transform: rotate(45deg); }
.hotspot.open .hotspot__icon .ico-fork,
.hotspot.open .hotspot__icon .ico-spoon { opacity: 0; }
.hotspot.open .hotspot__icon .ico-x { opacity: 1; }
.hotspot__icon .ico-x {
  opacity: 0;
  transition: opacity .25s;
  position: absolute; inset: 0;
}

/* Лейбл на ленте слева от кнопки */
.hotspot__label {
  position: absolute;
  right: calc(100% + 14px);
  top: 50%;
  transform: translateY(-50%);
  white-space: nowrap;
  background: var(--paper-warm);
  color: var(--red);
  font-family: var(--font-display);
  font-size: 1rem;
  letter-spacing: .04em;
  padding: 8px 16px 9px;
  box-shadow: 0 8px 18px rgba(62,42,30,.22);
  pointer-events: none;
  opacity: 0;
  transform: translate(10px, -50%);
  transition: opacity .3s, transform .3s;
}
.hotspot__label::after {
  content: '';
  position: absolute;
  right: -7px; top: 50%; transform: translateY(-50%);
  border: 7px solid transparent;
  border-left-color: var(--paper-warm);
}
.hotspot:not(.open) .hotspot__btn:hover ~ .hotspot__label,
.hotspot:not(.open) .hotspot__btn:focus-visible ~ .hotspot__label {
  opacity: 1;
  transform: translate(0, -50%);
}
@media (max-width: 640px) {
  .hotspot__label { display: none; }
}

/* Панель, раскрывающаяся над кнопкой */
.hotspot__panel {
  position: absolute;
  right: 0;
  bottom: calc(100% + 16px);
  width: min(340px, calc(100vw - 32px));
  background: var(--paper-warm);
  color: var(--ink);
  padding: 22px 22px 20px;
  box-shadow: 0 24px 60px rgba(62,42,30,.32), 0 0 0 1px rgba(62,42,30,.08);
  transform-origin: bottom right;
  transform: scale(.85) translateY(20px);
  opacity: 0;
  pointer-events: none;
  transition: transform .35s cubic-bezier(.2,.8,.2,1), opacity .25s;
  border: 1px solid rgba(62,42,30,.12);
}
.hotspot.open .hotspot__panel {
  transform: scale(1) translateY(0);
  opacity: 1;
  pointer-events: auto;
}
.hotspot__panel::after {
  /* «хвостик» от пузыря к кнопке */
  content: '';
  position: absolute;
  right: 24px; bottom: -8px;
  width: 16px; height: 16px;
  background: var(--paper-warm);
  transform: rotate(45deg);
  box-shadow: 1px 1px 0 rgba(62,42,30,.08);
}

.hotspot__head {
  border-bottom: 1px dashed rgba(62,42,30,.25);
  padding-bottom: 16px;
  margin-bottom: 14px;
  position: relative;
}
.hotspot__head .eyebrow {
  font-size: .62rem;
  letter-spacing: .25em;
  color: var(--red);
}
.hotspot__head h3 {
  font-family: var(--font-display);
  font-size: 1.5rem;
  line-height: 1.05;
  color: var(--ink);
  margin: 8px 0 6px;
  letter-spacing: .02em;
}
.hotspot__head .hand {
  font-family: var(--font-hand);
  font-size: 1.15rem;
  color: var(--red);
  display: block;
  transform: rotate(-2deg);
}
.hotspot__close {
  position: absolute;
  top: -4px; right: -4px;
  width: 26px; height: 26px;
  border-radius: 50%;
  color: var(--ink-mute);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.4rem;
  line-height: 1;
  cursor: pointer;
  transition: color .2s, background .2s;
}
.hotspot__close:hover { background: rgba(62,42,30,.08); color: var(--red); }

.hotspot__list {
  display: grid;
  gap: 4px;
  margin-bottom: 16px;
}
.hotspot__list a {
  display: grid;
  grid-template-columns: 30px 1fr 16px;
  gap: 12px;
  align-items: center;
  padding: 12px 10px;
  border-radius: 4px;
  transition: background .25s, transform .25s;
  position: relative;
}
.hotspot__list a:hover {
  background: rgba(161,25,27,.06);
  transform: translateX(4px);
}
.hotspot__num {
  font-family: var(--font-display);
  font-size: 1.1rem;
  color: var(--red);
  letter-spacing: .04em;
  border-right: 1px dashed rgba(62,42,30,.25);
  padding-right: 10px;
}
.hotspot__list strong {
  font-family: var(--font-display);
  font-size: 1.1rem;
  font-weight: 400;
  color: var(--ink);
  display: block;
  letter-spacing: .015em;
  line-height: 1.1;
}
.hotspot__list small {
  display: block;
  font-size: .78rem;
  color: var(--ink-mute);
  margin-top: 3px;
  line-height: 1.35;
}
.hotspot__list .arr {
  color: var(--red);
  font-size: 1.1rem;
  transition: transform .25s;
}
.hotspot__list a:hover .arr { transform: translateX(3px); }

.hotspot__cta {
  display: flex; justify-content: center;
}
.hotspot__cta .btn--ticket-dark {
  width: 100%;
  justify-content: center;
  padding-top: 14px; padding-bottom: 14px;
  font-size: .72rem;
}

.hotspot__hours {
  margin-top: 14px;
  text-align: center;
  font-family: var(--font-hand);
  font-size: 1.05rem;
  color: var(--ink-mute);
}

/* Тёмный оверлей при открытом виджете на мобиле */
@media (max-width: 640px) {
  .hotspot__panel {
    position: fixed;
    right: 12px; left: 12px; bottom: 100px;
    width: auto;
  }
  .hotspot__panel::after { display: none; }
}
