/* =====================================================================
   WorldLine — site.css (дизайн-система v2). См. docs/04-DESIGN-SYSTEM.md
   ===================================================================== */

/* ---------- Шрифты: Golos Text (вариативный, раздаётся с нашего сервера) ---------- */
@font-face {
  font-family: "Golos Text";
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
  src: url("/assets/fonts/golos-text-cyrillic.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: "Golos Text";
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
  src: url("/assets/fonts/golos-text-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;
}

/* ---------- Токены ---------- */
:root {
  --c-brand: #7A1E2E;
  --c-brand-deep: #4A0F1B;
  --c-brand-ink: #2B0B12;
  --c-brand-soft: #F6E9EC;
  --c-brand-soft-2: #EBD3D9;
  --c-ink: #1F1A1B;
  --c-ink-2: #5F5557;
  --c-paper: #FFFFFF;
  --c-paper-2: #F4F1EC;
  --c-line: #E4DDD6;
  --c-ok: #1E7F4F;
  --c-ok-soft: #E6F4EC;
  --c-warn: #9A5B07;
  --c-warn-soft: #FBF1DF;
  --c-err: #B3261E;
  --c-err-soft: #FBE9E7;

  --r-sm: 8px;
  --r-md: 14px;
  --r-pill: 999px;
  --shadow-1: 0 1px 2px rgba(31, 26, 27, .06), 0 8px 24px rgba(74, 15, 27, .08);
  --shadow-2: 0 18px 48px rgba(74, 15, 27, .18);
  --font: "Golos Text", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --header-h: 72px;

  /* псевдонимы для cookie-consent.css (оригинальный файл, не изменяется) */
  --wl-primary: var(--c-brand);
  --wl-primary-dark: var(--c-brand-deep);
  --wl-primary-light: #93303F;
  --wl-cream: var(--c-paper-2);
  --wl-cream-light: var(--c-paper);
  --wl-beige: var(--c-line);
  --wl-text: var(--c-ink);
  --wl-text-muted: var(--c-ink-2);
  --wl-white: #fff;
  --wl-radius: var(--r-md);

  /* переопределения Bootstrap */
  --bs-body-font-family: var(--font);
  --bs-body-color: var(--c-ink);
  --bs-body-bg: var(--c-paper);
  --bs-link-color: var(--c-brand);
  --bs-link-hover-color: var(--c-brand-deep);
  --bs-link-color-rgb: 122, 30, 46;
  --bs-link-hover-color-rgb: 74, 15, 27;
  --bs-primary: var(--c-brand);
  --bs-primary-rgb: 122, 30, 46;
  --bs-border-color: var(--c-line);
  --bs-border-radius: var(--r-sm);
  --bs-focus-ring-color: rgba(122, 30, 46, .25);
  color-scheme: light;
}

/* ---------- Базовые стили ---------- */
html { scroll-padding-top: calc(var(--header-h) + 16px); -webkit-text-size-adjust: 100%; overflow-x: clip; }
@media (max-width: 991.98px) { .container > .row.g-5, .container > .row.g-4 { --bs-gutter-x: 1.5rem; } }
body {
  font-family: var(--font);
  font-size: 1rem;
  line-height: 1.6;
  color: var(--c-ink);
  background: var(--c-paper);
  -webkit-tap-highlight-color: transparent;
  text-rendering: optimizeLegibility;
}
@media (min-width: 768px) { body { font-size: 1.0625rem; } }
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5 { font-weight: 700; color: var(--c-ink); line-height: 1.2; letter-spacing: -0.01em; }
h1, .h1 { font-size: clamp(2.1rem, 1.3rem + 2.8vw, 3.5rem); font-weight: 800; letter-spacing: -0.02em; }
h2, .h2 { font-size: clamp(1.55rem, 1.1rem + 1.6vw, 2.3rem); font-weight: 750; }
h3, .h3 { font-size: 1.2rem; }
p { color: var(--c-ink-2); }
a { color: var(--c-brand); text-decoration-thickness: 1px; text-underline-offset: .15em; }
a:hover { color: var(--c-brand-deep); }
::selection { background: var(--c-brand); color: #fff; }
:focus-visible { outline: 3px solid rgba(122, 30, 46, .55); outline-offset: 3px; border-radius: 4px; }
img, svg { max-width: 100%; height: auto; }
.lead { font-size: clamp(1.05rem, .95rem + .5vw, 1.25rem); line-height: 1.55; }
.container { max-width: 1200px; }
.wl-muted { color: var(--c-ink-2); }
.tabular { font-variant-numeric: tabular-nums; }

/* ---------- Кнопки ---------- */
.btn {
  --bs-btn-font-weight: 600;
  --bs-btn-border-radius: var(--r-sm);
  --bs-btn-padding-x: 1.15rem;
  --bs-btn-padding-y: .65rem;
  --bs-btn-font-size: 1rem;
  min-height: 44px;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.btn-lg { --bs-btn-padding-x: 1.5rem; --bs-btn-padding-y: .85rem; --bs-btn-font-size: 1.05rem; min-height: 52px; }
.btn-sm { min-height: 36px; --bs-btn-padding-y: .4rem; }
.btn-primary {
  --bs-btn-bg: var(--c-brand); --bs-btn-border-color: var(--c-brand); --bs-btn-color: #fff;
  --bs-btn-hover-bg: var(--c-brand-deep); --bs-btn-hover-border-color: var(--c-brand-deep); --bs-btn-hover-color: #fff;
  --bs-btn-active-bg: var(--c-brand-ink); --bs-btn-active-border-color: var(--c-brand-ink);
  --bs-btn-disabled-bg: #B88A93; --bs-btn-disabled-border-color: #B88A93;
  box-shadow: 0 1px 0 rgba(0,0,0,.08);
}
.btn-primary:hover { box-shadow: 0 6px 16px rgba(122, 30, 46, .28); transform: translateY(-1px); }
.btn-outline-primary {
  --bs-btn-color: var(--c-brand); --bs-btn-border-color: var(--c-brand-soft-2);
  --bs-btn-hover-bg: var(--c-brand-soft); --bs-btn-hover-color: var(--c-brand-deep); --bs-btn-hover-border-color: var(--c-brand);
  --bs-btn-active-bg: var(--c-brand-soft-2); --bs-btn-active-color: var(--c-brand-deep); --bs-btn-active-border-color: var(--c-brand);
}
.btn-light-wl { --bs-btn-bg: #fff; --bs-btn-border-color: #fff; --bs-btn-color: var(--c-brand-deep); --bs-btn-hover-bg: var(--c-paper-2); --bs-btn-hover-border-color: var(--c-paper-2); --bs-btn-hover-color: var(--c-brand-ink); --bs-btn-active-bg: var(--c-line); --bs-btn-active-color: var(--c-brand-ink); }
.btn-outline-light-wl { --bs-btn-color: #fff; --bs-btn-border-color: rgba(255,255,255,.55); --bs-btn-hover-bg: rgba(255,255,255,.12); --bs-btn-hover-color: #fff; --bs-btn-hover-border-color: #fff; --bs-btn-active-bg: rgba(255,255,255,.2); --bs-btn-active-color: #fff; }

/* ---------- Шапка ---------- */
.wl-header {
  position: sticky; top: 0; z-index: 1030;
  background: rgba(255,255,255,.92);
  -webkit-backdrop-filter: saturate(180%) blur(10px); backdrop-filter: saturate(180%) blur(10px);
  border-bottom: 1px solid var(--c-line);
  min-height: var(--header-h);
  transition: box-shadow .2s ease;
  padding-top: .5rem; padding-bottom: .5rem;
}
.wl-header.is-scrolled { box-shadow: 0 8px 24px rgba(31, 26, 27, .08); }
.wl-logo { display: inline-flex; align-items: center; min-height: 44px; gap: .6rem; color: var(--c-ink); text-decoration: none; font-weight: 800; font-size: 1.3rem; letter-spacing: -0.01em; }
.wl-logo:hover { color: var(--c-brand); }
.wl-logo__mark { width: 38px; height: 38px; flex: 0 0 auto; color: var(--c-brand); }
.wl-header .nav-link { color: var(--c-ink); font-weight: 500; padding: .55rem .75rem; position: relative; }
.wl-header .nav-link::after { content: ""; position: absolute; left: .75rem; right: .75rem; bottom: .25rem; height: 2px; background: var(--c-brand); transform: scaleX(0); transform-origin: left; transition: transform .18s ease; }
.wl-header .nav-link:hover::after, .wl-header .nav-link:focus-visible::after { transform: scaleX(1); }
.wl-header .nav-link:hover { color: var(--c-brand); }
.wl-header .navbar-toggler { border: 1px solid var(--c-line); border-radius: var(--r-sm); padding: .45rem .6rem; min-width: 44px; min-height: 44px; }
.wl-header .navbar-toggler:focus { box-shadow: 0 0 0 .2rem rgba(122, 30, 46, .2); }
.wl-header .navbar-toggler-icon { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='%231F1A1B' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2.2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); }
@media (max-width: 991.98px) {
  .wl-header .navbar-collapse { border-top: 1px solid var(--c-line); margin-top: .75rem; padding: .75rem 0 .5rem; }
  .wl-header .nav-link { padding: .7rem .25rem; font-size: 1.05rem; }
  .wl-header .nav-link::after { display: none; }
  .wl-header .btn { width: 100%; }
}

/* ---------- Секции ---------- */
.wl-section { padding: 72px 0; }
.wl-section--alt { background: var(--c-paper-2); }
.wl-section--brand { background: linear-gradient(135deg, var(--c-brand) 0%, var(--c-brand-deep) 100%); color: rgba(255,255,255,.88); }
.wl-section--brand h2, .wl-section--brand h3, .wl-section--brand .wl-title { color: #fff; }
.wl-section--brand p { color: rgba(255,255,255,.82); }
.wl-section--tight { padding: 48px 0; }
@media (max-width: 767.98px) { .wl-section { padding: 48px 0; } .wl-section--tight { padding: 36px 0; } }

.wl-eyebrow { display: inline-flex; align-items: center; gap: .6rem; color: var(--c-brand); font-weight: 600; font-size: .95rem; margin-bottom: .75rem; }
.wl-eyebrow::before { content: ""; width: 22px; height: 2px; background: currentColor; border-radius: 2px; }
.wl-section--brand .wl-eyebrow { color: rgba(255,255,255,.8); }
.wl-title { margin-bottom: .75rem; }
.wl-subtitle { font-size: clamp(1rem, .95rem + .3vw, 1.15rem); max-width: 68ch; color: var(--c-ink-2); }
.text-center .wl-subtitle { margin-left: auto; margin-right: auto; }
.wl-section-head { margin-bottom: 2.5rem; }

/* ---------- Первый экран (hero) ---------- */
.wl-hero {
  position: relative; overflow: hidden;
  background: radial-gradient(1100px 520px at 85% -10%, rgba(255,255,255,.14), transparent 60%),
              linear-gradient(135deg, #8A2436 0%, var(--c-brand) 45%, var(--c-brand-deep) 100%);
  color: #fff; padding: 88px 0;
}
.wl-hero::after { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .18;
  background-image: radial-gradient(rgba(255,255,255,.35) .6px, transparent .6px); background-size: 7px 7px; }
.wl-hero > .container { position: relative; z-index: 1; }
.wl-hero h1, .wl-hero h2 { color: #fff; }
.wl-hero p { color: rgba(255,255,255,.86); }
.wl-hero__badge { display: inline-block; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.3); color: #fff; border-radius: var(--r-pill); padding: .4rem .9rem; font-size: .9rem; font-weight: 600; margin-bottom: 1.25rem; }
.wl-hero__art { width: 100%; max-width: 440px; height: auto; display: block; margin: 0 auto; filter: drop-shadow(0 24px 40px rgba(0,0,0,.28)); }
.wl-hero--page { padding: 56px 0 48px; }
.wl-hero--page h1 { margin-bottom: .5rem; }
@media (max-width: 991.98px) { .wl-hero { padding: 56px 0; } .wl-hero__art { max-width: 320px; margin-top: 1rem; } }
@media (max-width: 575.98px) { .wl-hero { padding: 44px 0; } }

.wl-breadcrumb { --bs-breadcrumb-divider-color: rgba(255,255,255,.55); --bs-breadcrumb-divider: "/"; margin-bottom: 1rem; font-size: .92rem; }
.wl-breadcrumb a { color: rgba(255,255,255,.8); text-decoration: none; }
.wl-breadcrumb a:hover { color: #fff; text-decoration: underline; }
.wl-breadcrumb .active { color: #fff; }

/* ---------- Преимущества ---------- */
.wl-feature { padding: 0 .25rem; }
.wl-feature__icon { width: 56px; height: 56px; border-radius: 50%; background: var(--c-brand); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 1.5rem; margin-bottom: 1rem; }
.wl-feature h3 { font-size: 1.1rem; margin-bottom: .4rem; }
.wl-feature p { margin: 0; font-size: .98rem; }

/* ---------- Список услуг ---------- */
.wl-service { height: 100%; border-top: 1px solid var(--c-line); padding: 1.35rem 0 .25rem; display: flex; flex-direction: column; transition: border-color .2s ease; }
.wl-service:hover { border-top-color: var(--c-brand); }
.wl-service__icon { width: 44px; height: 44px; border-radius: 10px; background: var(--c-brand-soft); color: var(--c-brand); display: inline-flex; align-items: center; justify-content: center; font-size: 1.3rem; margin-bottom: .9rem; }
.wl-service h3 { font-size: 1.12rem; margin-bottom: .4rem; }
.wl-service p { font-size: .96rem; margin-bottom: .75rem; }
.wl-more { font-weight: 600; text-decoration: none; margin-top: auto; display: inline-flex; align-items: center; gap: .35rem; }
.wl-more:hover { text-decoration: underline; }

/* ---------- Чек-лист и предложение ---------- */
.wl-checklist { list-style: none; padding: 0; margin: 0 0 1rem; }
.wl-checklist li { position: relative; padding-left: 1.9rem; margin-bottom: .6rem; color: var(--c-ink-2); }
.wl-checklist li::before { content: "\F26E"; font-family: "bootstrap-icons"; position: absolute; left: 0; top: .05rem; color: var(--c-brand); font-size: 1.1rem; }
.wl-section--brand .wl-checklist li { color: rgba(255,255,255,.88); }
.wl-section--brand .wl-checklist li::before { color: #fff; }
.wl-offer { background: #fff; color: var(--c-ink); border-radius: var(--r-md); padding: clamp(28px, 4vw, 48px); box-shadow: var(--shadow-2); }
.wl-offer p { color: var(--c-ink-2); }
.wl-offer .wl-price-value { color: var(--c-brand); }

/* ---------- Цены ---------- */
.wl-price-card { height: 100%; background: #fff; border: 1px solid var(--c-line); border-top: 4px solid var(--c-brand); border-radius: var(--r-md); padding: 32px 28px; transition: box-shadow .2s ease, transform .2s ease; }
.wl-price-card:hover { box-shadow: var(--shadow-1); transform: translateY(-2px); }
.wl-price-card .wl-service__icon { margin-left: auto; margin-right: auto; width: 52px; height: 52px; font-size: 1.45rem; }
.wl-price-value { font-size: clamp(1.8rem, 1.3rem + 1.6vw, 2.4rem); font-weight: 800; color: var(--c-brand); font-variant-numeric: tabular-nums; letter-spacing: -0.02em; line-height: 1.15; }
.wl-price-unit { color: var(--c-ink-2); font-size: .95rem; }
.wl-note { background: var(--c-brand-soft); border-left: 4px solid var(--c-brand); border-radius: 0 var(--r-sm) var(--r-sm) 0; padding: 1rem 1.25rem; color: var(--c-ink); }
.wl-note--warn { background: var(--c-warn-soft); border-left-color: var(--c-warn); }
.wl-panel { background: #fff; border: 1px solid var(--c-line); border-radius: var(--r-md); padding: clamp(24px, 4vw, 44px); }
.wl-panel--pay img { max-width: 520px; width: 100%; }

.wl-table { --bs-table-bg: transparent; margin: 0; font-variant-numeric: tabular-nums; }
.wl-table thead th { background: var(--c-brand-deep); color: #fff; font-weight: 600; border: 0; }
@media (max-width: 767.98px) { .wl-table th, .wl-table td { padding: .6rem .6rem; font-size: .93rem; } }
@media (min-width: 768px) { .wl-table thead th { position: sticky; top: var(--header-h); z-index: 1; } }
.wl-table th, .wl-table td { padding: .75rem 1rem; border-color: var(--c-line); }
.wl-table tbody tr:nth-child(even) { background: var(--c-paper-2); }
.wl-table tbody tr:hover { background: var(--c-brand-soft); }
.wl-table caption { caption-side: top; color: var(--c-ink-2); font-size: .95rem; padding: .5rem 1rem 1rem; }
.wl-table-wrap { background: #fff; border: 1px solid var(--c-line); border-radius: var(--r-md); overflow: hidden; }
.wl-table-wrap .table-responsive { border-radius: var(--r-md); }
.wl-pills { gap: .5rem; }
.wl-pills .nav-link { color: var(--c-ink); border: 1px solid var(--c-line); border-radius: var(--r-pill); padding: .55rem 1.1rem; font-weight: 600; min-height: 44px; }
.wl-pills .nav-link.active { background: var(--c-brand); border-color: var(--c-brand); color: #fff; }
.wl-filter { max-width: 420px; margin: 0 auto 1rem; position: relative; }
.wl-filter .form-control { padding-left: 2.6rem; }
.wl-filter .bi { position: absolute; left: .95rem; top: 50%; transform: translateY(-50%); color: var(--c-ink-2); pointer-events: none; }
.wl-table tr.is-hidden { display: none; }

/* ---------- Формы ---------- */
.form-label { font-weight: 600; color: var(--c-ink); margin-bottom: .35rem; }
.form-control, .form-select { border-color: var(--c-line); border-radius: var(--r-sm); min-height: 48px; padding: .6rem .9rem; color: var(--c-ink); background-color: #fff; }
.form-control::placeholder { color: #9A9093; }
.form-control:focus, .form-select:focus { border-color: var(--c-brand); box-shadow: 0 0 0 .2rem rgba(122, 30, 46, .15); }
.form-control-lg, .form-select-lg { font-size: 1rem; }
.form-text { color: var(--c-ink-2); }
.form-check-input { width: 1.2em; height: 1.2em; border-color: #B8AFAA; margin-top: .2em; }
.form-check-input:checked { background-color: var(--c-brand); border-color: var(--c-brand); }
.form-check-input:focus { border-color: var(--c-brand); box-shadow: 0 0 0 .2rem rgba(122, 30, 46, .15); }
.wl-calc { background: #fff; border: 1px solid var(--c-line); border-radius: 20px; padding: clamp(24px, 4vw, 44px); box-shadow: var(--shadow-1); }
.form-state { display: none; border-radius: var(--r-sm); }
.form-state.is-visible { display: block; }
.alert-info-wl { background: var(--c-brand-soft); border: 1px solid var(--c-brand-soft-2); color: var(--c-ink); }
.alert-success { background: var(--c-ok-soft); border-color: #BFE3CC; color: #124D30; }
.alert-warning { background: var(--c-warn-soft); border-color: #EBD5A8; color: #5E3A05; }
.alert-danger { background: var(--c-err-soft); border-color: #F0C2BE; color: #7A1A14; }
.alert { border-radius: var(--r-sm); }
.wl-calc.is-sending .btn[type="submit"] { opacity: .6; pointer-events: none; }
.wl-field-error { color: var(--c-err); font-size: .9rem; margin-top: .3rem; }

/* ---------- Этапы работы ---------- */
.wl-step { display: flex; gap: 1rem; }
.wl-step__num { width: 46px; height: 46px; border-radius: 50%; background: var(--c-brand); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 700; flex: 0 0 auto; font-variant-numeric: tabular-nums; }
.wl-step h3 { font-size: 1.1rem; margin-bottom: .3rem; }
.wl-step p { margin: 0; font-size: .97rem; }

/* ---------- Аккордеон FAQ ---------- */
.wl-faq .accordion-item { background: transparent; border: 0; border-bottom: 1px solid var(--c-line); border-radius: 0 !important; }
.wl-faq .accordion-item:first-child { border-top: 1px solid var(--c-line); }
.wl-faq .accordion-button { background: transparent; color: var(--c-ink); font-weight: 600; font-size: 1.05rem; padding: 1.1rem .25rem; box-shadow: none; gap: 1rem; }
.wl-faq .accordion-button:not(.collapsed) { color: var(--c-brand); }
.wl-faq .accordion-button::after { background-image: none; content: "+"; width: auto; height: auto; font-size: 1.5rem; line-height: 1; color: var(--c-brand); font-weight: 400; transition: transform .2s ease; }
.wl-faq .accordion-button:not(.collapsed)::after { content: "−"; }
.wl-faq .accordion-button:focus { box-shadow: 0 0 0 .2rem rgba(122, 30, 46, .15); border-radius: 4px; }
.wl-faq .accordion-body { padding: 0 .25rem 1.25rem; color: var(--c-ink-2); max-width: 76ch; }
.wl-faq .accordion-body p { margin: 0; }

/* ---------- Призыв к действию (CTA) ---------- */
.wl-cta { background: radial-gradient(800px 360px at 10% 0%, rgba(255,255,255,.14), transparent 60%), linear-gradient(135deg, var(--c-brand) 0%, var(--c-brand-deep) 100%); border-radius: 20px; color: #fff; padding: clamp(36px, 6vw, 72px) clamp(20px, 5vw, 56px); }
.wl-cta h2, .wl-cta h3 { color: #fff; }
.wl-cta p { color: rgba(255,255,255,.85); }
.wl-cta--inline { padding: clamp(24px, 4vw, 40px); border-radius: var(--r-md); }

/* ---------- Контакты ---------- */
.wl-contact { height: 100%; background: var(--c-paper-2); border-radius: var(--r-md); padding: 26px 24px; }
.wl-contact__label { color: var(--c-brand); font-weight: 700; margin-bottom: .4rem; display: flex; align-items: center; gap: .5rem; }
.wl-contact a { color: var(--c-ink); text-decoration: none; }
.wl-contact a:hover { color: var(--c-brand); text-decoration: underline; }

/* ---------- Подвал ---------- */
.wl-footer { background: var(--c-brand-ink); color: rgba(255,255,255,.74); padding: 64px 0 28px; }
.wl-footer h4, .wl-footer h6 { color: #fff; }
.wl-footer h6 { font-size: .85rem; letter-spacing: .04em; font-weight: 700; margin-bottom: 1rem; }
.wl-footer a { color: rgba(255,255,255,.78); text-decoration: none; }
.wl-footer a:hover, .wl-footer a:focus { color: #fff; text-decoration: underline; }
.wl-footer p { color: rgba(255,255,255,.74); }
.wl-footer .wl-logo { color: #fff; }
.wl-footer .wl-logo__mark { color: #fff; }
.wl-requisites { font-size: .92rem; }
.wl-requisites dt { color: rgba(255,255,255,.55); font-weight: 500; }
.wl-requisites dd { color: rgba(255,255,255,.88); margin-bottom: .4rem; }
.wl-footer__banner { margin-top: 1.5rem; }
.wl-footer__banner img { width: 100%; border-radius: var(--r-sm); }
.wl-footer__bottom { border-top: 1px solid rgba(255,255,255,.14); margin-top: 36px; padding-top: 20px; font-size: .9rem; }
.wl-footer__bottom a { cursor: pointer; }

/* ---------- Контентные страницы ---------- */
.wl-page-head { padding: 48px 0 32px; border-bottom: 1px solid var(--c-line); background: var(--c-paper-2); }
.wl-page-head h1 { margin-bottom: .6rem; max-width: 24ch; }
.wl-page-head .lead { max-width: 68ch; margin: 0; }
.wl-page-head .wl-breadcrumb { --bs-breadcrumb-divider-color: var(--c-ink-2); }
.wl-page-head .wl-breadcrumb a { color: var(--c-ink-2); }
.wl-page-head .wl-breadcrumb a:hover { color: var(--c-brand); }
.wl-page-head .wl-breadcrumb .active { color: var(--c-ink); }
.wl-meta { font-size: .9rem; color: var(--c-ink-2); margin-top: .75rem; }
.wl-cover { border-radius: var(--r-md); overflow: hidden; margin-bottom: 2rem; background: var(--c-paper-2); aspect-ratio: 16 / 9; }
.wl-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.wl-article { max-width: 76ch; }
.wl-article > p, .wl-article li { color: var(--c-ink); }
.wl-article h2 { margin-top: 2.25rem; margin-bottom: .9rem; font-size: clamp(1.4rem, 1.1rem + 1vw, 1.85rem); }
.wl-article h3 { margin-top: 1.6rem; margin-bottom: .6rem; font-size: 1.2rem; }
.wl-article p { margin-bottom: 1rem; }
.wl-article ul, .wl-article ol { padding-left: 1.4rem; margin-bottom: 1.1rem; }
.wl-article li { margin-bottom: .35rem; }
.wl-article li::marker { color: var(--c-brand); }
.wl-article table { width: 100%; margin: 1.25rem 0 1.5rem; border-collapse: collapse; font-size: .97rem; font-variant-numeric: tabular-nums; }
.wl-article th, .wl-article td { border: 1px solid var(--c-line); padding: .6rem .8rem; text-align: left; vertical-align: top; }
.wl-article th { background: var(--c-paper-2); font-weight: 600; }
.wl-article blockquote { border-left: 4px solid var(--c-brand); background: var(--c-brand-soft); padding: 1rem 1.25rem; border-radius: 0 var(--r-sm) var(--r-sm) 0; margin: 1.25rem 0; color: var(--c-ink); }
.wl-article blockquote p:last-child { margin: 0; }
.wl-article img { border-radius: var(--r-sm); }
.wl-article hr { border-color: var(--c-line); opacity: 1; margin: 2rem 0; }
.wl-article .table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.wl-aside { position: sticky; top: calc(var(--header-h) + 24px); }
.wl-toc { background: var(--c-paper-2); border-radius: var(--r-md); padding: 1.25rem 1.4rem; font-size: .95rem; }
.wl-toc__title { font-weight: 700; margin-bottom: .6rem; }
.wl-toc ol { padding-left: 1.2rem; margin: 0; }
.wl-toc li { margin-bottom: .35rem; }
.wl-toc a { color: var(--c-ink-2); text-decoration: none; }
.wl-toc a:hover { color: var(--c-brand); text-decoration: underline; }
.wl-aside .wl-cta--inline { margin-top: 1.25rem; }
.wl-aside .wl-cta--inline h3 { font-size: 1.15rem; }
.wl-related { border-top: 1px solid var(--c-line); padding-top: 2rem; margin-top: 2.5rem; }
.wl-related h2 { font-size: 1.35rem; margin-bottom: 1rem; }
.wl-related ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .5rem .75rem; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.wl-related a { display: block; padding: .8rem 1rem; border: 1px solid var(--c-line); border-radius: var(--r-sm); text-decoration: none; color: var(--c-ink); font-weight: 500; transition: border-color .15s ease, background-color .15s ease; }
.wl-related a:hover { border-color: var(--c-brand); background: var(--c-brand-soft); color: var(--c-brand-deep); }
.wl-related a span { display: block; font-size: .82rem; color: var(--c-ink-2); font-weight: 400; margin-top: .15rem; }
.wl-pricebox { background: var(--c-paper-2); border-radius: var(--r-md); padding: 1.25rem 1.4rem; margin: 1.5rem 0; }
.wl-pricebox h2, .wl-pricebox h3 { margin-top: 0; font-size: 1.25rem; }
.wl-pricebox table { margin: .75rem 0 .5rem; background: #fff; }
.wl-pricebox p:last-child { margin: 0; font-size: .92rem; }

/* хабы разделов */
.wl-hub-grid { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.wl-hub-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--c-line); border-radius: var(--r-md); overflow: hidden; color: var(--c-ink); text-decoration: none; transition: box-shadow .2s ease, transform .2s ease, border-color .2s ease; }
.wl-hub-card:hover { box-shadow: var(--shadow-1); transform: translateY(-2px); border-color: var(--c-brand-soft-2); color: var(--c-ink); }
.wl-hub-card__img { aspect-ratio: 16 / 9; background: var(--c-paper-2); display: block; }
.wl-hub-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.wl-hub-card__body { padding: 1.1rem 1.2rem 1.25rem; display: flex; flex-direction: column; gap: .4rem; }
.wl-hub-card h3 { font-size: 1.08rem; margin: 0; }
.wl-hub-card p { margin: 0; font-size: .93rem; color: var(--c-ink-2); }
.wl-hub-card .wl-more { margin-top: .5rem; }
.wl-hub-list { columns: 2; column-gap: 2rem; }
@media (min-width: 992px) { .wl-hub-list { columns: 3; } }
.wl-hub-list a { display: inline-block; padding: .3rem 0; break-inside: avoid; text-decoration: none; color: var(--c-ink); }
.wl-hub-list a:hover { color: var(--c-brand); text-decoration: underline; }

/* страницы политик */
.wl-document h2 { font-size: clamp(1.25rem, 1rem + 1vw, 1.6rem); margin-top: 2rem; }
.wl-document h3 { font-size: 1.1rem; margin-top: 1.5rem; }
.wl-document p, .wl-document li { color: var(--c-ink); }
.wl-document { max-width: 80ch; overflow-wrap: break-word; }
.wl-article, .wl-related a, .wl-contact, .wl-footer { overflow-wrap: break-word; }
.wl-article table, .wl-article th, .wl-article td { overflow-wrap: normal; }
.wl-article .table-scroll { margin: 1.25rem 0 1.5rem; overflow-x: auto; -webkit-overflow-scrolling: touch;
  background: linear-gradient(90deg, #fff 30%, rgba(255,255,255,0)), linear-gradient(90deg, rgba(255,255,255,0), #fff 70%) 100% 0, radial-gradient(farthest-side at 0 50%, rgba(31,26,27,.18), transparent), radial-gradient(farthest-side at 100% 50%, rgba(31,26,27,.18), transparent) 100% 0;
  background-repeat: no-repeat; background-size: 48px 100%, 48px 100%, 16px 100%, 16px 100%; background-attachment: local, local, scroll, scroll; }
.wl-pricebox .table-scroll { background-color: transparent; }
.wl-article .table-scroll table { margin: 0; min-width: 100%; }
.wl-document__approved { color: var(--c-ink-2); font-size: .95rem; }

/* 404 */
.wl-404 { padding: 96px 0; text-align: center; }
.wl-404 svg { width: 160px; height: 160px; color: var(--c-brand); margin-bottom: 1.5rem; }

/* ---------- Проверка ползунком (модальное окно защиты от ботов) ---------- */
html.sc-open { overflow: hidden; }
.sc-check { position: fixed; inset: 0; z-index: 1100; display: flex; padding: 20px; overflow-y: auto; background: rgba(31, 26, 27, .62); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); animation: sc-fade .2s ease; }
.sc-check[hidden] { display: none; }
.sc-check-box { position: relative; width: 100%; max-width: 440px; margin: auto; padding: 32px 24px 24px; border-radius: 20px; background: #fff; box-shadow: var(--shadow-2); text-align: center; }
.sc-check-box h2 { font-size: 1.3rem; margin: 0 32px 8px; }
.sc-check-text { color: var(--c-ink-2); margin: 0 0 20px; }
.sc-check-close { position: absolute; top: 10px; right: 10px; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 12px; background: transparent; color: var(--c-ink-2); font: 400 1.9rem/1 var(--font); cursor: pointer; }
.sc-check-close:hover { background: var(--c-paper-2); color: var(--c-ink); }
.sc-slider { position: relative; height: 62px; border-radius: 16px; background: var(--c-paper-2); border: 1px solid var(--c-line); cursor: grab; touch-action: none; -webkit-user-select: none; user-select: none; -webkit-user-drag: none; -webkit-touch-callout: none; }
.sc-slider-fill { position: absolute; left: 0; top: 0; bottom: 0; width: 0; border-radius: 15px; background: var(--c-brand-soft-2); }
.sc-slider-label { position: absolute; left: 68px; right: 12px; top: 50%; transform: translateY(-50%); font-weight: 600; font-size: .98rem; color: var(--c-ink-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; pointer-events: none; }
.sc-slider-handle { position: absolute; left: 4px; top: 4px; bottom: 4px; width: 60px; display: flex; align-items: center; justify-content: center; border-radius: 12px; background: linear-gradient(135deg, #93303F 0%, var(--c-brand) 60%, var(--c-brand-deep) 100%); box-shadow: 0 6px 18px rgba(122, 30, 46, .45); color: #fff; cursor: grab; touch-action: none; }
.sc-slider-handle:focus-visible { outline-offset: 2px; }
.sc-slider-handle svg { width: 26px; height: 26px; pointer-events: none; }
.sc-slider.is-drag, .sc-slider.is-drag .sc-slider-handle { cursor: grabbing; }
.sc-slider:not(.is-ready) .sc-slider-handle { opacity: .55; cursor: progress; } /* токен ещё не получен */
.sc-slider.is-done { cursor: default; }
.sc-slider.is-back .sc-slider-handle, .sc-slider.is-back .sc-slider-fill { transition: transform .25s ease, width .25s ease; }
.sc-slider-handle .ok, .sc-slider.is-done .sc-slider-handle .go { display: none; }
.sc-slider.is-done .sc-slider-handle .ok { display: block; }
.sc-slider.is-done .sc-slider-handle { background: var(--c-ok); box-shadow: 0 6px 18px rgba(30, 127, 79, .4); cursor: default; }
.sc-slider.is-done .sc-slider-fill { background: var(--c-ok-soft); }
.sc-check-status { min-height: 1.5em; margin: 14px 0 0; font-weight: 600; color: var(--c-ok); }
.sc-check-status.is-error { color: var(--c-err); }
@keyframes sc-fade { from { opacity: 0; } }

/* ---------- Разное ---------- */
.wl-maxw-560 { max-width: 560px; } .wl-maxw-720 { max-width: 720px; } .wl-maxw-860 { max-width: 860px; }
.wl-article .text-center { text-align: center; } .wl-article .text-end { text-align: right; }
.wl-badge { display: inline-block; background: var(--c-brand-soft); color: var(--c-brand-deep); border-radius: var(--r-pill); padding: .25rem .7rem; font-size: .85rem; font-weight: 600; }
.wl-skip { position: absolute; left: -9999px; top: 0; background: #fff; color: var(--c-brand); padding: .75rem 1rem; z-index: 2000; border-radius: 0 0 var(--r-sm) 0; }
.wl-skip:focus { left: 0; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}
@media print {
  .wl-header, .wl-footer, .wl-cta, .sc-check, .cc-banner, .wl-aside { display: none !important; }
  .wl-hero { background: none; color: #000; padding: 0; }
  .wl-hero h1, .wl-hero p { color: #000; }
}
