:root {
    --blue: #034A75;
    --blue-light: #D8F3FF;
    --blue-hover: #607d8b;

    --text: #222;
    --border: #d8e1e5;

    --content-width: 1100px;
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;

    font-family:
        Roboto,
        Helvetica,
        Arial,
        sans-serif;

    color: var(--text);

    background: white;

    line-height: 1.7;

    min-height: 100vh;
    display: flex;
    flex-direction: column;
    margin: 0;
}

main {
    padding-bottom: 2em;
}

.container {
    width: min(100% - 2rem, var(--content-width));
    margin: auto;
}

.hero {
    padding-top: 4rem;
    padding-bottom: 2rem;
}

h1 {
    margin: 0;

    color: black;

    font-size: clamp(3rem, 9vw, 5.5rem);

    font-family:
        Helvetica,
        Aptos,
        Asap,
        Calibri,
        sans-serif;

    font-weight: normal;
}

.subtitle {
    color: var(--blue);

    font-size: 1.2rem;

    font-weight: 600;

    margin-bottom: 0.5rem;
}

.intro {
    max-width: 700px;

    font-size: 1.2rem;
}

.hero nav {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;

    margin-top: 2rem;
}

a {
    color: var(--blue);
    text-decoration: none;
    font-weight: bold;
}

.hero nav a {
    border: 2px solid var(--blue);

    padding: 0.6rem 1rem;

    border-radius: 6px;

    transition: 0.15s;
}

.hero nav a:hover {
    background: var(--blue);
    color: white;
}

section {
    margin-top: 4rem;
    margin-bottom: 4rem;
}

h2 {
    display: inline-block;

    padding-bottom: 0.25rem;

    border-bottom: 3px solid var(--blue);

    margin-bottom: 1.5rem;
}

.card-grid {
    display: grid;

    grid-template-columns:
        repeat(auto-fit, minmax(320px, 1fr));

    gap: 1rem;
}

.card {
    display: block;

    background: var(--blue-light);

    color: inherit;

    padding: 1.5rem;

    border-radius: 8px;

    border: 1px solid transparent;

    transition: 0.15s;
}

a.card:hover {
    background: #c3ebfa;

    transform: translateY(-2px);
}

.card-type {
    color: var(--blue);

    font-size: 0.9rem;

    font-weight: bold;

    text-transform: uppercase;

    letter-spacing: 0.05em;
}

.card h3 {
    margin-top: 0.5rem;
    margin-bottom: 0.5rem;
}

.card p {
    margin-bottom: 0;
}

.link-list {
    padding-left: 1.2rem;
}

footer {
    margin-top: auto;

    border-top: 2px solid var(--blue);

    padding: 2rem;

    text-align: center;

    color: #666;


}

::selection {
    background: #ffcdbe;
}

.button {
    display: inline-block;

    background: var(--blue);
    color: white;

    padding: 0.75rem 1.25rem;

    border-radius: 6px;

    text-decoration: none;

    transition: 0.15s;
}

.button:hover {
    background: var(--blue-hover);
}

.button.secondary {
    background: white;

    color: var(--blue);

    border: 2px solid var(--blue);
}

.button.secondary:hover {
    background: var(--blue-light);
}

@media (prefers-color-scheme: dark) {
    .button.secondary {
        background: transparent;
        color: var(--blue);
    }
}

@media (max-width: 700px) {

    .hero {
        padding-top: 2rem;
    }

    h1 {
        font-size: 3rem;
    }

    .card-grid {
        grid-template-columns: 1fr;
    }
}

@media (prefers-color-scheme: dark) {

    :root {
        --blue: #5db6e6;
        --blue-light: #1c2d38;
        --blue-hover: #3a5060;

        --text: #e8e8e8;
        --border: #30404a;
    }

    body {
        background: #121212;
        color: var(--text);
    }

    h1 {
        color: white;
    }

    .card {
        background: var(--blue-light);
    }

    a.card:hover {
        background: #263b48;
    }

    footer {
        color: #aaa;
    }

    ::selection {
    background: #034A75;
    color: white;

    :root {
        --blue: #4ea4d8;
    }
}
}