@layer base {
    :root,
    [data-bs-theme="light"],
    [data-bs-theme="dark"] {
        --bs-body-font-family: var(--aer-fonte);
        --bs-body-font-size: var(--aer-t-3);
        --bs-body-line-height: 1.5;
        --bs-body-color: var(--aer-texto);
        --bs-body-color-rgb: var(--aer-texto-rgb);
        --bs-body-bg: var(--aer-fundo);
        --bs-body-bg-rgb: var(--aer-fundo-rgb);
        --bs-emphasis-color: var(--aer-texto);
        --bs-emphasis-color-rgb: var(--aer-texto-rgb);
        --bs-secondary-color: var(--aer-texto-2);
        --bs-tertiary-color: var(--aer-texto-3);
        --bs-secondary-bg: var(--aer-superficie-3);
        --bs-tertiary-bg: var(--aer-superficie-2);
        --bs-tertiary-bg-rgb: var(--aer-superficie-2-rgb);
        --bs-heading-color: inherit;
        --bs-border-color: var(--aer-borda);
        --bs-border-color-translucent: var(--aer-borda);
        --bs-border-radius: var(--aer-raio);
        --bs-border-radius-sm: var(--aer-raio-p);
        --bs-border-radius-lg: var(--aer-raio-g);
        --bs-border-radius-xl: var(--aer-raio-g);
        --bs-border-radius-pill: var(--aer-raio-pilula);
        --bs-link-color: var(--aer-acao-texto);
        --bs-link-color-rgb: var(--aer-acao-texto-rgb);
        --bs-link-hover-color: var(--aer-acao-texto);
        --bs-link-hover-color-rgb: var(--aer-acao-texto-rgb);
        --bs-link-decoration: underline;
        --bs-focus-ring-color: rgba(var(--aer-acao-rgb), .28);
        --bs-highlight-bg: var(--aer-atencao-sutil);
        --bs-code-color: var(--aer-texto);

        --bs-primary: var(--aer-acao);
        --bs-primary-rgb: var(--aer-acao-rgb);
        --bs-secondary-rgb: var(--aer-neutro-rgb);
        --bs-success-rgb: var(--aer-positivo-rgb);
        --bs-info-rgb: var(--aer-info-rgb);
        --bs-warning-rgb: var(--aer-atencao-rgb);
        --bs-danger-rgb: var(--aer-negativo-rgb);
        --bs-light-rgb: var(--aer-superficie-2-rgb);
        --bs-dark-rgb: var(--aer-texto-rgb);
        --bs-white-rgb: 255, 255, 255;

        --bs-primary-text-emphasis: var(--aer-acao-texto);
        --bs-primary-bg-subtle: var(--aer-acao-sutil);
        --bs-primary-border-subtle: var(--aer-acao-sutil-forte);
        --bs-secondary-text-emphasis: var(--aer-texto-2);
        --bs-secondary-bg-subtle: var(--aer-neutro-sutil);
        --bs-secondary-border-subtle: var(--aer-borda-forte);
        --bs-success-text-emphasis: var(--aer-positivo);
        --bs-success-bg-subtle: var(--aer-positivo-sutil);
        --bs-success-border-subtle: rgba(var(--aer-positivo-rgb), .28);
        --bs-info-text-emphasis: var(--aer-info);
        --bs-info-bg-subtle: var(--aer-info-sutil);
        --bs-info-border-subtle: rgba(var(--aer-info-rgb), .28);
        --bs-warning-text-emphasis: var(--aer-atencao);
        --bs-warning-bg-subtle: var(--aer-atencao-sutil);
        --bs-warning-border-subtle: rgba(var(--aer-atencao-rgb), .3);
        --bs-danger-text-emphasis: var(--aer-negativo);
        --bs-danger-bg-subtle: var(--aer-negativo-sutil);
        --bs-danger-border-subtle: rgba(var(--aer-negativo-rgb), .28);
        --bs-light-text-emphasis: var(--aer-texto-2);
        --bs-light-bg-subtle: var(--aer-superficie-2);
        --bs-light-border-subtle: var(--aer-borda);
        --bs-dark-text-emphasis: var(--aer-texto);
        --bs-dark-bg-subtle: var(--aer-superficie-3);
        --bs-dark-border-subtle: var(--aer-borda-forte);
    }

    html {
        -webkit-text-size-adjust: 100%;
        text-rendering: optimizeLegibility;
    }

    body {
        margin: 0;
        background: var(--aer-fundo);
        color: var(--aer-texto);
        font-family: var(--aer-fonte);
        font-size: var(--aer-t-3);
        line-height: 1.5;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
    }

    h1, h2, h3, h4, h5, h6,
    .h1, .h2, .h3, .h4, .h5, .h6 {
        font-family: var(--aer-fonte-titulo);
        font-weight: var(--aer-peso-titulo);
        font-stretch: var(--aer-largura-titulo);
        line-height: 1.2;
        letter-spacing: -.005em;
    }

    h1, .h1 { font-size: var(--aer-t-7); letter-spacing: -.01em; }
    h2, .h2 { font-size: var(--aer-t-6); letter-spacing: -.01em; }
    h3, .h3 { font-size: var(--aer-t-5); }
    h4, .h4 { font-size: var(--aer-t-5); }
    h5, .h5 { font-size: var(--aer-t-4); }
    h6, .h6 { font-size: var(--aer-t-3); }

    small, .small {
        font-size: var(--aer-t-2);
    }

    a {
        text-decoration-color: rgba(var(--aer-acao-texto-rgb), .38);
        text-decoration-thickness: 1px;
        text-underline-offset: .2em;
    }

        a:hover {
            text-decoration-color: currentColor;
        }

    code, kbd, samp, pre {
        font-family: var(--aer-fonte-mono);
    }

    hr {
        border: 0;
        border-top: 1px solid var(--aer-borda);
        opacity: 1;
    }

    ::selection {
        background: rgba(var(--aer-marca-rgb), .16);
        color: inherit;
    }

    input, textarea {
        caret-color: var(--aer-acao);
    }

    input[type="checkbox"],
    input[type="radio"] {
        accent-color: var(--aer-acao);
    }

    :focus-visible {
        outline: 2px solid var(--aer-anel-foco);
        outline-offset: 2px;
    }

    * {
        scrollbar-color: var(--aer-borda-forte) transparent;
        scrollbar-width: thin;
    }

    .aer-rotulo {
        font-family: var(--aer-fonte-rotulo);
        font-stretch: var(--aer-largura-rotulo);
        font-size: 11px;
        font-weight: var(--aer-peso-medio);
        letter-spacing: .085em;
        line-height: 1.3;
        text-transform: uppercase;
        color: var(--aer-texto-rotulo);
    }

    .aer-mono {
        font-family: var(--aer-fonte-mono);
        font-size: .9em;
        letter-spacing: -.01em;
    }

    table,
    .aer-num,
    input[type="number"],
    .badge {
        font-variant-numeric: tabular-nums lining-nums;
    }

    .visually-hidden,
    .sr-only {
        position: absolute !important;
        width: 1px !important;
        height: 1px !important;
        padding: 0 !important;
        margin: -1px !important;
        overflow: hidden !important;
        clip: rect(0, 0, 0, 0) !important;
        white-space: nowrap !important;
        border: 0 !important;
    }

    @media (prefers-reduced-motion: reduce) {
        *,
        *::before,
        *::after {
            scroll-behavior: auto !important;
        }
    }
}
