/* ============================================================
   Страничные композиции поверх дизайн-системы.
   Компоненты — в components.css, переменные — в tokens.css.
   ============================================================ */

.sec-sub{max-width:42em;margin-inline:auto}
.logo-dark{display:none}
.u-header:not(.u-header--over) .logo-light{display:none}
.u-header:not(.u-header--over) .logo-dark{display:block}

/* ============================================================ HERO */
.hero{
  position:relative;isolation:isolate;overflow:hidden;
  background:var(--grad-steel);color:var(--text-on-dark);
  padding:calc(72px + var(--sp-10)) 0 0;
}
/* фирменная сцена SHANN: голубой градиент с перспективной сеткой — только правая половина,
   тёмная промышленная база остаётся под текстом (вывод из UI_REPORT §1) */
.hero__bg{position:absolute;inset:0;z-index:-1;background:var(--grad-steel)}
/* фото-сцена лежит отдельным слоем и растворяется по краям маской —
   иначе на границе кадра видна ступенька (найдено на саморевью этапа 3) */
.hero__bg::before{
  content:"";position:absolute;inset:0;
  background:url(img/hero-bg.webp) no-repeat right top/68% auto;
  -webkit-mask-image:radial-gradient(115% 92% at 100% 0%,#000 26%,rgba(0,0,0,.55) 52%,transparent 76%);
  mask-image:radial-gradient(115% 92% at 100% 0%,#000 26%,rgba(0,0,0,.55) 52%,transparent 76%);
}
.hero__bg::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(96deg,#161c21 0%,rgba(22,28,33,.95) 28%,rgba(22,28,33,.62) 44%,rgba(22,28,33,.12) 60%,rgba(22,28,33,0) 70%),
    linear-gradient(180deg,rgba(22,28,33,.55) 0%,rgba(22,28,33,0) 22%),
    linear-gradient(0deg,#161c21 0%,rgba(22,28,33,.72) 12%,rgba(22,28,33,0) 34%);
}
.hero__in{display:grid;grid-template-columns:1.04fr .96fr;gap:var(--sp-10);align-items:center;
  padding-bottom:var(--sp-8)}
.hero__kicker{color:var(--p-300);margin:0 0 var(--sp-4);text-shadow:0 1px 10px rgba(8,16,24,.85)}
.hero .u-header__tel,.prod-hero .u-header__tel{text-shadow:0 1px 8px rgba(10,18,26,.6)}
.hero .u-hero{color:#fff}
.hero .u-hero b{font-weight:600}
.hero__lead{color:#c4cfd8;max-width:33em;margin:var(--sp-5) 0 var(--sp-8)}
.hero__stats{display:flex;gap:var(--sp-10);margin-bottom:var(--sp-8);flex-wrap:wrap}
.stat__v{display:block;font-family:var(--font-brand);font-size:34px;font-weight:600;line-height:1.1;color:#fff}
.stat__k{display:block;font-size:13px;color:#93a2ae;margin-top:4px}
.hero__cta{gap:var(--sp-3)}
.hero__stage{display:grid;place-items:center;min-height:340px}
.hero__stage img{max-height:400px;width:auto;filter:var(--sh-machine)}
.hero__trust{border-top:1px solid rgba(255,255,255,.1);background:rgba(0,0,0,.22);
  padding-block:var(--sp-4);font-size:13px;color:#9fb0bd}
.hero__trust .u-row{gap:var(--sp-8);justify-content:space-between}

/* ============================================================ QUIZ */
.quiz{max-width:780px;margin-inline:auto;padding:var(--sp-8);position:relative}
.quiz__bar{position:absolute;top:0;left:0;right:0;height:3px;background:var(--n-200);
  border-radius:var(--r-lg) var(--r-lg) 0 0;overflow:hidden}
.quiz__bar span{display:block;height:100%;background:var(--action);transition:width var(--d-base) var(--ease-out)}
.q-opt{
  width:100%;text-align:left;font:inherit;font-size:16px;padding:15px 20px;cursor:pointer;
  border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text);
  transition:border-color var(--d-fast),background var(--d-fast),transform var(--d-fast);
}
.q-opt:hover{border-color:var(--accent);background:var(--p-50);transform:translateX(3px)}
.q-opt.is-on{border-color:var(--action);background:var(--p-50);font-weight:600}
.q-res-card{display:flex;gap:var(--sp-6);align-items:center;flex-wrap:wrap}
.q-res-card img{width:220px;height:auto;mix-blend-mode:multiply}
.q-res-card .body{flex:1;min-width:220px}

/* ============================================================ FACTS / STEPS / TILES */
.facts .fact__v{display:block;font-family:var(--font-brand);font-size:29px;font-weight:600;
  color:#fff;margin-bottom:var(--sp-3);line-height:1.1}
.facts p{font-size:14px;line-height:1.6;margin:0}
.steps{list-style:none;padding:0;margin:0}
.step{text-align:center}
.step__n{width:46px;height:46px;border-radius:50%;background:var(--action);color:#fff;
  display:grid;place-items:center;font-weight:600;font-size:17px;margin:0 auto var(--sp-4)}
.step h3{margin-bottom:var(--sp-2)}
.step p{margin:0;color:var(--text-2);font-size:14.5px}
.tile{padding:var(--sp-6);border-top:3px solid var(--accent)}
.tile h3{margin-bottom:var(--sp-3)}
.tile p{margin:0;font-size:14.5px;color:var(--text-2);line-height:1.62}
.tile .u-btn{margin-top:var(--sp-3)}

/* ============================================================ ФОРМА */
.form-wrap{max-width:600px}
.lead-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);
  padding:var(--sp-8);box-shadow:var(--sh-md);color:var(--text)}
.lead-card h2{color:var(--text)}
.lead-card .u-caption{color:var(--text-3)}
.hero .lead-card{box-shadow:var(--sh-xl);border:0}

/* ============================================================ КАРТОЧКА ТОВАРА */
.prod-hero{position:relative;isolation:isolate;overflow:hidden;background:var(--grad-steel);
  color:var(--text-on-dark);padding:calc(72px + var(--sp-10)) 0 var(--sp-16)}
.prod-hero .hero__bg{background:var(--grad-steel)}
.prod-hero .hero__bg::before{background:url(../img/hero-bg.webp) no-repeat right top/62% auto;
  -webkit-mask-image:radial-gradient(112% 96% at 100% 0%,#000 24%,rgba(0,0,0,.5) 50%,transparent 74%);
  mask-image:radial-gradient(112% 96% at 100% 0%,#000 24%,rgba(0,0,0,.5) 50%,transparent 74%)}
.prod-hero .hero__bg::after{
  background:linear-gradient(96deg,#161c21 0%,rgba(22,28,33,.94) 32%,rgba(22,28,33,.5) 50%,rgba(22,28,33,0) 66%);
}
.prod-hero__in{display:grid;grid-template-columns:1.05fr .95fr;gap:var(--sp-10);align-items:center}
.prod-hero__title{color:#fff;margin-bottom:var(--sp-4)}
.prod-hero__lead{color:#c4cfd8;max-width:36em;margin-bottom:var(--sp-8)}
.prod-hero .u-spec{border-bottom-color:var(--p-400)}
.prod-hero .u-spec__k{color:#9fb0bd}
.prod-hero .u-spec__v{color:#fff}
.uses{list-style:none;padding:0;margin:0;color:#c4cfd8;font-size:15.5px}
.uses li{position:relative;padding-left:22px;margin-bottom:9px}
.uses li::before{content:"";position:absolute;left:0;top:9px;width:8px;height:8px;
  background:var(--p-400);border-radius:1px}
.prod-hero .u-gal__thumb{background:rgba(255,255,255,.82);border-color:rgba(255,255,255,.5)}
.prod-hero .u-gal__thumb.is-active{border-color:#fff;background:#fff}

/* ============================================================ ПАНЕЛЬ СРАВНЕНИЯ */
.cmp-bar{
  position:fixed;left:0;right:0;bottom:0;z-index:var(--z-sticky);background:var(--s-800);color:#fff;
  box-shadow:0 -8px 30px rgba(8,20,30,.28);padding-block:var(--sp-3);
  transform:translateY(100%);transition:transform var(--d-base) var(--ease-out);
}
.cmp-bar.is-open{transform:none}
.cmp-bar__in{display:flex;align-items:center;gap:var(--sp-4);flex-wrap:wrap}
.cmp-bar__label{font-size:14px;color:#b9c6d1}
.cmp-bar__label b{color:#fff}
.cmp-bar__items{display:flex;gap:8px;margin-right:auto;flex-wrap:wrap}
.cmp-chip{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.1);
  border-radius:var(--r-full);padding:5px 10px 5px 12px;font-size:12.5px}
.cmp-chip button{background:none;border:0;color:#9fb0bd;cursor:pointer;font-size:15px;line-height:1;padding:0}
.cmp-chip button:hover{color:#fff}

/* ============================================================ ПЕРВЫЙ ЭКРАН ЦЕЛИКОМ
   Требование: на десктопе видна вся линейка техники без прокрутки. Секция занимает
   высоту окна, содержимое распределяется по вертикали, лента прижата к низу экрана.
   На узких экранах режим выключается — там прокрутка естественна. */
@media (min-width:1025px){
  .hero--fit{
    min-height:100svh;display:flex;flex-direction:column;
    padding-top:calc(72px + var(--sp-6));
  }
  .hero--fit .hero__in{flex:1 1 auto;align-content:center;min-height:0;padding-block:var(--sp-3)}
  .hero--fit .hero__fleet{margin-top:auto;flex:0 0 auto}
  /* плотнее по вертикали, чтобы освободить место ленте */
  .hero--fit .u-hero{font-size:clamp(34px,3vw,46px);line-height:1.06}
  .hero--fit .hero__kicker{margin-bottom:var(--sp-3)}
  .hero--fit .hero__lead{margin:var(--sp-3) 0 var(--sp-4);font-size:15.5px;max-width:30em}
  .hero--fit .hero__stats{margin-bottom:var(--sp-4);gap:var(--sp-8)}
  .hero--fit .stat__v{font-size:30px}
  .hero--fit .u-btn--lg{padding:13px 22px;font-size:15px}
  /* форма: та же логика, но без воздуха «в полный рост» */
  .hero--fit .lead-card--compact{padding:var(--sp-5) var(--sp-6)}
  .hero--fit .lead-card--compact .u-h3{font-size:20px}
  .hero--fit .lead-card--compact .u-caption{font-size:13px;margin-bottom:var(--sp-3)}
  .hero--fit .lead-card--compact .u-field{margin-bottom:var(--sp-2)}
  .hero--fit .lead-card--compact .u-field__label{margin-bottom:4px}
  .hero--fit .lead-card--compact .u-input,
  .hero--fit .lead-card--compact .u-select{padding:11px 14px}
  .hero--fit .lead-card--compact .u-btn--lg{padding:14px 22px}
  .hero--fit .lead-card--compact .lead-form > .u-field__hint{font-size:11.5px;margin-top:8px}
  /* Лента: ростовая пропорция машин сохраняется, а общая высота считается от высоты окна —
     на низком ноутбучном экране лента ужимается сама, а не уезжает за сгиб. */
  .hero--fit .hero__fleet .fleet__item img{
    height:calc(var(--fh) * 0.01 * clamp(80px, 15.5svh, 140px));
  }
  .hero--fit .fleet__title{margin-bottom:var(--sp-1)}
  .hero--fit .fleet__row{padding-bottom:var(--sp-2)}
  .hero--fit .fleet__row::after{bottom:var(--sp-2)}
  .hero--fit .hero__trust{padding-block:8px;font-size:12.5px}
  .hero--fit .lead-card--compact .u-caption{display:none}
  .hero--fit .lead-card--compact .u-h3{margin-bottom:var(--sp-4)}
  /* вариант «лента сверху»: строка-навигация, а не полноростовая витрина */
  .hero--fit .hero__fleet--top .fleet__item img{height:calc(var(--fh) * 0.01 * clamp(54px, 9svh, 88px))}
  .hero--fit .hero__fleet--top{margin-bottom:var(--sp-4);padding-top:var(--sp-2)}
}
/* компактная форма первого экрана */
.lead-card--compact{padding:var(--sp-6)}
.lead-card--compact .u-h3{font-size:22px}
.lead-card--compact .u-caption{margin-bottom:var(--sp-4)}
.lead-card--compact .u-field{margin-bottom:var(--sp-3)}
.lead-card--compact .u-field__hint{margin-top:4px;font-size:12px}
.lead-more{margin-bottom:var(--sp-3)}
.lead-more__btn{
  cursor:pointer;font-size:13.5px;color:var(--link);list-style:none;
  padding:2px 0;display:inline-flex;align-items:center;gap:6px;
}
.lead-more__btn::-webkit-details-marker{display:none}
.lead-more__btn::before{content:"+";font-size:15px;line-height:1}
.lead-more[open] .lead-more__btn::before{content:"–"}
.lead-more__btn:hover{text-decoration:underline}

/* ЛЕНТА СВЕРХУ (вариант «под шапкой»): строка-навигация по всей линейке */
/* Подложка плотная: справа под лентой проходит светлая часть фирменной сцены,
   на ней подписи «Ричтрак» и «УПШ» иначе теряются. */
.hero__fleet--top{
  border-bottom:1px solid rgba(255,255,255,.12);background:rgba(8,16,24,.58);
  -webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);
  margin:0 0 var(--sp-6);padding:var(--sp-3) 0 0;
}
.hero__fleet--top .fleet__cap{color:#c8d3db}
.hero__fleet--top .fleet__row{align-items:flex-end;padding-bottom:var(--sp-3);gap:clamp(4px,1.2vw,20px)}
.hero__fleet--top .fleet__row::after{display:none}
.hero__fleet--top .fleet__item{
  padding:6px 10px;border-radius:var(--r-md);
  transition:transform var(--d-base) var(--ease-out),background var(--d-fast);
}
.hero__fleet--top .fleet__item img{height:calc(var(--fh) * 0.01 * clamp(64px,7.4vw,104px))}
.hero__fleet--top .fleet__item:hover{transform:translateY(-3px);background:rgba(255,255,255,.07)}
.hero__fleet--top .fleet__cap{font-size:10.5px}
.fleet__stock{font-size:10.5px;color:var(--p-300);letter-spacing:.02em;white-space:nowrap}
.hero__fleet:not(.hero__fleet--top) .fleet__stock{color:#7d8d9a}

/* ============================================================ АДАПТИВ */
@media (max-width:1024px){
  .hero__in,.prod-hero__in{grid-template-columns:1fr;gap:var(--sp-8)}
  .hero__bg::before{background-size:128% auto;
    -webkit-mask-image:radial-gradient(120% 78% at 100% 0%,#000 20%,transparent 68%);
    mask-image:radial-gradient(120% 78% at 100% 0%,#000 20%,transparent 68%)}
  .hero__stage{order:2;min-height:auto}
  .hero__stage img{max-height:300px}
  .hero__trust .u-row{gap:var(--sp-4);font-size:12.5px}
}
@media (max-width:860px){
  .cmp-bar{bottom:66px}
  .hero{padding-top:calc(62px + var(--sp-10))}
  .prod-hero{padding-top:calc(62px + var(--sp-8))}
}
@media (max-width:600px){
  .hero__cta{display:grid;grid-template-columns:1fr;gap:var(--sp-2)}
  .hero__cta .u-btn{width:100%}
  .hero__stats{gap:var(--sp-5) var(--sp-6)}
  .stat__v{font-size:26px}
  .quiz{padding:var(--sp-5)}
  .q-opt{font-size:15px;padding:13px 16px}
  .lead-card{padding:var(--sp-5)}
  .hero__trust{display:none}
  .q-res-card img{width:160px}
}

/* ============================================================ ЛЕНТА МОДЕЛЬНОГО РЯДА В HERO
   Машины стоят на одной линии пола. Высота каждой задана переменной --fh
   и пропорциональна реальной высоте машины (мм, мачта сложена):
   рохля 1135 → 41, комплектовщик 1150 → 43, перевозчик 1450 → 52,
   штабелёры 2090 → 75, ричтрак 2400 → 86, УПШ 2800 → 100. */
.hero__fleet{position:relative;padding-top:var(--sp-2);margin-top:calc(-1 * var(--sp-4))}
.fleet__title{text-align:center;color:#8fa2b0;margin:0 0 var(--sp-4)}
.fleet__row{
  display:flex;align-items:flex-end;justify-content:center;gap:clamp(6px,1.6vw,28px);
  position:relative;padding-bottom:var(--sp-6);
}
/* линия пола, на которой стоит техника */
.fleet__row::after{
  content:"";position:absolute;left:var(--gutter);right:var(--gutter);bottom:var(--sp-6);height:1px;
  background:linear-gradient(90deg,transparent,rgba(120,200,255,.42) 18%,rgba(120,200,255,.42) 82%,transparent);
}
.fleet__item{
  display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:var(--sp-2);
  text-decoration:none;flex:0 1 auto;position:relative;
  transition:transform var(--d-base) var(--ease-out),filter var(--d-base) var(--ease-out);
}
.fleet__item img{
  height:calc(var(--fh) * 0.01 * clamp(150px,21vw,290px));
  width:auto;object-fit:contain;object-position:bottom;
  filter:drop-shadow(0 14px 16px rgba(6,26,44,.5));
}
.fleet__cap{
  font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:#8fa2b0;
  white-space:nowrap;transition:color var(--d-fast);
}
.fleet__item:hover{transform:translateY(-6px)}
.fleet__item:hover .fleet__cap{color:#fff}
.fleet__item:focus-visible{outline:2px solid var(--focus);outline-offset:6px;border-radius:var(--r-sm)}
/* остальные машины притухают, когда наводишь на одну — фокус внимания */
.fleet__row:hover .fleet__item{filter:saturate(.55) brightness(.72)}
.fleet__row:hover .fleet__item:hover{filter:none}

@media (max-width:860px){
  .fleet__row{overflow-x:auto;justify-content:flex-start;scroll-snap-type:x mandatory;
    padding-inline:var(--gutter);-webkit-overflow-scrolling:touch}
  .fleet__row::-webkit-scrollbar{display:none}
  .fleet__item{scroll-snap-align:center;flex:0 0 auto}
  .fleet__item img{height:calc(var(--fh) * 0.01 * 150px)}
  .fleet__row:hover .fleet__item{filter:none}
}
@media (max-width:600px){
  .fleet__item img{height:calc(var(--fh) * 0.01 * 128px)}
  .fleet__cap{font-size:10px}
}

/* ============================================================ ЦЕНА
   Ориентир «от» + обязательная подпись: точная цена считается по ИНН */
.price{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;margin:var(--sp-3) 0 var(--sp-4)}
.price__from{font-size:12.5px;color:var(--text-3)}
.price__v{font-family:var(--font-brand);font-size:19px;font-weight:600;letter-spacing:-.01em;
  font-variant-numeric:tabular-nums;color:var(--text)}
.price__note{flex:1 0 100%;font-size:11.5px;color:var(--text-3);line-height:1.4}
.price--lg .price__v{font-size:30px}
.price--lg .price__from{font-size:14px}
.price--ask .price__v{font-size:16px;font-weight:500;color:var(--text-2)}
/* Звёздочка ведёт к сноске в подвале: цена зависит от партии и комплектации (просьба Азата 04.08) */
.price__star{font-size:.62em;vertical-align:super;margin-left:1px;color:var(--text-3);
  text-decoration:none;line-height:0}
.price__star:hover,.price__star:focus-visible{color:var(--link);text-decoration:underline}
.prod-hero .price__v,.prod-hero .price__from{color:#fff}
.prod-hero .price__note,.prod-hero .price__star{color:#9fb0bd}

.thanks-mark{width:72px;height:72px;margin:0 auto var(--sp-6)}
.u-list{margin:0 0 var(--sp-4);padding-left:var(--sp-5);color:var(--text-2)}
.u-list li{margin-bottom:6px}
main .u-h3{margin-top:var(--sp-8)}
