/* Shared typography; legacy positioned blocks keep their explicit styles. */
/* Единица макета оригинала (vdrive74.ru, Tilda Zero Block): шапка и первый экран
   нарисованы на холстах 1200 / 960 / 640 / 320 и растягиваются пропорционально
   ширине окна (Tilda делает это через `zoom`). 1 --vd-u = 1px холста при его
   родной ширине; все размеры шапки и первого экрана пишутся в этих единицах.
   Считается от ширины `body` (единицы cqw), а не от `100vw`: в 100vw входит полоса
   прокрутки (~15–17px), и правый край шапки уезжал бы под неё — оригинал масштабирует
   от ширины окна без полосы. */
body { container-type: inline-size; }
body > * { --vd-u: calc(100cqw / 320); }
@media (min-width: 640px) { body > * { --vd-u: calc(100cqw / 640); } }
@media (min-width: 960px) { body > * { --vd-u: calc(100cqw / 960); } }
@media (min-width: 1200px) { body > * { --vd-u: calc(100cqw / 1200); } }
html { background: #0b0b0b; }
body { margin: 0; }
body.t-body {
  font-family: Onest, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
}
button, input, select, textarea { font-family: inherit; }
/* Карта Яндекса везде тёмная, как на главной (слово владельца 23.09.2026): в адресе
   виджета `theme=dark`, поверх — этот приглушающий фильтр. Один на все вставки. */
iframe[src*="map-widget"] { filter: grayscale(.9) saturate(.4) brightness(.85) contrast(1.15); }

.bl-wrap, .ar-wrap, .bk-wrap, .pr-wrap, .auth-wrap, .ok-wrap {
  box-sizing: border-box;
  line-height: 1.5;
}
.bl-wrap *, .ar-wrap *, .bk-wrap *, .pr-wrap *, .auth-wrap *, .ok-wrap * {
  box-sizing: border-box;
}
.bl-title, .ar-title, .bk-title, .pr-title {
  font-size: clamp(28px, 4vw, 36px);
  line-height: 1.2;
  overflow-wrap: anywhere;
}
.bl-card, .ar-body, .ar-service, .ok-card {
  min-width: 0;
  overflow-wrap: anywhere;
}
.bl-pagination, .ok-card .actions { flex-wrap: wrap; }
.pr-name, .pr-works span { min-width: 0; overflow-wrap: anywhere; }
.pr-note { color: #999; }
.auth-wrap { padding-top: 80px; }

@media (max-width: 600px) {
  .bl-wrap, .ar-wrap, .bk-wrap, .pr-wrap { padding: 32px 16px 48px; }
  .auth-card, .ok-card, .bk-form { padding: 24px 20px; }
  .pr-list { padding: 4px 16px; }
  .pr-row { align-items: flex-start; gap: 12px; }
  .pr-works li { flex-wrap: wrap; }
  .pr-works span { flex-basis: 60%; }
  .ok-wrap { padding: 40px 16px; }
}
