@font-face {
    font-family: 'Berkeley Mono';
    src: url('../fonts/BerkeleyMono-Regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

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

body {
    font-family: 'Berkeley Mono', 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', 'Consolas', 'Courier New', monospace;
    background: #fafafa;
    color: #141414;
    min-height: 100dvh;
    font-size: 14px;
    font-weight: 400;
    letter-spacing: -0.01em;
    line-height: 1.4;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    display: grid;
    grid-template-rows: 1fr auto;
    padding: clamp(24px, 4vw, 40px);
}

main {
    min-height: 0;
}

.content {
    display: grid;
}

.content:has(.jobs-container) {
    grid-template-rows: auto 1fr;
    gap: 100px;
    height: 100%;
}

main:has(.home-link) {
    align-self: start;
}

.content:has(.home-link) {
    gap: 200px;
}

main a,
.social-link {
    color: inherit;
    text-decoration: none;
    transition: opacity 0.2s ease;

    &:hover {
        opacity: 0.7;
    }
}

footer {
    display: flex;
    align-items: end;
}

.social-links {
    display: flex;
    gap: 20px;
}

.jobs-container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-self: start;
}

.column-label {
    margin-bottom: 40px;
}

.column-items {
    display: grid;
    gap: 60px;
}

.job-block {
    display: block;
}

.home-link {
    display: inline-block;
}

.skip-link {
    position: absolute;
    top: -40px;
    left: 0;
    background: #141414;
    color: #fafafa;
    padding: 8px;
    text-decoration: none;
    z-index: 100;

    &:focus {
        top: 0;
    }
}

@media (max-width: 320px) {
    body {
        font-size: 13px;
    }
}

@media (max-width: 480px) {
    footer {
        flex-direction: column;
        align-items: start;
        gap: 20px;
    }
}

@media (max-width: 767px) {
    .content:has(.jobs-container) {
        gap: 60px;
    }

    .content:has(.home-link) {
        gap: 120px;
    }

    .jobs-container {
        grid-template-columns: 1fr;
        gap: 60px;
    }

    .column-items {
        gap: 40px;
    }

    .column-label {
        margin-bottom: 30px;
    }
}

@media (min-width: 768px) and (max-width: 1023px) {
    .content:has(.jobs-container) {
        gap: 80px;
    }

    .content:has(.home-link) {
        gap: 160px;
    }

    .jobs-container {
        gap: 40px;
    }

    .column-items {
        gap: 50px;
    }
}
