.hidden {
    display: none
}

.screen-reader-text {
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
    width: 1px;
    height: 1px;
    position: absolute;
    overflow: hidden
}

.small {
    font-size: .95rem;
    line-height: 1.5
}

.font-large {
    font-size: 1.5rem
}

.font-small {
    font-size: 1rem
}

img.center,
img.left {
    clear: both;
    float: none;
    max-width: 100%;
    margin: 1rem auto;
    display: block
}

@media screen and (min-width:57.5rem) {
    img.left {
        float: left;
        max-width: 60%;
        height: auto;
        margin-bottom: 1rem;
        margin-right: 3rem
    }
}

img.right {
    clear: both;
    float: none;
    max-width: 100%;
    margin: 1rem auto;
    display: block
}

@media screen and (min-width:57.5rem) {
    img.right {
        float: right;
        max-width: 60%;
        height: auto;
        margin-bottom: 1rem;
        margin-left: 3rem
    }
}

.table--scroll {
    width: 100%;
    overflow-y: auto
}

.acalog__course-dialog-trigger {
    color: #c00026;
    cursor: pointer;
    background-color: #0000;
    border: 1px solid #c00026;
    margin: 0 0 0 .5rem;
    padding: .25rem .5rem;
    font-size: .875rem;
    display: inline-block
}

.acalog__course-dialog-trigger:focus-visible {
    outline: 1px solid #c00026
}

.acalog__dialog {
    width: min(100% - 2rem, 50rem);
    max-width: calc(100% - 2rem);
    padding: .75rem 1.5rem 2.5rem
}

.acalog__dialog::backdrop {
    background-color: #0c0c0c80
}

.acalog__dialog__close-container {
    text-align: right;
    margin: 0 0 .5rem
}

.acalog__dialog__close {
    color: #c00026;
    cursor: pointer;
    background-color: #0000;
    border: 2px solid #c00026;
    border-radius: 50%;
    padding: .5rem;
    font-size: 1.25rem;
    line-height: 1
}

.acalog__dialog__close:focus-visible {
    outline: 2px solid #c00026
}

.acalog__dialog__icon {
    width: 1.25rem;
    height: 1.25rem
}

.acalog__dialog__title {
    color: #c00026;
    margin: 0 0 .75rem;
    font-family: adelle, serif;
    font-weight: 500
}

.accordion {
    padding: 4em 0
}

.accordion__section-intro {
    padding: 0 0 3rem;
    font-family: din-2014, sans-serif;
    font-size: 1.375rem;
    font-weight: 300;
    line-height: 1.5
}

.accordion__title {
    margin: 0;
    font-size: 1.75rem;
    font-weight: 600
}

.accordion__group {
    margin: 0;
    padding: 0
}

.accordion__item {
    padding: 1em 0
}

.accordion__button {
    color: #fff;
    cursor: pointer;
    text-align: left;
    background-color: #c00026;
    border: none;
    border-radius: 0;
    width: 100%;
    margin: 0;
    padding: .75rem 1.5rem;
    font-family: adelle, serif;
    font-size: 1.5rem;
    font-weight: 500;
    display: block;
    position: relative
}

.accordion__button:hover,
.accordion__button:focus-visible {
    text-decoration: underline
}

.accordion__button:after {
    content: "+";
    width: fit-content;
    padding: .75rem 1.5rem;
    display: block;
    position: absolute;
    top: 0;
    right: 0
}

.accordion__button[aria-expanded=true]:after {
    content: "-"
}

.accordion__content {
    color: #0c0c0c;
    background-color: #fcf3d7;
    padding: .75rem 1.5rem;
    font-size: 1.125rem;
    font-weight: 400;
    line-height: 1.5;
    display: block
}

.accordion__content[hidden],
.accordion__content--hidden {
    display: none
}

.accordion--nav {
    padding: 1.75rem 0 1.25rem
}

@media (min-width:57.5rem) {
    .accordion--nav {
        padding: 2rem 0 1.5rem
    }
}

@media screen and (min-width:57.5rem) {
    .accordion--nav .accordion__button {
        display: none
    }
}

.accordion--nav .accordion__content {
    padding: 1.25rem 1.5rem
}

@media screen and (min-width:57.5rem) {
    .accordion--nav .accordion__content--hidden {
        display: block
    }
}

@keyframes accordionScrollDown {
    0% {
        max-height: 0
    }

    to {
        max-height: 100vh
    }
}

.alternating-blocks {
    padding: 2rem 0 0
}

.bg--gold+.alternating-blocks,
.bg--gray+.alternating-blocks,
.bg--gray-dark+.alternating-blocks,
.bg--red+.alternating-blocks,
.callout--background-image+.alternating-blocks,
.callout--image--full+.alternating-blocks,
.featured-image+.alternating-blocks {
    padding-top: 6rem
}

.alternating-blocks:has(+.bg--gold) {
    padding-bottom: 4rem
}

.alternating-blocks:has(+.bg--gray) {
    padding-bottom: 4rem
}

.alternating-blocks:has(+.bg--gray-dark) {
    padding-bottom: 4rem
}

.alternating-blocks:has(+.bg--red) {
    padding-bottom: 4rem
}

.alternating-blocks:has(+.callout--background-image) {
    padding-bottom: 4rem
}

.alternating-blocks:has(+.callout--image--full) {
    padding-bottom: 4rem
}

.alternating-blocks:has(+.featured-image) {
    padding-bottom: 4rem
}

.alternating-blocks__intro {
    font-size: 1.25rem
}

.alternating-blocks__item {
    flex-flow: column;
    row-gap: 2rem;
    padding: 0 0 2rem;
    display: flex
}

@container (width>=57.5rem) {
    .alternating-blocks__item {
        flex-flow: row;
        column-gap: 5rem;
        padding: 3rem 0
    }

    .alternating-blocks__item:nth-of-type(odd) .alternating-blocks__image-container {
        order: 1
    }
}

.alternating-blocks__image-container {
    order: 1;
    position: relative
}

@container (width>=57.5rem) {
    .alternating-blocks__image-container {
        flex-shrink: 0;
        order: unset;
        text-align: center;
        justify-content: center;
        align-items: center;
        width: auto;
        min-width: 25%;
        max-width: 55%;
        display: flex
    }
}

.alternating-blocks__image {
    object-fit: contain;
    z-index: 1;
    max-width: 100%;
    height: auto;
    margin: 0 auto 1.5rem;
    display: block;
    position: relative
}

@container (width>=57.5rem) {
    .alternating-blocks__image {
        margin: unset;
        max-height: unset
    }

    .alternating-blocks__text-container {
        flex-flow: column;
        justify-content: center;
        max-width: 65%;
        display: flex
    }
}

.alternating-blocks__title {
    color: #0c0c0c;
    margin: 0 0 1em;
    font-size: 1.5rem;
    font-weight: 600;
    display: block
}

@container (width>=57.5rem) {
    .alternating-blocks__title {
        font-size: 2rem;
        font-weight: 800
    }
}

.alternating-blocks__text {
    font-family: din-2014, sans-serif;
    font-size: 1.125rem;
    line-height: 1.5
}

.alternating-blocks__link {
    color: var(--accent-color);
    font-family: din-2014, sans-serif;
    font-size: 1.25rem;
    font-weight: 700;
    text-decoration: none;
    display: inline-block
}

.alternating-blocks__link:after {
    content: "»";
    padding-left: .25em;
    text-decoration: none;
    display: inline-block
}

.alternating-blocks__link:focus-visible {
    outline-offset: 2px;
    outline: 1px auto #0c0c0c
}

.alternating-blocks__link:hover {
    text-decoration: underline;
    text-decoration-thickness: 2px
}

@container (width>=57.5rem) {
    .alternating-blocks--alt .alternating-blocks__highlight:nth-of-type(2n) .highlights__image-container {
        order: 1
    }
}

.alternating-blocks--alt .alternating-blocks__title {
    color: #0c0c0c;
    font-size: 1.5rem;
    font-weight: 800
}

@container (width>=57.5rem) {
    .alternating-blocks--alt .alternating-blocks__title {
        font-size: 2rem
    }
}

.alternating-blocks--alt .alternating-blocks__text {
    color: #4a4a4a;
    font-family: adelle, serif;
    font-size: 1rem
}

.alternating-blocks--alt .alternating-blocks__link {
    color: #c00026;
    font-weight: 700;
    text-decoration: none
}

.alternating-blocks--alt .alternating-blocks__link:focus-visible,
.alternating-blocks--alt .alternating-blocks__link:hover {
    text-decoration: underline
}

@container (width>=57.5rem) {
    .alternating-blocks--reversed .alternating-blocks__item:nth-of-type(odd) .alternating-blocks__image-container {
        order: unset
    }

    .alternating-blocks--reversed .alternating-blocks__image-container {
        order: 1
    }
}

:root {
    --accent-color: #c00026;
    --background-color: #fff;
    --line: #919191;
    --primary-color: #0c0c0c;
    --secondary-accent-color: #fff
}

.bg--blue {
    --accent-color: #ffe06b;
    --background-color: #003c5c;
    --line: #f3f6f5;
    --primary-color: #fff;
    --secondary-accent-color: #0c0c0c;
    color: #fff;
    background-color: #003c5c;
    font-weight: 400
}

.bg--gold {
    --accent-color: #c00026;
    --background-color: #ffd375;
    --line: #0c0c0c;
    --primary-color: #0c0c0c;
    --secondary-accent-color: #fff;
    color: #0c0c0c;
    background-color: #ffd375;
    background-image: linear-gradient(#f4bd47, #f9da99);
    font-weight: 400
}

.bg--gray {
    --accent-color: #c00026;
    --background-color: #f3f6f5;
    --line: #0c0c0c;
    --primary-color: #0c0c0c;
    --secondary-accent-color: #fff;
    color: #0c0c0c;
    background-color: #f3f6f5;
    font-weight: 400
}

.bg--gray-dark {
    --accent-color: #ffe06b;
    --background-color: #4a4a4a;
    --line: #fcf3d7;
    --primary-color: #fff;
    --secondary-accent-color: #0c0c0c;
    color: #fff;
    background-color: #4a4a4a;
    font-weight: 400
}

.bg--red {
    --accent-color: #ffd375;
    --background-color: #c00026;
    --line: #f3f6f5;
    --primary-color: #fff;
    --secondary-accent-color: #4a4a4a;
    color: #fff;
    background-color: #c00026;
    font-weight: 400
}

.bg--white {
    --accent-color: #c00026;
    --background-color: #fff;
    --line: #919191;
    --primary-color: #0c0c0c;
    --secondary-accent-color: #fff;
    color: #0c0c0c;
    background-color: #fff;
    font-weight: 300
}

.breadcrumbs {
    padding: 2rem 0
}

.breadcrumbs__list {
    margin: 0;
    padding: 0
}

.breadcrumbs__item {
    font-size: .9rem;
    display: inline-block
}

.breadcrumbs__item:after {
    content: " >";
    padding: 0 .375rem
}

.breadcrumbs__item--current:after {
    content: none
}

.breadcrumbs__link {
    color: #757575;
    text-decoration: none
}

.breadcrumbs__link:focus,
.breadcrumbs__link:hover {
    color: #0c0c0c;
    text-decoration: underline
}

.btn--gold,
.btn-gold,
.btn--red,
.btn-red,
.btn {
    background-color: var(--btn-bg);
    border: .25rem solid var(--btn-bg);
    color: var(--btn-color);
    border-radius: 1.5em;
    padding: .5em 2em;
    font-weight: 400;
    line-height: 1;
    text-decoration: none;
    transition: background-color .2s, color .2s;
    display: inline-block
}

.btn--gold:focus-visible,
.btn-gold:focus-visible,
.btn--red:focus-visible,
.btn-red:focus-visible,
.btn:focus-visible,
.btn--gold:hover,
.btn-gold:hover,
.btn--red:hover,
.btn-red:hover,
.btn:hover {
    background-color: var(--btn-bg-hover);
    color: var(--btn-color-hover)
}

.btn--gold:focus-visible,
.btn-gold:focus-visible,
.btn--red:focus-visible,
.btn-red:focus-visible,
.btn:focus-visible {
    outline: 1px solid var(--btn-bg)
}

.btn {
    --btn-bg: var(--accent-color);
    --btn-color: var(--secondary-accent-color);
    --btn-bg-hover: var(--secondary-accent-color);
    --btn-color-hover: var(--primary-color)
}

.btn-red,
.btn--red {
    --btn-bg: #c00026;
    --btn-color: #fff;
    --btn-bg-hover: #a80022;
    --btn-color-hover: #fff
}

.btn-gold,
.btn--gold {
    --btn-bg: #ffd375;
    --btn-color: #0c0c0c;
    --btn-bg-hover: #a80022;
    --btn-color-hover: #fff
}

.calendar-nav {
    width: min(100%, 20rem);
    font-size: 1.125rem;
    line-height: 2;
    position: relative
}

.calendar-nav__intro {
    text-align: center;
    text-transform: uppercase;
    font-size: 1.5rem;
    font-weight: 700
}

.calendar-nav__title__abbr {
    text-decoration: none
}

.calendar-nav__prev,
.calendar-nav__next {
    color: #c00026;
    width: 1em;
    font-size: 2.5rem;
    line-height: 1;
    text-decoration: none;
    display: inline-block;
    position: relative;
    top: .125rem
}

.calendar-nav__prev:focus-visible,
.calendar-nav__next:focus-visible {
    outline: 2px solid #0c0c0c
}

.calendar-nav__table {
    width: min(100%, 20rem);
    margin: 0
}

.calendar-nav__row {
    flex-flow: row;
    width: 100%;
    display: flex
}

.calendar-nav__day {
    padding: unset;
    text-align: center;
    border: 1px solid #9b9b9b;
    width: 14.2857%;
    margin: 0;
    display: inline-block
}

.calendar-nav__day--empty {
    background-color: #f3f6f5
}

.calendar-nav__day--heading {
    border: unset;
    color: #fff;
    background-color: #c00026
}

.calendar-nav__day__abbr {
    text-decoration: none
}

.calendar-nav__day__link {
    color: #4a4a4a;
    width: 100%;
    height: 100%;
    text-decoration: none;
    display: block
}

.calendar-nav__day__link:focus-visible {
    outline-offset: -2px;
    outline: 4px auto #0c0c0c;
    font-weight: 700
}

.calendar-nav__day__link--current {
    color: #0c0c0c;
    font-weight: 700
}

.calendar-nav__help {
    padding: 2rem;
    font-size: 1rem
}

.calendar-nav__help::backdrop {
    background-color: #0c0c0ccc
}

.calendar-nav__help__trigger {
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
    width: 1px;
    height: 1px;
    position: absolute;
    overflow: hidden
}

.calendar-nav__help__trigger:focus {
    clip: unset;
    clip-path: unset;
    color: #fff;
    background-color: #0c0c0c;
    border: none;
    outline: none;
    width: 100%;
    height: auto;
    padding: .25em 1em;
    font-size: 1.125rem;
    text-decoration: underline;
    position: relative
}

.calendar-nav__help__close {
    color: #fff;
    background-color: #0c0c0c;
    border: none;
    padding: .5em 1em
}

.calendar-nav__help__close:focus-visible {
    outline: none;
    text-decoration: underline
}

.callout--background-image {
    background-color: #0c0c0c;
    padding: 15% 0;
    position: relative
}

@media (min-width:120rem) {
    .callout--background-image {
        max-width: 120rem;
        margin: 0 auto
    }
}

.callout--background-image__image-container {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0
}

.callout--background-image__image-container:after {
    content: "";
    background-color: #0c0c0c80;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0
}

.callout--background-image__image {
    object-fit: cover;
    width: 100%;
    height: 100%
}

.callout--background-image__text-container {
    color: #fff;
    text-align: center;
    position: relative
}

.callout--background-image__title {
    margin: 0 0 1.5rem;
    font-family: din-2014, sans-serif;
    font-size: 1.75rem;
    font-weight: 600
}

@container (width>=47.5rem) {
    .callout--background-image__title {
        font-size: 2.5rem
    }
}

@container (width>=75rem) {
    .callout--background-image__title {
        font-size: 3.5rem
    }
}

.callout--background-image__wysiwyg {
    margin-bottom: 2.5rem;
    font-size: 1.25rem;
    font-weight: 400;
    line-height: 1.5
}

@container (width>=75rem) {
    .callout--background-image__wysiwyg {
        font-size: 1.5rem
    }
}

.callout--background-image__link {
    color: #fff;
    text-transform: capitalize;
    background-color: #c00026;
    border: .125em solid #f3f6f5;
    border-radius: .5rem;
    padding: .75rem 1.5rem;
    font-size: 1.25rem;
    font-weight: 400;
    text-decoration: none;
    transition: background-color .2s, color .2s;
    display: inline-block
}

.callout--background-image__link:focus-visible,
.callout--background-image__link:hover {
    color: #c00026;
    background-color: #f3f6f5
}

.callout--button-row {
    color: var(--primary-color);
    padding: 2rem 0
}

@container (width>=57.5rem) {
    .callout--button-row {
        padding: 6rem 0
    }
}

@media (min-width:120rem) {
    .callout--button-row {
        max-width: 120rem;
        margin: 0 auto
    }
}

.callout--button-row__text-container {
    text-align: center
}

.callout--button-row__title {
    color: var(--accent-color);
    margin: 0 0 1em;
    font-family: din-2014, sans-serif;
    font-size: 1.75rem;
    font-weight: 700
}

.callout--button-row__text {
    font-family: din-2014, sans-serif;
    font-size: 1.25rem;
    font-weight: 300;
    line-height: 1.5
}

.callout--button-row__links {
    flex-flow: column;
    align-items: center;
    row-gap: 1.5rem;
    padding: 2rem 0;
    display: flex
}

.callout--button-row__link {
    background-color: var(--btn-bg);
    border: .25rem solid var(--btn-border);
    color: var(--btn-color);
    text-align: center;
    border-radius: 2.375rem;
    justify-content: center;
    align-items: center;
    width: min(100%, 25rem);
    padding: .75em 1.5em;
    font-family: din-2014, sans-serif;
    font-size: 1.125rem;
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
    transition: background-color .2s, border-color .2s;
    display: flex
}

.callout--button-row__link:hover,
.callout--button-row__link:focus-visible {
    background-color: var(--btn-color);
    color: var(--btn-bg);
    outline: none
}

@container (width>=57.5rem) {
    .callout--button-row__link {
        font-size: 1.25rem
    }

    .callout--button-row--column.bg--gold {
        background-blend-mode: multiply, normal, normal, normal;
        background-image: url(../images/funky-lines-yellow.webp), conic-gradient(from 270deg at 20% 100%, #ffd375 0 60deg, transparent 60deg), conic-gradient(from 90deg at 20% 0, transparent 0 60deg, #ffd375 60deg 120deg, #fedd9a 120deg), conic-gradient(from 90deg at calc(20% + 6.5625rem)0, transparent 0 120deg, #ffd375 120deg);
        background-position: 0 0, 0 0, 0 9.75rem, 0 21.1166rem;
        background-repeat: repeat, no-repeat, no-repeat, no-repeat;
        background-size: auto, 100% 9.75rem, 100% 11.3666rem, 100% calc(100% - 21.1166rem)
    }

    .callout--button-row--column.bg--red {
        background-blend-mode: multiply, normal, normal, normal;
        background-image: url(../images/funky-lines-brown.webp), conic-gradient(from 270deg at 20% 100%, #c70028 0 60deg, transparent 60deg), conic-gradient(from 90deg at 20% 0, transparent 0 60deg, #c70028 60deg 120deg, #d8002c 120deg), conic-gradient(from 90deg at calc(20% + 6.5625rem)0, transparent 0 120deg, #c70028 120deg);
        background-position: 0 0, 0 0, 0 9.75rem, 0 21.1166rem;
        background-repeat: repeat, no-repeat, no-repeat, no-repeat;
        background-size: auto, 100% 9.75rem, 100% 11.3666rem, 100% calc(100% - 21.1166rem)
    }

    .callout--button-row--column .callout--button-row__inner {
        flex-flow: row;
        display: flex
    }

    .callout--button-row--column .callout--button-row__text-container {
        text-align: left;
        flex-grow: 0;
        align-content: center;
        padding-right: 4rem
    }

    .callout--button-row--column .callout--button-row__title {
        margin: -.25em 0 .5em;
        font-size: 2.375rem;
        font-weight: 700
    }

    .callout--button-row--column .callout--button-row__links {
        flex-flow: column;
        flex-shrink: 0;
        justify-content: center;
        row-gap: 1rem;
        width: 20rem;
        padding: 0
    }
}

@container (width>=75rem) {
    .callout--button-row--grid {
        background-blend-mode: multiply, normal;
        background-image: url(../images/funky-lines.webp), url(../images/sh-crest-15.svg);
        background-position: 50%;
        background-repeat: repeat, no-repeat;
        background-size: auto, auto 130%;
        position: relative
    }

    .callout--button-row--grid.bg--gold {
        background-blend-mode: multiply, normal, normal;
        background-image: url(../images/funky-lines-yellow.webp), url(../images/sh-crest-15.svg), linear-gradient(#f4bd47, #f9da99);
        background-position: 0 0, 50%, 50%;
        background-repeat: repeat, no-repeat, no-repeat;
        background-size: auto, auto 130%, cover
    }

    .callout--button-row--grid.bg--gold .callout--button-row__title {
        text-shadow: 0 0 .15em #f9da99
    }
}

.callout--button-row--grid .callout--button-row__title {
    margin: 0 0 .5em;
    font-size: 2rem;
    font-weight: 700
}

.callout--button-row--grid .callout--button-row__links {
    row-gap: 1rem
}

.callout--button-row--grid .callout--button-row__link {
    border: unset;
    border-radius: .5rem;
    padding: 1em 2em;
    font-size: 1.125rem;
    font-weight: 700
}

@container (width>=57.5rem) {
    .callout--button-row--grid .callout--button-row__inner {
        position: relative
    }

    .callout--button-row--grid .callout--button-row__title {
        font-size: 3rem;
        font-weight: 800
    }

    .callout--button-row--grid .callout--button-row__links {
        flex-flow: wrap;
        justify-content: flex-start;
        row-gap: .75rem
    }

    .callout--button-row--grid .callout--button-row__link {
        justify-content: center;
        align-items: center;
        width: calc(33.33% - .75rem);
        min-height: 5em;
        margin: 0 .375rem;
        padding: .5em 2em;
        font-size: 1.25rem;
        display: flex
    }
}

.callout--button-row--row.bg--gold {
    background-image: linear-gradient(#f4bd47, #f9da99)
}

@container (width>=75rem) {
    .callout--button-row--row.callout--button-row--sh-tower {
        background-blend-mode: normal, multiply, normal;
        background-image: url(), url(../images/funky-lines-yellow.webp), linear-gradient(#f4bd47, #f9da99);
        background-position: 92.5% 100%, 0 0, 0 0;
        background-repeat: no-repeat, repeat, no-repeat;
        background-size: auto 80%, auto, cover
    }

    .callout--button-row--row.callout--button-row--sh-tower .callout--button-row__text {
        font-family: adelle, serif
    }
}

@container (width>=100rem) {
    .callout--button-row--row.callout--button-row--sh-tower {
        background-image: url(../images/sh-tower.svg), url(../images/funky-lines-yellow.webp), linear-gradient(#f4bd47, #f9da99)
    }
}

.callout--button-row--row.callout--button-row--sh-tower .callout--button-row__title {
    color: var(--primary-color)
}

@container (width>=57.5rem) {
    .callout--button-row--row .callout--button-row__inner {
        max-width: 58rem
    }

    .callout--button-row--row .callout--button-row__title {
        font-size: 2.25rem;
        font-weight: 800
    }

    .callout--button-row--row .callout--button-row__links {
        flex-flow: wrap;
        justify-content: center;
        padding: 2rem 0 0
    }

    .callout--button-row--row .callout--button-row__link {
        width: auto;
        margin: 0 .5rem
    }
}

.callout--button-row.bg--blue {
    --btn-bg: #fff;
    --btn-color: #003c5c;
    --btn-border: #f3f6f5
}

.callout--button-row.bg--red {
    --btn-bg: #fff;
    --btn-color: #0c0c0c;
    --btn-border: #fff
}

.callout--button-row.bg--gold {
    --btn-bg: #c00026;
    --btn-color: #fff;
    --btn-border: #c00026
}

.callout--callout-row {
    padding: 15% 0;
    position: relative
}

@media (min-width:120rem) {
    .callout--callout-row {
        max-width: 120rem;
        margin: 0 auto
    }
}

.callout--callout-row__text-container {
    color: #fff;
    text-align: center;
    position: relative
}

.callout--callout-row__title {
    margin: 0 0 1.5em;
    font-size: 1.75rem
}

@media screen and (min-width:47.5rem) {
    .callout--callout-row__title {
        font-size: 2.5rem
    }
}

@media screen and (min-width:75rem) {
    .callout--callout-row__title {
        font-size: 3.5rem
    }
}

.callout--callout-row__wysiwyg {
    margin-bottom: 1.5em;
    font-size: 1.125rem;
    line-height: 1.25
}

@media screen and (min-width:75rem) {
    .callout--callout-row__wysiwyg {
        font-size: 1.5rem
    }
}

.callout--callout-row__link {
    color: #fff;
    background-color: #0c0c0c66;
    border: .125em solid #fff;
    padding: .75rem 1.5rem;
    font-size: 1.25rem;
    text-decoration: none;
    display: inline-block
}

.callout--image {
    --background-color: #c00026;
    --primary-color: #fff
}

.callout--image__image-container {
    width: 100%;
    height: min(35rem, 60vh)
}

.callout--image__image {
    object-fit: cover;
    width: 100%;
    height: 100%;
    display: block
}

.callout--image__text-container {
    background-color: var(--background-color);
    color: var(--primary-color);
    border-radius: .75rem;
    width: calc(100% - 2rem);
    max-width: 47.5rem;
    margin: 0 auto;
    padding: 4rem 1.5rem;
    position: relative;
    top: -5.5rem
}

.callout--image__title {
    margin: 0 0 .75em;
    font-family: din-2014, sans-serif;
    font-size: 2rem;
    font-weight: 600
}

.callout--image__text {
    margin: 0 0 1.5em;
    font-size: 1.25rem;
    font-weight: 400;
    line-height: 1.5
}

.callout--image__link {
    color: var(--primary-color);
    font-size: 1.25rem;
    font-weight: 700;
    text-decoration: none;
    display: inline-block
}

.callout--image__link:after {
    content: " »"
}

.callout--image__link:focus-visible,
.callout--image__link:hover {
    text-decoration: underline
}

@container (width>=57.5rem) {
    .callout--image--full .callout--image__container {
        position: relative
    }

    .callout--image--full .callout--image__image-container {
        height: 100%;
        position: absolute;
        top: 0;
        left: 0
    }

    .callout--image--full .callout--image__text-container {
        top: unset;
        border-radius: 0;
        flex-flow: column;
        justify-content: center;
        width: 40%;
        margin: 0;
        padding: 12rem 10%;
        display: flex
    }

    .callout--image--full .callout--image__text {
        margin: 0
    }
}

@media (min-width:120rem) {
    .callout--image--full {
        max-width: 120rem;
        margin: 0 auto
    }
}

@container (width>=57.5rem) {
    .callout--image--full.callout--image--gold {
        --background-color: transparent
    }

    .callout--image--full.callout--image--gold .callout--image__text-container {
        background-image: linear-gradient(#f4bd47d9, #f9da99d9)
    }

    .callout--image--full.callout--image--gray {
        --background-color: #4a4a4acc
    }

    .callout--image--full.callout--image--red {
        --background-color: #c00026cc
    }

    .callout--image--full.callout--image--white {
        --background-color: #fffc;
        --primary-color: #0c0c0c
    }

    .callout--image--full.callout--image--right .callout--image__text-container {
        left: auto;
        right: 0
    }

    .callout--image--contained {
        margin: 0 0 -10rem
    }

    .callout--image--contained.callout--image--white .callout--image__text-container {
        position: relative
    }

    .callout--image--contained.callout--image--white .callout--image__text-container:after {
        content: "";
        z-index: -1;
        background-color: #fff;
        border: 1px solid #9b9b9b;
        border-radius: 2rem 0;
        width: 100%;
        height: 100%;
        display: block;
        position: absolute;
        top: 0;
        left: 0
    }

    .callout--image--contained.callout--image--white .callout--image__text-container:before {
        content: "";
        z-index: -1;
        background-color: #ffc751;
        background-image: linear-gradient(60deg, #0000, #0c0c0c1a, #0000);
        border-radius: 2rem 0;
        width: 100%;
        height: 100%;
        display: block;
        position: absolute;
        top: 1.5rem;
        left: 1.5rem
    }

    .callout--image--contained .callout--image__image-container,
    .callout--image--contained .callout--image__image {
        height: auto
    }

    .callout--image--contained .callout--image__container {
        width: 75vw;
        max-width: min(80rem, 100% - 8rem);
        margin: 0 auto;
        padding: 4rem 0 0
    }

    .callout--image--contained .callout--image__text-container {
        top: unset;
        border-radius: 2rem 0;
        width: 60%;
        margin: 0;
        padding: 4rem;
        transform: translate(-4rem, -12rem)
    }
}

.callout--image--gold {
    --background-color: #ffd375;
    --primary-color: #($black)
}

.callout--image--gold .callout--image__text-container {
    background-image: linear-gradient(#f4bd47, #f9da99)
}

.callout--image--gray {
    --background-color: #4a4a4a;
    --primary-color: #fff
}

.callout--image--red {
    --background-color: #c00026;
    --primary-color: #fff
}

.callout--image--white {
    --background-color: #fff;
    --primary-color: #0c0c0c
}

.callout--stats {
    background-color: #fcf3d7;
    padding: 4rem 0
}

@container (width>=75rem) {
    .callout--stats {
        background-color: unset;
        background-image: conic-gradient(from 270deg at 5% 50%, #fef1d4 0 60deg, transparent 60deg 300deg, #fef1d4 300deg), conic-gradient(from 270deg at calc(27.5% + .667rem)50%, #fce3af 0 60deg, transparent 60deg 300deg, #fce3af 300deg), conic-gradient(from 270deg at calc(50% + 1.33rem)50%, #fbd684 0 60deg, transparent 60deg 300deg, #fbd684 300deg), conic-gradient(from 270deg at calc(72.5% + 2rem)50%, #fce3af 0 60deg, transparent 60deg 300deg, #fce3af 300deg), conic-gradient(from 270deg at calc(95% + 2.667rem)50%, #fef1d4 0 60deg, transparent 60deg 300deg, #fef1d4 300deg);
        background-position: 0 6rem;
        background-repeat: no-repeat;
        background-size: 100% calc(100% - 12rem);
        padding: 12rem 0
    }
}

@container (width>=111.11rem) {
    .callout--stats {
        background-image: conic-gradient(from 270deg at calc(50% - 50rem)50%, #fff 0 60deg, transparent 60deg 300deg, #fff 300deg), conic-gradient(from 270deg at calc(50% - 24.333rem)50%, #fce3af 0 60deg, transparent 60deg 300deg, #fce3af 300deg), conic-gradient(from 270deg at calc(50% + 1.333rem)50%, #fbd684 0 60deg, transparent 60deg 300deg, #fbd684 300deg), conic-gradient(from 270deg at calc(50% + 27rem)50%, #fce3af 0 60deg, transparent 60deg 300deg, #fce3af 300deg), conic-gradient(from 270deg at calc(50% + 52.667rem)50%, #fef1d4 0 60deg, transparent 60deg 300deg, #fef1d4 300deg)
    }
}

@media (min-width:120rem) {
    .callout--stats {
        max-width: 120rem;
        margin: 0 auto
    }
}

.callout--stats__grid {
    flex-flow: wrap;
    justify-content: space-between;
    row-gap: 2rem;
    display: flex
}

@container (width>=75rem) {
    .callout--stats__grid {
        flex-flow: row
    }
}

.callout--stats__stat {
    text-align: center;
    flex-flow: column;
    justify-content: flex-start;
    align-items: center;
    width: calc(50% - 1rem);
    display: flex
}

@container (width>=75rem) {
    .callout--stats__stat {
        width: calc(25% - 2rem)
    }
}

.callout--stats__stat__headline {
    color: #0c0c0c;
    align-items: center;
    min-height: 2.5em;
    margin: 0 0 .25em;
    font-family: din-2014, sans-serif;
    font-size: 1.125rem;
    font-weight: 700;
    line-height: 1.25;
    display: flex
}

@container (width>=57.5rem) {
    .callout--stats__stat__headline {
        font-size: 1.5rem
    }
}

@container (width>=75rem) {
    .callout--stats__stat__headline {
        min-height: 1em;
        margin: 0 0 .5em
    }
}

.callout--stats__stat__number {
    color: #c00026;
    margin: 0 0 .75rem;
    font-family: din-2014, sans-serif;
    font-size: 2.5rem;
    font-weight: 700;
    line-height: 1.2
}

@container (width>=75rem) {
    .callout--stats__stat__number {
        font-size: 4rem
    }
}

.callout--stats__stat__description {
    font-family: din-2014, sans-serif;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5
}

@container (width>=75rem) {
    .callout--stats__stat__description {
        width: 60%;
        font-size: 1.125rem
    }
}

.callout--text-image {
    --padding: 2rem 0
}

@media (min-width:120rem) {
    .callout--text-image {
        max-width: 120rem;
        margin: 0 auto
    }
}

@container (width>=57.5rem) {
    .callout--text-image {
        padding: var(--padding)
    }
}

.callout--text-image__inner {
    background-color: var(--background-color);
    padding: var(--padding)
}

@container (width>=57.5rem) {
    .callout--text-image__inner {
        padding: 0
    }
}

.callout--text-image__wrapper {
    color: #0c0c0c;
    flex-flow: column;
    display: flex
}

@container (width>=57.5rem) {
    .callout--text-image__wrapper {
        background-color: #0000;
        flex-flow: row;
        justify-content: space-between
    }
}

.callout--text-image__container {
    max-width: 100rem;
    margin: 0 auto;
    padding: 0 1em;
    display: block
}

@container (width>=47.5rem) {
    .callout--text-image__container {
        width: 85%;
        padding: 0
    }
}

@container (width>=75rem) {
    .callout--text-image__container {
        width: 75%
    }
}

.callout--text-image__text-container {
    background-color: #fff;
    padding: 2rem 1rem;
    position: relative
}

.callout--text-image__text-container:before {
    content: "";
    background-color: #fff;
    width: 100%;
    height: 4.5rem;
    display: block;
    position: absolute;
    top: -3.5rem;
    left: 0
}

@container (width>=57.5rem) {
    .callout--text-image__text-container {
        background-color: unset;
        flex-flow: column;
        justify-content: center;
        padding: 6rem 0;
        display: flex
    }

    .callout--text-image__text-container:before {
        content: none;
        display: none
    }
}

.callout--text-image__title {
    color: #c00026;
    margin: 0 0 1rem;
    font-family: adelle, serif;
    font-size: 2.25rem;
    font-weight: 400
}

@container (width>=57.5rem) {
    .callout--text-image__title {
        color: var(--title-color)
    }
}

.callout--text-image__text {
    font-family: din-2014, sans-serif;
    font-size: 1.25rem;
    line-height: 1.25
}

@container (width>=57.5rem) {
    .callout--text-image__text {
        color: var(--primary-color);
        padding-right: 4.5rem
    }
}

.callout--text-image__link {
    color: #0c0c0c;
    padding: .5em 0;
    font-family: din-2014, sans-serif;
    font-size: 1.25rem;
    font-weight: 400;
    text-decoration: none;
    display: inline-block
}

.callout--text-image__link:focus-visible,
.callout--text-image__link:hover {
    -webkit-text-decoration: underline #c00026;
    text-decoration: underline #c00026
}

@container (width>=57.5rem) {
    .callout--text-image__link {
        color: var(--title-color);
        padding: 0
    }

    .callout--text-image__link:focus-visible,
    .callout--text-image__link:hover {
        -webkit-text-decoration-color: var(--title-color);
        text-decoration-color: var(--title-color)
    }
}

.callout--text-image__image-container {
    z-index: 1;
    order: -1;
    position: relative
}

@container (width>=57.5rem) {
    .callout--text-image__image-container {
        z-index: 0;
        border-radius: 2rem 0;
        flex-shrink: 0;
        order: 0;
        width: auto;
        max-width: 40%;
        overflow: hidden
    }
}

.callout--text-image__image {
    width: 100%;
    max-width: 32.5rem;
    height: auto;
    margin: 0 auto;
    display: block
}

@container (width>=57.5rem) {
    .callout--text-image__image {
        max-width: unset;
        object-fit: cover;
        min-height: 100%
    }

    .callout--text-image--reversed .callout--text-image__text-container {
        order: 1;
        padding-left: 1.5rem
    }

    .callout--text-image--reversed .callout--text-image__text {
        padding-right: 0
    }
}

.callout--text-image:not(:has(.callout--text-image__image-container)) {
    padding: 0
}

.callout--text-image:not(:has(.callout--text-image__image-container)) .callout--text-image__inner {
    padding: var(--padding)
}

.callout--text-image:not(:has(.callout--text-image__image-container)) .callout--text-image__text-container:before {
    content: unset;
    display: none
}

@container (width>=57.5rem) {
    .callout--text-image:not(:has(.callout--text-image__image-container)) .callout--text-image__inner {
        padding: var(--padding);
        background-image: unset
    }

    .callout--text-image:not(:has(.callout--text-image__image-container)) .callout--text-image__container {
        max-width: 58rem
    }

    .callout--text-image:not(:has(.callout--text-image__image-container)) .callout--text-image__text-container {
        --primary-color: #0c0c0c;
        --title-color: #c00026;
        background-color: #fff;
        width: 100%;
        padding: 4rem 2rem
    }

    :is(.callout--text-image:not(:has(.callout--text-image__image-container)) .callout--text-image__link:focus-visible, .callout--text-image:not(:has(.callout--text-image__image-container)) .callout--text-image__link:hover) {
        text-decoration-color: #c00026
    }
}

.callout--text-image--gold {
    --padding: 4rem 0;
    --title-color: #c00026
}

@container (width>=57.5rem) {
    .callout--text-image--gold .callout--text-image__inner {
        background-blend-mode: normal, multiply, normal, normal, normal;
        background-image: linear-gradient(to bottom, #fff 0 3rem, transparent 3rem calc(100% - 3rem), #fff calc(100% - 3rem)), url(../images/funky-lines-yellow.webp), conic-gradient(from 270deg at 40% 100%, #ffd375 0 60deg, transparent 60deg), conic-gradient(from 90deg at 40% 0, transparent 0 60deg, #ffd375 60deg 120deg, #fedd9a 120deg), conic-gradient(from 90deg at calc(40% + 6.5625rem)0, transparent 0 120deg, #ffd375 120deg);
        background-position: 0 0, 0 0, 0 0, 0 12.75rem, 0 24.1166rem;
        background-repeat: no-repeat, repeat, no-repeat, no-repeat, no-repeat;
        background-size: cover, auto, 100% 12.75rem, 100% 11.3666rem, 100% calc(100% - 24.1166rem)
    }
}

.callout--text-image--gray {
    --padding: 4rem 0;
    --title-color: #ffe06b
}

@container (width>=57.5rem) {
    .callout--text-image--gray .callout--text-image__inner {
        background-blend-mode: normal, multiply, normal, normal, normal;
        background-image: linear-gradient(to bottom, #fff 0 3rem, transparent 3rem calc(100% - 3rem), #fff calc(100% - 3rem)), url(../images/funky-lines.webp), conic-gradient(from 270deg at 40% 100%, #5c5b59 0 60deg, transparent 60deg), conic-gradient(from 90deg at 40% 0, transparent 0 60deg, #5c5b59 60deg 120deg, #666 120deg), conic-gradient(from 90deg at calc(40% + 6.5625rem)0, transparent 0 120deg, #5c5b59 120deg);
        background-position: 0 0, 0 0, 0 0, 0 12.75rem, 0 24.1166rem;
        background-repeat: no-repeat, repeat, no-repeat, no-repeat, no-repeat;
        background-size: cover, auto, 100% 12.75rem, 100% 11.3666rem, 100% calc(100% - 24.1166rem)
    }
}

.callout--text-image--red {
    --padding: 4rem 0;
    --title-color: #ffe06b
}

@container (width>=57.5rem) {
    .callout--text-image--red .callout--text-image__inner {
        background-blend-mode: normal, multiply, normal, normal, normal;
        background-image: linear-gradient(to bottom, #fff 0 3rem, transparent 3rem calc(100% - 3rem), #fff calc(100% - 3rem)), url(../images/funky-lines-brown.webp), conic-gradient(from 270deg at 40% 100%, #c70028 0 60deg, transparent 60deg), conic-gradient(from 90deg at 40% 0, transparent 0 60deg, #c70028 60deg 120deg, #d8002c 120deg), conic-gradient(from 90deg at calc(40% + 6.5625rem)0, transparent 0 120deg, #c70028 120deg);
        background-position: 0 0, 0 0, 0 0, 0 12.75rem, 0 24.1166rem;
        background-repeat: no-repeat, repeat, no-repeat, no-repeat, no-repeat;
        background-size: cover, auto, 100% 12.75rem, 100% 11.3666rem, 100% calc(100% - 24.1166rem)
    }
}

.callout--text-image--white {
    --padding: 0;
    --title-color: #c00026;
    padding: 1rem 0
}

.bg--gold+.callout--text-image--white,
.bg--gray+.callout--text-image--white,
.bg--gray-dark+.callout--text-image--white,
.bg--red+.callout--text-image--white,
.callout--background-image+.callout--text-image--white,
.callout--image--full+.callout--text-image--white,
.featured-image+.callout--text-image--white {
    padding-top: 4rem
}

.callout--text-image--white:has(+.bg--gold) {
    padding-bottom: 4rem
}

.callout--text-image--white:has(+.bg--gray) {
    padding-bottom: 4rem
}

.callout--text-image--white:has(+.bg--gray-dark) {
    padding-bottom: 4rem
}

.callout--text-image--white:has(+.bg--red) {
    padding-bottom: 4rem
}

.callout--text-image--white:has(+.callout--background-image) {
    padding-bottom: 4rem
}

.callout--text-image--white:has(+.callout--image--full) {
    padding-bottom: 4rem
}

.callout--text-image--white:has(+.featured-image) {
    padding-bottom: 4rem
}

.column-blocks {
    padding: 2rem 0
}

.bg--gold+.column-blocks,
.bg--gray+.column-blocks,
.bg--gray-dark+.column-blocks,
.bg--red+.column-blocks,
.callout--background-image+.column-blocks,
.callout--image--full+.column-blocks,
.featured-image+.column-blocks {
    padding-top: 6rem
}

.column-blocks:has(+.bg--gold) {
    padding-bottom: 6rem
}

.column-blocks:has(+.bg--gray) {
    padding-bottom: 6rem
}

.column-blocks:has(+.bg--gray-dark) {
    padding-bottom: 6rem
}

.column-blocks:has(+.bg--red) {
    padding-bottom: 6rem
}

.column-blocks:has(+.callout--background-image) {
    padding-bottom: 6rem
}

.column-blocks:has(+.callout--image--full) {
    padding-bottom: 6rem
}

.column-blocks:has(+.featured-image) {
    padding-bottom: 6rem
}

.column-blocks__list {
    flex-flow: wrap;
    justify-content: flex-start;
    gap: 3rem;
    margin: 0;
    padding: 0;
    display: flex
}

@container (width>=40rem) {
    .column-blocks__item {
        display: flex
    }
}

@container (width>=57.5rem) {
    .column-blocks__item {
        width: calc(33.3333% - 2rem);
        display: block
    }
}

.column-blocks__item__image-container {
    border-radius: 2rem 0;
    overflow: hidden
}

@container (width>=40rem) {
    .column-blocks__item__image-container {
        flex-shrink: 0;
        width: 50%
    }
}

@container (width>=57.5rem) {
    .column-blocks__item__image-container {
        width: 100%
    }
}

.column-blocks__item__image {
    width: 100%;
    height: auto
}

.column-blocks__item__text-container {
    padding: 1.5rem 0 0
}

@container (width>=40rem) {
    .column-blocks__item__text-container {
        padding: 0 0 0 2rem
    }
}

@container (width>=57.5rem) {
    .column-blocks__item__text-container {
        padding: 1.75rem 0 0
    }
}

.column-blocks__item__title {
    margin: 0 0 .5em;
    font-size: 1.375rem;
    font-weight: 700;
    display: block
}

@container (width>=57.5rem) {
    .column-blocks__item__title {
        font-size: 1.375rem
    }
}

.column-blocks__item__text {
    color: #4a4a4a;
    font-size: 1.125rem
}

.column-blocks__item__link {
    color: #c00026;
    font-size: 1.125rem;
    font-weight: 700;
    text-decoration: none
}

.column-blocks__item__link:focus-visible,
.column-blocks__item__link:hover {
    text-decoration: underline
}

.column-blocks__item__link:focus-visible {
    outline: 2px auto #003c5c
}

.combobox {
    color: #0c0c0c;
    max-width: 25rem;
    margin-bottom: 1.5em;
    display: block;
    position: relative
}

.combobox__input {
    text-align: left;
    background-color: #fff;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1em' height='1em' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23bf0026' stroke-width='2' d='m2 8.35l10.173 9.823L21.997 8'/%3E%3C/svg%3E");
    background-position: calc(100% - 1rem);
    background-repeat: no-repeat;
    background-size: 1.25em;
    border: 2px solid #9b9b9b;
    width: 100%;
    min-height: 3em;
    padding: .75em 1em;
    font-size: 1em;
    font-weight: 700;
    display: block
}

.combobox__input:focus-visible {
    border-color: #4a4a4a;
    outline: 2px solid #4a4a4a
}

.combobox__input .light {
    font-weight: 400
}

.combobox__menu {
    z-index: 2;
    background-color: #f3f6f5;
    border: 1px solid #4a4a4a;
    border-radius: 0 0 4px 4px;
    width: 100%;
    max-height: 18.75rem;
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    overflow-y: scroll
}

.combobox__option {
    padding: .75em
}

.combobox__option:hover {
    background-color: #d8e4e3
}

.combobox__option--current {
    outline-offset: -3px;
    outline: 2px solid #4a4a4a
}

.combobox__option[aria-selected=true] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1em' height='1em' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%230c0c0c' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.75' d='m5 14l4 4L19 8'/%3E%3C/svg%3E");
    background-position: calc(100% - 1rem);
    background-repeat: no-repeat;
    background-size: 1.75em 1.75em;
    padding-right: 30px;
    position: relative
}

.combobox--open .combobox__menu {
    display: block
}

:where(h1, .h1) {
    margin: 0 0 .75em;
    font-size: 2.5rem;
    line-height: 1.2
}

:where(h2, .h2) {
    margin: 0 0 .75em;
    font-size: 1.625rem;
    line-height: 1.2
}

@media screen and (min-width:57.5rem) {
    :where(h2, .h2) {
        font-size: 2.625rem;
        font-weight: 700
    }
}

:where(h3, .h3) {
    margin: 0 0 .875em;
    font-size: 1.25em;
    font-weight: 700;
    line-height: 1.2
}

@media screen and (min-width:57.5rem) {
    :where(h3, .h3) {
        font-size: 1.75rem
    }
}

:where(h4, .h4) {
    color: var(--accent-color);
    margin: 1em 0;
    font-family: adelle, serif;
    font-size: 1.125em;
    font-weight: 600;
    line-height: 1.2
}

@media screen and (min-width:57.5rem) {
    :where(h4, .h4) {
        font-size: 1.5rem
    }
}

:where(h5, .h5) {
    margin-top: 1rem;
    margin-bottom: 1em;
    font-family: adelle, serif;
    font-size: 1rem;
    line-height: 1.2
}

:where(p) {
    margin: 0 0 1em
}

:where(a) {
    color: var(--accent-color);
    text-decoration: underline;
    text-decoration-thickness: 2px;
    transition: color .2s, text-decoration-color .2s
}

:where(a:focus-visible, a:hover) {
    color: var(--primary-color);
    -webkit-text-decoration-color: var(--accent-color);
    text-decoration-color: var(--accent-color)
}

:where(a:focus-visible) {
    outline: 2px solid var(--primary-color);
    outline-offset: 1px
}

:where(ul) {
    margin: 0 0 1em;
    padding: 0 0 0 1.5em;
    font-size: 1em
}

:where(ul li) {
    margin-bottom: .5em;
    line-height: 1.5
}

:where() {
    color: var(--accent-color)
}

:where(ul li ul) {
    margin: 0;
    padding: 0 0 0 1em
}

:where(b, strong) {
    font-weight: 700
}

:where(hr) {
    border: 1px dashed var(--line);
    margin: .5rem 0 1.5rem
}

:where(blockquote):not([class]) {
    margin: 0 0 1em;
    padding: 0 2em;
    font-family: adelle, serif;
    font-size: 1.125rem
}

:where(blockquote):not([class]) p {
    font-family: adelle, serif;
    font-size: 1em
}

@container (width>=57.5rem) {
    :where(blockquote):not([class]) {
        font-size: 1.5rem
    }
}

:where(blockquote).bg--gold,
:where(blockquote).bg--gray,
:where(blockquote).bg--gray-dark,
:where(blockquote).bg--red {
    color: var(--primary-color);
    margin: 1.5em 0;
    padding: 1em 2em;
    font-family: adelle, serif;
    font-size: 1.5rem
}

:where(blockquote).bg--gold p,
:where(blockquote).bg--gray p,
:where(blockquote).bg--gray-dark p,
:where(blockquote).bg--red p {
    font-family: adelle, serif;
    font-size: 1.5rem
}

:where(figure:has(blockquote)):not([class]) {
    margin: 2rem 0
}

:where(figure:has(blockquote)):not([class]) blockquote {
    color: var(--accent-color);
    font-family: adelle, serif;
    font-size: 1.125rem
}

:where(figure:has(blockquote)):not([class]) figcaption {
    padding: 0 3rem;
    font-family: din-2014, sans-serif;
    font-size: 1.125rem
}

@container (width>=57.5rem) {
    :where(figure:has(blockquote)):not([class]) {
        margin: 2rem
    }

    :where(figure:has(blockquote)):not([class]) blockquote {
        font-size: 1.5rem
    }
}

:where(figure:has(blockquote)).bg--gold,
:where(figure:has(blockquote)).bg--gray,
:where(figure:has(blockquote)).bg--gray-dark,
:where(figure:has(blockquote)).bg--red {
    margin: 2rem 0;
    padding: 1.5rem 0
}

@container (width>=57.5rem) {

    :where(figure:has(blockquote)).bg--gold,
    :where(figure:has(blockquote)).bg--gray,
    :where(figure:has(blockquote)).bg--gray-dark,
    :where(figure:has(blockquote)).bg--red {
        margin: 2rem 3rem
    }
}

:where(figure:has(blockquote)).bg--gold blockquote,
:where(figure:has(blockquote)).bg--gray blockquote,
:where(figure:has(blockquote)).bg--gray-dark blockquote,
:where(figure:has(blockquote)).bg--red blockquote {
    font-family: adelle, serif;
    font-size: 1.125rem
}

@container (width>=57.5rem) {

    :where(figure:has(blockquote)).bg--gold blockquote,
    :where(figure:has(blockquote)).bg--gray blockquote,
    :where(figure:has(blockquote)).bg--gray-dark blockquote,
    :where(figure:has(blockquote)).bg--red blockquote {
        font-size: 1.5rem
    }
}

:where(figure:has(blockquote)).bg--gold figcaption,
:where(figure:has(blockquote)).bg--gray figcaption,
:where(figure:has(blockquote)).bg--gray-dark figcaption,
:where(figure:has(blockquote)).bg--red figcaption {
    padding: 0 3rem;
    font-family: din-2014, sans-serif;
    font-size: 1.125rem
}

:where(img) {
    max-width: 100%;
    height: auto
}

:where(iframe) {
    max-width: 100%
}

:where(iframe)[src*=youtube] {
    aspect-ratio: 16/9;
    height: auto
}

:where(table) {
    border-collapse: collapse;
    table-layout: auto;
    width: 100%;
    max-height: 100vh;
    margin: 4rem auto 2rem;
    overflow-x: scroll
}

:where(table) :where(caption) {
    margin: 0 0 .5em;
    font-size: 1.25rem;
    font-weight: 500
}

:where(table) :where(th, td) {
    vertical-align: middle;
    border: 1px solid #919191;
    padding: .625rem 1.25rem
}

:where(table) :where(th) {
    color: #fff;
    background-color: #4a4a4a;
    font-family: adelle, serif;
    font-weight: 500
}

:where(table) :where(th) :where(a, a:visited) {
    color: #fff
}

:where(table) :where(th) :where(a, a:visited):focus-visible,
:where(table) :where(th) :where(a, a:visited):hover {
    text-decoration-color: #fff
}

:where(table) :where(th) :where(a, a:visited):focus-visible {
    outline-offset: 2px;
    outline: 2px solid #fff
}

:where(table) :where(th) :where(th[scope=col]) {
    position: sticky;
    top: 0
}

:where(table) :where(th) :where(th[scope=row]) {
    background-color: #757575
}

:where(textarea:not([rows])) {
    min-height: 10em
}

.faculty--grid {
    padding: 4rem 0
}

.faculty--grid--page {
    padding: 0 0 4rem
}

.faculty--grid__intro {
    text-align: center;
    margin-bottom: 4rem;
    font-family: din-2014, sans-serif;
    font-size: 1.25rem;
    line-height: 1.5
}

.faculty--grid__intro--left {
    text-align: left
}

.faculty--grid__grid {
    flex-flow: column;
    row-gap: 3rem;
    display: flex
}

@container (width>=47.5rem) {
    .faculty--grid__grid {
        flex-flow: wrap;
        gap: 3rem
    }
}

.faculty--grid__item {
    justify-content: space-between;
    align-items: center;
    column-gap: 1rem;
    display: flex
}

@container (width>=47.5rem) {
    .faculty--grid__item {
        width: calc(33.3333% - 2rem);
        margin: 0;
        display: block
    }
}

.faculty--grid__image-container {
    flex: none;
    width: 40%;
    padding: 0
}

@container (width>=47.5rem) {
    .faculty--grid__image-container {
        width: 100%;
        padding: 1.5rem
    }
}

.faculty--grid__image {
    aspect-ratio: 1;
    clip-path: circle();
    object-fit: cover;
    width: 100%;
    height: auto;
    margin: 0 auto;
    display: block
}

@container (width>=47.5rem) {
    .faculty--grid__image {
        width: 75%;
        max-width: 20rem
    }
}

.faculty--grid__text-container {
    flex-flow: column;
    justify-content: center;
    width: calc(60% - 1rem);
    display: flex
}

@container (width>=47.5rem) {
    .faculty--grid__text-container {
        text-align: center;
        width: 100%
    }
}

.faculty--grid__link {
    color: #0c0c0c;
    text-decoration: none
}

.faculty--grid__link:focus-visible,
.faculty--grid__link:hover {
    text-decoration: underline
}

.faculty--grid__name {
    margin: 0 0 .5em;
    font-family: din-2014, sans-serif;
    font-size: 1.375rem;
    font-weight: 800
}

.faculty--grid__position {
    margin: .5em 0 0;
    font-family: din-2014, sans-serif;
    font-size: 1.125rem;
    font-weight: 400
}

.faculty-detail {
    padding: 0 0 4rem
}

.faculty-detail__container {
    flex-flow: column;
    display: flex
}

@container (width>=57.5rem) {
    .faculty-detail__container {
        flex-flow: wrap
    }
}

.faculty-detail__top {
    order: 0;
    width: 100%
}

@container (width>=57.5rem) {
    .faculty-detail__top {
        order: inherit
    }
}

.faculty-detail__body {
    order: 2
}

@container (width>=57.5rem) {
    .faculty-detail__body {
        order: inherit;
        width: 65%;
        padding-right: 5rem
    }
}

.faculty-detail__image-container {
    order: 1;
    margin: 1rem 0 2rem
}

@container (width>=57.5rem) {
    .faculty-detail__image-container {
        order: inherit;
        width: 35%;
        max-width: 25rem;
        margin: 0
    }
}

.faculty-detail__image {
    width: 100%;
    height: auto
}

.faculty-detail__name {
    color: #003c5c;
    margin: 0 0 .25em;
    font-family: adelle, serif;
    font-size: 1.75rem;
    font-weight: 400
}

@container (width>=75rem) {
    .faculty-detail__name {
        font-size: 3rem
    }
}

.faculty-detail__info {
    padding: 0 0 2rem
}

.faculty-detail__title {
    color: #0c0c0c;
    margin: 0 0 1.5rem;
    font-family: adelle, serif;
    font-size: 1.75rem;
    font-weight: 200;
    display: block
}

@container (width>=75rem) {
    .faculty-detail__title {
        font-size: 2.5rem
    }
}

.faculty-detail__title--lined {
    border-top: 1px solid #0c0c0c;
    padding-top: 2.25rem
}

.faculty-detail__pronouns {
    color: #757575;
    margin: 0 0 1.5em;
    font-family: adelle, serif;
    font-size: 1.25rem;
    display: block
}

.faculty-detail__contact {
    justify-content: flex-start;
    align-items: center;
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex
}

.faculty-detail__contact__item {
    display: inline-block
}

.faculty-detail__contact__item:after {
    color: #0c0c0c;
    content: "|";
    vertical-align: top;
    margin: 0 .75rem
}

.faculty-detail__contact__item:last-of-type:after {
    content: none;
    display: none
}

.faculty-detail__contact__link {
    color: #0c0c0c;
    font-size: 1.25rem;
    text-decoration: none
}

.faculty-detail__contact__link:focus-visible,
.faculty-detail__contact__link:hover {
    -webkit-text-decoration: underline #c00026;
    text-decoration: underline #c00026
}

.faculty-detail__headline {
    color: #0c0c0c;
    margin: 1em 0 .5em;
    font-family: adelle, serif;
    font-size: 1.75rem;
    font-weight: 600
}

.faculty-detail__bio,
.faculty-detail__bio p {
    font-family: adelle, serif;
    font-size: 1.5rem
}

.faculty-detail__image-container {
    position: relative
}

.faculty-detail__image-container:before {
    content: "";
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='100' width='173'%3E%3Cpolygon points='0,0 173,0 173,100' style='fill: %2300965E;' /%3E%3C/svg%3E");
    background-position: 100% 0;
    background-repeat: no-repeat;
    background-size: 25%;
    width: 100%;
    height: 100%;
    display: block;
    position: absolute;
    top: 0;
    right: 0
}

@container (width>=57.5rem) {
    .faculty-detail__image {
        width: 100%
    }
}

.featured-image {
    position: relative
}

@media (min-width:120rem) {
    .featured-image {
        max-width: 120rem;
        margin: 0 auto
    }
}

.featured-image--blue {
    --background-color: #003c5c;
    --background-color-t: #003c5ccc;
    --primary-color: #fff
}

.featured-image--red {
    --background-color: #c00026;
    --background-color-t: #c00026cc;
    --primary-color: #fff
}

.featured-image__image {
    object-fit: cover;
    width: 100%;
    height: min(35rem, 60vh);
    display: block
}

@container (width>=57.5rem) {
    .featured-image__image {
        height: max(60vh, 45vw, 45rem)
    }
}

.featured-image__text-container {
    background-color: var(--background-color);
    color: var(--primary-color);
    border-radius: .75rem;
    width: calc(100% - 2rem);
    margin: 0 auto;
    padding: 2rem 0;
    position: relative;
    top: -4rem
}

@container (width>=57.5rem) {
    .featured-image__text-container {
        background-color: var(--background-color-t);
        bottom: 0;
        left: 0;
        top: unset;
        border-radius: 0;
        width: 100%;
        position: absolute
    }
}

.featured-image__title {
    font-family: adelle, serif;
    font-size: 1.75rem;
    font-weight: 600
}

.featured-image__body {
    font-size: 1.25rem
}

.featured-image__link {
    border: 2px solid var(--primary-color);
    color: var(--primary-color);
    margin-top: .5em;
    padding: .25em 1em;
    font-family: adelle, serif;
    font-size: 1.375rem;
    font-weight: 400;
    text-decoration: none;
    transition: background-color .2s, color .2s;
    display: inline-block
}

.featured-image__link:focus-visible,
.featured-image__link:hover {
    background-color: var(--primary-color);
    color: var(--background-color)
}

.featured-video {
    padding: 4rem 0
}

.featured-video__headline {
    text-align: center;
    margin: 0 0 1.5em;
    font-family: adelle, serif;
    font-size: 1.5rem;
    font-weight: 600
}

@container (width>=57.5rem) {
    .featured-video__headline {
        font-size: 2.625rem
    }
}

.featured-video__intro {
    text-align: center;
    margin: 0 0 3em;
    font-family: din-2014, sans-serif;
    font-size: 1.25rem;
    line-height: 1.5
}

.featured-video__iframe {
    aspect-ratio: 16/9;
    width: 100%
}

@media print {
    .featured-video {
        display: none
    }
}

.footer {
    color: #0c0c0c;
    background-color: #fff;
    border-top: 3px solid #f4bd47;
    padding: 1rem 0 0
}

@media (min-width:120rem) {
    .footer {
        border-top: unset;
        background-color: #f3f6f5;
        padding: 0
    }

    .footer__main {
        background-color: #fff;
        border-top: 1px dashed #9b9b9b;
        max-width: 120rem;
        margin: 0 auto;
        padding: 1rem 0 0
    }
}

.footer__container {
    max-width: 100rem;
    padding: 1.5rem 1rem 0
}

@media (min-width:47.5rem) {
    .footer__container {
        padding: 1.5rem 0 0
    }
}

@media (min-width:57.5rem) {
    .footer__container {
        flex-flow: row;
        padding: 3rem 0;
        display: flex
    }
}

.footer__contact {
    text-align: center
}

@media (min-width:57.5rem) {
    .footer__contact {
        text-align: left;
        width: calc(55% - 15rem);
        font-size: 1.125rem
    }
}

.footer__title {
    color: #c00026;
    max-width: 100%;
    margin: 0 0 .75rem
}

@media (min-width:57.5rem) {
    .footer__title__svg {
        width: 19rem;
        height: auto
    }
}

.footer__phone-link {
    color: #0c0c0c;
    text-decoration: none
}

.footer__phone-link:focus-visible,
.footer__phone-link:hover {
    text-decoration: underline
}

.footer__phone-link:focus-visible {
    outline: none
}

.footer__mail-link {
    color: #c00026;
    text-decoration: none
}

.footer__links {
    columns: 2;
    max-width: 25rem;
    margin: 0 auto;
    padding: 0 1rem 1rem;
    font-weight: 400
}

@media (min-width:57.5rem) {
    .footer__links {
        margin: unset;
        max-width: unset;
        width: 45%;
        padding: 0;
        font-size: 1.125rem
    }
}

.footer__links__item {
    margin: 0 0 1em;
    display: block
}

.footer__links__link {
    color: #757575;
    text-decoration: none
}

.footer__links__link:focus-visible,
.footer__links__link:hover {
    text-decoration: underline
}

.footer__links__link:focus-visible {
    outline: none
}

.footer__social {
    margin: 3rem 0 2rem
}

.footer__social__list {
    flex-flow: row;
    justify-content: center;
    gap: 1.25rem;
    display: flex
}

@media (min-width:57.5rem) {
    .footer__social__list {
        justify-content: flex-start
    }
}

.footer__social__item:focus-visible {
    outline-offset: 2px;
    border-radius: .5rem;
    outline: 2px solid #0c0c0c
}

.footer__social__svg {
    border-radius: .5rem;
    width: 2.5rem;
    height: 2.5rem;
    display: block
}

.footer__give {
    text-align: center
}

@media (min-width:57.5rem) {
    .footer__give {
        text-align: right;
        width: 15rem
    }
}

.footer__give-link {
    margin: 1rem 0 2rem;
    font-weight: 400
}

@media (min-width:57.5rem) {
    .footer__give-link {
        margin: 0;
        font-size: 1.125rem
    }
}

.footer__legal {
    text-align: center;
    background-color: #ffc751;
    padding: 1rem 0 .1rem;
    font-family: adelle, serif;
    font-size: .9rem
}

@media (min-width:57.5rem) {
    .footer__legal {
        text-align: left
    }
}

.highlights {
    padding: 2rem 0
}

@container (width>=57.5rem) {
    .highlights {
        padding: 6rem 0 2rem
    }
}

.highlights__highlight {
    flex-flow: column;
    row-gap: 1.75rem;
    width: min(100%, 32rem);
    margin-inline: auto;
    padding: 3rem 0 1rem;
    display: flex
}

.highlights__highlight:nth-of-type(2n) .highlights__image-container {
    padding: 0 .75rem .75rem 0
}

.highlights__highlight:nth-of-type(2n) .highlights__image-container:after {
    left: .75rem
}

.highlights__highlight:nth-of-type(odd) .highlights__image-container {
    padding: 0 0 .75rem .75rem
}

.highlights__highlight:nth-of-type(odd) .highlights__image-container:after {
    left: 0
}

@container (width>=57.5rem) {
    .highlights__highlight {
        flex-flow: row;
        column-gap: 4rem;
        width: 100%;
        padding: 3rem 0
    }

    .highlights__highlight:nth-of-type(2n) .highlights__image-container {
        padding: 0 1.5rem 1.5rem 0
    }

    .highlights__highlight:nth-of-type(2n) .highlights__image-container:after {
        left: 1.5rem
    }

    .highlights__highlight:nth-of-type(odd) .highlights__image-container {
        padding: 0 0 1.5rem 1.5rem
    }
}

.highlights__intro {
    max-width: 58rem;
    font-size: 1.375rem
}

.highlights__image-container {
    position: relative
}

.highlights__image-container:after {
    content: "";
    background-color: #ffc751;
    border-radius: 2rem 0;
    width: calc(100% - .75rem);
    height: calc(100% - .75rem);
    display: block;
    position: absolute;
    top: .75rem;
    left: 0
}

@container (width>=57.5rem) {
    .highlights__image-container {
        width: calc(55% - 2rem)
    }

    .highlights__image-container:after {
        width: calc(100% - 1.5rem);
        height: calc(100% - 1.5rem);
        top: 1.5rem
    }
}

.highlights__image {
    object-fit: cover;
    z-index: 1;
    border-radius: 2rem 0;
    width: 100%;
    height: auto;
    min-height: 100%;
    display: block;
    position: relative
}

@container (width>=57.5rem) {
    .highlights__text-container {
        align-content: center;
        width: calc(45% - 2rem);
        padding: 4rem 0
    }
}

.highlights__title {
    margin: 0 0 1em;
    font-family: din-2014, sans-serif;
    font-size: 1.5rem;
    font-weight: 800
}

@container (width>=57.5rem) {
    .highlights__title {
        font-size: 2rem
    }
}

.highlights__text {
    font-family: adelle, serif;
    font-size: 1.125rem;
    line-height: 1.5
}

.highlights__link {
    color: var(--accent-color);
    font-family: din-2014, sans-serif;
    font-size: 1.25rem;
    font-weight: 700;
    text-decoration: none;
    display: inline-block
}

@container (width>=57.5rem) {
    .highlights__link {
        font-size: 1.5rem
    }
}

.highlights__link:after {
    content: "»";
    padding-left: .25em;
    text-decoration: none;
    display: inline-block
}

.highlights__link:focus-visible {
    outline-offset: 2px;
    outline: 1px auto #0c0c0c
}

.highlights__link:hover {
    text-decoration: underline;
    text-decoration-thickness: 2px
}

@container (width>=57.5rem) {
    .highlights--alt .highlights__highlight:nth-of-type(2n) .highlights__image-container {
        order: 1
    }
}

.highlights--alt .highlights__title {
    color: #0c0c0c;
    font-size: 2rem;
    font-weight: 800
}

.highlights--alt .highlights__link {
    color: var(--accent-color);
    font-weight: 700;
    text-decoration: none
}

.highlights--alt .highlights__link:focus-visible,
.highlights--alt .highlights__link:hover {
    text-decoration: underline
}

.intro-statement {
    padding: 2rem 0;
    font-family: din-2014, sans-serif;
    font-size: 1.25rem;
    font-weight: 300;
    line-height: 1.6
}

.intro-statement__headline {
    margin: 0 0 .75em;
    font-family: din-2014, sans-serif;
    font-size: 1.5rem
}

@media (min-width:57.5rem) {
    .intro-statement__headline {
        font-size: 2.625rem
    }
}

.island-row {
    padding: 1rem 0 2rem
}

.bg--gold+.island-row,
.bg--gray+.island-row,
.bg--gray-dark+.island-row,
.bg--red+.island-row,
.callout--background-image+.island-row,
.callout--image--full+.island-row,
.featured-image+.island-row {
    padding-top: 4rem
}

.island-row:has(+.bg--gold) {
    padding-bottom: 4rem
}

.island-row:has(+.bg--gray) {
    padding-bottom: 4rem
}

.island-row:has(+.bg--gray-dark) {
    padding-bottom: 4rem
}

.island-row:has(+.bg--red) {
    padding-bottom: 4rem
}

.island-row:has(+.callout--background-image) {
    padding-bottom: 4rem
}

.island-row:has(+.callout--image--full) {
    padding-bottom: 4rem
}

.island-row:has(+.featured-image) {
    padding-bottom: 4rem
}

.island-row__container {
    background-color: #c00026;
    border-radius: 2rem 0;
    padding: .25rem
}

.island-row__inner {
    border-radius: 2rem 0;
    padding: 4rem;
    font-size: 1.125rem
}

@media (min-width:57.5rem) {
    .island-row__inner {
        font-size: 1.25rem
    }
}

.island-row__title {
    margin: 0 0 1em;
    font-size: 1.75rem
}

@media (min-width:57.5rem) {
    .island-row__title {
        font-size: 2.25rem
    }
}

.logo-grid {
    padding: 2rem 0 4rem
}

@container (width>=57.5rem) {
    .logo-grid {
        padding: 4rem 0
    }
}

.logo-grid__title {
    text-align: center;
    margin: 0 0 .625em;
    font-size: 2.25rem
}

@container (width>=57.5rem) {
    .logo-grid__title {
        font-size: 2.625rem
    }
}

.logo-grid__intro {
    text-align: center;
    margin: 0 0 4.75rem;
    font-size: 1.375rem
}

.logo-grid__list {
    flex-flow: wrap;
    justify-content: center;
    align-items: center;
    gap: 2rem;
    margin: 0;
    padding: 0;
    display: flex
}

@container (width>=57.5rem) {
    .logo-grid__list {
        gap: 3rem 2rem
    }
}

.logo-grid__item {
    text-align: center
}

.logo-grid__item::marker {
    font-size: 0
}

.logo-grid__link {
    text-decoration: none
}

.logo-grid__link:focus-visible {
    outline-offset: 6px;
    outline: 2px solid #0c0c0c
}

.logo-grid__image {
    width: auto;
    height: auto;
    max-height: 8rem
}

@container (width>=57.5rem) {
    .logo-grid__image {
        object-fit: contain;
        max-width: 20rem;
        max-height: 18rem
    }
}

.hh-module .post .post-body {
    z-index: inherit !important
}

.hh-module .section-title {
    z-index: -1 !important
}

.news-events__title {
    color: #0c0c0c;
    text-align: center;
    font-family: adelle, serif;
    font-size: 3rem;
    font-weight: 400
}

.news-events__recent-news {
    padding: 1.5rem 0
}

@container (width>=57.5rem) {
    .news-events__recent-news__header {
        flex-flow: row;
        justify-content: space-between;
        display: flex
    }

    .news-events__recent-news__header .section-title {
        margin: 0
    }

    .news-events__recent-news__header .news-events__view-all__link {
        text-align: right;
        align-content: end
    }

    .news-events__recent-news__view-all__link {
        text-align: right;
        align-content: baseline
    }
}

.news-events__recent-news__list {
    grid-template-columns: 1fr;
    gap: 2rem;
    display: grid
}

@container (width>=57.5rem) {
    .news-events__recent-news__list {
        grid-template-rows: 1fr 1fr;
        grid-template-columns: 2fr 1fr;
        gap: .5rem;
        padding: 2rem 0
    }
}

.news-events__recent-news__item {
    position: relative
}

@container (width>=57.5rem) {
    .news-events__recent-news__item:first-child {
        grid-area: 1/1/span 2
    }

    .news-events__recent-news__item:first-child .news-events__recent-news__headline {
        max-width: 40%
    }
}

.news-events__recent-news__text {
    background-image: linear-gradient(90deg, #c00026 50%, #d8002c 100%);
    width: 100%;
    padding: 1rem
}

@container (width>=57.5rem) {
    .news-events__recent-news__text {
        background-image: linear-gradient(90deg, #c00026 50%, #d8002c99 100%);
        padding: 1.25rem 2rem;
        position: absolute;
        bottom: 0
    }
}

.news-events__recent-news__image {
    width: 100%;
    height: auto;
    display: block
}

@container (width>=57.5rem) {
    .news-events__recent-news__image {
        object-fit: cover;
        min-height: 100%
    }
}

.news-events__recent-news__category {
    text-transform: uppercase;
    margin: .75em 0;
    font-family: din-2014, sans-serif;
    font-size: 1rem;
    font-weight: 400;
    display: block
}

.news-events__recent-news__category-link {
    color: #ffd375;
    text-transform: uppercase;
    margin: 0 .5em .5em 0;
    font-size: 1rem;
    font-weight: 600;
    text-decoration: none;
    display: inline-block
}

.news-events__recent-news__category-link:focus-visible,
.news-events__recent-news__category-link:hover {
    text-decoration: underline
}

.news-events__recent-news__category-link:focus-visible {
    outline: none
}

@container (width>=57.5rem) {
    .news-events__recent-news__category-link {
        font-size: 1rem
    }
}

.news-events__recent-news__headline {
    margin: 0;
    font-family: din-2014, sans-serif;
    font-size: 1.125rem;
    font-weight: 600;
    display: block
}

@container (width>=57.5rem) {
    .news-events__recent-news__headline {
        max-width: 85%;
        font-size: 1.25rem
    }
}

.news-events__recent-news__headline-link {
    color: #fff;
    text-decoration: none
}

.news-events__recent-news__headline-link:focus-visible,
.news-events__recent-news__headline-link:hover {
    text-decoration: underline
}

.news-events__recent-news__headline-link:focus-visible {
    outline: none
}

.news-events__recent-news__teaser {
    font-family: din-2014, sans-serif;
    font-size: 1.25rem;
    font-weight: 400;
    line-height: 1.4;
    display: block
}

.news-events__upcoming-events {
    padding: 2.5rem 0
}

.news-events__upcoming-events__skip-link {
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
    width: 1px;
    height: 1px;
    position: absolute;
    overflow: hidden
}

.news-events__upcoming-events__skip-link:focus-visible {
    color: #fff;
    clip: unset;
    clip-path: unset;
    background-color: #c00026;
    border-radius: .5rem;
    outline: none;
    width: auto;
    height: auto;
    padding: .5em 1.5em;
    font-size: 1.125rem;
    position: relative
}

.news-events__upcoming-events__container {
    max-width: 80rem;
    margin: 0 auto;
    padding: 0 1em;
    display: block
}

@container (width>=47.5rem) {
    .news-events__upcoming-events__container {
        width: 95%;
        padding: 0
    }
}

@container (width>=75rem) {
    .news-events__upcoming-events__container {
        width: 85%
    }
}

@container (width>=57.5rem) {
    .news-events__upcoming-events__header {
        flex-flow: row;
        justify-content: space-between;
        display: flex
    }

    .news-events__upcoming-events__header .section-title {
        margin: 0
    }

    .news-events__upcoming-events__header .news-events__view-all__link {
        text-align: right;
        align-content: end
    }

    .news-events__upcoming-events__view-all__link {
        text-align: right;
        align-content: baseline
    }
}

.news-events__upcoming-events__list {
    flex-flow: column;
    row-gap: 2rem;
    display: flex
}

@container (width>=57.5rem) {
    .news-events__upcoming-events__list {
        flex-flow: wrap;
        justify-content: flex-start;
        gap: 4rem 2rem;
        padding: 2rem 0
    }
}

.news-events__upcoming-events__item {
    flex-flow: row;
    justify-content: space-between;
    display: flex
}

@container (width>=57.5rem) {
    .news-events__upcoming-events__item {
        width: calc(25% - 1.5rem)
    }
}

.news-events__upcoming-events__link {
    color: #0c0c0c;
    text-decoration: none;
    display: block
}

.news-events__upcoming-events__link:focus-visible,
.news-events__upcoming-events__link:hover {
    -webkit-text-decoration: underline #c00026;
    text-decoration: underline #c00026
}

.news-events__upcoming-events__link:focus-visible:focus-visible,
.news-events__upcoming-events__link:hover:focus-visible {
    outline: none
}

.news-events__upcoming-events__date {
    color: #fff;
    text-align: center;
    background-color: #c00026;
    background-image: linear-gradient(#c00026, #d8002c);
    border-radius: .75rem;
    width: 5rem;
    height: 5rem;
    padding: .75rem 0;
    display: inline-block
}

.news-events__upcoming-events__month {
    text-transform: uppercase;
    margin: 0 0 .125rem;
    font-family: din-2014, sans-serif;
    font-size: 1.125rem;
    font-weight: 200;
    line-height: 1;
    text-decoration: none;
    display: block
}

.news-events__upcoming-events__day {
    font-family: din-2014, sans-serif;
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1;
    display: block
}

.news-events__upcoming-events__text {
    width: calc(100% - 5.75rem)
}

.news-events__upcoming-events__time {
    font-family: din-2014, sans-serif;
    font-size: 1rem;
    line-height: 1
}

.news-events__upcoming-events__headline {
    margin: .25em 0 0;
    font-family: din-2014, sans-serif;
    font-size: 1.375rem;
    font-weight: 700
}

@container (width>=57.5rem) {
    .news-events__upcoming-events--list .news-events__upcoming-events__item {
        width: 100%
    }
}

.news-events__view-all {
    text-align: center;
    padding: 3rem 0
}

.news-events__view-all__link {
    color: var(--accent-color);
    width: 30rem;
    font-size: 1.125rem;
    font-weight: 700;
    text-decoration: none;
    display: inline-block
}

@container (width>=57.5rem) {
    .news-events__view-all__link {
        font-size: 1.25rem
    }
}

.news-events__view-all__link:hover {
    text-decoration: underline
}

.news-events__view-all__link:focus-visible {
    outline: 2px solid var(--accent-color)
}

.news-events__view-all__link:after {
    content: "»";
    padding-left: .25em;
    text-decoration: none;
    display: inline-block
}

.news-item__title {
    color: #4a4a4a;
    margin: 0 0 .5em;
    font-family: adelle, serif;
    font-size: 1.75rem;
    font-weight: 400
}

@container (width>=57.5rem) {
    .news-item__title {
        font-size: 2.5rem
    }
}

.news-item__date-author {
    font-family: adelle, serif;
    font-size: 1rem
}

.news-item__hero-image {
    object-fit: cover;
    width: 100%;
    height: auto;
    max-height: 80vh
}

.news-item__intro {
    font-family: adelle, serif;
    font-size: 1.75rem;
    font-weight: 600
}

.news-item blockquote,
.news-item__quote {
    --margin: 0 0 1em;
    --primary-color: $blue;
    --padding: 0 3rem;
    color: var(--primary-color);
    margin: var(--margin);
    padding: var(--padding);
    font-family: adelle, serif;
    font-size: 1.5rem
}

.news-item blockquote p,
.news-item__quote p {
    font-family: adelle, serif;
    font-size: 1.5rem
}

.news-item blockquote.bg--blue,
.news-item blockquote.bg--green,
.news-item blockquote.bg--purple,
.news-item blockquote.bg--purple-dark,
.news-item__quote.bg--blue,
.news-item__quote.bg--green,
.news-item__quote.bg--purple,
.news-item__quote.bg--purple-dark {
    --primary-color: $white;
    --padding: 1em 2em 1em;
    --margin: 1.5em 0
}

.news-item__image-with-caption {
    flex-flow: column;
    row-gap: 1.5rem;
    display: flex
}

@media screen and (min-width:57.5rem) {
    .news-item__image-with-caption {
        flex-flow: row;
        margin: 2rem 0
    }

    .news-item__image-with-caption__image-container {
        order: 1;
        width: 60%
    }

    .news-item__image-with-caption__image {
        width: 100%;
        height: auto
    }
}

.news-item__image-with-caption__caption {
    color: #4a4a4a;
    font-family: adelle, serif;
    font-size: 1.5rem
}

.news-item__image-with-caption__caption p {
    font-family: adelle, serif;
    font-size: 1.5rem
}

@media screen and (min-width:57.5rem) {
    .news-item__image-with-caption__caption {
        order: 0;
        width: 40%;
        padding-top: .75rem;
        padding-right: 1.5rem
    }
}

.news-item__related-news {
    margin: 4rem 0 0;
    padding: 2rem 0 4rem
}

.news-item__related-news__section-title {
    text-align: center;
    margin: .75em 0 2em;
    font-family: adelle, serif;
    font-size: 1.75rem;
    font-weight: 600
}

@container (width>=57.5rem) {
    .news-item__related-news__section-title {
        font-size: 2.25rem
    }
}

.news-item__related-news__list {
    flex-flow: column;
    row-gap: 2rem;
    display: flex
}

@container (width>=57.5rem) {
    .news-item__related-news__list {
        flex-flow: row;
        justify-content: space-between
    }

    .news-item__related-news__item {
        width: calc(33.33% - 3rem)
    }
}

.news-item__related-news__link {
    color: #0c0c0c;
    text-decoration: none;
    display: block
}

.news-item__related-news__link:hover .news-item__related-news__headline,
.news-item__related-news__link:focus-visible .news-item__related-news__headline {
    text-decoration: underline
}

.news-item__related-news__link:hover:focus-visible,
.news-item__related-news__link:focus-visible:focus-visible {
    outline: 2px solid #003c5c
}

.news-item__related-news__image {
    aspect-ratio: 3/2;
    object-fit: cover;
    width: 100%;
    height: auto
}

.news-item__related-news__category {
    color: #4a4a4a;
    margin: .75em 0;
    font-family: adelle, serif;
    font-size: 1.125rem;
    font-weight: 600;
    display: block
}

.news-item__related-news__category-link {
    color: #4a4a4a;
    text-decoration: none
}

.news-item__related-news__category-link:hover,
.news-item__related-news__category-link:focus-visible {
    text-decoration: underline
}

.news-item__related-news__headline {
    margin: 0 0 .5em;
    font-family: adelle, serif;
    font-size: 1.5rem;
    font-weight: 600;
    display: block
}

.news-item__related-news__teaser {
    font-family: din-2014, sans-serif;
    font-size: 1.25rem;
    font-weight: 400;
    line-height: 1.4;
    display: block
}

.program-finder__page-form {
    z-index: 1;
    padding: 2rem 0 1rem;
    position: relative
}

.bg--gold+.program-finder__page-form,
.bg--gray+.program-finder__page-form,
.bg--gray-dark+.program-finder__page-form,
.bg--red+.program-finder__page-form,
.callout--background-image+.program-finder__page-form,
.callout--image--full+.program-finder__page-form,
.featured-image+.program-finder__page-form {
    padding-top: 4rem
}

.program-finder__page-form:has(+.bg--gold) {
    padding-bottom: 4rem
}

.program-finder__page-form:has(+.bg--gray) {
    padding-bottom: 4rem
}

.program-finder__page-form:has(+.bg--gray-dark) {
    padding-bottom: 4rem
}

.program-finder__page-form:has(+.bg--red) {
    padding-bottom: 4rem
}

.program-finder__page-form:has(+.callout--background-image) {
    padding-bottom: 4rem
}

.program-finder__page-form:has(+.callout--image--full) {
    padding-bottom: 4rem
}

.program-finder__page-form:has(+.featured-image) {
    padding-bottom: 4rem
}

@container (width>=57.5rem) {
    .program-finder__page-form {
        background-image: url(../images/sh-crest-15.svg);
        background-position: min(90%, 100% - 15rem) 25%;
        background-repeat: no-repeat;
        background-size: auto 80%
    }
}

.program-finder__page-form__title {
    color: var(--accent-color);
    margin: 0 0 .75em;
    font-size: 1.75rem
}

@media (min-width:57.5rem) {
    .program-finder__page-form__title {
        font-size: 2.25rem
    }
}

.program-finder__page-form__intro {
    max-width: 45rem;
    font-family: adelle, serif;
    font-size: 1.25rem
}

.program-finder__page-form__form__intro {
    padding: 2rem 0 0;
    font-size: 1.375rem;
    font-weight: 700
}

@media (min-width:57.5rem) {
    .program-finder__page-form__row {
        align-items: center;
        column-gap: 1.5rem;
        margin: 3rem 0 2rem;
        display: flex
    }

    .program-finder__combobox {
        width: 25rem;
        margin: 0
    }
}

.program-finder__submit {
    background-color: #c00026;
    background-image: conic-gradient(from 270deg at calc(100% - .25rem)50%, transparent 0 60deg, #d8002c 60deg 300deg, transparent 300deg), linear-gradient(to bottom, #d8002c 0 .25rem, transparent .25rem calc(100% - .25rem), #d8002c calc(100% - .25rem)), linear-gradient(to right, #d8002c 0 60%, #c00026 100%);
    clip-path: polygon(0% 0%, calc(100% - .625em) 0%, 100% 50%, calc(100% - .625em) 100%, 0% 100%);
    border: unset;
    color: #fff;
    cursor: pointer;
    flex-shrink: 0;
    padding: .75em 1.5em;
    font-size: 1.125rem;
    line-height: 1;
    text-decoration: none;
    transition: background-color .2s, color .2s;
    display: inline-block;
    position: relative
}

.program-finder__submit:hover {
    background-color: #a80022;
    background-image: linear-gradient(to right, #e90130 0 .25rem, transparent .25rem), conic-gradient(from 270deg at calc(100% - .25rem)50%, transparent 0 60deg, #e90130 60deg 300deg, transparent 300deg), linear-gradient(to bottom, #e90130 0 .25rem, transparent .25rem calc(100% - .25rem), #e90130 calc(100% - .25rem))
}

.program-finder__submit:focus-visible {
    background-color: #0000;
    background-image: linear-gradient(to right, #e90130 0 .25rem, transparent .25rem), conic-gradient(from 270deg at calc(100% - .25rem)50%, transparent 0 60deg, #e90130 60deg 300deg, transparent 300deg), linear-gradient(to bottom, #e90130 0 .25rem, transparent .25rem calc(100% - .25rem), #e90130 calc(100% - .25rem));
    color: #c00026;
    outline: none
}

@media (prefers-reduced-motion:reduce) {
    .program-finder__submit {
        transition: none
    }
}

.program-finder__submit:after {
    clip-path: polygon(0% 0%, 100% 50%, 0% 100%);
    content: "";
    background-color: #ffd375;
    width: .5em;
    height: .5em;
    margin-left: .5em;
    display: inline-block;
    position: relative;
    top: -.125rem
}

.program-finder__submit:focus-visible:after {
    background-color: #c00026
}

.program-cards {
    padding: 2rem 0 0
}

.bg--gold+.program-cards,
.bg--gray+.program-cards,
.bg--gray-dark+.program-cards,
.bg--red+.program-cards,
.callout--background-image+.program-cards,
.callout--image--full+.program-cards,
.featured-image+.program-cards {
    padding-top: 4rem
}

.program-cards:has(+.bg--gold) {
    padding-bottom: 2rem
}

.program-cards:has(+.bg--gray) {
    padding-bottom: 2rem
}

.program-cards:has(+.bg--gray-dark) {
    padding-bottom: 2rem
}

.program-cards:has(+.bg--red) {
    padding-bottom: 2rem
}

.program-cards:has(+.callout--background-image) {
    padding-bottom: 2rem
}

.program-cards:has(+.callout--image--full) {
    padding-bottom: 2rem
}

.program-cards:has(+.featured-image) {
    padding-bottom: 2rem
}

.program-cards__head {
    background-color: #c00026;
    padding: 1rem 0
}

@media (min-width:57.5rem) {
    .program-cards__head {
        padding: 4rem 0 0
    }

    .program-cards__head__container {
        flex-flow: row;
        column-gap: 2rem;
        display: flex
    }
}

.program-cards__title {
    font-family: din-2014, sans-serif;
    font-size: 1.75rem
}

@media (min-width:57.5rem) {
    .program-cards__title {
        color: #0c0c0c;
        background-color: #fff;
        border-top-left-radius: .5em;
        border-top-right-radius: .5em;
        margin: 0;
        padding: 1.5em 2em;
        font-size: 1.5rem;
        font-weight: 600
    }
}

.program-cards__ce {
    justify-content: center;
    align-items: center;
    display: flex
}

.program-cards__ce__link {
    color: #fff;
    background-color: #d8002c;
    border-radius: 2.25rem;
    padding: 1.5rem 2.5rem;
    font-family: adelle, serif;
    font-size: 1.5rem;
    font-weight: 400
}

.program-cards__grid {
    margin: 0 auto
}

@media (min-width:57.5rem) {
    .program-cards__grid {
        flex-flow: wrap;
        justify-content: flex-start;
        gap: 4rem 3rem;
        padding: 2rem 0;
        display: flex
    }

    .program-cards__item {
        border: .125rem solid #9b9b9b;
        width: calc(33.3333% - 2.66667rem);
        margin: 0
    }

    .program-cards__item:hover .program-cards__item__title {
        -webkit-text-decoration: underline #c00026;
        text-decoration: underline #c00026
    }
}

.program-cards__item__link {
    color: #0c0c0c;
    text-decoration: none
}

.program-cards__item__link:focus-visible .program-cards__item__title {
    -webkit-text-decoration: underline #c00026;
    text-decoration: underline #c00026
}

.program-cards__item__image {
    width: 100%;
    height: auto;
    display: block
}

.program-cards__item__text {
    padding: 1.5rem
}

.program-cards__item__title {
    color: #c00026;
    text-transform: capitalize;
    font-family: adelle, serif;
    font-size: 1.5rem;
    font-weight: 400
}

.program-cards__item__attributes {
    font-family: din-2014, sans-serif;
    font-size: 1.125rem
}

.program-card--sidebar {
    padding: 0 0 3rem
}

.program-card--sidebar__wrapper {
    width: 100%;
    margin: auto;
    padding: 4rem
}

@media (min-width:75rem) {
    .program-card--sidebar__wrapper {
        width: 90%
    }
}

.program-card--sidebar__title {
    color: #c00026;
    margin: 0 0 1em;
    font-family: adelle, serif;
    font-size: 1.75rem;
    font-weight: 400;
    line-height: 1.2
}

.program-card--sidebar__attributes {
    border-top: 4px dashed #9b9b9b;
    padding: 2rem 0 0;
    font-family: din-2014, sans-serif;
    font-size: 1.125rem;
    line-height: 1.375
}

.router {
    padding: 1rem 0 2rem
}

.bg--gold+.router,
.bg--gray+.router,
.bg--gray-dark+.router,
.bg--red+.router,
.callout--background-image+.router,
.callout--image--full+.router,
.featured-image+.router {
    padding-top: 4rem
}

.router:has(+.bg--gold) {
    padding-bottom: 4rem
}

.router:has(+.bg--gray) {
    padding-bottom: 4rem
}

.router:has(+.bg--gray-dark) {
    padding-bottom: 4rem
}

.router:has(+.bg--red) {
    padding-bottom: 4rem
}

.router:has(+.callout--background-image) {
    padding-bottom: 4rem
}

.router:has(+.callout--image--full) {
    padding-bottom: 4rem
}

.router:has(+.featured-image) {
    padding-bottom: 4rem
}

.router.bg--blue,
.router.bg--gray,
.router.bg--gray-dark,
.router.bg--gold,
.router.bg--red {
    padding: 4rem 0
}

.router__intro {
    padding-bottom: 2.5rem
}

.router__description {
    font-family: din-2014, sans-serif;
    font-size: 1.375rem;
    line-height: 1.5
}

.router--button-grid {
    color: var(--primary-color);
    padding: 3rem 0 2rem;
    position: relative
}

@media (min-width:120rem) {
    .router--button-grid {
        max-width: 120rem;
        margin: 0 auto
    }
}

@container (width>=57.5rem) {
    .router--button-grid {
        padding: 6rem 0
    }
}

@container (width>=75rem) {
    .router--button-grid {
        background-blend-mode: multiply, normal;
        background-image: url(../images/funky-lines.webp), url(../images/sh-crest-15.svg);
        background-position: 50%;
        background-repeat: repeat, no-repeat;
        background-size: auto, auto 130%;
        position: relative
    }

    .router--button-grid.bg--gold {
        background-blend-mode: multiply, normal, normal;
        background-image: url(../images/funky-lines-yellow.webp), url(../images/sh-crest-15.svg), linear-gradient(#f4bd47, #f9da99);
        background-position: 0 0, 50%, 50%;
        background-repeat: repeat, no-repeat, no-repeat;
        background-size: auto, auto 130%, cover
    }

    .router--button-grid.bg--gold .callout--button-row__title {
        text-shadow: 0 0 .15em #f9da99
    }
}

.router--button-grid .router__intro {
    text-align: center;
    padding: 0 0 1.5rem
}

.router--button-grid .router__headline {
    color: var(--accent-color);
    margin: 0 0 .5em;
    font-family: din-2014, sans-serif;
    font-size: 2rem;
    font-weight: 700
}

.router--button-grid .router__description {
    font-family: din-2014, sans-serif;
    font-size: 1.375rem;
    line-height: 1.5
}

.router--button-grid .router__container {
    max-width: 75rem
}

.router--button-grid .router__list {
    flex-flow: column;
    justify-content: center;
    align-items: center;
    row-gap: 1rem;
    padding: 2rem 0;
    display: flex
}

.router--button-grid .router__item {
    width: min(100%, 25rem);
    display: block
}

.router--button-grid .router__item__link {
    background-color: var(--primary-color);
    color: var(--secondary-accent-color);
    text-align: center;
    border-radius: .5rem;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    padding: 1em 2em;
    font-family: din-2014, sans-serif;
    font-size: 1.125rem;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    transition: background-color .2s, border-color .2s;
    display: flex
}

.router--button-grid .router__item__link:hover,
.router--button-grid .router__item__link:focus-visible {
    background-color: var(--secondary-accent-color);
    color: var(--primary-color);
    outline: none
}

@container (width>=57.5rem) {
    .router--button-grid .router__inner {
        position: relative
    }

    .router--button-grid .router__headline {
        font-size: 3rem;
        font-weight: 800
    }

    .router--button-grid .router__list {
        flex-flow: wrap;
        justify-content: flex-start;
        gap: .75rem
    }

    .router--button-grid .router__item {
        width: calc(33.3333% - .5rem);
        margin: 0
    }

    .router--button-grid .router__item__link {
        justify-content: center;
        align-items: center;
        min-height: 5em;
        padding: .5em 2em;
        font-size: 1.25rem;
        display: flex
    }
}

.router--grid .router__headline {
    margin: 0 0 .75em;
    font-family: din-2014, sans-serif;
    font-size: 2.25rem;
    font-weight: 700
}

@media (min-width:57.5rem) {
    .router--grid .router__headline {
        font-size: 3.5rem;
        font-weight: 800;
        position: relative;
        left: 1em
    }

    .router--grid .router__headline:before {
        color: var(--accent-color);
        content: "»";
        font-family: adelle, serif;
        font-size: 5.5rem;
        font-weight: 500;
        line-height: 1;
        display: block;
        position: absolute;
        top: -.25em;
        left: -.55em
    }
}

.router--grid .router__list {
    flex-flow: wrap;
    justify-content: flex-start;
    gap: 2rem 4rem;
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex
}

.router--grid .router__list:not(:has(img)) {
    row-gap: unset
}

.router--grid .router__item:not(:has(img)) {
    border-top: 1px solid var(--line)
}

.router--grid .router__item:not(:has(img)) .router__item__text {
    padding: 2rem 0 1rem
}

@container (width>=40rem) {
    .router--grid .router__item {
        width: calc(50% - 2rem)
    }
}

@container (width>=57.5rem) {
    .router--grid .router__item {
        width: calc(33.3333% - 2.66667rem)
    }
}

.router--grid .router__item__image-container {
    border-radius: 2rem 0;
    overflow: hidden
}

.router--grid .router__item__image {
    aspect-ratio: 16/9;
    object-fit: cover;
    width: 100%;
    height: auto
}

.router--grid .router__item__title {
    margin: 0 0 1em;
    font-family: din-2014, sans-serif;
    font-size: 1.5rem;
    font-weight: 700;
    display: block
}

.router--grid .router__item__text {
    padding: 2rem 0;
    font-family: din-2014, sans-serif;
    font-size: 1.125rem;
    line-height: 1.5
}

.router--grid .router__item__link {
    color: var(--primary-color);
    text-decoration: none;
    transition: unset;
    display: block
}

.router--grid .router__item__link:focus-visible {
    outline: none
}

.router--grid .router__item__link:focus-visible,
.router--grid .router__item__link:hover {
    -webkit-text-decoration: underline #c00026;
    text-decoration: underline #c00026
}

@container (width>=57.5rem) {
    .router--grid--feature .router__item:first-of-type {
        flex-flow: row;
        align-items: center;
        width: 100%;
        margin-bottom: 2rem;
        padding: 0 10%;
        display: flex
    }

    .router--grid--feature .router__item:first-of-type .router__item__link {
        flex-flow: row;
        column-gap: 2rem;
        display: flex
    }

    .router--grid--feature .router__item:first-of-type .router__item__image-container {
        width: 50%
    }

    .router--grid--feature .router__item:first-of-type .router__item__text {
        width: 50%;
        padding: 0 0 0 2rem
    }
}

.router--image-grid .router__headline {
    margin: 0 0 1em;
    font-family: din-2014, sans-serif;
    font-size: 2.25rem;
    font-weight: 700
}

@media (min-width:57.5rem) {
    .router--image-grid .router__headline {
        font-size: 3.5rem;
        font-weight: 800;
        position: relative;
        left: 1em
    }

    .router--image-grid .router__headline:before {
        color: var(--accent-color);
        content: "»";
        font-family: adelle, serif;
        font-size: 5.5rem;
        font-weight: 500;
        line-height: 1;
        display: block;
        position: absolute;
        top: -.25em;
        left: -.55em
    }
}

.router--image-grid .router__list {
    flex-flow: wrap;
    justify-content: flex-start;
    row-gap: .5rem;
    margin: 0;
    padding: 0;
    display: flex
}

@container (width>=57.5rem) {
    .router--image-grid .router__list {
        row-gap: 1rem
    }
}

.router--image-grid .router__item {
    width: 100%;
    display: block;
    position: relative
}

.router--image-grid .router__item::marker {
    font-size: 0
}

@container (width>=47.5rem) {
    .router--image-grid .router__item {
        width: calc(50% - .5rem);
        margin: 0 .25rem
    }
}

@container (width>=57.5rem) {
    .router--image-grid .router__item {
        width: calc(33.33% - 1rem);
        margin: 0 .5rem
    }
}

.router--image-grid .router__item__image-container {
    height: 100%
}

.router--image-grid .router__item__image {
    object-fit: cover;
    width: 100%;
    height: 100%
}

.router--image-grid .router__item__text {
    text-align: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    transition: background-color .1s;
    position: absolute;
    top: 0;
    left: 0
}

.router--image-grid .router__item__title {
    text-wrap: balance;
    background-color: #c00026d9;
    width: min(90%, 100% - 2rem);
    margin: 0 auto 2rem;
    padding: .25em .5em;
    font-family: din-2014, sans-serif;
    font-size: 1.25rem;
    font-weight: 400;
    transition: background-color .15s;
    display: block
}

@container (width>=57.5rem) {
    .router--image-grid .router__item__title {
        margin: 0 auto 4rem;
        padding: .5em
    }
}

.router--image-grid .router__item__link {
    color: #fff;
    align-items: flex-end;
    width: 100%;
    height: 100%;
    text-decoration: none;
    transition: background-color .15s;
    display: flex
}

.router--image-grid .router__item__link:focus-visible,
.router--image-grid .router__item__link:hover {
    background-color: #c00026d9;
    background-image: linear-gradient(60deg, #0c0c0c99, #0000)
}

.router--image-grid .router__item__link:focus-visible .router__item__title,
.router--image-grid .router__item__link:hover .router__item__title {
    background-color: #0000
}

.router--image-grid .router__item__link:focus-visible {
    outline-offset: 2px;
    outline: 2px solid #0c0c0c;
    -webkit-text-decoration: underline #fff;
    text-decoration: underline #fff
}

.router--list .router__container {
    max-width: 50rem
}

.router--list .router__headline {
    margin: 0 0 1em;
    font-family: din-2014, sans-serif;
    font-size: 2.25rem;
    font-weight: 700
}

@media (min-width:57.5rem) {
    .router--list .router__headline {
        font-size: 3.5rem;
        font-weight: 800;
        position: relative;
        left: 1em
    }

    .router--list .router__headline:before {
        color: var(--accent-color);
        content: "»";
        font-family: adelle, serif;
        font-size: 5.5rem;
        font-weight: 500;
        line-height: 1;
        display: block;
        position: absolute;
        top: -.25em;
        left: -.55em
    }
}

.router--list .router__list {
    margin: 0;
    padding: 0
}

.router--list .router__item {
    border-bottom: 1px dotted var(--line);
    border-top: 1px dotted var(--line);
    margin: 0 0 -1px;
    padding: 0
}

@container (width>=57.5rem) {
    .router--list .router__item {
        flex-flow: row;
        column-gap: 1.5rem;
        padding: 2rem 0;
        display: flex
    }
}

.router--list .router__item::marker {
    font-size: 0
}

.router--list .router__item__image-container {
    overflow: hidden
}

@container (width>=57.5rem) {
    .router--list .router__item__image-container {
        flex-shrink: 0;
        width: min(40%, 16rem)
    }
}

.router--list .router__item__image {
    object-fit: cover;
    border-radius: 1rem 0;
    width: 100%;
    height: auto
}

.router--list .router__item__title {
    margin: 0 0 1em;
    font-family: din-2014, sans-serif;
    font-size: 1.5rem;
    font-weight: 700;
    display: block
}

.router--list .router__item__text {
    padding: 2rem 0;
    font-family: din-2014, sans-serif;
    font-size: 1.125rem;
    line-height: 1.5
}

@container (width>=57.5rem) {
    .router--list .router__item__text {
        padding: 0
    }
}

.router--list .router__item__link {
    color: var(--primary-color);
    text-decoration: none;
    transition: unset;
    display: block
}

.router--list .router__item__link:focus-visible {
    outline: none
}

.router--list .router__item__link:focus-visible,
.router--list .router__item__link:hover {
    -webkit-text-decoration: underline #c00026;
    text-decoration: underline #c00026
}

.router--news-feed {
    background-color: #fcf3d7;
    padding: 4rem 0
}

@media (min-width:120rem) {
    .router--news-feed {
        max-width: 120rem;
        margin: 0 auto
    }
}

.router--news-feed .router__headline {
    margin: 0;
    font-family: din-2014, sans-serif;
    font-size: 2.25rem;
    font-weight: 700
}

@media (min-width:57.5rem) {
    .router--news-feed .router__headline {
        font-size: 3.5rem;
        font-weight: 800;
        position: relative;
        left: 1em
    }

    .router--news-feed .router__headline:before {
        color: var(--accent-color);
        content: "»";
        font-family: adelle, serif;
        font-size: 5.5rem;
        font-weight: 500;
        line-height: 1;
        display: block;
        position: absolute;
        top: -.25em;
        left: -.55em
    }
}

.router--news-feed .router__intro {
    padding-bottom: 3rem
}

@container (width>=57.5rem) {
    .router--news-feed .router__intro {
        padding-bottom: 4rem
    }
}

.router--news-feed .router__list {
    flex-flow: wrap;
    justify-content: flex-start;
    gap: 4rem 3rem;
    margin: 0;
    padding: 0;
    display: flex
}

.router--news-feed .router__item::marker {
    font-size: 0
}

@container (width>=57.5rem) {
    .router--news-feed .router__item {
        width: calc(33.3333% - 2rem)
    }
}

.router--news-feed .router__item__image-container {
    padding: 0 0 .75rem .75rem;
    position: relative;
    overflow: hidden
}

.router--news-feed .router__item__image-container:before {
    content: "";
    background-color: #ffc751;
    border-radius: 2rem 0;
    width: calc(100% - .75rem);
    height: calc(100% - .75rem);
    display: block;
    position: absolute;
    top: .75rem;
    left: 0
}

.router--news-feed .router__item__image {
    aspect-ratio: 4/3;
    object-fit: cover;
    border-radius: 2rem 0;
    width: 100%;
    height: auto;
    display: block;
    position: relative
}

.router--news-feed .router__item__title {
    margin: 1.5em 0 1em;
    padding: 0 2.5rem;
    font-size: 1.125rem;
    font-weight: 600;
    display: block
}

.router--news-feed .router__item__link {
    color: #c00026;
    height: 100%;
    padding: 0 2.5rem;
    font-size: 1rem;
    font-weight: 700;
    text-decoration: none;
    display: block
}

.router--news-feed .router__item__link:focus-visible {
    outline: 2px auto #003c5c
}

.router--news-feed .router__item__link:focus-visible,
.router--news-feed .router__item__link:hover {
    text-decoration: underline
}

@media (min-width:120rem) {
    .router--program-list {
        max-width: 120rem;
        margin: 0 auto
    }
}

.router--program-list .router__headline {
    margin: 0;
    font-family: din-2014, sans-serif;
    font-size: 2.25rem;
    font-weight: 700
}

@media (min-width:57.5rem) {
    .router--program-list .router__headline {
        font-size: 3.5rem;
        font-weight: 800;
        position: relative;
        left: 1em
    }

    .router--program-list .router__headline:before {
        color: var(--accent-color);
        content: "»";
        font-family: adelle, serif;
        font-size: 5.5rem;
        font-weight: 500;
        line-height: 1;
        display: block;
        position: absolute;
        top: -.25em;
        left: -.55em
    }
}

.router--program-list .router__intro {
    padding-bottom: 2rem
}

.router--program-list .router__subheadline {
    margin: 0 0 1em;
    font-family: din-2014, sans-serif
}

@container (width>=57.5rem) {
    .router--program-list .router__subheadline {
        font-size: 1.75rem
    }
}

.router--program-list .router__background {
    padding: 3rem 0
}

.router--program-list .router__background:nth-of-type(2n) {
    background-color: #f3f6f5
}

.router--program-list .router__list {
    margin: 0;
    padding: 0
}

@container (width>=57.5rem) {
    .router--program-list .router__list {
        columns: 2;
        column-gap: 6rem
    }
}

.router--program-list .router__item {
    border-bottom: 1px dotted var(--line);
    border-top: 1px dotted var(--line);
    margin: 0 0 -1px;
    padding: 0
}

.router--program-list .router__item::marker {
    font-size: 0
}

.router--program-list .router__item__link {
    color: var(--primary-color);
    flex-flow: column;
    padding: .5rem;
    font-size: 1.25rem;
    font-weight: 500;
    text-decoration: none;
    transition: transform .15s ease-out;
    display: flex
}

.router--program-list .router__item__link:hover,
.router--program-list .router__item__link:focus-visible {
    text-decoration: underline;
    -webkit-text-decoration-color: var(--accent-color);
    text-decoration-color: var(--accent-color)
}

@container (width>=57.5rem) {
    .router--program-list .router__item__link {
        flex-flow: row;
        justify-content: space-between;
        width: 75%;
        padding: 1rem 4rem 1rem 2rem
    }
}

.router--program-list .router__item__text {
    font-size: 1.125rem;
    line-height: 1.5
}

.router--program-list .router__item__title {
    margin: 0;
    font-family: din-2014, sans-serif;
    font-size: 1.25rem;
    font-weight: 700;
    display: block
}

.router--teasers {
    padding: 4rem 0 3rem
}

.router--teasers__section-title {
    text-align: center;
    margin: 0 0 1em;
    font-family: adelle, serif;
    font-size: 2.5rem;
    font-weight: 400
}

.router--teasers__section-intro {
    text-align: center;
    margin-bottom: 3rem;
    font-family: din-2014, sans-serif;
    font-size: 1.25rem;
    line-height: 1.5
}

.router--teasers__grid {
    flex-flow: wrap;
    justify-content: space-between;
    row-gap: 2rem;
    display: flex
}

@container (width>=57.5rem) {
    .router--teasers__grid {
        row-gap: 4rem
    }
}

.router--teasers__item {
    width: 100%
}

@container (width>=57.5rem) {
    .router--teasers__item {
        width: calc(33% - 2rem)
    }
}

.router--teasers__item--event .router--teasers__image-container {
    margin-bottom: 1.5rem
}

.router--teasers__image-container {
    position: relative
}

.router--teasers__image {
    aspect-ratio: 3/2;
    object-fit: cover
}

.router--teasers__text-container {
    padding: 1.5rem 0
}

.router--teasers__category,
.router--teasers__category-list {
    color: #117e21;
    margin: .75em 0;
    font-family: adelle, serif;
    font-size: 1.125rem;
    font-weight: 600;
    display: block
}

.router--teasers__category-link {
    color: #117e21;
    text-decoration: none
}

.router--teasers__category-link:hover,
.router--teasers__category-link:focus-visible {
    text-decoration: underline
}

.router--teasers__time-location {
    color: var(--category-color);
    margin-bottom: 1em;
    font-family: adelle, serif;
    font-size: 1rem;
    font-weight: 600;
    display: block
}

.router--teasers__title {
    margin: 0 0 1em;
    font-family: adelle, serif;
    font-size: 1.5rem;
    font-weight: 400
}

.router--teasers__description {
    font-family: din-2014, sans-serif;
    font-size: 1.125rem;
    line-height: 1.5
}

.router--teasers__link {
    color: var(--primary-color);
    text-decoration: none
}

.router--teasers__link:hover,
.router--teasers__link:focus-visible {
    text-decoration: underline
}

.router--teasers__date {
    color: #fff;
    text-align: center;
    background-color: #003c5c;
    width: 5.2rem;
    height: 6rem;
    padding: 1.5rem 0;
    display: block;
    position: absolute;
    bottom: -1.5rem;
    left: 0
}

.router--teasers__month {
    text-transform: uppercase;
    font-family: din-2014, sans-serif;
    font-size: 1rem;
    display: block
}

.router--teasers__day {
    font-family: din-2014, sans-serif;
    font-size: 2rem;
    display: block
}

@container (width>=57.5rem) {
    .router--teasers--feature .router--teasers__item:first-of-type {
        flex-flow: row;
        width: 100%;
        display: flex
    }

    .router--teasers--feature .router--teasers__item:first-of-type .router--teasers__image-container {
        width: 50%
    }

    .router--teasers--feature .router--teasers__item:first-of-type .router--teasers__text-container {
        width: 50%;
        padding: 2rem
    }

    .router--teasers--feature .router--teasers__item:first-of-type .router--teasers__title {
        font-size: 1.75rem
    }
}

.search--main {
    background-color: #0000;
    border: none;
    width: 100%;
    max-width: 52rem;
    height: 100%;
    max-height: 52rem;
    padding: 1rem
}

.search--main::backdrop {
    background-image: linear-gradient(45deg, #ffd375f5, #fcf3d7f2)
}

.search--main .search__close-container {
    text-align: right
}

.search--main .search__close {
    color: #0c0c0c;
    cursor: pointer;
    background-color: #0000;
    border: 1px solid #0c0c0c;
    border-radius: 50%;
    padding: .375em;
    font-size: 1.5rem;
    line-height: 1;
    display: inline-block
}

.search--main .search__close:focus-visible {
    outline-offset: 2px;
    outline: 2px solid #0c0c0c
}

.search--main .search__svg {
    width: 1em;
    height: 1em;
    display: block
}

.search--main .search__heading {
    color: #c00026;
    text-align: center
}

@media (min-width:57.5rem) {
    .search--main .search__heading {
        margin: 2em 0 1em
    }
}

.search--main .search__form {
    flex-flow: row;
    justify-content: space-between;
    display: flex
}

.search--main .search__input {
    width: calc(100% - 2em);
    height: 1.75em;
    font-size: 1.5rem;
    line-height: 1
}

.search--main .search__input:focus-visible {
    outline: 2px solid #0c0c0c
}

.search--main .search__submit {
    color: #fff;
    cursor: pointer;
    background-color: #c00026;
    border: none;
    border-radius: .5em;
    padding: .375em;
    font-size: 1.5rem;
    line-height: 1;
    display: inline-block
}

.search--main .search__submit:focus-visible {
    outline-offset: 2px;
    outline: 2px solid #0c0c0c
}

.section-title {
    margin: 0 0 1em;
    font-family: din-2014, sans-serif;
    font-size: 2.25rem;
    font-weight: 700
}

@media (min-width:57.5rem) {
    .section-title {
        font-size: 3.5rem;
        font-weight: 800;
        position: relative;
        left: 1em
    }

    .section-title:before {
        color: var(--accent-color);
        content: "»";
        font-family: adelle, serif;
        font-size: 5.5rem;
        font-weight: 500;
        line-height: 1;
        display: block;
        position: absolute;
        top: -.25em;
        left: -.55em
    }
}

.side-callout--button-cluster {
    margin: 2rem 0 3rem
}

.side-callout--button-cluster__list {
    flex-flow: column;
    row-gap: .75rem;
    margin: 0;
    padding: 0;
    display: flex
}

.side-callout--button-cluster__item {
    display: inline-block
}

.side-callout--button-cluster__link {
    color: #fff;
    text-align: center;
    background-color: #c00026;
    border: .25rem solid #c00026;
    border-radius: 1.5em;
    width: 100%;
    padding: .5em 2em;
    font-size: 1.125rem;
    font-weight: 500;
    line-height: 1;
    text-decoration: none;
    transition: background-color .2s, color .2s;
    display: inline-block
}

.side-callout--button-cluster__link:focus-visible,
.side-callout--button-cluster__link:hover {
    color: #4a4a4a;
    background-color: #fff
}

.side-callout--button-cluster__link:focus-visible {
    outline: 1px solid var(--btn-bg)
}

.side-callout--contact {
    margin: 2rem 0
}

.side-callout--contact__container {
    text-align: center;
    background-color: #fcf3d7;
    border-radius: .75rem;
    padding: 2rem
}

.side-callout--contact__title {
    margin: 0 0 .75em;
    font-size: 1.5rem
}

.side-callout--inline {
    margin: 2rem 0 1rem
}

.side-callout--inline__container {
    border-top: .5rem solid #c00026
}

.side-callout--inline__title {
    color: #0c0c0c;
    margin: 1em 0 .5em;
    font-family: adelle, serif;
    font-size: 1.75rem;
    font-weight: 600
}

.side-callout--inline--image .side-callout--inline__container {
    border-top: none
}

.side-callout--inline--image .side-callout--inline__image {
    max-width: 100%
}

.side-callout--inline__body {
    font-size: 1.125rem
}

.side-callout--link-list {
    margin: 2rem 0
}

.side-callout--link-list__title {
    font-family: din-2014, sans-serif;
    font-size: 1.75rem;
    font-weight: 600
}

.side-callout--link-list__link {
    color: #0c0c0c;
    font-size: 1.25rem;
    text-decoration: none
}

.side-callout--link-list__link:focus-visible,
.side-callout--link-list__link:hover {
    -webkit-text-decoration: underline #c00026;
    text-decoration: underline #c00026
}

.splide {
    --carousel-border: .125rem solid var(--line)
}

.splide.is-focus-in .splide__pagination__page:focus {
    outline: 2px solid var(--primary-color)
}

.splide__pagination {
    bottom: -4rem
}

@media print {
    .splide__pagination {
        display: none
    }
}

.splide__pagination__page {
    border: 1px solid var(--primary-color);
    opacity: 1;
    background: #fff;
    width: 1.25rem;
    height: 1.25rem;
    margin: 0 .875rem
}

.splide__pagination__page.is-active {
    background-color: var(--accent-color);
    border: 1px solid var(--accent-color);
    opacity: 1;
    transform: scale(1.25)
}

@container (width>=57.5rem) {
    .splide__pagination__page {
        margin: 0 .5rem
    }
}

.splide__arrow {
    color: #c00026;
    opacity: 1;
    background-color: #fff;
    border: 2px solid #9b9b9b;
    width: 3em;
    height: 3em;
    top: 37%
}

@container (width>=57.5rem) {
    .splide__arrow {
        width: 3.5em;
        height: 3.5em;
        top: 50%
    }
}

.splide__arrow--prev {
    left: 1.5rem
}

.splide__arrow--next {
    right: 1.5rem
}

.splide__arrow:disabled {
    opacity: 0
}

.splide__arrow svg {
    width: 2.25em;
    height: 2.25em
}

.splide__toggle {
    background-color: var(--background-color);
    color: var(--primary-color);
    border: none;
    border-radius: 50%;
    width: 2.5em;
    height: 2.5em;
    font-size: 1.25rem;
    position: absolute;
    bottom: 2rem;
    right: 2rem
}

.splide--contained {
    padding: 2rem 0 6rem
}

.bg--gold+.splide--contained,
.bg--gray+.splide--contained,
.bg--gray-dark+.splide--contained,
.bg--red+.splide--contained,
.callout--background-image+.splide--contained,
.callout--image--full+.splide--contained,
.featured-image+.splide--contained {
    padding-top: 4rem
}

.splide--contained:has(+.bg--gold) {
    padding-bottom: 8rem
}

.splide--contained:has(+.bg--gray) {
    padding-bottom: 8rem
}

.splide--contained:has(+.bg--gray-dark) {
    padding-bottom: 8rem
}

.splide--contained:has(+.bg--red) {
    padding-bottom: 8rem
}

.splide--contained:has(+.callout--background-image) {
    padding-bottom: 8rem
}

.splide--contained:has(+.callout--image--full) {
    padding-bottom: 8rem
}

.splide--contained:has(+.featured-image) {
    padding-bottom: 8rem
}

@media (min-width:120rem) {
    .splide--contained {
        max-width: 120rem;
        margin: 0 auto
    }
}

.splide--contained .splide__slide__text__inner {
    padding: 2rem 3rem
}

@container (width>=75rem) {
    .splide--contained .splide__slide__text__inner {
        padding: 3rem 5rem 3rem 3rem
    }

    .splide--contained--left .splide__slide__text {
        order: -1
    }

    .splide--contained--left .splide__slide__text__inner {
        padding: 3rem 3rem 3rem 5rem
    }
}

.splide--contained.bg--blue,
.splide--contained.bg--gray,
.splide--contained.bg--gray-dark,
.splide--contained.bg--gold,
.splide--contained.bg--red {
    padding: 4rem 0 8rem
}

.splide--contained .splide__arrow--prev {
    left: 1.5rem
}

@container (width>=47.5rem) {
    .splide--contained .splide__arrow--prev {
        left: -3.5rem
    }
}

@container (width>=75rem) {
    .splide--contained .splide__arrow--prev {
        left: .5rem
    }
}

.splide--contained .splide__arrow--next {
    right: 1.5rem
}

@container (width>=47.5rem) {
    .splide--contained .splide__arrow--next {
        right: -3.5rem
    }
}

@container (width>=75rem) {
    .splide--contained .splide__arrow--next {
        right: .5rem
    }
}

.splide--contained .splide__intro {
    text-align: center;
    margin-bottom: 4rem
}

.splide--contained .splide__title {
    color: var(--accent-color);
    margin: 0 0 .5em;
    font-family: din-2014, sans-serif;
    font-size: 2.75rem;
    font-weight: 700
}

.splide--contained .splide__description {
    font-family: din-2014, sans-serif;
    font-size: 1.5rem;
    font-weight: 200;
    line-height: 1.2
}

.splide--contained .splide__container {
    max-width: 100rem;
    margin: 0 auto;
    padding: 0 1em;
    display: block
}

@container (width>=47.5rem) {
    .splide--contained .splide__container {
        width: min(95%, 32rem);
        padding: 0
    }
}

@container (width>=75rem) {
    .splide--contained .splide__container {
        width: 90%
    }
}

.splide--contained .splide__slide {
    border: var(--carousel-border);
    background-color: #fff;
    border-radius: 1rem;
    overflow: hidden
}

.splide--contained .splide__slide__container {
    flex-flow: column;
    display: flex;
    position: relative
}

@container (width>=75rem) {
    .splide--contained .splide__slide__container {
        flex-flow: wrap;
        height: 100%
    }
}

.splide--contained .splide__slide__image {
    object-fit: cover;
    width: 100%;
    height: auto;
    display: block
}

@container (width>=75rem) {
    .splide--contained .splide__slide__image {
        width: 55%;
        position: relative
    }
}

.splide--contained .splide__slide__image--no-text,
.splide--contained .splide__slide__text {
    width: 100%;
    position: relative
}

@container (width>=75rem) {
    .splide--contained .splide__slide__text {
        width: 45%
    }
}

.splide--contained .splide__slide__text__inner {
    height: 100%
}

@container (width>=75rem) {
    .splide--contained .splide__slide__text__inner {
        flex-flow: column;
        justify-content: center;
        height: 100%;
        display: flex
    }
}

.splide--contained .splide__slide__text--no-image {
    background-image: none
}

@container (width>=75rem) {
    .splide--contained .splide__slide__text--no-image {
        height: auto;
        position: relative
    }

    .splide--contained .splide__slide__text--no-image .splide__slide__text__inner {
        width: 100%;
        padding: 2rem 4rem;
        position: relative
    }
}

.splide--contained .splide__slide__title {
    color: var(--accent-color);
    margin: 0 0 .75em;
    font-family: adelle, serif;
    font-size: 1.5rem;
    font-weight: 500
}

@container (width>=75rem) {
    .splide--contained .splide__slide__title {
        font-size: 2rem
    }
}

.splide--contained .splide__slide__body {
    font-family: din-2014, sans-serif;
    font-size: 1.125rem;
    line-height: 1.5
}

@container (width>=75rem) {
    .splide--contained .splide__slide__body {
        font-size: 1.125rem
    }
}

.splide--contained .splide__slide__link {
    color: #c00026;
    font-weight: 600;
    text-decoration: none
}

.splide--contained .splide__slide__link:focus-visible,
.splide--contained .splide__slide__link:hover {
    text-decoration: underline
}

.splide--contained .splide__slide__link:focus-visible {
    outline: 2px solid var(--primary-color);
    outline-offset: 2px
}

.splide--contained .splide__slide__link:after {
    content: " »";
    padding-left: .25em;
    text-decoration: none;
    display: inline-block
}

@container (width>=75rem) {
    .splide--contained .splide__slide__link {
        font-size: 1.125rem
    }
}

.splide--image-gallery {
    padding: 2rem 0 6rem
}

.bg--gold+.splide--image-gallery,
.bg--gray+.splide--image-gallery,
.bg--gray-dark+.splide--image-gallery,
.bg--red+.splide--image-gallery,
.callout--background-image+.splide--image-gallery,
.callout--image--full+.splide--image-gallery,
.featured-image+.splide--image-gallery {
    padding-top: 4rem
}

.splide--image-gallery:has(+.bg--gold) {
    padding-bottom: 8rem
}

.splide--image-gallery:has(+.bg--gray) {
    padding-bottom: 8rem
}

.splide--image-gallery:has(+.bg--gray-dark) {
    padding-bottom: 8rem
}

.splide--image-gallery:has(+.bg--red) {
    padding-bottom: 8rem
}

.splide--image-gallery:has(+.callout--background-image) {
    padding-bottom: 8rem
}

.splide--image-gallery:has(+.callout--image--full) {
    padding-bottom: 8rem
}

.splide--image-gallery:has(+.featured-image) {
    padding-bottom: 8rem
}

.splide--image-gallery .splide__list {
    align-items: stretch
}

.splide--image-gallery .splide__slide__container {
    color: #fff;
    background-color: #0c0c0c;
    margin: 0;
    position: relative
}

.splide--image-gallery .splide__slide__image {
    object-fit: cover;
    width: auto;
    height: min(30rem, 80dvh, 60vw)
}

.splide--image-gallery .splide__slide__caption {
    color: #fff;
    background-color: #0c0c0cb3;
    max-width: min(100% - 1rem, 28rem, 85vw);
    padding: .5rem 1rem;
    font-family: adelle, serif;
    font-size: 1.125rem;
    position: absolute;
    bottom: .5rem;
    left: .5rem
}

.splide--image-gallery .splide__arrow--prev {
    left: .5rem
}

.splide--image-gallery .splide__arrow--next {
    right: .5rem
}

.splide--three-up {
    padding: 2rem 0 6rem
}

.bg--gold+.splide--three-up,
.bg--gray+.splide--three-up,
.bg--gray-dark+.splide--three-up,
.bg--red+.splide--three-up,
.callout--background-image+.splide--three-up,
.callout--image--full+.splide--three-up,
.featured-image+.splide--three-up {
    padding-top: 4rem
}

.splide--three-up:has(+.bg--gold) {
    padding-bottom: 8rem
}

.splide--three-up:has(+.bg--gray) {
    padding-bottom: 8rem
}

.splide--three-up:has(+.bg--gray-dark) {
    padding-bottom: 8rem
}

.splide--three-up:has(+.bg--red) {
    padding-bottom: 8rem
}

.splide--three-up:has(+.callout--background-image) {
    padding-bottom: 8rem
}

.splide--three-up:has(+.callout--image--full) {
    padding-bottom: 8rem
}

.splide--three-up:has(+.featured-image) {
    padding-bottom: 8rem
}

@media (min-width:120rem) {
    .splide--three-up {
        max-width: 120rem;
        margin: 0 auto
    }
}

.splide--three-up.bg--blue,
.splide--three-up.bg--gray,
.splide--three-up.bg--gray-dark,
.splide--three-up.bg--gold,
.splide--three-up.bg--red {
    padding: 4rem 0 8rem
}

.splide--three-up .splide__arrow--prev {
    left: .25rem
}

@container (width>=40rem) {
    .splide--three-up .splide__arrow--prev {
        left: .5rem
    }
}

.splide--three-up .splide__arrow--next {
    right: .25rem
}

@container (width>=40rem) {
    .splide--three-up .splide__arrow--next {
        right: .5rem
    }
}

.splide--three-up .splide__container {
    max-width: 100rem;
    margin: 0 auto
}

.splide--three-up .splide__intro {
    text-align: center;
    margin-bottom: 4rem
}

.splide--three-up .splide__title {
    font-size: 2.25rem;
    font-weight: 700
}

.splide--three-up .splide__description {
    font-size: 1.5rem;
    font-weight: 200;
    line-height: 1.2
}

.splide--three-up .splide__slide {
    border: var(--carousel-border);
    background-color: #fff;
    transition: border-color .2s;
    overflow: hidden
}

.splide--three-up .splide__slide__image {
    aspect-ratio: 16/9;
    object-fit: cover;
    width: 100%;
    height: auto
}

.splide--three-up .splide__slide__text {
    padding: 2rem 2.5rem
}

@container (width>=40rem) {
    .splide--three-up .splide__slide__text {
        padding: 2rem 1rem
    }
}

.splide--three-up .splide__slide__title {
    font-family: din-2014, sans-serif;
    font-size: 1.5rem;
    font-weight: 600
}

.splide--three-up .splide__slide__body {
    font-family: din-2014, sans-serif;
    font-size: 1.125rem
}

.splide--three-up .splide__slide__link {
    color: var(--accent-color);
    font-size: 1.125rem;
    font-weight: 700;
    text-decoration: none;
    transition: all .15s;
    display: inline-block
}

.splide--three-up .splide__slide__link:focus-visible,
.splide--three-up .splide__slide__link:hover {
    text-decoration: underline
}

.splide--three-up .splide__slide__link:after {
    content: " »";
    padding-left: .25em;
    text-decoration: none;
    display: inline-block
}

.splide--three-up:not(:has(img)) .splide__slide {
    border-radius: unset
}

.splide.bg--blue {
    --carousel-border: .125rem solid var(--background-color)
}

.splide.bg--gold {
    --carousel-border: .125rem solid var(--background-color);
    background-blend-mode: multiply, normal;
    background-image: url(../images/funky-lines-yellow.webp), linear-gradient(#f4bd47, #f9da99);
    background-repeat: repeat, no-repeat;
    background-size: auto, cover
}

.splide.bg--gray {
    background-blend-mode: multiply;
    --carousel-border: 1.5px solid var(--primary-color);
    background-image: url(../images/funky-lines.webp);
    background-repeat: repeat;
    background-size: auto
}

.splide.bg--gray-dark,
.splide.bg--red {
    background-blend-mode: multiply;
    --carousel-border: 1.5px solid var(--background-color);
    background-image: url(../images/funky-lines-brown.webp);
    background-repeat: repeat;
    background-size: auto
}

.splide.bg--white {
    --background-image: unset;
    --carousel-border: 1.5px solid var(--line)
}

.tabbed-content {
    padding: 4rem 0
}

.tabbed-content__section-title {
    text-align: center;
    margin: .5em 0 1.5em;
    font-family: adelle, serif;
    font-size: 1.75rem;
    font-weight: 400
}

@container (width>=57.5rem) {
    .tabbed-content__section-title {
        font-size: 2.25rem
    }
}

.tabbed-content__list {
    flex-flow: wrap;
    justify-content: center;
    gap: .5rem;
    padding: 0 0 .5rem;
    display: flex
}

@container (width>=75rem) {
    .tabbed-content__list {
        background-image: linear-gradient(0deg, #c00026 0 .125rem, #0000 .125rem);
        justify-content: flex-start;
        padding: 0
    }
}

.tabbed-content__tab {
    color: #fff;
    cursor: pointer;
    text-transform: capitalize;
    background-color: #c00026;
    border: .125rem solid #c00026;
    border-radius: .75rem;
    flex-flow: column;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding: .75em 2em;
    font-size: 1.5rem;
    font-weight: 500;
    display: inline-flex
}

@container (width>=57.5rem) {
    .tabbed-content__tab {
        justify-content: center;
        width: calc(33.33% - .5rem)
    }
}

@container (width>=75rem) {
    .tabbed-content__tab {
        width: fit-content
    }
}

.tabbed-content__tab:after {
    content: attr(data-text);
    content: attr(data-text)/"";
    visibility: hidden;
    -webkit-user-select: none;
    user-select: none;
    pointer-events: none;
    height: 0;
    font-weight: 700;
    overflow: hidden
}

.tabbed-content__tab:focus-visible {
    outline: none;
    text-decoration: underline
}

.tabbed-content__tab--selected {
    color: #0c0c0c;
    background-color: #fcf3d7;
    font-weight: 700
}

@container (width>=75rem) {
    .tabbed-content__tab {
        border-bottom: none;
        border-radius: .75rem .75rem 0 0
    }
}

.tabbed-content__panel {
    background-color: #fcf3d7;
    padding: 1.5rem 2rem;
    font-size: 1.25rem;
    line-height: 1.5;
    display: none
}

.tabbed-content__panel--current {
    display: block
}

.tabbed-content__panel__title {
    text-transform: capitalize;
    font-size: 1.75rem;
    font-weight: 500
}

@container (width>=75rem) {
    .tabbed-content__panel {
        border: .125rem solid #c00026;
        border-top: none
    }
}

.video-gallery {
    padding: 1.5rem 0
}

.bg--gold+.video-gallery,
.bg--gray+.video-gallery,
.bg--gray-dark+.video-gallery,
.bg--red+.video-gallery,
.callout--background-image+.video-gallery,
.callout--image--full+.video-gallery,
.featured-image+.video-gallery {
    padding-top: 4rem
}

.video-gallery:has(+.bg--gold) {
    padding-bottom: 4rem
}

.video-gallery:has(+.bg--gray) {
    padding-bottom: 4rem
}

.video-gallery:has(+.bg--gray-dark) {
    padding-bottom: 4rem
}

.video-gallery:has(+.bg--red) {
    padding-bottom: 4rem
}

.video-gallery:has(+.callout--background-image) {
    padding-bottom: 4rem
}

.video-gallery:has(+.callout--image--full) {
    padding-bottom: 4rem
}

.video-gallery:has(+.featured-image) {
    padding-bottom: 4rem
}

.video-gallery__grid {
    flex-flow: wrap;
    justify-content: flex-start;
    row-gap: 1rem;
    display: flex
}

@container (width>=40rem) {
    .video-gallery__item {
        width: calc(50% - 1rem);
        margin: 0 .5rem
    }
}

@container (width>=57.5rem) {
    .video-gallery__item {
        width: calc(33.33% - 1rem);
        margin: 0 .5rem
    }
}

.video-gallery__button {
    border: unset;
    cursor: pointer;
    background-color: #0000;
    width: 100%;
    padding: 0;
    display: block;
    position: relative
}

.video-gallery__button__text {
    color: #fff;
    opacity: 1;
    background-color: #0c0c0cb3;
    width: 90%;
    padding: .5rem 1rem;
    font-size: 1.125rem;
    transition: background-color .2s, opacity .2s;
    display: block;
    position: absolute;
    bottom: .5rem;
    left: 5%
}

.video-gallery__button--with-overlay:before {
    content: "";
    opacity: 0;
    background-color: #0c0c0c99;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1em' height='1em' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='1.75' d='M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2S2 6.477 2 12s4.477 10 10 10Zm-2.5-6.5l6-3.5l-6-3.5zm1-2l2-1.5l-2-1.5z'/%3E%3C/svg%3E");
    background-position: 50%;
    background-repeat: no-repeat;
    background-size: auto 50%;
    width: 100%;
    height: 100%;
    transition: opacity .2s;
    display: block;
    position: absolute
}

.video-gallery__button--with-overlay:focus-visible,
.video-gallery__button--with-overlay:hover {
    outline: none
}

.video-gallery__button--with-overlay:focus-visible:before,
.video-gallery__button--with-overlay:hover:before {
    opacity: 1
}

.video-gallery__button--with-overlay:focus-visible .video-gallery__button__text {
    background-color: #0000
}

.video-gallery__button--with-overlay:hover .video-gallery__button__text {
    opacity: 0
}

.video-gallery__image {
    object-fit: cover;
    width: 100%;
    height: auto;
    display: block
}

.video-gallery--sidebar {
    margin: 2rem 0;
    padding: 0
}

.video-gallery__dialog::backdrop {
    background-color: #0c0c0ccc
}

.video-gallery__dialog__close {
    color: #fff;
    cursor: pointer;
    background-color: #0000;
    border: 2px solid #fff;
    border-radius: 50%;
    padding: .5rem;
    transition: background-color .2s, color .2s;
    position: fixed;
    top: 2vh;
    right: 2.5%
}

.video-gallery__dialog__close__svg {
    width: 1.75rem;
    height: 1.75rem;
    display: block
}

.video-gallery__dialog__close:focus-visible,
.video-gallery__dialog__close:hover {
    color: #0c0c0c;
    background-color: #fff
}

.video-gallery__dialog__iframe {
    aspect-ratio: 16/9;
    background-color: #0c0c0c;
    border: 0;
    width: min(80vw, 75rem, 152vh);
    max-height: 85.5vh
}

.wysiwyg__section {
    padding: 1.5rem 0 1rem;
    font-size: 1.125rem
}

.bg--gold+.wysiwyg__section,
.bg--gray+.wysiwyg__section,
.bg--gray-dark+.wysiwyg__section,
.bg--red+.wysiwyg__section,
.callout--background-image+.wysiwyg__section,
.callout--image--full+.wysiwyg__section,
.featured-image+.wysiwyg__section {
    padding-top: 4rem
}

.wysiwyg__section:has(+.bg--gold) {
    padding-bottom: 4rem
}

.wysiwyg__section:has(+.bg--gray) {
    padding-bottom: 4rem
}

.wysiwyg__section:has(+.bg--gray-dark) {
    padding-bottom: 4rem
}

.wysiwyg__section:has(+.bg--red) {
    padding-bottom: 4rem
}

.wysiwyg__section:has(+.callout--background-image) {
    padding-bottom: 4rem
}

.wysiwyg__section:has(+.callout--image--full) {
    padding-bottom: 4rem
}

.wysiwyg__section:has(+.featured-image) {
    padding-bottom: 4rem
}

.wysiwyg__section.bg--gold,
.wysiwyg__section.bg--gray,
.wysiwyg__section.bg--gray-dark,
.wysiwyg__section.bg--red {
    padding: 4rem 0
}

.wysiwyg__section:after {
    clear: both;
    content: "";
    display: block
}

.wysiwyg__content {
    padding-bottom: .5rem
}

.wysiwyg :where(figure:has(blockquote)):not([class]) {
    --background-color: #c00026;
    --primary-color: #fff;
    background-color: var(--background-color);
    margin: 2rem 0;
    padding: 1.5rem 0;
    font-weight: 400
}

.wysiwyg :where(figure:has(blockquote)):not([class]) blockquote {
    color: var(--primary-color);
    font-family: adelle, serif;
    font-size: 1.125rem
}

.wysiwyg :where(figure:has(blockquote)):not([class]) figcaption {
    color: var(--primary-color);
    padding: 0 3rem;
    font-family: din-2014, sans-serif;
    font-size: 1.125rem
}

@container (width>=57.5rem) {
    .wysiwyg :where(figure:has(blockquote)):not([class]) {
        margin: 2rem 3rem
    }

    .wysiwyg :where(figure:has(blockquote)):not([class]) blockquote {
        font-size: 1.5rem
    }
}

.wysiwyg :where(figure:has(blockquote)).reverse {
    --background-color: #fff;
    --primary-color: #c00026;
    border: 1px solid #c00026;
    padding: 1em 2em 0
}

.wysiwyg :where(figure:has(blockquote)).reverse blockquote>p {
    color: #c00026
}

.wysiwyg :where(figure:has(blockquote)).reverse figcaption {
    padding: 0 0 1em
}

.two-column-wysiwyg {
    padding: 2rem 0;
    font-size: 1.125rem
}

@media screen and (min-width:57.5rem) {
    .two-column-wysiwyg__grid {
        flex-flow: row;
        justify-content: space-between;
        display: flex
    }

    .two-column-wysiwyg__column {
        width: calc(50% - 1rem)
    }
}