* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: var(--body);
    background: var(--background);
    color: var(--text);
    line-height: 1.7;

    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

img {
    display: block;
    width: 100%;
    max-width: 100%;
}

section {
    padding: var(--section-padding);
}

.container {
    width: 100%;
    max-width: var(--content-width);
    margin: 0 auto;
}

h1,
h2,
h3,
h4 {
    font-family: var(--heading);
    color: var(--primary);
    line-height: 1.15;
    font-weight: 600;
}

h1 {
    font-size: 58px;
    letter-spacing: -0.5px;
}

h2 {
    font-size: 50px;
    margin-bottom: 28px;
    letter-spacing: -0.3px;
}

h3 {
    font-size: 30px;
}

p {
    font-size: 17px;
    line-height: 1.8;
}

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

button {
    font-family: var(--body);
    cursor: pointer;
    border: none;
    transition:
        background 0.3s ease,
        color 0.3s ease,
        border-color 0.3s ease,
        transform 0.3s ease;
}

.primary-btn {
    display: inline-block;

    background: var(--primary);
    color: var(--white);

    border: 1px solid var(--primary);

    padding: 15px 34px;

    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.6px;
}

.primary-btn:hover {
    background: var(--secondary);
    border-color: var(--secondary);
    color: var(--primary);
}

.secondary-btn {
    display: inline-block;

    background: var(--white);
    color: var(--primary);

    border: 1px solid #D8D4CC;

    padding: 15px 34px;

    font-size: 14px;
    font-weight: 700;
}

.secondary-btn:hover {
    background: var(--primary);
    border-color: var(--primary);
    color: var(--white);
}

::selection {
    background: var(--secondary);
    color: var(--primary);
}

button:focus-visible,
a:focus-visible {
    outline: 2px solid var(--secondary);
    outline-offset: 4px;
}