* {
    box-sizing: border-box;
}

html,
body {
    margin: 0;
    padding: 0;
}

body {
    background: var(--bg);
    color: var(--text);
    font-family: var(--font);
    font-size: var(--font-base-size);
    line-height: var(--line-height);
}

a {
    color: var(--brand-600);
}

a:hover {
    color: var(--brand-650);
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 3px solid rgba(1, 93, 99, .45);
    outline-offset: 2px;
}

h1,
h2,
h3 {
    margin: 0 0 var(--s-3);
    line-height: 1.2;
    letter-spacing: -.01em;
}

h1 {
    font-size: clamp(1.8rem, 2.3vw, 2.6rem);
}

h2 {
    font-size: clamp(1.35rem, 1.8vw, 1.9rem);
}

h3 {
    font-size: clamp(1.1rem, 1.4vw, 1.35rem);
}

p {
    margin: 0 0 var(--s-4);
    max-width: var(--content-max);
}

.sn-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: var(--s-6) var(--s-4);
}

.sn-section {
    padding: var(--s-7) 0;
}

.sn-grid {
    display: grid;
    gap: var(--s-4);
}

.sn-grid--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.sn-grid--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 900px) {

    .sn-grid--3,
    .sn-grid--2 {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 680px) {
    .sn-container {
        padding: var(--s-4) var(--s-3);
    }

    .sn-section {
        padding: var(--s-5) 0;
    }
}
