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

html {
    min-height: 100%;
    background: var(--sg-bg);
}

body.sg-body {
    min-width: 320px;
    min-height: 100vh;
    margin: 0;
    background: var(--sg-bg);
    color: var(--sg-text);
    font-family: var(--sg-font-sans);
    font-size: var(--sg-type-body);
    line-height: 1.65;
    letter-spacing: .005em;
}

.sg-body a {
    color: var(--sg-accent-solid);
    transition: color var(--sg-transition), border-color var(--sg-transition), background-color var(--sg-transition), transform var(--sg-transition);
}

.sg-body a:hover,
.sg-body a:focus {
    color: var(--sg-accent-solid-hover);
    text-decoration: none;
}

.sg-body button,
.sg-body input,
.sg-body select,
.sg-body textarea {
    font-family: inherit;
}

.sg-body h1,
.sg-body h2,
.sg-body h3,
.sg-body h4,
.sg-body h5,
.sg-body h6,
.sg-body p {
    margin-top: 0;
}

.sg-body h1,
.sg-body h2,
.sg-body h3,
.sg-body h4 {
    color: var(--sg-text);
    letter-spacing: -.025em;
    font-weight: 680;
}

.sg-body code,
.sg-body pre,
.sg-body kbd,
.sg-body samp {
    font-family: var(--sg-font-mono);
}

.sg-body img {
    max-width: 100%;
}

.sg-body .w-hidden {
    display: none;
}

.sg-body .clearfix::after {
    display: table;
    clear: both;
    content: "";
}

.sg-body .text-muted,
.sg-body .text-lighter {
    color: var(--sg-text-muted) !important;
}

.sg-body .primary-bg-color {
    background: var(--sg-bg);
}

.sg-body .alert-link {
    color: inherit;
    font-weight: 650;
}

@media (prefers-reduced-motion: reduce) {
    .sg-body *,
    .sg-body *::before,
    .sg-body *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}
