@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wght@0,100..700;1,100..700&display=swap');

:root {
    font-size: 16px;
    font-family: "IBM Plex Sans", sans-serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    margin: 0;
    text-size-adjust: 100%;
    --color-black: #202124;
    --color-gray: #9AA0A6;
    --color-blue: #4285F4;
    --color-blue-light: #D2E3FC;
    --color-blue-dark: #174EA6;
}

::selection {
    background-color: var(--color-blue-light);
}

body {
    margin: 0 3rem;
    height: 100dvh;
    display: grid;
    grid-template-rows: auto 1fr auto;
    filter: hue-rotate(277deg);
}

header {
    margin: 0 1rem;
    padding-top: 2rem;
    padding-bottom: 1rem;
    column-gap: 2rem;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    align-items: end;
    border-bottom: solid 1px var(--color-black);
    line-height: 1.4;
    h2 {
        line-height: 1.4;
        border: none;
        padding: 0;
        margin-bottom: 1rem;
        font-size: 1.75rem;
        font-weight: 300;
        color: var(--color-blue);
    }
    address {
        grid-column: 4;
        margin-bottom: 1rem;
    }
}

main {
    padding-bottom: 1rem;
    overflow-y: auto;
    min-height: 0; /* Allows the row to shrink. */
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    scrollbar-width: none;

    &::-webkit-scrollbar {
        display: none;
    }
}

section {
    padding: 1rem;
}

footer {
    margin: 0 1rem;
    border-top: 1px solid var(--color-black);
    padding-top: 1rem;
    padding-bottom: 2rem;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 2rem;
}

svg {
    width: 1rem;
    height: 1rem;
    display: inline-block;
    vertical-align: middle;
}

h1 {
    margin-top: 0;
    font-size: 1.75rem;
    font-weight: 600;
    margin-bottom: 1rem;
}

h2 {
    margin-top: 0;
    margin-bottom: 1rem;
    font-size: 1.25rem;
    font-weight: 500;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid black;
}

h3 {
    margin-top: 0;
    margin-bottom: 0.25rem;
    font-size: 1rem;
    line-height: 1.375;
    font-weight: 600;
    color: var(--color-blue);
}

h4 {
    margin-top: 0;
    margin-bottom: 0.25rem;
    font-size: 0.875rem;
    line-height: 1.42857;
    color: var(--color-blue-dark);
}

p {
    margin-top: 0;
    margin-bottom: 1rem;
    font-size: 0.875rem;
    max-width: 75ch;
}

ul {
    margin-top: 0;
    margin-bottom: 1.5rem;
    padding-inline-start: 1rem;
    font-size: 0.875rem;
    line-height: 1.42857;
}

li {
    margin-bottom: 0.5rem;
    max-width: 75ch;
}

address, footer a {
    font-size: 0.875rem;
    font-style: normal;
    width: max-content;
}

a {
    font-style: normal;
    text-decoration: none;
    transition: color 1s ease-out;
    color: var(--color-black);
}

.light {
    color: var(--color-gray);
    font-weight: 400;
}

a:hover {
    color: var(--color-blue-dark);
    transition: none;
}

@media screen and (min-width: 99rem) {
    :root {
        font-size: 18px;
    }

    main {
        grid-template-columns: repeat(4, 1fr);
    }
}

@media screen and (max-width: 66rem), print {
    header {
        grid-template-columns: repeat(2, 1fr);
        column-gap: 0.5rem;
        h1 {
            margin-bottom: 0;
        }
        h2 {
            grid-column: 1;
        }
        address {
            grid-column: 2;
        }
    }

    main {
        grid-template-columns: 1fr;
    }

    footer {
        grid-template-columns: repeat(2, 1fr);
        gap: 0.5rem;
    }
}

@media screen and (max-width: 42rem) {
    body {
        margin: 0 1rem;
    }
}

@media print {
    :root {
        font-size: 14px;
        print-color-adjust: exact;
    }

    @page :first {
        margin: 2rem;
    }

    @page {
        margin-top: 5rem;
        margin-bottom: 2rem;
    }

    body {
        display: flex;
        flex-direction: column;
    }

    header {
        order: 1;
        border: none;
    }

    footer {
        order: 2;
        border: none;
        padding: 0;
    }

    main {
        order: 3;
        overflow-y: visible;
    }

    section {
        padding-bottom: 0;
    }

    div {
        break-inside: avoid;
    }

    #phone {
        grid-column: 2;
    }

    #pdf {
        display: none;
    }
}
