/* ============================================================================
   TISHE-V6 — слой нового вида (проба 21.08.2026, решения владельца 19–21.08)
   ============================================================================
   Подключается ПОСЛЕ tokens-v5.css и partials-v5.css. Живёт отдельным файлом,
   пока владелец смотрит пробы; после утверждения вливается в partials-v5.css
   и удаляется отсюда — двух источников правды быть не должно.

   Что в слое:
   — фактура: перфорация 13px + градиент вместо сетки (шапка, тёмные блоки, футер);
   — фото-фон у тёмных блоков (.has-photo-bg);
   — заголовки без капса, капс только на метках-eyebrow;
   — карточка услуги с фото и названием НА фото;
   — плашка цен вместо висящего абзаца;
   — светлая схема объявлена: браузер не перекрашивает сайт ночным режимом.
   ============================================================================ */

/* ==================== ПРОБА «ТИШЕ» (19.08.2026) ====================
   Живёт ТОЛЬКО в этом файле: боевая главная (glavnaya-final) не задета.
   1) видеофон в hero под тёмной подложкой — как на тильде владельца;
   2) заголовки без капса и без жёлтой плашки;
   3) жёлтый остаётся только на кнопках действия;
   4) вместо абзаца-описания — сухие факты цифрами. */
.hero-video{ position:relative; overflow:hidden; background-image:none; }
.hero-video .video-layer{ position:absolute; inset:0; z-index:0; overflow:hidden; }
.hero-video .video-layer{ pointer-events:none; }
.hero-video .video-layer video{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:100%; height:100%; object-fit:cover; }
.hero-video .video-tint{ position:absolute; inset:0; z-index:1;
  background:linear-gradient(100deg, oklch(12% .025 230 / .78) 0 26%,
                                      oklch(12% .025 230 / .52) 58%,
                                      oklch(12% .025 230 / .28) 100%); }
.hero-video > .container{ position:relative; z-index:2; }
.hero-video h1{ text-transform:none; letter-spacing:-.01em;
  text-shadow:0 2px 24px oklch(10% .02 230 / .75), 0 1px 4px oklch(10% .02 230 / .5); }
.hero-video .hero-claim, .hero-video .hero-note{
  text-shadow:0 1px 12px oklch(10% .02 230 / .8); }
/* четыре факта держим ОДНОЙ строкой: разрыв на две строки читается как список,
   а нужен «паспорт станка» одним взглядом. Кегль от ширины экрана. */
/* одна строка позиционирования вместо перечня цифр: те же факты стоят
   блоками ниже, в hero они спорили с заголовком за внимание */
.hero-claim{ margin:1.1rem 0 1.8rem; font-size:var(--fs-17); font-weight:500;
  color:var(--on-dark); letter-spacing:.005em; }
/* прочесть текст поверх видео важнее, чем видеть станок: на узком экране гасим сильнее */
@media (max-width:760px){
  .hero-video .video-tint{ background:oklch(12% .025 230 / .72); } }

/* Секции, снятые с зебры (логистика, FAQ): тёмных блоков на странице остаётся два —
   hero и оборудование. Карточки логистики были рассчитаны на тёмный фон. */
.light-block .faq-panel{ box-shadow:var(--shadow-figure); }

/* фактура блока — та же, что у шапки (владелец 21.08): перфолист 13px
   и градиент поверх. Рецепт повторён из header.site, значения — из токенов,
   чтобы правка перфорации в одном месте доехала и сюда. */
/* фактура ВСЕХ тёмных блоков: перфолист вместо сетки 32px.
   .perf-block оставлен как псевдоним — им размечены секции пробы главной. */
.blue-block, .perf-block{ position:relative;
  background-color:var(--dark);
  background-image:var(--perf-dots);
  background-size:var(--perf-dots-size); }
.blue-block::before, .perf-block::before{ content:''; position:absolute; inset:0;
  z-index:0; pointer-events:none;
  background:linear-gradient(180deg, transparent, oklch(21% 0.028 230 / .92)); }
.blue-block > .container, .perf-block > .container{ position:relative; z-index:2; }
/* блоки с фото-фоном свою подложку рисуют сами — общий градиент им не нужен */
.has-photo-bg::before{ content:none; }

/* сайт светлый и красится сам: без этой строки Chrome и Samsung Internet
   включают принудительный тёмный режим и перекрашивают блоки по-своему
   (у владельца жёлтый стал коричневым) */
:root{ color-scheme:light; }

/* на узком экране плашка-тег уходит в поток: абсолютом она ложилась
   поверх подписи под фото (проверено на 412px) */
@media (max-width:700px){
  .factory-figure .frame-tag{ position:static; display:inline-flex; margin-top:.7rem; }
  .factory-figure .frame-caption{ margin-top:.5rem; }
}
footer.site{ position:relative;
  background-image:var(--perf-dots); background-size:var(--perf-dots-size); }
footer.site::before{ content:''; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:linear-gradient(0deg, transparent, oklch(21% 0.028 230 / .92)); }
footer.site > .container, footer.site > *{ position:relative; z-index:2; }

/* цены под сеткой услуг: были висящим абзацем, стали плашкой — цифра отдельно,
   условие отдельно. Значения прежние (facts.yaml), меняется только подача. */
.price-strip{ margin-top:1.6rem; display:flex; align-items:center; flex-wrap:wrap;
  gap:1.1rem 2.2rem; padding:1.15rem 1.5rem;
  background:var(--plate-grad); border:1px solid var(--line-strong);
  border-left:3px solid var(--accent); box-shadow:var(--shadow-card); }
.price-item b{ display:block; font-family:var(--ff-display); font-weight:800;
  font-size:var(--fs-num); color:var(--ink); line-height:1.05; white-space:nowrap; }
.price-item span{ font-size:var(--fs-12); font-weight:600; letter-spacing:.05em;
  text-transform:uppercase; color:var(--faint); }
.price-hint{ flex:1 1 16rem; margin:0; font-size:var(--fs-14); color:var(--muted);
  border-left:1px solid var(--line); padding-left:1.5rem; }
@media (max-width:700px){
  .price-strip{ gap:.9rem 1.6rem; padding:1rem 1.15rem; }
  .price-hint{ border-left:0; padding-left:0; flex-basis:100%; } }

/* тёмный блок на затемнённом фото цеха вместо сетки: фактура своего производства
   вместо абстрактного паттерна. Тон подложки держим таким, чтобы белый текст
   оставался читаемым на любом кадре — проверяется прогоном, не на глаз. */
.has-photo-bg{ position:relative; overflow:hidden; background-image:none; }
.has-photo-bg > .bg-photo{ position:absolute; inset:0; z-index:0; }
.has-photo-bg > .bg-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.has-photo-bg > .bg-photo .bg-tint{ position:absolute; inset:0;
  background:linear-gradient(180deg, oklch(11% .022 230 / .90) 0%,
                                      oklch(11% .022 230 / .78) 45%,
                                      oklch(11% .022 230 / .92) 100%); }
.has-photo-bg > .container{ position:relative; z-index:2; }

/* название услуги лежит НА фото (приём из макета владельца): карточка читается
   витриной, а не списком. Градиент снизу — чтобы белый текст держался на любом кадре. */
.service-card .svc-photo{ position:relative; }
.service-card .svc-photo::after{ content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, transparent 42%, oklch(12% .02 230 / .86) 100%); }
.service-card .svc-photo h3{ position:absolute; left:1.2rem; right:1.2rem; bottom:.85rem;
  z-index:2; color:#fff; font-size:1.0625rem; line-height:1.25; margin:0; }
.service-card .idx{ padding-top:.9rem; }

/* блок заявки на фото: поля остаются белыми, подписи — светлыми */
/* тёмная кнопка на тёмном фото не видна — на этом блоке она жёлтая */

/* капс остаётся только на метках-eyebrow: заголовок формой Unbounded 800 и так
   достаточно громкий, капс поверх него — второй крик в ту же сторону */
h1, h2, h3, .lead-card h3{ text-transform:none; letter-spacing:-.005em; }

/* выделение слова: было плашкой целиком (канон №53), стало чертой снизу —
   жёлтый остаётся указателем действия, а не фоном для текста */
.mark{ background:none; color:inherit; padding:0;
  box-shadow:inset 0 -.16em 0 var(--accent); }

/* фото вместо иконки в карточке услуги (владелец 19.08: «упор на живой фото-контент») */
.service-card{ padding:0 0 1.5rem; gap:.55rem; }
.service-card .svc-photo{ aspect-ratio:16/10; overflow:hidden; margin-bottom:.75rem;
  background:var(--photo-well); border-bottom:1px solid var(--line); }
.service-card .svc-photo img{ width:100%; height:100%; object-fit:cover; display:block;
  transition:transform var(--dur-3) var(--ease); }
.service-card:hover .svc-photo img{ transform:scale(1.03); }
.service-card .idx, .service-card h3, .service-card p, .service-card .more{
  padding-inline:1.5rem; }



