/* =========================================================================
   01-reset.css
   Modern CSS reset (на базе Andy Bell / Josh Comeau) + базовая типографика.
   Слой каскада: reset (низший приоритет).
   ========================================================================= */

@layer reset {

    *,
    *::before,
    *::after {
        box-sizing: border-box;
    }

    /* Предсказуемые размеры в потоке, уважаем margin-block */
    * {
        margin: 0;
    }

    html {
        -webkit-text-size-adjust: 100%;
        -moz-text-size-adjust: 100%;
        text-size-adjust: 100%;
        scroll-behavior: smooth;
        scroll-padding-block-start: 80px;
        hanging-punctuation: first last;
    }

    body {
        min-height: 100vh;
        min-height: 100dvh;
        line-height: 1.5;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        text-rendering: optimizeLegibility;
    }

    /* Картинки и медиа по умолчанию — блочные, вписываются в контейнер */
    img,
    picture,
    video,
    canvas,
    svg {
        display: block;
        max-width: 100%;
        height: auto;
    }

    /* Наследование шрифтов у форм */
    input,
    button,
    textarea,
    select {
        font: inherit;
        color: inherit;
    }

    button {
        background: transparent;
        border: 0;
        padding: 0;
        cursor: pointer;
    }

    /* Удаляем стандартные стили списков там, где они не нужны */
    ul[role="list"],
    ol[role="list"],
    .list-reset {
        list-style: none;
        padding-inline: 0;
    }

    a {
        color: inherit;
        text-decoration: none;
    }

    /* Без переноса слов в заголовках по умолчанию — управляем точечно */
    h1, h2, h3, h4, h5, h6 {
        text-wrap: balance;
        line-height: 1.2;
    }

    p {
        text-wrap: pretty;
    }

    /* Таблицы */
    table {
        border-collapse: collapse;
        border-spacing: 0;
    }

    /* Скрытие outline только для мыши, для клавиатуры оставляем */
    :focus {
        outline: none;
    }

    :focus-visible {
        outline: 2px solid var(--color-gold-400, #d8ae72);
        outline-offset: 3px;
        border-radius: 4px;
    }

    /* Уважаем пользовательские настройки */
    @media (prefers-reduced-motion: reduce) {
        *,
        *::before,
        *::after {
            animation-duration: 0.01ms !important;
            animation-iteration-count: 1 !important;
            transition-duration: 0.01ms !important;
            scroll-behavior: auto !important;
        }
    }
}
