/* Белль — сайт-визитка v2. Чистый CSS. Тёмные секции — графит, светлые — светлая сталь. */

/* ---------- свои шрифты (variable woff2, кириллица + латиница + знак ₽), без Google ---------- */
@font-face { font-family: "Onest"; font-style: normal; font-weight: 400 600; font-display: swap; src: url(fonts/onest-cyrillic.woff2) format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Onest"; font-style: normal; font-weight: 400 600; font-display: swap; src: url(fonts/onest-latin.woff2) format("woff2"); unicode-range: U+0020-007E, U+00A0, U+00AB, U+00B0, U+00B7, U+00BB, U+00D7, U+2010-2015, U+2018-201E, U+2022, U+2026, U+2191, U+2193, U+2212; }
@font-face { font-family: "Onest"; font-style: normal; font-weight: 400 600; font-display: swap; src: url(fonts/onest-rub.woff2) format("woff2"); unicode-range: U+20BD; }
@font-face { font-family: "Unbounded"; font-style: normal; font-weight: 500 700; font-display: swap; src: url(fonts/unbounded-cyrillic.woff2) format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Unbounded"; font-style: normal; font-weight: 500 700; font-display: swap; src: url(fonts/unbounded-latin.woff2) format("woff2"); unicode-range: U+0020-007E, U+00A0, U+00AB, U+00B0, U+00B7, U+00BB, U+00D7, U+2010-2015, U+2018-201E, U+2022, U+2026, U+2191, U+2193, U+2212; }
@font-face { font-family: "Unbounded"; font-style: normal; font-weight: 500 700; font-display: swap; src: url(fonts/unbounded-rub.woff2) format("woff2"); unicode-range: U+20BD; }

:root {
  --bg: #EEF0F1;
  --bg2: #E2E6E9;
  --ink: #14171A;
  --ink2: #454C54;
  --g0: #141619;          /* графит: первый экран, цвета, склад */
  --g1: #1C1F23;          /* графит светлее — полоса фактов */
  --g2: #262A30;          /* кнопки на графите */
  --on: #F3F4F5;
  --on2: #B9C0C8;         /* вторичный текст на графите, 9:1 */
  --accent: #1D43B0;
  --accent-hover: #16358C;
  --accent-light: #8EA6FF; /* акцент на графите, 7,6:1 */
  --f-head: "Unbounded", "Arial Black", "Segoe UI", Arial, sans-serif;
  --f-text: "Onest", "Segoe UI", Arial, sans-serif;
  --wrap: min(100% - 48px, 1240px);
  --head-h: 72px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 84px; }
body { margin: 0; background: var(--bg); color: var(--ink); font: 400 17px/1.55 var(--f-text); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img, svg, canvas { display: block; max-width: 100%; }
h1, h2, h3, p, dl, dd, ul, ol, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }
a { color: inherit; }
button { font: inherit; color: inherit; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.nw { white-space: nowrap; }
.skip { position: absolute; left: 8px; top: -60px; z-index: 50; background: var(--accent); color: #fff; padding: 12px 18px; border-radius: 8px; }
.skip:focus { top: 8px; }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
.head :focus-visible, .hero :focus-visible, .colors :focus-visible, .stock :focus-visible, .contacts :focus-visible, .dock :focus-visible, .foot :focus-visible { outline-color: #fff; }

.h2 { font: 700 clamp(26px, 3vw, 40px)/1.15 var(--f-head); letter-spacing: -0.01em; }
.h2_s { font-size: clamp(22px, 2vw, 26px); margin-bottom: 18px; }
.section { padding: 104px 0; }

/* ---------- кнопки ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 56px; padding: 0 28px; border: 0; border-radius: 10px; cursor: pointer; font: 600 18px/1.2 var(--f-text); text-decoration: none; transition: background-color .2s, transform .12s; }
.btn:active { transform: translateY(1px); }
.btn_main { background: var(--accent); color: #fff; }
.btn_main:hover { background: var(--accent-hover); }
.btn_dark { background: var(--g2); color: var(--on); font-variant-numeric: tabular-nums; }
.btn_dark:hover { background: #313740; }
.btn_icon { width: 22px; height: 22px; flex: none; fill: currentColor; }

/* ---------- шапка ---------- */
.head { position: sticky; top: 0; z-index: 20; background: var(--g0); color: var(--on); }
.head_in { width: var(--wrap); margin-inline: auto; height: var(--head-h); display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.logo { display: flex; align-items: center; gap: 10px; text-decoration: none; min-height: 44px; }
.logo_mark { width: 48px; height: 48px; flex: none; }
.logo_name { display: block; font: 700 21px/1.1 var(--f-head); }
.logo_sub { display: block; font-size: 14px; line-height: 1.3; color: var(--on2); }
.nav { display: flex; align-items: center; gap: 2px; }
.nav_link { min-height: 44px; padding: 0 14px; display: inline-flex; align-items: center; border-radius: 8px; text-decoration: none; font-weight: 500; color: var(--on2); transition: background-color .2s, color .2s; }
.nav_link:hover { background: var(--g2); color: #fff; }
.nav_tel { margin-left: 12px; white-space: nowrap; font: 600 17px/1 var(--f-text); font-variant-numeric: tabular-nums; background: var(--accent); color: #fff; padding: 0 18px; min-height: 44px; display: inline-flex; align-items: center; border-radius: 10px; text-decoration: none; transition: background-color .2s; }
.nav_tel:hover { background: var(--accent-hover); }
.nav_mail { margin-left: 12px; min-height: 44px; padding: 0 16px; display: inline-flex; align-items: center; border: 1.5px solid #3A4048; border-radius: 10px; color: var(--on); font: 400 16px/1 var(--f-text); text-decoration: none; transition: background-color .2s, border-color .2s; }
.nav_mail:hover { background: var(--g2); border-color: #4C545E; }
.nav_call { margin-left: 12px; min-height: 44px; padding: 0 16px; display: inline-flex; align-items: center; border: 1.5px solid var(--accent-light); border-radius: 10px; background: transparent; color: var(--accent-light); cursor: pointer; font: 500 16px/1 var(--f-text); transition: background-color .2s, color .2s; }
.nav_call:hover { background: var(--accent-light); color: var(--g0); }
.nav_mail + .nav_call, .nav_call + .nav_tel { margin-left: 8px; }
.head_call { display: none; }

/* ---------- первый экран: студия ---------- */
.hero { background: var(--g0); color: var(--on); overflow: hidden; }
.hero_in { width: var(--wrap); margin-inline: auto; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px; align-items: center; padding-top: 24px; }
.hero_text { padding: 24px 0 48px; }
.hero_title { font: 700 clamp(28px, 3.25vw, 48px)/1.1 var(--f-head); max-width: 13em; letter-spacing: -0.015em; margin-bottom: 24px; }
.hero_lead { font-size: 19px; line-height: 1.55; color: var(--on2); max-width: 30em; margin-bottom: 30px; }
.hero_price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 16px; margin-bottom: 32px; }
.hero_price_n { font: 700 clamp(34px, 3.4vw, 46px)/1 var(--f-head); letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.hero_price_c { color: var(--on2); font-size: 18px; }
.hero_cta { display: flex; flex-wrap: wrap; gap: 12px; }
.btn_ghost { background: transparent; color: var(--on); box-shadow: inset 0 0 0 2px #3A4048; }
.btn_ghost:hover { background: var(--g2); }
.hero_mail { margin-top: 14px; color: var(--on2); font-size: 17px; }
.hero_mail a { display: inline-flex; align-items: center; min-height: 44px; margin-left: 2px; color: var(--on); font-weight: 600; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; transition: text-decoration-thickness .15s; }
.hero_mail a:hover { text-decoration-thickness: 2px; }
.hero_stage { position: relative; }
.stage_box { position: relative; aspect-ratio: 1 / 1; max-height: 640px; margin-inline: auto; }
/* студийное пятно света за товаром */
.stage_box::before { content: ""; position: absolute; inset: 4% 2% 8%; background: radial-gradient(closest-side, #3a3f46 0%, #2a2e34 42%, rgba(20, 22, 25, 0) 100%); pointer-events: none; }
.stage_still, .stage_canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.stage_still { object-fit: contain; transition: opacity .5s; }
.stage_canvas { opacity: 0; transition: opacity .5s; touch-action: pan-y; cursor: grab; }
.stage_canvas:active { cursor: grabbing; }
.is-live .stage_canvas { opacity: 1; }
.is-live .stage_still { opacity: 0; }
.pick { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 4px 18px; margin-top: -8px; padding-bottom: 8px; }
.pick_name { min-width: 9.5em; font: 600 17px/1.2 var(--f-text); text-align: right; }
.pick_cap { color: var(--on2); font-weight: 400; margin-right: 4px; }
.pick_dots { display: flex; flex-wrap: wrap; justify-content: center; }
.dot { width: 44px; height: 44px; padding: 0; border: 0; background: transparent; cursor: pointer; position: relative; border-radius: 50%; }
.dot::before { content: ""; position: absolute; inset: 10px; border-radius: 50%; background: var(--c); box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.34), inset 0 -4px 6px rgba(0,0,0,.25); transition: transform .15s; }
.dot:hover::before { transform: scale(1.12); }
.dot[aria-pressed="true"]::after { content: ""; position: absolute; inset: 5px; border-radius: 50%; box-shadow: 0 0 0 2px #fff; }
.pick_hint { flex-basis: 100%; display: flex; align-items: center; justify-content: center; gap: 8px; color: var(--on2); font-size: 15px; margin-top: 2px; }
.pick_hint svg { width: 22px; height: 22px; fill: currentColor; }
.facts { background: var(--g1); margin-top: 40px; padding: 30px max((100% - 1240px) / 2, 24px); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.fact_big { display: block; font: 700 clamp(22px, 2.3vw, 30px)/1.15 var(--f-head); letter-spacing: -0.01em; }
.fact_cap { display: block; margin-top: 6px; color: var(--on2); font-size: 17px; }

/* ---------- размеры ---------- */
.sizes { background: var(--bg); }
.sizes_in { width: var(--wrap); margin-inline: auto; display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 64px; align-items: center; }
.lineup { position: relative; width: 100%; max-width: 520px; aspect-ratio: 1080 / 1730; margin-inline: auto; }
.lineup::before { content: ""; position: absolute; left: 0; right: 0; top: 90.17%; bottom: 0; background: var(--bg2); border-radius: 0 0 12px 12px; }
.ruler { position: absolute; inset: 0; width: 100%; height: 100%; }
.ruler_g line { stroke: #6B737C; stroke-width: 3; vector-effect: non-scaling-stroke; }
.ruler_g line { stroke-width: 1.5; }
.ruler_t { position: absolute; left: 7.4%; transform: translateY(-50%); font: 500 13px/1 var(--f-text); color: var(--ink2); font-variant-numeric: tabular-nums; white-space: nowrap; }
.lu { position: absolute; height: auto; transform-origin: 50% 100%; }
.lu_t { position: absolute; transform: translate(-50%, calc(-100% - 10px)); font: 700 20px/1 var(--f-head); white-space: nowrap; font-variant-numeric: tabular-nums; }
.js.motion .lineup .lu { opacity: 0; transform: translateY(6%) rotate(-7deg); transition: opacity .6s var(--d), transform .9s cubic-bezier(.2,.8,.2,1.15) var(--d); }
.js.motion .lineup .lu_t { opacity: 0; transition: opacity .5s .5s; }
.js.motion .lineup.is-up .lu { opacity: 1; transform: none; }
.js.motion .lineup.is-up .lu_t { opacity: 1; }
.sizes_text .h2 { margin-bottom: 16px; }
.sizes_lead { max-width: 32em; margin-bottom: 30px; }
.spec { width: 100%; border-collapse: collapse; font-size: 17px; }
.spec th { text-align: left; font-weight: 600; color: var(--ink2); padding: 0 16px 12px; font-size: 15px; }
.spec td, .spec tbody th { padding: 18px 16px; vertical-align: baseline; }
.spec tbody tr { background: #F7F8F9; }
.spec tbody tr:nth-child(even) { background: var(--bg2); }
.spec tbody th.spec_len { font: 700 20px/1.2 var(--f-head); color: var(--ink); white-space: nowrap; font-variant-numeric: tabular-nums; }
.spec_steel { font-weight: 600; white-space: nowrap; font-variant-numeric: tabular-nums; }
.spec_price { font: 700 22px/1.2 var(--f-head); white-space: nowrap; font-variant-numeric: tabular-nums; text-align: right; }
.spec th.spec_price_h { text-align: right; white-space: nowrap; }
.sizes_note { margin-top: 20px; font-weight: 600; font-size: 17px; }

/* ---------- цвета ---------- */
.colors { background: var(--g0); color: var(--on); }
.colors_in { width: var(--wrap); margin-inline: auto; display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); gap: 48px; align-items: center; }
.colors_text .h2 { margin-bottom: 14px; }
.colors_lead { color: var(--on2); max-width: 30em; margin-bottom: 30px; }
.swatches { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.swatch { display: block; padding: 0 0 8px; border: 0; border-radius: 8px; background: transparent; color: var(--on); text-align: left; cursor: pointer; transition: transform .15s; }
.swatch:hover { transform: translateY(-3px); }
.swatch:active { transform: translateY(0); }
.swatch_chip { display: block; aspect-ratio: 4 / 5; border-radius: 6px; background: var(--c); box-shadow: inset 0 0 0 1px rgba(255,255,255,.12), inset 0 -10px 18px rgba(0,0,0,.22), inset 0 8px 12px rgba(255,255,255,.12); }
.swatch_name { display: block; margin-top: 8px; font: 500 15px/1.2 var(--f-text); color: var(--on2); }
.swatch[aria-pressed="true"] .swatch_chip { box-shadow: 0 0 0 3px var(--g0), 0 0 0 5px #fff; }
.swatch[aria-pressed="true"] .swatch_name { color: #fff; font-weight: 700; }
.colors_note { margin-top: 28px; color: var(--on2); max-width: 34em; font-size: 16px; }
.fan { position: relative; }
.fan_cap { color: var(--on2); font-size: 16px; }
.fan_name { display: block; color: #fff; font: 700 clamp(24px, 2.6vw, 34px)/1.15 var(--f-head); margin-top: 2px; }
.fan_box { position: relative; aspect-ratio: 4 / 3; margin-top: -24px; }
.fan_box::before { content: ""; position: absolute; inset: 10% 6% 0; background: radial-gradient(closest-side, #30343a 0%, rgba(20, 22, 25, 0) 100%); pointer-events: none; }

/* ---------- из чего сделано ---------- */
.made { background: var(--bg2); }
.made_in { width: var(--wrap); margin-inline: auto; display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: 64px; align-items: center; }
.macro { position: relative; background: #24272C; border-radius: 14px; overflow: hidden; }
.macro_img { width: 100%; height: auto; aspect-ratio: 4 / 3; }
.macro_l { position: absolute; width: 10px; height: 10px; margin: -5px 0 0 -5px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 3px rgba(0,0,0,.35); }
.macro_l::after { content: ""; position: absolute; left: 4px; bottom: 5px; width: 1.5px; height: 64px; background: #fff; }
.macro_t { position: absolute; left: -12px; bottom: 72px; white-space: nowrap; background: #fff; color: var(--ink); font: 600 15px/1.2 var(--f-text); padding: 9px 12px; border-radius: 6px; }
.macro_zoom { position: absolute; left: 62%; top: 4%; width: 34%; height: auto; aspect-ratio: 1; border-radius: 50%; box-shadow: 0 0 0 3px #fff, 0 12px 30px rgba(0,0,0,.45); }
.macro_mark { position: absolute; width: 22px; height: 22px; margin: -11px 0 0 -11px; border-radius: 50%; box-shadow: 0 0 0 2px #fff; }
.macro_link { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.macro_link line { stroke: #fff; stroke-width: 1.5; vector-effect: non-scaling-stroke; stroke-dasharray: 4 4; }
.macro_l_down::after { top: 5px; bottom: auto; }
.macro_l_down .macro_t { top: 72px; bottom: auto; left: -60px; }
.macro_cap { position: absolute; left: 20px; bottom: 16px; right: 20px; color: #B9C0C8; font-size: 14px; }
.made_text .h2 { margin-bottom: 18px; }
.made_lead { max-width: 30em; margin-bottom: 32px; }
.made_list { display: grid; grid-template-columns: 1fr 1fr; gap: 26px 32px; }
.made_k { display: block; font: 700 21px/1.2 var(--f-head); }
.made_v { display: block; margin-top: 4px; color: var(--ink2); }

/* ---------- склад ---------- */
.stock { background: var(--g0); color: var(--on); padding-bottom: 0; }
.stock_head { width: var(--wrap); margin-inline: auto; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 32px; align-items: end; margin-bottom: 40px; }
.stock_lead { color: var(--on2); max-width: 26em; }
.wall { width: min(100%, 1440px); margin-inline: auto; overflow: hidden; }
.wall_img { width: 100%; height: auto; aspect-ratio: 2 / 1; object-fit: cover; }

/* ---------- заказ и вопросы ---------- */
.order { background: var(--bg); }
.order_in { width: var(--wrap); margin-inline: auto; display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 64px; }
.order_p { max-width: 28em; }
.steps { display: grid; gap: 14px; }
.step { display: grid; grid-template-columns: 52px 1fr; gap: 16px; align-items: center; background: #F7F8F9; border-radius: 10px; padding: 14px 18px; }
.step_n { font: 700 30px/1 var(--f-head); color: var(--accent); }
.step_t { font-size: 18px; }
.faq { width: var(--wrap); margin: 72px auto 0; }
.faq_item { background: #F7F8F9; border-radius: 10px; margin-bottom: 10px; }
.faq_q { list-style: none; cursor: pointer; padding: 16px 56px 16px 20px; min-height: 56px; font: 600 18px/1.35 var(--f-text); position: relative; display: flex; align-items: center; border-radius: 10px; }
.faq_q::-webkit-details-marker { display: none; }
.faq_q::after { content: ""; position: absolute; right: 22px; top: 50%; width: 11px; height: 11px; margin-top: -8px; border-right: 3px solid var(--accent); border-bottom: 3px solid var(--accent); transform: rotate(45deg); transition: transform .2s; }
.faq_item[open] .faq_q::after { transform: rotate(-135deg); margin-top: -2px; }
.faq_q:hover { background: #E9ECEE; }
.faq_a { padding: 0 20px 18px; max-width: 46em; }

/* ---------- контакты ---------- */
.contacts { background: var(--accent); color: #fff; }
.contacts_in { width: var(--wrap); margin-inline: auto; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 56px; align-items: center; }
.contacts .h2 { margin-bottom: 16px; }
.contacts_lead { font-size: 19px; max-width: 24em; margin-bottom: 18px; }
.contacts_city { font-weight: 600; }
.contacts_mail { display: inline-flex; align-items: center; vertical-align: middle; gap: 12px; min-height: 48px; margin: 0 0 0 20px; color: #fff; font: 600 clamp(20px, 2.1vw, 28px)/1.2 var(--f-text); text-decoration: none; }
.contacts_mail span { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; transition: text-decoration-thickness .15s; }
.contacts_mail:hover span { text-decoration-thickness: 2px; }
.contacts_mail_ico { width: 30px; height: 30px; flex: none; fill: currentColor; }
.phone { display: flex; align-items: center; min-height: 44px; font: 700 clamp(28px, 3.7vw, 50px)/1.1 var(--f-head); letter-spacing: -0.02em; text-decoration: none; font-variant-numeric: tabular-nums; margin-bottom: 18px; white-space: nowrap; }
.phone:hover { text-decoration: underline; text-underline-offset: 6px; }
.copy { display: inline-flex; vertical-align: middle; align-items: center; gap: 10px; min-height: 48px; padding: 0 20px; background: transparent; color: #fff; border: 2px solid #fff; border-radius: 10px; cursor: pointer; font: 600 17px/1 var(--f-text); transition: background-color .2s, color .2s; }
.copy:hover { background: #fff; color: var(--accent); }
.copy:active { transform: translateY(1px); }
.msg { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 34px; }
.msg_btn { display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between; gap: 22px; min-height: 120px; padding: 18px 20px; background: #fff; color: var(--ink); border: 0; border-radius: 12px; text-decoration: none; font: 700 20px/1.2 var(--f-text); cursor: pointer; text-align: left; transition: background-color .2s, transform .12s; }
.msg_btn:hover { background: #E7EBF8; }
.msg_btn:active { transform: translateY(1px); }
.msg_ico { width: 40px; height: 40px; }
.msg_wa .msg_ico { fill: #25D366; }
.msg_tg .msg_ico { fill: #229ED9; }
.msg_max .msg_ico { fill: none; stroke: var(--ink); }
.msg_hint { display: block; margin-top: 4px; font-weight: 400; font-size: 14px; color: var(--ink2); }

/* ---------- подвал ---------- */
.foot { background: #0F1113; color: var(--on2); padding: 40px 0 44px; }
.foot_in { width: var(--wrap); margin-inline: auto; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 32px; align-items: center; }
.foot_name { color: #fff; font: 600 17px/1.3 var(--f-head); }
.foot_links { display: flex; flex-wrap: wrap; gap: 4px 28px; }
.foot_tel { color: #fff; font: 600 19px/1.2 var(--f-text); text-decoration: none; font-variant-numeric: tabular-nums; min-height: 44px; display: inline-flex; align-items: center; }
.foot_tel:hover { text-decoration: underline; text-underline-offset: 5px; }
.foot_small { flex-basis: 100%; display: flex; flex-wrap: wrap; gap: 0 28px; margin-top: -4px; font-size: 15px; }
.foot_small a, .foot_small button { display: inline-flex; align-items: center; min-height: 44px; padding: 0; border: 0; background: none; cursor: pointer; color: var(--on2); font: inherit; text-decoration: underline; text-underline-offset: 4px; }
.foot_small a:hover, .foot_small button:hover { color: #fff; }
.foot :focus-visible { outline-color: #fff; }

/* ---------- подсказка «скопировано» (создаётся из JS) ---------- */
.toast { position: fixed; left: 50%; bottom: 28px; z-index: 60; transform: translate(-50%, 20px); opacity: 0; background: #fff; color: var(--ink); padding: 14px 20px; border-radius: 10px; font-weight: 600; box-shadow: 0 10px 30px rgba(0,0,0,.25); transition: opacity .2s, transform .2s; pointer-events: none; max-width: calc(100% - 32px); }
.toast.is-on { opacity: 1; transform: translate(-50%, 0); }

/* ---------- появление секций ---------- */
.js.motion [data-reveal] { opacity: 0; transform: translateY(24px); transition: opacity .7s, transform .7s cubic-bezier(.2,.7,.2,1); }
.js.motion [data-reveal].in { opacity: 1; transform: none; }

/* ---------- форма заявки и окно ---------- */
.contacts_form { width: var(--wrap); margin: 56px auto 0; }
.lead { background: #fff; color: var(--ink); border-radius: 16px; padding: 32px; }
.lead_h { font: 700 clamp(22px, 2.4vw, 30px)/1.15 var(--f-head); letter-spacing: -0.01em; }
.lead_lead { margin: 8px 0 24px; color: var(--ink2); }
.lead_types { display: inline-flex; margin: 0 0 24px; padding: 4px; border: 0; border-radius: 12px; background: var(--bg2); }
.lead_type { position: relative; display: block; }
.lead_type input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.lead_type span { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 22px; border-radius: 9px; font-weight: 600; transition: background-color .15s, color .15s; }
.lead_type input:hover + span { background: #D3D9DE; }
.lead_type input:checked + span { background: var(--accent); color: #fff; }
.lead_type input:focus-visible + span { outline: 3px solid var(--accent); outline-offset: 2px; }
.lead_grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px 20px; margin-bottom: 18px; }
.lead_f { min-width: 0; margin: 0 0 18px; padding: 0; border: 0; }
.lead_grid .lead_f { margin-bottom: 0; }
.lead_f label, .lead_f legend { display: block; margin: 0 0 6px; padding: 0; font-weight: 600; }
.lead_req, .lead_opt { font-weight: 400; font-size: 14px; color: var(--ink2); margin-left: 4px; }
.lead_in { display: block; width: 100%; min-height: 52px; padding: 12px 14px; border: 1.5px solid #AEB6BE; border-radius: 10px; background: #fff; color: var(--ink); font: 400 17px/1.4 var(--f-text); transition: border-color .15s, box-shadow .15s; }
textarea.lead_in { min-height: 96px; resize: vertical; }
select.lead_in { appearance: none; -webkit-appearance: none; padding-right: 40px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1.5l6 6 6-6' fill='none' stroke='%231D43B0' stroke-width='2.2'/%3E%3C/svg%3E") no-repeat right 14px center; }
.lead_in:hover { border-color: #6B737C; }
.lead_in:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(29, 67, 176, .22); }
.lead_in[aria-invalid="true"] { border-color: #A4141C; background-color: #FBEAEA; }
.lead_hint { margin-top: 6px; font-size: 15px; color: var(--ink2); }
.lead_err { margin-top: 6px; font-size: 15px; font-weight: 500; color: #A4141C; }
.lead_err:empty { display: none; }
.lead_note { margin: 0 0 12px; font-weight: 600; }
.lead_order { margin: 0 0 6px; }
.lead_order[hidden] { display: none; }
.lead_len { grid-column: 1 / -1; }
.lead_chips { display: flex; flex-wrap: wrap; gap: 8px; }
.lead_chip { position: relative; display: block; margin: 0 !important; }
.lead_chip input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.lead_chip span { display: inline-flex; align-items: center; min-height: 52px; padding: 0 16px; border: 1.5px solid #AEB6BE; border-radius: 10px; font-weight: 600; background: #fff; transition: background-color .15s, border-color .15s, color .15s; }
.lead_chip input:hover + span { border-color: #6B737C; }
.lead_chip input:checked + span { background: var(--accent); border-color: var(--accent); color: #fff; }
.lead_chip input:focus-visible + span { outline: 3px solid var(--accent); outline-offset: 2px; }
.lead_cap_row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; }
.lead_cap_img { width: 220px; height: 72px; border-radius: 10px; background: var(--bg); box-shadow: inset 0 0 0 1.5px #AEB6BE; }
.lead_cap_new { display: none; min-height: 44px; padding: 0; border: 0; border-radius: 10px; background: transparent; color: var(--accent); cursor: pointer; font: 600 16px/1 var(--f-text); text-decoration: underline; text-underline-offset: 4px; }
.js .lead_cap_new { display: inline-flex; align-items: center; }
.lead_cap_new:hover { color: var(--accent-hover); }
.lead_cap_in { width: 200px; min-height: 64px; font-size: 28px; font-weight: 600; letter-spacing: .22em; text-align: center; font-variant-numeric: tabular-nums; }
.lead_cap_in::placeholder { font-size: 18px; letter-spacing: 0; font-weight: 400; }
.lead_hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.lead_consent { display: flex !important; align-items: flex-start; gap: 12px; margin: 0 !important; font-weight: 400 !important; cursor: pointer; }
.lead_consent input { flex: none; width: 24px; height: 24px; margin: 2px 0 0; accent-color: var(--accent); cursor: pointer; }
.lead_consent a { color: var(--accent); text-underline-offset: 3px; }
.lead_foot { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin-top: 6px; }
.lead_btn:disabled { opacity: .6; cursor: default; }
.lead_status { flex: 1 1 240px; font-weight: 500; }
.lead_status.is-err { color: #A4141C; }
.lead_thanks { padding: 8px 0 4px; outline: none; }
.lead_thanks_t { font: 700 clamp(22px, 2.4vw, 30px)/1.15 var(--f-head); margin-bottom: 10px; }
.lead_thanks p { margin-bottom: 18px; max-width: 32em; }
.lead_thanks .btn { margin: 0 12px 8px 0; }
.lead :focus-visible { outline-color: var(--accent); }
.lead_thanks .btn_ghost { color: var(--ink); box-shadow: inset 0 0 0 2px #AEB6BE; }
.lead_thanks .btn_ghost:hover { background: var(--bg2); }

.modal { position: fixed; inset: 0; z-index: 70; display: flex; overflow-y: auto; padding: 16px; background: rgba(10, 12, 14, .74); opacity: 0; transition: opacity .2s; }
.modal.is-on { opacity: 1; }
.modal_box { position: relative; width: min(100%, 880px); margin: auto; transform: translateY(14px); transition: transform .2s; }
.modal.is-on .modal_box { transform: none; }
.modal_x { position: absolute; right: 12px; top: 12px; z-index: 2; width: 48px; height: 48px; padding: 0; border: 0; border-radius: 50%; background: var(--bg2); cursor: pointer; transition: background-color .15s; }
.modal_x:hover { background: #D3D9DE; }
.modal_x::before, .modal_x::after { content: ""; position: absolute; left: 14px; top: 23px; width: 20px; height: 2.5px; border-radius: 2px; background: var(--ink); transform: rotate(45deg); }
.modal_x::after { transform: rotate(-45deg); }
.modal_x:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
.modal .lead { padding-top: 40px; }
.modal .lead_h { padding-right: 56px; }
.modal-open { overflow: hidden; }

/* ---------- документ (политика) и страница 404 ---------- */
.doc_back { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border: 1.5px solid #3A4048; border-radius: 10px; color: var(--on); text-decoration: none; font-weight: 500; transition: background-color .2s; }
.doc_back:hover { background: var(--g2); }
.doc { background: var(--bg); padding: 72px 0 96px; }
.doc_in { width: min(100% - 32px, 820px); margin-inline: auto; }
.doc_h1 { font: 700 clamp(26px, 3.4vw, 42px)/1.15 var(--f-head); letter-spacing: -0.015em; margin-bottom: 14px; }
.doc_meta { color: var(--ink2); margin-bottom: 20px; }
.doc h2 { font: 700 clamp(19px, 2vw, 23px)/1.25 var(--f-head); letter-spacing: -0.01em; margin: 40px 0 14px; }
.doc p, .doc li { max-width: 46em; }
.doc p { margin-bottom: 14px; }
.doc ul { padding-left: 1.25em; list-style: disc; margin-bottom: 14px; }
.doc li { margin-bottom: 10px; padding-left: 4px; }
.doc a { color: var(--accent); text-underline-offset: 3px; }
.doc a:hover { color: var(--accent-hover); text-decoration-thickness: 2px; }
.page_flex { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; background: #0F1113; }
.page_flex .nf { flex: 1; display: grid; align-items: center; }
.nf { background: var(--g0); color: var(--on); padding: 96px 0; }
.nf_in { width: var(--wrap); margin-inline: auto; text-align: center; }
.nf_code { font: 700 clamp(72px, 14vw, 160px)/1 var(--f-head); letter-spacing: -0.03em; color: var(--accent-light); }
.nf_title { font: 700 clamp(24px, 3vw, 36px)/1.15 var(--f-head); margin: 18px 0 14px; }
.nf_text { color: var(--on2); max-width: 28em; margin: 0 auto 32px; }
.nodock .head :focus-visible, .nodock .nf :focus-visible { outline-color: #fff; }

/* ---------- плашка cookie (создаётся из JS, не сдвигает страницу) ---------- */
.cookie { position: fixed; left: 24px; bottom: 24px; z-index: 40; width: min(560px, calc(100% - 48px)); display: grid; gap: 14px; padding: 18px 20px; background: var(--g1); color: var(--on); border-radius: 14px; box-shadow: 0 14px 40px rgba(0, 0, 0, .4), inset 0 0 0 1px rgba(255, 255, 255, .09); opacity: 0; transform: translateY(20px); transition: opacity .3s, transform .3s; }
.cookie.is-on { opacity: 1; transform: none; }
.cookie_t { font-size: 16px; line-height: 1.5; color: var(--on2); }
.cookie_t a { color: #fff; text-underline-offset: 3px; }
.cookie_b { display: flex; flex-wrap: wrap; gap: 10px; }
.cookie_btn { min-height: 48px; padding: 0 24px; border: 0; border-radius: 10px; cursor: pointer; font: 600 16px/1 var(--f-text); transition: background-color .2s, transform .12s; }
.cookie_btn:active { transform: translateY(1px); }
.cookie_y { background: var(--accent); color: #fff; }
.cookie_y:hover { background: var(--accent-hover); }
.cookie_n { background: var(--g2); color: var(--on); }
.cookie_n:hover { background: #313740; }
.cookie :focus-visible { outline-color: #fff; }

/* ---------- нижняя панель (телефон) ---------- */
.dock { display: none; }

@media (max-width: 1320px) {
  .nav_mail { display: none; }
}

@media (max-width: 1180px) {
  .nav_call { display: none; }
  .nav_call + .nav_tel { margin-left: 12px; }
}

@media (max-width: 1100px) {
  .section { padding: 84px 0; }
  .sizes_in, .colors_in, .made_in, .order_in, .contacts_in { gap: 40px; }
}

@media (max-width: 900px) {
  .nav_link { padding: 0 10px; }
  .hero_in { grid-template-columns: minmax(0, 1fr); gap: 0; padding-top: 8px; }
  .hero_text { padding: 24px 0 8px; }
  .stage_box { max-width: 520px; }
  .sizes_in, .colors_in, .made_in, .order_in, .contacts_in, .stock_head { grid-template-columns: minmax(0, 1fr); }
  .lineup { max-width: 420px; }
  .macro { order: 2; }
}

@media (max-width: 760px) {
  :root { --head-h: 64px; --wrap: min(100% - 32px, 1240px); }
  body { padding-bottom: calc(76px + env(safe-area-inset-bottom)); }
  .section { padding: 64px 0; }
  .nav { display: none; }
  .head_call { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 50%; background: var(--accent); color: #fff; flex: none; transition: background-color .2s; }
  .head_call:hover { background: var(--accent-hover); }
  .head_call svg { width: 22px; height: 22px; fill: currentColor; }
  .logo_mark { width: 42px; height: 42px; }
  .logo_name { font-size: 19px; }
  .hero_in { display: flex; flex-direction: column; }
  .hero_text { display: contents; }
  .hero_title { order: 1; padding-top: 18px; }
  .hero_stage { order: 2; }
  .hero_price { order: 3; margin-top: 18px; }
  .hero_cta { order: 4; }
  .hero_mail { order: 5; margin-top: 8px; font-size: 16px; }
  .hero_lead { order: 6; margin: 14px 0 4px; }
  .stage_box { aspect-ratio: 4 / 3; }
  .hero_title { font-size: clamp(26px, 7.2vw, 36px); margin-bottom: 0; }
  .hero_lead { font-size: 17px; margin-bottom: 22px; }
  .hero_price { margin-bottom: 22px; }
  .hero_cta .btn { flex: 1 1 100%; }
  .stage_box { margin-inline: -8px; }
  .pick { gap: 2px 10px; margin-top: -4px; }
  .pick_name { flex-basis: 100%; text-align: center; min-width: 0; }
  .pick_dots { display: grid; grid-template-columns: repeat(5, 44px); gap: 2px 10px; }
  .facts { grid-template-columns: 1fr; gap: 16px; padding: 26px 16px; margin-top: 28px; }
  .fact_big { font-size: 24px; }
  .lineup { max-width: 330px; }
  .lu_t { font-size: 15px; transform: translate(-50%, calc(-100% - 6px)); }
  .ruler_t { font-size: 11px; left: 6.6%; }
  .sizes_lead { margin-bottom: 22px; }
  .spec { font-size: 15px; }
  .spec th, .spec td, .spec tbody th { padding: 12px 8px; }
  .spec tbody th.spec_len { font-size: 16px; padding: 12px 8px; }
  .spec th.spec_price_h { white-space: normal; }
  .spec_price { font-size: 17px; }
  .swatches { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 12px; }
  .swatch { display: flex; align-items: center; gap: 12px; padding: 4px 0; min-height: 52px; }
  .swatch_chip { width: 44px; aspect-ratio: 1; flex: none; }
  .swatch_name { margin: 0; font-size: 16px; }
  .colors_text { display: contents; }
  .colors_in { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
  .colors_text .h2 { order: 1; }
  .colors_lead { order: 2; margin-bottom: 8px; }
  .fan { order: 3; margin-bottom: 20px; }
  .fan_box { margin: 0 -16px; }
  .swatches { order: 4; }
  .colors_note { order: 5; }
  .macro_t { font-size: 13px; padding: 7px 9px; }
  .macro_l::after { height: 44px; }
  .macro_l .macro_t { bottom: 50px; }
  .macro_l_down .macro_t { top: 50px; bottom: auto; left: -70px; }
  .macro_mark { width: 16px; height: 16px; margin: -8px 0 0 -8px; }
  .macro_cap { position: static; padding: 0 16px 14px; font-size: 13px; }
  .made_list { grid-template-columns: 1fr 1fr; gap: 18px 20px; }
  .made_k { font-size: 18px; }
  .stock_head { margin-bottom: 28px; gap: 12px; }
  .wall_img { aspect-ratio: 5 / 4; object-position: 62% 50%; }
  .step { grid-template-columns: 36px 1fr; padding: 12px 14px; }
  .step_t { font-size: 17px; }
  .faq { margin-top: 48px; }
  .faq_q { font-size: 17px; }
  .msg { grid-template-columns: 1fr; margin-top: 26px; }
  .msg_btn { flex-direction: row; align-items: center; min-height: 64px; padding: 12px 18px; gap: 16px; justify-content: flex-start; }
  .msg_ico { width: 32px; height: 32px; flex: none; }
  .phone { font-size: clamp(25px, 7.4vw, 36px); }
  .contacts_mail { display: flex; margin: 14px 0 0; font-size: clamp(19px, 5.6vw, 24px); }
  .contacts_mail_ico { width: 26px; height: 26px; }
  .foot { padding: 32px 0 36px; }
  .toast { bottom: calc(86px + env(safe-area-inset-bottom)); }
  .dock { display: grid; position: fixed; left: 0; right: 0; bottom: 0; z-index: 30; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; padding: 8px 10px calc(8px + env(safe-area-inset-bottom)); background: var(--g0); }
  .dock_btn { border: 0; min-height: 56px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; border-radius: 10px; background: var(--g2); color: #fff; text-decoration: none; font: 600 14px/1.1 var(--f-text); transition: background-color .2s, transform .12s; cursor: pointer; }
  .dock_btn:hover { background: #343A42; }
  .dock_btn:active { transform: translateY(1px); }
  .dock_btn svg { width: 24px; height: 24px; }
  .dock_call svg { fill: #fff; }
  .dock_wa svg { fill: #25D366; }
  .dock_tg svg { fill: #3DB4EC; }
  .dock_max svg { fill: none; stroke: #fff; }
  .nodock .dock { display: none; }
  .nodock { padding-bottom: 0; }
  .cookie { left: 8px; right: 8px; width: auto; bottom: calc(80px + env(safe-area-inset-bottom)); }
  .contacts_form { margin-top: 36px; }
  .lead { padding: 22px 16px; border-radius: 14px; }
  .modal { padding: 8px; }
  .modal .lead { padding-top: 56px; }
  .lead_types { display: flex; width: 100%; }
  .lead_type { flex: 1 1 0; }
  .lead_type span { width: 100%; padding: 0 6px; text-align: center; font-size: 16px; white-space: nowrap; }
  .lead_grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .lead_cap_row { gap: 6px 16px; }
  .lead_cap_img { width: 200px; height: auto; aspect-ratio: 220 / 72; }
  .lead_cap_in { width: 100%; }
  .lead_btn { width: 100%; }
  .nodock .cookie { bottom: 8px; }
  .cookie_btn { flex: 1 1 0; }
  .doc { padding: 48px 0 72px; }
  .nf { padding: 64px 0; }
}

/* ==================== подсказка «листайте ниже» (начало блока) ====================
   Включается классами на <html>: hint_a — «подглядывание» (первый экран телефона чуть ниже),
   hint_b — подсказка: на телефоне «язычок» — верхний ряд нижней панели, на компьютере «пилюля» внизу первого экрана.
   Без классов ничего не меняется. JS — js/hint.js (создаёт подсказку, поэтому страница не сдвигается). */

/* B, компьютер: «пилюля» внизу первого экрана */
.hint_pill { position: fixed; left: 0; right: 0; bottom: 28px; z-index: 35; width: max-content; max-width: calc(100% - 32px); margin-inline: auto; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 20px 0 14px; border: 0; border-radius: 22px; background: var(--g0); color: var(--on); box-shadow: inset 0 0 0 1.5px var(--accent-light), 0 8px 22px rgba(0, 0, 0, .45); font: 600 15px/1.2 var(--f-text); cursor: pointer; opacity: 0; transform: translateY(10px); transition: opacity .35s, transform .35s, background-color .2s; -webkit-tap-highlight-color: transparent; }
.hint_pill.is-on { opacity: 1; transform: none; }
.hint_pill:hover { background: var(--g2); }
.hint_pill:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.hint_arr { width: 22px; height: 22px; flex: none; fill: none; stroke: var(--accent-light); stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; animation: hint_bob 1.8s ease-in-out infinite; }
@keyframes hint_bob { 0%, 100% { transform: translateY(-2px); } 50% { transform: translateY(3px); } }
.modal-open .hint_pill, .modal-open .hint_tab { visibility: hidden; }
.hint_focus:focus { outline: none; }

@media (max-width: 760px) {
  /* B, телефон: «язычок» — верхний ряд нижней панели (кнопка внутри .dock, над четырьмя кнопками).
     z-index -1: при уходе вниз полоса скользит за панель. Фон и шрифт как у панели, сверху скругление, снизу тонкий разделитель */
  .hint_tab { position: absolute; left: 0; right: 0; bottom: 100%; z-index: -1; height: 36px; display: flex; align-items: center; justify-content: center; gap: 8px; padding: 0 16px; border: 0; border-radius: 14px 14px 0 0; background: var(--g0); color: #fff; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08), inset 0 -1px 0 rgba(255, 255, 255, .12); font: 600 14px/1.1 var(--f-text); cursor: pointer; opacity: 0; transform: translateY(100%); transition: opacity .35s, transform .35s; -webkit-tap-highlight-color: transparent; }
  .hint_tab.is-on { opacity: 1; transform: none; }
  .hint_tab:active { background: var(--g1); }
  .hint_tab:focus-visible { outline: 3px solid #fff; outline-offset: -3px; }
  .hint_tab .hint_arr { width: 20px; height: 20px; }

  /* A: над нижней панелью выглядывают кнопка с телефоном и край «Заказать звонок» (≈92 px при 390×844, ≈57 px при 360×780).
     Высота сцены рожка зависит от высоты экрана: от 196 до 300 px (было 280 при ширине 390). 626 = всё остальное на экране + панель */
  .hint_a .hero_title { padding-top: 12px; }
  .hint_a .stage_box { aspect-ratio: auto; height: clamp(196px, calc(100vh - 626px), 300px); height: clamp(196px, calc(100svh - 626px), 300px); }
  .hint_a .pick { margin-top: -2px; padding-bottom: 0; }
  .hint_a .hero_price { margin-top: 10px; margin-bottom: 14px; }
  .hint_a .hero_cta { gap: 8px; }
}
/* ==================== подсказка «листайте ниже» (конец блока) ==================== */

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}
