.large {
    font-size: 1.2rem;
}

.list-style-none {
    list-style-type: none;
}

.border-bottom-if-last:last-child {
    border-bottom-width: 1px;
    border-bottom-style: solid;
}

/* Utility class from bootstrap 5, can be removed after upgrading to bootstrap 5 */
.border-4 {
    border-width: 4px !important;
}

/* Position utilities (scale matches bootstrap ex: pl-2 size matches left-2) */
.top-2 {
    top: 0.5rem;
}

.left-2 {
    left: 0.5rem;
}

.bottom-3 {
    bottom: 1rem;
}

.status-bar-offset {
    /* Padding (rem) and borders (px) combined create the offset */
    margin-top: calc(-0.5rem - 6px);
}

/* Sets size of spinner to match text in btn-lg */
.spinner-border-btn-lg {
    height: 1.25rem;
    width: 1.25rem;
    /* border-width matching bootstrap spinner-border-sm class */
    border-width: .2em;
}

/* Custom utility to make a grow spinner slightly larger than its sm size */
.spinner-grow-md {
    width: 1.2rem;
    height: 1.2rem;
}

/* Navbar offset for sections when selecting hash links, solution found from bootstrap docs */
.headers-offset-navbar h2:not(:first-child)::before,
.headers-offset-navbar h3::before,
.headers-offset-navbar h4::before,
.headers-offset-navbar h5::before,
.headers-offset-navbar h6::before {
    display: block;
    height: 6rem;
    content: "";
}

.headers-offset-navbar h2:not(:first-child)::before {
    margin-top: -4rem;
}

.headers-offset-navbar h3::before {
    margin-top: -4.5rem;
}

.headers-offset-navbar h4::before {
    margin-top: -5rem;
}

.headers-offset-navbar h5::before {
    margin-top: -5.25rem;
}

.headers-offset-navbar h6::before {
    margin-top: -5.5rem;
}

/* Header link icon implementation derived from bootstrap and MDN doc headers */
.header-link::after {
    /* fa-link icon, need to specify font family and weight to render unicode */
    content: '\f0c1' / '';
    font-family: 'Font Awesome 5 Free';
    font-weight: 900;
    font-size: 0.875em;
    padding-top: 0.125em;
    padding-left: 0.375em;
    padding-right: 0.375em;
    position: absolute;
    opacity: 0;
    transition: opacity 0.05s ease-in-out;
}

.header-link:hover::after,
.header-link:focus::after {
    opacity: 1;
}

.tilt-right-3 {
    transform: rotate(3deg);
}

.tilt-left-3 {
    transform: rotate(-3deg);
}

/* 
Utility class to underline text (specifically links).
Links in bootstrap 5 are underlined by default so will need to be reworked then.
*/
.underline {
    text-decoration: underline;
}