/* Публичный сайт ArgHub: те же токены, что в Mini App (концепция А «Тёплая бумага», решение владельца 22.10): крем, белые карточки, терракота,
   заголовки Literata, текст Manrope. Тёмная тема — тёплая коричневая. Шрифты — свои (public/fonts, OFL). */
:root {
  --navy: #2B1E12; --blue: #C4502A; --cyan: #E2764A; --violet: #6B3E26; --pink: #C4502A; --coral: #B86A1E; --orange: #B86A1E; --mint: #2F7D52; --grey: #EFE6D8; --cel: #C4502A; --wash: #F1E9DC; --line-2: #D9CBB6;
  --white: #FFFFFF; --light-14: rgba(255,255,255,.14); --light-22: rgba(255,255,255,.22); --photo-ink: #241A10; --btn-primary-bg: #C4502A; --btn-primary-ink: #FFFFFF; --btn-primary-hover: #AB431F; --mark-url: url(/brand/favicon.svg);
  --grad: #C4502A;
  --bg: #F8F3EB; --card: #FFFFFF; --ink: #241A10; --muted: #665847; --line: #EADFCF; --soft: #F1E9DC; --accent: #A8401F; --accent-ink: #FFFFFF; --accent-hover: #8C3417;
  --focus: #C4502A; --ok: #2F7D52; --danger: #AB2446;
  --shadow: 0 1px 2px rgba(60,40,10,.06), 0 10px 24px -10px rgba(60,40,10,.20); --radius: 22px; --w: 1180px;
  --head: Manrope, system-ui, sans-serif; --serif: Literata, Georgia, "Times New Roman", serif; --text: Manrope, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  color-scheme: light dark;
}
/* тёмная тема: по системе, если на сайте не выбрана «Светлая»; выбранная «Тёмная» — всегда (ARG-SITE-THEME: <html data-theme> ставит сервер по cookie) */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) { --bg: #1A140E; --card: #251C14; --ink: #F5EDE0; --muted: #B7A894; --line: #3A2E22; --soft: #2E241B; --accent: #EE8F68; --accent-ink: #1F130A; --accent-hover: #F2A688; --wash: #251C14; --line-2: #4A3B2C; --navy: #251C14; --violet: #E8C9A8; --blue: #E2764A; --btn-primary-bg: #E2764A; --btn-primary-ink: #1F130A; --btn-primary-hover: #EE8F68; --mark-url: url(/brand/favicon.svg); --grad: #E2764A;
    --focus: #E2764A; --ok: #7CD9A0; --danger: #FFADB8; --shadow: 0 1px 2px rgba(0,0,0,.25), 0 10px 28px rgba(0,0,0,.28); }
}
:root[data-theme="dark"] { --bg: #1A140E; --card: #251C14; --ink: #F5EDE0; --muted: #B7A894; --line: #3A2E22; --soft: #2E241B; --accent: #EE8F68; --accent-ink: #1F130A; --accent-hover: #F2A688; --wash: #251C14; --line-2: #4A3B2C; --navy: #251C14; --violet: #E8C9A8; --blue: #E2764A; --btn-primary-bg: #E2764A; --btn-primary-ink: #1F130A; --btn-primary-hover: #EE8F68; --mark-url: url(/brand/favicon.svg); --grad: #E2764A;
  --focus: #E2764A; --ok: #7CD9A0; --danger: #FFADB8; --shadow: 0 1px 2px rgba(0,0,0,.25), 0 10px 28px rgba(0,0,0,.28); color-scheme: dark; }
:root[data-theme="light"] { color-scheme: light; }
@font-face { font-family: Manrope; font-style: normal; font-weight: 200 800; font-display: swap; src: url(/fonts/manrope-cyrillic.woff2) format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: Manrope; font-style: normal; font-weight: 200 800; font-display: swap; src: url(/fonts/manrope-latin-ext.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: Manrope; font-style: normal; font-weight: 200 800; font-display: swap; src: url(/fonts/manrope-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: Literata; font-style: normal; font-weight: 600; font-display: swap; src: url(/fonts/literata-cyrillic.woff2) format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: Literata; font-style: normal; font-weight: 600; font-display: swap; src: url(/fonts/literata-latin-ext.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: Literata; font-style: normal; font-weight: 600; font-display: swap; src: url(/fonts/literata-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: Lora; src: url(/fonts/Lora-Variable.ttf) format("truetype"); font-weight: 400 700; font-display: swap; }
@font-face { font-family: Sora; src: url(/fonts/Sora-Variable.woff) format("woff"); font-weight: 100 800; font-display: swap;
  unicode-range: U+0000-024F, U+1E00-1EFF, U+2000-206F, U+20A0-20CF, U+2100-214F, U+2190-21FF; }
html:lang(zh) { --text: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif; --head: var(--text); }
html:lang(ko) { --text: "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif; --head: var(--text); }
/* логотип ArgHub (горизонтальный SVG брендбука): светлый вариант — на светлой теме, тёмный — на тёмной */
.lg-d { display: none; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .lg-l { display: none; } :root:not([data-theme="light"]) .lg-d { display: inline; } }
:root[data-theme="dark"] .lg-l { display: none; } :root[data-theme="dark"] .lg-d { display: inline; }
.brand img.logo-h { width: auto; height: 34px; } /* без display — показ решают .lg-l / .lg-d */
.foot-brand .brand img.logo-h { height: 32px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; } }
* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; } /* без синей вспышки Android/Telegram при нажатии — нажатие показываем цветом бренда (.btn:active) */
html { scroll-behavior: smooth; }
html, body { margin: 0; background: var(--bg); color: var(--ink); font: 15px/1.55 var(--text); -webkit-font-smoothing: antialiased; }
a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; }
a:focus-visible, summary:focus-visible, button:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; border-radius: 6px; } /* брендбук §5: 3 px, отступ 2 px */
h1, h2, h3 { font-family: var(--serif); font-weight: 600; font-synthesis: none; color: var(--ink); overflow-wrap: anywhere; text-wrap: balance; letter-spacing: -.01em; }
h1 { font-size: 26px; font-weight: 600; line-height: 1.15; margin: 6px 0 8px; }
h2 { font-size: 17px; font-weight: 600; margin: 28px 0 12px; }
h2 a { color: inherit; }
p { margin: 0 0 12px; }
img { max-width: 100%; height: auto; }
.muted { color: var(--muted); } .small { font-size: 12.5px; }

/* ---------- шапка ---------- */
.top { position: sticky; top: 0; z-index: 5; display: flex; align-items: center; gap: 14px; padding: 10px max(16px, calc((100% - var(--w)) / 2 + 16px));
  background: color-mix(in srgb, var(--bg) 96%, transparent); border-bottom: 1px solid var(--line); } /* телефон: без backdrop-filter — иначе шапка станет «рамкой» для position:fixed и нижнее меню прилипнет к ней */
.brand { display: flex; align-items: center; gap: 8px; color: var(--ink); font: 700 18px/1 var(--head); letter-spacing: -.02em; margin-right: auto; }
.brand:hover { text-decoration: none; }
.brand svg { width: 28px; height: 26px; flex: none; }
.nav { display: none; gap: 4px; }
.nav a { color: var(--ink); font-weight: 600; font-size: 14px; padding: 8px 12px; border-radius: 10px; }
.nav a:hover { background: var(--soft); text-decoration: none; }
/* вкладки приложения (ARG-WEB-021): телефон — нижнее меню, как в Mini App; компьютер (≥ 960) — в шапке. Ведут в веб-приложение / #… */
.appnav { position: fixed; z-index: 6; left: 0; right: 0; bottom: 0; display: grid; grid-template-columns: repeat(5, 1fr); padding: 6px 4px calc(6px + env(safe-area-inset-bottom));
  background: color-mix(in srgb, var(--card) 92%, transparent); backdrop-filter: saturate(1.4) blur(14px); -webkit-backdrop-filter: saturate(1.4) blur(14px);
  border-top: 1px solid var(--line); box-shadow: 0 -6px 20px rgba(20,26,74,.06); }
.appnav a { display: flex; flex-direction: column; align-items: center; gap: 3px; min-width: 0; padding: 4px 2px; border-radius: 10px; color: var(--muted);
  font: 600 10.5px/1.15 var(--text); text-align: center; }
.appnav a span { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.appnav a:hover { color: var(--accent); background: var(--soft); text-decoration: none; }
.appnav svg { width: 22px; height: 22px; flex: none; }
body:has(.top .appnav) { padding-bottom: calc(62px + env(safe-area-inset-bottom)); }
.signin { flex: none; }
/* «Вход для бизнеса» (ARG-CRM-001): в шапке ArgHub — рядом с «Войти», на сайте бизнеса — перед языком; на узком телефоне в шапке ArgHub — только портфель */
.bizin { flex: none; gap: 6px; white-space: nowrap; }
.bizin svg { width: 16px; height: 16px; flex: none; }
.bsite .bizin { color: var(--biz, var(--accent)); }
.bs-top .bizin { margin-left: auto; }
.bizin .bzs { display: none; }
@media (max-width: 520px) { .top:not(.bs-top) .bizin { padding: 0 9px; } .top:not(.bs-top) .bizin span { display: none; } }
.lng { position: relative; }
.lng summary { list-style: none; cursor: pointer; font: 600 12.5px/1 var(--text); padding: 9px 10px; border: 1px solid var(--line); border-radius: 10px; color: var(--ink); background: var(--card); }
.lng summary::-webkit-details-marker { display: none; }
.lng summary::after { content: "▾"; margin-left: 5px; color: var(--muted); }
.lng > div { position: absolute; right: 0; top: calc(100% + 6px); display: grid; grid-template-columns: repeat(2, 64px); gap: 2px; padding: 6px; background: var(--card);
  border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow); }
.lng > div a, .lng > div b { padding: 7px 10px; border-radius: 8px; font-size: 13px; color: var(--ink); }
.lng > div b { background: var(--soft); color: var(--accent); }
.lng > div a:hover { background: var(--soft); text-decoration: none; }
/* тема сайта (ARG-SITE-THEME): кнопка-иконка рядом с языком, меню «Авто / Светлая / Тёмная» без JS */
.thm { position: relative; flex: none; }
.thm summary { list-style: none; cursor: pointer; display: grid; place-items: center; width: 34px; height: 32px; border: 1px solid var(--line); border-radius: 10px; color: var(--ink); background: var(--card); }
.thm summary::-webkit-details-marker { display: none; }
.thm svg { width: 18px; height: 18px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.thm svg .f { fill: currentColor; stroke: none; }
.thm > div { position: absolute; right: 0; top: calc(100% + 6px); z-index: 7; display: grid; gap: 2px; min-width: 156px; padding: 6px; background: var(--card);
  border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow); }
.thm > div a, .thm > div b { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 8px; font: 600 13px/1.2 var(--text); color: var(--ink); white-space: nowrap; }
.thm > div b { background: var(--soft); color: var(--accent); }
.thm > div a:hover { background: var(--soft); text-decoration: none; }

main { max-width: var(--w); margin: 0 auto; padding: 10px 16px 40px; }
.crumbs { font-size: 12.5px; color: var(--muted); margin: 8px 0 6px; overflow-wrap: anywhere; }
.crumbs a { color: var(--muted); }
.lead { color: var(--muted); font-size: 14.5px; }

/* ---------- кнопки ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; border-radius: 14px; padding: 0 18px; background: var(--accent); color: var(--accent-ink);
  font: 600 14px/1.2 var(--text); text-align: center; box-shadow: 0 6px 18px color-mix(in srgb, var(--accent) 22%, transparent); white-space: nowrap; }
.btn:hover { text-decoration: none; background: var(--accent-hover); }
.btn.ghost:hover, .btn.light:hover { background: color-mix(in srgb, var(--accent) 16%, transparent); }
.btn:active { background: color-mix(in srgb, var(--accent) 82%, #000); transform: scale(.98); }
.btn.ghost:active, .btn.light:active { background: color-mix(in srgb, var(--accent) 24%, transparent); }
.btn.ghost { background: var(--soft); color: var(--accent); box-shadow: none; }
.btn.light { background: rgba(255,255,255,.12); color: #fff; box-shadow: inset 0 0 0 1px rgba(255,255,255,.28); }
.btn.sm { min-height: 34px; padding: 0 12px; font-size: 12.5px; border-radius: 10px; }
.wb-banner { margin: 12px 0; padding: 14px 16px; border-radius: var(--radius); background: color-mix(in srgb, #12B76A 16%, var(--card)); border: 1px solid var(--line); text-align: center; }
.wb-banner p { margin: 0 0 8px; }
.wb-banner .wb-t { font-weight: 700; font-size: 1.05em; }
.wb-banner .wb-s { font-size: .9em; opacity: .85; }
.wb-banner .wb-tg { display: block; margin: 10px auto; max-width: 360px; }
.cta { display: flex; flex-wrap: wrap; gap: 8px; margin: 28px 0 8px; padding: 16px; background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.cta .btn { flex: 1 1 200px; }
.cta p { flex-basis: 100%; margin: 0; }
/* «или в Telegram» — маленькая вторая ссылка рядом с главной кнопкой (ARG-WEB-020/021) */
.tg-alt { align-self: center; padding: 6px 4px; font: 600 13px/1.2 var(--text); color: var(--accent); }
.hero .tg-alt { color: rgba(255,255,255,.82); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(255,255,255,.35); }
.hero .tg-alt:hover { color: #fff; }

/* ---------- главная: герой ---------- */
.hero { position: relative; display: grid; gap: 18px; margin: 8px 0 6px; padding: 28px 20px 22px; border-radius: 22px; overflow: hidden; color: #fff; isolation: isolate;
  background: linear-gradient(100deg, rgba(36,26,16,.97) 0%, rgba(36,26,16,.86) 45%, rgba(36,26,16,.45) 100%), url(/img/hero-city-600.webp) center 70% / cover, var(--navy); }
.hero::before { content: ""; position: absolute; z-index: -1; right: -70px; top: -90px; width: 260px; height: 260px; border-radius: 42% 58% 55% 45%; background: var(--grad); opacity: .55; filter: blur(8px); }
.hero::after { content: ""; position: absolute; z-index: -1; left: 40%; bottom: -120px; width: 220px; height: 220px; border-radius: 55% 45% 40% 60%; background: linear-gradient(120deg, var(--violet), var(--pink)); opacity: .25; filter: blur(30px); }
.kicker { display: inline-block; margin: 0 0 12px; padding: 6px 11px; border-radius: 99px; background: rgba(255,255,255,.1); box-shadow: inset 0 0 0 1px rgba(255,255,255,.18);
  font: 600 12px/1 var(--text); color: rgba(255,255,255,.9); }
.hero h1 { color: #fff; font-size: 28px; line-height: 1.12; letter-spacing: -.03em; margin: 0 0 10px; }
.hero .hero-sub { color: rgba(255,255,255,.9); font-size: 17px; font-weight: 600; margin: 0 0 8px; }
.hero .lead { color: rgba(255,255,255,.78); font-size: 14.5px; margin: 0 0 18px; }
.hero-cta { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.stats { display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 0; padding: 0; list-style: none; }
.stats li { display: flex; flex-direction: column; }
.stats b { font: 700 18px/1.2 var(--head); color: #fff; }
.stats span { font-size: 12px; color: rgba(255,255,255,.65); }
.rate-card { display: grid; gap: 8px; align-self: end; padding: 16px 18px; border-radius: 18px; color: #fff; background: rgba(255,255,255,.1);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.18); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); }
.rate-card:hover { text-decoration: none; background: rgba(255,255,255,.15); }
.rc-k { font: 600 12.5px/1 var(--text); color: rgba(255,255,255,.75); }
.rc-v { display: flex; gap: 22px; }
.rc-v > span { display: flex; flex-direction: column; }
.rc-v small { font-size: 11px; color: rgba(255,255,255,.6); }
.rc-v b { font: 700 26px/1.1 var(--head); letter-spacing: -.02em; }
.rc-f { font-size: 11px; color: rgba(255,255,255,.55); }
.rc-l { font: 600 13px/1 var(--text); color: #C9D6FF; }

/* ---------- плитки разделов: иконка на мягкой плитке, 4 в ряд на телефоне ---------- */
.tiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px 8px; }
.tile { display: flex; flex-direction: column; align-items: center; gap: 7px; padding: 12px 3px 10px; background: var(--card); border: 1px solid var(--line); border-radius: var(--radius);
  box-shadow: var(--shadow); color: var(--ink); text-align: center; transition: transform .15s, border-color .15s; }
.tile:hover { text-decoration: none; transform: translateY(-2px); border-color: color-mix(in srgb, var(--violet) 40%, var(--line)); }
.tile .ic { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 14px; background: color-mix(in srgb, var(--c, var(--blue)) 13%, transparent); color: var(--c, var(--blue)); }
.tile .ic svg { width: 22px; height: 22px; }
.tile span:last-child { font: 600 11px/1.25 var(--text); overflow-wrap: normal; word-break: normal; hyphens: auto; -webkit-hyphens: auto; max-width: 100%; }
/* цвета категорий брендбука (tokens.json categories), на светлой теме затемнены до ≥ 4.5:1 — чистые #00AA8B/#E97625/#06A9DA на белом < 3:1 */
.ic-exchange, .ic-tourism { --c: #04799E; } .ic-services, .ic-market { --c: #7444E0; } .ic-realty, .ic-parks { --c: #00806A; }
.ic-foodshops { --c: #C2307A; } .ic-leisuregrp { --c: #B4570F; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .ic-exchange, :root:not([data-theme="light"]) .ic-tourism { --c: #6CD3F5; } :root:not([data-theme="light"]) .ic-services, :root:not([data-theme="light"]) .ic-market { --c: #C2A6FF; }
  :root:not([data-theme="light"]) .ic-realty, :root:not([data-theme="light"]) .ic-parks { --c: #5FD6BC; } :root:not([data-theme="light"]) .ic-foodshops { --c: #F58BC2; } :root:not([data-theme="light"]) .ic-leisuregrp { --c: #F7A869; } }
:root[data-theme="dark"] .ic-exchange, :root[data-theme="dark"] .ic-tourism { --c: #6CD3F5; } :root[data-theme="dark"] .ic-services, :root[data-theme="dark"] .ic-market { --c: #C2A6FF; }
:root[data-theme="dark"] .ic-realty, :root[data-theme="dark"] .ic-parks { --c: #5FD6BC; } :root[data-theme="dark"] .ic-foodshops { --c: #F58BC2; } :root[data-theme="dark"] .ic-leisuregrp { --c: #F7A869; }
/* ---------- «Разделы» на главной: фото-плитки со счётчиком, как в Mini App (владелец 04.10) ----------
   фон — <img> внутри плитки (CSP не пускает style=), подпись на тёмной подложке: белый по navy ≥ 4.5:1 в обеих темах */
.ptiles { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.ptile { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 18px; background: var(--navy); color: #fff; isolation: isolate; box-shadow: 0 4px 14px rgba(36,26,16,.14); transition: transform .15s, box-shadow .15s; }
.ptile:hover { text-decoration: none; transform: translateY(-2px); box-shadow: 0 8px 22px rgba(36,26,16,.22); }
.ptile picture, .ptile img { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.ptile img { object-fit: cover; z-index: -1; transition: transform .35s; }
.ptile:hover img { transform: scale(1.04); }
.ptile.wide { grid-column: 1 / -1; aspect-ratio: 16 / 6; }
.ptile.wide img { object-position: center 35%; }
.ptiles > .ptile:last-child:nth-child(odd) { grid-column: span 2; aspect-ratio: 16 / 6; }
.pcnt { position: absolute; top: 8px; left: 8px; max-width: calc(100% - 16px); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; background: rgba(36,26,16,.86); color: #fff; font: 600 11px/1 var(--text); padding: 6px 9px; border-radius: 99px; }
.plbl { position: absolute; left: 0; right: 0; bottom: 0; display: flex; align-items: center; gap: 8px; padding: 9px 10px; background: linear-gradient(180deg, rgba(36,26,16,0), rgba(36,26,16,.88) 38%); }
.plbl b { font: 700 14px/1.2 var(--head); color: #fff; text-shadow: 0 1px 2px rgba(36,26,16,.5); overflow-wrap: anywhere; }
.plbl .ic { flex: none; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 9px; background: #fff; color: var(--c, var(--blue)); }
.plbl .ic svg { width: 18px; height: 18px; }
.plbl .ic { --c: var(--blue); }
.plbl .ic.ic-exchange, .plbl .ic.ic-tourism { --c: #04799E; } .plbl .ic.ic-services, .plbl .ic.ic-market { --c: #7444E0; }
.plbl .ic.ic-realty, .plbl .ic.ic-parks { --c: #00806A; } .plbl .ic.ic-foodshops { --c: #C2307A; } .plbl .ic.ic-leisuregrp { --c: #B4570F; }
@media (max-width: 400px) { .plbl { gap: 6px; padding: 8px; } .plbl .ic { width: 26px; height: 26px; border-radius: 8px; } .plbl .ic svg { width: 16px; height: 16px; } .plbl b { font-size: 13px; overflow-wrap: break-word; } }
@media (min-width: 640px) {
  .ptiles { grid-template-columns: repeat(4, 1fr); gap: 14px; }
  .ptile.wide { aspect-ratio: 16 / 5; }
  .ptiles > .ptile:last-child:nth-child(odd) { grid-column: auto; aspect-ratio: 4 / 3; }
  .plbl b { font-size: 15px; }
}
@media (prefers-reduced-motion: reduce) { .ptile, .ptile img { transition: none; } .ptile:hover, .ptile:hover img { transform: none; } }

/* ---------- путеводитель на главной ---------- */
.sec-h { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.sec-h a { font-weight: 600; font-size: 13.5px; white-space: nowrap; }
.gcards { display: grid; gap: 10px; }
.gcard { position: relative; display: flex; flex-direction: column; justify-content: space-between; gap: 14px; min-height: 104px; padding: 16px; border-radius: var(--radius);
  background: var(--card); border: 1px solid var(--line); box-shadow: var(--shadow); color: var(--ink); overflow: hidden; }
.gcard::before { content: ""; position: absolute; right: -30px; top: -30px; width: 96px; height: 96px; border-radius: 45% 55% 50% 50%; opacity: .16; background: var(--grad); }
.gcard.g1::before { background: linear-gradient(120deg, var(--violet), var(--pink)); } .gcard.g2::before { background: linear-gradient(120deg, var(--mint), var(--blue)); }
.gcard.g3::before { background: linear-gradient(120deg, var(--orange), var(--coral)); }
.gcard b { font: 600 15px/1.3 var(--head); position: relative; }
.gcard span { font-size: 12px; color: var(--muted); }
.gcard:hover { text-decoration: none; border-color: color-mix(in srgb, var(--violet) 40%, var(--line)); }

/* ---------- нижний блок «Город в твоём кармане» ---------- */
.band { display: grid; gap: 14px; justify-items: start; margin-top: 36px; padding: 24px 20px; border-radius: 22px; color: #fff; overflow: hidden; position: relative; isolation: isolate;
  background: radial-gradient(120% 140% at 100% 0%, rgba(140,85,255,.55), transparent 55%), radial-gradient(90% 120% at 0% 100%, rgba(52,87,255,.45), transparent 60%), var(--navy); }
.band svg { width: 52px; height: 48px; }
.band h2 { color: #fff; margin: 0 0 6px; font-size: 20px; }
.band p { color: rgba(255,255,255,.78); margin: 0; max-width: 560px; }

/* ---------- «Сегодня в Буэнос-Айресе» (ARG-WEB-020 п.2): телефон — 2 колонки (курс, факт, новое — во всю ширину), ПК — 4 ---------- */
.today .sec-h { flex-wrap: wrap; gap: 2px 12px; }
.td-when { font-size: 12.5px; color: var(--muted); }
.td-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-flow: dense; gap: 10px; }
.td { display: flex; flex-direction: column; gap: 8px; min-width: 0; padding: 14px; background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.td-usd, .td-fact, .td-new { grid-column: span 2; }
.td p { margin: 0; }
.td-k { display: flex; align-items: center; gap: 7px; font: 600 11.5px/1.2 var(--text); color: var(--muted); }
.td-k svg { width: 18px; height: 18px; flex: none; color: var(--accent); }
.td-now { display: flex; align-items: center; gap: 10px; }
.td-big { font: 700 34px/1 var(--head); letter-spacing: -.03em; }
.td-now > span:last-child { display: flex; flex-direction: column; min-width: 0; }
.td-now b { font-size: 13.5px; line-height: 1.25; }
.td small { font-size: 11.5px; color: var(--muted); }
.td-days, .td-rows, .td-list { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.td-days li { display: grid; grid-template-columns: 18px 1fr auto; align-items: center; gap: 2px 6px; font-size: 12.5px; }
.td-days li small { grid-column: 2 / -1; margin-top: -3px; }
.td-mi svg { display: block; width: 16px; height: 16px; color: var(--muted); }
.td-rows li { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; font-size: 13.5px; color: var(--muted); }
.td-rows b, .td-num { font: 700 17px/1.2 var(--head); color: var(--ink); font-variant-numeric: tabular-nums; letter-spacing: -.01em; }
.td-best { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; border-radius: 12px; background: var(--soft); color: var(--ink); }
.td-best:hover { text-decoration: none; background: color-mix(in srgb, var(--accent) 22%, transparent); }
.td-best > span { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.td-best > span b:first-child { font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.td-go { margin-top: 8px; text-align: center; }
.td-more { font: 600 13px/1.2 var(--text); margin-top: auto; }
.td-date { font: 700 16px/1.25 var(--head); }
.td-name { font-size: 13px; line-height: 1.35; color: var(--muted); }
.td-pill { align-self: flex-start; margin-top: auto; padding: 4px 9px; border-radius: 99px; background: var(--soft); color: var(--accent); font: 600 12px/1.2 var(--text); }
.td-fact { background: linear-gradient(135deg, color-mix(in srgb, var(--violet) 9%, var(--card)), var(--card) 60%); }
.td-fact p:last-child { font-size: 14.5px; line-height: 1.5; }
.td-list li { font-size: 13.5px; line-height: 1.4; }
.td-list li, .td-list a { display: flex; align-items: baseline; gap: 8px; min-width: 0; }
.td-list a { color: var(--ink); }
.td-list a:hover { text-decoration: none; color: var(--accent); }
.td-list li > span:last-child, .td-list a > span:last-child { min-width: 0; overflow-wrap: anywhere; }
.td-list .td-num { font-size: 15px; }
.td-tag { flex: none; padding: 2px 7px; border-radius: 6px; background: var(--soft); color: var(--accent); font: 600 10.5px/1.4 var(--text); text-transform: uppercase; letter-spacing: .03em; }
@media (min-width: 960px) {
  .td-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
  .td { padding: 18px; gap: 10px; }
  .td-fact, .td-new { grid-column: span 2; }
  .td-fact:last-child { grid-column: 1 / -1; } /* нечего показать в «Новом» — факт во всю ширину */
  .td-big { font-size: 40px; }
  .td-fact p:last-child { font-size: 16px; }
}

/* ---------- списки и карточки ---------- */
.list { display: grid; gap: 8px; }
.card { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); color: var(--ink); }
.card:hover { text-decoration: none; border-color: color-mix(in srgb, var(--violet) 40%, var(--line)); }
.card .pic img { display: block; border-radius: 12px; object-fit: cover; }
.scard .txt span:first-of-type { font: 700 18px/1.25 var(--head); color: var(--ink); }
.card .ava { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 16%, var(--card)), color-mix(in srgb, var(--violet) 18%, var(--card))); color: var(--accent); font: 700 17px/1 var(--head); }
.list.fresh .card .pic img { width: 44px; height: 44px; border-radius: 50%; }
.list.fresh .card b { font-size: 14.5px; }
@media (max-width: 639.98px) {
  .list.fresh { display: flex; gap: 10px; overflow-x: auto; scroll-snap-type: x proximity; margin: 0 -16px; padding: 2px 16px 10px; scroll-padding-inline: 16px; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  .list.fresh::-webkit-scrollbar { display: none; }
  .list.fresh .card { flex: 0 0 min(260px, 78%); scroll-snap-align: start; align-items: center; }
}
.card .txt { display: flex; flex-direction: column; min-width: 0; gap: 2px; }
.card b { font: 600 14.5px/1.3 var(--head); overflow-wrap: anywhere; }
.card .txt span { color: var(--muted); font-size: 12.5px; overflow-wrap: anywhere; }
.chips { display: flex; flex-wrap: wrap; gap: 6px; }
.chip { display: inline-flex; align-items: center; min-height: 28px; padding: 0 11px; border-radius: 99px; background: var(--card); border: 1px solid var(--line); color: var(--ink); font-size: 12.5px; }
a.chip { color: var(--accent); }
a.chip:hover { text-decoration: none; background: var(--soft); }
button.chip { font-family: inherit; cursor: pointer; }
.chip[aria-pressed="true"] { background: var(--accent); border-color: var(--accent); color: #fff; }
.chip b { margin-left: 5px; font-weight: 700; opacity: .75; }
.wk[hidden], .list .card[hidden] { display: none; }
.links { padding-left: 18px; } .links li { margin: 6px 0; }
.links li::marker { color: var(--violet); }

/* ---------- карточка бизнеса, места, объекта ---------- */
.head { display: flex; gap: 14px; align-items: center; }
.head img { border-radius: 16px; object-fit: cover; flex: none; }
.head h1 { margin: 0 0 2px; }
.head p { margin: 0; }
.promo { background: color-mix(in srgb, var(--orange) 16%, transparent); border: 1px solid color-mix(in srgb, var(--orange) 45%, transparent); border-radius: 12px; padding: 10px 12px; margin-top: 14px; }
.next-slot { margin-top: 10px; color: var(--muted); }
.desc { white-space: pre-line; overflow-wrap: anywhere; margin-top: 14px; }
.price { font: 700 20px var(--head); margin: 0 0 10px; color: var(--ink); font-variant-numeric: tabular-nums lining-nums; width: fit-content; } /* цена — без градиента (брендбук §3) */
.price small { font-size: 13px; font-weight: 400; margin-left: 6px; } /* П19: исходная цена мелко рядом с «≈ US$ N» */
.facts { display: grid; grid-template-columns: minmax(110px, 34%) 1fr; gap: 8px 14px; margin: 16px 0; padding: 14px; background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.facts dt { color: var(--muted); font-size: 13px; }
.facts dd { margin: 0; overflow-wrap: anywhere; }
.prices { width: 100%; border-collapse: separate; border-spacing: 0; background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); }
.prices td, .prices th { padding: 9px 12px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.tscroll { max-width: 860px; overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 0 0 4px; border-radius: var(--radius); }
.tscroll .prices { min-width: 100%; width: max-content; max-width: none; }
.tscroll .prices td, .tscroll .prices th { white-space: nowrap; }
.prices tr:last-child td { border-bottom: 0; }
.prices th { color: var(--muted); font-weight: 600; font-size: 12.5px; }
.prices td:last-child, .prices th:last-child { text-align: right; white-space: nowrap; }
/* А-2: статья «аренда авто без кредитной карты» — живые блоки из данных проката (lib/guiderent.js): залог по моделям, таблица цен, автопарк с фото */
.rg { margin: 12px 0 22px; max-width: 860px; min-width: 0; }
.rg-d { margin: 0 0 8px; font-size: 13px; line-height: 1.4; color: var(--muted); }
.rg-n { margin: 8px 0 0; font-size: 13.5px; line-height: 1.5; color: var(--muted); }
.rg-l { margin: 0; padding: 0; list-style: none; display: grid; gap: 6px; }
.rg-l li { padding: 9px 12px; background: var(--card); border: 1px solid var(--line); border-radius: 12px; font-size: 14.5px; line-height: 1.45; overflow-wrap: anywhere; }
.rg-w { overflow-x: auto; -webkit-overflow-scrolling: touch; border-radius: var(--radius); }
.rg-t { min-width: 0; }
.rg-t th, .rg-t td { white-space: nowrap; text-align: right; }
.rg-t th:first-child, .rg-t td:first-child { white-space: normal; text-align: left; overflow-wrap: anywhere; min-width: 120px; }
.rg-t td a { color: var(--ink); font-weight: 600; text-decoration: underline; text-decoration-color: var(--line); text-underline-offset: 3px; }
.rg-t td a:hover { text-decoration-color: var(--accent); }
.rg-g { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.rg-g li { min-width: 0; display: flex; }
.rg-c { display: flex; flex-direction: column; flex: 1; min-width: 0; background: var(--card); border: 1px solid var(--line); border-radius: 12px; overflow: hidden; color: var(--ink); }
.rg-c:hover { text-decoration: none; border-color: var(--accent); }
.rg-c img { width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; display: block; background: var(--soft); }
.rg-c b { padding: 8px 10px 0; font: 600 13.5px/1.3 var(--head); overflow-wrap: anywhere; }
.rg-c span { padding: 2px 10px 0; font-size: 12.5px; line-height: 1.35; color: var(--muted); }
.rg-c .rg-p { margin-top: auto; padding: 4px 10px 9px; color: var(--ink); font-weight: 600; font-variant-numeric: tabular-nums lining-nums; }
.rg-c b:last-child { padding-bottom: 9px; }
@media (min-width: 640px) { .rg-g { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 900px) { .rg-g { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.photos { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.photos img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 12px; display: block; }
.photos figure { margin: 0; }
.photos figcaption { margin-top: 4px; font-size: 13px; line-height: 1.3; color: var(--muted); }
.team { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; }
.team li { display: flex; align-items: center; gap: 8px; }
.team img { border-radius: 50%; object-fit: cover; }
article p { font-size: 15.5px; line-height: 1.7; }

/* Языки мастера (ARG-SEO-005): «Говорит по-русски» — акцентный бейдж, остальные языки — кодами */
.lb { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.lb i { font-style: normal; font-size: 11.5px; line-height: 1; padding: 5px 8px; border-radius: 99px; border: 1px solid var(--line); color: var(--muted); letter-spacing: .02em; }
.lb .lb-own { background: var(--soft); border-color: color-mix(in srgb, var(--accent) 35%, transparent); color: var(--accent); font-weight: 600; letter-spacing: 0; }
.head .lb { margin: 6px 0 2px; }
/* п.53 владельца: шапка бизнеса как в его боте — логотип + имя + подзаголовок одной строкой, крупно; без «таблеток» языков и статуса */
.head.bs-brand { gap: 12px; margin: 4px 0 14px; }
.head.bs-brand img { width: 56px; height: 56px; border-radius: 14px; }
.head.bs-brand > div { min-width: 0; }
.head.bs-brand h1 { font: 800 clamp(22px, 5.4vw, 30px)/1.1 var(--head, inherit); letter-spacing: -.02em; margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.head.bs-brand p, .head.bs-brand h2.bs-q { margin: 3px 0 0; font-size: 14.5px; line-height: 1.3; color: color-mix(in srgb, var(--ink) 78%, var(--bg, #fff)); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.head.bs-brand .bs-rt { color: var(--ink); font-weight: 600; }
/* п.53 (поправка 08:40): роли брендбука бизнеса — логотип-строка вместо квадратного аватара, в одну строку с «✓ Проверено»;
   плашки цветом --chip (pistachio), заголовки и герой — --title (Lora). Без темы с этими полями — всё как было (фолбэки) */
.head.bs-brand.has-wm { display: block; }
.bs-wmrow { display: flex; align-items: center; gap: 8px 12px; flex-wrap: wrap; }
.bs-wmrow h1 { margin: 0; line-height: 0; }
.head.bs-brand .bs-wmi { display: block; height: 40px; width: auto; max-width: min(240px, 64vw); border-radius: 0; object-fit: contain; } /* не квадратный аватар .head img */
.bs-ok { font-size: 13.5px; font-weight: 700; color: var(--ink); white-space: nowrap; }
.head.bs-brand.has-wm .muted { margin-top: 6px; }
.bs-chip { display: inline-block; margin: 8px 0 0; padding: 5px 10px; border-radius: 99px; background: var(--chip, var(--soft)); color: var(--chip-ink, var(--ink)); font-size: 13px; font-weight: 600; line-height: 1.2; }
.bsite h1, .bsite h2, .bsite .bs-tag, .fsite h1, .fsite h2, .fsite .bs-tag { font-family: var(--title, var(--head)); }
/* «Написать» рядом с главной — вторичная: обводка цветом текста, без второго акцентного фона */
.bsite .bs-cta .btn.ghost, .fsite .bs-cta .btn.ghost { background: transparent; color: var(--ink); border: 1.5px solid var(--ink); }
.bs .bs-perks li { background: var(--chip, var(--card)); border-color: var(--chip, var(--line)); color: var(--chip-ink, inherit); }
.bs .bs-perks.bb li::before { background: var(--mark); color: var(--mark-ink, var(--ink)); width: 18px; height: 18px; border-radius: 50%; display: grid; place-items: center; font-size: 11px; top: 50%; transform: translateY(-50%); }

/* ---------- подвал ---------- */
footer { margin-top: 24px; padding: 28px max(16px, calc((100% - var(--w)) / 2 + 16px)) 32px; border-top: 1px solid var(--line); color: var(--muted); font-size: 13px; background: var(--card); }
footer a { color: var(--muted); }
footer a:hover { color: var(--ink); }
.foot { display: grid; gap: 20px; margin-bottom: 18px; }
.foot-brand p { margin: 10px 0 0; }
.foot-col { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px 16px; }
.langs b, .langs a { margin-right: 8px; }
.langs b { color: var(--ink); }

/* ---------- планшет ---------- */
@media (min-width: 640px) {
  .gcards { grid-template-columns: repeat(2, 1fr); }
  .photos { grid-template-columns: repeat(3, 1fr); }
  .band { grid-template-columns: auto 1fr auto; align-items: center; gap: 22px; padding: 28px 32px; }
}

/* ---------- компьютер ---------- */
@media (min-width: 960px) {
  .top { padding-top: 14px; padding-bottom: 14px; }
  .nav { display: flex; }
  .appnav { position: static; display: flex; gap: 2px; padding: 0; background: none; backdrop-filter: none; -webkit-backdrop-filter: none; border: 0; box-shadow: none; }
  .appnav a { flex-direction: row; gap: 7px; padding: 8px 11px; color: var(--ink); font-size: 14px; }
  .appnav svg { width: 18px; height: 18px; color: var(--muted); }
  .appnav a:hover svg { color: var(--accent); }
  body:has(.top .appnav) { padding-bottom: 0; }
  .top { background: color-mix(in srgb, var(--bg) 85%, transparent); backdrop-filter: saturate(1.4) blur(12px); -webkit-backdrop-filter: saturate(1.4) blur(12px); }
  .brand { font-size: 20px; } .brand svg { width: 32px; height: 30px; }
  main { padding: 16px 32px 56px; }
  h1 { font-size: 30px; } h2 { font-size: 21px; margin-top: 44px; margin-bottom: 16px; }
  .hero { grid-template-columns: 1fr 300px; align-items: end; gap: 40px; margin-top: 16px; padding: 72px 56px 56px; border-radius: 28px; background: linear-gradient(100deg, rgba(36,26,16,.97) 0%, rgba(36,26,16,.86) 45%, rgba(36,26,16,.45) 100%), url(/img/hero-city.webp) center 70% / cover, var(--navy); }
  .hero::before { width: 460px; height: 460px; right: -120px; top: -160px; }
  .hero h1 { font-size: 52px; max-width: 640px; }
  .hero .lead { font-size: 17px; max-width: 540px; margin-bottom: 26px; }
  .hero-cta { margin-bottom: 34px; } .hero-cta .btn { min-height: 48px; padding: 0 24px; font-size: 15px; }
  .stats { gap: 36px; } .stats b { font-size: 24px; } .stats span { font-size: 13px; }
  .rate-card { padding: 22px; } .rc-v b { font-size: 32px; }
  .tiles { grid-template-columns: repeat(8, 1fr); gap: 14px; }
  .tile { padding: 20px 6px 16px; gap: 12px; }
  .tile .ic { width: 56px; height: 56px; border-radius: 18px; } .tile .ic svg { width: 26px; height: 26px; }
  .tile span:last-child { font-size: 13px; }
  .list { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .gcards { grid-template-columns: repeat(3, 1fr); gap: 14px; }
  .gcard { min-height: 132px; padding: 20px; } .gcard b { font-size: 16.5px; }
  .band { margin-top: 56px; padding: 40px 48px; border-radius: 28px; } .band h2 { font-size: 26px; } .band svg { width: 72px; height: 66px; }
  main:not(.home) > h1, main:not(.home) > .lead, article, .facts, .desc, .head, .cta, .prices { max-width: 860px; }
  .photos { grid-template-columns: repeat(4, 1fr); }
  .foot { grid-template-columns: 1.3fr 2fr 1fr; gap: 40px; }
  .foot-col { grid-template-columns: repeat(2, 1fr); } .foot-col:last-child { grid-template-columns: 1fr; align-content: start; }
}
@media (min-width: 1240px) { .list { grid-template-columns: repeat(3, 1fr); } }

/* @biz-css:start */
/* ---------- сайт бизнеса arghub.app/<slug> (ARG-PLAT-001 шаг 2): цвета — CSS-переменные темы бизнеса из <style> страницы ---------- */
.bsite .bs-btn { background: var(--biz, var(--accent)); color: var(--biz-ink, var(--accent-ink)); }
.bs-top .brand img { border-radius: 8px; object-fit: cover; flex: none; }
.bs-top .brand span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 60vw; }
.bs-cover { margin: 8px 0 16px; border-radius: var(--radius); overflow: hidden; aspect-ratio: 3 / 1; background: var(--soft); }
.bs-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 600px) { .bs-cover { aspect-ratio: 2 / 1; } }
/* обложка со слоганом и преимущества (ARG-PLAT-001 шаг 16): затемнение снизу, слоган крупно шрифтом бизнеса */
.bs-cover.has-tag { position: relative; }
.bs-cover.has-tag::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.05) 20%, rgba(0,0,0,.72)); }
.bs-cover.flat { aspect-ratio: auto; min-height: 120px; display: flex; align-items: flex-end; background: var(--hero-bg, #081337); color: var(--hero-ink, #fff); }
.bs-cover.flat::after { display: none; }
.bs-tag { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; margin: 0; padding: 20px 22px; color: #fff; font: 700 clamp(22px, 4.2vw, 40px)/1.15 var(--head, inherit); letter-spacing: -.01em; text-wrap: balance; text-shadow: 0 1px 12px rgba(0,0,0,.35); }
.bs-cover.flat .bs-tag { position: static; color: inherit; text-shadow: none; }
.bs-perks { list-style: none; margin: 0 0 16px; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; }
.bs-perks li { background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px 10px 34px; position: relative; font-weight: 600; line-height: 1.3; }
.bs-perks li::before { content: "✓"; position: absolute; left: 12px; top: 10px; color: var(--biz, var(--accent)); font-weight: 800; }
@media (max-width: 600px) { .bs-cover.has-tag:not(.flat) { aspect-ratio: 4 / 3; } .bs-perks { grid-template-columns: 1fr 1fr; } }
.bs-cta { margin: 16px 0 8px; }
/* ARG-UX-095 «витрина продаёт»: лучшие фото листаются под слоганом (scroll-snap, без скриптов), «О нас» коротко, «Подробности» свёрнуто, доверие вместо пустых отзывов */
.bs-slides .bs-track { display: flex; width: 100%; height: 100%; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; }
.bs-slides .bs-track::-webkit-scrollbar { display: none; }
.bs-slides .bs-track img { flex: 0 0 100%; scroll-snap-align: start; }
.bs-slides:not(.has-tag) .bs-track img + img { box-shadow: -2px 0 0 var(--bg, #fff); }
.bs-cover.has-tag::after, .bs-cover .bs-tag { pointer-events: none; }
@media (max-width: 600px) { .bs-slides { aspect-ratio: 4 / 3; } }
.bs-read, .bs-more { margin: 8px 0 16px; }
.bs-read summary, .bs-more summary { cursor: pointer; font-weight: 600; color: var(--accent); min-height: 44px; display: flex; align-items: center; }
.bs-more { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 0 14px; }
.bs-more[open] { padding-bottom: 12px; }
.bs-more h2 { font-size: 17px; margin: 14px 0 8px; }
.bs-trust p { display: flex; flex-wrap: wrap; gap: 8px 16px; margin: 0; font-weight: 600; }
.fd-cards .fd-pl-h { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin: 0; }
.fd-save { flex: none; padding: 2px 8px; border-radius: 999px; background: var(--biz, var(--accent)); color: var(--biz-ink, #fff); font-size: 13px; font-weight: 700; }
.fd-per { margin: 6px 0 0; font: 800 22px/1.2 var(--head, inherit); color: var(--accent); }
/* сайт обменника (ARG-EXC-010): контакты — мелкой строкой в «Компании»; курсы — блок .xr ниже (ARG-EXC-030) */
.bsite .co-links a { color: inherit; text-decoration: underline; }
.bs-foot { display: flex; flex-wrap: wrap; gap: 10px 20px; align-items: center; justify-content: center; }
.bs-foot .bs-wd { font-size: 13px; text-decoration: underline; } /* «Botón de arrepentimiento» — видна в подвале каждой страницы сайта бизнеса (ARG-PLAT-001 шаг 9) */
.bs-on { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; }
.bs-on svg { width: 20px; height: 18px; flex: none; }

/* ---------- меню бизнеса еды (ARG-EDA-002): дни недели — <details>, блюда с фото, тарифы ---------- */
.fd { max-width: 860px; }
.fd-day { margin: 8px 0; background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); overflow: hidden; }
.fd-day summary { display: flex; justify-content: space-between; align-items: center; gap: 8px; min-height: 44px; padding: 10px 14px; font-weight: 600; cursor: pointer; }
.fd-day[open] summary { border-bottom: 1px solid var(--line); }
.fd-dishes { list-style: none; margin: 0; padding: 4px 14px; }
.fd-dish { display: flex; gap: 12px; align-items: flex-start; padding: 10px 0; }
.fd-dish + .fd-dish { border-top: 1px solid var(--line); }
.fd-dish img, .fd-ph { width: 88px; height: 88px; flex: none; border-radius: 12px; object-fit: cover; background: var(--soft); display: grid; place-items: center; font-size: 28px; }
.fd-dish b { display: block; margin: 2px 0; }
.fd-dish p { margin: 2px 0; }
.fd-dish.off { opacity: .55; }
/* 2–3 фото блюда — кадры одного размера друг над другом, листает public/photo-cycle.js; точки — какой кадр */
.cyc { position: relative; display: block; flex: none; overflow: hidden; border-radius: 12px; }
.cyc > img + img { position: absolute; inset: 0; opacity: 0; transition: opacity .45s ease; }
.cyc > img.cyc-on { opacity: 1; }
.cyc[data-cyc-tap] { cursor: pointer; }
.cyc-dots { position: absolute; left: 0; right: 0; bottom: 5px; display: flex; justify-content: center; gap: 4px; pointer-events: none; }
.cyc-dots i { width: 5px; height: 5px; border-radius: 50%; background: rgba(255, 255, 255, .55); box-shadow: 0 0 2px rgba(0, 0, 0, .45); transition: background .3s; }
.cyc-dots i.on { background: #fff; }
@media (prefers-reduced-motion: reduce) { .cyc > img + img, .cyc-dots i { transition: none; } }
/* Карточка ленты с фото, которые листаются свайпом (ARG-UX-069): объекты и объявления. Свайп — scroll-snap, точки (≤7), «3/12»,
   стрелки при наведении дорисовывает public/photo-cycle.js ([data-sw]); pan-x pan-y — вертикальный жест с фото листает страницу */
.card.scard { flex-direction: column; gap: 0; padding: 0; overflow: hidden; }
.scard .txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; padding: 10px 14px 12px; color: var(--ink); }
.scard .txt:hover { text-decoration: none; }
.scard-ph { width: 100%; }
/* ARG-QA-011 п.15: карточки ряда одной высоты — заголовок ≤2 строк, строка цены — 1, без фото — заглушка 4:3 с иконкой */
.scard .txt { flex: 1; }
.scard .txt b { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; }
.scard .txt span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.scard-no { display: grid; place-items: center; aspect-ratio: 4 / 3; background: linear-gradient(135deg, var(--soft), color-mix(in srgb, var(--soft) 70%, var(--line))); color: var(--muted); }
.scard-no:hover { text-decoration: none; }
.scard-no .ic { display: grid; color: var(--c, var(--muted)); }
.scard-no svg { width: 44px; height: 44px; opacity: .55; }
.sw { position: relative; }
.sw-t { display: flex; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; touch-action: pan-x pan-y; background: var(--soft); }
.sw-t::-webkit-scrollbar { display: none; }
.sw-t > * { flex: 0 0 100%; width: 100%; scroll-snap-align: start; scroll-snap-stop: always; }
.sw-t > img { height: auto; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.sw-n { position: absolute; right: 8px; bottom: 8px; padding: 2px 7px; border-radius: 99px; background: rgba(0, 0, 0, .5); color: #fff; font: 600 11px/1.3 var(--text); pointer-events: none; }
.sw-d { position: absolute; left: 50%; bottom: 11px; transform: translateX(-50%); height: 8px; overflow: hidden; pointer-events: none; }
.sw-di { display: flex; align-items: center; gap: 4px; height: 8px; transition: transform .25s ease; }
.sw-di i { flex: none; width: 6px; height: 6px; border-radius: 50%; background: rgba(255, 255, 255, .55); box-shadow: 0 0 2px rgba(0, 0, 0, .5); transition: transform .25s ease, background .2s; }
.sw-di i.on { background: #fff; }
.sw-di i.m { transform: scale(.7); }
.sw-di i.s { transform: scale(.45); }
.sw .sw-a { position: absolute; top: 50%; width: 32px; height: 32px; margin: -16px 0 0; padding: 0; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .92); box-shadow: 0 1px 6px rgba(0, 0, 0, .3); cursor: pointer; opacity: 0; pointer-events: none; transition: opacity .15s; }
.sw-p { left: 8px; } .sw-x { right: 8px; }
.sw-a::before { content: ""; position: absolute; left: 50%; top: 50%; width: 8px; height: 8px; border: solid #1c1f2b; border-width: 2px 2px 0 0; transform: translate(-65%, -50%) rotate(45deg); }
.sw-p::before { transform: translate(-35%, -50%) rotate(-135deg); }
@media (hover: hover) and (pointer: fine) { .sw:hover .sw-a:not(.off) { opacity: 1; pointer-events: auto; } }
@media (prefers-reduced-motion: reduce) { .sw-di, .sw-di i, .sw .sw-a { transition: none; } }
.fd-dish .fd-gal { display: flex; gap: 6px; margin-top: 6px; }
.fd-dish .fd-gal img { width: 56px; height: 56px; border-radius: 10px; }
/* «Как работает подписка» (ARG-EDA-002): шаги карточками с номером в цвете бизнеса */
.fd-how { list-style: none; counter-reset: fh; margin: 0 0 8px; padding: 0; display: grid; gap: 10px; }
.fd-how li { counter-increment: fh; position: relative; padding: 14px 14px 14px 60px; min-height: 44px; background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.fd-how li::before { content: counter(fh); position: absolute; left: 14px; top: 14px; width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; font-weight: 800; background: var(--biz, var(--accent)); color: var(--biz-ink, #fff); }
.fd-how b, .fd-how span { display: block; }
.fd-how span { margin-top: 2px; }
@media (min-width: 720px) { .fd-how { grid-template-columns: repeat(3, 1fr); } }
.fd-plans { display: grid; gap: 10px; }
.fd-plan { padding: 14px; background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.fd-plan .prices { margin: 8px 0 0; }
@media (min-width: 720px) { .fd-plans { grid-template-columns: repeat(2, 1fr); } .fd-dish img, .fd-ph { width: 112px; height: 112px; } }
/* ---------- сайт проката авто arghub.app/<адрес> (ARG-RENT-010, lib/rentsite.js) ----------
   Цвета — тема бизнеса (--bg, --ink, --biz из bizCss; у RS AVTO: бумага #F5F3ED, чернила #142D38, оранжевый #F05609), Manrope;
   брендбук RS AVTO: карточки 20 px, контролы 14 px, кнопка 48 px. Эффект фар: две фотографии одна над другой, верхняя (фары включены)
   проявляется при наведении на ПК, а при прокрутке — выкл↔вкл каждые ~80 px (public/photo-cycle.js, ui/photo-cycle) */
.rsite { --rs-r: 20px; --rs-c: 14px; }
.bs-wm { height: 28px; width: auto; display: block; }
.rs h1 { font-size: clamp(34px, 7vw, 64px); line-height: 1.04; font-weight: 700; letter-spacing: -.03em; margin: 10px 0 12px; font-family: var(--text); }
.rs h2 { font-size: clamp(24px, 4.2vw, 36px); line-height: 1.1; font-weight: 700; letter-spacing: -.02em; margin: 44px 0 16px; font-family: var(--text); }
.rs h2 small { font-size: 15px; font-weight: 600; letter-spacing: 0; opacity: .7; margin-left: 6px; }
.rs h3 { font-family: var(--text); font-weight: 700; }
.rs-kick { display: inline-block; font-weight: 700; font-size: 13px; letter-spacing: .02em; text-transform: uppercase; color: var(--ink); background: color-mix(in srgb, var(--biz, #F05609) 16%, transparent); padding: 6px 10px; border-radius: 999px; margin: 0; }
.rs-lead { font-size: 18px; line-height: 1.5; font-weight: 500; max-width: 34em; }
.rs-acts { display: flex; flex-wrap: wrap; gap: 10px; margin: 18px 0 14px; }
.rs-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 22px; border-radius: var(--rs-c); background: var(--biz, var(--ink)); color: var(--biz-ink, #fff);
  font: 700 16px/1.2 var(--text); text-align: center; transition: filter .15s; }
.rs-btn:hover { text-decoration: none; filter: brightness(.95); }
.rs-btn:active { filter: brightness(.9); }
.rs-btn:focus-visible, .hl:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
.rs-btn.ghost { background: transparent; color: var(--ink); box-shadow: inset 0 0 0 1.5px var(--ink); }
.rs-btn.sm { min-height: 42px; padding: 10px 16px; font-size: 15px; }
.rs-rate { display: inline-flex; align-items: baseline; gap: 8px; color: var(--ink); font-size: 14px; }
.rs-rate b { font-size: 16px; }
/* hero брендбука (ARG-PLAT-020): фото машины на всю ширину, затемнение чернилами бренда снизу, слоган крупно белым поверх.
   Текстовый слой пропускает касания к фото (эффект фар), кроме кнопок и ссылок */
.rs-hero { position: relative; overflow: hidden; border-radius: var(--rs-r); background: #142D38; color: #fff; margin-top: 14px; min-height: min(78vh, 600px); display: flex; flex-direction: column; justify-content: flex-end; }
.rs-hero.flat { min-height: 0; }
.rs-hero-p { position: absolute; inset: 0; }
.rs-hero-p .hl, .rs-hero-p .ph { height: 100%; aspect-ratio: auto; border-radius: 0; }
.rs-hero-t { position: relative; z-index: 1; padding: 96px 20px 22px; pointer-events: none;
  background: linear-gradient(180deg, rgba(20,45,56,0) 0%, rgba(20,45,56,.55) 38%, rgba(20,45,56,.92) 100%); }
.rs-hero-t a { pointer-events: auto; }
.rs-hero h1, .rs-hero .rs-lead, .rs-hero .rs-rate { color: #fff; }
.rs-hero .rs-kick { color: #fff; background: var(--biz, #F05609); }
.rs-hero .rs-btn.ghost { color: #fff; box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.85); }
.rs-hint { position: absolute; z-index: 1; top: 12px; right: 12px; margin: 0; font-size: 12px; font-weight: 600; color: #fff; background: rgba(20,45,56,.55); padding: 6px 10px; border-radius: 999px; pointer-events: none; }
/* отзывы: рейтинг Google крупно и ссылка; в приложении ниже — отзывы ArgHub (slot) */
.rs-reviews { margin-top: 40px; }
.rs-gbox { background: var(--card); border: 1px solid var(--line); border-radius: var(--rs-r); padding: 16px 18px; display: grid; gap: 4px; justify-items: start; }
.rs-gbox p { margin: 0; }
.rs-gstars { display: flex; align-items: baseline; gap: 10px; }
.rs-gstars b { font-size: 34px; letter-spacing: -.02em; }
.rs-gstars span { color: var(--biz, #F05609); font-size: 20px; letter-spacing: 2px; }
.rs-gbox .rs-btn { margin-top: 8px; }
/* лучшие отзывы Google (lib/greviews.js): телефон — лента с прилипанием и подглядом следующей карточки, ПК — 3 в ряд; «Ещё» — на <details>, без JS */
.rs-ghead { display: flex; align-items: center; gap: 8px; margin: 18px 0 10px; font-weight: 700; font-size: 14px; color: var(--muted); }
.rs-glogo { display: inline-grid; place-items: center; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: inset 0 0 0 1px var(--line); color: #4285F4; font: 700 12px/1 Arial, sans-serif; flex: none; }
.rs-grev { list-style: none; margin: 0; padding: 2px 2px 10px; display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: thin; }
.rs-grc { flex: 0 0 82%; scroll-snap-align: start; background: var(--card); border: 1px solid var(--line); border-radius: var(--rs-r); padding: 14px 16px; display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.rs-gh { display: flex; align-items: center; gap: 10px; }
.rs-gav { position: relative; width: 40px; height: 40px; flex: none; border-radius: 50%; background: var(--biz, #F05609); color: #fff; display: grid; place-items: center; font-weight: 700; font-size: 17px; overflow: hidden; }
.rs-gav img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.rs-gn { display: grid; gap: 1px; min-width: 0; }
.rs-gn b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rs-gst { color: var(--biz, #F05609); letter-spacing: 2px; font-size: 14px; line-height: 1.2; }
.rs-gwhen { color: var(--muted); font-size: 12px; }
.rs-gtx { margin: 0; font-size: 14px; line-height: 1.5; flex: 1; overflow-wrap: anywhere; }
.rs-gmore summary { list-style: none; cursor: pointer; }
.rs-gmore summary::-webkit-details-marker { display: none; }
.rs-gmore .rs-gfull, .rs-gmore .rs-gclose { display: none; }
.rs-gmore[open] .rs-gfull, .rs-gmore[open] .rs-gclose { display: inline; }
.rs-gmore[open] .rs-gshort, .rs-gmore[open] .rs-gopen { display: none; }
.rs-gbtn { color: var(--muted); font-weight: 600; text-decoration: underline; }
.rs-gsrc { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 12px; color: var(--muted); }
.rs-gsrc a { color: inherit; text-decoration: underline; }
.rs-gall { display: inline-block; margin-top: 6px; font-size: 13px; color: var(--muted); text-decoration: underline; }
@media (min-width: 900px) {
  .rs-grev { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: visible; padding: 2px 0 10px; }
  .rs-grc { flex: none; }
}
.rs-price.rq b { font-size: 17px; letter-spacing: 0; }
.rs-points { list-style: none; padding: 0; margin: 18px 0 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.rs-points li { background: var(--card); border: 1px solid var(--line); border-radius: var(--rs-c); padding: 12px 12px 12px 34px; font-weight: 600; font-size: 14px; position: relative; }
.rs-points li::before { content: ""; position: absolute; left: 12px; top: 16px; width: 11px; height: 6px; border: solid var(--biz, #F05609); border-width: 0 0 2.5px 2.5px; transform: rotate(-45deg); }

/* фото и эффект фар */
.rs figure { margin: 0; }
.hl, .ph { position: relative; display: block; overflow: hidden; border-radius: var(--rs-r); aspect-ratio: 16 / 9; background: #142D38; }
.hl img, .ph img { display: block; width: 100%; height: 100%; object-fit: cover; }
/* фары: листаешь — public/photo-cycle.js ставит .cyc-on на «фары вкл» и снимает (каждые ~80 px прокрутки); мышь — включает */
.hl .on { position: absolute; inset: 0; opacity: 0; transition: opacity .45s ease; }
.hl .on.cyc-on, .hl:focus-visible .on { opacity: 1; }
@media (hover: hover) { .hl:hover .on { opacity: 1; } }
.hl { cursor: pointer; outline: none; }
@media (hover: none) { .hl:active .on { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .hl .on { transition: none; } }
.ph.none { display: grid; place-items: center; color: #F5F3ED; font-weight: 600; background: linear-gradient(135deg, #142D38, #7898AA); }

/* автопарк и фильтр по классу без скриптов */
.rs-f, .rs-r { position: absolute; opacity: 0; pointer-events: none; width: 1px; height: 1px; }
.rs-chips { display: flex; gap: 8px; overflow-x: auto; padding: 2px 2px 10px; margin: 0 -2px 6px; scrollbar-width: none; }
.rs-chips label { flex: none; cursor: pointer; padding: 9px 14px; border-radius: 999px; border: 1px solid var(--line); background: var(--card); font-weight: 600; font-size: 14px; }
#f-all:checked ~ .rs-chips label[for=f-all], #f-econom:checked ~ .rs-chips label[for=f-econom], #f-suv:checked ~ .rs-chips label[for=f-suv], #f-family:checked ~ .rs-chips label[for=f-family],
#f-hybrid:checked ~ .rs-chips label[for=f-hybrid], #f-offroad:checked ~ .rs-chips label[for=f-offroad], #f-premium:checked ~ .rs-chips label[for=f-premium] { background: var(--ink); color: var(--bg); border-color: var(--ink); }
.rs-f:focus-visible ~ .rs-chips { outline: 2px dashed var(--ink); outline-offset: 2px; border-radius: 10px; }
#f-econom:checked ~ .rs-grid .rs-car:not(.k-econom), #f-suv:checked ~ .rs-grid .rs-car:not(.k-suv), #f-family:checked ~ .rs-grid .rs-car:not(.k-family),
#f-hybrid:checked ~ .rs-grid .rs-car:not(.k-hybrid), #f-offroad:checked ~ .rs-grid .rs-car:not(.k-offroad), #f-premium:checked ~ .rs-grid .rs-car:not(.k-premium) { display: none; }
.rs-grid { display: grid; gap: 16px; }
.rs-car { position: relative; background: var(--card); border: 1px solid var(--line); border-radius: var(--rs-r); overflow: hidden; display: flex; flex-direction: column; }
.rs-car .hl, .rs-car .ph { border-radius: 0; }
.rs-look { display: none; }
.rs-look.l0 { display: block; }
.rs-r.l1:checked ~ .rs-pics .rs-look.l0, .rs-r.l2:checked ~ .rs-pics .rs-look.l0, .rs-r.l3:checked ~ .rs-pics .rs-look.l0 { display: none; }
.rs-r.l1:checked ~ .rs-pics .rs-look.l1, .rs-r.l2:checked ~ .rs-pics .rs-look.l2, .rs-r.l3:checked ~ .rs-pics .rs-look.l3 { display: block; }
.rs-sw { display: flex; gap: 6px; flex-wrap: wrap; padding: 12px 16px 0; }
.rs-sw label { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; font-size: 13px; font-weight: 600; padding: 5px 10px 5px 6px; border: 1px solid var(--line); border-radius: 999px; }
.rs-sw label::before { content: ""; width: 16px; height: 16px; border-radius: 50%; background: var(--line); box-shadow: inset 0 0 0 1px rgba(0,0,0,.15); }
.rs-r.l0:checked ~ .rs-sw label[for$=l0], .rs-r.l1:checked ~ .rs-sw label[for$=l1], .rs-r.l2:checked ~ .rs-sw label[for$=l2], .rs-r.l3:checked ~ .rs-sw label[for$=l3] { border-color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); }
.rs-r:focus-visible ~ .rs-sw { outline: 2px dashed var(--ink); outline-offset: 2px; border-radius: 10px; }
.rs-car-b { padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.rs-car-b h3 { font-size: 20px; margin: 0; letter-spacing: -.01em; }
.rs-specs { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }
.rs-specs span { font-size: 12.5px; font-weight: 600; padding: 4px 8px; border-radius: 8px; background: var(--soft); }
.rs-desc { margin: 0; font-size: 14px; opacity: .85; }
.rs-price { margin: 2px 0 0; font-size: 14px; }
.rs-price b { font-size: 24px; letter-spacing: -.02em; }
.rs-price small { opacity: .7; }
.rs-more summary { cursor: pointer; font-weight: 700; font-size: 14px; padding: 6px 0; }
.rs-tiers { width: 100%; border-collapse: collapse; font-size: 14px; margin: 6px 0 10px; }
.rs-tiers th { text-align: left; font-size: 12px; font-weight: 600; opacity: .7; padding: 4px 0; }
.rs-tiers td { padding: 7px 0; border-top: 1px solid var(--line); }
.rs-tiers td + td, .rs-tiers th + th { text-align: right; }
.rs-facts { display: grid; grid-template-columns: auto 1fr; gap: 6px 14px; margin: 6px 0 10px; font-size: 14px; }
.rs-facts dt { opacity: .7; }
.rs-facts dd { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
.rs-perks { margin: 4px 0 10px; padding-left: 18px; font-size: 14px; }
.rs-gal { display: flex; gap: 8px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 6px; }
.rs-gal img { flex: none; width: 78%; max-width: 320px; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--rs-c); scroll-snap-align: start; }
.rs-car .rs-btn { margin-top: auto; }
/* ARG-RENT-020: «В продаже» — якоря-вкладки под hero, плашки на фото, форма заявки на покупку */
.rs-tabs { display: flex; gap: 6px; overflow-x: auto; margin: 18px -2px 0; padding: 2px; scrollbar-width: none; }
.rs-tabs a { flex: none; padding: 9px 14px; border-radius: 999px; border: 1px solid var(--line); background: var(--card); color: var(--ink); font-weight: 600; font-size: 14px; }
.rs-tabs a:hover { text-decoration: none; border-color: var(--ink); }
.rs-salecar .rs-pics { position: relative; }
.rs-badge { position: absolute; left: 10px; top: 10px; background: var(--biz, #F05609); color: var(--biz-ink, #fff); font-size: 12px; font-weight: 800; padding: 4px 8px; border-radius: 8px; }
.rs-badge.r { left: auto; right: 10px; background: rgba(20,45,56,.85); color: #fff; }
.rs-sale .rs-price span { font-weight: 600; opacity: .75; }
.rb-buycar { display: flex; gap: 12px; align-items: center; }
.rb-buycar img { width: 96px; height: 68px; object-fit: cover; border-radius: 10px; flex: none; }
.rb-buycar p { margin: 2px 0 0; }
.rs-soon { margin: 16px 0 0; font-size: 14px; opacity: .8; }
.rs-cond { display: grid; gap: 12px; margin-top: 40px; }
.rs-terms { margin-top: 40px; background: var(--card); border: 1px solid var(--line); border-radius: var(--rs-r); padding: 16px 18px; }
.rs-terms h2 { margin: 0 0 10px; }
.rs-terms ul { margin: 0; padding-left: 18px; font-size: 15px; display: grid; gap: 6px; }
.rs-terms li:first-child { font-weight: 700; }
/* п.55з: блок залога; п.55.4–5: зачёркнутая цена */
.rs-dep { margin-top: 16px; background: var(--card); border: 1px solid var(--line); border-radius: var(--rs-r); padding: 16px 18px; }
.rs-dep h2 { margin: 0 0 6px; }
.rs-dep-sum { margin: 0 0 8px; font-size: 15px; }
.rs-dep-sum b { font-size: 22px; letter-spacing: -.02em; }
.rs-dep ul { margin: 0; padding-left: 18px; font-size: 15px; display: grid; gap: 6px; }
.rs-price s.rs-was { font-size: 15px; opacity: .6; margin-left: 4px; }
.rb-terms .rs-dep h2 { font-size: 16px; margin: 0 0 6px; }
.rs-cond > div, .rs-place, .rs-company { background: var(--card); border: 1px solid var(--line); border-radius: var(--rs-r); padding: 16px 18px; }
.rs-cond h3 { margin: 0 0 8px; font-size: 17px; }
.rs-cond ul { margin: 0; padding-left: 18px; font-size: 14px; }
.rs-place { display: grid; gap: 12px; margin-top: 16px; }
.rs-place h2, .rs-company h2 { margin: 0 0 10px; font-size: 22px; }
.rs-place h3 { margin: 0 0 6px; font-size: 16px; }
.rs-addr { font-weight: 600; }
.rs-company { margin-top: 16px; }
.rs-final { text-align: center; padding: 36px 0 8px; }
.rs-final .rs-lead { margin: 0 auto; font-weight: 700; font-size: 22px; }
.rs-final .rs-acts { justify-content: center; }
@media (min-width: 720px) {
  /* подложка текста героя — мягкий градиент на всю высоту героя (раньше — прямоугольник с резким краем) */
  .rs-hero-t { padding: 140px 40px 36px; max-width: 760px; background: none; }
  .rs-hero:not(.flat) .rs-hero-p::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, rgba(20,45,56,.88) 0%, rgba(20,45,56,.6) 40%, rgba(20,45,56,.2) 68%, rgba(20,45,56,0) 85%); }
  .rs-hero.flat .rs-hero-t { background: none; }
  .rs-points { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .rs-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rs-cond { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
  .rs-place { grid-template-columns: 1.4fr 1fr; }
}
@media (min-width: 1080px) { .rs-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
/* липкая кнопка брони на сайте проката (ARG-WEB-010): внизу экрана, пока листаешь страницу; в конце встаёт на своё место */
.rs-stick { position: sticky; bottom: 12px; z-index: 4; display: flex; gap: 8px; justify-content: center; margin: 24px auto 0; max-width: 520px; padding: 8px;
  background: color-mix(in srgb, var(--bg) 82%, transparent); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border-radius: calc(var(--rs-c) + 8px);
  box-shadow: 0 8px 28px rgba(20,45,56,.18); }
.rs-stick .rs-btn { flex: 1; }
.rs-stick .rs-btn.ghost { flex: none; width: 56px; padding: 0; font-size: 20px; background: var(--card); }
@media (min-width: 720px) { .rs-stick { position: sticky; margin-right: 0; width: max-content; } .rs-stick .rs-btn { flex: none; min-width: 220px; } .rs-stick .rs-btn.ghost { min-width: 0; } }

/* ---------- бронь, статус брони и сообщение на сайте проката (ARG-WEB-010, lib/rentbook.js) — формы без скриптов ---------- */
.rb { max-width: 760px; }
.rb h1 { font-size: clamp(28px, 6vw, 44px); margin: 6px 0 8px; }
.rb .rs-lead { font-size: 16px; opacity: .85; margin-bottom: 18px; }
.rb-back { margin: 14px 0 0; font-size: 14px; font-weight: 600; }
.rb-back a { color: var(--ink); opacity: .75; }
.rb-card { background: var(--card); border: 1px solid var(--line); border-radius: var(--rs-r); padding: 18px; margin: 0 0 14px; }
.rb-form { display: grid; gap: 14px; }
.rb-f { display: grid; gap: 6px; margin: 0; padding: 0; border: 0; min-width: 0; }
.rb-f > span, .rb-f > legend { font-weight: 700; font-size: 14px; padding: 0; }
/* поля: белые, рамка ≥3:1 к фону, фокус — обводка бренда (ARG-WEB-014: «поля сливаются с фоном»); :where — новые поля брони переопределяют без борьбы за вес */
.rb :where(input:not([type=checkbox]):not([type=hidden]):not([type=radio]), select, textarea) { width: 100%; min-height: 48px; padding: 11px 13px; border: 1.5px solid #7D8A90; border-radius: var(--rs-c);
  background: #fff; color: #142D38; font: 500 16px/1.3 var(--text); -webkit-appearance: none; appearance: none; }
.rb select { background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%);
  background-position: calc(100% - 20px) 21px, calc(100% - 15px) 21px; background-size: 5px 5px; background-repeat: no-repeat; padding-right: 36px; }
.rb textarea { min-height: 72px; resize: vertical; }
.rb :where(input, select, textarea):focus-visible { outline: none; border-color: var(--biz, #F05A0F); box-shadow: 0 0 0 2px var(--biz, #F05A0F), 0 0 0 6px color-mix(in srgb, var(--biz, #F05A0F) 22%, transparent); }
.rb-dt { display: grid; grid-template-columns: 1.4fr 1fr; gap: 8px; }
.rb-two { display: grid; gap: 14px; }
.rb-agree { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; line-height: 1.4; cursor: pointer; }
.rb-agree input { width: 22px; height: 22px; flex: none; margin: 0; accent-color: var(--biz, #F05609); }
/* заявка на сайте: позиции прайса галочками (ARG-PLAT-001 шаг 30) — строка ≥ 44 px, цена справа, длинные названия переносятся */
.rb-pick label { display: flex; gap: 10px; align-items: center; min-height: 44px; padding: 8px 0; border-bottom: 1px solid var(--line); cursor: pointer; font-size: 15px; line-height: 1.35; }
.rb-pick input { width: 22px; height: 22px; flex: none; margin: 0; accent-color: var(--biz, #F05609); }
.rb-pick label > span, .rb-items li > span { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.rb-pick small, .rb-items small { opacity: .75; }
.rb-pick b { white-space: nowrap; }
.rb-agree a { color: var(--ink); text-decoration: underline; }
.rb-go { width: 100%; }
.rb-note, .rb-hint { margin: 0; opacity: .75; }
.rb-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.rb-err { margin: 0; padding: 10px 12px; border-radius: var(--rs-c); background: color-mix(in srgb, #D92D20 12%, var(--card)); color: var(--ink); font-weight: 600; font-size: 14px; }
.rb-alts { display: grid; gap: 8px; }
.rb-alts p { margin: 0; }
.rb-alts .rs-btn { justify-content: flex-start; text-align: left; white-space: normal; }
.rb-ok-line { font-size: 16px; margin: 0 0 12px; }
.rb-sum { padding: 0; overflow: hidden; }
.rb-pic { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.rb-sum-b { padding: 16px 18px 6px; }
.rb h2.rb-car { margin: 0 0 8px; font-size: 22px; }
.rb-dl { margin: 0 0 12px; }
.rb-total { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 12px 0 8px; margin: 0; border-top: 1px solid var(--line); font-size: 15px; }
.rb-total b { font-size: 26px; letter-spacing: -.02em; }
.rb-rate { margin: 2px 0 8px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--soft, transparent); }
.rb-rate:has(p:empty):not(:has(p:not(:empty))) { display: none; }
.rb-rate p { margin: 0; }
.rb-rate-g { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-top: 4px; }
.rb-rate-g b { font-size: 22px; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.rb-pre { margin: 0 0 8px; padding: 10px 12px; border-radius: var(--rs-c); background: color-mix(in srgb, var(--biz, #F05609) 12%, var(--card)); font-size: 15px; }
.rb-acts { display: flex; flex-wrap: wrap; gap: 10px; margin: 14px 0 0; }
.rb-acts .rb-go { flex: 1 1 260px; width: auto; }
.rb-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin-top: 6px; }
.rb-head h1 { margin: 0; font-size: clamp(24px, 5vw, 36px); }
.rb-chip { display: inline-flex; align-items: center; padding: 6px 12px; border-radius: 999px; font-weight: 700; font-size: 13px; background: color-mix(in srgb, var(--biz, #F05609) 16%, var(--card)); }
.rb-chip.st-accepted, .rb-chip.st-ready, .rb-chip.st-done { background: color-mix(in srgb, #12B76A 22%, var(--card)); }
.rb-chip.st-cancelled { background: color-mix(in srgb, #D92D20 14%, var(--card)); }
.rb-steps { list-style: none; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 2px; padding: 0; margin: 16px 0; counter-reset: s; }
.rb-steps li { counter-increment: s; font-size: 11px; line-height: 1.25; font-weight: 600; text-align: center; opacity: .55; min-width: 0; overflow-wrap: break-word; }
@media (min-width: 480px) { .rb-steps li { font-size: 12.5px; } }
.rb-steps li::before { content: counter(s); display: grid; place-items: center; width: 30px; height: 30px; margin: 0 auto 6px; border-radius: 50%; border: 2px solid var(--line); background: var(--card); }
.rb-steps li.done, .rb-steps li.on { opacity: 1; }
.rb-steps li.done::before { content: "✓"; background: var(--ink); color: var(--bg); border-color: var(--ink); }
.rb-steps li.on::before { border-color: var(--biz, #F05609); background: var(--biz, #F05609); color: var(--biz-ink, #fff); }
.rb-pay h2 { margin: 0 0 10px; font-size: 20px; }
.rb-pay .rb-total { border-top: 0; padding-top: 0; }
.rb-exact { font-weight: 700; }
.rb-req { display: grid; gap: 4px; margin: 0 0 10px; }
.rb-req code { display: block; padding: 10px 12px; border-radius: var(--rs-c); background: var(--bg); border: 1px dashed var(--line); font: 600 15px/1.35 ui-monospace, SFMono-Regular, Menlo, monospace; overflow-wrap: anywhere; user-select: all; -webkit-user-select: all; }
.rb-have summary { cursor: pointer; font-weight: 600; padding: 6px 0; }
.rb-shot { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.rb-shot-btn { cursor: pointer; }
.rb-txid { display: grid; gap: 10px; margin-top: 12px; }
.rb-danger summary { cursor: pointer; font-weight: 700; list-style: none; }
.rb-danger summary::-webkit-details-marker { display: none; }
.rb-danger summary::after { content: " ▾"; opacity: .6; }
.rb-danger[open] summary { margin-bottom: 10px; }
.rb-flash { padding: 12px 14px; border-radius: var(--rs-c); background: color-mix(in srgb, #12B76A 18%, var(--card)); font-weight: 700; margin: 12px 0 0; }
.rb-where { margin: -4px 0 14px; opacity: .85; overflow-wrap: anywhere; }
.rb-done { text-align: center; padding: 28px 18px; margin-top: 16px; }
.rb-done h1 { font-size: 30px; }
.rb-big { font-size: 44px; margin: 0; }
.rb-alt-cta { text-align: center; }
.rb-alt-top { text-align: center; margin: 4px 0 10px; }
.rb-alt-top a { font-weight: 700; display: inline-block; padding: 8px 4px; min-height: 24px; }
/* кнопки брони — бренд, затемнённый до AA с белым текстом (4.7:1 у RS AVTO; чистый #F05609 — 3.5:1) */
.rb .rs-btn:not(.ghost) { background: color-mix(in srgb, var(--biz, #F05609) 84%, #000); color: #fff; }
.rb .rs-btn:focus-visible { outline: none; box-shadow: 0 0 0 3px var(--biz, #F05A0F), 0 0 0 7px color-mix(in srgb, var(--biz, #F05A0F) 22%, transparent); }
@media (min-width: 720px) {
  .rb-card { padding: 22px 24px; }
  .rb-two { grid-template-columns: 1fr 1fr; }
  .rb-sum.has-pic { display: grid; grid-template-columns: 300px 1fr; }
  .rb-pic { height: 100%; aspect-ratio: auto; }
  .rb-sum-b { padding: 20px 22px 10px; }
  .rb-go { width: auto; justify-self: start; min-width: 260px; }
}

/* Бронь по шагам (ARG-WEB-014, lib/rentbook.js bookForm + public/rent-book.js): шаги-карточки, календарь-диапазон, чипы, карточки машин,
   липкая панель итога (снизу на телефоне, справа на ПК). Поля — белые с заметной рамкой (≥3:1 к фону), фокус — толстая обводка бренда
   + мягкая тень, выбранное (чип/день/машина) — заливка бренда с белым текстом. Заливка — бренд, затемнённый на 16% (#CA4808 у RS AVTO):
   белый текст на ней 4.7:1 (AA), на чистом #F05609 было бы 3.5:1. Касания ≥44 px. */
.rb-xl { --rb-acc: var(--biz-acc, color-mix(in srgb, var(--biz, #F05609) 84%, #000)); --rb-ring: var(--biz, #F05A0F); --rb-f: #fff; --rb-fi: #142D38; --rb-bd: #7D8A90;
  --rb-mut: #56626A; --rb-dis: #8E979C; --rb-tint: color-mix(in srgb, var(--biz, #F05609) 9%, #fff); --rb-sh: 0 1px 2px rgba(20,45,56,.06), 0 8px 24px rgba(20,45,56,.07);
  --rb-focus: 0 0 0 3px var(--rb-ring), 0 0 0 7px color-mix(in srgb, var(--rb-ring) 22%, transparent);
  max-width: 1180px; padding-bottom: 132px; }
@media (prefers-color-scheme: dark) {
  .rb-xl.rb-nt:not([data-theme="light"] *) { --rb-f: var(--card); --rb-fi: var(--ink); --rb-bd: color-mix(in srgb, #fff 45%, var(--card)); --rb-mut: #A4A9CC; --rb-dis: #6E7499;
    --rb-tint: color-mix(in srgb, var(--biz, #F05609) 18%, var(--card)); --rb-sh: 0 1px 2px rgba(0,0,0,.3), 0 8px 24px rgba(0,0,0,.25); }
}
[data-theme="dark"] .rb-xl.rb-nt { --rb-f: var(--card); --rb-fi: var(--ink); --rb-bd: color-mix(in srgb, #fff 45%, var(--card)); --rb-mut: #A4A9CC; --rb-dis: #6E7499;
    --rb-tint: color-mix(in srgb, var(--biz, #F05609) 18%, var(--card)); --rb-sh: 0 1px 2px rgba(0,0,0,.3), 0 8px 24px rgba(0,0,0,.25); }
/* Заказ обмена на сайте обменника (ARG-WEB-012, lib/exbook.js): те же чипы и поля, что у брони по шагам (переменные .rb-xl — на самой форме;
   заливка выбранного темнее — 66%: у светлых акцентов, например золото UNION, белый текст ≥4.5:1);
   блок «Как удобнее» не распирает форму шире экрана (min-width: 0 у fieldset и у ячеек сетки) */
.rb-exf { --rb-acc: var(--biz-acc, color-mix(in srgb, var(--biz, #F05609) 66%, #000)); --rb-ring: var(--biz, #F05A0F); --rb-f: #fff; --rb-fi: #142D38; --rb-bd: #7D8A90;
  --rb-tint: color-mix(in srgb, var(--biz, #F05609) 9%, #fff); --rb-focus: 0 0 0 3px var(--rb-ring), 0 0 0 7px color-mix(in srgb, var(--rb-ring) 22%, transparent); }
.rb-exf .rb-form > * { min-width: 0; }
.rb-exf .rs-btn:not(.ghost) { background: var(--rb-acc); color: #fff; }
.rb-exf .rb-head .rb-chip { min-height: 0; padding: 6px 12px; border-radius: 999px; box-shadow: none; font-size: 13px; cursor: default; color: var(--ink); background: color-mix(in srgb, var(--biz, #F05609) 16%, var(--card)); } /* статус — плашка, не кнопка */
.rb-exf .rb-head .rb-chip.st-accepted, .rb-exf .rb-head .rb-chip.st-ready, .rb-exf .rb-head .rb-chip.st-done { background: color-mix(in srgb, #12B76A 22%, var(--card)); }
.rb-exf .rb-head .rb-chip.st-cancelled { background: color-mix(in srgb, #D92D20 14%, var(--card)); }
.rb-exw { display: grid; gap: 12px; margin: 0; padding: 0; border: 0; min-width: 0; }
.rb-exw > legend { font-weight: 800; font-size: 15px; padding: 0; margin: 0 0 8px; }
.rb-geo { display: grid; gap: 6px; margin: 0 0 2px; } /* «📍 Определить мой район» (public/ex-order.js) */
.rb-geo-b { justify-self: start; min-height: 48px; } .rb-geo-b[hidden] { display: none; }
.rb-geo-n { margin: 0; } .rb-geo-n:empty { display: none; }
@media (max-width: 520px) { .rb-geo-b { justify-self: stretch; } }
.rb-xl h1 { font-size: clamp(30px, 6vw, 46px); }
.rb-xl .rs-lead { margin-bottom: 14px; }
.rb-xl [hidden] { display: none !important; }
.rb-vh { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; padding: 0; margin: -1px; border: 0; }
.rb-i { width: 18px; height: 18px; flex: none; }
.rb-xl a:focus-visible, .rb-xl button:focus-visible { outline: none; box-shadow: var(--rb-focus); }

/* шаги сверху */
/* на форме брони липнет только полоса шагов — шапка (логотип, язык) уходит со страницей, а не прячется под полосой */
.bs-top:has(~ main.rb-xl) { position: relative; }
.rb-stepper { position: sticky; top: 0; z-index: 5; margin: 0 -16px 16px; padding: 8px 16px; background: color-mix(in srgb, var(--bg) 88%, transparent); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.rb-stepper ol { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.rb-stepper a { display: flex; align-items: center; justify-content: center; gap: 6px; min-height: 44px; padding: 6px 8px; border-radius: 999px; color: var(--ink); font-weight: 700; font-size: 13px; text-decoration: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rb-stepper a span { display: grid; place-items: center; flex: none; width: 24px; height: 24px; border-radius: 50%; font-size: 12px; background: var(--rb-f); box-shadow: inset 0 0 0 1.5px var(--rb-bd); color: var(--rb-fi); }
.rb-stepper a[aria-current] { background: var(--rb-f); box-shadow: var(--rb-sh); }
.rb-stepper a.done span { background: var(--rb-acc); color: #fff; box-shadow: none; }
@media (max-width: 479px) { .rb-stepper a { font-size: 0; gap: 0; } .rb-stepper a span { font-size: 12px; } .rb-stepper a[aria-current] { font-size: 12px; gap: 6px; } }

/* раскладка: шаги слева, итог справа (ПК) */
.rb-book { display: block; }
.rb-main { display: grid; gap: 16px; min-width: 0; }
.rb-step { background: var(--card); border: 1px solid var(--line); border-radius: 18px; padding: 18px 16px; box-shadow: var(--rb-sh); scroll-margin-top: 72px; min-width: 0; }
.rb-step-h { display: flex; align-items: center; gap: 10px; margin: 0 0 14px; }
.rb-step-h h2 { margin: 0; font-size: 22px; letter-spacing: -.01em; }
.rb-n { display: grid; place-items: center; flex: none; width: 32px; height: 32px; border-radius: 50%; background: var(--ink); color: var(--bg); font-weight: 800; font-size: 15px; }
.rb-pill { margin-left: auto; padding: 6px 12px; border-radius: 999px; background: var(--rb-acc); color: #fff; font-weight: 800; font-size: 14px; white-space: nowrap; }
.rb-pill:empty { display: none; }
.rb-next { margin: 14px 0 0; text-align: right; }
.rb-nx { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 10px 16px; border-radius: 14px; font-weight: 700; color: var(--ink); background: var(--rb-f); box-shadow: inset 0 0 0 1.5px var(--rb-bd); text-decoration: none; }
.rb-nx:hover { box-shadow: inset 0 0 0 2px var(--ink); text-decoration: none; }

/* чипы (пресеты, время, место) */
.rb-chip { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 10px 16px; border-radius: 14px;
  background: var(--rb-f); color: var(--rb-fi); box-shadow: inset 0 0 0 1.5px var(--rb-bd); font-weight: 700; font-size: 15px; cursor: pointer; text-decoration: none;
  transition: background-color .15s, box-shadow .15s, color .15s, transform .1s; -webkit-tap-highlight-color: transparent; }
.rb-chip:hover { background: var(--rb-tint); box-shadow: inset 0 0 0 2px var(--rb-fi); text-decoration: none; }
.rb-chip:active { transform: scale(.98); }
.rb-chip input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.rb-chip:has(input:checked), .rb-pre[aria-pressed=true] { background: var(--rb-acc); color: #fff; box-shadow: none; }
.rb-chip:has(input:focus-visible) { box-shadow: var(--rb-focus); }
.rb-chip:has(input:checked):has(input:focus-visible) { box-shadow: var(--rb-focus); }
.rb-presets { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }

/* календарь */
.rb-cal { margin: 0 0 6px; position: relative; }
.rb-cal-nav { position: absolute; top: -2px; left: 0; right: 0; display: flex; justify-content: space-between; pointer-events: none; }
.rb-cal-b { pointer-events: auto; display: grid; place-items: center; width: 44px; height: 44px; border: 0; border-radius: 50%; background: var(--rb-f); color: var(--rb-fi); box-shadow: inset 0 0 0 1.5px var(--rb-bd); cursor: pointer; }
.rb-cal-b svg { width: 20px; height: 20px; }
.rb-cal-b:hover:not(:disabled) { box-shadow: inset 0 0 0 2px var(--rb-fi); }
.rb-cal-b:disabled { opacity: .35; cursor: default; }
.rb-cal-ms { display: grid; gap: 24px; }
.rb-cal-t { margin: 0 0 10px; min-height: 40px; display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 17px; }
.rb-cal-r { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.rb-cal-w span { text-align: center; font-size: 12px; font-weight: 700; color: var(--rb-mut); padding: 4px 0 8px; text-transform: lowercase; }
.rb-cal-r > span { display: flex; justify-content: center; padding: 2px 0; position: relative; }
.rb-d { position: relative; z-index: 1; width: 100%; max-width: 48px; aspect-ratio: 1; min-height: 44px; border: 0; border-radius: 50%; background: transparent; color: var(--ink); font: inherit; font-weight: 700; font-size: 15px; cursor: pointer; padding: 0; }
.rb-d:hover:not([aria-disabled]) { background: var(--rb-tint); box-shadow: inset 0 0 0 2px var(--rb-fi); }
.rb-d.td { box-shadow: inset 0 0 0 1.5px var(--rb-bd); }
.rb-d[aria-disabled] { color: var(--rb-dis); cursor: default; font-weight: 500; }
.rb-d.bz { text-decoration: line-through; text-decoration-thickness: 1.5px; }
/* диапазон: полоса под днями, начало/конец — круги бренда */
.rb-cal-r > span:has(.rb-d.in), .rb-cal-r > span:has(.rb-d.pv) { background: var(--rb-tint); }
.rb-cal-r > span:has(.rb-d.s.rg) { background: linear-gradient(90deg, transparent 50%, var(--rb-tint) 50%); }
.rb-cal-r > span:has(.rb-d.e) { background: linear-gradient(90deg, var(--rb-tint) 50%, transparent 50%); }
.rb-cal-r > span:has(.rb-d.s.e) { background: none; }
.rb-d.s, .rb-d.e { background: var(--rb-acc); color: #fff; box-shadow: none; }
.rb-d.s:hover, .rb-d.e:hover { background: var(--rb-acc); box-shadow: none; }
.rb-d:focus-visible { outline: none; box-shadow: var(--rb-focus); z-index: 2; }
.rb-cal-hint { margin: 10px 0 0; padding: 12px 14px; border-radius: 14px; background: var(--rb-f); box-shadow: inset 0 0 0 1px var(--line); font-weight: 700; font-size: 15px; text-align: center; }
.rb-cal-hint.next { background: var(--rb-tint); box-shadow: inset 0 0 0 1.5px var(--rb-acc); color: var(--ink); }
.rb-up { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 10px 0 0; padding: 12px 14px; border-radius: 14px; background: var(--rb-tint); box-shadow: inset 0 0 0 1px var(--rb-acc); font-weight: 600; font-size: 14px; }
.rb-up[hidden] { display: none; }
.rb-up span { flex: 1 1 200px; min-width: 0; }
/* п.55: скидка на быстрых сроках, «экономия до», зачёркнутая обычная цена, «занята — ближайшие свободные даты» */
.rb-pre-d { margin-left: 6px; padding: 1px 6px; border-radius: 999px; background: var(--rb-tint); color: var(--rb-acc); font-size: 12px; font-weight: 800; }
.rb-pre-d:empty { display: none; }
.rb-pre[aria-pressed=true] .rb-pre-d { background: rgba(255,255,255,.22); color: #fff; }
.rb-save { margin: -6px 0 12px; font-weight: 700; color: var(--ink); }
.rb-save[hidden] { display: none; }
/* п.55: «что включено» чипами (шаг «Машина» и панель итога) */
.rb-incl { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 12px; }
.rb-ic { display: inline-flex; align-items: center; gap: 4px; padding: 4px 10px; border-radius: 999px; background: color-mix(in srgb, #067647 10%, transparent); color: #067647; font-size: 13px; font-weight: 700; line-height: 1.3; }
.rb-ic .rb-i { width: 14px; height: 14px; stroke-width: 2.6; flex: none; }
.rb-incl-bar { margin: 0; gap: 4px; }
.rb-incl-bar .rb-ic { font-size: 12px; padding: 3px 8px; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .rb-ic { color: #47CD89; background: color-mix(in srgb, #47CD89 14%, transparent); } }
:root[data-theme="dark"] .rb-ic { color: #47CD89; background: color-mix(in srgb, #47CD89 14%, transparent); }
/* п.55, шаг 3: лента «свободные — от дешёвых» (на телефоне листается вбок) */
.rb-cmp { margin: 0 0 12px; }
.rb-cmp[hidden] { display: none; }
.rb-cmp-h { display: block; margin: 0 0 6px; font-size: 13px; font-weight: 700; color: var(--rb-mut); }
.rb-cmp-l { display: flex; gap: 8px; overflow-x: auto; padding: 2px 2px 4px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.rb-cmp-l::-webkit-scrollbar { display: none; }
.rb-cmp-c { flex: none; display: grid; gap: 1px; min-width: 112px; padding: 8px 12px; border-radius: 12px; background: var(--rb-tint); box-shadow: inset 0 0 0 1px var(--line); cursor: pointer; font-size: 13px; line-height: 1.25; }
.rb-cmp-c span { font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 160px; }
.rb-cmp-c b { font-size: 17px; letter-spacing: -.01em; }
.rb-cmp-c small { color: var(--rb-mut); font-weight: 600; }
.rb-cmp-c:first-child b { color: #067647; }
.rb-cmp-c.on { box-shadow: inset 0 0 0 2px var(--rb-acc); }
.rb-cmp-c:focus-within, .rb-cmp-c:hover { box-shadow: inset 0 0 0 2px var(--rb-acc); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .rb-cmp-c:first-child b { color: #47CD89; } }
:root[data-theme="dark"] .rb-cmp-c:first-child b { color: #47CD89; }
.rb-was { color: var(--rb-mut); font-weight: 600; text-decoration-thickness: 1.5px; }
.rb-was[hidden] { display: none; }
.rb-take { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 0 0 12px; padding: 12px 14px; border-radius: 14px; background: var(--rb-tint); box-shadow: inset 0 0 0 1px var(--rb-acc); font-weight: 600; font-size: 14px; }
.rb-take[hidden], .rb-take a[hidden] { display: none; }
.rb-take span { flex: 1 1 200px; min-width: 0; }
@media (min-width: 760px) { .rb-cal-ms { grid-template-columns: 1fr 1fr; gap: 32px; } }

/* поля с плавающей подписью (без JS тоже: placeholder=" " + :placeholder-shown) */
.rb-fl { position: relative; display: block; margin: 0; }
.rb-fl input, .rb-fl textarea { display: block; width: 100%; min-height: 58px; padding: 24px 14px 8px; border: 0; border-radius: 14px; background: var(--rb-f); color: var(--rb-fi);
  box-shadow: inset 0 0 0 1.5px var(--rb-bd); font: inherit; font-size: 16px; font-weight: 600; transition: box-shadow .15s; -webkit-appearance: none; appearance: none; }
.rb-fl textarea { min-height: 96px; resize: vertical; padding-top: 28px; }
.rb-fl > span { position: absolute; left: 15px; top: 18px; font-size: 16px; font-weight: 500; color: var(--rb-mut); pointer-events: none; transition: top .15s, font-size .15s, color .15s; }
.rb-fl input:focus + span, .rb-fl input:not(:placeholder-shown) + span, .rb-fl textarea:focus + span, .rb-fl textarea:not(:placeholder-shown) + span, .rb-fl-date > span { top: 8px; font-size: 12px; font-weight: 700; }
.rb-fl input:hover, .rb-fl textarea:hover { box-shadow: inset 0 0 0 2px var(--rb-fi); }
.rb-fl input:focus, .rb-fl textarea:focus { outline: none; box-shadow: inset 0 0 0 2px var(--rb-ring), 0 0 0 4px color-mix(in srgb, var(--rb-ring) 22%, transparent); }
.rb-fl input:focus + span, .rb-fl textarea:focus + span { color: var(--rb-acc); }
.rb-fl input:user-invalid, .rb-fl textarea:user-invalid { box-shadow: inset 0 0 0 2px #B42318; }
.rb-fl small { display: block; margin: 6px 4px 0; color: var(--rb-mut); font-size: 13px; line-height: 1.35; }
.rb-xl .rb-fl input[type=date] { min-height: 58px; }
.rb-dates { display: grid; gap: 10px; margin: 0 0 14px; }
@media (min-width: 560px) { .rb-dates { grid-template-columns: 1fr 1fr; } }

/* время — чипы в ленте (телефон — прокрутка вбок, ПК — переносом) */
.rb-times { display: grid; gap: 14px; margin-top: 14px; }
.rb-tset { margin: 0; padding: 0; border: 0; min-width: 0; }
.rb-tset legend { font-weight: 800; font-size: 15px; padding: 0; margin: 0 0 8px; }
.rb-tchips { display: flex; gap: 8px; align-items: center; overflow-x: auto; padding: 4px 4px 8px; margin: 0 -4px; scrollbar-width: thin; }
.rb-tc { flex: none; min-width: 64px; padding: 10px 10px; font-variant-numeric: tabular-nums; }
/* п.55, шаг 5: время вне часов работы — доплата мелко под временем; строка в итоге, «Возврат: там же» */
.rb-tc.off { display: inline-flex; flex-direction: column; align-items: center; gap: 1px; padding-top: 6px; padding-bottom: 6px; }
.rb-tc-f { font-size: 11px; font-weight: 700; line-height: 1; color: var(--rb-mut); }
.rb-offn, .rb-ret { margin: 10px 0 0; opacity: .8; }
.rb-bar-off[hidden] { display: none; }
.rb-chip:has(input:checked) .rb-tc-f { color: inherit; opacity: .85; }
.rb-tg { flex: none; font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: var(--rb-mut); padding: 0 2px 0 6px; }
.rb-tg:first-child { padding-left: 0; }
.rb-warn { margin: 12px 0 0; padding: 10px 12px; border-radius: 12px; background: #FEF3F2; color: #B42318; font-weight: 700; font-size: 14px; }

/* машины — карточки-радиокнопки */
.rb-ccs { margin: 0; padding: 0; border: 0; min-width: 0; display: grid; gap: 12px; }
.rb-cc { position: relative; display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 12px; padding: 10px; border-radius: 16px; background: var(--rb-f); color: var(--rb-fi);
  box-shadow: inset 0 0 0 1.5px var(--line); cursor: pointer; transition: box-shadow .15s, transform .15s; }
.rb-cc:hover { box-shadow: inset 0 0 0 2px var(--rb-fi), var(--rb-sh); }
.rb-cc .rb-r { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.rb-cc:has(.rb-r:focus-visible) { box-shadow: var(--rb-focus); }
.rb-cc.on, .rb-cc:has(.rb-r:checked) { box-shadow: inset 0 0 0 3px var(--rb-acc), var(--rb-sh); }
.rb-cc-pic { position: relative; display: block; border-radius: 12px; overflow: hidden; background: #142D38; aspect-ratio: 4 / 3; align-self: start; }
.rb-cc-pic img { display: block; width: 100%; height: 100%; object-fit: cover; }
.rb-tick { position: absolute; top: 6px; left: 6px; display: none; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--rb-acc); color: #fff; box-shadow: 0 2px 6px rgba(0,0,0,.25); }
.rb-tick .rb-i { width: 18px; height: 18px; stroke-width: 2.6; }
.rb-cc.on .rb-tick, .rb-cc:has(.rb-r:checked) .rb-tick { display: grid; }
.rb-cc-b { display: grid; gap: 6px; align-content: start; min-width: 0; }
.rb-cc-n { font-size: 16px; line-height: 1.25; font-weight: 800; overflow-wrap: anywhere; }
.rb-specs { display: flex; flex-wrap: wrap; gap: 4px 12px; color: var(--rb-mut); font-size: 13px; font-weight: 600; }
.rb-specs > span { display: inline-flex; align-items: center; gap: 4px; }
.rb-specs .rb-i { width: 16px; height: 16px; }
.rb-cc-p { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; font-size: 13px; color: var(--rb-mut); font-weight: 600; }
.rb-cc-p b { font-size: 22px; letter-spacing: -.02em; color: var(--rb-fi); }
.rb-cc-st { display: inline-flex; align-items: center; gap: 4px; font-size: 13px; font-weight: 700; color: #067647; }
.rb-cc-st .rb-i { width: 16px; height: 16px; stroke-width: 2.4; }
.rb-cc.busy .rb-cc-st { color: #B42318; }
.rb-cc.busy .rb-cc-st .rb-i { display: none; }
.rb-cc.busy .rb-cc-pic img { filter: grayscale(.85); opacity: .75; }
.rb-cc.busy .rb-cc-p b { color: var(--rb-mut); }
/* п.55, шаг 4: «В долгосрочной аренде» — отдельно, серым, без красного */
.rb-long-h { grid-column: 1 / -1; margin: 10px 0 2px; font-size: 13px; font-weight: 700; color: var(--rb-mut); }
/* П30: сначала даты, потом машины — «Показать свободные», сортировка по цене, занятые свёрнуты */
.rb-showp, .rb-allp { margin: 12px 0 0; }
.rb-show { min-height: 44px; width: 100%; }
.rb-allfree { display: inline-flex; align-items: center; min-height: 44px; font-weight: 700; }
.rb-sort { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; }
.rb-sort .rb-chip { min-height: 44px; cursor: pointer; }
.rb-sort .rb-chip[aria-pressed="true"] { box-shadow: inset 0 0 0 2px var(--rb-acc); }
.rb-busy-t { display: inline-flex; align-items: center; min-height: 44px; margin: 12px 0 0; padding: 10px 16px; border: 0; border-radius: 14px; font: inherit; font-weight: 700; color: var(--ink); background: var(--rb-f); cursor: pointer; }
.rb-ccs.rb-hb .rb-cc.busy:not(.on):not(:has(.rb-r:checked)) { display: none; }
.rb-ccs.rb-hb .rb-long-h { display: none; }
.rb-long-h[hidden] { display: none; }
.rb-cc.long { opacity: .7; }
.rb-cc.busy.long .rb-cc-st { color: var(--rb-mut); }
.rb-cc.long .rb-cc-p b { color: var(--rb-mut); }
@media (min-width: 560px) { .rb-cc { grid-template-columns: 168px minmax(0, 1fr); } }
@media (min-width: 900px) {
  .rb-ccs { grid-template-columns: 1fr 1fr; }
  .rb-cc { grid-template-columns: 1fr; padding: 0 0 14px; overflow: hidden; }
  .rb-cc-pic { border-radius: 16px 16px 0 0; aspect-ratio: 16 / 9; }
  .rb-cc-b { padding: 0 14px; }
}
@media (prefers-color-scheme: dark) { .rb-xl.rb-nt .rb-cc-st:not([data-theme="light"] *) { color: #47CD89; } .rb-xl.rb-nt .rb-cc.busy .rb-cc-st:not([data-theme="light"] *) { color: #F97066; } }
[data-theme="dark"] .rb-xl.rb-nt .rb-cc-st { color: #47CD89; } [data-theme="dark"] .rb-xl.rb-nt .rb-cc.busy .rb-cc-st { color: #F97066; }

/* место подачи */
.rb-wh { margin: 0; padding: 0; border: 0; min-width: 0; }
.rb-wchips { display: grid; gap: 10px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 480px) { .rb-wchips { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.rb-wc { justify-content: flex-start; gap: 10px; min-height: 64px; padding: 12px; text-align: left; }
.rb-wc-i { display: grid; place-items: center; flex: none; width: 36px; height: 36px; border-radius: 10px; background: color-mix(in srgb, currentColor 10%, transparent); }
.rb-wc-t { display: grid; gap: 1px; min-width: 0; line-height: 1.2; overflow-wrap: break-word; }
.rb-wc-t small { font-size: 12px; font-weight: 600; opacity: .85; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rb-tag { position: absolute; top: -8px; right: 8px; padding: 2px 8px; border-radius: 999px; background: #067647; color: #fff; font-size: 11px; font-weight: 800; letter-spacing: .02em; }
.rb-other { margin-top: 12px; }
.rb-wh:has(.rb-w-o:not(:checked)) .rb-other { display: none; }
.rb-hint { margin: 12px 0 0; }
@media (min-width: 720px) { .rb-wchips { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* контакты */
.rb-step .rb-two { display: grid; gap: 12px; margin-bottom: 12px; }
@media (min-width: 720px) { .rb-step .rb-two { grid-template-columns: 1fr 1fr; } }
.rb-sw { display: flex; align-items: center; gap: 12px; margin: 14px 0 10px; min-height: 44px; cursor: pointer; position: relative; font-size: 15px; line-height: 1.4; font-weight: 600; }
.rb-sw input { position: absolute; opacity: 0; width: 52px; height: 32px; margin: 0; left: 0; cursor: pointer; }
.rb-sw-t { position: relative; flex: none; width: 52px; height: 32px; border-radius: 999px; background: var(--rb-bd); transition: background-color .2s; }
.rb-sw-t::after { content: ""; position: absolute; top: 3px; left: 3px; width: 26px; height: 26px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.3); transition: transform .2s; }
.rb-sw input:checked + .rb-sw-t { background: var(--rb-acc); }
.rb-sw input:checked + .rb-sw-t::after { transform: translateX(20px); }
.rb-sw input:focus-visible + .rb-sw-t { box-shadow: var(--rb-focus); }
.rb-sw input:user-invalid + .rb-sw-t { box-shadow: 0 0 0 2px #B42318; }
.rb-sw-l a { color: var(--ink); text-decoration: underline; position: relative; z-index: 1; }
/* условия брони раскрываются у галочки согласия (не уводят со страницы) */
.rb-terms { margin: 4px 0 8px 64px; font-size: 14px; }
.rb-terms > summary { cursor: pointer; color: var(--ink); text-decoration: underline; min-height: 32px; display: inline-flex; align-items: center; }
.rb-terms[open] > summary { margin-bottom: 8px; }
.rb-terms .rs-terms h2 { font-size: 16px; margin: 0 0 6px; }
.rb-terms .rs-terms ul, .rb-terms .rs-cond ul { margin: 0; padding-left: 18px; }
.rb-terms .rs-cond { margin-top: 10px; gap: 8px; grid-template-columns: 1fr; }
.rb-terms .rs-cond > div { padding: 10px 12px; }
.rb-terms .rs-cond h3 { font-size: 15px; }

/* итог: телефон — панель снизу, ПК — липкая карточка справа */
.rb-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 20; padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); background: color-mix(in srgb, var(--rb-f) 94%, transparent);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); box-shadow: 0 -1px 0 var(--line), 0 -8px 24px rgba(20,45,56,.10); color: var(--rb-fi); }
.rb-bar-in { display: flex; align-items: center; gap: 12px; max-width: 760px; margin: 0 auto; }
.rb-bar-h, .rb-bar-car, .rb-bar-dl, .rb-bar-note, .rb-bar .rb-sea, .rb-bar .rb-incl-bar { display: none; }
.rb-bar-mini { display: grid; gap: 2px; min-width: 0; flex: 1; }
.rb-bar-mini b { font-size: 22px; letter-spacing: -.02em; line-height: 1.1; }
.rb-bar-mini small { font-size: 12.5px; line-height: 1.3; font-weight: 600; color: var(--rb-mut); }
.rb-bar-mini [data-o=prepayS] { display: inline-block; max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; vertical-align: bottom; } /* «$60 предоплата сейчас» — второй строкой целиком */
.rb-xl .rb-bar .rb-go { flex: none; width: auto; min-width: 0; min-height: 52px; padding: 12px 18px; gap: 8px; background: var(--rb-acc); color: #fff; border-radius: 14px; font-weight: 800; font-size: 15px; }
.rb-xl .rb-bar .rb-go:hover { filter: brightness(.94); }
.rb-xl .rb-bar .rb-go:focus-visible { box-shadow: var(--rb-focus); outline: none; }

.rb-go-s { display: none; }
@media (max-width: 999px) { .rb-xl .rb-bar .rb-go-l { display: none; } .rb-xl .rb-bar .rb-go-s { display: inline; } }
.rb-bump { animation: rb-bump .35s ease; }
@keyframes rb-bump { 40% { transform: scale(1.06); } }
@media (min-width: 1000px) {
  .rb-xl { padding-bottom: 24px; }
  .rb-book { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 24px; align-items: start; }
  .rb-bar { position: sticky; top: 76px; left: auto; right: auto; bottom: auto; z-index: 1; padding: 0; background: none; backdrop-filter: none; -webkit-backdrop-filter: none; box-shadow: none; }
  .rb-bar-in { display: grid; gap: 12px; padding: 18px; border-radius: 18px; background: var(--rb-f); border: 1px solid var(--line); box-shadow: var(--rb-sh); }
  .rb-xl .rb-bar-h { display: block; margin: 0; font-size: 20px; letter-spacing: -.01em; }
  .rb-bar-car { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 12px; align-items: center; }
  .rb-bar-pic { display: block; aspect-ratio: 4 / 3; border-radius: 12px; overflow: hidden; background: #142D38; }
  .rb-bar-pic img { width: 100%; height: 100%; object-fit: cover; display: block; }
  .rb-bar-car > span:last-child { display: grid; gap: 4px; min-width: 0; }
  .rb-bar-car b { font-size: 15px; line-height: 1.25; overflow-wrap: anywhere; }
  .rb-bar-car small { font-size: 13px; color: var(--rb-mut); font-weight: 600; }
  .rb-bar-dl { display: grid; gap: 8px; margin: 0; padding: 12px 0 0; border-top: 1px solid var(--line); }
  .rb-bar-dl > div { display: flex; justify-content: space-between; gap: 12px; font-size: 14px; }
  .rb-bar-dl dt { color: var(--rb-mut); font-weight: 600; }
  .rb-bar-dl dd { margin: 0; font-weight: 700; text-align: right; }
  .rb-bar-tot { padding: 8px 0; border-top: 1px dashed var(--line); border-bottom: 1px dashed var(--line); }
  .rb-bar-tot dt { color: var(--rb-fi) !important; font-weight: 800 !important; font-size: 16px; align-self: center; }
  .rb-bar-tot dd { font-size: 28px; letter-spacing: -.02em; font-weight: 800; }
  .rb-bar-mini { display: none; }
  .rb-xl .rb-bar .rb-go { width: 100%; }
  .rb-bar-note { display: block; margin: 0; text-align: center; color: var(--rb-mut); }
  .rb-bar .rb-sea:not([hidden]) { display: block; margin: 0; font-weight: 600; color: var(--rb-mut); } /* сезонная цена (lib/rentseason.js) */
  .rb-bar .rb-incl-bar { display: flex; } /* п.55: «что включено» — только на широкой панели итога */
  .rb-stepper { margin: 0 0 16px; padding: 8px 0; }
}
@media (min-width: 720px) { .rb-step { padding: 22px 24px; } }
@media (prefers-reduced-motion: reduce) { .rb-xl * { transition: none !important; animation: none !important; } }

/* Сообщество: тема и ответы (ARG-SOC-001 шаг 3) */
.topic h1 { margin-top: 4px; }
.posts { display: flex; flex-direction: column; gap: 10px; }
.post { padding: 12px 14px; background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); overflow-wrap: anywhere; }
.post p { margin: 0 0 6px; }
.post p:last-child { margin: 0; }
.post.best { border-color: color-mix(in srgb, var(--accent) 55%, var(--line)); }

/* ---------- «Курсы сейчас» карточками (ARG-EXC-030, lib/exsite.js ratesHtml): страница обменника в каталоге и его сайт ----------
   Та же раскладка, что в Mini App (public/app.css .xr): значок валюты, «Вы продаёте / Вы покупаете» (песо за 1), кросс-курсы чипами, бейдж свежести.
   Работает и в shadow DOM приложения (там нет :root сайта) — у переменных запасные значения */
.xr { margin: 24px 0 8px; max-width: 860px; }
.xr-head { display: flex; align-items: center; justify-content: space-between; gap: 8px 12px; flex-wrap: wrap; margin-bottom: 12px; }
.xr-head h2 { margin: 0; }
.xr-fresh { display: inline-flex; align-items: center; gap: 6px; min-height: 26px; padding: 3px 11px 3px 9px; border-radius: 999px; font-size: 12.5px; font-weight: 600; white-space: nowrap;
  color: var(--muted); background: color-mix(in srgb, var(--muted) 12%, transparent); }
.xr-fresh i { width: 7px; height: 7px; border-radius: 50%; background: currentColor; flex: none; }
.xr-fresh.ok { color: var(--ok, #126C51); background: color-mix(in srgb, var(--ok, #126C51) 12%, transparent); }
.xr-fresh.warn { color: var(--sun, #B7791F); background: color-mix(in srgb, var(--sun, #B7791F) 14%, transparent); }
.xr-stale { margin: -4px 0 12px; padding: 9px 12px; border-radius: 12px; font-size: 14px; background: color-mix(in srgb, var(--muted) 10%, transparent); }
.xr-stale::before { content: "⏳ "; }
.xr-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.xr-card { min-width: 0; padding: 12px 12px 10px; border-radius: 16px; background: var(--card); border: 1px solid var(--line); box-shadow: var(--shadow, none); }
.xr-cur { display: flex; align-items: center; gap: 9px; min-width: 0; margin-bottom: 10px; }
.xr-ic { display: grid; place-items: center; width: 32px; height: 32px; flex: none; border-radius: 50%; font: 700 15px/1 var(--head, Sora, Manrope, system-ui, sans-serif); color: #fff; background: #53648B; letter-spacing: -.04em; }
.xr-ic.sm { width: 18px; height: 18px; font-size: 10px; }
.xr-ic.c-USD { background: #17855A; } .xr-ic.c-EUR { background: #2F5BD3; } .xr-ic.c-BRL { background: #E3A008; color: #1B2A1A; } .xr-ic.c-USDT { background: #26A17B; }
.xr-ic.c-RUB { background: #6A55D6; } .xr-ic.c-CNY { background: #D63B32; } .xr-ic.c-ARS { background: #5BA4DB; }
.xr-nm { display: flex; flex-direction: column; min-width: 0; line-height: 1.15; }
.xr-nm b { font: 700 16px/1.15 var(--head, Sora, Manrope, system-ui, sans-serif); }
.xr-nm small { font-size: 12px; opacity: .72; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.xr-rows { margin: 0; display: grid; gap: 5px; }
.xr-rows > div { display: flex; align-items: baseline; justify-content: space-between; gap: 6px; min-width: 0; }
.xr-rows div + div { padding-top: 5px; border-top: 1px dashed var(--line); }
.xr-rows dt { font-size: 12px; opacity: .72; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.xr-rows dd { margin: 0; font: 700 18px/1.2 var(--head, Sora, Manrope, system-ui, sans-serif); font-variant-numeric: tabular-nums; letter-spacing: -.01em; white-space: nowrap; }
.xr-no { opacity: .55; font-weight: 500; }
.xr-legend { margin: 10px 2px 0; font-size: 12.5px; line-height: 1.45; opacity: .75; }
.xr .xr-xh { margin: 18px 0 8px; font-size: 14px; font-weight: 700; }
.xr-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.xr-chips li { display: inline-flex; align-items: center; gap: 8px; min-height: 32px; padding: 4px 12px 4px 7px; border-radius: 999px; background: var(--card); border: 1px solid var(--line); font-size: 13.5px; }
.xr-pair { display: inline-flex; align-items: center; gap: 5px; font-weight: 600; white-space: nowrap; }
.xr-chips b { font-variant-numeric: tabular-nums; white-space: nowrap; }
.xr-chips b.pos { color: var(--ok, #126C51); }
.xr-empty { opacity: .75; }
.xs-btn.xr-go { margin-top: 14px; width: 100%; }
@media (min-width: 720px) { .xs-btn.xr-go { width: auto; min-width: 260px; } }
/* ПК: 4 валюты в ряд (ARG-EXC-032 п.4 — RUB не уезжает один во второй ряд) */
@media (min-width: 720px) { .xr-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } .xr-rows dd { font-size: 19px; } }
@media (prefers-color-scheme: dark) { .xr-fresh.ok:not([data-theme="light"] *) { --ok: #3DD598; } .xr-fresh.warn:not([data-theme="light"] *) { --sun: #F6B53C; } .xr-chips b.pos:not([data-theme="light"] *) { --ok: #3DD598; } }
[data-theme="dark"] .xr-fresh.ok { --ok: #3DD598; } [data-theme="dark"] .xr-fresh.warn { --sun: #F6B53C; } [data-theme="dark"] .xr-chips b.pos { --ok: #3DD598; }

/* ---------- фирменная страница обменника (ARG-EXC-030, lib/exsite.js): сайт arghub.app/<адрес> и Mini App (shadow DOM) ----------
   hero — обложка темы на всю ширину с затемнением, логотип, название, две кнопки; ниже преимущества плашками, курсы, доставка, отзывы, «Компания».
   Цвета — тема бизнеса (--biz, --biz-ink, --ink, --card, --line); компактно: H1 ≤ 30 px, кнопки 48 px, скругления 16–20 px */
.xs h2 { font-size: 19px; font-weight: 700; margin: 0 0 10px; letter-spacing: -.015em; }
.xs h3 { font-size: 14px; margin: 0 0 8px; }
.xs-hero { position: relative; overflow: hidden; border-radius: 20px; margin-top: 12px; min-height: 360px; display: flex; flex-direction: column; justify-content: flex-end;
  background: var(--biz, #081337); color: var(--biz-ink, #fff); isolation: isolate; }
.xs-hero-p { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.xs-hero:not(.flat)::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(8,10,28,.08) 0%, rgba(8,10,28,.45) 42%, rgba(8,10,28,.9) 100%); }
.xs-hero:not(.flat) { color: #fff; }
.xs-hero.flat { min-height: 0; background: linear-gradient(135deg, var(--biz, #3457FF), color-mix(in srgb, var(--biz, #8C55FF) 62%, #000)); }
.xs-hero-t { padding: 88px 18px 18px; }
.xs-hero.flat .xs-hero-t { padding-top: 22px; }
.xs-logo { display: block; width: 56px; height: 56px; border-radius: 16px; object-fit: cover; background: #fff; box-shadow: 0 0 0 2px rgba(255,255,255,.85), 0 6px 18px rgba(0,0,0,.25); margin-bottom: 12px; }
/* полный логотип бренда (theme.wordmark, ARG-EXC-041): по брендбуку не меньше 240 px, без рамки и подложки; герой со своей обложкой — отступ сверху меньше */
.xs-wm { display: block; width: 240px; max-width: 72%; height: auto; margin: -64px 0 14px -6px; }
@media (min-width: 720px) { .xs-wm { margin-top: -92px; } }
/* п.21/53: есть полный логотип бренда — название в h1 только для поиска и экранного диктора, глазами видно один раз (в логотипе) */
.xs-vh { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.xs-kick { display: inline-block; margin: 0 0 8px; padding: 5px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; letter-spacing: .01em;
  background: rgba(255,255,255,.16); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); color: inherit; }
.xs-hero h1 { color: inherit; font-size: clamp(26px, 6.4vw, 38px); line-height: 1.08; letter-spacing: -.025em; margin: 0 0 6px; }
.xs-lead { margin: 0 0 6px; font-size: 15px; line-height: 1.45; opacity: .9; max-width: 34em; }
.xs-rate { display: inline-flex; align-items: baseline; gap: 6px; margin-top: 2px; color: inherit; font-size: 13.5px; opacity: .95; }
.xs-rate b { font-size: 15px; color: #FFC94D; }
.xs-hero.flat .xs-rate b { color: inherit; }
.xs-acts { display: grid; grid-template-columns: 1.3fr 1fr; gap: 8px; margin-top: 14px; }
.xs-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 48px; padding: 11px 16px; border-radius: 14px; background: var(--biz, var(--accent, #3457E8)); color: var(--biz-btn, var(--biz-ink, #fff));
  font: 700 15.5px/1.2 var(--text, Manrope, system-ui, sans-serif); text-align: center; text-decoration: none; transition: filter .15s; }
.xs-btn:hover { text-decoration: none; filter: brightness(.95); }
.xs-btn:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.xs-btn.ghost { background: rgba(255,255,255,.12); color: #fff; box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.8); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.xs-hero.flat .xs-btn { background: var(--biz-ink, #fff); color: var(--biz, #081337); }
.xs-hero.flat .xs-btn.ghost { background: transparent; color: var(--biz-ink, #fff); box-shadow: inset 0 0 0 1.5px currentColor; }
.xs-acts .xs-btn:only-child { grid-column: 1 / -1; }
.xs-points { list-style: none; margin: 12px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.xs-points li { display: flex; align-items: center; gap: 8px; min-height: 48px; padding: 9px 11px; border-radius: 14px; background: var(--card); border: 1px solid var(--line); font-size: 13px; font-weight: 600; line-height: 1.3; }
.xs-points span { display: grid; place-items: center; width: 28px; height: 28px; flex: none; border-radius: 9px; font-size: 14px; background: color-mix(in srgb, var(--biz, #3457E8) 14%, transparent); }
.bb-points span { background: color-mix(in srgb, var(--mark, var(--biz, #3457E8)) 18%, transparent); color: var(--mark-tx, var(--mark, inherit)); } /* п.53: галочки цветом брендбука */
.xs .xr { margin-top: 26px; }
.xs-box { margin-top: 16px; padding: 16px; border-radius: 18px; background: var(--card); border: 1px solid var(--line); }
.xs-dlv h3 { margin-top: 2px; }
.xs-tags { list-style: none; margin: 0 0 12px; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.xs-tags li { padding: 5px 10px; border-radius: 999px; font-size: 13px; font-weight: 600; background: color-mix(in srgb, var(--biz, #3457E8) 12%, transparent); }
.xs-muted { opacity: .75; margin: 0 0 10px; font-size: 14px; }
.xs-facts { display: grid; grid-template-columns: auto 1fr; gap: 6px 14px; margin: 0; font-size: 14px; }
.xs-facts dt { opacity: .7; }
.xs-facts dd { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
.xs-reviews { margin-top: 24px; }
.xs-stars { display: flex; align-items: baseline; gap: 10px; margin: 0; }
.xs-stars b { font-size: 32px; letter-spacing: -.02em; }
.xs-stars span { color: #F5A524; font-size: 18px; letter-spacing: 2px; }
/* тексты отзывов на сайте обменника (ARG-EXC-032 п.3) */
.xs-rv { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 10px; }
.xs-rv li { padding: 12px 14px; border-radius: 14px; border: 1px solid var(--line); }
.xs-rv p { margin: 0; font-size: 14px; line-height: 1.45; overflow-wrap: anywhere; }
.xs-rv .xs-rv-h { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 4px; }
.xs-rv-h span { color: #F5A524; letter-spacing: 1px; }
/* мастер, у которого был визит (ARG-BRB-030 этап 2 п.6) — второй строкой под именем */
.xs-rv .xs-rv-h:has(.xs-rv-m) { flex-wrap: wrap; }
.xs-rv-m { order: 1; flex-basis: 100%; opacity: .7; font-size: 13px; }
@media (min-width: 720px) { .xs-rv { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.xs-company { font-size: 13px; }
.xs-company h2 { font-size: 16px; }
.xs-company .xs-facts { font-size: 13px; }
.xs-company a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
@media (min-width: 720px) {
  .xs-hero { min-height: 420px; }
  .xs-hero-t { padding: 120px 36px 32px; max-width: 720px; }
  .xs-acts { display: flex; flex-wrap: wrap; gap: 10px; }
  .xs-acts .xs-btn { min-width: 180px; }
  .xs-points { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .xs-box { padding: 20px 22px; }
}

/* «← ArgHub» на сайте бизнеса — только при переходе из ArgHub (владелец 01.10) */
.bs-hub { flex: none; display: inline-flex; align-items: center; gap: 4px; margin-right: 10px; padding: 6px 12px; border-radius: 999px; font-size: 13px; font-weight: 600; text-decoration: none; color: inherit; background: rgba(127, 127, 127, .14); border: 1px solid rgba(127, 127, 127, .28); }
.bs-hub:hover { background: rgba(127, 127, 127, .24); }

/* ---------- фирменная страница студии разработки (ARG-IT-001, lib/itsite.js): сайт arghub.app/<адрес> и Mini App (shadow DOM) ----------
   Классы обменника (xs-hero, xs-btn, xs-points, xs-box) + свои: слоган крупно, портфолио лентой со скриншотами (scroll-snap, без скриптов),
   пакеты и цены, этапы, вопросы <details>, финальный призыв. Цвета — тема бизнеса (--biz, --biz-ink, --ink, --card, --line) */
.is-hero .xs-hero-t { padding-top: 64px; }
.is-hero .xs-hero-p { object-position: 92% center; } /* знак бренда на обложке — справа, на телефоне не обрезается */
.is-tag { margin: 4px 0 8px; font-family: var(--head, inherit); font-size: clamp(28px, 7.4vw, 46px); font-weight: 700; line-height: 1.05; letter-spacing: -.03em; }
.is-sec { margin-top: 26px; }
.is-sec > h2 { margin-bottom: 4px; }
.is-sec > .xs-muted { margin-bottom: 12px; }
.is-works { list-style: none; margin: 0 -16px; padding: 2px 16px 10px; display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding: 0 16px; -webkit-overflow-scrolling: touch; scrollbar-width: thin; }
.is-work { flex: 0 0 min(78%, 300px); scroll-snap-align: start; display: flex; flex-direction: column; border-radius: 20px; background: var(--card); border: 1px solid var(--line); overflow: hidden; }
.is-shots { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; background: color-mix(in srgb, var(--biz, #5b54f5) 10%, #000); aspect-ratio: 420 / 620; }
.is-shots::-webkit-scrollbar { display: none; }
.is-shots:focus-visible { outline: 2px solid var(--biz, #5b54f5); outline-offset: -2px; }
.is-shots img { flex: 0 0 100%; width: 100%; height: 100%; object-fit: cover; object-position: top; scroll-snap-align: center; display: block; }
.is-dots { display: flex; justify-content: center; gap: 5px; margin: 8px 0 0; }
.is-dots i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; opacity: .45; } /* сколько экранов — без скрипта точка не «едет», поэтому все одинаковые */
.is-work-t { padding: 12px 14px 14px; }
.is-work-t { flex: 1 1 auto; display: flex; flex-direction: column; align-items: flex-start; }
.is-work-t p { align-self: stretch; }
.is-work.nosh { align-self: flex-start; }
.is-mono { flex: 0 0 auto; min-height: 170px; display: grid; place-items: center; padding: 16px; text-align: center; background: linear-gradient(145deg, color-mix(in srgb, var(--biz, #5b54f5) 42%, #000), color-mix(in srgb, var(--biz, #5b54f5) 12%, #000)); color: #fff; }
.is-mono span { font-size: 26px; font-weight: 800; letter-spacing: -.02em; overflow-wrap: anywhere; }
.is-open { margin-top: auto; padding-top: 10px; font-size: 13.5px; font-weight: 700; color: var(--accent); text-decoration: none; }
.is-open:hover, .is-open:focus-visible { text-decoration: underline; }
.is-work-t b { display: block; font-size: 16px; letter-spacing: -.01em; }
.is-work-t p { margin: 8px 0 0; font-size: 13.5px; line-height: 1.45; opacity: .85; }
.is-chip { display: inline-block; margin-top: 6px; padding: 3px 9px; border-radius: 999px; font-size: 12px; font-weight: 700; background: color-mix(in srgb, var(--biz, #5b54f5) 18%, transparent); }
.is-packs { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 10px; }
.is-pack { position: relative; padding: 16px; border-radius: 20px; background: var(--card); border: 1px solid var(--line); display: flex; flex-direction: column; }
.is-pack.hot { border: 2px solid var(--biz, #5b54f5); box-shadow: 0 10px 30px color-mix(in srgb, var(--biz, #5b54f5) 25%, transparent); }
.is-hot { position: absolute; top: -11px; left: 14px; padding: 3px 10px; border-radius: 999px; font-size: 11.5px; font-weight: 700; background: var(--biz, #5b54f5); color: var(--biz-ink, #fff); }
.is-pack h3 { font-size: 16px; margin: 0 0 6px; }
.is-price { display: flex; align-items: baseline; gap: 8px; margin: 0; }
.is-price b { font-size: 28px; letter-spacing: -.02em; }
.is-price small { opacity: .7; font-size: 13px; }
.is-mo { margin: 2px 0 0; font-size: 14px; font-weight: 600; opacity: .85; }
.is-items { list-style: none; margin: 12px 0 14px; padding: 0; display: grid; gap: 6px; font-size: 13.5px; flex: 1; align-content: start; }
.is-items li { position: relative; padding-left: 22px; line-height: 1.4; }
.is-items li::before { content: "✓"; position: absolute; left: 0; top: 0; font-weight: 700; color: var(--accent, var(--biz, #5b54f5)); }
.is-pack .xs-btn { width: 100%; }
.is-pack .xs-btn.soft { background: color-mix(in srgb, var(--biz, #5b54f5) 16%, transparent); color: inherit; }
.is-note { margin: 12px 0 0; font-size: 13px; line-height: 1.5; opacity: .8; }
.is-steps { list-style: none; counter-reset: st; margin: 12px 0 0; padding: 0; display: grid; gap: 10px; }
.is-steps li { counter-increment: st; position: relative; padding: 14px 14px 14px 58px; border-radius: 18px; background: var(--card); border: 1px solid var(--line); }
.is-steps li::before { content: counter(st); position: absolute; left: 14px; top: 13px; width: 32px; height: 32px; display: grid; place-items: center; border-radius: 10px; font-weight: 700; background: var(--biz, #5b54f5); color: var(--biz-ink, #fff); }
.is-steps b { font-size: 15px; }
.is-steps p { margin: 4px 0 0; font-size: 13.5px; line-height: 1.45; opacity: .85; }
.is-faq { margin-top: 10px; display: grid; gap: 8px; }
.is-faq details { border-radius: 16px; background: var(--card); border: 1px solid var(--line); }
.is-faq summary { cursor: pointer; list-style: none; padding: 13px 40px 13px 14px; font-weight: 600; font-size: 14.5px; position: relative; min-height: 48px; box-sizing: border-box; display: flex; align-items: center; }
.is-faq summary::-webkit-details-marker { display: none; }
.is-faq summary::after { content: "+"; position: absolute; right: 14px; top: 50%; transform: translateY(-50%); font-size: 20px; opacity: .6; }
.is-faq details[open] summary::after { content: "−"; }
.is-faq summary:focus-visible { outline: 2px solid var(--biz, #5b54f5); outline-offset: 2px; border-radius: 16px; }
.is-faq p { margin: 0; padding: 0 14px 14px; font-size: 14px; line-height: 1.5; opacity: .88; }
.is-end { margin-top: 26px; padding: 22px 18px; border-radius: 22px; text-align: center; background: linear-gradient(135deg, var(--hero-bg, #1E1B4B), color-mix(in srgb, var(--biz, #5b54f5) 70%, #000)); color: #fff; }
.is-end h2 { color: inherit; margin: 0 0 6px; }
.is-end p { margin: 0 0 14px; opacity: .9; font-size: 14.5px; }
.is-end .xs-btn { width: 100%; max-width: 360px; background: #fff; color: #081337; }
@media (min-width: 720px) {
  .is-hero .xs-hero-t { padding-top: 96px; }
  .is-hero + .xs-points { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
  .is-hero + .xs-points:has(li:nth-child(6)) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .is-works { margin: 0; padding: 2px 0 10px; }
  .is-work { flex-basis: 260px; }
  .is-packs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .is-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: no-preference) { .is-works, .is-shots { scroll-behavior: smooth; } }
/* Фирменный сайт барбершопа (ARG-BRB-001 шаг 24, lib/barbersite.js): поверх xs-*/is-*; цвета — переменные темы бизнеса */
.bb-hero .xs-hero-t { padding-top: 120px; }
.bb-next { display: inline-flex; gap: 6px; margin: 10px 0 0; padding: 6px 12px; border-radius: 999px; font-size: 13.5px; background: rgba(0,0,0,.35); color: inherit; }
.bb-hero.flat .bb-next { background: rgba(255,255,255,.16); }
.bb-next b { color: var(--accent, #FFC94D); }
.bb-hero.flat .bb-next b { color: inherit; }
.bb-enter { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 0; }
.bb-enter a { flex: 1 1 140px; display: flex; align-items: center; justify-content: center; min-height: 44px; padding: 8px 12px; border-radius: 14px; font-size: 14px; font-weight: 600; color: inherit; background: var(--card); border: 1px solid var(--line); text-decoration: none; }
.bb-enter a:hover { border-color: var(--biz, #f3a93c); }
/* лояльность «каждый N-й визит — подарок» (ARG-BRB-030 этап 2 п.3) */
.bb-loy { display: flex; gap: 12px; align-items: flex-start; margin: 14px 0 0; padding: 14px 16px; border-radius: 16px; background: var(--card); border: 1px dashed var(--biz, #f3a93c); }
.bb-loy-i { font-size: 26px; line-height: 1; }
.bb-loy b { display: block; font-size: 15px; }
.bb-loy small { display: block; margin-top: 2px; font-size: 13px; opacity: .75; }
.bb-loy-s { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0 0; }
.bb-loy-s i { width: 22px; height: 22px; border-radius: 50%; border: 2px solid var(--line); font-style: normal; font-size: 12px; display: inline-flex; align-items: center; justify-content: center; }
.bb-loy-s i.g { border-color: var(--biz, #f3a93c); }
/* отзывы из Google Карт на странице барбера (lib/greviews.js section): заголовок раздела — обычный h2, карточки — общие .rs-grc */
.bb-greviews .rs-ghead { margin: 0 0 10px; font-size: 18px; color: inherit; }
.bb-greviews .rs-grc { border-radius: 16px; background: var(--bg, var(--card)); }
.bb-greviews .rs-gall { margin-top: 4px; }
/* HB-5: компактный прайс — одна карточка-контейнер, строки-кнопки с тонкими разделителями (название + длительность слева, цена и › справа) */
.bb-svc-box { border-radius: 16px; background: var(--card); border: 1px solid var(--line); overflow: hidden; }
.bb-svc { list-style: none; margin: 0; padding: 0; }
.bb-svc li + li, .bb-svc-more { border-top: 1px solid var(--line); }
.bb-row { display: flex; align-items: center; gap: 12px; min-height: 56px; padding: 8px 14px; color: inherit; text-decoration: none; -webkit-tap-highlight-color: transparent; }
a.bb-row:hover { background: color-mix(in srgb, var(--biz, #f3a93c) 10%, transparent); text-decoration: none; }
a.bb-row:active { background: color-mix(in srgb, var(--biz, #f3a93c) 18%, transparent); }
a.bb-row:focus-visible { outline: 2px solid var(--biz, #f3a93c); outline-offset: -2px; }
.bb-svc-t { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.bb-svc-t b { font-size: 15.5px; line-height: 1.3; font-weight: 600; overflow-wrap: anywhere; }
.bb-svc-t small { opacity: .7; font-size: 12.5px; line-height: 1.2; }
.bb-price { font-size: 16px; font-weight: 700; letter-spacing: -.01em; white-space: nowrap; }
.bb-chev { font-size: 22px; line-height: 1; opacity: .5; margin-left: -4px; }
.bb-svc-more > summary { display: flex; align-items: center; justify-content: center; min-height: 52px; padding: 8px 14px; font-size: 15px; font-weight: 600; color: var(--biz, inherit); cursor: pointer; list-style: none; }
.bb-svc-more > summary::-webkit-details-marker { display: none; }
.bb-svc-more[open] > summary { display: none; }
.bb-end .xs-btn.soft { background: color-mix(in srgb, var(--biz, #f3a93c) 18%, transparent); color: inherit; }
.bb-works { display: flex; gap: 10px; margin: 0 -16px; padding: 2px 16px 10px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.bb-works:focus-visible { outline: 2px solid var(--biz, #f3a93c); outline-offset: 2px; }
.bb-works figure { flex: 0 0 min(72%, 260px); margin: 0; scroll-snap-align: start; border-radius: 18px; overflow: hidden; background: var(--card); border: 1px solid var(--line); }
.bb-works img { display: block; width: 100%; aspect-ratio: 4 / 5; height: auto; object-fit: cover; }
.bb-works figcaption { padding: 8px 12px 10px; font-size: 13px; opacity: .85; }
.bb-team { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; }
.bb-team li { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 4px; padding: 14px 10px; border-radius: 18px; background: var(--card); border: 1px solid var(--line); }
.bb-team img, .bb-ava { width: 88px; height: 88px; border-radius: 50%; object-fit: cover; margin-bottom: 6px; box-shadow: 0 0 0 3px color-mix(in srgb, var(--biz, #f3a93c) 55%, transparent); }
.bb-ava { display: grid; place-items: center; font-size: 34px; font-weight: 700; background: color-mix(in srgb, var(--biz, #f3a93c) 22%, transparent); }
.bb-team small { opacity: .7; font-size: 13px; }
.bb-mrate { font-size: 13px; font-weight: 600; color: #F5A524; }
.bb-mrate i { font-style: normal; font-weight: 400; color: var(--muted, inherit); opacity: .8; }
.bb-team .bb-team-bk { margin-top: 6px; min-height: 40px; padding: 8px 16px; font-size: 14px; }
.bb-hours dd { font-variant-numeric: tabular-nums; }
.bb-how { margin: 12px 0 4px !important; font-size: 13px !important; opacity: .8 !important; }
.bb-tg { color: inherit; font-size: 14px; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.bb-fab { position: sticky; bottom: 0; z-index: 5; margin: 18px -16px 0; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: linear-gradient(180deg, transparent, var(--bg, #0d0b0a) 40%); }
.bb-fab .xs-btn { width: 100%; box-shadow: 0 8px 24px rgba(0,0,0,.35); }
@media (min-width: 720px) {
  .bb-hero { min-height: 440px; }
  .bb-hero .xs-hero-t { padding: 150px 32px 28px; max-width: 640px; }
  .bb-hero .xs-acts { max-width: 480px; }
  .bb-svc-box { max-width: 640px; }
  .bb-works { margin: 0; padding: 2px 0 10px; }
  .bb-works figure { flex-basis: 240px; }
  .bb-enter a { flex: 0 0 auto; }
  .bb-fab { display: none; }
}
/* «Сегодня на связи» бизнеса (ARG-UX-090): шапка карточки, hero проката и обменника; в Mini App — «Сейчас онлайн» в той же строке */
.pres-l { display: flex; align-items: center; gap: 8px; margin: 6px 0 0; font-size: 13.5px; color: var(--muted); }
.pres-l.on { color: var(--ok, #126C51); font-weight: 600; }
.pres-dot { display: inline-block; flex: none; width: 9px; height: 9px; border-radius: 50%; background: var(--ok, #126C51); box-shadow: 0 0 0 3px color-mix(in srgb, var(--ok, #126C51) 22%, transparent); }
.rs-hero-t .pres-l, .xs-hero-t .pres-l { margin: 12px 0 4px; color: rgba(255, 255, 255, .85); text-shadow: 0 1px 2px rgba(0, 0, 0, .35); }
.rs-hero-t .pres-l.on, .xs-hero-t .pres-l.on { color: #7CF0C0; }
.rs-hero.flat .pres-l, .xs-hero.flat .pres-l { color: inherit; text-shadow: none; }
@media (prefers-color-scheme: dark) { .pres-l.on:not([data-theme="light"] *), .pres-dot:not([data-theme="light"] *) { --ok: #3DD598; } }
[data-theme="dark"] .pres-l.on, [data-theme="dark"] .pres-dot { --ok: #3DD598; }
/* ARG-SEO-016: главный запрос бизнеса — h2 в виде прежней плашки/подписи (вид страницы не меняется, меняется только тег для поисковика) */
.rs h2.rs-kick { font-family: inherit; font-size: 13px; line-height: inherit; letter-spacing: .02em; margin: 0; text-wrap: wrap; }
.xs h2.xs-kick { font-family: inherit; font-size: 12px; line-height: inherit; letter-spacing: .01em; margin: 0 0 8px; text-wrap: wrap; }
.head h2.bs-q { font: inherit; letter-spacing: normal; margin: 0; text-wrap: wrap; }

/* корзина по меню еды на сайте бизнеса (ARG-PLAT-001 шаг 26, lib/webord.js /cart): день — карточка, блюдо — строка с полем «сколько» */
.rb-cart { display: grid; gap: 12px; }
.rb-day { margin: 0; min-width: 0; }
.rb-day > legend { float: left; width: 100%; padding: 0; margin: 0 0 6px; font-weight: 800; font-size: 16px; text-transform: capitalize; }
.rb-dish { display: flex; align-items: center; gap: 12px; min-height: 48px; padding: 6px 0; border-top: 1px solid var(--line); cursor: pointer; }
.rb-dish .grow { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.rb-dish b { white-space: nowrap; }
.rb-dish input { flex: none; width: 72px; min-height: 44px; padding: 8px 10px; border-radius: 12px; border: 1.5px solid var(--rb-bd, var(--line)); background: var(--rb-f, var(--card)); color: var(--rb-fi, var(--ink)); font: 700 16px/1 var(--text); text-align: center; }
.rb-dish input:focus-visible { outline: none; box-shadow: var(--rb-focus); }
.rb-dish.off { opacity: .55; cursor: default; }
.rb-items { list-style: none; margin: 0 0 4px; padding: 0; }
.rb-items li { display: flex; justify-content: space-between; gap: 12px; padding: 6px 0; border-bottom: 1px solid var(--line); }
.rb-items li span { min-width: 0; overflow-wrap: anywhere; }
/* Доп. услуги проката (ARG-RENT-010 этап 5, lib/rentextras.js): галочки-чипы на шаге «Контакты» и строки в итоге брони */
.rb-ex { border: 0; padding: 0; margin: 0 0 14px; display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 8px; }
.rb-ex legend { font-weight: 800; margin-bottom: 8px; padding: 0; }
.rb-ex .rb-hint { grid-column: 1 / -1; margin: 2px 0 0; }
.rb-exc { justify-content: flex-start; text-align: left; min-height: 56px; }
.rb-exc-t { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.rb-exc-t small { font-weight: 600; opacity: .8; }
.rb-exl { list-style: none; margin: 8px 0 0; padding: 0; }
/* п.55 «Добавить в поездку»: строка доп. услуги — иконка, название + подсказка, цена, переключатель (как .rb-sw) */
.rb-ao { display: grid; grid-template-columns: 1fr; gap: 0; }
.rb-ao-r { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto 52px; align-items: center; gap: 12px; min-height: 64px; padding: 10px 0; border-bottom: 1px solid var(--line); cursor: pointer; position: relative; }
.rb-ao-r:last-of-type { border-bottom: 0; }
.rb-ao-i { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; font-size: 20px; background: color-mix(in srgb, var(--biz, #F05609) 10%, var(--card)); }
.rb-ao-t { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.rb-ao-t b { font-size: 15px; line-height: 1.3; }
.rb-ao-t small { font-size: 13px; line-height: 1.35; opacity: .75; }
.rb-ao-p { font-size: 14px; font-weight: 700; white-space: nowrap; text-align: right; }
.rb-ao-r input { position: absolute; opacity: 0; width: 52px; height: 32px; margin: 0; right: 0; top: 50%; transform: translateY(-50%); cursor: pointer; }
.rb-ao-r input:checked + .rb-sw-t { background: var(--rb-acc); }
.rb-ao-r input:checked + .rb-sw-t::after { transform: translateX(20px); }
.rb-ao-r input:focus-visible + .rb-sw-t { box-shadow: var(--rb-focus); }
@media (max-width: 420px) { .rb-ao-r { grid-template-columns: 40px minmax(0, 1fr) 52px; } .rb-ao-p { grid-column: 2; grid-row: 2; text-align: left; margin-top: -6px; } .rb-ao-r .rb-sw-t { grid-column: 3; grid-row: 1 / span 2; } .rb-ao-i { grid-row: 1 / span 2; } }
.rb-bar-ex { display: block !important; }
.rb-bar-ex[hidden] { display: none !important; }
.rb-bar-ex dd { margin: 0; }
.rb-bar-ex .rb-exl { margin: 4px 0 0; }
.rb-bar-ex .rb-exl li { font-size: 13px; padding: 2px 0; }
.rb-exl li { display: flex; justify-content: space-between; gap: 12px; padding: 4px 0; font-size: 14px; }
/* «Мои заказы» на сайте бизнеса (ARG-PLAT-001 шаг 32, lib/webord.js /<адрес>/my) */
.rb-my { list-style: none; padding: 0; margin: 12px 0; display: grid; gap: 8px; }
.rb-my a { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 48px; padding: 10px 14px; border: 1px solid var(--line); border-radius: 14px; background: var(--card); color: inherit; text-decoration: none; }
.rb-my a > span:first-child { flex: 1; min-width: 0; overflow-wrap: anywhere; font-weight: 600; }
.rb-my small { font-weight: 400; opacity: .75; }
.rb-my .rb-chip { flex: none; }
.rb-mylink { margin: 0 0 8px; text-align: right; }
.rb-mylink a { font-weight: 600; }

/* @biz-css:end */
.kob-credit { display: block; width: 100%; text-align: center; font-size: 13px; color: var(--muted); text-decoration: none; margin-top: 6px; }
/* плавность 17.10: блеск «King of Bots» больше не анимируется — вечная перерисовка текста каждый кадр роняла 15–45 % кадров при прокрутке (замер ×4, journey/SMOOTH) */
.kob-credit b{font-weight:700;color:var(--kob-a,var(--accent,#4B35D6));background-image:linear-gradient(100deg,var(--kob-a,var(--accent,#4B35D6)) 43%,var(--kob-hi,#E04BD0) 50%,var(--kob-a,var(--accent,#4B35D6)) 57%);background-size:300% 100%;background-position:80% 0;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}@media (prefers-reduced-motion:reduce){.kob-credit b{animation:none;background:none;-webkit-text-fill-color:currentColor}}

/* @biz-css:start */
/* заявка «Фирменный стиль» прямо на сайте ArgHub (ARG-PLAT-001 шаг 34, lib/brandweb.js /<язык>/brand/order) — поля и чипы форм сайта бизнеса в цветах ArgHub;
   кнопка #2F5BD8 — белый текст 5.6:1; чипы бюджета переносятся (4 штуки не влезают в 375 px одной строкой) */
.bsw { --rs-r: 20px; --rs-c: 14px; --biz: var(--accent); --rb-acc: #2F5BD8; --rb-ring: var(--accent); --rb-f: #fff; --rb-fi: #142D38; --rb-bd: #7D8A90;
  --rb-tint: #EEF2FE; --rb-focus: 0 0 0 3px var(--rb-ring), 0 0 0 7px color-mix(in srgb, var(--rb-ring) 22%, transparent); }
.bsw .rb-form > * { min-width: 0; }
.bsw .rb-tchips { flex-wrap: wrap; overflow: visible; }
.bsw-h { margin: 6px 0 0; font-size: 18px; }
.bsw .rb-go { min-height: 48px; }
/* приёмка 375 px (ui, 02.10): у <button class="btn"> — без системной рамки; в тёмной теме поля и чипы бюджета — тёмные, как карточка,
   а не белые пятна (рамка светлая ≥3:1 к карточке, текст --ink); выбранный чип — та же заливка #2F5BD8 с белым текстом */
.bsw button.btn { border: 0; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .bsw { --rb-f: color-mix(in srgb, #fff 4%, var(--card)); --rb-fi: var(--ink); --rb-bd: color-mix(in srgb, #fff 45%, var(--card)); --rb-tint: color-mix(in srgb, var(--accent) 18%, var(--card)); }
  :root:not([data-theme="light"]) .bsw :where(input:not([type=checkbox]):not([type=hidden]):not([type=radio]), textarea) { background: var(--rb-f); color: var(--rb-fi); border-color: var(--rb-bd); }
}
[data-theme="dark"] .bsw { --rb-f: color-mix(in srgb, #fff 4%, var(--card)); --rb-fi: var(--ink); --rb-bd: color-mix(in srgb, #fff 45%, var(--card)); --rb-tint: color-mix(in srgb, var(--accent) 18%, var(--card)); }
[data-theme="dark"] .bsw :where(input:not([type=checkbox]):not([type=hidden]):not([type=radio]), textarea) { background: var(--rb-f); color: var(--rb-fi); border-color: var(--rb-bd); }
.bsw ::placeholder { color: var(--muted); opacity: 1; }
/* «Вход для бизнеса» на сайте бизнеса, узкий телефон (ARG-CRM-001): короткая подпись «Кабинет», имя бизнеса уже — в конце файла, чтобы перекрыть .bs-top .brand span */
@media (max-width: 420px) { .bs-top { gap: 10px; } .bs-top .bizin { padding: 0 10px; } .bs-top .bizin .bzl { display: none; } .bs-top .bizin .bzs { display: inline; } .bs-top .brand span { max-width: 38vw; } }
/* п.55, шаг 4: в тёмной теме «в долгосрочной аренде» тоже серым, а не красным */
@media (prefers-color-scheme: dark) { .rb-xl.rb-nt .rb-cc.busy.long .rb-cc-st:not([data-theme="light"] *) { color: var(--rb-mut); } }
[data-theme="dark"] .rb-xl.rb-nt .rb-cc.busy.long .rb-cc-st { color: var(--rb-mut); }

/* «Наша кухня» (Myfoodservice, владелец 03.10): телефон — лента со scroll-snap и подглядом второго фото, ПК — два рядом, 4:5 */
.bs-kit { margin: 20px 0; }
.bs-kit-cap { margin: 0 0 12px; }
.bs-kit-row { list-style: none; margin: 0; padding: 0; display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; }
.bs-kit-row::-webkit-scrollbar { display: none; }
.bs-kit-row li { flex: 0 0 78%; scroll-snap-align: start; }
.bs-kit-row a { display: block; }
.bs-kit-row img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--radius); }
/* ПК: 5 фото — первое крупно слева (2×2 ячейки), остальные четыре 2×2 справа */
@media (min-width: 640px) {
  .bs-kit-row { display: grid; grid-template-columns: repeat(4, 1fr); overflow: visible; scroll-snap-type: none; }
  .bs-kit-row li { min-width: 0; }
  .bs-kit-row li:first-child { grid-column: span 2; grid-row: span 2; }
  .bs-kit-row li:first-child a { height: 100%; }
  .bs-kit-row li:first-child img { height: 100%; aspect-ratio: auto; }
}

/* Сайт бизнеса на ПК: одна колонка для шапки, обложки, плашек, кнопок, меню, отзывов, контактов и подвала (владелец 03.10).
   Раньше .head/.cta/.prices/.desc/.fd были сужены до 860px, а обложка и плашки шли на всю main — края не совпадали.
   Тема аренды (main.bs.rs / main.bs.xs) имеет свою вёрстку и сюда не входит. */
:root { --bs-max: 1120px; --bs-pad: 16px; }
@media (min-width: 960px) { :root { --bs-pad: 32px; } }
main.bs:not(.rs):not(.xs) { max-width: var(--bs-max); padding-left: var(--bs-pad); padding-right: var(--bs-pad); }
main.bs:not(.rs):not(.xs) > h1, main.bs:not(.rs):not(.xs) > .lead, main.bs:not(.rs):not(.xs) article, main.bs:not(.rs):not(.xs) .facts, main.bs:not(.rs):not(.xs) .desc,
main.bs:not(.rs):not(.xs) .head, main.bs:not(.rs):not(.xs) .cta, main.bs:not(.rs):not(.xs) .prices, main.bs:not(.rs):not(.xs) .fd { max-width: none; }
body:has(main.bs:not(.rs):not(.xs)) .bs-top, body:has(main.bs:not(.rs):not(.xs)) .bs-foot {
  padding-left: max(var(--bs-pad), calc((100% - var(--bs-max)) / 2 + var(--bs-pad))); padding-right: max(var(--bs-pad), calc((100% - var(--bs-max)) / 2 + var(--bs-pad))); }

/* п.55: «Когда свободна?» — полоса на 30 дней у машины в брони (цвет + штриховка: не только цвет — для дальтоников) */
.rb-calb { display: inline-flex; align-items: center; gap: 4px; justify-self: start; font-size: 13px; font-weight: 700; color: var(--rb-fi); border-bottom: 1px dashed currentColor; cursor: pointer; padding: 4px 0; min-height: 28px; }
.rb-calb[hidden] { display: none; }
/* только мини-полоса у машины (span.rb-cal): те же имена классов у большого календаря брони (div.rb-cal) — без span ломали его сетку (владелец 04.10, срочно) */
span.rb-cal { display: grid; gap: 6px; }
span.rb-cal > .rb-cal-g { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 3px; max-width: 320px; }
.rb-cd { font: inherit; font-size: 12px; font-weight: 700; line-height: 1; aspect-ratio: 1; min-height: 32px; border: 0; border-radius: 8px; padding: 0; cursor: pointer; color: #054F31; background: #D1FADF; }
.rb-cd.h { background: linear-gradient(135deg, #D1FADF 50%, #FECDCA 50%); color: #344054; }
.rb-cd.x { background: repeating-linear-gradient(135deg, #FEE4E2 0 4px, #FECDCA 4px 8px); color: #912018; text-decoration: line-through; cursor: not-allowed; }
.rb-cd:focus-visible { outline: 2px solid currentColor; outline-offset: 1px; }
span.rb-cal > .rb-cal-t { font-size: 12px; color: var(--rb-mut); font-weight: 500; }

/* ===== Фирменная страница бизнеса в Mini App (владелец 03.10): герой - первым, ничего служебного над фото =====
   Кнопки "←", звезда, "Поделиться" лежат поверх (app.css .rs-wrap), поэтому у героя нет верхнего отступа, а у страницы без фото
   сверху остаётся место под них. Логотип + имя + "✓ Проверено" - строкой под фото, мета (раздел · город · ★ · язык) - одной строкой. */
.fs-app .bs-cover, .rs-app .rs-hero, .xs-app .xs-hero { margin-top: 0; }
.fs-app .bs-cover:not(.flat) { position: relative; }
.fs-app .bs-cover:not(.flat)::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 76px; z-index: 1; pointer-events: none; background: linear-gradient(180deg, rgba(0,0,0,.45), rgba(0,0,0,0)); }
.rs-app .rs-hero:not(.flat)::before, .xs-app .xs-hero:not(.flat)::after { content: ""; position: absolute; inset: 0 0 auto 0; height: 76px; z-index: 1; pointer-events: none; background: linear-gradient(180deg, rgba(0,0,0,.45), rgba(0,0,0,0)); }
.rs-app .rs-hero.flat, .xs-app .xs-hero.flat { padding-top: 56px; }
.bs-nohero { height: 52px; }
.head.bs-app { gap: 12px; margin: 12px 0 4px; align-items: center; }
.head.bs-app img:not(.bs-wmi) { width: 48px; height: 48px; border-radius: 14px; background: #fff; padding: 2px; box-sizing: border-box; border: 1px solid var(--line, rgba(0,0,0,.12)); object-fit: contain; }
.head.bs-app > div { min-width: 0; display: flex; align-items: center; gap: 4px 10px; flex-wrap: wrap; }
.head.bs-app.has-wm > div { display: block; }
.head.bs-app h1 { font-size: clamp(20px, 5.4vw, 26px); }
.bs-meta { margin: 0 0 14px; font-size: 13px; line-height: 1.4; color: color-mix(in srgb, var(--ink) 78%, var(--bg, #fff)); }
.head.bs-app.has-wm .bs-meta { margin: 6px 0 0; }
.bs-meta .bs-rate { color: var(--ink); font-weight: 700; text-decoration: none; white-space: nowrap; }
.bs-meta .bs-rate:hover { text-decoration: underline; }
.bs-wm-hero { display: block; height: 24px; width: auto; max-width: 70%; margin: 0 0 8px; padding: 6px 10px; box-sizing: content-box; background: #fff; border-radius: 12px; }h2.bs-meta, .bsite h2.bs-meta, .fsite h2.bs-meta { font: 400 13px/1.4 var(--text, inherit); letter-spacing: normal; text-wrap: wrap; margin: 0 0 14px; }

/* плашка «Это ваше объявление?» для продавца по ссылке из сообщения (lib/sellerclaim.js; сайт и Mini App) */
.wm-box { position: relative; margin: 10px 0 14px; padding: 12px 40px 12px 14px; border-radius: 14px; background: color-mix(in srgb, var(--accent) 9%, var(--card)); border: 1px solid color-mix(in srgb, var(--accent) 26%, transparent); }
.wm-t { margin: 0 0 10px; font-size: 14px; line-height: 1.45; }
.wm-x { position: absolute; top: 6px; right: 6px; width: 30px; height: 30px; border: 0; border-radius: 8px; background: transparent; color: var(--muted); font-size: 15px; line-height: 1; cursor: pointer; }
.wm-x:hover { background: color-mix(in srgb, var(--accent) 14%, transparent); }
.wm-b { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.wm-more { margin: 10px 0 0; padding-left: 18px; font-size: 13px; line-height: 1.5; color: var(--muted); }
.wm-more[hidden] { display: none; }
.wm-d summary { cursor: pointer; list-style: none; display: inline-flex; align-items: center; min-height: 34px; padding: 0 12px; border-radius: 10px; background: var(--soft); color: var(--accent); font-size: 12.5px; font-weight: 600; }
.wm-d summary::-webkit-details-marker { display: none; }
.wm-box[hidden] { display: none; }

/* 05.10 П9: цифра в начале/конце диапазона календаря — по центру круга; П1: мета шапки переносится, а не обрезается */
.rb-d { display: flex; align-items: center; justify-content: center; line-height: 1; box-sizing: border-box; }
.rb-d.s, .rb-d.e { padding: 0; }
.bs-meta { overflow: visible; text-overflow: clip; white-space: normal; overflow-wrap: anywhere; }
.bs-meta .bs-sp { white-space: nowrap; }
.head.bs-brand p, .head.bs-brand h2.bs-q { overflow: visible; text-overflow: clip; white-space: normal; overflow-wrap: anywhere; } /* П1: подзаголовок шапки переносится, а не обрезается («🇷🇺 го…») */
.bs-newb { display: inline-block; margin-left: 6px; padding: 1px 7px; border-radius: 99px; font-size: 11px; font-weight: 700; line-height: 1.5; vertical-align: middle; background: color-mix(in srgb, var(--accent, #2a5bd7) 14%, transparent); color: var(--ink); }
.bs-trust .bs-norv { margin: 0 0 8px; font-weight: 600; color: var(--muted, inherit); }

/* П18 (docs/seo/TASKS.md В.1, В.3): H1 сайта бизнеса = «что + где» текстом; название бренда и слоган — подзаголовком, вид страницы тот же */
.rs h1.rs-kick { font-family: inherit; font-size: 13px; line-height: inherit; letter-spacing: .02em; margin: 0; text-wrap: wrap; font-weight: 700; }
.xs h1.xs-kick { font-family: inherit; font-size: 12px; line-height: inherit; letter-spacing: .01em; margin: 0 0 8px; text-wrap: wrap; font-weight: 700; }
.rs .rs-slogan { font-size: clamp(34px, 7vw, 64px); line-height: 1.04; font-weight: 700; letter-spacing: -.03em; margin: 10px 0 12px; font-family: var(--text); color: var(--ink); overflow-wrap: anywhere; text-wrap: balance; }
.rs-hero .rs-slogan { color: #fff; }
.xs-hero .xs-name { color: inherit; font-size: clamp(26px, 6.4vw, 38px); font-weight: 700; line-height: 1.08; letter-spacing: -.025em; margin: 0 0 6px; font-family: var(--head); overflow-wrap: anywhere; }
.head.bs-brand .bs-h1 { font: 800 clamp(22px, 5.4vw, 30px)/1.1 var(--head, inherit); letter-spacing: -.02em; margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink); }
.bs-wmrow .bs-h1 { margin: 0; line-height: 0; }
.head.bs-app .bs-h1 { font-size: clamp(20px, 5.4vw, 26px); }
.bsite .bs-h1, .fsite .bs-h1 { font-family: var(--title, var(--head)); }
.head.bs-brand h1.bs-q1 { font: 600 clamp(14px, 3.7vw, 16px)/1.3 var(--text, inherit); letter-spacing: normal; margin: 6px 0 0; white-space: normal; overflow: visible; color: color-mix(in srgb, var(--ink) 82%, var(--bg, #fff)); text-wrap: balance; }
.bs-faq { margin: 28px 0 8px; }
.bs-faq-l { margin: 0; }
.bs-faq-l > div { padding: 12px 0; border-top: 1px solid var(--line, rgba(0,0,0,.12)); }
.bs-faq-l dt { font-weight: 700; margin: 0 0 4px; }
.bs-faq-l dd { margin: 0; line-height: 1.5; }
.rs .bs-faq, .xs .bs-faq { max-width: 860px; margin: 28px auto 8px; padding: 0 20px; }
/* П18 В.6: абзац-ответ под H1 страницы бизнеса */
.bs-answer { max-width: 46em; margin: 18px auto 6px; padding: 0 16px; font-size: 17px; line-height: 1.55; }
/* top14 Д-1: блоки-ответы карточки бизнеса (shared/bizanswers, lib/bizanswers.js): h2 → абзац-ответ → таблица цен / шаги / районы / фото до и после */
.bs-ans { margin: 28px 0 8px; scroll-margin-top: 64px; }
.bs-ans h2 { margin: 0 0 10px; }
.bs-ans h3 { font-size: 15px; font-weight: 600; margin: 18px 0 8px; }
.bs-ans p { margin: 0 0 10px; line-height: 1.55; overflow-wrap: anywhere; }
.bs-ans .bs-ans-a { font-size: 16px; font-weight: 500; }
.bs-ans .bs-ans-n { font-size: 13px; line-height: 1.45; }
.bs-ans .bs-ans-ar { font-size: 14px; line-height: 1.6; color: var(--muted, inherit); }
.bs-ans-t { margin: 0 0 6px; }
.bs-ans-t td:first-child, .bs-ans-t th:first-child { overflow-wrap: anywhere; }
.bs-ans-l { margin: 0 0 10px; padding-left: 22px; line-height: 1.55; }
.bs-ans-l li { margin: 0 0 6px; overflow-wrap: anywhere; }
.bs-ans-ph { display: grid; grid-template-columns: 1fr; gap: 14px; margin: 0 0 8px; }
.bs-ans-ph figure { margin: 0; }
.bs-ans-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.bs-ans-pair > div { position: relative; min-width: 0; }
.bs-ans-pair img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 10px; background: var(--line, rgba(0,0,0,.08)); }
.bs-ans-tall .bs-ans-pair img { aspect-ratio: 3 / 4; }
.bs-ans-pair span { position: absolute; left: 6px; top: 6px; padding: 2px 8px; border-radius: 999px; font-size: 12px; font-weight: 600; line-height: 1.4; background: rgba(0,0,0,.62); color: #fff; }
.bs-ans-ph figcaption { margin-top: 6px; font-size: 13px; line-height: 1.3; color: var(--muted, inherit); }
@media (min-width: 720px) { .bs-ans-ph { grid-template-columns: repeat(3, 1fr); } .bs-ans-pair img { aspect-ratio: 1 / 1; } .bs-ans-tall .bs-ans-pair img { aspect-ratio: 3 / 4; } }

/* ПК (>=1024): типографика героя проката — слоган спокойнее (700, не тесный, короткая строка), подзаголовок крупнее, всё по одной левой линии */
@media (min-width: 1024px) {
  .rs-hero .rs-slogan, .rs-hero h1:not(.rs-kick) { font-size: clamp(56px, 5.4vw, 76px); line-height: 1.08; font-weight: 700; letter-spacing: -.01em; max-width: 15ch; margin: 16px 0 14px; text-wrap: balance; text-shadow: 0 2px 18px rgba(0,0,0,.35); }
  .rs-hero .rs-lead { font-size: 21px; line-height: 1.45; font-weight: 500; max-width: 30em; margin: 0 0 8px; text-shadow: 0 1px 10px rgba(0,0,0,.35); }
  .rs-hero-t { padding-left: 48px; padding-right: 48px; }
  .rs-hero .rs-acts, .rs-hero .rs-rate, .rs-hero .pres-l { margin-left: 0; }
}
/* HB-3 (hb/page-style-c): страница барбера в визуале «C — Личный мастер» — hero, работы, «Записаться» + чипсы времени, компактные преимущества, мелкие ссылки внизу.
   Цвета — только переменные темы бизнеса (--biz, --card, --line); касание ≥ 44 px. */
.bb-hero.bb-c .xs-hero-t { padding-bottom: 22px; }
.bb-works-sec { margin-top: 18px; }
.bb-book { display: grid; gap: 12px; margin: 16px 0 0; }
.bb-book .xs-btn.bb-main { display: flex; width: 100%; min-height: 56px; font-size: 17px; font-weight: 800; justify-content: center; align-items: center; }
.bb-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.bb-chip { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 16px; border-radius: 999px; border: 1.5px solid var(--line); background: var(--card); color: inherit; font-size: 15px; font-weight: 700; text-decoration: none; }
.bb-chip:hover, .bb-chip:focus-visible { border-color: var(--biz, #f3a93c); }
.bb-chip.more { border-color: transparent; background: transparent; color: var(--biz, #f3a93c); padding: 0 8px; }
.bb-book .bb-next { margin: 0; }
.bb-perks { list-style: none; margin: 14px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.bb-perks li { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; background: var(--card); border: 1px solid var(--line); font-size: 13.5px; line-height: 1.3; }
.bb-perks li span { color: var(--biz, #f3a93c); font-weight: 700; }
.bb-perks.bb-points li span { color: var(--mark-tx, var(--mark, var(--biz, #f3a93c))); }
.bb-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 0 18px; margin: 22px 0 8px; }
.bb-links a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 4px; font-size: 13.5px; color: inherit; opacity: .75; text-decoration: underline; text-underline-offset: 3px; }
.bb-links a:hover, .bb-links a:focus-visible { opacity: 1; }

/* О.3: хаб «Обмен валют» — рейтинг обменников и пометка устаревшего курса */
.exrank { list-style: none; margin: 0 0 16px; padding: 0; }
.exrank li { padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--card); margin-bottom: 8px; display: flex; flex-direction: column; gap: 2px; }
.exrank .stale { color: #b45309; font-style: normal; font-weight: 600; }
.exupd { margin: 6px 0 14px; }
.exh-dated { margin: 8px 0 14px; line-height: 1.5; }
.ex-more { margin: 14px 0; }
/* О.14: ссылка «На карте» (обычная ссылка Google Maps) и вводный текст хаба */
.exmap, .exmapp a { display: inline-flex; align-items: center; min-height: 44px; font-size: 13.5px; }
.exmapp { margin: 2px 0 0; }
.exintro { margin: 18px 0; }
.exintro h2 { margin-top: 22px; }

/* «Официальный прокат» под героем RS AVTO: карточка в стиле страницы, по левому краю с героем (UI 07.10) */
.rs-about { margin: 14px 0 0; padding: 14px 16px 14px 48px; position: relative; background: var(--card); border: 1px solid var(--line); border-radius: var(--rs-r); }
.rs-about::before { content: ""; position: absolute; left: 18px; top: 19px; width: 14px; height: 8px; border: solid var(--biz, #F05609); border-width: 0 0 3px 3px; transform: rotate(-45deg); }
.rs-about .bs-answer { max-width: none; margin: 0; padding: 0; font-size: 15px; line-height: 1.55; font-weight: 500; color: var(--ink); text-align: left; }
.rs-about.app h2 { margin: 0 0 4px; font-size: 17px; }
.rs-about-co { margin: 0 0 8px; font-size: 14px; font-weight: 600; opacity: .85; overflow-wrap: anywhere; }
.rs-about ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.rs-about li { font-size: 13px; font-weight: 600; padding: 5px 10px; border-radius: 999px; background: color-mix(in srgb, var(--biz, #F05609) 12%, var(--card)); border: 1px solid var(--line); }
@media (min-width: 720px) { .rs-about .bs-answer { font-size: 16px; } }
.xr-ask .xr-askt{margin:8px 0 2px;font-size:13px;font-weight:700;color:var(--muted)}
.xs .bs-answer { margin: 14px 0 4px; padding: 0; font-size: 15px; }
/* HB henry-polish (обход 07.10): портретная обложка, стрелки «Работ» на ПК */
.bb-hero.bb-port .xs-hero-p { object-position: 50% 18%; } /* телефон: обложка на весь герой, лицо сверху не режем */
/* телефон/планшет (<900px): фото блоком сверху целиком (3:4, лицо ничем не закрыто), низ фото плавно уходит в фон карточки, текст и логотип — под фото */
@media (max-width: 899.98px) {
  .bb-hero.bb-port { min-height: 0; justify-content: flex-start; background: var(--card, #141414); }
  .bb-hero.bb-port:not(.flat) { color: var(--ink, #fff); }
  .bb-hero.bb-port:not(.flat)::before { display: none; }
  .bb-hero.bb-port .xs-hero-p { position: relative; inset: auto; z-index: 0; display: block; width: 100%; height: auto; aspect-ratio: 3 / 4; max-height: 78vh; object-position: 50% 12%;
    -webkit-mask-image: linear-gradient(180deg, #000 78%, transparent 100%); mask-image: linear-gradient(180deg, #000 78%, transparent 100%); }
  .bb-hero.bb-port .xs-hero-t, .bb-hero.bb-c.bb-port .xs-hero-t { position: relative; z-index: 1; max-width: none; margin-top: -36px; padding: 0 18px 22px; }
}
.bb-works-wrap { position: relative; }
.bb-arr { display: none; }
@media (min-width: 900px) {
  /* портрет (ширина < высоты): слева текст, справа фото во всю высоту героя — без обрезки лица; край фото плавно уходит в фон */
  .bb-hero.bb-port { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, 42%); min-height: 540px; background: var(--card, #141414); }
  .bb-hero.bb-port:not(.flat) { color: var(--ink, #fff); }
  .bb-hero.bb-port:not(.flat)::before { display: none; }
  .bb-hero.bb-port .xs-hero-p { position: relative; inset: auto; z-index: 0; grid-column: 2; grid-row: 1; width: 100%; height: 100%; min-height: 540px; object-position: 50% 18%;
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 22%); mask-image: linear-gradient(90deg, transparent 0, #000 22%); }
  .bb-hero.bb-port .xs-hero-t { position: relative; z-index: 1; grid-column: 1; grid-row: 1; align-self: center; max-width: none; padding: 40px 24px 40px 40px; }
}
/* стрелки ‹ › — только мышь/трекпад на широком экране (скрипт /photo-cycle.js добавляет кнопки и класс has-arrows); на телефоне — свайп; без скрипта — обычная прокрутка */
@media (min-width: 720px) and (hover: hover) {
  .bb-works-wrap.has-arrows .bb-works { scrollbar-width: none; scroll-behavior: smooth; }
  .bb-works-wrap.has-arrows .bb-works::-webkit-scrollbar { display: none; }
  .bb-works-wrap.has-arrows .bb-arr { position: absolute; top: calc(50% - 22px); z-index: 2; display: grid; place-items: center; width: 44px; height: 44px; padding: 0 0 4px; border-radius: 50%; border: 1px solid var(--line); background: var(--card); color: var(--ink, inherit); font-size: 28px; line-height: 1; cursor: pointer; box-shadow: 0 4px 16px rgba(0,0,0,.35); }
  .bb-works-wrap.has-arrows .bb-arr.prev { left: -14px; }
  .bb-works-wrap.has-arrows .bb-arr.next { right: -14px; }
  .bb-works-wrap.has-arrows .bb-arr:hover:not(:disabled), .bb-works-wrap.has-arrows .bb-arr:focus-visible { border-color: var(--biz, #f3a93c); }
  .bb-works-wrap.has-arrows .bb-arr:disabled { opacity: .35; cursor: default; }
  .bb-works-wrap.bb-noscroll .bb-arr { display: none; }
}
@media (prefers-reduced-motion: reduce) { .bb-works-wrap.has-arrows .bb-works { scroll-behavior: auto; } }

/* П38: блоки доверия на страницах бизнесов (lib/trust.js) и страницы «Конфиденциальность» / «Условия» (lib/legalweb.js); цвета — переменные темы бизнеса */
.tb { margin: 24px 0; padding: 18px; border-radius: 18px; background: var(--card); border: 1px solid var(--line); color: var(--ink); text-align: left; }
.tb-h { margin: 0 0 12px; font: 700 1.15rem/1.25 var(--head, inherit); color: var(--ink); }
.tb-nums { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.tb-nums li { display: flex; flex-direction: column; gap: 2px; padding: 12px; min-height: 44px; border-radius: 12px; background: var(--soft); }
.tb-nums b { font: 800 1.55rem/1.1 var(--head, inherit); color: var(--ink); }
.tb-nums span { font-size: .86rem; line-height: 1.3; color: var(--muted); }
.tb-facts { list-style: none; margin: 12px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 18px; font-weight: 600; }
.tb-nums + .tb-facts { padding-top: 2px; }
.tb-ph { display: grid; gap: 8px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tb-ph1 { grid-template-columns: minmax(0, 420px); }
.tb-ph2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tb-ph img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 12px; background: var(--soft); }
.tb-t { margin: 12px 0 0; line-height: 1.5; }
.tb-g { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.tb-g li { position: relative; padding-left: 26px; line-height: 1.4; }
.tb-g li::before { content: "✓"; position: absolute; left: 0; top: 0; font-weight: 800; color: var(--accent, var(--ink)); }
.tb-payh { margin: 14px 0 6px; font-weight: 700; }
.tb-pay { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.tb-pay li { display: inline-flex; align-items: center; min-height: 36px; padding: 0 14px; border-radius: 999px; background: var(--soft); border: 1px solid var(--line); font-weight: 600; font-size: .9rem; }
.tb-legal { flex-basis: 100%; width: 100%; margin: 4px 0 0; text-align: center; font-size: .85rem; color: var(--muted); }
.tb-legal p { margin: 4px 0; }
.tb-req span { display: inline-block; margin: 0 4px; }
.tb-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 0 8px; }
.tb-links a + a::before { content: "·"; position: absolute; left: -3px; text-decoration: none; }
.tb-links a { position: relative; display: inline-flex; align-items: center; min-height: 44px; padding: 0 10px; color: inherit; text-decoration: underline; }
.lg { max-width: 760px; margin: 0 auto; }
.lg h2 { margin: 22px 0 6px; font-size: 1.1rem; }
.lg p { line-height: 1.55; }
.lg-upd { color: var(--muted); }
@media (min-width: 720px) { .tb { padding: 22px 24px; } .tb-nums { grid-template-columns: repeat(4, minmax(0, 1fr)); } .tb-nums:has(li:nth-child(3):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); } .tb-nums:has(li:nth-child(2):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ui/exchange-polish: сворачиваемый список мест на хабе обмена (плашка «Курс сейчас» убрана — ui/exchange-calc-first) */

/* ui/exhub-app-look (08.10): калькулятор и карточки обменников на хабе «Обмен валют» — тот же вид, что в приложении (.conv, .xc-*). Без скриптов и style="…" */
.exh-calc { width: 100%; box-sizing: border-box; padding: 14px; border-width: 2px; border-color: var(--accent, var(--line)); margin: 10px 0 8px; background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); margin: 0 0 14px; }
.exh-lbls { display: flex; justify-content: space-between; margin: 0 2px 4px; }
.exh-line { display: grid; grid-template-columns: minmax(0, 1fr) 84px 24px 84px; gap: 6px; align-items: center; }
.exh-line input, .exh-line select { height: 44px; min-width: 0; padding: 0 10px; border: 1px solid var(--line); border-radius: 12px; background: var(--soft); color: var(--ink); font: 700 16px var(--text); }
.exh-line input { font-size: 17px; font-variant-numeric: tabular-nums; }
.exh-line input:focus-visible, .exh-line select:focus-visible { outline: 3px solid var(--focus); outline-offset: 1px; }
.exh-arrow { text-align: center; color: var(--muted); font-size: 18px; }
.exh-go { width: 100%; margin-top: 10px; min-height: 46px; border: 0; cursor: pointer; font: 700 15px var(--text); }
.exh-cards { list-style: none; margin: 0 0 18px; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; }
.exh-card { padding: 10px 12px; background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.exh-card.best { border-color: color-mix(in srgb, var(--accent) 60%, var(--line)); background: color-mix(in srgb, var(--accent) 6%, var(--card)); }
.exh-card.stale .exh-head { opacity: .8; }
.exh-head { display: flex; align-items: center; gap: 8px; min-height: 44px; }
.exh-rank { flex: none; width: 18px; text-align: center; font: 700 12.5px var(--head); color: var(--muted); }
.exh-logo { flex: none; width: 40px; height: 40px; border-radius: 10px; object-fit: contain; background: #fff; border: 1px solid var(--line); }
.exh-ph { display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 50%; color: #fff; font: 700 16px var(--head); }
.exh-c0 { background: #3457E8; } .exh-c1 { background: #126C51; } .exh-c2 { background: #AB2446; } .exh-c3 { background: #7A3FB0; }
.exh-c4 { background: #8A5200; } .exh-c5 { background: #0F6482; } .exh-c6 { background: #4F5566; } .exh-c7 { background: #B4490A; }
.exh-mid { flex: 1; min-width: 0; }
.exh-name { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 6px; min-width: 0; }
.exh-name a { color: var(--ink); min-width: 0; }
.exh-name b { font: 600 14.5px/1.3 var(--head); overflow-wrap: anywhere; }
.exh-line2 .nw { white-space: nowrap; }
.exh-quick { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; margin: 10px 0; padding: 12px; border: 2px solid color-mix(in srgb, var(--accent) 55%, var(--line)); border-radius: 14px; background: var(--soft); }
.exh-quick-res, .exh-quick-t { margin: 0; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 3px; }
.exh-quick-get { font: 800 26px/1.15 var(--head); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.exh-quick-n { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; }
.exh-quick-t b { font: 700 16px/1.3 var(--head); overflow-wrap: anywhere; }
.exh-quick-go { display: flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 20px; text-align: center; font-size: 16px; font-weight: 700; }
.exh-step { display: flex; align-items: center; gap: 6px; font: 600 12.5px/1.3 var(--text); color: var(--muted); }
.exh-step i { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; border-radius: 50%; background: var(--accent); color: var(--accent-ink); font: 700 11.5px var(--head); font-style: normal; }
.exh-side { margin: 14px 0; padding: 12px 14px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--card); font-size: 13.5px; line-height: 1.45; }
.exh-side h2 { margin: 0 0 8px; font: 700 15px/1.3 var(--head); }
.exh-side h2:not(:first-child) { margin-top: 14px; }
.exh-side ul, .exh-side ol { margin: 0; padding-left: 18px; }
.exh-side li { margin: 0 0 6px; }
@media (max-width: 719px) { /* телефон: итог и кнопка «Обменять у …» целиком на первом экране (ex/page-1014) */
  main.exh-page > h1 { font-size: 23px; line-height: 1.2; margin: 6px 0; }
  main.exh-page .exh-calc { padding: 10px 12px; margin: 8px 0 6px; }
  main.exh-page .exh-go { min-height: 40px; margin-top: 8px; }
  .exh-quick { gap: 6px; padding: 10px 12px; margin: 6px 0; }
  .exh-quick-t > .exh-step { display: none; }
  .exh-quick-res { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; column-gap: 8px; }
  .exh-quick-res > .exh-step { grid-column: 1 / -1; }
  .exh-quick-get { font-size: 24px; }
  .exh-quick-go { min-height: 44px; }
}
@media (min-width: 720px) {
  .exh-quick { grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 10px 18px; }
}
@media (min-width: 1200px) { /* компьютер: подсказки слева и справа от основного столбца, прокручиваются вместе с экраном */
  main.exh-page { max-width: 1320px; display: grid; grid-template-columns: minmax(180px, 240px) minmax(0, 780px) minmax(180px, 240px); column-gap: 24px; justify-content: center; align-content: start; }
  main.exh-page > * { grid-column: 2; min-width: 0; }
  main.exh-page > .exh-side { grid-row: 2 / span 40; align-self: start; position: sticky; top: 76px; margin: 14px 0 0; }
  main.exh-page > .exh-l { grid-column: 1; }
  main.exh-page > .exh-r { grid-column: 3; }
}
.exh-best { flex: none; font-size: 10.5px; line-height: 18px; padding: 0 7px; border-radius: 99px; background: var(--accent); color: var(--accent-ink); font-weight: 700; }
.exh-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 8px; line-height: 1.3; margin-top: 2px; }
.exh-rv { display: inline-flex; align-items: center; gap: 3px; padding: 1px 7px; border-radius: 99px; background: var(--soft); color: var(--ink); font-size: 12px; font-weight: 700; min-height: 20px; }
.exh-rv svg { color: #E5A400; }
.exh-rvn { font-weight: 500; }
.exh-rv.none { background: transparent; color: var(--muted); font-weight: 400; padding-left: 0; }
.exh-stale { color: #b45309; font-weight: 600; font-size: 12px; }
:root[data-theme="dark"] .exh-stale { color: #F5B97A; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .exh-stale { color: #F5B97A; } }
.exh-amt { flex: none; display: flex; flex-direction: column; align-items: flex-end; text-align: right; max-width: 46%; }
.exh-get { font: 800 16px var(--head); white-space: nowrap; font-variant-numeric: tabular-nums; }
.exh-vs { display: block; white-space: normal; text-align: right; overflow-wrap: anywhere; font-size: 11px; line-height: 1.25; } /* подпись «−N ARS vs. mejor cotización» переносится внутри колонки суммы (max-width 46%), а не вылезает влево на имя и курс */
.exh-chips { display: flex; flex-wrap: wrap; gap: 4px; margin: 6px 0 0 26px; }
.exh-chip { display: inline-flex; align-items: center; min-height: 22px; padding: 0 8px; border-radius: 99px; background: var(--soft); border: 1px solid var(--line); font-size: 11.5px; }
.exh-act { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 8px 0 2px 26px; }
.exh-act .btn { min-height: 38px; font-size: 13.5px; }
.exh-act .exmap { font-size: 12.5px; }
.exh-none { margin: 4px 0 16px; }
.exh-market { margin: -8px 0 16px; font-size: 12px; line-height: 1.5; display: flex; flex-wrap: wrap; gap: 2px 10px; align-items: baseline; }
.exh-market .exh-mk-src { flex: 1 0 100%; }
@media (min-width: 720px) {
  .exh-calc { padding: 14px 16px; } .exh-line { grid-template-columns: minmax(0, 1fr) 110px 28px 110px; max-width: 560px; } .exh-lbls { max-width: 560px; }
  .exh-go { width: auto; min-width: 160px; padding: 0 28px; }
  .exh-card { padding: 12px 16px; } .exh-get { font-size: 18px; }
}
details.exmore { margin: 8px 0 14px; }
details.exmore > summary { cursor: pointer; font-weight: 600; padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--card); list-style: none; }
details.exmore > summary::-webkit-details-marker { display: none; }
details.exmore[open] > summary { margin-bottom: 8px; }

/* ---------- Бронь v2 (rent/book-v2, макет RS_сайт_макет/rs-book-mockup.html): одна страница, 4 карточки, итог справа на ПК и панелью снизу
   на телефоне. Только классы .v-* внутри main.rbv; цвета — переменные темы бизнеса (--bg, --ink, --biz), без инлайн-стилей (CSP). ---------- */
main.rbv { --vp: var(--bg, #F5F3ED); --vp2: color-mix(in srgb, var(--ink, #142D38) 7%, var(--vp)); --vk: var(--ink, #142D38); --vk2: color-mix(in srgb, var(--vk) 82%, #fff);
  --vm: #5f6f76; --vo: var(--biz, #F05609); --vo2: color-mix(in srgb, var(--vo) 88%, #000); --vol: color-mix(in srgb, var(--vo) 9%, #fff); --vg: #17803f; --vgl: #E6F4EA;
  --vl: rgba(20,45,56,.14); --vr: 20px; max-width: 1360px; padding: 6px 16px 150px; color: var(--vk); }
.bs-top:has(~ main.rbv) { position: sticky; top: 0; z-index: 50; background: color-mix(in srgb, var(--bg, #F5F3ED) 93%, transparent); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-bottom: 1px solid rgba(20,45,56,.12); }
.v-top { margin-left: auto; display: flex; align-items: center; gap: 8px; }
.v-tel { display: none; flex-direction: column; line-height: 1.15; text-align: right; white-space: nowrap; margin-right: 4px; color: var(--ink); }
.v-tel b { font: 800 16px var(--text); } .v-tel span { font: 700 12.5px var(--text); color: #5f6f76; }
.v-tel:hover { text-decoration: none; }
.v-wa { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: #25D366; color: #fff; flex: none; }
.v-wa svg { width: 21px; height: 21px; }
.v-gtop { height: 40px; max-width: 220px; overflow: hidden; display: flex; align-items: center; }
main.rbv [hidden] { display: none !important; }
main.rbv .rb-back { margin: 12px 0 6px; }
main.rbv .rb-back a { color: var(--vm); font-weight: 700; opacity: 1; }
main.rbv h1 { font-size: 30px; line-height: 1.1; letter-spacing: -.025em; margin: 0 0 6px; }
main.rbv h1 em { font-style: normal; color: var(--vo); }
main.rbv > .rs-lead { color: var(--vm); font-size: 15.5px; max-width: 640px; margin: 0 0 16px; opacity: 1; }
.v-form { display: grid; gap: 14px; grid-template-columns: minmax(0, 1fr); align-items: start; }
.v-main { display: grid; gap: 14px; min-width: 0; }
.v-card { background: #fff; border: 1px solid var(--vl); border-radius: var(--vr); padding: 16px; min-width: 0; position: relative; color: #142D38; }
.v-ch { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.v-no { width: 30px; height: 30px; border-radius: 50%; background: var(--vk); color: #fff; display: grid; place-items: center; font: 800 14px var(--text); flex: none; transition: background .25s; }
.v-no .rb-i { width: 16px; height: 16px; stroke-width: 3; display: none; }
.v-card.done .v-no { background: var(--vg); }
.v-card.done .v-no span { display: none; } .v-card.done .v-no .rb-i { display: block; }
.v-ch h2 { font-size: 21px; margin: 0; letter-spacing: -.02em; }
.v-sm { margin-left: auto; font: 700 13.5px var(--text); color: var(--vm); text-align: right; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 55%; }
.v-card.need { animation: v-need .5s; }
@keyframes v-need { 20%, 60% { transform: translateX(-6px); } 40%, 80% { transform: translateX(6px); } }
.v-inp { width: 100%; min-height: 50px; border: 1.5px solid var(--vl); border-radius: 12px; background: #fff; padding: 0 14px; font: 600 16px var(--text); color: #142D38; min-width: 0; }
main.rbv .v-inp:focus, main.rbv select:focus-visible { outline: 0; border-color: var(--vk); box-shadow: 0 0 0 4px rgba(20,45,56,.08); }
main.rbv textarea.v-inp { min-height: 76px; padding: 12px 14px; resize: vertical; margin-top: 8px; }
.v-inp.bad { border-color: #d4380d; background: #fffaf7; }
.v-lbl { display: block; font: 700 13px var(--text); color: var(--vk2); margin: 0 0 6px; }
.v-lbl small { color: var(--vm); font-weight: 600; font-size: 12.5px; }
.v-err { display: block; font: 700 12.5px var(--text); color: #c4320a; margin-top: 5px; }
.v-warn { margin: 10px 0 0; font: 700 13.5px var(--text); color: #a3380a; background: var(--vol); border-radius: 12px; padding: 10px 12px; }
/* 1. машина */
.v-car { display: grid; gap: 16px; }
.v-gal { position: relative; border-radius: 16px; overflow: hidden; background: var(--vp2); aspect-ratio: 16 / 10; }
.v-gt { display: flex; height: 100%; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; scroll-behavior: smooth; }
.v-gt::-webkit-scrollbar { display: none; }
.v-gt img { flex: 0 0 100%; width: 100%; height: 100%; object-fit: cover; scroll-snap-align: start; }
.v-dots { position: absolute; left: 0; right: 0; bottom: 10px; display: flex; justify-content: center; gap: 6px; pointer-events: none; }
.v-dots i { width: 7px; height: 7px; border-radius: 4px; background: rgba(255,255,255,.6); transition: .2s; box-shadow: 0 0 0 1px rgba(0,0,0,.08); }
.v-dots i.on { width: 22px; background: #fff; }
.v-ga { position: absolute; top: 50%; margin-top: -20px; width: 40px; height: 40px; border-radius: 50%; border: 0; background: rgba(255,255,255,.92); display: grid; place-items: center; font-size: 18px; cursor: pointer; opacity: 0; transition: opacity .2s; box-shadow: 0 6px 18px -8px rgba(0,0,0,.4); color: #142D38; }
.v-ga.l { left: 10px; } .v-ga.r { right: 10px; }
.v-gal:hover .v-ga, .v-ga:focus-visible { opacity: 1; }
.v-tag { position: absolute; left: 12px; top: 12px; background: rgba(20,45,56,.86); color: #F5F3ED; font: 800 11.5px var(--text); letter-spacing: .06em; text-transform: uppercase; padding: 6px 11px; border-radius: 999px; }
.v-live { position: absolute; right: 12px; top: 12px; display: inline-flex; align-items: center; gap: 7px; background: #fff; color: var(--vg); font: 800 12.5px var(--text); padding: 6px 11px 6px 9px; border-radius: 999px; box-shadow: 0 6px 16px -8px rgba(0,0,0,.4); }
.v-live i, .v-shh p i { width: 8px; height: 8px; border-radius: 50%; background: #22a65a; animation: v-pulse 1.8s infinite; }
@keyframes v-pulse { 0% { box-shadow: 0 0 0 0 rgba(34,166,90,.6); } 70% { box-shadow: 0 0 0 8px rgba(34,166,90,0); } 100% { box-shadow: 0 0 0 0 rgba(34,166,90,0); } }
.v-ci { min-width: 0; }
.v-ci h3 { font-size: 24px; margin: 0 0 4px; letter-spacing: -.02em; }
.v-yr { color: var(--vm); font-weight: 700; font-size: 14.5px; margin: 0 0 12px; }
.v-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 14px; }
.v-chips span { font: 700 12.5px var(--text); background: var(--vp); border: 1px solid var(--vl); padding: 4px 10px; border-radius: 8px; color: var(--vk2); }
.v-sws { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; flex-wrap: wrap; }
.v-sws > span { font: 700 13.5px var(--text); color: var(--vm); } .v-sws > span b { color: #142D38; }
.v-sw { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; cursor: pointer; box-shadow: 0 0 0 1.5px transparent; transition: transform .15s, box-shadow .15s; }
.v-sw svg { width: 30px; height: 30px; display: block; }
.v-sw.on { box-shadow: 0 0 0 2px #142D38; }
.v-sw:hover { transform: scale(1.08); }
.v-lh { font: 800 11.5px var(--text); letter-spacing: .1em; text-transform: uppercase; color: var(--vm); margin: 0 0 6px; }
.v-lad { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 4px; margin-bottom: 14px; }
.v-lad div { background: var(--vp); border-radius: 10px; padding: 7px 4px 6px; text-align: center; transition: .25s; border: 1.5px solid transparent; }
.v-lad small { display: block; font: 700 11px var(--text); color: var(--vm); white-space: nowrap; }
.v-lad b { font: 800 15px var(--text); }
.v-lad div.on { background: var(--vol); border-color: var(--vo); transform: translateY(-2px); }
.v-lad div.on b { color: var(--vo2); }
.v-rq { background: var(--vp); border-radius: 12px; padding: 12px 14px; font-weight: 700; color: var(--vk2); margin: 0 0 14px; font-size: 14.5px; }
.v-pick > summary { list-style: none; }
.v-pick > summary::-webkit-details-marker { display: none; }
.v-chg { display: flex; width: 100%; align-items: center; justify-content: center; gap: 8px; min-height: 46px; border-radius: 12px; border: 1.5px solid #142D38; font: 800 15px var(--text); cursor: pointer; transition: .15s; color: #142D38; }
.v-chg:hover { background: #142D38; color: #F5F3ED; }
.v-chg small { font-weight: 700; opacity: .7; font-size: 12.5px; }
.v-ov { margin-top: 12px; }
.v-sheet { background: var(--vp); border-radius: 18px; padding: 14px; }
.v-shh { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 12px; }
.v-shh h2 { font-size: 22px; margin: 0; }
.v-shh p { font: 700 13.5px var(--text); color: var(--vg); margin: 4px 0 0; display: flex; gap: 7px; align-items: center; }
.v-x { margin-left: auto; width: 40px; height: 40px; border-radius: 12px; background: #fff; border: 1px solid var(--vl); display: grid; place-items: center; font-size: 24px; line-height: 1; flex: none; cursor: pointer; color: #142D38; }
.v-fl { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.v-fl button { min-height: 36px; padding: 0 14px; border-radius: 999px; border: 1.5px solid var(--vl); background: #fff; font: 800 13.5px var(--text); cursor: pointer; color: #142D38; }
.v-fl button.on { background: #142D38; color: #F5F3ED; border-color: #142D38; }
.v-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; border: 0; padding: 0; margin: 0; min-width: 0; }
.v-grid .rb-cc { position: relative; background: #fff; border: 1.5px solid var(--vl); border-radius: 16px; overflow: hidden; display: flex; flex-direction: column; cursor: pointer; transition: border-color .15s, transform .15s; min-width: 0; }
.v-grid .rb-cc:hover { border-color: #142D38; transform: translateY(-2px); }
.v-grid .rb-cc .rb-r { position: absolute; opacity: 0; pointer-events: none; }
.v-grid .rb-cc:has(.rb-r:checked) { border-color: var(--vo); box-shadow: 0 0 0 2px var(--vo); }
.v-grid .rb-cc:has(.rb-r:focus-visible) { outline: 2px solid var(--vo); outline-offset: 2px; }
.v-grid .rb-cc-pic { display: block; aspect-ratio: 16 / 10; background: var(--vp2); }
.v-grid .rb-cc-pic img { width: 100%; height: 100%; object-fit: cover; display: block; }
.v-pb { padding: 9px 10px 11px; display: flex; flex-direction: column; flex: 1; gap: 2px; }
.v-pb .rb-cc-st { display: inline-flex; align-items: center; gap: 5px; font: 800 11px var(--text); color: var(--vg); }
.v-pb .rb-cc-st::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: #22a65a; flex: none; }
.v-grid .rb-cc.busy .rb-cc-st { color: #a3380a; } .v-grid .rb-cc.busy .rb-cc-st::before { background: #d4380d; }
.v-grid .rb-cc.long .rb-cc-st { color: var(--vm); } .v-grid .rb-cc.long .rb-cc-st::before { background: #9aa4a8; }
.v-grid .rb-cc.busy .rb-cc-pic img { filter: grayscale(.6); opacity: .7; }
.v-pb .rb-cc-n { font: 800 13.5px/1.25 var(--text); }
.v-pb > small { font: 700 11.5px/1.3 var(--text); color: var(--vm); margin-bottom: 6px; }
.v-pb .rb-cc-p { margin-top: auto; font-size: 11.5px; color: var(--vm); font-weight: 700; }
.v-pb .rb-cc-p b { font: 800 17px var(--text); letter-spacing: -.02em; color: #142D38; margin-right: 2px; }
.v-pb .rb-was { color: var(--vm); }
.v-grid .rb-long-h { grid-column: 1 / -1; margin: 6px 0 0; font: 800 12px var(--text); letter-spacing: .08em; text-transform: uppercase; color: var(--vm); }
main.rbv .rb-take { margin-top: 12px; display: grid; gap: 8px; background: var(--vol); border-radius: 12px; padding: 10px 12px; font: 700 13.5px var(--text); }
main.rbv .rb-take .rs-btn { justify-self: start; }
/* 2. когда */
.v-quick { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-bottom: 16px; }
.v-q { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px; min-height: 46px; padding: 6px 12px 6px 14px; border-radius: 12px; border: 1.5px solid var(--vl); background: #fff; font: 800 14.5px/1.15 var(--text); color: #142D38; transition: .15s; }
.v-q:hover { border-color: #142D38; text-decoration: none; }
.v-q span small { display: block; font: 700 12px var(--text); color: var(--vm); }
.v-q em { font-style: normal; font: 800 12px var(--text); color: var(--vg); background: var(--vgl); padding: 3px 7px; border-radius: 7px; white-space: normal; max-width: 100%; }
.v-q em:empty { display: none; }
.v-q.on { background: #142D38; border-color: #142D38; color: #F5F3ED; }
.v-q.on span small { color: rgba(245,243,237,.75); } .v-q.on em { background: rgba(255,255,255,.16); color: #9ff0bd; }
.v-calw { position: relative; }
.v-cal { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; }
.v-mh { text-align: center; font: 800 16px var(--text); margin: 0 0 10px; height: 36px; line-height: 36px; }
.v-mh::first-letter { text-transform: uppercase; }
.v-cnav { position: absolute; top: 0; width: 36px; height: 36px; border-radius: 10px; border: 1.5px solid var(--vl); display: grid; place-items: center; font-size: 16px; font-weight: 800; background: #fff; z-index: 2; cursor: pointer; color: #142D38; }
.v-cnav:disabled { opacity: .3; cursor: default; }
.v-cnav.p { left: 0; } .v-cnav.n { right: 0; }
.v-wd, .v-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.v-wd span { text-align: center; font: 700 11.5px var(--text); color: var(--vm); padding-bottom: 6px; text-transform: uppercase; }
.v-wd span:nth-child(n+6) { color: var(--vo2); }
.v-d { position: relative; height: 50px; display: flex; flex-direction: column; align-items: center; justify-content: center; border-radius: 12px; border: 0; background: none; transition: background .15s; line-height: 1.05; margin: 1px 0; padding: 0; cursor: pointer; color: #142D38; width: 100%; }
.v-d b { font: 700 15px var(--text); }
.v-d i { font: 700 10.5px var(--text); font-style: normal; color: var(--vm); margin-top: 3px; height: 12px; }
.v-d:hover:not(:disabled):not(.st):not(.en) { background: var(--vp); }
.v-d:disabled { color: #b7bfc2; cursor: default; }
.v-d.td b { color: var(--vo2); }
.v-d.td::after { content: ""; position: absolute; bottom: 5px; width: 4px; height: 4px; border-radius: 50%; background: var(--vo); }
.v-d.in { background: var(--vp2); border-radius: 0; }
.v-d.st, .v-d.en { background: #142D38; color: #fff; border-radius: 12px; z-index: 1; }
.v-d.st i, .v-d.en i { color: #ffd2b8; }
.v-d.dr i { color: var(--vg); font-weight: 800; }
.v-d.bz b { text-decoration: line-through; }
.v-d em { position: absolute; top: -5px; right: -2px; font: 800 9.5px var(--text); font-style: normal; background: var(--vg); color: #fff; padding: 1px 4px; border-radius: 5px; z-index: 2; pointer-events: none; }
.v-hint { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 12px 0 0; font: 700 13.5px var(--text); color: var(--vk2); background: var(--vp); border-radius: 12px; padding: 10px 12px; }
.v-hint .lg { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; color: var(--vm); font-size: 12.5px; }
.v-hint .lg em { font: 800 10px var(--text); font-style: normal; background: var(--vg); color: #fff; padding: 1px 5px; border-radius: 5px; }
.v-hint button { border: 0; background: none; text-decoration: underline; font: inherit; color: inherit; cursor: pointer; padding: 0; }
.v-dates { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.v-fd span { display: block; font: 700 12.5px var(--text); color: var(--vm); margin-bottom: 4px; }
.v-times { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 14px; }
.v-tp { border: 1.5px solid var(--vl); border-radius: 14px; padding: 10px 10px 10px 12px; min-width: 0; }
.v-tl { display: block; font: 700 12.5px var(--text); color: var(--vm); }
.v-tdd { display: block; font: 800 14px var(--text); margin-bottom: 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.v-stp { display: flex; align-items: center; gap: 4px; }
.v-stp button { width: 34px; height: 34px; flex: none; border-radius: 10px; border: 0; background: var(--vp); font: 800 18px/1 var(--text); display: grid; place-items: center; cursor: pointer; color: #142D38; }
main.rbv .v-stp select { flex: 1; min-width: 0; min-height: 40px; appearance: none; -webkit-appearance: none; border: 0; background: transparent; text-align: center; text-align-last: center; font: 800 21px var(--text); letter-spacing: -.02em; cursor: pointer; padding: 2px 0; border-radius: 8px; color: #142D38; }
.v-tnote { margin: 10px 0 0; font: 600 13px var(--text); color: var(--vm); }
main.rbv .rb-up { margin: 14px 0 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; background: linear-gradient(120deg, #FFF1E8, #FFF8F2); border: 1.5px dashed var(--vo); border-radius: 14px; padding: 12px 14px; font: 700 14.5px/1.35 var(--text); }
main.rbv .rb-up .rs-btn { justify-self: start; min-height: 36px; padding: 0 14px; background: var(--vo); color: #121214; border: 0; }
main.rbv .rb-sea, main.rbv .rb-offn { margin: 10px 0 0; color: var(--vm); }
/* 3. куда */
.v-opts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 0 0 12px; border: 0; padding: 0; min-width: 0; }
.v-opt { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0 10px; align-items: center; border: 1.5px solid var(--vl); border-radius: 14px; padding: 11px 12px; cursor: pointer; transition: .15s; min-width: 0; }
.v-opt:hover { border-color: #142D38; }
.v-opt input { position: absolute; opacity: 0; pointer-events: none; }
.v-oi { grid-row: span 2; width: 36px; height: 36px; border-radius: 10px; background: var(--vp); display: grid; place-items: center; font-size: 19px; }
.v-opt b { font: 800 14.5px/1.2 var(--text); }
.v-opt small { font: 700 12px/1.25 var(--text); color: var(--vm); }
.v-opt small.fr { color: var(--vg); }
.v-opt:has(input:checked) { border-color: #142D38; background: #142D38; color: #F5F3ED; }
.v-opt:has(input:checked) .v-oi { background: var(--vo); }
.v-opt:has(input:checked) small { color: rgba(245,243,237,.8); } .v-opt:has(input:checked) small.fr { color: #9ff0bd; }
.v-opt:has(input:focus-visible) { outline: 2px solid var(--vo); outline-offset: 2px; }
.v-addr { position: relative; margin-bottom: 12px; }
#rb-s3:has(input[name="where"]:checked:not([value="caba"])) .v-addr { display: none; }
.v-flight { display: none; margin-bottom: 12px; }
#rb-s3:has(input[name="where"][value="aep"]:checked) .v-flight, #rb-s3:has(input[name="where"][value="eze"]:checked) .v-flight { display: block; }
.v-acw { position: relative; }
.v-acw .rb-i { position: absolute; left: 14px; top: 16px; color: var(--vm); }
.v-acw .v-inp { padding-left: 42px; }
.v-sug { position: absolute; left: 0; right: 0; top: calc(100% + 6px); background: #fff; border: 1px solid var(--vl); border-radius: 14px; box-shadow: 0 22px 44px -20px rgba(20,45,56,.55); z-index: 20; overflow: hidden; }
.v-sug button { display: flex; width: 100%; gap: 10px; align-items: center; text-align: left; padding: 11px 14px; font: 700 14.5px var(--text); border: 0; border-top: 1px solid var(--vl); background: #fff; cursor: pointer; color: #142D38; }
.v-sug button:first-child { border-top: 0; }
.v-sug button:hover, .v-sug button.hl { background: var(--vp); }
.v-sug .rb-i { color: var(--vo); }
/* зона доставки вместо схемы: «✓ в зоне бесплатной доставки (CABA)» / «вне CABA — уточним стоимость» (rent/addr-here) */
.v-zone { margin: 10px 0 0; font: 800 14px/1.35 var(--text); color: #146c43; background: rgba(20,108,67,.1); padding: 10px 12px; border-radius: 12px; }
.v-zone.out { color: #a3380a; background: var(--vol); }
.v-zone[hidden] { display: none; }
/* «📍 Я здесь» и подсказка под полем адреса во всех формах сайта (public/addr-here.js, lib/addrhere.js) */
.ah-geo { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin-top: 8px; }
.ah-here { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 8px 14px; border-radius: 999px; border: 1.5px solid currentColor; background: transparent; color: inherit; font: 700 14px var(--text, inherit); cursor: pointer; }
.ah-here[hidden] { display: none; }
.ah-here:disabled { opacity: .6; cursor: progress; }
.ah-note { font: 600 13px/1.35 var(--text, inherit); opacity: .85; }
.ah-note:empty { display: none; }
.v-ret { margin: 10px 0 0; font: 600 13.5px var(--text); color: var(--vm); }
/* 4. кто */
.v-gb { min-height: 44px; max-height: 60px; overflow: hidden; display: flex; justify-content: center; }
.v-gok { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; background: var(--vgl); color: #0f5a2b; border-radius: 14px; padding: 12px 14px; font: 700 14px var(--text); margin: 0; }
.v-gok button { margin-left: auto; font: 700 13px var(--text); color: var(--vm); text-decoration: underline; border: 0; background: none; cursor: pointer; }
.v-gerr { font: 700 13px var(--text); color: #a3380a; margin: 8px 0 0; }
.v-or { display: flex; align-items: center; gap: 12px; margin: 14px 0; font: 700 12.5px var(--text); color: var(--vm); }
.v-or::before, .v-or::after { content: ""; flex: 1; height: 1px; background: var(--vl); }
.v-f2 { display: grid; gap: 12px; }
.v-phw { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 6px; }
main.rbv .v-phw select { min-height: 50px; appearance: none; -webkit-appearance: none; border: 1.5px solid var(--vl); border-radius: 12px; background: #fff; padding: 0 10px; font: 700 15px var(--text); color: #142D38; width: 100%; }
.v-fh { display: block; font: 600 12.5px var(--text); color: var(--vm); margin-top: 5px; }
.v-cm { margin-top: 12px; }
.v-cm summary { list-style: none; cursor: pointer; font: 800 14px var(--text); color: var(--vk2); display: inline-flex; gap: 6px; align-items: center; }
.v-cm summary::-webkit-details-marker { display: none; }
main.rbv .rb-ex { margin: 14px 0 0; }
.v-agree { position: relative; display: flex; align-items: flex-start; gap: 12px; margin-top: 16px; cursor: pointer; font: 700 14.5px/1.35 var(--text); }
.v-agree input { position: absolute; opacity: 0; width: 24px; height: 24px; margin: 0; }
.v-bx { width: 24px; height: 24px; border-radius: 7px; border: 2px solid #142D38; flex: none; display: grid; place-items: center; transition: .15s; margin-top: -1px; }
.v-bx .rb-i { width: 15px; height: 15px; stroke: #fff; stroke-width: 3; opacity: 0; }
.v-agree input:checked + .v-bx { background: var(--vg); border-color: var(--vg); }
.v-agree input:checked + .v-bx .rb-i { opacity: 1; }
.v-agree input:focus-visible + .v-bx { outline: 2px solid var(--vo); outline-offset: 2px; }
main.rbv .v-terms { margin-top: 10px; background: var(--vp); border-radius: 14px; padding: 4px 14px; border: 0; }
main.rbv .v-terms > summary { cursor: pointer; font: 800 13.5px var(--text); padding: 10px 0; color: var(--vk2); }
.v-priv { margin: 12px 0 0; font: 600 12.5px var(--text); color: var(--vm); }
/* отзывы */
.v-rvb { display: grid; gap: 10px; }
.v-rvb h2 { font-size: 18px; display: flex; align-items: center; gap: 8px; margin: 4px 0 0; }
.v-rvb h2 a { margin-left: auto; font: 700 13px var(--text); color: var(--vm); text-decoration: underline; }
.v-rv { background: #fff; border: 1px solid var(--vl); border-radius: 16px; padding: 14px 16px; margin: 0; color: #142D38; }
.v-rv blockquote { font: 600 15px/1.45 var(--text); color: var(--vk2); margin: 0 0 8px; }
.v-rv figcaption { font: 700 12.5px var(--text); color: var(--vm); } .v-rv figcaption b { color: #142D38; }
.v-st { color: #E89B00; letter-spacing: 2px; font-size: 13px; margin: 0 0 4px; }
/* итог */
.v-sum { display: grid; gap: 14px; min-width: 0; }
.v-sumc { background: #fff; border: 1px solid var(--vl); border-radius: var(--vr); overflow: hidden; color: #142D38; }
.v-sh { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 12px; align-items: center; padding: 14px; background: #142D38; color: #F5F3ED; }
.v-sh img { width: 88px; height: 58px; object-fit: cover; border-radius: 10px; }
.v-sh b { display: block; font: 800 15.5px/1.25 var(--text); }
.v-sh small { display: block; font: 600 12.5px/1.35 var(--text); opacity: .8; margin-top: 2px; }
.v-sb { padding: 14px 16px 16px; }
.v-prog { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; font: 700 12.5px var(--text); color: var(--vm); }
.v-bars { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; flex: 1; }
.v-bars i { height: 5px; border-radius: 3px; background: var(--vp2); transition: background .3s; }
.v-bars i.on { background: var(--vg); }
.v-rows { display: grid; gap: 8px; font-size: 14.5px; margin: 0; }
.v-rows > div { display: flex; justify-content: space-between; gap: 12px; }
.v-rows dt { color: var(--vk2); font-weight: 600; min-width: 0; }
.v-rows dt s { color: var(--vm); margin-right: 2px; }
.v-rows dd { font-weight: 800; text-align: right; white-space: nowrap; margin: 0; }
.v-rows .g dd { color: var(--vg); }
.v-rows .rb-bar-km dd { white-space: normal; max-width: 68%; font-weight: 700; font-size: 13.5px; }
.v-rows .rb-bar-ex { display: block; } .v-rows .rb-bar-ex dd { white-space: normal; text-align: left; font-weight: 600; }
.v-tot { display: flex; align-items: baseline; justify-content: space-between; border-top: 1.5px dashed var(--vl); margin-top: 12px; padding-top: 12px; }
.v-tot span { font: 800 15px var(--text); }
.v-tot b { font: 800 34px/1 var(--text); letter-spacing: -.035em; }
.v-tot b.bump { animation: v-bump .45s; }
@keyframes v-bump { 40% { color: var(--vo); transform: scale(1.04); } }
.v-save { display: block; text-align: right; font: 800 12.5px var(--text); color: var(--vg); margin-top: 4px; }
.v-pay { list-style: none; margin: 16px 0 4px; padding: 0; position: relative; display: grid; gap: 12px; }
.v-pay::before { content: ""; position: absolute; left: 11px; top: 12px; bottom: 12px; width: 2px; background: repeating-linear-gradient(to bottom, var(--vl) 0 4px, transparent 4px 8px); }
.v-pay li { position: relative; display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; gap: 10px; align-items: start; }
.v-pay li > i { width: 24px; height: 24px; border-radius: 50%; background: var(--vp2); border: 2px solid #fff; box-shadow: 0 0 0 1.5px var(--vl); z-index: 1; display: grid; place-items: center; font: 800 11px var(--text); font-style: normal; }
.v-pay li:first-child > i { background: var(--vo); box-shadow: 0 0 0 1.5px var(--vo); color: #121214; }
.v-pay li b { display: block; font: 800 13.5px/1.25 var(--text); }
.v-pay li > span > span { display: block; font: 600 12.5px/1.35 var(--text); color: var(--vm); }
.v-pay li em { font: 800 14.5px var(--text); font-style: normal; white-space: nowrap; text-align: right; }
.v-pay li em small { display: block; font: 700 11.5px var(--text); color: var(--vm); }
.v-pay li em.g { color: var(--vg); }
.v-tip { display: inline-grid; place-items: center; width: 18px; height: 18px; border-radius: 50%; background: #142D38; color: #fff; font: 800 11px var(--text); vertical-align: 1px; margin-left: 4px; text-decoration: none; }
.v-tip:hover { text-decoration: none; }
.v-tipbox { margin: 8px 0 2px; background: var(--vp); border-radius: 12px; padding: 11px 13px; font: 600 13px/1.45 var(--text); color: var(--vk2); }
.rb-js .v-tipbox:not(.on):not(:target) { display: none; }
.v-sum .rb-incl { display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0 0; }
.v-sum .rb-ic { display: inline-flex; align-items: center; gap: 5px; font: 700 12.5px var(--text); background: var(--vgl); color: #0f5a2b; padding: 4px 9px; border-radius: 8px; }
.v-sum .rb-ic .rb-i { width: 14px; height: 14px; stroke-width: 2.6; }
.v-flags { display: grid; gap: 7px; margin: 14px 0; }
.v-flags p { display: flex; gap: 8px; align-items: flex-start; font: 700 13.5px/1.35 var(--text); color: var(--vk2); margin: 0; }
.v-flags .rb-i { width: 18px; height: 18px; color: var(--vg); stroke-width: 2.4; margin-top: 1px; }
.v-cta { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; min-height: 58px; border-radius: 15px; border: 0; background: var(--vo); color: #121214; font: 800 17px var(--text); transition: background .15s; cursor: pointer; padding: 0 14px; text-align: center; }
.v-cta:hover { background: var(--vo2); }
.v-cta.next { background: #142D38; color: #F5F3ED; }
.v-cta.next:hover { background: #0c1d25; }
.v-cta .rb-i { width: 20px; height: 20px; stroke-width: 2.4; }
.v-cta:focus-visible { outline: 3px solid var(--vo); outline-offset: 3px; }
.v-hold { margin: 9px 0 0; font: 600 12.5px/1.4 var(--text); color: var(--vm); text-align: center; }
.v-sacts { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 12px; }
.v-sacts > :only-child { grid-column: 1 / -1; }
.v-sbtn { display: flex; align-items: center; justify-content: center; gap: 7px; min-height: 44px; border-radius: 12px; border: 1.5px solid var(--vl); font: 800 14px var(--text); background: #fff; cursor: pointer; color: #142D38; }
.v-sbtn:hover { border-color: #142D38; text-decoration: none; }
.v-sbtn.wa { color: #128C4B; }
.v-waalt { margin-top: 14px; }
.v-agl { margin: 8px 0 0; font: 500 12.5px/1.4 var(--text); color: #5b6b73; text-align: center; }
.v-agl a { color: inherit; text-decoration: underline; }
.v-sbtn svg, .v-sbtn .rb-i { width: 18px; height: 18px; }
.v-legal { font: 600 12px var(--text); color: var(--vm); text-align: center; padding: 4px 8px; margin: 0; }
/* нижняя панель (телефон, планшет) */
.v-mbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; background: rgba(255,255,255,.97); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border-top: 1px solid var(--vl); padding: 8px 12px calc(10px + env(safe-area-inset-bottom)); box-shadow: 0 -14px 30px -24px rgba(20,45,56,.6); color: #142D38; }
.v-mbar .v-bars { margin-bottom: 8px; } .v-mbar .v-bars i { height: 4px; }
.v-mbi { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px; align-items: center; }
.v-mbt b { display: block; font: 800 22px/1.05 var(--text); letter-spacing: -.03em; }
.v-mbt small { display: block; font: 700 12px var(--text); color: var(--vm); white-space: nowrap; }
.v-mbar .v-cta { min-height: 52px; font-size: 15px; border-radius: 14px; white-space: normal; line-height: 1.15; padding: 6px 12px; letter-spacing: -.01em; }
.v-toast { position: fixed; left: 50%; bottom: 110px; transform: translate(-50%, 20px); background: #142D38; color: #fff; font: 700 14px var(--text); padding: 11px 16px; border-radius: 12px; opacity: 0; transition: .25s; z-index: 200; pointer-events: none; max-width: 90vw; }
.v-toast.on { opacity: 1; transform: translate(-50%, 0); }
/* выбор машины с JS — шторка поверх страницы */
.rb-js .v-pick[open] > .v-ov { position: fixed; inset: 0; z-index: 100; margin: 0; background: rgba(10,24,30,.66); backdrop-filter: blur(3px); display: flex; align-items: flex-end; justify-content: center; }
.rb-js .v-pick[open] .v-sheet { width: 100%; max-height: 92vh; overflow: auto; border-radius: 24px 24px 0 0; padding: 18px 16px calc(20px + env(safe-area-inset-bottom)); animation: v-up .3s cubic-bezier(.2,.9,.3,1); }
@keyframes v-up { from { transform: translateY(40px); opacity: 0; } }
/* статус брони: кольцо удержания, полоса шагов, «В календарь» */
.v-hold-c { text-align: center; margin: 14px 0 6px; }
.v-ring { width: 84px; height: 84px; margin: 0 auto 8px; position: relative; }
.v-ring svg { width: 84px; height: 84px; }
.v-ring circle { fill: none; stroke-width: 6; }
.v-ring .bg { stroke: var(--vp2); }
.v-ring .fg { stroke: var(--vo); stroke-linecap: round; transform: rotate(-90deg); transform-origin: 50% 50%; transition: stroke-dashoffset 1s linear; }
.v-ring b { position: absolute; inset: 0; display: grid; place-items: center; font: 800 19px var(--text); letter-spacing: -.02em; }
.v-hold-c p { margin: 0; font: 700 14px var(--text); color: var(--vk2); }
main.rbv-st, main.rbv-cf { max-width: 760px; }
main.rbv-st .rb-steps { counter-reset: none; gap: 4px; margin: 14px 0 16px; }
main.rbv-st .rb-steps li { opacity: 1; color: var(--vm); font: 700 11px/1.2 var(--text); counter-increment: none; }
main.rbv-st .rb-steps li::before { content: ""; width: auto; height: 5px; border: 0; border-radius: 3px; margin: 0 0 6px; background: var(--vp2); }
main.rbv-st .rb-steps li.done, main.rbv-st .rb-steps li.on { color: #142D38; }
main.rbv-st .rb-steps li.done::before { content: ""; background: var(--vg); }
main.rbv-st .rb-steps li.on::before { background: linear-gradient(90deg, var(--vo) 50%, var(--vp2) 50%); background-size: 200% 100%; animation: v-ld 1.4s linear infinite; }
@keyframes v-ld { from { background-position: 100% 0; } to { background-position: 0 0; } }
.v-dacts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 0 0 14px; }
.v-dacts > :only-child { grid-column: 1 / -1; }
@media (min-width: 600px) {
  .v-tel { display: flex; }
  .v-quick { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .v-opts { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .v-opt { grid-template-columns: minmax(0, 1fr); gap: 4px; padding: 12px; }
  .v-oi { grid-row: auto; margin-bottom: 4px; }
  .v-f2 { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); }
  .v-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 720px) {
  main.rbv { padding: 10px 24px 150px; }
  main.rbv h1 { font-size: 38px; }
  .v-card { padding: 22px; }
  .v-cal { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
  .v-car { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); align-items: start; gap: 24px; }
  .rb-js .v-pick[open] > .v-ov { align-items: center; padding: 24px; }
  .rb-js .v-pick[open] .v-sheet { border-radius: 24px; max-width: 920px; max-height: 88vh; padding: 24px; }
}
@media (min-width: 1080px) {
  main.rbv { padding: 14px 32px 64px; }
  main.rbv h1 { font-size: 44px; }
  .v-form { grid-template-columns: minmax(0, 1fr) 400px; gap: 16px 28px; }
  .v-sum { position: sticky; top: 96px; }
  .v-mbar { display: none; }
  .v-card { padding: 26px; }
  .v-toast { bottom: 40px; }
}
@media (min-width: 1300px) { .v-form { grid-template-columns: minmax(0, 1fr) 420px; } }
@media (max-width: 479px) { .v-gtop { display: none !important; } }
@media (max-width: 420px) { .v-tp { padding: 9px 8px; } .v-stp button { width: 30px; height: 30px; font-size: 17px; } main.rbv .v-stp select { font-size: 19px; } }
@media (prefers-reduced-motion: reduce) { main.rbv *, main.rbv *::before { animation: none !important; transition: none !important; } }
.ah-map { font: 700 13px var(--text, inherit); color: inherit; text-decoration: underline; }
.ah-map[hidden] { display: none; }
.ah-last { margin-top: 8px; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* блок «Моё» на главной для вошедшего (public/site-my.js) */
.my-box { margin: 0 0 16px; }
.my-row { display: flex; flex-wrap: wrap; gap: 8px; }
.my-tile { display: inline-flex; align-items: center; gap: 4px; padding: 10px 14px; background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); color: inherit; }
.my-tile:hover { text-decoration: none; border-color: color-mix(in srgb, var(--violet) 40%, var(--line)); }
.my-n:not(:empty) { background: var(--violet); color: #fff; border-radius: 10px; padding: 0 7px; font-size: .85em; }

/* выбор оплаты подписки: сегменты USDT | Bybit + ссылка «Согласовать наличными» в одну строку */
.rb-seg { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; border: 0; padding: 0; margin: 0 0 10px; min-width: 0; }
.rb-seg legend { padding: 0; font-weight: 600; margin-bottom: 6px; }
.rb-seg label { cursor: pointer; }
.rb-seg label input { position: absolute; opacity: 0; pointer-events: none; }
.rb-seg label span { display: inline-block; padding: 9px 16px; border: 1.5px solid var(--line); border-radius: 999px; font-weight: 600; }
.rb-seg label input:checked + span { background: var(--biz, #F05609); color: var(--biz-ink, #fff); border-color: var(--biz, #F05609); }
.rb-seg label input:focus-visible + span { outline: 2px solid var(--biz, #F05609); outline-offset: 2px; }

/* компактная форма подписки (09.10): тарифы карточками, чипы дат, сворачиваемые блоки, липкая кнопка на телефоне */
.rb-compact { display: grid; gap: 10px; }
.rb-compact .rb-f { margin: 0; } .rb-compact .rb-two { margin: 0; }
.rb-grp { border: 0; padding: 0; margin: 0; min-width: 0; } .rb-grp legend { font-weight: 600; margin-bottom: 6px; padding: 0; }
.rb-plans { display: grid; grid-template-columns: repeat(auto-fill, minmax(128px, 1fr)); gap: 8px; }
.rb-plan, .rb-chip-r { cursor: pointer; position: relative; }
.rb-plan input, .rb-chip-r input { position: absolute; opacity: 0; pointer-events: none; }
.rb-plan > span { display: grid; gap: 2px; padding: 10px 12px; border: 1.5px solid var(--line); border-radius: var(--rs-c); height: 100%; box-sizing: border-box; }
.rb-plan small { opacity: .75; } .rb-plan i { font-style: normal; font-weight: 700; }
.rb-plan input:checked + span { border-color: var(--biz, #F05609); box-shadow: 0 0 0 1px var(--biz, #F05609) inset; }
.rb-starts { display: flex; flex-wrap: wrap; gap: 6px; }
.rb-chip-r > span { display: inline-block; padding: 7px 12px; border: 1.5px solid var(--line); border-radius: 999px; font-size: 14px; }
.rb-chip-r input:checked + span { background: var(--biz, #F05609); color: var(--biz-ink, #fff); border-color: var(--biz, #F05609); }
.rb-plan input:focus-visible + span, .rb-chip-r input:focus-visible + span { outline: 2px solid var(--biz, #F05609); outline-offset: 2px; }
.rb-fold > summary { cursor: pointer; font-weight: 600; padding: 4px 0; }
.rb-stick { margin-top: 4px; }
@media (max-width: 640px) { .rb-compact .rb-two { grid-template-columns: 1fr; } .rb-stick { position: sticky; bottom: 0; padding: 10px 0 calc(10px + env(safe-area-inset-bottom)); background: var(--card, var(--bg)); z-index: 5; } .rb-stick .rb-go { width: 100%; } }
@media (min-width: 641px) { .rb-compact .rb-two { grid-template-columns: 1fr 1fr; display: grid; gap: 10px; } }
.rb-h1c { margin: 8px 0 4px; font-size: clamp(22px, 5vw, 30px); }
.rb-lead1 { margin: 0 0 10px; font-size: 14px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.rb-plan > span { padding: 8px 10px; }
@media (max-width: 640px) { .rb-compact { padding: 12px; gap: 8px; } .rb-plans { grid-template-columns: 1fr 1fr; gap: 6px; } }

/* подписка, ПК: шире колонка, поля в 2–3 колонки, оплата + промокод + комментарий в одну строку */
.rb.rb-wide { max-width: 1040px; }
.rb-compact .rb-row3 { display: grid; grid-template-columns: 1fr; gap: 10px; }
.rb-compact .rb-row3 .rb-two { display: contents; }
.rb-compact .rb-row2 { display: grid; grid-template-columns: 1fr; gap: 10px; }
.rb-compact .rb-meta { display: flex; flex-wrap: wrap; gap: 8px 18px; align-items: flex-start; }
.rb-compact .rb-meta .rb-seg { margin: 0; } .rb-compact .rb-meta .rb-fold { flex: 1 1 200px; }
@media (min-width: 900px) {
  .rb-compact .rb-row3 { grid-template-columns: 1fr 1fr 1fr; }
  .rb-compact .rb-row2 { grid-template-columns: 1fr 2fr; }
  .rb-wide .rb-lead1 { -webkit-line-clamp: 1; }
  .rb-wide .rb-plans { grid-template-columns: repeat(8, 1fr); }
  .rb-wide .rb-plan > span { padding: 6px 8px; font-size: 13px; }
  .rb-compact textarea[name=addr] { min-height: 44px; height: 44px; }
}
@media (max-width: 640px) { .rb-plan > span { padding: 6px 8px; font-size: 13px; } .rb-compact .rb-grp legend { margin-bottom: 4px; } }

.rb-infos { display: flex; flex-wrap: wrap; gap: 4px 20px; }
.rb-infos .rb-fold { flex: 0 1 auto; }
.rb-foot { display: contents; }
@media (min-width: 900px) {
  .rb-compact { padding: 14px 20px; gap: 8px; }
  .rb-foot { display: flex; gap: 16px; align-items: center; }
  .rb-foot .rb-stick { flex: none; } .rb-foot .rb-note { margin: 0; flex: 1; font-size: 12px; }
  .rb-compact .rb-row2 .ah-geo { display: inline-flex; gap: 8px; align-items: center; }
  .rb-compact .rb-row2 .rb-f { gap: 2px; }
  .rb-wide .rb-alt-cta { margin: 6px 0; }
}
/* телефон: карточки тарифов ниже, поля плотнее */
@media (max-width: 640px) {
  .rb-plan > span { display: grid; grid-template-columns: 1fr auto; column-gap: 6px; padding: 5px 8px; line-height: 1.25; }
  .rb-plan small { grid-column: 1 / -1; grid-row: 2; font-size: 11px; }
  .rb-plan i { grid-column: 2; grid-row: 1; }
  .rb-compact .rb-row3 { grid-template-columns: 1fr 1fr; }
  .rb-compact .rb-row3 > .rb-f:first-child { grid-column: 1 / -1; }
  .rb-compact .rb-meta .rb-fold { flex: 0 1 auto; }
  .rb-compact .rb-row2 { gap: 6px; }
  .rb-compact textarea[name=addr] { min-height: 52px; }
  .rb-compact .rb-f > span { font-size: 13px; }
}
@media (max-width: 640px) { .rb-lead1 { -webkit-line-clamp: 1; margin-bottom: 6px; } .rb-h1c { font-size: 22px; margin: 4px 0 2px; } .rb-compact .rb-grp legend { margin-bottom: 2px; } }
@media (max-width: 640px) { .rb-alt-cta { margin: 4px 0; } .rb-compact { padding: 10px; } }

/* схема зоны доставки в форме подписки (MF v4): без чужих карт */
.rb-zmap{margin:10px 0}
.rb-zmap svg{display:block;width:100%;max-height:240px;border-radius:14px;background:var(--rs-field,#f3efe6)}
.rb-zmap .zm-box{position:relative;border-radius:14px;overflow:hidden;background:#e8e0d0}
.rb-zmap .zm-box img{display:block;width:100%;height:auto}
.rb-zmap.m svg{position:absolute;inset:0;width:100%;height:100%;max-height:none;border-radius:0;background:none}
.rb-zmap.m .zr-f{fill:rgba(200,62,41,.25)}
.rb-zmap.m .zr-s{stroke-width:3;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 1.5px rgba(50,30,15,.9))}
.rb-zmap.m .zr-me{stroke-width:8}.rb-zmap.m .zr-pulse{stroke-width:5}
.rb-zmap .zr-f{fill:rgba(200,62,41,.14)}
.rb-zmap .zr-s{fill:none;stroke:#c83e29;stroke-width:3;stroke-linejoin:round}
.rb-zmap .zr-me{fill:#1e88e5;stroke:#fff;stroke-width:3}
.rb-zmap .zr-me.out{fill:#8a8a8a}
.rb-zmap .zr-pulse{fill:none;stroke:#1e88e5;stroke-width:2;opacity:.6}
@media (prefers-reduced-motion:no-preference){.rb-zmap .zr-pulse{animation:zrp 1.8s ease-out infinite;transform-box:fill-box;transform-origin:center}@keyframes zrp{from{transform:scale(.6);opacity:.7}to{transform:scale(2.4);opacity:0}}}
.rb-zmap figcaption{margin-top:6px;opacity:.8}
/* «← ArgHub · Все обменники» в шапке сайта обменника (владелец 09.10): ссылка на хаб, на узком экране — «← ArgHub» */
.bs-top .hubback { flex: none; margin-right: 8px; white-space: nowrap; }
.bs-top .hubback .hbl { display: inline; } .bs-top .hubback .hbs { display: none; }
@media (max-width: 599px) { .bs-top .hubback { padding: 0 10px; } .bs-top .hubback .hbl { display: none; } .bs-top .hubback .hbs { display: inline; } }
/* QA 11.10: на телефоне 375px таблица «Где обменять» и шапка сайта бизнеса не вылезают за экран */
.prices.exget td, .prices.exget th { overflow-wrap: anywhere; }
.prices.exget td:last-child, .prices.exget th:last-child { white-space: normal; text-align: left; }
.bs-top .brand { min-width: 0; flex: 0 1 auto; }
.bs-top .brand span { min-width: 0; max-width: none; }
.bs-top .bizin, .bs-top .lng { flex: none; }
.wembed textarea { display: block; width: 100%; max-width: 100%; box-sizing: border-box; font: 13px/1.4 ui-monospace, SFMono-Regular, Menlo, monospace; }
/* QA 11.10 (3): на широком экране абзацы не растягиваются на всю ширину (было 120-144 знака в строке) */
@media (min-width: 900px) {
  main:not(.home):not(.bs) > p:not(.chips), main:not(.home):not(.bs) .exintro p, main:not(.home):not(.bs) .faq p, main:not(.home):not(.bs) > .exh-answer, main:not(.home):not(.bs) > .answer { max-width: 860px; }
}
/* ссылки на Telegram-канал и Instagram в шапке бизнеса (lib/biztop.js): значки 40 px, на узком телефоне 36 px */
.bz-soc{display:flex;gap:0;flex:none}
.bz-sc{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;border-radius:12px;color:var(--ink,#1a1a1a)}
.bz-sc svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.bz-sc:hover{background:var(--soft,rgba(0,0,0,.06));text-decoration:none}
.bs-top .bz-soc{margin-left:auto}.bs-top .bz-soc + .bizin{margin-left:6px}
@media (max-width:420px){.bz-sc{min-width:36px;height:36px}.bz-sc svg{width:20px;height:20px}}

/* HB henry-v2 (12.10, дизайн-обход): страница Henry VIP Barber — тёплый янтарь на почти чёрном, красный только у главной кнопки.
   Только .bb-henry (обёртка добавляется для slug henry-barber, lib/barbersite.js); другие барбершопы и бизнесы не затронуты. Цвета — переменные темы (--mark янтарь, --biz красный, --card, --line, --bg). */
.bb-henry { display: grid; grid-template-columns: minmax(0, 1fr); }
.bb-henry > * { min-width: 0; }
.bb-henry .bb-end { order: 9; }
.bb-henry .bb-links { order: 10; }
.bb-henry h2 { display: flex; align-items: center; gap: 12px; margin: 30px 0 10px; font-size: 13px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--mark-tx, var(--mark, var(--biz))); }
.bb-henry h2::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, color-mix(in srgb, var(--mark, var(--biz)) 45%, transparent), transparent); }
.bb-henry .is-sec > .xs-muted { margin: 0 0 12px; font-size: 13.5px; }
/* герой: на телефоне фото во весь экран героя, текст поверх нижнего затемнения — имя и кнопка видны без прокрутки */
.bb-henry .bb-hero.bb-port { min-height: 560px; min-height: min(620px, calc(100svh - 64px)); justify-content: flex-end; background: var(--bg); border: 1px solid var(--line); }
.bb-henry .bb-hero.bb-port:not(.flat)::before { display: block; background: linear-gradient(180deg, transparent 28%, color-mix(in srgb, var(--bg) 72%, transparent) 62%, var(--bg) 100%); }
.bb-henry .bb-hero.bb-port .xs-hero-p { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; max-height: none; aspect-ratio: auto; object-position: 50% 0%; -webkit-mask-image: none; mask-image: none; }
.bb-henry .bb-hero.bb-port .xs-hero-t, .bb-henry .bb-hero.bb-c.bb-port .xs-hero-t { margin-top: 0; padding: 0 18px 20px; }
.bb-henry .xs-hero .xs-logo { display: none; }
.bb-henry .xs-hero .xs-kick { display: inline-block; margin: 0 0 10px; padding: 5px 11px; border-radius: 999px; font-size: 11.5px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--mark-tx, var(--mark, var(--biz))); background: color-mix(in srgb, var(--bg) 70%, transparent); border: 1px solid color-mix(in srgb, var(--mark, var(--biz)) 55%, transparent); }
.bb-henry .xs-hero h1, .bb-henry .xs-hero .xs-name { margin: 0 0 8px; font-size: clamp(38px, 12.5vw, 60px); font-weight: 800; line-height: .98; letter-spacing: -.02em; text-transform: uppercase; color: var(--ink); text-shadow: 0 2px 18px rgba(0,0,0,.55); }
.bb-henry .xs-hero .xs-kick + .xs-name { margin-top: 0; }
.bb-henry .is-tag { margin: 0 0 8px; display: flex; align-items: center; gap: 10px; font-size: 13px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; color: var(--mark-tx, var(--mark, var(--biz))); }
.bb-henry .is-tag::before { content: ""; width: 28px; height: 2px; background: var(--mark, var(--biz)); }
.bb-henry .xs-lead { margin: 0 0 14px; font-size: 14.5px; line-height: 1.45; color: var(--ink); opacity: .86; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.bb-hero-cta { display: grid; gap: 4px; }
.bb-hero-btn { display: none; align-items: center; justify-content: center; gap: 6px; min-height: 56px; width: 100%; padding: 11px 16px; font-size: 17px; font-weight: 800; border-radius: 14px; text-decoration: none; background: var(--biz, var(--accent)); color: var(--biz-btn, var(--ink)); box-shadow: 0 10px 28px color-mix(in srgb, var(--biz) 35%, transparent); }
.bb-hero-btn:hover { filter: brightness(.95); }
.bb-hero-btn:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
/* телефон: главная кнопка — плавающая «Записаться» (она и так в первом экране), в тексте героя запас под неё */
@media (max-width: 719.98px) { .bb-henry .bb-hero.bb-port .xs-hero-t { padding-bottom: 84px; } }
@media (min-width: 720px) { .bb-hero-btn { display: inline-flex; } }
.bb-where { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; font-size: 13.5px; color: var(--ink); opacity: .8; text-decoration: none; text-align: center; }
a.bb-where:hover, a.bb-where:focus-visible { opacity: 1; text-decoration: underline; text-underline-offset: 3px; }
/* работы: крупнее, с подписью-счётчиком */
.bb-henry .bb-works { gap: 12px; }
.bb-henry .bb-works figure { position: relative; flex-basis: min(80%, 320px); border-radius: 16px; }
.bb-henry .bb-works figcaption.bb-cnt { position: absolute; left: 10px; bottom: 10px; padding: 4px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; letter-spacing: .04em; opacity: 1; color: var(--ink); background: color-mix(in srgb, var(--bg) 78%, transparent); border: 1px solid var(--line); }
/* запись: чипсы — одна строка с боковой прокруткой, «Ещё время» янтарём, не красным */
.bb-henry .bb-book { margin-top: 14px; }
.bb-henry .bb-chips { flex-wrap: nowrap; overflow-x: auto; margin: 0 -16px; padding: 2px 16px 4px; scrollbar-width: none; }
.bb-henry .bb-chips::-webkit-scrollbar { display: none; }
.bb-henry .bb-chip { flex: 0 0 auto; white-space: nowrap; }
.bb-henry .bb-chip:hover, .bb-henry .bb-chip:focus-visible { border-color: var(--mark-tx, var(--mark, var(--biz))); }
.bb-henry .bb-chip.more { color: var(--mark-tx, var(--mark, var(--biz))); }
.bb-henry .bb-next b { color: var(--mark-tx, var(--mark, var(--biz))); }
/* доверие: преимущества — 2×2 карточки с янтарной галочкой (только факты из карточки) */
.bb-henry .bb-perks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 18px; }
.bb-henry .bb-perks li { align-items: flex-start; gap: 8px; padding: 12px; border-radius: 14px; font-size: 13.5px; line-height: 1.35; background: var(--card); border: 1px solid var(--line); }
.bb-henry .bb-perks li span { margin-top: 1px; color: var(--mark-tx, var(--mark, var(--biz))); }
/* цены и услуги */
.bb-henry .bb-svc-box { border-radius: 16px; max-width: none; border-color: color-mix(in srgb, var(--mark, var(--biz)) 22%, var(--line)); }
.bb-henry .bb-price { color: var(--mark-tx, var(--mark, var(--biz))); font-weight: 800; }
.bb-henry .bb-svc-more > summary { color: var(--mark-tx, var(--mark, var(--biz))); }
.bb-henry a.bb-row:hover { background: color-mix(in srgb, var(--mark, var(--biz)) 10%, transparent); }
/* часы и адрес — компактные карточки внизу */
.bb-henry .xs-box { margin-top: 12px; padding: 14px 16px; border-radius: 16px; }
.bb-henry .xs-box h2 { margin: 0 0 8px; }
.bb-henry .xs-facts { margin: 0; }
/* финальный призыв: тёмная карточка с янтарной рамкой, без градиента; кнопка — красная, как главная */
.bb-henry .is-end { margin-top: 22px; padding: 22px 18px; text-align: center; background: var(--card); color: var(--ink); border: 1px solid color-mix(in srgb, var(--mark, var(--biz)) 40%, var(--line)); box-shadow: inset 0 3px 0 var(--mark, var(--biz)); }
.bb-henry .is-end h2 { display: block; margin: 0 0 6px; font-size: clamp(22px, 6vw, 30px); letter-spacing: -.01em; text-transform: uppercase; color: var(--ink); }
.bb-henry .is-end h2::after { display: none; }
.bb-henry .is-end .xs-btn { background: var(--biz, var(--accent)); color: var(--biz-btn, var(--ink)); min-height: 52px; font-weight: 800; }
.bb-henry .is-end .bb-tg { color: var(--ink); }
@media (min-width: 640px) {
  .bb-henry .bb-hero.bb-port { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 44%); min-height: 600px; justify-content: stretch; background: radial-gradient(ellipse 70% 80% at 14% 40%, color-mix(in srgb, var(--mark, var(--biz)) 16%, transparent), transparent 70%), var(--bg); }
  .bb-henry .bb-hero.bb-port:not(.flat)::before { display: none; }
  .bb-henry .bb-hero.bb-port .xs-hero-p { position: relative; inset: auto; z-index: 0; grid-column: 2; grid-row: 1; min-height: 600px; object-position: 50% 14%; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 24%); mask-image: linear-gradient(90deg, transparent 0, #000 24%); }
  .bb-henry .bb-hero.bb-port .xs-hero-t { grid-column: 1; grid-row: 1; align-self: center; padding: 40px 12px 40px clamp(20px, 4vw, 48px); max-width: 560px; }
  .bb-henry .xs-hero h1, .bb-henry .xs-hero .xs-name { font-size: clamp(46px, 5.6vw, 76px); }
  .bb-henry .xs-lead { font-size: 16px; max-width: 460px; -webkit-line-clamp: 3; }
  .bb-hero-cta { max-width: 420px; justify-items: start; }
  .bb-hero-btn { width: auto; min-width: 280px; }
  .bb-where { justify-content: flex-start; }
}
@media (min-width: 900px) {
  .bb-henry { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 14px; }
  .bb-henry > section:not(.bb-hours):not(.xs-company), .bb-henry > ul, .bb-henry > aside, .bb-henry > nav, .bb-henry > .bb-live { grid-column: 1 / -1; }
  .bb-henry .bb-works figure { flex-basis: 300px; }
  .bb-henry .bb-book { grid-template-columns: auto 1fr; align-items: center; gap: 14px 18px; }
  .bb-henry .bb-book .xs-btn.bb-main { width: auto; min-width: 280px; }
  .bb-henry .bb-chips { margin: 0; padding: 2px 0 4px; flex-wrap: wrap; }
  .bb-henry .bb-perks { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .bb-henry .bb-svc { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bb-henry .bb-svc li + li { border-top: 0; }
  .bb-henry .bb-svc li:nth-child(n+3) { border-top: 1px solid var(--line); }
  .bb-henry .bb-svc li:nth-child(even) { border-left: 1px solid var(--line); }
  .bb-henry .xs-box { margin-top: 14px; }
  .bb-henry .is-end { padding: 30px 24px; }
  .bb-henry .is-end .xs-btn { width: auto; min-width: 320px; }
}

/* QA-ночь D: телефон — имя бизнеса в шапке «заказать обмен / написать» не сжимается до «V…» (логотип скрыт, «Кабинет» — значком); таблица цен не шире экрана; зоны нажатия подвала/крошек/языков ≥ 40 px */
@media (max-width: 420px) {
  .bs-top:has(.hubback) .bizin .bzs { display: none; }
  .bs-top:has(.hubback) .bizin { padding: 0 10px; }
  .bs-top:has(.hubback) .brand img { display: none; }
  .prices th, .prices td { padding-left: 6px; padding-right: 6px; }
  .prices th { font-size: 12px; }
}
/* @biz-css:end */
@media (max-width: 600px) { .top .btn.sm, .top .thm summary, .top .lng summary, .top .brand { min-height: 40px; } }
.foot-col { row-gap: 0; }
.foot-col a { display: block; padding: 10px 0; }
.crumbs a, .kob-credit { display: inline-block; padding: 11px 4px; margin: -11px -4px; }
.langs a { display: inline-block; padding: 11px 4px; margin: -11px 4px -11px -4px; } .langs b { margin-right: 0; padding: 0 4px 0 0; }
/* @biz-css:start */
/* QA-ночь D: вводная строка оформления подписки не режется на полуслове («…оставьте…») — показываем целиком */
.rb-lead1, .rb-wide .rb-lead1 { display: block; -webkit-line-clamp: unset; overflow: visible; }
@media (max-width: 640px) { .rb-lead1 { -webkit-line-clamp: unset; } }
/* QA-ночь D: 360 px — «Кабинет» в шапке сайта бизнеса значком, чтобы имя («Henry VIP Barber») не обрезалось */
@media (max-width: 380px) { .bs-top .bizin .bzs { display: none; } .bs-top .bizin { padding: 0 10px; } }
/* QA-ночь D (2): заказ обмена в тёмной теме — тёмные поля и чипы, выбранный чип с белым кольцом (раньше поля белые, выбранный тёмный) */
@media (prefers-color-scheme: dark) {
  .rb-exf:not([data-theme="light"] *) { --rb-f: var(--card); --rb-fi: var(--ink); --rb-bd: color-mix(in srgb, #fff 45%, var(--card)); --rb-mut: #A4A9CC; --rb-tint: color-mix(in srgb, var(--biz, #F05609) 18%, var(--card)); }
  .rb-exf:not([data-theme="light"] *) .rb-chip:has(input:checked) { box-shadow: inset 0 0 0 2px #fff; }
}
[data-theme="dark"] .rb-exf { --rb-f: var(--card); --rb-fi: var(--ink); --rb-bd: color-mix(in srgb, #fff 45%, var(--card)); --rb-mut: #A4A9CC; --rb-tint: color-mix(in srgb, var(--biz, #F05609) 18%, var(--card)); }
[data-theme="dark"] .rb-exf .rb-chip:has(input:checked) { box-shadow: inset 0 0 0 2px #fff; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .rb-exf input:not([type=checkbox]):not([type=hidden]):not([type=radio]), :root:not([data-theme="light"]) .rb-exf select, :root:not([data-theme="light"]) .rb-exf textarea,
  :root:not([data-theme="light"]) form.rb-card.rb-form input:not([type=checkbox]):not([type=hidden]):not([type=radio]), :root:not([data-theme="light"]) form.rb-card.rb-form textarea { background-color: var(--card); color: var(--ink); border-color: color-mix(in srgb, #fff 45%, var(--card)); }
}
/* QA-ночь C: лента работ -16px при отступе 14px выступала на 2px и раздувала страницу в Mini App */
.bb-works-wrap{overflow-x:clip}
/* QA H: зоны нажатия ссылок подвала и «Компании» сайта бизнеса (Henry и др.) ≥ 40 px — невидимое расширение, вид не меняется */
.bs-foot a,.xs-facts dd a,.xs-company a[href*="maps/dir"],.bs-top .bizin{position:relative}
.bs-foot a::after,.xs-facts dd a::after{content:"";position:absolute;inset:-11px -4px}
.xs-company a[href*="maps/dir"]::after{content:"";position:absolute;inset:-2px 0}
.bs-top .bizin::after{content:"";position:absolute;inset:-2px -3px}
/* QA-ночь SIM: форма обмена — день и время переносятся, а не уезжают за край (раньше «Завтра…» и 15:00–18:00 были обрезаны без подсказки) */
.rb-exw .rb-tchips{flex-wrap:wrap;overflow:visible}

/* TecnoPuente: герой страницы (владелец 14.10); картинка по теме, как логотип (.lg-l / .lg-d) */
:root { --tp-blue: #1565FF; --tp-ink: #0B1B3F; --tp-sun: #FFD24D; --tp-sun-ink: #14213D; --tp-bg1: #F3F8FD; --tp-bg2: #D6E6FF; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --tp-blue: #3D86FF; --tp-ink: #FFFFFF; --tp-bg1: #021235; --tp-bg2: #073080; } }
:root[data-theme="dark"] { --tp-blue: #3D86FF; --tp-ink: #FFFFFF; --tp-bg1: #021235; --tp-bg2: #073080; }
.tp-hero { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 40%; min-height: 150px; margin: 0 0 16px; border-radius: 20px; overflow: hidden; background: linear-gradient(120deg, var(--tp-bg1) 38%, var(--tp-bg2)); border: 1px solid var(--line); }
.tp-tx { position: relative; z-index: 1; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 8px; min-width: 0; padding: 16px 0 16px 16px; }
.tp-badge { display: inline-block; padding: 6px 11px; border-radius: 999px; background: var(--tp-sun); color: var(--tp-sun-ink); font-weight: 800; font-size: 11px; line-height: 1.1; letter-spacing: .03em; text-transform: uppercase; }
.tp-t { display: block; font-size: 26px; line-height: 1.05; font-weight: 800; color: var(--tp-blue); overflow-wrap: anywhere; }
.tp-r { font-weight: 700; font-size: 14px; color: var(--tp-ink); }
.tp-pic { position: relative; display: block; min-width: 0; overflow: hidden; }
.tp-pic img { position: absolute; right: 0; bottom: 0; height: 112%; width: auto; max-width: none; -webkit-mask-image: linear-gradient(to right, transparent 0, rgb(0 0 0) 28%); mask-image: linear-gradient(to right, transparent 0, rgb(0 0 0) 28%); }
.tp-i-d { display: none; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .tp-i-l { display: none; } :root:not([data-theme="light"]) .tp-i-d { display: block; } }
:root[data-theme="dark"] .tp-i-l { display: none; } :root[data-theme="dark"] .tp-i-d { display: block; }
@media (min-width: 560px) { .tp-hero { min-height: 190px; grid-template-columns: minmax(0, 1fr) 46%; } .tp-t { font-size: 34px; } .tp-tx { padding: 22px 0 22px 24px; } .tp-r { font-size: 16px; } }

/* @biz-css:end */
/* ===== ПК «дорого и красиво» (владелец 14.10, ветка ui/desk-premium): список обмена валют шире и просторнее; только ≥ 1200 px ===== */
@media (min-width: 1200px) {
  main.exh-page { max-width: 1440px; padding-top: 28px; grid-template-columns: minmax(200px, 260px) minmax(0, 900px) minmax(200px, 260px); column-gap: 32px; }
  main.exh-page > h1 { font-size: 40px; line-height: 1.12; }
  main.exh-page > h2 { font-size: 26px; margin-top: 52px; }
  main.exh-page .list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  main.exh-page .card, main.exh-page .exh-card { border-radius: 20px; box-shadow: var(--shadow); }
  main.exh-page .exh-card { padding: 18px 20px; }
  main.exh-page .exh-calc { padding: 22px 24px; border-radius: 24px; }
  main.exh-page > .exh-side { border-radius: 20px; padding: 20px; box-shadow: var(--shadow); }
}

/* ===== ui/p1-app (14.10, аудит №4/5/21): «Обмен валют» — калькулятор выше абзаца, центр шире, «Обменять» главная кнопка ===== */
main.exh-page { display: grid; grid-template-columns: minmax(0, 1fr); }
main.exh-page > * { min-width: 0; order: 2; }
main.exh-page > .crumbs, main.exh-page > h1 { order: 0; }
main.exh-page > .exh-calc, main.exh-page > .exh-quick { order: 1; } /* визуально выше абзацев; текст абзацев остаётся в DOM как был (SEO) */
.exh-chip { white-space: nowrap; }
@media (max-width: 719px) {
  .exh-chips, .exh-act { margin-left: 0; }
  .exh-act { flex-wrap: wrap; gap: 6px 8px; }
  .exh-act .exh-cta { flex: 1 1 0; min-width: 104px; padding: 0 10px; white-space: nowrap; justify-content: center; min-height: 42px; font-size: 14px; }
  .exh-act .exh-write { flex: 0 0 auto; min-height: 42px; padding: 0 10px; font-size: 13.5px; white-space: nowrap; }
  .exh-act .exh-prof { flex: 0 0 auto; min-height: 42px; padding: 0 6px; border: 0; background: none; box-shadow: none; color: var(--accent); font-size: 13.5px; white-space: nowrap; }
  .exh-act .exmap { flex-basis: 100%; }
}
@media (min-width: 1200px) { /* ПК: основной столбец 960–1000, подсказки — парой под карточками, а не по бокам */
  main.exh-page { max-width: 1040px; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; justify-content: stretch; }
  main.exh-page > * { grid-column: 1 / -1; }
  main.exh-page > .exh-side { grid-row: auto; position: static; margin: 14px 0 0; align-self: stretch; }
  main.exh-page > .exh-l { grid-column: 1; }
  main.exh-page > .exh-r { grid-column: 2; }
  main.exh-page > .exh-side + :not(.exh-side) { margin-top: 24px; }
}
/* ui/p1-app (аудит №16): карточки «Сегодня» одной высоты в ряду */
.td-grid { align-items: stretch; }
.td-grid > .td:not(.td-usd):not(.td-fact):not(.td-new) { min-height: 128px; }
.seller-cta { margin: 4px 0 14px; } .seller-cta .btn { display: block; text-align: center; max-width: 420px; } /* conv/ad-seller-cta: кнопка на первом экране 360px */

/* «💬 Скажите, что улучшить» (lib/improve.js siteBlock): ссылка без скрипта */
.ia{text-align:center;margin:12px 0 0}
.ia-open{display:inline-block;min-height:44px;line-height:22px;padding:11px 12px;box-sizing:border-box;font-size:13px;color:inherit;opacity:.7;text-decoration:underline}
.ia-open:hover{opacity:1}

/* seo/exchange-barrio-ctr (17.10): таблица обменников района (lib/exbarrio.js). Широкий экран — таблица (прокрутка только внутри блока);
   телефон — карточка на обменник с подписями из data-l: страница не уезжает вбок, ссылка «на карте» — отдельная строка в 44 px */
.exbar-wrap { max-width: 860px; overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 0 0 8px; border-radius: var(--radius); }
.exbar-tbl td, .exbar-tbl th { overflow-wrap: anywhere; }
.exbar-tbl .exmap { display: inline; min-height: 0; padding-left: 4px; }
@media (max-width: 640px) {
  .exbar-wrap { overflow-x: visible; }
  .exbar-tbl, .exbar-tbl tbody, .exbar-tbl tr, .exbar-tbl td { display: block; width: 100%; box-sizing: border-box; }
  .exbar-tbl thead { display: none; }
  .exbar-tbl tr { padding: 10px 12px; border-bottom: 1px solid var(--line); }
  .exbar-tbl tr:last-child { border-bottom: 0; }
  .exbar-tbl td, .exbar-tbl td:last-child { border: 0; padding: 3px 0; text-align: left; white-space: normal; }
  .exbar-tbl td.nil { display: none; }
  .exbar-tbl td:first-child { font-size: 15.5px; padding-bottom: 5px; }
  .exbar-tbl td[data-l]::before { content: attr(data-l) ": "; color: var(--muted); font-size: 12.5px; }
  .exbar-tbl .exmap { display: flex; min-height: 44px; padding-left: 0; font-size: 13.5px; }
}

/* exbest 19.10: «Выбрать обменник ↓» под итогом калькулятора (без имени) и якорь списка — первая карточка с «Обменять» целиком на первом экране после прокрутки */
.exh-pick { display: flex; align-items: center; justify-content: center; min-height: 44px; margin: 6px 0; padding: 0 16px; text-align: center; font-weight: 700; }
#exh-list { scroll-margin-top: 78px; } /* липкая шапка сайта ≈ 64 px не закрывает имя первой карточки */
main.exh-page > .exh-pick { order: 1; } /* визуально сразу под итогом (абзацы остаются в DOM как были) */

/* svc-card-face 22.10: меню услуг (как прайс Henry, .bb-svc) и «лицо» карточки из реестра без хозяина; тот же вид в Mini App (app.css .pm-*) */
.pm { margin: 6px 0 14px; }
.pm-box { border-radius: 16px; background: var(--card); border: 1px solid var(--line); overflow: hidden; }
.pm-grp + .pm-grp { border-top: 1px solid var(--line); }
.pm-g { margin: 0; padding: 12px 14px 2px; font-size: 12px; line-height: 1.3; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.pm-list { list-style: none; margin: 0; padding: 0; }
.pm-row { display: flex; align-items: center; gap: 12px; min-height: 48px; padding: 8px 14px; }
.pm-row + .pm-row { border-top: 1px solid var(--line); }
.pm-t { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.pm-t b { font-size: 15px; line-height: 1.3; font-weight: 600; overflow-wrap: anywhere; }
.pm-t small { color: var(--muted); font-size: 12.5px; line-height: 1.3; overflow-wrap: anywhere; }
.pm-p { flex: none; max-width: 46%; text-align: right; font-size: 15px; font-weight: 700; letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
.pm-p.ask { font-size: 12.5px; font-weight: 500; color: var(--muted); }
.pm-hot { box-shadow: inset 3px 0 0 var(--accent); }
.pm-hot .pm-p { color: var(--accent); }
.rg-face { --rg: #34437F; display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 10px 12px; min-height: 104px; margin: 0 0 12px; padding: 16px; border-radius: 16px; color: #fff;
  background: radial-gradient(120% 90% at 100% 0%, rgba(255,255,255,.16), transparent 55%), linear-gradient(160deg, var(--rg), color-mix(in srgb, var(--rg) 70%, #000)); }
.rg-cat { font-size: 14px; font-weight: 600; line-height: 1.3; }
.rg-write { background: #fff; color: #0b1020; border-color: #fff; min-height: 44px; }
.rg-foot { margin: 18px 0 8px; font-size: 12px; line-height: 1.45; color: var(--muted); }
.rg-foot p { margin: 0 0 4px; }
.rg-links { display: flex; flex-wrap: wrap; gap: 0 18px; }
.rg-links a { color: var(--muted); text-decoration: underline; text-underline-offset: 2px; display: inline-flex; align-items: center; min-height: 44px; }
.rg-c-beauty { --rg: #8A3B63; }
.rg-c-massage { --rg: #2F6B5E; }
.rg-c-health { --rg: #1F5F7A; }
.rg-c-legal { --rg: #34437F; }
.rg-c-leisure { --rg: #B0502E; }
.rg-c-food { --rg: #9A5A1B; }
.rg-c-pets { --rg: #6B5A2A; }
.rg-c-masters { --rg: #4B5563; }
.rg-c-realty { --rg: #2E5E8C; }
.rg-c-kids { --rg: #9B4A7A; }
.rg-c-study { --rg: #3E5C9A; }
.rg-c-transfer { --rg: #2B5FA6; }
.rg-c-tech { --rg: #2F4F7F; }
.rg-c-sport { --rg: #A24535; }
.rg-c-home { --rg: #4A6B3A; }
.rg-c-shops { --rg: #8C4A5E; }
.rg-c-it { --rg: #3B4BA0; }

/* аудит 20.10: строка «цена · м² · район» в карточке ленты и в «Похожих» переносится до 2 строк, район не обрезается до «Бельг…» */
.scard .txt span { white-space: normal; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; }

/* gr/today-block 20.10: блок «Что сделать сегодня» в статьях путеводителя */
.gdt { margin: 18px 0; padding: 12px; border: 2px solid color-mix(in srgb, var(--accent) 55%, var(--line)); border-radius: 14px; background: var(--soft); min-width: 0; }
.gdt h2 { margin: 0 0 4px; }
.gdt > p { margin: 0 0 10px; }
.gdt-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 10px; align-items: start; }
.gdt-steps li { display: grid; gap: 4px; margin: 0; min-width: 0; }
.gdt-b { min-height: 48px; width: 100%; padding: 8px 14px; box-sizing: border-box; gap: 8px; font-size: 15px; font-weight: 700; line-height: 1.25; white-space: normal; overflow-wrap: anywhere; min-width: 0; }
.gdt-b svg { width: 20px; height: 20px; flex: none; }
.gdt-b span { min-width: 0; }
.gdt-h { padding: 0 4px; overflow-wrap: anywhere; }
.gdt .gdt-b.ghost { border: 2px solid var(--accent); background: var(--card); color: var(--accent); box-shadow: 0 1px 0 color-mix(in srgb, var(--accent) 25%, transparent); }
@media (max-width: 480px) { .gdt { margin: 10px 0; padding: 10px 12px; } .gdt h2 { font-size: 18px; } .gdt > p { margin-bottom: 8px; } .gdt-steps { gap: 8px; } .gdt-b { min-height: 46px; } .gdt-h { display: none; } }
/* convfix 20.10: тарифы подписки сгруппированы по плану */
.rb-pgrp + .rb-pgrp { margin-top: 10px; }
.rb-pgh { margin: 0 0 6px; display: grid; gap: 2px; }
.rb-pgh small { opacity: .75; font-size: 12px; line-height: 1.3; }
/* ux/site-home-noise 20.10: главная на телефоне — компактный герой, «Разделы» выше «Сегодня». .entity остаётся в HTML (текст для ИИ), только ужат */
@media (max-width: 600px) {
  main.home { display: flex; flex-direction: column; }
  main.home > * { order: 3; }
  main.home > .hero { order: 0; }
  main.home > #sections { order: 1; }
  main.home > .today { order: 2; }
  .hero { gap: 12px; padding: 20px 18px 16px; }
  .hero h1 { margin-bottom: 6px; }
  .hero .hero-sub { font-size: 16px; margin-bottom: 4px; }
  .hero .lead { font-size: 14px; margin-bottom: 8px; }
  .hero .entity { font-size: 12.5px; line-height: 1.35; opacity: .75; margin: 0 0 10px; }
  .hero-cta { margin-bottom: 12px; }
  .rate-card { padding: 12px 16px; gap: 6px; }
}

/* conv/exchange-guidecalc 20.10: компактный калькулятор хаба в статьях об обмене и на странице заказа обменника; итог — тот же .exh-quick, без своей рамки */
.exh-gc { margin: 12px 0; }
.exh-gc .exh-calc { margin: 0; }
.exh-gc .exh-quick { border: 0; background: transparent; padding: 8px 0 0; margin: 0; gap: 4px; }
.exh-gc.is-dirty .exh-quick { display: none; } /* итог для прежних значений не показываем: пересчёт — на хабе */
.exh-gc.ghost .exh-go { background: transparent; color: var(--accent); border: 1px solid var(--line); box-shadow: none; } /* на странице заказа главное действие — форма ниже */
.exh-gc .exh-go { margin-top: 8px; }

/* stat/bots-dc: действие человека без скриптов (наведение, нажатие, фокус) просит картинку /go/act; робот с облачного адреса её не просит */
body:hover::after,body:active::after,body:focus-within::after{content:"";position:fixed;left:0;top:0;width:1px;height:1px;opacity:0;pointer-events:none;background:url(/go/act)}

.sc-act{display:block;width:1px;height:1px;opacity:0;pointer-events:none}
/* conv/exchange-btn 21.10: главная кнопка профиля обменника — на всю ширину, крупнее; «Написать» под ней */
.xs-acts .xs-btn.xs-main { grid-column: 1 / -1; min-height: 56px; font-size: 17px; font-weight: 800; text-align: center; box-shadow: var(--shadow); }
@media (min-width: 720px) { .xs-acts .xs-btn.xs-main { min-width: 260px; } }
.xs-acts .xs-btn.xs-main { white-space: normal; line-height: 1.25; }
/* ===== «Селесте» этап 1 (brand/celeste-1, 21.10): сайт. Точки смены: --btn-primary-*, --mark-url + .wm ===== */
h1, h2, h3 { font-weight: 600; letter-spacing: -.01em; }
.wm { display: inline-flex; align-items: center; gap: .42em; font: 700 22px/1 var(--head); letter-spacing: -.03em; color: var(--ink); white-space: nowrap; }
.wm i { flex: none; display: block; width: 1.45em; height: 1.45em; border-radius: .34em; background: var(--mark-url) center / contain no-repeat; box-shadow: 0 0 0 1px color-mix(in srgb, var(--ink) 10%, transparent); }
@media (max-width: 420px) { .top .wm { font-size: 17px; } } /* шапка сайта: на 360 px рядом ещё тема, язык, «Мой бизнес», «Войти» — знак меньше, чтобы не было прокрутки вбок */
.btn { background: var(--biz, var(--btn-primary-bg)); color: var(--biz-btn, var(--btn-primary-ink)); min-height: 50px; padding: 0 22px; border-radius: 16px; font-weight: 700; letter-spacing: 0; }
.btn:hover { background: var(--biz, var(--btn-primary-hover)); color: var(--biz-btn, var(--btn-primary-ink)); }
.btn:active { background: var(--biz, var(--btn-primary-hover)); }
.btn.ghost { background: var(--soft); color: var(--ink); }
.btn.ghost:hover, .btn.ghost:active { background: color-mix(in srgb, var(--soft) 88%, var(--ink)); }
.btn.sm { min-height: 38px; padding: 0 16px; border-radius: 12px; }
.btn.light { background: var(--light-14); color: var(--white); }
.chip { background: var(--soft); border-color: transparent; }
.hero::before, .hero::after, .gcard::before { display: none; }
.hero { border-radius: 22px; }
.card { border-radius: var(--radius); box-shadow: none; }
.ptile { border-radius: 22px; box-shadow: none; }
.plbl .ic { border-radius: 50%; color: var(--photo-ink); }
.tile .ic { background: var(--soft); color: var(--ink); }
.my-n:not(:empty) { background: var(--ink); color: var(--bg); }
.appnav a:hover { color: var(--ink); }
:root[data-theme="dark"] .appnav a:hover { color: var(--ink); }
.btn.light:hover { background: var(--light-22); color: var(--white); }

/* путь brand/celeste-2 21.10: главная кнопка чёрная; в тёмной теме — светлая с чёрным текстом */

/* «Селесте» 21.10: главная сайта /<язык>/ в новом виде — светлая шапка без фото, светлая плашка курса с чёрной кнопкой, ряд разделов; тексты, H1 и разметка SEO прежние */
.hero { background: var(--card); color: var(--ink); box-shadow: inset 0 0 0 1px var(--line); }
.hero h1, .hero .hero-sub { color: var(--ink); }
.hero .lead, .hero .entity { color: var(--muted); opacity: 1; }
.kicker { background: var(--soft); box-shadow: none; color: var(--ink); }
.hero .tg-alt { color: var(--muted); text-decoration-color: var(--line); }
.hero .tg-alt:hover { color: var(--ink); }
.stats b { color: var(--ink); }
.stats span { color: var(--muted); }
.rate-card { background: var(--card); color: var(--ink); box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; }
.rate-card:hover { background: color-mix(in srgb, var(--soft) 88%, var(--ink)); }
.rc-k, .rc-v small, .rc-f { color: var(--muted); }
.rc-l { display: flex; align-items: center; justify-content: center; min-height: 50px; margin-top: 4px; border-radius: 16px; background: var(--btn-primary-bg); color: var(--btn-primary-ink); font: 600 15px/1 var(--text); }
.secrow { order: 0; display: flex; gap: 2px; overflow-x: auto; scrollbar-width: none; margin: 14px 0 4px; border-bottom: 1px solid var(--line); }
.secrow::-webkit-scrollbar { display: none; }
.secrow a { flex: none; display: flex; flex-direction: column; align-items: center; gap: 4px; min-width: 76px; padding: 8px 8px 10px; color: var(--muted); font: 500 12.5px/1.15 var(--text); white-space: nowrap; }
.secrow a:hover { text-decoration: none; color: var(--ink); }
.secrow .ic { width: auto; height: auto; background: none; color: inherit; }
.secrow .ic svg { width: 24px; height: 24px; stroke-width: 1.5; }
main.home > .secrow { order: 0; }

/* «Селесте» 21.10: .btn.sm этапа 1 (38 px) не сжимает «Обменять» на хабе обмена — не меньше 42 px, как было */
.exh-act .btn.exh-cta { min-height: 42px; }

/* №34: ссылки Google Maps в объявлении — кнопки не меньше 44 px */
.gm-links { gap: 8px; margin: 14px 0 4px; }
.gm-links a.chip { min-height: 44px; padding: 0 16px; font-size: 14px; font-weight: 600; }
.v-5m { display: flex; align-items: center; gap: 8px; margin: 14px 0 6px; padding: 10px 14px; border-radius: 12px; background: color-mix(in srgb, var(--ok) 12%, transparent); color: var(--ok); font: 700 15.5px/1.3 var(--text); }
.v-5m svg { flex: none; width: 20px; height: 20px; }
/* realty-redo 25.10: страница объекта — галерея первой лентой с прокруткой, под ней цена и кнопка «Написать» */
.lst-gal { display: flex; gap: 8px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding: 0 16px; -webkit-overflow-scrolling: touch; margin: 0 -16px 14px; padding: 0 16px; scrollbar-width: none; }
.lst-gal::-webkit-scrollbar { display: none; }
.lst-gal img { flex: none; width: min(86%, 560px); aspect-ratio: 4 / 3; object-fit: cover; border-radius: 16px; scroll-snap-align: start; display: block; }
.lst-gal img:only-child { width: 100%; }
.lst-gal ~ .price { font-size: 26px; }
.lst-gal ~ .facts { grid-template-columns: minmax(96px, 34%) 1fr; margin-top: 6px; }
.lst-gal ~ .seller-cta .btn { max-width: none; }
.lst-list .scard .txt b { font-size: 17px; }
@media (max-width: 719px) { .lst-list { display: flex; gap: 10px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding: 0 16px; margin: 0 -16px; padding: 0 16px 6px; scrollbar-width: none; } .lst-list::-webkit-scrollbar { display: none; } .lst-list .scard { flex: none; width: 78%; scroll-snap-align: start; margin: 0; } .lst-gal ~ .seller-cta .btn { line-height: 1.2; min-height: 48px; padding-top: 0; padding-bottom: 0; display: flex; align-items: center; justify-content: center; } }

/* гайд с живым курсом / блоком бизнеса: длинная подпись кнопки переносится, на 360 px без горизонтальной прокрутки */
.live-rate .btn, .gbiz .btn { white-space: normal; text-align: center; height: auto; padding-top: 8px; padding-bottom: 8px; max-width: 100%; }
.gbiz .card .pic { flex: 0 0 112px; width: 112px; }
.gbiz .card .pic img { width: 112px; height: 76px; object-fit: cover; border-radius: 10px; }
.gbiz .scard-ph img { max-height: 160px; object-fit: cover; }
/* 28.10 поиск объявлений на странице недвижимости (lib/realtyfilter.js): вид «Мой поиск» из Mini App (public/app.css .rs-*), карточки — как в приложении */
.rlf { scroll-margin-top: 72px; margin: 10px 0 14px; }
.rlf.rs-ms { background: var(--card); border-radius: 18px; padding: 0; box-shadow: var(--shadow); border: 1px solid var(--line); }
.rlf-sm { display: block; list-style: none; cursor: pointer; padding: 12px 14px; }
.rlf-sm::-webkit-details-marker { display: none; }
.rlf-sm:focus-visible { outline: 3px solid var(--focus); outline-offset: -3px; border-radius: 18px; }
.rs-t1 { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.rs-t1 b { font: 700 15px/1.3 var(--text); }
.rs-n { color: var(--muted); font-weight: 550; }
.rs-ed { font: 650 14px/1.3 var(--text); color: var(--accent); padding: 8px 2px; min-height: 24px; }
.rs-sum { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; margin-top: 2px; font: 400 13.5px/1.35 var(--text); color: var(--muted); }
.rlf-d[open] .rs-ed::after { content: " ▴"; } .rlf-d:not([open]) .rs-ed::after { content: " ▾"; }
.rlf-body { display: grid; gap: 14px; padding: 4px 14px 14px; border-top: 1px solid var(--line); padding-top: 14px; }
.rlf-g { display: grid; gap: 6px; min-width: 0; }
.rlf-h { font: 600 12px/1.3 var(--text); letter-spacing: .04em; text-transform: uppercase; color: var(--muted); }
.rlf-seg { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; padding: 3px; background: var(--soft); border-radius: 12px; }
.rlf-seg.rlf-5 { grid-template-columns: repeat(5, 1fr); }
.rlf-s { position: relative; display: block; min-width: 0; }
.rlf-s input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.rlf-s span { display: flex; align-items: center; justify-content: center; min-height: 40px; border-radius: 9px; font: 650 14px/1.15 var(--text); color: var(--muted); text-align: center; padding: 0 4px; }
.rlf-s input:checked + span { background: var(--card); color: var(--ink); box-shadow: 0 1px 3px color-mix(in srgb, var(--ink) 18%, transparent); }
.rlf-s input:focus-visible + span { outline: 3px solid var(--focus); outline-offset: 1px; }
.rlf-g select, .rlf-g input[type=text] { width: 100%; box-sizing: border-box; height: 44px; min-width: 0; padding: 0 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--soft); color: var(--ink); font: 650 16px var(--text); }
.rlf-g select:focus-visible, .rlf-g input:focus-visible { outline: 3px solid var(--focus); outline-offset: 1px; }
.rlf-foot { display: flex; align-items: center; gap: 12px; }
.rlf-reset { flex: none; font: 650 14px var(--text); color: var(--muted); padding: 10px 4px; min-height: 24px; }
.rlf-go { flex: 1; white-space: normal; min-height: 48px; height: auto; border: 0; border-radius: 24px; cursor: pointer; font: 700 15px/1.15 var(--text); padding: 6px 14px; text-align: center; }
.rlf-found { margin: 0 0 8px; }
.rlf-empty { padding: 16px; margin: 0 0 14px; background: var(--soft); border-radius: var(--radius); text-align: center; } .rlf-empty p { margin: 0 0 12px; }
@media (min-width: 720px) { .rlf-body { grid-template-columns: repeat(2, minmax(0, 1fr)); } .rlf-foot { grid-column: 1 / -1; } .rlf-go { flex: none; min-width: 240px; } }
/* карточки объявлений — как «Мой поиск» в приложении: крупное фото, цена, «На заезд», район жирным */
.lst-list.lst-col { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; overflow: visible; margin: 0; padding: 0; scroll-snap-type: none; }
@media (min-width: 720px) { .lst-list.lst-col { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.rs-c { background: var(--card); border-radius: 22px; overflow: hidden; border: 1px solid var(--line); box-shadow: var(--shadow); }
.rs-c .rs-ph { position: relative; display: block; height: 250px; overflow: hidden; background: var(--soft); width: auto; aspect-ratio: auto; }
.rs-c .sw-t { height: 100%; }
.rs-c .sw-t > img { height: 100%; aspect-ratio: auto; }
.rs-c .scard-no { display: grid; place-items: center; }
.rs-lb { display: block; padding: 16px 18px 18px; color: var(--ink); }
.rs-lb:hover { text-decoration: none; }
.rs-pr { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.rs-p { font: 700 26px/1.2 var(--head); letter-spacing: -.02em; }
.rs-pm { font: 400 13.5px/1.3 var(--text); color: var(--muted); margin-left: 3px; letter-spacing: 0; }
.rs-ars { font: 400 12.5px/1.3 var(--text); color: var(--muted); text-align: right; }
.rs-mv { margin-top: 12px; display: flex; align-items: center; justify-content: space-between; background: color-mix(in srgb, var(--accent) 10%, var(--card)); border-radius: 14px; padding: 11px 14px; }
.rs-mv span { font: 550 13px/1.3 var(--text); color: var(--accent); }
.rs-mv b { font: 700 20px/1.2 var(--text); color: var(--accent); }
.rs-fa { margin-top: 12px; font: 600 14px/1.35 var(--text); }
.rs-fa span { color: var(--muted); font-weight: 500; }
.rs-tt { display: block; margin-top: 6px; font: 400 13px/1.35 var(--text); color: var(--muted); }
main.exh-page > .exh-cards, main.exh-page > .exh-none { order: 1; } /* 28.10: весь ряд обменников сразу под калькулятором; абзацы (в DOM выше) визуально ниже списка */
@media (max-width: 719px) { .rs-c .rs-ph { height: 200px; } }

/* au share 30.10: ссылка из «Поделиться» (?s=sh) — главная кнопка сверху страницы */
.sh-land { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: 0 0 16px; padding: 12px; background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.sh-land .btn { flex: 1 1 200px; min-height: 44px; }
/* ui/share-card-bot 01.11: общее для карточек сайта: плашка с иконкой раздела (нет логотипа), «О себе» абзацами и списком */
.bs-ico { display: grid; place-items: center; flex: none; width: 48px; height: 48px; border-radius: 14px; background: color-mix(in srgb, var(--accent) 14%, var(--card)); font-size: 26px; line-height: 1; }
.desc-rich p { margin: 0 0 .75em; }
.desc-rich > :last-child { margin-bottom: 0; }
.desc-list { list-style: none; margin: 0 0 .9em; padding: 0; display: grid; gap: 6px; }
.desc-list li { position: relative; padding-left: 26px; }
.desc-list li::before { content: "\2713"; position: absolute; left: 0; top: 0; color: var(--accent); font-weight: 800; }
/* ui/share-card-bot 01.11, ВАРИАНТ C «Профиль как в приложении»: широкая обложка-градиент, круглая иконка на её краю, кнопки закреплены внизу экрана. Только вид. */
main.bs:not(.rs):not(.xs):has(> .bs-nohero) { --bs-max: 600px; margin-inline: auto; }
main.bs:not(.rs):not(.xs):has(> .bs-nohero) .bs-nohero { height: 120px; margin: 0 calc(var(--bs-pad) * -1); border-radius: 0 0 28px 28px; background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 55%, var(--soft)), color-mix(in srgb, var(--accent) 88%, var(--ink))); }
main.bs:not(.rs):not(.xs):has(> .bs-nohero) .head.bs-brand { display: flex; flex-direction: column; align-items: center; gap: 10px; margin: -46px 0 4px; text-align: center; position: relative; }
main.bs:not(.rs):not(.xs):has(> .bs-nohero) .head.bs-brand .bs-ico { width: 92px; height: 92px; border-radius: 50%; font-size: 44px; background: var(--card); border: 4px solid var(--bg); box-shadow: var(--shadow); }
main.bs:not(.rs):not(.xs):has(> .bs-nohero) .head.bs-brand h1 { white-space: normal; overflow: visible; text-overflow: clip; overflow-wrap: anywhere; text-wrap: balance; font: 800 clamp(23px, 6.4vw, 28px)/1.18 var(--title, var(--head)); letter-spacing: -.02em; }
main.bs:not(.rs):not(.xs):has(> .bs-nohero) .bs-meta { margin: 0 0 16px; font-size: 14px; text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
main.bs:not(.rs):not(.xs):has(> .bs-nohero) .bs-meta .bs-sp { display: none; }
main.bs:not(.rs):not(.xs):has(> .bs-nohero):has(.bs-trust ~ .bs-cta) .bs-meta + .bs-cta { display: none; }
main.bs:not(.rs):not(.xs):has(> .bs-nohero) .bs-trust ~ .bs-cta { position: sticky; bottom: 0; z-index: 5; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 16px calc(var(--bs-pad) * -1) 0; padding: 12px var(--bs-pad) max(16px, calc(12px + env(safe-area-inset-bottom))); background: color-mix(in srgb, var(--bg) 92%, transparent); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border-top: 1px solid var(--line); }
main.bs:not(.rs):not(.xs):has(> .bs-nohero) .bs-trust ~ .bs-cta { box-sizing: border-box; } main.bs:not(.rs):not(.xs):has(> .bs-nohero) .bs-trust ~ .bs-cta .btn { width: auto; min-width: 0; min-height: 50px; padding-inline: 8px; border-radius: 16px; font-size: 15px; white-space: nowrap; }
main.bs:not(.rs):not(.xs):has(> .bs-nohero) .bs-trust ~ .bs-cta .btn.ghost { background: var(--soft); color: var(--ink); border: 0; }
main.bs:not(.rs):not(.xs):has(> .bs-nohero) .bs-trust ~ .bs-cta .small { display: none; }
main.bs:not(.rs):not(.xs):has(> .bs-nohero) .bs-perks { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 0 0 16px; }
main.bs:not(.rs):not(.xs):has(> .bs-nohero) .bs-perks li { padding: 6px 12px 6px 30px; border-radius: 99px; font-size: 14px; }
main.bs:not(.rs):not(.xs):has(> .bs-nohero) .bs-perks li::before { left: 11px; top: 6px; }
main.bs:not(.rs):not(.xs):has(> .bs-nohero) .desc.desc-rich { font-size: 16px; line-height: 1.6; max-width: none; background: var(--card); border: 1px solid var(--line); border-radius: 20px; padding: 16px 16px 4px; margin: 0 0 14px; }
main.bs:not(.rs):not(.xs):has(> .bs-nohero) .desc.desc-rich > :last-child { margin-bottom: 12px; }
main.bs:not(.rs):not(.xs):has(> .bs-nohero) .bs-read { margin: -6px 0 14px; text-align: center; }
main.bs:not(.rs):not(.xs):has(> .bs-nohero) .bs-more { background: var(--card); border: 1px solid var(--line); border-radius: 20px; box-shadow: none; padding: 4px 16px 8px; margin: 0 0 14px; }
main.bs:not(.rs):not(.xs):has(> .bs-nohero) .bs-more[open] > summary { font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); pointer-events: none; }
main.bs:not(.rs):not(.xs):has(> .bs-nohero) .facts { display: grid; grid-template-columns: max-content 1fr; gap: 8px 18px; margin: 0 0 6px; padding: 0 0 4px; background: none; border: 0; box-shadow: none; }
main.bs:not(.rs):not(.xs):has(> .bs-nohero) .facts dt { color: var(--muted); } main.bs:not(.rs):not(.xs):has(> .bs-nohero) .facts dd { margin: 0; font-weight: 600; }
main.bs:not(.rs):not(.xs):has(> .bs-nohero) .bs-trust { background: none; border: 0; box-shadow: none; padding: 0; margin: 0 0 8px; text-align: center; }
main.bs:not(.rs):not(.xs):has(> .bs-nohero) .bs-trust p { justify-content: center; }
/* ui/card-c-polish 01.11: логотип/иконка — круг на токенах (не белый фон), «✓ Проверено» по центру чипом над меткой */
main.bs:not(.rs):not(.xs):has(> .bs-nohero) .head.bs-brand > img { width: 92px; height: 92px; padding: 0; border-radius: 50%; object-fit: cover; background: var(--card); border: 4px solid var(--bg); box-shadow: var(--shadow); }
main.bs:not(.rs):not(.xs):has(> .bs-nohero) .head.bs-brand > div { justify-content: center; text-align: center; gap: 8px; }
main.bs:not(.rs):not(.xs):has(> .bs-nohero) .head.bs-brand .bs-ok { display: inline-flex; align-items: center; padding: 4px 12px; border-radius: 99px; background: var(--soft); color: var(--accent); font-size: 13.5px; }
main.bs:not(.rs):not(.xs):has(> .bs-nohero) .head.bs-brand + .bs-meta { margin-top: 0; }
