 /*
  * HelpSafe Law
  *
  * LAW
  * Визуальные компоненты юридической базы:
  *
  * - карточки нормативных актов;
  * - статьи законодательства;
  * - правовое значение;
  * - статусы;
  * - источники;
  * - предупреждения;
  * - маршруты;
  * - шаги;
  * - доказательства;
  * - связанные материалы;
  * - метаданные.
  *
  * ВАЖНО:
  * Этот файл отвечает только за представление данных.
  * Юридическая логика находится в HelpSafe Law Core.
  */


/* ============================================================
   1. ОБЩАЯ СИСТЕМА ЮРИДИЧЕСКИХ БЛОКОВ
   ============================================================ */

.law-card,
.law-panel,
.law-box,
.law-route,
.law-source,
.law-evidence {
    position: relative;

    border: 1px solid rgba(38, 36, 36, 0.08);
    border-radius: 15px;

    background: #ffffff;

    box-shadow:
        0 6px 24px rgba(38, 36, 36, 0.035);
}


/* ============================================================
   2. ЗАГОЛОВОК ЮРИДИЧЕСКОЙ СТРАНИЦЫ
   ============================================================ */

.law-page-header {
    position: relative;

    padding: 58px 0 52px;

    background:
        linear-gradient(
            135deg,
            #f3faf7 0%,
            #fffdf5 100%
        );

    border-bottom: 1px solid rgba(38, 36, 36, 0.07);
}

.law-page-header__inner {
    max-width: 900px;
}

.law-page-header__eyebrow {
    display: inline-flex;
    align-items: center;

    margin-bottom: 16px;

    color: #189589;

    font-size: 12px;
    font-weight: 850;

    line-height: 1.2;

    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.law-page-header__eyebrow::before {
    content: "";

    width: 24px;
    height: 3px;

    margin-right: 9px;

    border-radius: 99px;

    background: #81c784;
}

.law-page-header__title {
    margin: 0 0 16px;

    color: #262424;

    font-size: clamp(34px, 4vw, 52px);
    font-weight: 850;

    line-height: 1.1;

    letter-spacing: -0.035em;
}

.law-page-header__description {
    max-width: 760px;

    margin: 0;

    color: #68706c;

    font-size: 16px;
    line-height: 1.7;
}


/* ============================================================
   3. ХЛЕБНЫЕ КРОШКИ
   ============================================================ */

.law-breadcrumbs {
    margin-bottom: 22px;

    color: #8b918e;

    font-size: 12px;
    line-height: 1.5;
}

.law-breadcrumbs a {
    color: #68716d;

    text-decoration: none;
}

.law-breadcrumbs a:hover {
    color: #189589;
}

.law-breadcrumbs__separator {
    display: inline-block;

    margin: 0 8px;

    color: #b5bbb8;
}


/* ============================================================
   4. НОМЕР СТАТЬИ / АКТА
   ============================================================ */

.law-article-number {
    display: inline-flex;
    align-items: center;

    margin-bottom: 18px;

    padding: 8px 12px;

    border-radius: 8px;

    color: #189589;

    background: #edf8f5;

    font-size: 13px;
    font-weight: 850;

    line-height: 1;
}

.law-article-number strong {
    margin-left: 5px;
}


/* ============================================================
   5. ОСНОВНАЯ КАРТОЧКА СТАТЬИ
   ============================================================ */

.law-article {
    position: relative;

    padding: 38px 42px;

    border: 1px solid rgba(38, 36, 36, 0.08);
    border-radius: 17px;

    background: #ffffff;

    box-shadow:
        0 8px 30px rgba(38, 36, 36, 0.045);
}

.law-article + .law-article {
    margin-top: 24px;
}

.law-article__title {
    margin: 0 0 20px;

    color: #262424;

    font-size: clamp(28px, 3vw, 40px);
    font-weight: 850;

    line-height: 1.16;

    letter-spacing: -0.03em;
}

.law-article__lead {
    max-width: 850px;

    margin: 0 0 28px;

    color: #59615e;

    font-size: 17px;
    line-height: 1.7;
}


/* ============================================================
   6. МЕТАДАННЫЕ
   ============================================================ */

.law-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;

    gap: 8px 10px;

    margin-bottom: 28px;
}

.law-meta__item {
    display: inline-flex;
    align-items: center;

    min-height: 30px;

    padding: 6px 10px;

    border-radius: 7px;

    color: #68706d;

    background: #f4f6f5;

    font-size: 12px;
    line-height: 1.2;
}

.law-meta__item strong {
    margin-left: 4px;

    color: #343a38;
}

.law-meta__item i {
    margin-right: 6px;

    color: #189589;
}


/* ============================================================
   7. СТАТУСЫ
   ============================================================ */

.law-status {
    display: inline-flex;
    align-items: center;

    min-height: 28px;

    padding: 6px 10px;

    border-radius: 7px;

    font-size: 11px;
    font-weight: 850;

    line-height: 1;

    letter-spacing: 0.02em;
}

.law-status::before {
    content: "";

    width: 6px;
    height: 6px;

    margin-right: 6px;

    border-radius: 50%;

    background: currentColor;
}

.law-status--active {
    color: #2e7d52;

    background: #edf8f1;
}

.law-status--changed {
    color: #9a7418;

    background: #fff8df;
}

.law-status--repealed {
    color: #9b5757;

    background: #fff0f0;
}

.law-status--suspended {
    color: #896d9b;

    background: #f5eff9;
}

.law-status--draft {
    color: #69767a;

    background: #f0f3f4;
}

.law-status--unknown {
    color: #777777;

    background: #f2f2f2;
}


/* ============================================================
   8. БЛОК «ПРАВОВОЕ ЗНАЧЕНИЕ»
   ============================================================ */

.law-meaning {
    position: relative;

    margin: 30px 0;

    padding: 27px 30px 27px 33px;

    border-left: 4px solid #189589;
    border-radius: 0 13px 13px 0;

    background:
        linear-gradient(
            135deg,
            #eef9f6 0%,
            #f7fbf9 100%
        );
}

.law-meaning__label {
    margin-bottom: 9px;

    color: #189589;

    font-size: 11px;
    font-weight: 850;

    line-height: 1;

    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.law-meaning__title {
    margin: 0 0 9px;

    color: #262424;

    font-size: 20px;
    font-weight: 850;

    line-height: 1.3;
}

.law-meaning__text {
    margin: 0;

    color: #58615e;

    font-size: 15px;
    line-height: 1.7;
}


/* ============================================================
   9. ОСНОВНОЙ ТЕКСТ ЮРИДИЧЕСКОЙ СТРАНИЦЫ
   ============================================================ */

.law-content {
    color: #343937;

    font-size: 16px;
    line-height: 1.8;
}

.law-content > *:first-child {
    margin-top: 0;
}

.law-content > *:last-child {
    margin-bottom: 0;
}

.law-content h2 {
    margin: 42px 0 17px;

    color: #262424;

    font-size: 28px;
    font-weight: 850;

    line-height: 1.25;

    letter-spacing: -0.02em;
}

.law-content h3 {
    margin: 31px 0 13px;

    color: #262424;

    font-size: 21px;
    font-weight: 800;

    line-height: 1.3;
}

.law-content p {
    margin: 0 0 18px;
}

.law-content ul,
.law-content ol {
    margin: 0 0 22px;

    padding-left: 25px;
}

.law-content li {
    margin-bottom: 8px;
}

.law-content a {
    color: #147f76;

    text-decoration: underline;
    text-decoration-color: rgba(20, 127, 118, 0.28);
    text-underline-offset: 3px;
}

.law-content a:hover {
    color: #0f625b;

    text-decoration-color: currentColor;
}


/* ============================================================
   10. ВАЖНОЕ ПРЕДУПРЕЖДЕНИЕ
   ============================================================ */

.law-warning {
    position: relative;

    display: grid;

    grid-template-columns: 52px minmax(0, 1fr);

    gap: 18px;

    margin: 30px 0;

    padding: 24px 26px;

    border: 1px solid rgba(176, 137, 40, 0.22);
    border-radius: 14px;

    background:
        linear-gradient(
            135deg,
            #fffaf0 0%,
            #fffdf7 100%
        );
}

.law-warning__icon {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 48px;
    height: 48px;

    border-radius: 13px;

    color: #a47b19;

    background: #fff3d2;

    font-size: 18px;
}

.law-warning__content h3 {
    margin: 0 0 8px;

    color: #4c4431;

    font-size: 18px;
    font-weight: 850;

    line-height: 1.3;
}

.law-warning__content p {
    margin: 0;

    color: #6e6654;

    font-size: 14px;
    line-height: 1.65;
}


/* ============================================================
   11. ИСТОЧНИКИ
   ============================================================ */

.law-sources {
    margin-top: 38px;
}

.law-sources__title {
    display: flex;
    align-items: center;

    margin-bottom: 16px;

    color: #262424;

    font-size: 19px;
    font-weight: 850;

    line-height: 1.3;
}

.law-sources__title i {
    margin-right: 9px;

    color: #189589;

    font-size: 16px;
}

.law-sources__list {
    display: grid;

    gap: 9px;
}

.law-source {
    display: flex;
    align-items: center;

    gap: 14px;

    padding: 16px 18px;

    border-radius: 11px;

    box-shadow: none;

    transition:
        border-color 0.2s ease,
        background-color 0.2s ease;
}

.law-source:hover {
    border-color: rgba(24, 149, 137, 0.20);

    background: #fbfdfc;
}

.law-source__icon {
    flex: 0 0 auto;

    display: flex;
    align-items: center;
    justify-content: center;

    width: 38px;
    height: 38px;

    border-radius: 9px;

    color: #189589;

    background: #edf8f5;

    font-size: 14px;
}

.law-source__body {
    min-width: 0;
}

.law-source__name {
    margin: 0 0 3px;

    color: #343a38;

    font-size: 14px;
    font-weight: 750;

    line-height: 1.4;
}

.law-source__description {
    margin: 0;

    color: #858c89;

    font-size: 12px;
    line-height: 1.5;
}

.law-source__link {
    flex: 0 0 auto;

    margin-left: auto;

    color: #189589;

    font-size: 13px;
    font-weight: 800;

    text-decoration: none;
}


/* ============================================================
   12. ЮРИДИЧЕСКИЙ МАРШРУТ
   ============================================================ */

.law-route {
    padding: 30px 32px;

    overflow: hidden;
}

.law-route__header {
    margin-bottom: 28px;
}

.law-route__eyebrow {
    margin-bottom: 8px;

    color: #189589;

    font-size: 11px;
    font-weight: 850;

    line-height: 1;

    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.law-route__title {
    margin: 0 0 9px;

    color: #262424;

    font-size: 25px;
    font-weight: 850;

    line-height: 1.25;
}

.law-route__description {
    margin: 0;

    color: #68706d;

    font-size: 14px;
    line-height: 1.65;
}


/* ============================================================
   13. ШАГИ МАРШРУТА
   ============================================================ */

.law-route__steps {
    position: relative;

    display: flex;
    flex-direction: column;

    gap: 0;
}

.law-route-step {
    position: relative;

    display: grid;

    grid-template-columns: 58px minmax(0, 1fr);

    gap: 18px;

    padding: 0 0 27px;
}

.law-route-step:last-child {
    padding-bottom: 0;
}

.law-route-step:not(:last-child)::before {
    content: "";

    position: absolute;

    left: 28px;
    top: 58px;
    bottom: 0;

    width: 1px;

    background: #dfe8e4;
}

.law-route-step__number {
    position: relative;
    z-index: 2;

    display: flex;
    align-items: center;
    justify-content: center;

    width: 56px;
    height: 56px;

    border: 1px solid rgba(24, 149, 137, 0.24);
    border-radius: 50%;

    color: #189589;

    background: #f0faf7;

    font-size: 15px;
    font-weight: 850;
}

.law-route-step__content {
    padding-top: 5px;
}

.law-route-step__title {
    margin: 0 0 6px;

    color: #262424;

    font-size: 17px;
    font-weight: 800;

    line-height: 1.3;
}

.law-route-step__description {
    margin: 0;

    color: #6c7471;

    font-size: 14px;
    line-height: 1.65;
}

.law-route-step__authority {
    display: inline-flex;

    margin-top: 11px;

    padding: 6px 9px;

    border-radius: 6px;

    color: #64716d;

    background: #f4f6f5;

    font-size: 11px;
    font-weight: 750;
}


/* ============================================================
   14. ДОКАЗАТЕЛЬСТВА
   ============================================================ */

.law-evidence-section {
    margin-top: 38px;
}

.law-evidence-section__title {
    margin: 0 0 17px;

    color: #262424;

    font-size: 21px;
    font-weight: 850;

    line-height: 1.3;
}

.law-evidence-grid {
    display: grid;

    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 12px;
}

.law-evidence {
    padding: 20px;

    box-shadow: none;
}

.law-evidence__icon {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 42px;
    height: 42px;

    margin-bottom: 14px;

    border-radius: 11px;

    color: #189589;

    background: #edf8f5;
}

.law-evidence__title {
    margin: 0 0 7px;

    color: #343a38;

    font-size: 15px;
    font-weight: 800;

    line-height: 1.35;
}

.law-evidence__description {
    margin: 0;

    color: #747b78;

    font-size: 13px;
    line-height: 1.6;
}

.law-evidence__value {
    margin-top: 12px;

    padding-top: 11px;

    border-top: 1px solid #edf0ef;

    color: #59615e;

    font-size: 12px;
    line-height: 1.55;
}


/* ============================================================
   15. СВЯЗАННЫЕ МАТЕРИАЛЫ
   ============================================================ */

.law-related {
    margin-top: 40px;
}

.law-related__title {
    margin: 0 0 17px;

    color: #262424;

    font-size: 21px;
    font-weight: 850;

    line-height: 1.3;
}

.law-related__list {
    display: grid;

    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 12px;
}

.law-related__item {
    display: flex;
    align-items: center;

    gap: 13px;

    min-height: 72px;

    padding: 15px 17px;

    color: inherit;

    border: 1px solid rgba(38, 36, 36, 0.08);
    border-radius: 11px;

    background: #ffffff;

    text-decoration: none;

    transition:
        transform 0.2s ease,
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.law-related__item:hover {
    border-color: rgba(24, 149, 137, 0.20);

    transform: translateY(-2px);

    box-shadow:
        0 8px 22px rgba(38, 36, 36, 0.055);
}

.law-related__icon {
    flex: 0 0 auto;

    display: flex;
    align-items: center;
    justify-content: center;

    width: 38px;
    height: 38px;

    border-radius: 9px;

    color: #189589;

    background: #edf8f5;
}

.law-related__text {
    min-width: 0;
}

.law-related__text strong {
    display: block;

    margin-bottom: 3px;

    color: #343a38;

    font-size: 13px;
    font-weight: 800;

    line-height: 1.35;
}

.law-related__text span {
    display: block;

    color: #8a918e;

    font-size: 11px;
    line-height: 1.4;
}


/* ============================================================
   16. ПРАВОВЫЕ ДЕЙСТВИЯ
   ============================================================ */

.law-actions {
    margin-top: 38px;
}

.law-actions__title {
    margin: 0 0 17px;

    color: #262424;

    font-size: 21px;
    font-weight: 850;

    line-height: 1.3;
}

.law-action-list {
    display: grid;

    gap: 10px;
}

.law-action {
    display: grid;

    grid-template-columns: 44px minmax(0, 1fr) 22px;

    align-items: center;

    gap: 14px;

    min-height: 70px;

    padding: 13px 17px;

    border: 1px solid rgba(38, 36, 36, 0.08);
    border-radius: 11px;

    color: inherit;

    background: #ffffff;

    text-decoration: none;

    transition:
        transform 0.2s ease,
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.law-action:hover {
    border-color: rgba(24, 149, 137, 0.20);

    transform: translateY(-2px);

    box-shadow:
        0 8px 22px rgba(38, 36, 36, 0.055);
}

.law-action__icon {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 42px;
    height: 42px;

    border-radius: 10px;

    color: #189589;

    background: #edf8f5;
}

.law-action__title {
    margin: 0 0 3px;

    color: #343a38;

    font-size: 14px;
    font-weight: 800;

    line-height: 1.35;
}

.law-action__description {
    margin: 0;

    color: #828a87;

    font-size: 12px;
    line-height: 1.45;
}

.law-action__arrow {
    color: #a4aaa8;

    font-size: 15px;

    transition:
        color 0.2s ease,
        transform 0.2s ease;
}

.law-action:hover .law-action__arrow {
    color: #189589;

    transform: translateX(3px);
}


/* ============================================================
   17. ОРГАН / КОМПЕТЕНЦИЯ
   ============================================================ */

.law-authority {
    display: flex;
    align-items: flex-start;

    gap: 16px;

    padding: 21px;

    border: 1px solid rgba(38, 36, 36, 0.08);
    border-radius: 13px;

    background: #ffffff;
}

.law-authority__icon {
    flex: 0 0 auto;

    display: flex;
    align-items: center;
    justify-content: center;

    width: 46px;
    height: 46px;

    border-radius: 11px;

    color: #189589;

    background: #edf8f5;
}

.law-authority__name {
    margin: 0 0 5px;

    color: #343a38;

    font-size: 15px;
    font-weight: 850;

    line-height: 1.35;
}

.law-authority__description {
    margin: 0;

    color: #727a77;

    font-size: 13px;
    line-height: 1.6;
}


/* ============================================================
   18. ОТВЕТСТВЕННОСТЬ
   ============================================================ */

.law-liability {
    position: relative;

    padding: 25px 27px;

    border: 1px solid rgba(38, 36, 36, 0.08);
    border-radius: 14px;

    background: #ffffff;
}

.law-liability + .law-liability {
    margin-top: 12px;
}

.law-liability__type {
    display: inline-flex;

    margin-bottom: 11px;

    padding: 6px 9px;

    border-radius: 6px;

    color: #189589;

    background: #edf8f5;

    font-size: 10px;
    font-weight: 850;

    line-height: 1;

    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.law-liability__title {
    margin: 0 0 8px;

    color: #262424;

    font-size: 18px;
    font-weight: 850;

    line-height: 1.3;
}

.law-liability__description {
    margin: 0;

    color: #6d7572;

    font-size: 14px;
    line-height: 1.65;
}


/* ============================================================
   19. ПУСТОЕ СОСТОЯНИЕ
   ============================================================ */

.law-empty {
    padding: 50px 30px;

    border: 1px dashed rgba(38, 36, 36, 0.15);
    border-radius: 15px;

    text-align: center;

    background: #fbfcfb;
}

.law-empty__icon {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 54px;
    height: 54px;

    margin: 0 auto 16px;

    border-radius: 14px;

    color: #189589;

    background: #edf8f5;

    font-size: 20px;
}

.law-empty__title {
    margin: 0 0 7px;

    color: #343a38;

    font-size: 19px;
    font-weight: 800;
}

.law-empty__text {
    max-width: 520px;

    margin: 0 auto;

    color: #7b8380;

    font-size: 14px;
    line-height: 1.6;
}


/* ============================================================
   20. ПАНЕЛЬ ПРАВОВОЙ ОГОВОРКИ
   ============================================================ */

.law-disclaimer {
    margin-top: 40px;

    padding: 23px 25px;

    border-radius: 13px;

    background: #f5f6f5;
}

.law-disclaimer__title {
    margin: 0 0 7px;

    color: #4b514f;

    font-size: 14px;
    font-weight: 850;

    line-height: 1.35;
}

.law-disclaimer__text {
    margin: 0;

    color: #777e7b;

    font-size: 12px;
    line-height: 1.65;
}


/* ============================================================
   21. КНОПКИ ЮРИДИЧЕСКОГО ИНТЕРФЕЙСА
   ============================================================ */

.law-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 46px;

    padding: 0 18px;

    border: 1px solid rgba(24, 149, 137, 0.18);
    border-radius: 9px;

    color: #189589;

    background: #ffffff;

    font-family: inherit;
    font-size: 13px;
    font-weight: 800;

    text-decoration: none;

    cursor: pointer;

    transition:
        background-color 0.2s ease,
        border-color 0.2s ease,
        transform 0.2s ease;
}

.law-button:hover {
    border-color: rgba(24, 149, 137, 0.32);

    background: #f2faf7;

    transform: translateY(-1px);
}

.law-button--primary {
    color: #ffffff;

    border-color: #189589;

    background: #189589;
}

.law-button--primary:hover {
    color: #ffffff;

    background: #147e75;
}


/* ============================================================
   22. АДАПТАЦИЯ
   ============================================================ */

@media (max-width: 800px) {

    .law-page-header {
        padding: 45px 0 42px;
    }

    .law-article {
        padding: 30px;
    }

    .law-evidence-grid,
    .law-related__list {
        grid-template-columns: 1fr;
    }

    .law-route {
        padding: 25px;
    }
}


@media (max-width: 560px) {

    .law-page-header {
        padding: 38px 0 35px;
    }

    .law-page-header__title {
        font-size: 34px;
    }

    .law-page-header__description {
        font-size: 14px;
    }

    .law-article {
        padding: 23px 20px;

        border-radius: 13px;
    }

    .law-article__title {
        font-size: 28px;
    }

    .law-article__lead {
        font-size: 15px;
    }

    .law-content {
        font-size: 15px;
    }

    .law-content h2 {
        margin-top: 34px;

        font-size: 25px;
    }

    .law-content h3 {
        font-size: 19px;
    }

    .law-warning {
        grid-template-columns: 1fr;

        gap: 14px;

        padding: 20px;
    }

    .law-warning__icon {
        width: 44px;
        height: 44px;
    }

    .law-meaning {
        padding: 22px 21px 22px 24px;
    }

    .law-meaning__title {
        font-size: 18px;
    }

    .law-source {
        align-items: flex-start;

        padding: 14px;
    }

    .law-source__link {
        display: none;
    }

    .law-route {
        padding: 21px 18px;
    }

    .law-route__title {
        font-size: 22px;
    }

    .law-route-step {
        grid-template-columns: 48px minmax(0, 1fr);

        gap: 14px;
    }

    .law-route-step:not(:last-child)::before {
        left: 23px;
        top: 48px;
    }

    .law-route-step__number {
        width: 46px;
        height: 46px;

        font-size: 13px;
    }

    .law-route-step__content {
        padding-top: 2px;
    }

    .law-evidence {
        padding: 18px;
    }

    .law-authority {
        padding: 18px;
    }

    .law-liability {
        padding: 21px;
    }
}


/* ============================================================
   23. ПЕЧАТЬ ЮРИДИЧЕСКИХ БЛОКОВ
   ============================================================ */

@media print {

    .law-card,
    .law-panel,
    .law-box,
    .law-route,
    .law-source,
    .law-evidence,
    .law-article,
    .law-authority,
    .law-liability {
        border: 1px solid #cccccc;

        box-shadow: none;

        break-inside: avoid;
    }

    .law-warning,
    .law-meaning {
        border: 1px solid #cccccc;

        background: #ffffff;
    }

    .law-source__link,
    .law-action__arrow,
    .law-related__icon {
        color: #000000;
    }
}
.law-404 { min-height: 560px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 70px 0 90px; text-align: center; } .law-404__mark { position: relative; width: 150px; height: 150px; margin-bottom: 34px; display: flex; align-items: center; justify-content: center; border: 1px solid rgba(24,149,137,.14); border-radius: 38px; background: radial-gradient(circle at 30% 25%, rgba(129,199,132,.18), transparent 42%), linear-gradient(145deg, #ffffff 0%, var(--law-primary-light) 100%); box-shadow: 0 18px 45px rgba(38,36,36,.08); } .law-404__mark::before, .law-404__mark::after { content: ""; position: absolute; border-radius: 50%; pointer-events: none; } .law-404__mark::before { width: 190px; height: 190px; border: 1px solid rgba(24,149,137,.055); } .law-404__mark::after { width: 230px; height: 230px; border: 1px solid rgba(24,149,137,.035); } .law-404__number { position: relative; z-index: 2; color: var(--law-primary); font-family: var(--law-font-heading); font-size: 42px; line-height: 1; font-weight: 850; letter-spacing: -.06em; } .law-404__symbol { position: absolute; right: 17px; bottom: 13px; z-index: 3; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; border-radius: 9px; background: var(--law-white); color: var(--law-accent); font-family: Georgia, serif; font-size: 19px; line-height: 1; font-weight: 700; box-shadow: 0 5px 16px rgba(38,36,36,.08); } .law-404__content { max-width: 680px; } .law-404__title { margin: 0 0 15px; color: var(--law-text); font-family: var(--law-font-heading); font-size: clamp(34px, 5vw, 48px); line-height: 1.08; font-weight: 850; letter-spacing: -.045em; } .law-404__description { max-width: 590px; margin: 0 auto; color: var(--law-text-soft); font-size: 16px; line-height: 1.7; } .law-404__actions { margin-top: 30px; display: flex; align-items: center; justify-content: center; gap: 12px; flex-wrap: wrap; } .law-404__actions .law-button { min-height: 48px; } .law-404__hint { max-width: 600px; margin: 42px auto 0; padding: 19px 22px; display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 14px; text-align: left; border: 1px solid var(--law-border); border-radius: var(--law-radius-medium); background: rgba(255,255,255,.72); } .law-404__hint-icon { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; border-radius: 10px; background: var(--law-accent-light); color: var(--law-primary-dark); font-family: var(--law-font-heading); font-size: 15px; font-weight: 850; } .law-404__hint-content strong { display: block; margin-bottom: 4px; color: var(--law-text); font-family: var(--law-font-heading); font-size: 13px; font-weight: 800; } .law-404__hint-content p { margin: 0; color: var(--law-text-muted); font-size: 13px; line-height: 1.6; } @media (max-width: 560px) { .law-404 { min-height: 520px; padding: 50px 0 70px; } .law-404__mark { width: 125px; height: 125px; margin-bottom: 28px; border-radius: 32px; } .law-404__mark::before { width: 160px; height: 160px; } .law-404__mark::after { width: 195px; height: 195px; } .law-404__number { font-size: 36px; } .law-404__symbol { right: 13px; bottom: 10px; width: 29px; height: 29px; font-size: 17px; } .law-404__title { font-size: 32px; } .law-404__description { font-size: 15px; } .law-404__actions { flex-direction: column; align-items: stretch; } .law-404__actions .law-button { width: 100%; } .law-404__hint { margin-top: 34px; padding: 17px; grid-template-columns: 1fr; gap: 10px; } }
/* ============================================================
   24. КАТАЛОГ НОРМАТИВНЫХ ПРАВОВЫХ АКТОВ
   ============================================================ */

.law-npa {
    padding: 46px 0 80px;
}

.law-npa .law-container {
    width: min(1180px, calc(100% - 40px));
    margin: 0 auto;
}


/* ============================================================
   24.1. ХЛЕБНЫЕ КРОШКИ
   ============================================================ */

.law-npa__breadcrumbs {
    margin-bottom: 30px;

    color: #8b918e;

    font-size: 12px;
    line-height: 1.5;
}

.law-npa__breadcrumbs a {
    color: #68716d;

    text-decoration: none;
}

.law-npa__breadcrumbs a:hover {
    color: #189589;
}


/* ============================================================
   24.2. ЗАГОЛОВОК КАТАЛОГА
   ============================================================ */

.law-npa__header {
    max-width: 900px;

    margin-bottom: 42px;
}

.law-npa__header--single {
    max-width: 980px;

    margin-bottom: 48px;
}

.law-npa__eyebrow {
    display: inline-flex;
    align-items: center;

    gap: 9px;

    margin-bottom: 17px;

    color: #189589;

    font-size: 12px;
    font-weight: 850;

    line-height: 1.2;

    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.law-npa__eyebrow-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 30px;
    height: 30px;

    border-radius: 8px;

    color: #189589;

    background: #edf8f5;

    font-size: 13px;

    letter-spacing: normal;
}

.law-npa__title {
    margin: 0 0 18px;

    color: #262424;

    font-size: clamp(34px, 4vw, 50px);
    font-weight: 850;

    line-height: 1.1;

    letter-spacing: -0.035em;
}

.law-npa__intro {
    max-width: 820px;

    color: #68706d;

    font-size: 16px;
    line-height: 1.75;
}

.law-npa__intro p {
    margin: 0 0 14px;
}

.law-npa__intro p:last-child {
    margin-bottom: 0;
}


/* ============================================================
   24.3. СЕТКА НПА
   ============================================================ */

.law-npa__grid {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 18px;
}


/* ============================================================
   24.4. КАРТОЧКА НПА
   ============================================================ */

.law-npa__card {
    position: relative;

    display: flex;
    flex-direction: column;

    min-width: 0;

    padding: 27px 28px 24px;

    border: 1px solid rgba(38, 36, 36, 0.08);
    border-radius: 15px;

    background: #ffffff;

    box-shadow:
        0 7px 26px rgba(38, 36, 36, 0.035);

    transition:
        transform 0.2s ease,
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.law-npa__card:hover {
    border-color: rgba(24, 149, 137, 0.20);

    transform: translateY(-2px);

    box-shadow:
        0 12px 30px rgba(38, 36, 36, 0.065);
}

.law-npa__card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 10px;

    margin-bottom: 17px;
}

.law-npa__type,
.law-npa__status {
    display: inline-flex;
    align-items: center;

    min-height: 27px;

    padding: 6px 9px;

    border-radius: 7px;

    font-size: 10px;
    font-weight: 850;

    line-height: 1;

    letter-spacing: 0.04em;
}

.law-npa__type {
    color: #68706d;

    background: #f4f6f5;
}

.law-npa__status {
    margin-left: auto;
}

.law-npa__status::before {
    content: "";

    width: 6px;
    height: 6px;

    margin-right: 6px;

    border-radius: 50%;

    background: currentColor;
}

.law-npa__status--is-active {
    color: #2e7d52;

    background: #edf8f1;
}

.law-npa__status--is-changed {
    color: #9a7418;

    background: #fff8df;
}

.law-npa__status--is-repealed {
    color: #9b5757;

    background: #fff0f0;
}

.law-npa__status--is-suspended {
    color: #896d9b;

    background: #f5eff9;
}

.law-npa__status--is-draft {
    color: #69767a;

    background: #f0f3f4;
}

.law-npa__status--is-unknown {
    color: #777777;

    background: #f2f2f2;
}


/* ============================================================
   24.5. НАЗВАНИЕ НПА
   ============================================================ */

.law-npa__card-title {
    margin: 0 0 10px;

    color: #262424;

    font-size: 22px;
    font-weight: 850;

    line-height: 1.28;

    letter-spacing: -0.018em;
}

.law-npa__card-link {
    color: inherit;

    text-decoration: none;
}

.law-npa__card-link::after {
    content: "";

    position: absolute;

    inset: 0;

    z-index: 1;
}

.law-npa__card-link:hover {
    color: #189589;
}

.law-npa__short-title {
    margin-bottom: 17px;

    color: #747c79;

    font-size: 13px;
    line-height: 1.5;
}

.law-npa__short-title--large {
    margin-bottom: 22px;

    color: #68706d;

    font-size: 16px;
    line-height: 1.55;
}


/* ============================================================
   24.6. МЕТАДАННЫЕ НПА
   ============================================================ */

.law-npa__meta {
    display: flex;
    flex-wrap: wrap;

    gap: 7px 8px;

    margin-bottom: 19px;
}

.law-npa__meta-item {
    display: inline-flex;
    align-items: center;

    min-height: 28px;

    padding: 6px 9px;

    border-radius: 7px;

    color: #6d7572;

    background: #f6f7f6;

    font-size: 11px;

    line-height: 1.3;
}

.law-npa__meta-item i {
    margin-right: 5px;

    color: #189589;
}


/* ============================================================
   24.7. ОПИСАНИЕ НПА
   ============================================================ */

.law-npa__card-description {
    color: #68706d;

    font-size: 13px;
    line-height: 1.65;
}

.law-npa__card-description p {
    margin: 0 0 9px;
}

.law-npa__card-description p:last-child {
    margin-bottom: 0;
}


/* ============================================================
   24.8. НИЖНЯЯ ЧАСТЬ КАРТОЧКИ
   ============================================================ */

.law-npa__card-footer {
    position: relative;
    z-index: 2;

    display: flex;
    align-items: center;

    margin-top: auto;
    padding-top: 21px;
}

.law-npa__more {
    display: inline-flex;
    align-items: center;

    gap: 7px;

    color: #189589;

    font-size: 12px;
    font-weight: 850;

    text-decoration: none;
}

.law-npa__more i {
    font-size: 11px;

    transition:
        transform 0.2s ease;
}

.law-npa__more:hover {
    color: #147e75;
}

.law-npa__more:hover i {
    transform: translateX(3px);
}


/* ============================================================
   24.9. МЕТАДАННЫЕ ОТДЕЛЬНОГО НПА
   ============================================================ */

.law-npa__document-meta {
    display: flex;
    flex-wrap: wrap;

    gap: 8px 10px;

    margin-bottom: 27px;
}

.law-npa__document-meta span {
    display: inline-flex;
    align-items: center;

    min-height: 31px;

    padding: 7px 10px;

    border-radius: 7px;

    color: #68706d;

    background: #f4f6f5;

    font-size: 12px;

    line-height: 1.35;
}

.law-npa__document-meta strong {
    margin-right: 5px;

    color: #343a38;
}


/* ============================================================
   24.10. РАЗДЕЛ СТАТЕЙ НПА
   ============================================================ */

.law-npa__section {
    margin-top: 48px;
}

.law-npa__section-heading {
    display: flex;
    align-items: flex-start;

    gap: 15px;

    margin-bottom: 24px;
}

.law-npa__section-icon {
    flex: 0 0 auto;

    display: flex;
    align-items: center;
    justify-content: center;

    width: 44px;
    height: 44px;

    border-radius: 11px;

    color: #189589;

    background: #edf8f5;

    font-size: 15px;
}

.law-npa__section-heading h2 {
    margin: 1px 0 5px;

    color: #262424;

    font-size: 25px;
    font-weight: 850;

    line-height: 1.25;

    letter-spacing: -0.02em;
}

.law-npa__section-heading p {
    margin: 0;

    color: #737b78;

    font-size: 13px;
    line-height: 1.6;
}


/* ============================================================
   24.11. СПИСОК СТАТЕЙ
   ============================================================ */

.law-npa__articles {
    display: grid;

    gap: 12px;
}


/* ============================================================
   24.12. КАРТОЧКА СТАТЬИ
   ============================================================ */

.law-npa__article-card {
    position: relative;

    min-width: 0;

    padding: 22px 24px 21px;

    border: 1px solid rgba(38, 36, 36, 0.08);
    border-radius: 13px;

    background: #ffffff;

    box-shadow:
        0 5px 20px rgba(38, 36, 36, 0.025);

    transition:
        transform 0.2s ease,
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.law-npa__article-card:hover {
    border-color: rgba(24, 149, 137, 0.20);

    transform: translateY(-1px);

    box-shadow:
        0 9px 24px rgba(38, 36, 36, 0.05);
}

.law-npa__article-number {
    display: inline-flex;
    align-items: center;

    margin-bottom: 10px;

    padding: 6px 9px;

    border-radius: 7px;

    color: #189589;

    background: #edf8f5;

    font-size: 11px;
    font-weight: 850;

    line-height: 1;
}

.law-npa__article-title {
    position: relative;
    z-index: 2;

    margin: 0 0 8px;

    color: #262424;

    font-size: 18px;
    font-weight: 850;

    line-height: 1.35;
}

.law-npa__article-link {
    color: inherit;

    text-decoration: none;
}

.law-npa__article-link:hover {
    color: #189589;
}

.law-npa__article-summary {
    position: relative;
    z-index: 2;

    max-width: 900px;

    color: #707875;

    font-size: 13px;
    line-height: 1.65;
}

.law-npa__article-summary p {
    margin: 0 0 8px;
}

.law-npa__article-summary p:last-child {
    margin-bottom: 0;
}

.law-npa__article-more {
    position: relative;
    z-index: 2;

    display: inline-flex;
    align-items: center;

    gap: 7px;

    margin-top: 15px;

    color: #189589;

    font-size: 12px;
    font-weight: 850;

    text-decoration: none;
}

.law-npa__article-more i {
    font-size: 11px;

    transition:
        transform 0.2s ease;
}

.law-npa__article-more:hover {
    color: #147e75;
}

.law-npa__article-more:hover i {
    transform: translateX(3px);
}


/* ============================================================
   24.13. ОФИЦИАЛЬНЫЙ ИСТОЧНИК
   ============================================================ */

.law-npa__official-source {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 22px;

    margin-top: 40px;
    padding: 20px 22px;

    border: 1px solid rgba(24, 149, 137, 0.13);
    border-radius: 13px;

    background:
        linear-gradient(
            135deg,
            #f4faf8 0%,
            #fffdf5 100%
        );
}

.law-npa__official-source strong {
    display: block;

    margin-bottom: 4px;

    color: #343a38;

    font-size: 13px;
    font-weight: 850;

    line-height: 1.35;
}

.law-npa__official-source span {
    display: block;

    color: #7a827f;

    font-size: 12px;
    line-height: 1.45;
}

.law-npa__official-link {
    flex: 0 0 auto;

    display: inline-flex;
    align-items: center;

    gap: 7px;

    color: #189589;

    font-size: 12px;
    font-weight: 850;

    text-decoration: none;
}

.law-npa__official-link:hover {
    color: #147e75;
}


/* ============================================================
   24.14. ОГОВОРКА
   ============================================================ */

.law-npa__disclaimer {
    display: flex;
    align-items: flex-start;

    gap: 11px;

    margin-top: 24px;
    padding: 17px 19px;

    border-radius: 11px;

    color: #747b78;

    background: #f5f6f5;

    font-size: 11px;
    line-height: 1.6;
}

.law-npa__disclaimer i {
    flex: 0 0 auto;

    margin-top: 2px;

    color: #189589;

    font-size: 13px;
}


/* ============================================================
   24.15. ПУСТОЕ СОСТОЯНИЕ
   ============================================================ */

.law-npa__empty {
    padding: 55px 30px;

    border: 1px dashed rgba(38, 36, 36, 0.15);
    border-radius: 15px;

    text-align: center;

    background: #fbfcfb;
}

.law-npa__empty--small {
    padding: 35px 25px;
}

.law-npa__empty-icon {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 54px;
    height: 54px;

    margin: 0 auto 17px;

    border-radius: 14px;

    color: #189589;

    background: #edf8f5;

    font-size: 20px;
}

.law-npa__empty h2 {
    margin: 0 0 8px;

    color: #343a38;

    font-size: 20px;
    font-weight: 850;

    line-height: 1.3;
}

.law-npa__empty p {
    max-width: 540px;

    margin: 0 auto;

    color: #7b8380;

    font-size: 13px;
    line-height: 1.6;
}


/* ============================================================
   24.16. АДАПТАЦИЯ
   ============================================================ */

@media (max-width: 900px) {

    .law-npa__grid {
        grid-template-columns: 1fr;
    }

    .law-npa__card-title {
        font-size: 21px;
    }

    .law-npa__official-source {
        align-items: flex-start;
        flex-direction: column;
    }
}


@media (max-width: 800px) {

    .law-npa {
        padding: 38px 0 65px;
    }

    .law-npa .law-container {
        width: min(100% - 30px, 720px);
    }

    .law-npa__header {
        margin-bottom: 34px;
    }

    .law-npa__header--single {
        margin-bottom: 38px;
    }

    .law-npa__title {
        font-size: clamp(32px, 6vw, 42px);
    }

    .law-npa__section {
        margin-top: 40px;
    }
}


@media (max-width: 560px) {

    .law-npa {
        padding: 30px 0 55px;
    }

    .law-npa .law-container {
        width: calc(100% - 24px);
    }

    .law-npa__breadcrumbs {
        margin-bottom: 23px;
    }

    .law-npa__eyebrow {
        margin-bottom: 14px;

        font-size: 10px;
    }

    .law-npa__eyebrow-icon {
        width: 28px;
        height: 28px;

        font-size: 12px;
    }

    .law-npa__title {
        margin-bottom: 15px;

        font-size: 31px;
    }

    .law-npa__intro {
        font-size: 14px;
        line-height: 1.7;
    }

    .law-npa__card {
        padding: 21px 19px 19px;

        border-radius: 13px;
    }

    .law-npa__card-top {
        align-items: flex-start;
        flex-direction: column;

        gap: 7px;
    }

    .law-npa__status {
        margin-left: 0;
    }

    .law-npa__card-title {
        font-size: 20px;
    }

    .law-npa__meta {
        gap: 6px;
    }

    .law-npa__meta-item {
        font-size: 10px;
    }

    .law-npa__card-description {
        font-size: 12px;
    }

    .law-npa__section-heading {
        gap: 12px;
    }

    .law-npa__section-icon {
        width: 40px;
        height: 40px;

        border-radius: 10px;

        font-size: 13px;
    }

    .law-npa__section-heading h2 {
        font-size: 22px;
    }

    .law-npa__section-heading p {
        font-size: 12px;
    }

    .law-npa__article-card {
        padding: 19px 18px;
    }

    .law-npa__article-title {
        font-size: 17px;
    }

    .law-npa__article-summary {
        font-size: 12px;
    }

    .law-npa__document-meta {
        align-items: flex-start;
        flex-direction: column;
        gap: 6px;
    }

    .law-npa__document-meta span {
        width: 100%;
    }

    .law-npa__short-title--large {
        font-size: 14px;
    }

    .law-npa__official-source {
        padding: 18px;

        gap: 16px;
    }

    .law-npa__official-link {
        align-items: flex-start;
    }

    .law-npa__disclaimer {
        padding: 15px 16px;

        font-size: 10px;
    }
}


/* ============================================================
   24.17. ПЕЧАТЬ
   ============================================================ */

@media print {

    .law-npa__card,
    .law-npa__article-card,
    .law-npa__official-source,
    .law-npa__empty {
        border: 1px solid #cccccc;

        box-shadow: none;

        break-inside: avoid;
    }

    .law-npa__card-link::after {
        display: none;
    }

    .law-npa__more,
    .law-npa__article-more,
    .law-npa__official-link {
        color: #000000;
    }
}

/* ============================================================
   25. РЕДАКЦИОННЫЕ СТАТЬИ HELP SAFE LAW
   Вводный абзац и правовая оговорка
   ============================================================ */

/* Вводный абзац: типографический акцент без отдельной карточки. */
.law-article__lead {
    padding-left: 18px;
    border-left: 3px solid #189589;
    font-style: italic;
    color: #59615e;
}

/* Правовая оговорка в конце редакционной статьи. */
.law-article__disclaimer {
    display: flex;
    align-items: flex-start;
    gap: 11px;

    margin: 32px 0 0;
    padding: 16px 18px;

    border-left: 3px solid #189589;
    border-radius: 8px;

    color: #59615e;
    background: #f4f8f7;

    font-size: 13px;
    line-height: 1.65;
}

.law-article__disclaimer::before {
    content: "\f06a";
    display: inline-block;
    flex: 0 0 auto;
    margin-top: 2px;

    color: #189589;
    font-family: "Font Awesome 5 Free";
    font-size: 17px;
    font-weight: 900;
    line-height: 1.3;
}

@media (max-width: 767px) {
    .law-article__lead {
        padding-left: 13px;
    }

    .law-article__disclaimer {
        gap: 9px;
        margin-top: 26px;
        padding: 14px 14px;
        font-size: 12px;
    }

    .law-article__disclaimer::before {
        font-size: 16px;
    }
}

