/* TYPOGRAPHY */
@font-face {
    font-family: 'General Sans';
    src: url('../fonts/GeneralSans-Regular.woff2') format('woff2');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'PP Writer';
    src: url('../fonts/PPWriter-Medium.woff2') format('woff2');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'PP Writer';
    src: url('../fonts/PPWriter-Thin.woff2') format('woff2');
    font-weight: 100;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'PP Writer';
    src: url('../fonts/PPWriter-ThinItalic.woff2') format('woff2');
    font-weight: 100;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'PP Writer Thin Text';
    src: url('../fonts/PPWriter-ThinText.woff2') format('woff2');
    font-weight: 100;
    font-style: normal;
    font-display: swap;
}

body {
    font-family: 'PP Writer', serif;
    font-size: 1.125rem;
    line-height: 1.3;
    letter-spacing: 0.01em;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-weight: 100;
}

h1, h2, h3, h4, h5, h6 {
    font-family: 'PP Writer', serif;
    font-weight: 100;
}

.h-xxl {
    font-family: 'PP Writer', serif;
    font-size: min(7.8rem, calc(7.8 * 100vw / 100));
    letter-spacing: 0.01em;
    line-height: .9;
    font-weight: 100;
}

.h-xl {
    font-family: 'PP Writer', serif;
    font-size: min(4rem, calc(4 * 100vw / 100));
    letter-spacing: 0.04em;
    line-height: 1.1;
    font-weight: 100;
}

.h-l {
    font-family: 'PP Writer', serif;
    font-size: min(2.25rem, calc(2.25 * 100vw / 100));
    letter-spacing: 0.03em;
    line-height: 1.1;
    font-weight: 100;
}

.h-m {
    font-family: 'PP Writer', serif;
    font-size: min(1.5rem, calc(1.5 * 100vw / 100));
    letter-spacing: 0.03em;
    line-height: 1.25;
    font-weight: 100;
}

.h-s {
    font-family: 'PP Writer', serif;
    font-size: 1.125rem;
    letter-spacing: 0.03em;
    line-height: 1.3;
    font-weight: 100;
}

.h-xs {
    font-family: 'PP Writer', serif;
    font-size: 0.85rem;
    letter-spacing: 0.035em;
    line-height: 1.4;
    font-weight: 100;
}

.h-uppercase{
    text-transform: uppercase;
}

.h-medium {
    font-weight: 500;
}

.h-sans {
    font-family: 'General Sans', sans-serif;
    font-size: 0.875rem;
    letter-spacing: 0.02em;
    line-height: 1.4;
    font-weight: 300;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

@media (max-width: 991px) {
    body {
        font-size: 1rem;
        line-height: 1.35;
        letter-spacing: 0.005em;
    }

    .h-xxl {
        font-size: 3.25rem;
        line-height: 0.95;
        letter-spacing: 0.025em;
    }

    .h-xl {
        font-size: 2.5rem;
        line-height: 0.95;
        letter-spacing: 0.035em;
    }

    .h-l {
        font-size: 1.75rem;
        line-height: 1.15;
    }

    .h-m {
        font-size: 1rem;
        line-height: 1.25;
    }

    .h-s {
        font-size: 1rem;
        line-height: 1.35;
    }

    .h-xs {
        font-size: 0.875rem;
        line-height: 1.45;
    }

    .h-sans {
        font-size: 0.75rem;
        line-height: 1.45;
        letter-spacing: 0.06em;
    }
}