

/* Start:/local/assets/collections/cv.css?17918839896229*/
/* Коллекции — общая основа страницы /collections/ (редизайн 13.10.2026).
   Мир страницы — цвет стен: у каждой коллекции свой, снятый с её интерьера
   (CollectionShowcase::wallColor), и двери стоят на нём, как в комнате.
   Шрифт — Manrope сайта, драма — масштабом, светом и движением. */

.cv {
  --cv-ink: #1a1a1a;
  --cv-ink-soft: #55524c;
  --cv-ground: #e7e5e0;
  --cv-ground-2: #dcd9d2;
  --cv-line: rgba(26, 26, 26, .14);
  --cv-accent: #8c1f3b;
  --cv-accent-ink: #fff;
  --cv-top: 112px;
  --cv-gutter: clamp(16px, 4vw, 56px);
  --cv-ease: cubic-bezier(.16, 1, .3, 1);
  background: var(--cv-ground);
  color: var(--cv-ink);
  font-family: Manrope, system-ui, sans-serif;
  font-feature-settings: "tnum" 0;
  overflow-x: clip;
}
.cv *, .cv *::before, .cv *::after { box-sizing: border-box; }
.cv ::selection { background: var(--cv-accent); color: #fff; }
.cv a { color: inherit; }
.cv :focus-visible { outline: 2px solid var(--cv-accent); outline-offset: 3px; border-radius: 2px; }
.cv img { max-width: none; }

/* ---------- шапка ---------- */
.cv-head { padding: clamp(20px, 3vw, 36px) var(--cv-gutter) 0; }
.cv-crumbs { margin: 0 0 clamp(28px, 5vw, 64px); }
.cv-head__title {
  margin: 0;
  font-size: clamp(44px, 8.4vw, 96px);
  font-weight: 600;
  line-height: .94;
  letter-spacing: -.04em;
  text-wrap: balance;
}
.cv-head__lead {
  max-width: 46ch;
  margin: clamp(16px, 2vw, 24px) 0 0;
  font-size: clamp(17px, 1.4vw, 20px);
  line-height: 1.5;
  color: var(--cv-ink-soft);
  text-wrap: pretty;
}

/* ---------- фильтры ---------- */
.cv-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 20px;
}
.cv-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.cv-chip {
  display: inline-flex;
  align-items: baseline;
  gap: 7px;
  min-height: 42px;
  padding: 10px 16px;
  border: 1px solid var(--cv-line);
  border-radius: 999px;
  background: rgba(255, 255, 255, .42);
  color: var(--cv-ink);
  font: 600 15px/1.2 Manrope, system-ui, sans-serif;
  cursor: pointer;
  transition: background .2s, border-color .2s, color .2s, transform .15s;
}
.cv-chip span { font-size: 12px; font-weight: 700; opacity: .5; font-variant-numeric: tabular-nums; }
.cv-chip:hover { border-color: rgba(26, 26, 26, .45); background: rgba(255, 255, 255, .7); }
.cv-chip:active { transform: translateY(1px); }
.cv-chip.is-active { background: var(--cv-ink); border-color: var(--cv-ink); color: #f2f0ec; }
.cv-chip.is-active span { opacity: .7; }

.cv-glass {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 42px;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  user-select: none;
}
.cv-glass input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.cv-glass__track {
  position: relative;
  width: 46px;
  height: 26px;
  border-radius: 999px;
  background: rgba(26, 26, 26, .18);
  transition: background .25s var(--cv-ease);
}
.cv-glass__knob {
  position: absolute;
  top: 3px;
  left: 3px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 3px rgba(26, 26, 26, .25);
  transition: transform .3s var(--cv-ease);
}
.cv-glass input:checked + .cv-glass__track { background: var(--cv-accent); }
.cv-glass input:checked + .cv-glass__track .cv-glass__knob { transform: translateX(20px); }
.cv-glass input:focus-visible + .cv-glass__track { outline: 2px solid var(--cv-accent); outline-offset: 3px; }
.cv-filters__count { margin: 0; font-size: 14px; color: var(--cv-ink-soft); font-variant-numeric: tabular-nums; }

.cv [data-cv-item].is-out { display: none !important; }

/* ---------- кнопки ---------- */
.cv-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 52px;
  padding: 0 26px;
  border: 1px solid var(--cv-ink);
  border-radius: 999px;
  background: var(--cv-ink);
  color: #f2f0ec;
  font: 700 15px/1 Manrope, system-ui, sans-serif;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: background .2s, color .2s, transform .15s;
}
.cv a.cv-btn { color: #f2f0ec; }
.cv-btn:hover { background: var(--cv-accent); border-color: var(--cv-accent); }
.cv-btn:active { transform: translateY(1px); }
.cv-btn_ghost { background: transparent; color: var(--cv-ink); }
.cv a.cv-btn_ghost { color: var(--cv-ink); }
.cv-btn_ghost:hover { background: var(--cv-ink); border-color: var(--cv-ink); color: #f2f0ec; }
.cv a.cv-btn_ghost:hover { color: #f2f0ec; }

/* ---------- пусто ---------- */
.cv-empty { padding: 64px var(--cv-gutter); text-align: center; }
.cv-empty p { max-width: 40ch; margin: 0 auto 20px; font-size: 18px; line-height: 1.5; }

/* ---------- финал ----------
   Светлый, цвета стены: под ним тёмный подвал (#333), и блок не должен
   ни сливаться с ним, ни быть темнее его. */
.cv-close {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: 24px clamp(24px, 5vw, 80px);
  align-items: end;
  padding: clamp(72px, 10vw, 140px) var(--cv-gutter);
  background: #d6d0c6;
  color: var(--cv-ink);
}
.cv-close__title {
  grid-column: 1;
  margin: 0;
  font-size: clamp(34px, 4.6vw, 64px);
  font-weight: 600;
  line-height: 1;
  letter-spacing: -.035em;
}
.cv-close__title span { color: #6a645b; }
.cv-close__text { grid-column: 2; margin: 0; font-size: 17px; line-height: 1.55; color: #3d3a35; max-width: 42ch; }
.cv-close__actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 12px; margin-top: 12px; }
.cv-close .cv-btn_ghost { border-color: rgba(26, 26, 26, .5); }

@media (max-width: 760px) {
  .cv-close { grid-template-columns: 1fr; }
  .cv-close__text { grid-column: 1; }
  .cv-close__actions .cv-btn { flex: 1 1 100%; }
  .cv-chip { min-height: 40px; padding: 9px 14px; font-size: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  .cv *, .cv *::before, .cv *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* End */


/* Start:/local/assets/collections/index.css?179227669610803*/
/* /collections/ — «Указатель и сцена»: список коллекций слева, сцена в цвете стены справа. */

.cv-ix { --stage-wall: #d9d4cc; --stage-ink: #1a1a1a; }

/* Появление при загрузке (index.js → intro) — тот же язык, что на главной.
   Прячем, только если скрипт отметился (cv-js); страховка: не дошёл до cv-go
   за 3 с — CSS показывает всё сам. */
html.cv-js:not(.cv-go) .cv-ix [data-cv-intro],
html.cv-js:not(.cv-go) .cv-ix [data-cv-line] { opacity: 0; animation: cv-safe .01s 3s forwards; }
@keyframes cv-safe { to { opacity: 1; } }
.cv-ix .cv-rise { display: block; overflow: hidden; padding-bottom: .1em; margin-bottom: -.1em; }
.cv-ix .cv-rise > span { display: block; }

/* Заголовок страницы спокойнее: на компьютере он делит колонку со списком. */
.cv-ix .cv-head__title { font-size: clamp(40px, 7vw, 64px); }

/* Фильтры — над списком, липнут под шапкой сайта.
   Без нижней линии: фон тот же, что у страницы, а группы разделены своими. */
.ix-bar {
  position: sticky;
  top: var(--cv-top);
  z-index: 6;
  margin-top: clamp(24px, 3vw, 40px);
  padding: 12px var(--cv-gutter);
  background: var(--cv-ground);
}
.ix-bar .cv-chip, .ix-bar .cv-glass, .ix-bar .cv-filters__count { flex: 0 0 auto; }

.ix-group { padding-top: 28px; }
.ix-group:first-child { padding-top: 12px; }
.ix-group:first-child .ix-group__title { padding-top: 0; border-top: 0; }
.ix-group__title {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin: 0 0 6px;
  padding-top: 14px;
  border-top: 1px solid var(--cv-line);
  font-size: 15px;
  font-weight: 700;
  color: var(--cv-ink-soft);
}
.ix-group[hidden] { display: none; }
.ix-group__list { margin: 0; padding: 0; list-style: none; }

.ix-item__link {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding: 4px 0;
  text-decoration: none;
}
.ix-item__name {
  font-size: clamp(34px, 3.3vw, 54px);
  font-weight: 500;
  line-height: 1.08;
  letter-spacing: -.035em;
  transition: color .25s, transform .45s var(--cv-ease);
}
.ix-item__meta {
  flex: 0 0 auto;
  white-space: nowrap;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--cv-ink-soft);
  font-variant-numeric: tabular-nums;
  text-align: right;
}

/* ---------- компьютер: колонка (заголовок, фильтры, список) + сцена ----------
   Сцена липнет от самого верха страницы на всю высоту экрана: видна целиком
   сразу и при прокрутке стоит на месте. Колонка списка — узкая, место у сцены. */
@media (min-width: 1024px) {
  .ix {
    --ix-pad: clamp(24px, 2.4vw, 40px);
    display: grid;
    grid-template-columns: clamp(400px, 33vw, 600px) minmax(0, 1fr);
    align-items: start;
  }
  .ix-side { min-width: 0; }
  .ix-side .cv-head { padding-right: var(--ix-pad); }
  .ix-side .cv-crumbs { margin-bottom: clamp(24px, 2.4vw, 40px); }
  .ix-side .cv-head__title { font-size: clamp(40px, 3.5vw, 64px); }
  .ix-side .cv-head__lead { font-size: 16px; }
  .ix-bar { margin-top: 24px; padding: 12px var(--ix-pad) 12px var(--cv-gutter); }
  .ix-bar .cv-filters { gap: 8px 16px; }
  /* Чипы компактнее: в узкой колонке крупные вставали в три ряда и липкая
     полоса съедала пол-экрана. Переносятся, а не прокручиваются — колесом мыши
     вбок не прокрутить, и «Дизайнерские» прятались бы за краем. */
  .ix-bar .cv-chips { gap: 6px; }
  .ix-bar .cv-chip { min-height: 34px; padding: 6px 11px; font-size: 13.5px; gap: 5px; }
  .ix-bar .cv-chip span { font-size: 11px; }
  .ix-list { padding: 0 var(--ix-pad) 18vh var(--cv-gutter); }
  .ix-item__name { font-size: clamp(30px, 2.6vw, 48px); }
  .cv-ix.is-staged .ix-item__name { color: rgba(26, 26, 26, .3); }
  .cv-ix.is-staged .ix-item.is-active .ix-item__name { color: var(--cv-ink); transform: translateX(14px); }
  .ix-item.is-active .ix-item__link { position: relative; }
  .cv-ix.is-staged .ix-item.is-active .ix-item__link::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: 7px;
    height: 7px;
    margin-top: -3px;
    border-radius: 50%;
    background: var(--cv-accent);
  }
  .cv-ix.is-staged .ix-item .ix-scene { display: none; }

  .ix-stage {
    position: sticky;
    top: var(--cv-top);
    height: calc(100vh - var(--cv-top));
    min-height: 540px;
    overflow: hidden;
    background: var(--stage-wall);
    color: var(--stage-ink);
  }
  .ix-stage::after {                     /* пол: тень там, где двери стоят */
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 9%;
    background: color-mix(in srgb, var(--stage-wall) 82%, #000);
    pointer-events: none;
  }
  .ix-stage .ix-scene { position: absolute; inset: 0; z-index: 1; display: none; }
  .ix-stage .ix-scene.is-shown { display: block; }
  .ix-stage .ix-scene__cover {
    position: absolute;
    left: 36%;
    right: 0;
    top: 0;
    width: 64%;
    height: 62%;
    object-fit: cover;
  }
  .ix-stage .ix-scene__doors {
    position: absolute;
    left: 38%;
    right: 3%;
    bottom: 7%;
    height: 54%;
    z-index: 2;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 1.4%;
    margin: 0;
    padding: 0;
    list-style: none;
  }
  .ix-stage .ix-door { position: relative; flex: 0 0 auto; }
  /* В раме — первые 5 моделей: ряд из 10–12 мельчил двери. Число — STAGE_DOORS в index.js. */
  .ix-stage .ix-door:nth-child(n+6) { display: none; }
  .ix-stage .ix-door a { display: block; }
  .ix-stage .ix-door__img {
    display: block;
    height: var(--door-h, 100%);
    width: auto;
    filter: drop-shadow(0 18px 18px rgba(10, 9, 8, .28));
    transform-origin: 50% 100%;
  }
  .ix-stage .ix-scene__copy {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 9%;
    width: 36%;
    z-index: 3;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: clamp(24px, 3vw, 44px);
  }
  .ix-stage .ix-scene__name {
    margin: 0;
    font-size: clamp(34px, 3vw, 60px);
    font-weight: 600;
    line-height: .95;
    letter-spacing: -.04em;
    hyphens: none;
    text-wrap: balance;
  }
  .ix-stage .ix-scene__lead { margin: 16px 0 0; font-size: 15px; line-height: 1.5; text-wrap: pretty; }
  .ix-stage .ix-scene__meta { margin: 16px 0 0; }
  .ix-stage .ix-scene__actions { margin-top: 22px; max-width: 300px; }
  .ix-stage .ix-btn { min-height: 48px; }

  /* Подпись двери — над ней при наведении. */
  .ix-stage .ix-door__tag {
    position: absolute;
    left: 50%;
    bottom: calc(100% + 10px);
    z-index: 4;
    padding: 7px 12px;
    border-radius: 999px;
    background: var(--cv-ink);
    color: #f2f0ec;
    font-size: 12.5px;
    font-weight: 600;
    white-space: nowrap;
    transform: translate(-50%, 6px);
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s, transform .3s var(--cv-ease);
  }
  .ix-stage .ix-door__tag b { margin-left: 4px; }
  .ix-stage .ix-door a:hover .ix-door__tag,
  .ix-stage .ix-door a:focus-visible .ix-door__tag { opacity: 1; transform: translate(-50%, 0); }
}

/* Цифры коллекции — тегами: каждая сама по себе, а не строка через пробелы. */
.ix-scene__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0;
  padding: 0;
  font-size: 12.5px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.ix-scene__meta span {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 4px 11px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--ink) 9%, transparent);
  white-space: nowrap;
}

/* ---------- планшет и телефон: карточка у каждого пункта ---------- */
@media (max-width: 1023px) {
  .ix-list { padding: 0 var(--cv-gutter); }
  .ix-stage { display: none; }
  .ix-bar { margin-top: 20px; padding: 10px var(--cv-gutter); }
  .ix-bar .cv-chips { flex-wrap: nowrap; }
  .ix-bar .cv-filters { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .ix-bar .cv-filters__count { display: none; }
  .ix-item { margin-bottom: 28px; }
  .ix-item__link { padding: 10px 0 12px; }
  .ix-item__name { font-size: clamp(32px, 9vw, 44px); }
  .ix-scene { position: relative; background: var(--wall); color: var(--ink); }
  .ix-scene__cover { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; }
  .ix-scene__doors {
    display: flex;
    align-items: flex-end;
    gap: 8px;
    margin: -56px 0 0;
    padding: 0 16px 12px;
    list-style: none;
    overflow-x: auto;
    scrollbar-width: none;
    position: relative;
  }
  .ix-door { flex: 0 0 auto; }
  .ix-door a { display: block; }
  .ix-door__img { display: block; height: 150px; width: auto; filter: drop-shadow(0 10px 10px rgba(10, 9, 8, .25)); }
  .ix-door__tag { display: none; }
  .ix-scene__copy { padding: 6px 16px 20px; }
  .ix-scene__name { display: none; }
  .ix-scene__lead { margin: 0; font-size: 15px; line-height: 1.5; }
  .ix-scene__meta { margin: 12px 0 0; }
  .ix-scene__actions { margin-top: 16px; }
  .ix-scene__actions .cv-btn { min-height: 46px; }
}

/* Кнопки сцены — одной ширины, столбиком, одна семья по цвету стены:
   основная залита цветом текста, вторая — лёгкой тонировкой того же цвета
   (рамка на цветной стене читалась как чужая кнопка).
   --wall/--ink/--inv задаёт пункт списка, а в раме компьютера — index.js. */
.ix-scene__actions { display: grid; gap: 8px; }
.cv .ix-scene a.ix-btn { width: 100%; background: var(--ink); border-color: var(--ink); color: var(--inv); }
.cv .ix-scene a.ix-btn:hover { background: var(--cv-accent); border-color: var(--cv-accent); color: #fff; }
.cv .ix-scene a.ix-btn_ghost { background: color-mix(in srgb, var(--ink) 10%, transparent); border-color: transparent; color: var(--ink); }
.cv .ix-scene a.ix-btn_ghost:hover { background: color-mix(in srgb, var(--ink) 18%, transparent); border-color: transparent; color: var(--ink); }

/* End */
/* /local/assets/collections/cv.css?17918839896229 */
/* /local/assets/collections/index.css?179227669610803 */
