/* /b2b в дизайне главной. Меню, подвал и токены — из /a/site-v2.css */
.b2b { --pad:clamp(16px,5vw,64px); }
.b2b a { text-decoration:none; }
.rv { opacity:0; transform:translateY(26px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
.rv.in { opacity:1; transform:none; }

/* ---------- кнопки ---------- */
.b-btn { position:relative; display:inline-block; padding:16px 26px; border-radius:14px; font-weight:600; font-size:16px; border:0; cursor:pointer; overflow:hidden; font-family:inherit; transition:transform .25s, box-shadow .3s, background .25s; }
.b-btn.primary { color:#fff; background:linear-gradient(135deg,#60a5fa,#2563eb); box-shadow:0 10px 40px -10px rgba(59,130,246,.8); }
.b-btn.primary::after { content:""; position:absolute; top:0; left:-60%; width:40%; height:100%; transform:skewX(-20deg); background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent); animation:bsweep 3.5s ease-in-out infinite; }
@keyframes bsweep { 0%,60% { left:-60%; } 100% { left:130%; } }
.b-btn.primary:hover { transform:translateY(-2px); box-shadow:0 16px 50px -8px rgba(59,130,246,1); }
.b-btn.ghost { color:#fff; border:1px solid rgba(255,255,255,.3); background:rgba(255,255,255,.06); backdrop-filter:blur(8px); }
.b-btn.ghost:hover { background:rgba(255,255,255,.14); }
.b-btn.white { color:var(--accent); background:#fff; box-shadow:0 10px 30px -12px rgba(10,22,40,.4); }
.b-btn.white:hover { transform:translateY(-2px); }
.b-btn[disabled] { opacity:.6; pointer-events:none; }

/* ---------- первый экран ---------- */
.bh { position:relative; min-height:100vh; min-height:100svh; display:flex; align-items:center; overflow:hidden; background:var(--navy); color:#fff; isolation:isolate; }
.bh-media { position:absolute; inset:-4%; background:url(/b2b/assets/polexpert-work-katren.jpg) 72% center / cover; filter:saturate(.8); transform:scale(1.08); will-change:transform; }
.bh-shade { position:absolute; inset:0; background:linear-gradient(100deg, rgba(10,22,40,.96) 10%, rgba(10,22,40,.82) 42%, rgba(10,22,40,.45) 100%), linear-gradient(0deg, rgba(10,22,40,.9), transparent 30%); }
.bh-grid { position:absolute; inset:0; opacity:.55; pointer-events:none;
  background-image:linear-gradient(rgba(125,211,252,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(125,211,252,.06) 1px, transparent 1px); background-size:64px 64px;
  -webkit-mask-image:radial-gradient(ellipse at 70% 40%, #000, transparent 70%); mask-image:radial-gradient(ellipse at 70% 40%, #000, transparent 70%); }
.bh-in { position:relative; z-index:2; width:100%; max-width:1320px; margin:0 auto; padding:120px var(--pad) 90px; display:grid; grid-template-columns:1.05fr .95fr; gap:40px; align-items:center; }
.bh-badge { display:inline-flex; align-items:center; gap:8px; padding:7px 14px; border:1px solid rgba(125,211,252,.3); border-radius:999px; font-size:13px; color:var(--cyan); background:rgba(125,211,252,.06); margin:0 0 26px; }
.bh-badge::before { content:""; width:7px; height:7px; border-radius:50%; background:#22c55e; box-shadow:0 0 10px #22c55e; }
.bh h1 { margin:0; font-size:clamp(36px,5vw,66px); font-weight:800; line-height:1.04; letter-spacing:-.03em; }
.bh h1 em { font-style:normal; background:linear-gradient(90deg,#fff 0%,var(--cyan) 45%,var(--blue) 70%,#fff 100%); background-size:200% 100%; -webkit-background-clip:text; background-clip:text; color:transparent; animation:bshine 6s linear infinite; }
@keyframes bshine { to { background-position:-200% 0; } }
.bh-lead { margin:22px 0 0; font-size:clamp(16px,1.4vw,19px); line-height:1.6; color:rgba(255,255,255,.78); max-width:580px; }
.bh-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:32px; }
.bh-facts { list-style:none; padding:0; margin:48px 0 0; display:flex; gap:clamp(18px,3vw,40px); flex-wrap:wrap; }
.bh-facts li { border-left:2px solid rgba(125,211,252,.45); padding-left:14px; }
.bh-facts b { display:block; font-size:19px; font-weight:800; } .bh-facts small { color:rgba(255,255,255,.62); font-size:13px; }
.bh-visual img { width:118%; max-width:none; margin-left:-6%; filter:drop-shadow(0 40px 60px rgba(0,0,0,.55)); will-change:transform; animation:float 7s ease-in-out infinite; }
@keyframes float { 50% { translate:0 -12px; } }

/* ---------- светлый лист ---------- */
.sheet { position:relative; z-index:3; margin-top:-44px; border-radius:44px 44px 0 0; background:var(--bg-l); box-shadow:0 -30px 60px -20px rgba(3,8,18,.5); padding-bottom:40px; }
.b-sec { max-width:1320px; margin:0 auto; padding:96px var(--pad) 0; }
.b-head { display:flex; justify-content:space-between; align-items:flex-end; gap:24px 48px; flex-wrap:wrap; margin-bottom:44px; }
.b-head > div { max-width:760px; }
.b-eye { font-family:"JetBrains Mono",ui-monospace,monospace; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); margin:0 0 14px; }
.b-eye.light { color:var(--cyan); }
.b2b h2 { margin:0; font-size:clamp(28px,3.6vw,48px); font-weight:800; line-height:1.1; letter-spacing:-.025em; color:var(--ink); }
.b-intro { max-width:460px; color:var(--mut); font-size:16px; line-height:1.6; margin:0; }
.b-link { color:var(--accent); font-weight:700; white-space:nowrap; }

/* карточки */
.b-grid4 { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.b-card { position:relative; background:#fff; border:1px solid var(--bd); border-radius:22px; padding:26px; box-shadow:var(--sh); transition:transform .45s var(--ease), box-shadow .45s, border-color .3s; }
.b-card:hover { transform:translateY(-6px); border-color:#c9d6ea; box-shadow:0 24px 50px -24px rgba(10,22,40,.28); }
.b-card img { width:72px; height:72px; object-fit:contain; display:block; margin-bottom:18px; transition:transform .5s var(--ease); }
.b-card:hover img { transform:scale(1.08) rotate(-3deg); }
.b-num { position:absolute; top:22px; right:24px; font-family:"JetBrains Mono",monospace; font-size:13px; color:#94a3b8; }
.b-card h3 { margin:0 0 8px; font-size:18px; font-weight:800; color:var(--ink); }
.b-card p { margin:0; color:var(--mut); font-size:14px; line-height:1.55; }

/* тёмная плитка */
.b-dark { display:grid; grid-template-columns:.95fr 1.05fr; gap:48px; padding:48px; border-radius:32px; color:#fff; overflow:hidden; position:relative;
  background:radial-gradient(circle at 85% 10%, rgba(59,130,246,.35), transparent 45%), var(--navy); box-shadow:0 30px 70px -30px rgba(10,22,40,.55); }
.b-dark h2 { color:#fff; }
.bd-intro { color:rgba(255,255,255,.72); line-height:1.6; margin:16px 0 0; max-width:520px; }
.bd-photo { margin:26px 0 0; border-radius:20px; overflow:hidden; position:relative; }
.bd-photo img { width:100%; height:260px; object-fit:cover; display:block; transition:transform 1s var(--ease); }
.bd-photo:hover img { transform:scale(1.05); }
.bd-photo figcaption { position:absolute; left:0; right:0; bottom:0; padding:30px 16px 12px; font-size:13px; color:rgba(255,255,255,.85); background:linear-gradient(0deg, rgba(10,22,40,.85), transparent); }
.bd-list { display:grid; gap:12px; align-content:center; }
.bd-row { display:flex; gap:16px; align-items:center; padding:16px 18px; border-radius:18px; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.08); transition:background .3s, transform .4s var(--ease); }
.bd-row:hover { background:rgba(255,255,255,.09); transform:translateX(6px); }
.bd-row img { width:56px; height:56px; object-fit:contain; flex:none; }
.bd-row span { font-family:"JetBrains Mono",monospace; font-size:12px; color:var(--cyan); }
.bd-row p { margin:4px 0 0; color:rgba(255,255,255,.88); line-height:1.5; }
.b-dark.cta { grid-template-columns:1.3fr .7fr; align-items:center; }
.b-dark.cta .bh-actions { justify-content:flex-end; margin:0; }

/* кейс */
.b-case { display:grid; grid-template-columns:1.25fr .75fr; gap:32px; align-items:center; background:#fff; border:1px solid var(--bd); border-radius:28px; padding:28px; box-shadow:var(--sh); }
.b-browser { border-radius:18px; overflow:hidden; border:1px solid var(--bd); box-shadow:0 30px 60px -30px rgba(10,22,40,.35); }
.b-bar { display:flex; align-items:center; gap:7px; padding:11px 14px; background:#f3f6fa; border-bottom:1px solid #e8edf3; }
.b-bar i { width:10px; height:10px; border-radius:50%; background:#ff5f57; } .b-bar i:nth-child(2) { background:#febc2e; } .b-bar i:nth-child(3) { background:#28c840; }
.b-bar span { margin-left:10px; font-size:12px; color:#94a3b8; background:#fff; padding:3px 14px; border-radius:8px; }
.b-shot { overflow:hidden; aspect-ratio:16/10; }
.b-shot img { width:100%; display:block; transition:transform 6s ease; }
.b-case:hover .b-shot img { transform:translateY(-12%); }
.b-story p { color:var(--ink-2); line-height:1.65; margin:0 0 12px; }
.b-story .b-eye { margin-bottom:12px; }
.b-metrics { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:20px; }
.b-metrics div { background:#f5f8fc; border-radius:14px; padding:14px; }
.b-metrics b { display:block; font-size:28px; font-weight:800; color:var(--accent); font-variant-numeric:tabular-nums; }
.b-metrics small { font-size:12px; color:var(--mut); line-height:1.35; display:block; }
.b-gallery { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:18px; }
.b-gallery figure { margin:0; position:relative; border-radius:22px; overflow:hidden; aspect-ratio:4/3; box-shadow:var(--sh); }
.b-gallery img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 1s var(--ease); }
.b-gallery figure:hover img { transform:scale(1.06); }
.b-gallery figcaption { position:absolute; left:0; right:0; bottom:0; padding:34px 16px 14px; color:#fff; font-size:14px; font-weight:600; background:linear-gradient(0deg, rgba(10,22,40,.85), transparent); }

/* шаги */
.b-steps { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(4,1fr); gap:18px; counter-reset:s; position:relative; }
.b-steps::before { content:""; position:absolute; top:62px; left:8%; right:8%; height:2px; background:linear-gradient(90deg,#c9d6ea,var(--accent),#c9d6ea); opacity:.6; }
.b-steps li { position:relative; background:#fff; border:1px solid var(--bd); border-radius:22px; padding:24px; box-shadow:var(--sh); }
.b-steps img { width:80px; height:80px; object-fit:contain; display:block; margin-bottom:12px; position:relative; }
.b-steps span { position:absolute; top:20px; right:22px; width:34px; height:34px; border-radius:50%; display:grid; place-items:center; font-family:"JetBrains Mono",monospace; font-size:12px; background:var(--accent); color:#fff; box-shadow:0 0 0 6px rgba(32,130,255,.12); }
.b-steps h3 { margin:0 0 8px; font-size:17px; font-weight:800; color:var(--ink); }
.b-steps p { margin:0; color:var(--mut); font-size:14px; line-height:1.55; }

/* цена */
.b-price { display:grid; grid-template-columns:1.1fr .9fr; gap:40px; padding:48px; border-radius:32px; color:#fff; position:relative; overflow:hidden;
  background:radial-gradient(circle at 10% 0%, rgba(255,255,255,.18), transparent 40%), linear-gradient(135deg,#3b82f6,#1d4ed8); box-shadow:0 30px 70px -30px rgba(29,78,216,.7); }
.b-price h2 { color:#fff; }
.b-price > div > p { color:rgba(255,255,255,.85); line-height:1.6; margin:16px 0 0; max-width:520px; }
.bp-inc { background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2); border-radius:22px; padding:26px; backdrop-filter:blur(8px); }
.bp-inc ul { list-style:none; padding:0; margin:0; display:grid; gap:12px; }
.bp-inc li { display:flex; gap:12px; align-items:center; }
.bp-inc li::before { content:"✓"; width:24px; height:24px; flex:none; border-radius:50%; display:grid; place-items:center; font-size:12px; background:#fff; color:var(--accent); font-weight:800; }

/* честно */
.b-qual { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.b-qual ul { list-style:none; padding:0; margin:14px 0 0; display:grid; gap:12px; }
.b-qual li { display:flex; gap:12px; align-items:center; color:var(--ink-2); }
.b-qual .yes li::before { content:"✓"; width:24px; height:24px; flex:none; border-radius:50%; display:grid; place-items:center; font-size:12px; background:#dcfce7; color:#16a34a; font-weight:800; }
.b-qual .no li::before { content:"✕"; width:24px; height:24px; flex:none; border-radius:50%; display:grid; place-items:center; font-size:11px; background:#fee2e2; color:#dc2626; font-weight:800; }

/* форма */
.b-form-wrap { display:grid; grid-template-columns:.9fr 1.1fr; gap:48px; padding:44px; border-radius:30px; background:radial-gradient(circle at 0% 0%, rgba(32,130,255,.12), transparent 50%), #fff; border:1px solid var(--bd); box-shadow:0 30px 70px -40px rgba(10,22,40,.3); }
.b-form-copy p:not(.b-eye) { color:var(--mut); line-height:1.6; margin:16px 0 0; }
.b-contacts { display:grid; gap:8px; margin-top:24px; font-size:17px; font-weight:600; }
.b-contacts a { color:var(--ink); } .b-contacts .tg { color:var(--accent); }
.b-form { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.b-form label { display:grid; gap:7px; } .b-form label > span { font-size:13px; color:var(--mut); }
.b-form .full { grid-column:1 / -1; }
.b-form input[type=text], .b-form textarea { width:100%; padding:15px 17px; border-radius:14px; border:1px solid var(--bd); background:#fff; color:var(--ink); font:inherit; font-size:15px; resize:vertical; box-shadow:var(--sh); transition:border-color .25s, box-shadow .25s; }
.b-form input:focus, .b-form textarea:focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 4px rgba(32,130,255,.14); }
.b-form .consent { display:flex; gap:10px; align-items:flex-start; font-size:13px; color:var(--mut); }
.b-form .consent input { width:18px; height:18px; margin-top:2px; accent-color:var(--accent); flex:none; }
.b-form .consent a { color:var(--accent); text-decoration:underline; }
.b-form .form-error { color:#b91c1c; background:#fee2e2; padding:12px 14px; border-radius:12px; font-size:14px; }
.b-form .form-success, .form-success { grid-column:1/-1; text-align:center; padding:40px 10px; font-size:20px; font-weight:700; color:#16a34a; }


/* ---------- моушн: уведомления вокруг ноутбука ---------- */
.bh-visual { position:relative; }
.bh-pings { position:absolute; inset:0; pointer-events:none; }
.bh-ping { position:absolute; display:flex; gap:10px; align-items:center; padding:10px 14px; border-radius:16px; background:rgba(255,255,255,.95); color:#0a1628; backdrop-filter:blur(10px);
  box-shadow:0 18px 40px -14px rgba(0,0,0,.55); animation:ping 4.2s cubic-bezier(.2,.8,.2,1) forwards; white-space:nowrap; }
.bh-ping.l { left:-4%; top:14%; } .bh-ping.r { right:-2%; bottom:16%; }
.bh-ping span { width:34px; height:34px; border-radius:11px; display:grid; place-items:center; background:#eef4ff; font-size:17px; }
.bh-ping b { display:block; font-size:13px; } .bh-ping small { font-size:12px; color:#5b6b82; }
@keyframes ping { 0% { opacity:0; transform:translateY(14px) scale(.92); } 12%,78% { opacity:1; transform:none; } 100% { opacity:0; transform:translateY(-10px) scale(.96); } }

/* ---------- бегущая строка отраслей ---------- */
.b-marquee { overflow:hidden; padding:30px 0 6px; border-bottom:1px solid var(--bd); -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); }
.b-track { display:flex; gap:48px; width:max-content; animation:brun 36s linear infinite; padding-bottom:24px; }
.b-marquee:hover .b-track { animation-play-state:paused; }
.b-track span { font-size:clamp(20px,2.3vw,28px); font-weight:800; white-space:nowrap; color:rgba(10,22,40,.14); transition:color .3s; }
.b-track span:hover { color:var(--ink); }
.b-track i { font-style:normal; color:var(--accent); margin-left:48px; }
@keyframes brun { to { transform:translateX(-50%); } }

/* ---------- было / может стать ---------- */
.b-ba { --p:50%; position:relative; aspect-ratio:16/10; border-radius:26px; overflow:hidden; border:1px solid var(--bd); box-shadow:0 30px 70px -30px rgba(10,22,40,.4); user-select:none; touch-action:pan-y; cursor:ew-resize; background:#fff; }
.b-ba img { display:block; width:100%; height:100%; object-fit:cover; object-position:top; pointer-events:none; }
.b-ba .ba-after { position:absolute; inset:0; }
.b-ba .ba-before { position:absolute; inset:0; clip-path:inset(0 calc(100% - var(--p)) 0 0); }
.b-ba .ba-handle { position:absolute; top:0; bottom:0; left:var(--p); width:0; z-index:3; }
.b-ba .ba-handle::before { content:""; position:absolute; top:0; bottom:0; left:-1.5px; width:3px; background:#fff; box-shadow:0 0 0 1px rgba(10,22,40,.15), 0 0 20px rgba(10,22,40,.25); }
.b-ba .ba-handle i { position:absolute; top:50%; left:0; transform:translate(-50%,-50%); width:52px; height:52px; border-radius:50%; background:#fff; display:grid; place-items:center; font-style:normal; font-weight:800; color:var(--accent); box-shadow:0 8px 24px rgba(10,22,40,.3); transition:transform .2s; }
.b-ba.drag .ba-handle i { transform:translate(-50%,-50%) scale(1.12); }
.b-ba .ba-lbl { position:absolute; top:16px; z-index:2; font-size:13px; font-weight:700; padding:6px 12px; border-radius:99px; background:rgba(10,22,40,.75); color:#fff; }
.b-ba .ba-lbl.l { left:16px; } .b-ba .ba-lbl.r { right:16px; background:var(--accent); }
.b-cap { margin:14px 0 0; font-size:13px; color:var(--mut); }
@media (max-width:900px) { .bh-ping.l { left:0; top:4%; } .bh-ping.r { right:0; bottom:4%; } }
@media (max-width:760px) { .b-ba { aspect-ratio:4/5; } .b-ba img { object-position:left top; } .bh-ping { transform-origin:center; padding:8px 11px; } .bh-ping b { font-size:12px; } .bh-ping small { font-size:11px; } }

/* ---------- адаптив ---------- */
@media (max-width:1100px) { .b-grid4, .b-steps { grid-template-columns:1fr 1fr; } .b-steps::before { display:none; } }
@media (max-width:900px) {
  .bh-in { grid-template-columns:1fr; padding-top:100px; } .bh-visual { order:-1; max-width:520px; margin:0 auto; } .bh-visual img { width:100%; margin:0; }
  .b-dark, .b-dark.cta, .b-case, .b-price, .b-form-wrap, .b-qual { grid-template-columns:1fr; }
  .b-dark.cta .bh-actions { justify-content:flex-start; }
}
@media (max-width:760px) {
  .sheet { margin-top:-28px; border-radius:28px 28px 0 0; }
  .b-sec { padding-top:64px; }
  .b-grid4, .b-steps, .b-gallery { grid-template-columns:1fr; }
  .b-dark, .b-price, .b-form-wrap { padding:24px 18px; border-radius:24px; }
  .b-case { padding:16px; border-radius:22px; }
  .b-form { grid-template-columns:1fr; }
  .bh-actions .b-btn { width:100%; text-align:center; }
  .bd-photo img { height:200px; }
}
@media (prefers-reduced-motion:reduce) { .rv { opacity:1; transform:none; transition:none; } .bh-visual img, .b-btn.primary::after, .bh h1 em { animation:none; } }
