/* ==============================================================================

   prava-abcd.sbs — Основные стили

   Дизайн: Стиль российской автошколы / аккредитованного сервиса

   Светлые тона, архитектурная строгость, БЕЗ ЗАОКРУГЛЕНИЙ (border-radius: 0), БЕЗ ЭМОДЗИ

   ============================================================================== */



:root {

    --bg-page: #f8fafc;

    --bg-surface: #ffffff;

    --bg-subtle: #f1f5f9;

    --bg-card: #ffffff;

    --bg-dark: #0f172a;

    --bg-darker: #020617;



    --text-main: #0f172a;

    --text-muted: #475569;

    --text-light: #94a3b8;

    --text-inverse: #ffffff;



    --border-color: #cbd5e1;

    --border-subtle: #e2e8f0;

    --border-dark: #334155;

    --border-primary: #1d4ed8;



    --primary: #1d4ed8;

    --primary-hover: #1e40af;

    --primary-active: #172554;

    --primary-light: #eff6ff;



    --accent-amber: #b45309;

    --accent-gold: #d97706;

    --accent-green: #059669;

    --accent-red: #dc2626;



    --font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

    --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;



    --max-w: 1240px;

    --container-pad: 20px;

    --header-h: 70px;

    --topbar-h: 38px;

    --transition-fast: 0.15s ease-in-out;

}



/* 1. СТРОГИЙ СБРОС ЗАОКРУГЛЕНИЙ ДЛЯ ВСЕХ ЭЛЕМЕНТОВ */

*, *::before, *::after {

    box-sizing: border-box;

    margin: 0;

    padding: 0;

    border-radius: 0 !important;

}



/* 2. ТРЕБОВАНИЯ ПО ПРЕДОТВРАЩЕНИЮ ГОРИЗОНТАЛЬНОГО СКРОЛЛА */

html, body {

    width: 100%;

    max-width: 100%;

    overflow-x: hidden !important;

    overflow-wrap: break-word;

    word-break: normal;

    background-color: var(--bg-page);

    color: var(--text-main);

    font-family: var(--font-family);

    font-size: 16px;

    line-height: 1.6;

    -webkit-font-smoothing: antialiased;

}



.wrap, .container, .page-wrapper, .main-layout {

    overflow-x: hidden;

}



/* Все дочерние элементы CSS Grid обязательно имеют min-width: 0 */

.grid > *,

.cards-grid > *,

.features-grid > *,

.steps-grid > *,

.hero-grid > *,

.layout-grid > *,

.layout__main,

.layout__side {

    min-width: 0 !important;

}



.article-content,

.article-body,

.rt,

article {

    overflow-x: hidden;

    overflow-wrap: break-word;

}



/* Ссылки и типографика */

a {

    color: var(--primary);

    text-decoration: none;

    transition: color var(--transition-fast);

}

a:hover {

    color: var(--primary-hover);

    text-decoration: underline;

}



img, picture, svg, video {

    display: block;

    max-width: 100%;

    height: auto;

}



button, input, select, textarea {

    font-family: inherit;

    font-size: 1rem;

}



/* Контейнеры */

.container {

    width: 100%;

    max-width: var(--max-w);

    margin-left: auto;

    margin-right: auto;

    padding-left: var(--container-pad);

    padding-right: var(--container-pad);

}



.skip-link {

    position: absolute;

    top: -100px;

    left: 20px;

    background: var(--bg-dark);

    color: #fff;

    padding: 10px 16px;

    z-index: 9999;

}

.skip-link:focus {

    top: 10px;

}



/* ==============================================================================

   КНОПКИ

   ============================================================================== */

.btn {

    display: inline-flex;

    align-items: center;

    justify-content: center;

    gap: 8px;

    padding: 12px 22px;

    font-size: 0.95rem;

    font-weight: 700;

    line-height: 1.2;

    text-transform: uppercase;

    letter-spacing: 0.04em;

    cursor: pointer;

    border: 1px solid transparent;

    transition: background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);

    text-decoration: none !important;

    white-space: nowrap;

}



.btn-primary {

    background-color: var(--primary);

    color: #ffffff;

    border-color: var(--primary);

}

.btn-primary:hover {

    background-color: var(--primary-hover);

    border-color: var(--primary-hover);

    color: #ffffff;

}



.btn-secondary {

    background-color: var(--bg-subtle);

    color: var(--text-main);

    border: 1px solid var(--border-color);

}

.btn-secondary:hover {

    background-color: #e2e8f0;

    border-color: var(--text-main);

    color: var(--text-main);

}



.btn-outline-dark {

    background-color: transparent;

    color: var(--text-main);

    border: 1px solid var(--border-color);

}

.btn-outline-dark:hover {

    background-color: var(--text-main);

    color: #ffffff;

    border-color: var(--text-main);

}



.btn-block {

    display: flex;

    width: 100%;

}

.btn-sm {

    padding: 8px 14px;

    font-size: 0.85rem;

}

.btn-lg {

    padding: 16px 28px;

    font-size: 1.05rem;

}



/* ==============================================================================

   ВЕРХНИЙ УТИЛИТАРНЫЙ БАР

   ============================================================================== */

.top-bar {

    background-color: #0f172a;

    color: #e2e8f0;

    font-size: 0.82rem;

    border-bottom: 1px solid #1e293b;

    padding: 6px 0;

}

.top-bar__inner {

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 16px;

}

.top-bar__left {

    display: flex;

    align-items: center;

    gap: 8px;

    font-weight: 500;

}

.top-bar__status-dot {

    width: 8px;

    height: 8px;

    background-color: var(--accent-green);

    display: inline-block;

}

.top-bar__right {

    display: flex;

    align-items: center;

    gap: 20px;

}

.top-bar__contacts {

    display: flex;

    align-items: center;

    gap: 14px;

}

.top-bar__link {

    display: inline-flex;

    align-items: center;

    gap: 6px;

    color: #cbd5e1;

    text-decoration: none;

    font-size: 0.82rem;

}

.top-bar__link:hover {

    color: #ffffff;

    text-decoration: none;

}

.top-bar__phone {

    font-weight: 700;

    color: #ffffff;

}

.icon-top-svg {

    width: 14px;

    height: 14px;

}

.top-bar__auth {

    display: flex;

    align-items: center;

    gap: 8px;

}

.btn-auth-login, .btn-auth-reg {

    padding: 4px 10px;

    font-size: 0.78rem;

    font-weight: 700;

    text-transform: uppercase;

    letter-spacing: 0.05em;

    border: 1px solid #475569;

    color: #ffffff;

    background-color: #1e293b;

}

.btn-auth-login:hover {

    background-color: #334155;

    color: #ffffff;

    text-decoration: none;

}

.btn-auth-reg {

    background-color: var(--primary);

    border-color: var(--primary);

}

.btn-auth-reg:hover {

    background-color: var(--primary-hover);

    border-color: var(--primary-hover);

    color: #ffffff;

    text-decoration: none;

}



/* ==============================================================================

   ГЛАВНАЯ ШАПКА

   ============================================================================== */

.site-header {

    position: sticky;

    top: 0;

    z-index: 1000;

    background-color: var(--bg-surface);

    border-bottom: 2px solid var(--border-color);

    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04);

}

.site-header__inner {

    display: flex;

    align-items: center;

    justify-content: space-between;

    height: var(--header-h);

    gap: 20px;

}



/* Логотип */

.brand-logo {

    display: flex;

    align-items: center;

    gap: 12px;

    text-decoration: none !important;

}

.brand-logo__mark {

    width: 44px;

    height: 44px;

    background-color: var(--bg-dark);

    color: #ffffff;

    display: flex;

    align-items: center;

    justify-content: center;

    font-weight: 900;

    font-size: 1.15rem;

    letter-spacing: 0.05em;

    border: 2px solid var(--primary);

}

.brand-logo__title {

    display: block;

    font-size: 1.35rem;

    font-weight: 900;

    letter-spacing: 0.04em;

    color: var(--text-main);

    line-height: 1.1;

}

.brand-logo__subtitle {

    display: block;

    font-size: 0.72rem;

    text-transform: uppercase;

    letter-spacing: 0.08em;

    color: var(--text-muted);

    font-weight: 600;

}

.brand-logo--footer .brand-logo__title {

    color: #ffffff;

}

.brand-logo--footer .brand-logo__subtitle {

    color: #94a3b8;

}



/* Главное меню */

.main-nav__list {

    display: flex;

    list-style: none;

    gap: 22px;

}

.main-nav__link {

    font-size: 0.92rem;

    font-weight: 600;

    color: var(--text-main);

    text-decoration: none;

    padding: 8px 0;

    position: relative;

}

.main-nav__link:hover {

    color: var(--primary);

    text-decoration: none;

}

.main-nav__link::after {

    content: "";

    position: absolute;

    bottom: 0;

    left: 0;

    width: 0;

    height: 2px;

    background-color: var(--primary);

    transition: width var(--transition-fast);

}

.main-nav__link:hover::after {

    width: 100%;

}



.site-header__actions {

    display: flex;

    align-items: center;

    gap: 12px;

}

.btn-header-cta {

    background-color: var(--primary);

    color: #ffffff;

    border: 1px solid var(--primary);

    padding: 10px 18px;

    font-size: 0.88rem;

    font-weight: 700;

    text-transform: uppercase;

    letter-spacing: 0.04em;

    cursor: pointer;

}

.btn-header-cta:hover {

    background-color: var(--primary-hover);

    color: #ffffff;

}

.btn-icon-svg {

    width: 16px;

    height: 16px;

}



/* Бургер-кнопка */

.burger-btn {

    display: none;

    flex-direction: column;

    justify-content: space-between;

    width: 40px;

    height: 38px;

    background: transparent;

    border: 1px solid var(--border-color);

    padding: 9px 8px;

    cursor: pointer;

}

.burger-btn__line {

    display: block;

    width: 100%;

    height: 2px;

    background-color: var(--text-main);

}



/* ==============================================================================

   МОБИЛЬНОЕ МЕНЮ (DRAWER)

   ============================================================================== */

.mobile-drawer {

    position: fixed;

    top: 0;

    left: 0;

    width: 100%;

    height: 100%;

    z-index: 2000;

    visibility: hidden;

    opacity: 0;

    transition: opacity 0.2s ease, visibility 0.2s ease;

}

.mobile-drawer.is-open {

    visibility: visible;

    opacity: 1;

}

.mobile-drawer__overlay {

    position: absolute;

    top: 0;

    left: 0;

    width: 100%;

    height: 100%;

    background-color: rgba(15, 23, 42, 0.7);

}

.mobile-drawer__dialog {

    position: absolute;

    top: 0;

    right: 0;

    width: 85%;

    max-width: 360px;

    height: 100%;

    background-color: var(--bg-surface);

    box-shadow: -4px 0 16px rgba(0, 0, 0, 0.15);

    display: flex;

    flex-direction: column;

    transform: translateX(100%);

    transition: transform 0.25s ease-out;

    overflow-y: auto;

    overflow-x: hidden;

}

.mobile-drawer.is-open .mobile-drawer__dialog {

    transform: translateX(0);

}

.mobile-drawer__header {

    display: flex;

    align-items: center;

    justify-content: space-between;

    padding: 16px 20px;

    border-bottom: 1px solid var(--border-color);

}

.mobile-drawer__close {

    background: none;

    border: none;

    font-size: 2rem;

    line-height: 1;

    color: var(--text-main);

    cursor: pointer;

}

.mobile-drawer__body {

    padding: 20px;

    display: flex;

    flex-direction: column;

    gap: 20px;

}

.mobile-drawer__auth {

    display: flex;

    flex-direction: column;

    gap: 8px;

    padding-bottom: 16px;

    border-bottom: 1px solid var(--border-subtle);

}

.mobile-drawer__list {

    list-style: none;

    display: flex;

    flex-direction: column;

    gap: 12px;

}

.mobile-drawer__link {

    font-size: 1rem;

    font-weight: 600;

    color: var(--text-main);

    display: block;

    padding: 6px 0;

    text-decoration: none;

}

.mobile-drawer__link:hover {

    color: var(--primary);

}

.mobile-drawer__contacts {

    padding-top: 16px;

    border-top: 1px solid var(--border-subtle);

    display: flex;

    flex-direction: column;

    gap: 8px;

}

.mobile-drawer__subtitle {

    font-size: 0.8rem;

    color: var(--text-muted);

    text-transform: uppercase;

    font-weight: 700;

}

.mobile-drawer__phone {

    font-size: 1.1rem;

    font-weight: 800;

    color: var(--primary);

}

.mobile-drawer__messengers {

    display: flex;

    gap: 8px;

    margin-top: 6px;

}



/* ==============================================================================

   ХЛЕБНЫЕ КРОШКИ

   ============================================================================== */

.breadcrumbs-wrapper {

    background-color: var(--bg-subtle);

    border-bottom: 1px solid var(--border-subtle);

    padding: 10px 0;

}

.breadcrumbs__list {

    display: flex;

    flex-wrap: wrap;

    align-items: center;

    list-style: none;

    font-size: 0.85rem;

    color: var(--text-muted);

    gap: 6px;

}

.breadcrumbs__item {

    display: flex;

    align-items: center;

    gap: 6px;

}

.breadcrumbs__link {

    color: var(--text-muted);

    text-decoration: none;

}

.breadcrumbs__link:hover {

    color: var(--primary);

    text-decoration: underline;

}

.breadcrumbs__sep {

    color: #94a3b8;

}

.breadcrumbs__current {

    color: var(--text-main);

    font-weight: 600;

}



/* ==============================================================================

   HERO СЕКЦИЯ

   ============================================================================== */

.hero-section {

    position: relative;

    background-color: var(--bg-surface);

    border-bottom: 2px solid var(--border-color);

    padding: 48px 0 54px;

}

.hero-grid {

    display: grid;

    grid-template-columns: 1.2fr 0.8fr;

    gap: 40px;

    align-items: start;

}

.hero-tag {

    display: inline-flex;

    align-items: center;

    gap: 8px;

    background-color: var(--bg-subtle);

    border: 1px solid var(--border-color);

    padding: 6px 14px;

    font-size: 0.82rem;

    font-weight: 700;

    text-transform: uppercase;

    letter-spacing: 0.06em;

    color: var(--text-main);

    margin-bottom: 18px;

}

.badge-dot {

    width: 8px;

    height: 8px;

    background-color: var(--primary);

}

.hero-title {

    font-size: 2.35rem;

    font-weight: 900;

    line-height: 1.15;

    letter-spacing: -0.02em;

    color: var(--text-main);

    margin-bottom: 18px;

}

.hero-lead {

    font-size: 1.12rem;

    line-height: 1.55;

    color: var(--text-muted);

    margin-bottom: 24px;

}

.hero-features-list {

    list-style: none;

    display: flex;

    flex-direction: column;

    gap: 12px;

    margin-bottom: 28px;

}

.hero-feature-item {

    display: flex;

    align-items: flex-start;

    gap: 12px;

    font-size: 0.98rem;

    color: var(--text-main);

}

.hero-check-icon {

    width: 20px;

    height: 20px;

    min-width: 20px;

    color: var(--primary);

    margin-top: 2px;

}

.hero-actions {

    display: flex;

    flex-wrap: wrap;

    gap: 14px;

}

.hero-btn-main {

    background-color: var(--primary);

    color: #ffffff;

    border: 1px solid var(--primary);

    padding: 14px 26px;

    font-size: 0.95rem;

}

.hero-btn-main:hover {

    background-color: var(--primary-hover);

    color: #ffffff;

}

.hero-btn-sec {

    background-color: var(--bg-surface);

    color: var(--text-main);

    border: 1px solid var(--border-dark);

    padding: 14px 24px;

    font-size: 0.95rem;

}

.hero-btn-sec:hover {

    background-color: var(--bg-subtle);

    color: var(--text-main);

    text-decoration: none;

}

.hero-trust-bar {

    margin-top: 24px;

    display: flex;

    align-items: center;

    gap: 14px;

    padding: 10px 14px;

    background-color: var(--bg-subtle);

    border: 1px solid var(--border-color);

}

.hero-trust-bar__img {

    width: 64px;

    height: 44px;

    object-fit: cover;

    flex-shrink: 0;

    border: 1px solid var(--border-color);

}

.hero-trust-bar__text {

    font-size: 0.82rem;

    color: var(--text-muted);

    line-height: 1.4;

}



/* Виджет калькулятора / заявки в Hero */

.hero-widget {

    background-color: #ffffff;

    border: 2px solid var(--border-dark);

    padding: 28px 24px;

    box-shadow: 6px 6px 0px rgba(15, 23, 42, 0.08);

}

.hero-widget__title {

    font-size: 1.35rem;

    font-weight: 900;

    margin-bottom: 6px;

    color: var(--text-main);

    letter-spacing: -0.01em;

}

.hero-widget__subtitle {

    font-size: 0.88rem;

    color: var(--text-muted);

    margin-bottom: 20px;

}

.calc-form {

    display: flex;

    flex-direction: column;

    gap: 14px;

}

.form-group {

    display: flex;

    flex-direction: column;

    gap: 6px;

}

.form-label {

    font-size: 0.86rem;

    font-weight: 700;

    color: var(--text-main);

    text-transform: uppercase;

    letter-spacing: 0.04em;

}

.form-label .req {

    color: var(--accent-red);

}

.form-select, .form-input, .form-textarea {

    width: 100%;

    padding: 11px 14px;

    font-size: 0.95rem;

    color: var(--text-main);

    background-color: #ffffff;

    border: 1px solid var(--border-color);

    outline: none;

    transition: border-color var(--transition-fast);

}

.form-select:focus, .form-input:focus, .form-textarea:focus {

    border-color: var(--primary);

    box-shadow: 0 0 0 1px var(--primary);

}

.calc-price-box {

    background-color: var(--bg-subtle);

    border: 1px dashed var(--border-color);

    padding: 12px 16px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    margin-top: 4px;

}

.calc-price-label {

    font-size: 0.85rem;

    font-weight: 700;

    text-transform: uppercase;

    color: var(--text-muted);

}

.calc-price-val {

    font-size: 1.45rem;

    font-weight: 900;

    color: var(--primary);

}

.calc-guarantee-note {

    font-size: 0.8rem;

    color: var(--accent-green);

    font-weight: 700;

    line-height: 1.3;

}

.calc-submit-btn {

    background-color: var(--primary);

    color: #ffffff;

    border: 1px solid var(--primary);

    padding: 14px 20px;

    font-size: 0.95rem;

    font-weight: 800;

    text-transform: uppercase;

    letter-spacing: 0.05em;

    cursor: pointer;

}

.calc-submit-btn:hover {

    background-color: var(--primary-hover);

}

.calc-policy {

    font-size: 0.76rem;

    color: var(--text-muted);

    text-align: center;

    line-height: 1.3;

}



/* ==============================================================================

   ПОЛОСА ФАКТОВ / СТАТИСТИКИ

   ============================================================================== */

.facts-bar {

    background-color: var(--bg-surface);

    border-bottom: 2px solid var(--border-color);

    padding: 24px 0;

}

.facts-grid {

    display: grid;

    grid-template-columns: repeat(3, 1fr);

    gap: 20px;

}

.fact-card {

    padding: 16px;

    border-left: 3px solid var(--primary);

    background-color: var(--bg-subtle);

}

.fact-card__val {

    font-size: 1.55rem;

    font-weight: 900;

    color: var(--primary);

    line-height: 1.1;

    margin-bottom: 4px;

}

.fact-card__label {

    font-size: 0.9rem;

    font-weight: 700;

    color: var(--text-main);

    margin-bottom: 4px;

    text-transform: uppercase;

    letter-spacing: 0.02em;

}

.fact-card__desc {

    font-size: 0.8rem;

    color: var(--text-muted);

    line-height: 1.4;

}



/* ==============================================================================

   СЕКЦИИ И КАРТОЧКИ КАТЕГОРИЙ

   ============================================================================== */

.section {

    padding: 60px 0;

}

.section--alt {

    background-color: var(--bg-subtle);

    border-top: 1px solid var(--border-color);

    border-bottom: 1px solid var(--border-color);

}

.section-header {

    text-align: center;

    max-width: 780px;

    margin: 0 auto 44px;

}

.section-eyebrow {

    display: inline-block;

    font-size: 0.82rem;

    font-weight: 800;

    text-transform: uppercase;

    letter-spacing: 0.08em;

    color: var(--primary);

    margin-bottom: 10px;

}

.section-title {

    font-size: 2rem;

    font-weight: 900;

    color: var(--text-main);

    letter-spacing: -0.02em;

    line-height: 1.2;

    margin-bottom: 12px;

}

.section-lead {

    font-size: 1.05rem;

    color: var(--text-muted);

    line-height: 1.5;

}



/* Сетка карточек: Mobile 1 колонка, Tablet 2 колонки, Desktop 3 колонки (по ТЗ) */

.cards-grid {

    display: grid;

    grid-template-columns: repeat(3, 1fr);

    gap: 24px;

}



.category-card {

    background-color: var(--bg-surface);

    border: 2px solid var(--border-color);

    display: flex;

    flex-direction: column;

    transition: transform var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);

}

.category-card:hover {

    border-color: var(--primary);

    box-shadow: 4px 4px 0px rgba(29, 78, 216, 0.15);

}

.category-card__header {

    padding: 16px 20px;

    border-bottom: 1px solid var(--border-subtle);

    display: flex;

    align-items: center;

    justify-content: space-between;

    background-color: var(--bg-subtle);

}

.category-card__code {

    font-size: 1.25rem;

    font-weight: 900;

    color: var(--primary);

}

.category-card__badge {

    background-color: var(--text-main);

    color: #ffffff;

    font-size: 0.72rem;

    font-weight: 700;

    padding: 3px 8px;

    text-transform: uppercase;

    letter-spacing: 0.05em;

}

.category-card__media {

    height: 180px;

    overflow: hidden;

    background-color: #0f172a;

    border-bottom: 1px solid var(--border-subtle);

    position: relative;

}

.category-card__img {

    width: 100%;

    height: 100%;

    object-fit: cover;

    display: block;

    transition: transform var(--transition-normal);

}

.category-card:hover .category-card__img {

    transform: scale(1.05);

}

.category-card__body {

    padding: 20px;

    flex-grow: 1;

    display: flex;

    flex-direction: column;

}

.category-card__title {

    font-size: 1.2rem;

    font-weight: 800;

    color: var(--text-main);

    margin-bottom: 10px;

    line-height: 1.3;

}

.category-card__desc {

    font-size: 0.9rem;

    color: var(--text-muted);

    line-height: 1.5;

    margin-bottom: 20px;

    flex-grow: 1;

}

.category-card__meta {

    border-top: 1px solid var(--border-subtle);

    padding-top: 14px;

    display: flex;

    justify-content: space-between;

    align-items: flex-end;

    margin-bottom: 16px;

}

.category-card__price-label {

    display: block;

    font-size: 0.75rem;

    color: var(--text-muted);

    text-transform: uppercase;

    font-weight: 700;

}

.category-card__price {

    font-size: 1.35rem;

    font-weight: 900;

    color: var(--primary);

}

.category-card__term {

    font-size: 0.85rem;

    font-weight: 700;

    color: var(--text-muted);

}

.category-card__footer {

    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 8px;

}



/* ==============================================================================

   КАК МЫ РАБОТАЕМ (ПОШАГОВЫЙ РЕГЛАМЕНТ)

   ============================================================================== */

.steps-grid {

    display: grid;

    grid-template-columns: repeat(4, 1fr);

    gap: 20px;

}

.step-item {

    background-color: var(--bg-surface);

    border: 2px solid var(--border-color);

    padding: 24px 20px;

    position: relative;

}

.step-item__num {

    display: inline-block;

    background-color: var(--bg-dark);

    color: #ffffff;

    font-size: 0.95rem;

    font-weight: 900;

    padding: 4px 10px;

    margin-bottom: 14px;

    letter-spacing: 0.05em;

}

.step-item__title {

    font-size: 1.12rem;

    font-weight: 800;

    color: var(--text-main);

    margin-bottom: 10px;

    line-height: 1.3;

}

.step-item__text {

    font-size: 0.88rem;

    color: var(--text-muted);

    line-height: 1.5;

}



/* ==============================================================================

   ГАРАНТИИ И БАЗА ГИБДД

   ============================================================================== */

.guarantees-box {

    background-color: var(--bg-surface);

    border: 2px solid var(--border-dark);

    padding: 36px 32px;

}

.guarantees-grid {

    display: grid;

    grid-template-columns: repeat(3, 1fr);

    gap: 28px;

}

.guarantee-col {

    border-left: 3px solid var(--primary);

    padding-left: 18px;

}

.guarantee-col__title {

    font-size: 1.18rem;

    font-weight: 800;

    color: var(--text-main);

    margin-bottom: 10px;

}

.guarantee-col__text {

    font-size: 0.92rem;

    color: var(--text-muted);

    line-height: 1.55;

}



.guarantees-visual {

    margin-top: 32px;

    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 28px;

    align-items: center;

    background-color: var(--bg-subtle);

    border: 1px solid var(--border-color);

    padding: 24px;

}

.guarantees-visual__image {

    height: 250px;

    overflow: hidden;

    background-color: #0f172a;

    border: 1px solid var(--border-color);

}

.guarantees-visual__img {

    width: 100%;

    height: 100%;

    object-fit: cover;

    display: block;

    transition: transform var(--transition-normal);

}

.guarantees-visual:hover .guarantees-visual__img {

    transform: scale(1.03);

}

.guarantees-visual__badge {

    display: inline-block;

    background-color: var(--primary);

    color: #ffffff;

    font-size: 0.75rem;

    font-weight: 800;

    text-transform: uppercase;

    letter-spacing: 0.06em;

    padding: 3px 8px;

    margin-bottom: 10px;

}

.guarantees-visual__title {

    font-size: 1.28rem;

    font-weight: 900;

    color: var(--text-main);

    margin-bottom: 10px;

    line-height: 1.3;

}

.guarantees-visual__text {

    font-size: 0.92rem;

    color: var(--text-muted);

    line-height: 1.55;

    margin-bottom: 16px;

}



/* Витрина образцов документов */

.samples-grid {

    display: grid;

    grid-template-columns: repeat(4, 1fr);

    gap: 20px;

    margin-top: 28px;

}

.sample-card {

    background-color: var(--bg-surface);

    border: 2px solid var(--border-color);

    overflow: hidden;

    display: flex;

    flex-direction: column;

    transition: border-color var(--transition-fast), box-shadow var(--transition-fast);

}

.sample-card:hover {

    border-color: var(--primary);

    box-shadow: 4px 4px 0px rgba(29, 78, 216, 0.15);

}

.sample-card__media {

    height: 170px;

    overflow: hidden;

    background-color: #0f172a;

    border-bottom: 1px solid var(--border-subtle);

}

.sample-card__img {

    width: 100%;

    height: 100%;

    object-fit: cover;

    display: block;

    transition: transform var(--transition-normal);

}

.sample-card:hover .sample-card__img {

    transform: scale(1.06);

}

.sample-card__body {

    padding: 16px;

    flex-grow: 1;

    display: flex;

    flex-direction: column;

}

.sample-card__title {

    font-size: 1rem;

    font-weight: 800;

    color: var(--text-main);

    margin-bottom: 6px;

    line-height: 1.3;

}

.sample-card__desc {

    font-size: 0.84rem;

    color: var(--text-muted);

    line-height: 1.45;

}



/* ==============================================================================

   FAQ АККОРДЕОН

   ============================================================================== */

.faq-list {

    max-width: 860px;

    margin: 0 auto;

    display: flex;

    flex-direction: column;

    gap: 14px;

}

.faq-card {

    border: 2px solid var(--border-color);

    background-color: var(--bg-surface);

}

.faq-btn {

    width: 100%;

    text-align: left;

    background: none;

    border: none;

    padding: 18px 24px;

    font-size: 1.08rem;

    font-weight: 800;

    color: var(--text-main);

    cursor: pointer;

    display: flex;

    justify-content: space-between;

    align-items: center;

    gap: 16px;

}

.faq-btn:hover {

    color: var(--primary);

}

.faq-btn__icon {

    font-size: 1.4rem;

    font-weight: 900;

    color: var(--primary);

    transition: transform var(--transition-fast);

}

.faq-btn[aria-expanded="true"] .faq-btn__icon {

    transform: rotate(45deg);

}

.faq-body {

    padding: 0 24px 20px;

    font-size: 0.95rem;

    color: var(--text-muted);

    line-height: 1.6;

    border-top: 1px solid var(--border-subtle);

    margin-top: 4px;

    padding-top: 16px;

}



/* ==============================================================================

   БЛОК ПРОМОКОДА (С КОПИРОВАНИЕМ В БУФЕР И АНИМАЦИЕЙ)

   ============================================================================== */

.promo-box {

    background-color: #0f172a;

    color: #ffffff;

    border: 2px solid #1e293b;

    padding: 24px 28px;

    margin: 32px 0;

    position: relative;

}

.promo-box__badge {

    position: absolute;

    top: -12px;

    left: 24px;

    background-color: var(--accent-gold);

    color: #ffffff;

    font-size: 0.72rem;

    font-weight: 900;

    text-transform: uppercase;

    letter-spacing: 0.08em;

    padding: 2px 10px;

}

.promo-box__body {

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 24px;

}

.promo-box__info {

    display: flex;

    flex-direction: column;

    gap: 6px;

}

.promo-box__title {

    font-size: 1.25rem;

    font-weight: 900;

    color: #ffffff;

}

.promo-box__desc {

    font-size: 0.88rem;

    color: #cbd5e1;

    line-height: 1.4;

}

.promo-box__action {

    display: flex;

    align-items: center;

    gap: 12px;

    flex-shrink: 0;

}

.promo-box__code-wrap {

    background-color: #1e293b;

    border: 1px dashed #64748b;

    padding: 10px 18px;

}

.promo-box__code {

    font-family: var(--font-mono);

    font-size: 1.25rem;

    font-weight: 900;

    letter-spacing: 0.1em;

    color: #38bdf8;

}

.promo-box__btn {

    background-color: var(--primary);

    color: #ffffff;

    border: 1px solid var(--primary);

    padding: 12px 20px;

    font-size: 0.88rem;

    font-weight: 800;

    text-transform: uppercase;

    cursor: pointer;

    transition: background-color var(--transition-fast);

}

.promo-box__btn:hover {

    background-color: var(--primary-hover);

}

.promo-btn-icon {

    width: 16px;

    height: 16px;

}

.promo-box__feedback {

    margin-top: 14px;

    padding: 8px 14px;

    background-color: rgba(5, 150, 105, 0.2);

    border: 1px solid var(--accent-green);

    color: #4ade80;

    font-size: 0.85rem;

    font-weight: 700;

    animation: promoFadeIn 0.3s ease-out;

}

@keyframes promoFadeIn {

    from { opacity: 0; transform: translateY(-4px); }

    to { opacity: 1; transform: translateY(0); }

}



/* ==============================================================================

   ЛИПКАЯ БОНУСНАЯ ПЛАШКА ВНИЗУ

   ============================================================================== */

.sticky-bonus-bar {

    position: fixed;

    bottom: 0;

    left: 0;

    width: 100%;

    z-index: 1500;

    background-color: #ffffff;

    border-top: 3px solid var(--primary);

    box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.12);

    padding: 12px 0;

    transition: transform 0.3s ease;

}

.sticky-bonus-bar.is-hidden {

    transform: translateY(100%);

}

.sticky-bonus-bar__inner {

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 20px;

}

.sticky-bonus-bar__content {

    display: flex;

    align-items: center;

    gap: 12px;

}

.sticky-bonus-bar__tag {

    background-color: var(--accent-gold);

    color: #ffffff;

    font-size: 0.72rem;

    font-weight: 900;

    text-transform: uppercase;

    letter-spacing: 0.06em;

    padding: 3px 8px;

    white-space: nowrap;

}

.sticky-bonus-bar__text {

    font-size: 0.95rem;

    font-weight: 700;

    color: var(--text-main);

    line-height: 1.3;

}

.sticky-bonus-bar__actions {

    display: flex;

    align-items: center;

    gap: 12px;

    flex-shrink: 0;

}

.btn-bonus-claim {

    background-color: var(--primary);

    color: #ffffff;

    border: 1px solid var(--primary);

    padding: 10px 22px;

    font-size: 0.88rem;

    font-weight: 800;

    text-transform: uppercase;

    letter-spacing: 0.04em;

    text-decoration: none !important;

}

.btn-bonus-claim:hover {

    background-color: var(--primary-hover);

    color: #ffffff;

}

.sticky-bonus-bar__close {

    background: none;

    border: none;

    font-size: 1.6rem;

    line-height: 1;

    color: var(--text-muted);

    cursor: pointer;

    padding: 4px;

}

.sticky-bonus-bar__close:hover {

    color: var(--text-main);

}



/* ==============================================================================

   СТАТЬИ И РИЧ-ТЕКСТ

   ============================================================================== */

.layout-grid {

    display: grid;

    grid-template-columns: 2.8fr 1.2fr;

    gap: 40px;

    padding: 40px 0 60px;

}

.article-header {

    margin-bottom: 28px;

    border-bottom: 2px solid var(--border-color);

    padding-bottom: 20px;

}

.article-h1 {

    font-size: 2.4rem;

    font-weight: 900;

    line-height: 1.18;

    color: var(--text-main);

    letter-spacing: -0.02em;

    margin-bottom: 14px;

}

.article-meta {

    display: flex;

    flex-wrap: wrap;

    align-items: center;

    gap: 16px;

    font-size: 0.86rem;

    color: var(--text-muted);

}

.article-meta__item {

    display: flex;

    align-items: center;

    gap: 6px;

}

.article-featured-image {

    margin-bottom: 30px;

    border: 2px solid var(--border-color);

}

.article-featured-image img {

    width: 100%;

    height: auto;

    object-fit: cover;

}



.article-body {

    font-size: 1.05rem;

    line-height: 1.75;

    color: var(--text-main);

}

.content-heading {

    font-weight: 800;

    color: var(--text-main);

    margin: 36px 0 16px;

    line-height: 1.25;

    letter-spacing: -0.01em;

}

h2.content-heading { font-size: 1.65rem; border-left: 4px solid var(--primary); padding-left: 12px; }

h3.content-heading { font-size: 1.35rem; }

h4.content-heading { font-size: 1.15rem; }



.content-p {

    margin-bottom: 20px;

}

.content-list, .content-list-ordered {

    margin: 0 0 24px 24px;

    display: flex;

    flex-direction: column;

    gap: 8px;

}

.content-list li, .content-list-ordered li {

    line-height: 1.6;

}



/* Обертка для адаптивных таблиц */

.table-responsive {

    width: 100%;

    overflow-x: auto;

    margin: 28px 0;

    border: 1px solid var(--border-color);

}

.data-table {

    width: 100%;

    border-collapse: collapse;

    font-size: 0.92rem;

    text-align: left;

    background-color: var(--bg-surface);

}

.data-table th {

    background-color: var(--bg-subtle);

    color: var(--text-main);

    font-weight: 800;

    text-transform: uppercase;

    letter-spacing: 0.04em;

    padding: 12px 16px;

    border-bottom: 2px solid var(--border-color);

    white-space: nowrap;

}

.data-table td {

    padding: 12px 16px;

    border-bottom: 1px solid var(--border-subtle);

    color: var(--text-main);

}

.data-table tr:hover {

    background-color: #f8fafc;

}



/* Боковая колонка (Sidebar) */

.sidebar {

    display: flex;

    flex-direction: column;

    gap: 28px;

}

.sidebar-widget {

    background-color: var(--bg-surface);

    border: 2px solid var(--border-color);

    padding: 24px;

}

.sidebar-widget__title {

    font-size: 1.15rem;

    font-weight: 800;

    color: var(--text-main);

    border-bottom: 2px solid var(--border-subtle);

    padding-bottom: 10px;

    margin-bottom: 16px;

    text-transform: uppercase;

    letter-spacing: 0.03em;

}

.sidebar-menu {

    list-style: none;

    display: flex;

    flex-direction: column;

    gap: 10px;

}

.sidebar-menu__link {

    display: block;

    font-size: 0.92rem;

    font-weight: 600;

    color: var(--text-main);

    padding: 6px 0;

    border-bottom: 1px solid var(--border-subtle);

}

.sidebar-menu__link:hover {

    color: var(--primary);

    padding-left: 4px;

}



/* Похожие статьи */

.similar-articles {

    margin-top: 48px;

    padding-top: 36px;

    border-top: 2px solid var(--border-color);

}

.similar-articles__title {

    font-size: 1.5rem;

    font-weight: 900;

    margin-bottom: 24px;

}



/* ==============================================================================

   МОДАЛЬНОЕ ОКНО ЗАКАЗА

   ============================================================================== */

.lead-modal {

    position: fixed;

    top: 0;

    left: 0;

    width: 100%;

    height: 100%;

    z-index: 2500;

    visibility: hidden;

    opacity: 0;

    transition: opacity 0.2s ease, visibility 0.2s ease;

}

.lead-modal.is-open {

    visibility: visible;

    opacity: 1;

}

.lead-modal__overlay {

    position: absolute;

    top: 0;

    left: 0;

    width: 100%;

    height: 100%;

    background-color: rgba(15, 23, 42, 0.75);

}

.lead-modal__dialog {

    position: relative;

    top: 50%;

    left: 50%;

    transform: translate(-50%, -50%);

    width: 90%;

    max-width: 520px;

    background-color: var(--bg-surface);

    border: 3px solid var(--border-dark);

    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.25);

    max-height: 90vh;

    overflow-y: auto;

    overflow-x: hidden;

}

.lead-modal__header {

    display: flex;

    align-items: flex-start;

    justify-content: space-between;

    padding: 24px 24px 16px;

    border-bottom: 1px solid var(--border-subtle);

}

.lead-modal__title {

    font-size: 1.35rem;

    font-weight: 900;

    color: var(--text-main);

    line-height: 1.2;

    margin-bottom: 4px;

}

.lead-modal__subtitle {

    font-size: 0.85rem;

    color: var(--text-muted);

}

.lead-modal__close {

    background: none;

    border: none;

    font-size: 2rem;

    line-height: 1;

    color: var(--text-muted);

    cursor: pointer;

}

.lead-modal__close:hover {

    color: var(--text-main);

}

.lead-modal__form {

    padding: 24px;

    display: flex;

    flex-direction: column;

    gap: 16px;

}

.lead-modal__notice {

    display: flex;

    align-items: flex-start;

    gap: 10px;

    background-color: var(--bg-subtle);

    border: 1px solid var(--border-color);

    padding: 10px 14px;

    font-size: 0.82rem;

    color: var(--text-main);

    line-height: 1.4;

}

.notice-shield-icon {

    width: 18px;

    height: 18px;

    min-width: 18px;

    color: var(--primary);

    margin-top: 1px;

}

.lead-modal__policy {

    font-size: 0.75rem;

    color: var(--text-muted);

    text-align: center;

    line-height: 1.3;

}

.field__err {

    font-size: 0.78rem;

    color: var(--accent-red);

    font-weight: 700;

    min-height: 16px;

    margin-top: 2px;

}

.field.is-invalid .field__i {

    border-color: var(--accent-red);

}

.form__fail {

    background-color: #fee2e2;

    border: 1px solid #ef4444;

    color: #b91c1c;

    padding: 10px 14px;

    font-size: 0.88rem;

    font-weight: 700;

}

.form__success {

    background-color: #ecfdf5;

    border: 2px solid var(--accent-green);

    padding: 20px;

    text-align: center;

}

.form__success-icon {

    width: 48px;

    height: 48px;

    margin: 0 auto 12px;

    color: var(--accent-green);

}

.form__success h4 {

    font-size: 1.2rem;

    font-weight: 900;

    color: #065f46;

    margin-bottom: 6px;

}

.form__success p {

    font-size: 0.9rem;

    color: #047857;

}



/* ==============================================================================

   ПОДВАЛ САЙТА

   ============================================================================== */

.site-footer {

    background-color: #0f172a;

    color: #cbd5e1;

    border-top: 3px solid var(--primary);

    padding-top: 54px;

    padding-bottom: 60px; /* отступ под sticky bar */

}

.site-footer__top {

    display: grid;

    grid-template-columns: 1.4fr 1fr 1fr 1.2fr;

    gap: 36px;

    padding-bottom: 44px;

    border-bottom: 1px solid #1e293b;

}

.site-footer__about {

    font-size: 0.88rem;

    line-height: 1.6;

    color: #94a3b8;

    margin: 16px 0;

}

.site-footer__trust-badge {

    display: flex;

    align-items: center;

    gap: 10px;

    background-color: #1e293b;

    border: 1px solid #334155;

    padding: 10px 14px;

    font-size: 0.8rem;

    color: #e2e8f0;

    font-weight: 600;

}

.footer-shield-svg {

    width: 22px;

    height: 22px;

    min-width: 22px;

    color: var(--accent-gold);

}

.site-footer__heading {

    font-size: 1rem;

    font-weight: 800;

    color: #ffffff;

    text-transform: uppercase;

    letter-spacing: 0.06em;

    margin-bottom: 18px;

    border-bottom: 2px solid var(--primary);

    padding-bottom: 6px;

    display: inline-block;

}

.site-footer__links {

    list-style: none;

    display: flex;

    flex-direction: column;

    gap: 10px;

}

.site-footer__link {

    font-size: 0.88rem;

    color: #94a3b8;

    text-decoration: none;

    transition: color var(--transition-fast);

}

.site-footer__link:hover {

    color: #ffffff;

    text-decoration: underline;

}

.site-footer__contact-item {

    margin-bottom: 14px;

}

.contact-label {

    display: block;

    font-size: 0.76rem;

    text-transform: uppercase;

    color: #94a3b8;

    font-weight: 700;

    margin-bottom: 4px;

}

.contact-value {

    font-size: 0.9rem;

    color: #ffffff;

    font-weight: 600;

}

.contact-phone {

    font-size: 1.15rem;

    font-weight: 900;

    color: #38bdf8;

    text-decoration: none;

}

.contact-phone:hover {

    text-decoration: underline;

}

.footer-messengers {

    display: flex;

    flex-wrap: wrap;

    gap: 8px;

    margin-top: 6px;

}

.footer-btn-messenger {

    display: inline-flex;

    align-items: center;

    gap: 6px;

    padding: 6px 12px;

    font-size: 0.82rem;

    font-weight: 700;

    text-decoration: none !important;

    color: #ffffff;

    background-color: #1e293b;

    border: 1px solid #334155;

    transition: background-color var(--transition-fast);

}

.footer-btn-messenger:hover {

    background-color: #334155;

    color: #ffffff;

}

.msg-icon {

    width: 14px;

    height: 14px;

}

.site-footer__bottom {

    padding-top: 24px;

}

.site-footer__bottom-inner {

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 20px;

    font-size: 0.8rem;

    color: #64748b;

}



/* Кнопка наверх */

.btn-totop {

    position: fixed;

    right: 20px;

    bottom: 74px; /* выше sticky бара */

    z-index: 1400;

    width: 44px;

    height: 44px;

    background-color: var(--bg-dark);

    color: #ffffff;

    border: 2px solid var(--border-dark);

    display: flex;

    align-items: center;

    justify-content: center;

    cursor: pointer;

    opacity: 0;

    visibility: hidden;

    transition: opacity 0.2s ease, visibility 0.2s ease;

}

.btn-totop.is-visible {

    opacity: 1;

    visibility: visible;

}

.btn-totop:hover {

    background-color: var(--primary);

    border-color: var(--primary);

}



/* ==============================================================================

   АДАПТИВНОСТЬ / MEDIA QUERIES

   Брейкпоинты: 320px, 375px, 425px, 768px, 1024px, 1440px

   ============================================================================== */



@media (max-width: 1024px) {

    .hero-grid {

        grid-template-columns: 1fr;

        gap: 36px;

    }

    .cards-grid {

        grid-template-columns: repeat(2, 1fr);

    }

    .facts-grid {

        grid-template-columns: repeat(2, 1fr);

    }

    .steps-grid {

        grid-template-columns: repeat(2, 1fr);

    }

    .layout-grid {

        grid-template-columns: 1fr;

    }

    .site-footer__top {

        grid-template-columns: repeat(2, 1fr);

    }

    .samples-grid {

        grid-template-columns: repeat(2, 1fr);

    }

}



@media (max-width: 768px) {

    /* 6. media queries для мобильных (≤768px): все flex-контейнеры с горизонтальным

       расположением, где контент может не вмещаться, переводим в flex-direction: column */

    .top-bar__inner {

        flex-direction: column;

        align-items: flex-start;

        gap: 8px;

    }

    .top-bar__right {

        width: 100%;

        flex-direction: column;

        align-items: flex-start;

        gap: 8px;

    }

    .top-bar__contacts {

        flex-wrap: wrap;

        gap: 10px;

    }

    .top-bar__auth {

        width: 100%;

    }

    .top-bar__auth .btn {

        flex: 1;

        text-align: center;

    }



    .main-nav {

        display: none;

    }

    .burger-btn {

        display: flex;

    }

    .btn-header-cta {

        display: none;

    }



    .hero-title {

        font-size: 1.85rem;

    }

    .hero-actions {

        flex-direction: column;

    }

    .hero-btn-main, .hero-btn-sec {

        width: 100%;

        text-align: center;

    }



    .cards-grid {

        grid-template-columns: 1fr; /* на мобильном 1 колонка строго по ТЗ */

    }

    .facts-grid {

        grid-template-columns: 1fr;

    }

    .steps-grid {

        grid-template-columns: 1fr;

    }

    .guarantees-grid {

        grid-template-columns: 1fr;

    }

    .guarantees-visual {

        grid-template-columns: 1fr;

    }

    .guarantees-visual__image {

        height: 200px;

    }

    .samples-grid {

        grid-template-columns: 1fr;

    }



    .promo-box__body {

        flex-direction: column;

        align-items: flex-start;

        gap: 16px;

    }

    .promo-box__action {

        width: 100%;

        flex-direction: column;

        align-items: stretch;

    }

    .promo-box__code-wrap {

        text-align: center;

    }

    .promo-box__btn {

        width: 100%;

    }



    .sticky-bonus-bar__inner {

        flex-direction: column;

        align-items: flex-start;

        gap: 10px;

    }

    .sticky-bonus-bar__actions {

        width: 100%;

        justify-content: space-between;

    }

    .btn-bonus-claim {

        flex-grow: 1;

        text-align: center;

    }



    .site-footer__top {

        grid-template-columns: 1fr;

        gap: 28px;

    }

    .site-footer__bottom-inner {

        flex-direction: column;

        text-align: center;

        gap: 10px;

    }

    .article-h1 {

        font-size: 1.85rem;

    }

}



@media (max-width: 425px) {

    :root {

        --container-pad: 14px;

    }

    .hero-title {

        font-size: 1.6rem;

    }

    .hero-widget {

        padding: 20px 16px;

    }

    .calc-price-box {

        flex-direction: column;

        align-items: flex-start;

        gap: 4px;

    }

    .brand-logo__title {

        font-size: 1.15rem;

    }

    .btn {

        padding: 11px 16px;

        font-size: 0.85rem;

    }

}



@media (max-width: 375px) {

    .hero-title {

        font-size: 1.45rem;

    }

    .top-bar__status-text {

        font-size: 0.74rem;

    }

}



@media (max-width: 320px) {

    body {

        font-size: 15px;

    }

    .hero-title {

        font-size: 1.35rem;

    }

    .brand-logo__mark {

        width: 36px;

        height: 36px;

        font-size: 0.95rem;

    }

}

