.wrapper {
    display: flex;
    flex-direction: column;
    max-width: calc(1024px - 1rem * 2);
    padding: 0 2rem;
}

header .wrapper {
    flex-direction: row;
}

.site-title {
    display: inline-flex;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
}

@media screen and (600px < width <= 800px) {
    .site-title {
        min-width: 24px;
        width: 24px;
        color: transparent;
    }

    .site-nav .page-link:not(:last-child) {
        margin-right: 16px;
    }
}

@media screen and (800px < width <= 860px) {
    .site-nav .page-link:not(:last-child) {
        margin-right: 12px;
    }
}

.site-title::before {
    content: "";
    min-width: 24px;
    background: no-repeat center / 100% url("/assets/favicon.svg");
    margin-right: 8px;
}

.site-nav {
    margin-left: auto;
}

.contact-list li {
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
}

.social-media-list li>a {
    display: flex;
    align-items: center;
}

@media screen and (800px < width) {
    .footer-col-3 {
        text-align: end;
    }
}

button,
details>summary:first-of-type {
    cursor: pointer;
}

details>summary:hover:first-of-type {
    color: #111;
}

thead,
tbody {
    vertical-align: text-top;
}

th,
td {
    min-width: 5em;
    font-size: .935rem;
}

.table-responsive {
    display: block;
    width: 100%;
    overflow-x: auto;
}

.table-responsive>table {
    margin: 0;
    border-collapse: separate;
    border-width: 1px 0;
}

.table-responsive>table details>summary+div {
    margin: 0 -15px -10px;
}

.table-responsive>table details>summary+div>div {
    border: 0 solid #e8e8e8;
    border-top-width: 1px;
    padding: 10px 15px;
}

.text-center {
    text-align: center;
}

.border-light {
    border: 1px solid #e8e8e8;
}