/* Only native public pages use this shell; positioned Tilda pages keep their layout. */
.vd-public-shell {
  min-height: 100vh;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  background: #050505;
  color: #fff;
  font: 400 16px/1.55 Onest, Arial, sans-serif;
}
.vd-public-shell *, .vd-public-shell *::before, .vd-public-shell *::after { box-sizing: border-box; }
.vd-public-content { flex: 1; min-width: 0; }
.vd-public-content > main { min-height: 0; background: #050505; }
.vd-public-content > :is(.bl-wrap, .ar-wrap, .pr-wrap, .ct-wrap, .bk-wrap, .ok-wrap, .us-list) {
  padding: clamp(40px, 5vw, 72px) 24px;
}
.vd-public-content :is(.bl-inner, .pr-inner, .vs-inner) { max-width: 1200px; }
.vd-public-content h1 {
  font: 400 clamp(36px, 4.2vw, 64px)/1.1 AkzidenzGrotesk, Arial, sans-serif;
  letter-spacing: normal;
  text-transform: uppercase;
  text-wrap: balance;
  overflow-wrap: anywhere;
}
.vd-public-content :is(.bl-title, .pr-title, .ct-title, .bk-title, .us-list__title) { margin-top: 0; }
.vd-public-content :is(.bl-sub, .bk-sub, .ct-sub, .pr-sub, .us-list__lead) { margin-bottom: 28px; line-height: 1.55; }
.vd-public-content :is(.bl-card, .ar-body, .ar-service, .bk-form, .ct-card, .ok-card, .us-list__card, .us-detail__cta, .vs-contact) {
  border-radius: 12px;
  border-color: #303030;
  background: #111;
}
/* Заголовок карточки работы в списке /articles — тем же прописным гротеском,
   что и в «Наших результатах» (ряд 135 наряда вида): одна и та же работа
   выглядела на главной и в списке по-разному. */
.vd-public-content .bl-card h3 { font: 400 24px/1.1 AkzidenzGrotesk, Arial, sans-serif; text-transform: uppercase; letter-spacing: 0; }
.vd-public-content .bl-card p { font-size: 15px; color: #b5b5b5; }
.vd-public-content .us-list__card { min-height: 0; padding: 24px; }
.vd-public-content .us-list__price { padding-top: 24px; font-size: 17px; }
.vd-public-content :is(.pr-cta, .ct-cta, .us-detail__button, .bk-form button, .ar-cta a, .ok-card a) {
  border-radius: 8px;
  min-height: 48px;
  font-size: 15px;
  font-weight: 500;
  box-shadow: none;
}
.vd-public-content :is(.bk-form input, .bk-form textarea) { font-size: 16px; border-color: #555; }
.vd-public-content .bk-form :is(input, textarea).error { border-color: #E21717; }
.vd-public-content :is(.ct-card h2, .ct-card .hint, .bl-pagination a, .bl-rss, .ok-card a.secondary) { color: #aaa; }
.vd-public-content .ok-wrap { align-items: flex-start; }
.vd-public-shell :is(a, button, input, textarea, summary):focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
@media (max-width: 600px) {
  .vd-public-content > :is(.bl-wrap, .ar-wrap, .pr-wrap, .ct-wrap, .bk-wrap, .ok-wrap, .us-list) { padding: 36px 16px 48px; }
  .vd-public-content :is(.bk-form, .ct-card, .ok-card) { padding: 24px 20px; }
  .vd-public-content .bl-card h3 { font-size: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .vd-public-content :is(.bl-card, .us-list__card):hover { transform: none; }
}
